Миграция Phase4_CountryCurrencyOrgDefaults: - countries.DefaultCurrencyId (FK → currencies) - organizations.DefaultCurrencyId, MultiCurrencyEnabled, DefaultVat - Seed: KZ→KZT, RU→RUB, BY→BYN, US→USD, DE→EUR, CN→CNY, TR→TRY - Default для org: KZT, vat=16 Backend: - Organization сущность получила DefaultCurrency/MultiCurrencyEnabled/DefaultVat. - OrganizationSettingsController: GET/PUT /api/organization/settings. - DevDataSeeder при создании/backfill орга выставляет KZT + vat=16. Web: - /settings/organization: форма с выбором страны (авто-подтягивает валюту), чекбоксом multi-currency, ставкой НДС по умолчанию. - useOrgSettings() хук. - SupplyEditPage / RetailSaleEditPage / ProductEditPage: select валюты показывается только если multiCurrencyEnabled=true, иначе подтягивается DefaultCurrency организации и рисуется символ валюты справа от цены. - ProductEditPage при создании нового товара берёт VAT из org.DefaultVat. - В sidebar добавлен раздел 'Настройки → Организация', убран Ставки НДС (сущность удалена раньше).
33 lines
1.6 KiB
C#
33 lines
1.6 KiB
C#
using foodmarket.Domain.Catalog;
|
||
using foodmarket.Domain.Common;
|
||
|
||
namespace foodmarket.Domain.Organizations;
|
||
|
||
public class Organization : Entity
|
||
{
|
||
public string Name { get; set; } = null!;
|
||
public string CountryCode { get; set; } = "KZ";
|
||
public string? Bin { get; set; }
|
||
public string? Address { get; set; }
|
||
public string? Phone { get; set; }
|
||
public string? Email { get; set; }
|
||
public bool IsActive { get; set; } = true;
|
||
|
||
/// <summary>Персональный API-токен MoySklad. Храним per-organization чтобы
|
||
/// пользователю не нужно было вводить его каждый раз при импорте.</summary>
|
||
public string? MoySkladToken { get; set; }
|
||
|
||
/// <summary>Валюта организации по умолчанию. Если MultiCurrencyEnabled=false,
|
||
/// в UI выбор валюты скрыт — всё в этой валюте.</summary>
|
||
public Guid? DefaultCurrencyId { get; set; }
|
||
public Currency? DefaultCurrency { get; set; }
|
||
|
||
/// <summary>Разрешены ли продажи/закупки в нескольких валютах. По умолчанию
|
||
/// false — тогда UI не предлагает выбор валюты, всё в DefaultCurrency.</summary>
|
||
public bool MultiCurrencyEnabled { get; set; }
|
||
|
||
/// <summary>Ставка НДС по умолчанию для новых товаров (KZ=16%, RU=20%).
|
||
/// Само значение применяется к товару при создании; пользователь может менять.</summary>
|
||
public int DefaultVat { get; set; } = 16;
|
||
}
|