Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 27s
CI / Web (React + Vite) (push) Successful in 23s
Docker Images / API image (push) Successful in 38s
Docker Images / Web image (push) Successful in 25s
Docker Images / Deploy stage (push) Successful in 18s
Phase5_VatAsCountryProperty: - countries.VatRate (numeric(5,2)) — ставка страны, источник правды. Seed: KZ=16, RU=20, BY=20, DE=19, CN=13, TR=18, UZ=12, KG=12, KR=10, IT=22, PL=23, US=0. - organizations.ShowVatEnabledOnProduct (bool, default false) — флаг отображения на карточке товара. - organizations.DefaultVat удалён (заменён страной). - products.Vat ОСТАЁТСЯ: для KZ есть льготные категории (хлеб/молоко = 0%) и фискальный чек требует ставку на каждой позиции. Country domain: + DefaultCurrency / VatRate (уже было DefaultCurrencyId из Phase4, сейчас дополнено). Organization domain: DefaultVat убран, ShowVatEnabledOnProduct добавлен. Backend: - ProductInput.Vat теперь int? — если UI скрывает поле и прислал null, ProductsController берёт дефолт из страны организации (Country.VatRate при создании; при update сохраняет прежнее значение). - CountriesController.List/Get/Create/Update возвращает/принимает DefaultCurrency и VatRate. - MoySklad импорт: дефолт Vat загружается из страны организации. - SystemReferenceSeeder: новые валюты BYN/UZS/KGS/TRY/KRW/PLN, seed country-currency-vat для всех 12 стран. - OrganizationSettingsController: VatRate read-only из страны, ShowVatEnabledOnProduct редактируется. Web: - Country type + CountriesPage форма редактирования (валюта, ставка НДС). - OrganizationSettingsPage: "Ставка НДС" read-only (берётся из страны, ссылка на /catalog/countries), галочка "Указывать ставку НДС на товаре". - ProductEditPage: блок Ставка НДС % + галка "В том числе НДС" теперь показываются только если showVatEnabledOnProduct=true. В payload при save.mutate отправляется vat=null если скрыто. - ProductsPage: колонка НДС показывается только при включённом флаге. Galleries/products/settings других этапов — не задеты.
35 lines
1.9 KiB
C#
35 lines
1.9 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>Показывать ли пользователю галку «В том числе НДС» на форме товара.
|
||
/// Если false (по умолчанию) — магазин работает с одной ставкой НДС и галка
|
||
/// скрыта, все товары считаются с НДС. Если true — можно для отдельных товаров
|
||
/// (хлеб, медикаменты) снимать галку.</summary>
|
||
public bool ShowVatEnabledOnProduct { get; set; }
|
||
}
|