Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
Сверка с МойСкладом (docs/money-moysklad-reference.md) + домен/инфра/API: - Счета и кассы (MoneyAccount: Cash/Safe/Bank/Acquiring, начальный остаток, привязка к магазину, IsDefault/IsActive, инвариант CurrentBalance). - Денежные документы (MoneyTransaction: PaymentIn/Out, CashIn/Out, переводы парой TransferOut↔TransferIn; статьи расходов ExpenseItem; проведение/отмена в Serializable-транзакции через MoneyService). - Оплата поставщикам: Supply/SupplierReturn.PayedSum + MoneyTransactionLink, SuppliesController отдаёт PaymentStatus + фильтр paymentStatus. - Взаиморасчёты: CounterpartyAdjustment + MoneyReportsController.SupplierDebts. - Смены кассы: CashShift + CashDrawerOperation (open/close, expected↔actual, Z-отчёт), запрет розничной продажи без открытой смены в RetailSalesController. - Отчёт «Деньги»: balances/movement с проверкой инварианта остатков. Права: RolePermissions +MoneyView/MoneyEdit/CashShiftOperate; сидер раздаёт кассиру CashShiftOperate+MoneyView, кладовщику — нет; 5 системных статей расходов на новую орг. Миграция Phase33a (ручная, с [Migration]+[DbContext]). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
30 lines
1.5 KiB
C#
30 lines
1.5 KiB
C#
using foodmarket.Domain.Common;
|
||
|
||
namespace foodmarket.Domain.Money;
|
||
|
||
/// <summary>Статья расходов (у МойСклада — <c>expenseItem</c>). Привязывается
|
||
/// к расходным документам: paymentout, cashout. Сид создаёт стартовый набор
|
||
/// (Закупка товара, Аренда, Зарплата, Коммунальные, Прочее) с
|
||
/// <see cref="IsSystem"/>=true — его переименовать можно, удалить нет.
|
||
///
|
||
/// Магазин может добавить свои (например, «Инкассация», «Хоз-товары») —
|
||
/// у них <see cref="IsSystem"/>=false, удаляются при условии «ни на одном
|
||
/// документе не используется» (валидатор в контроллере).</summary>
|
||
public class ExpenseItem : TenantEntity, IVersionedEntity
|
||
{
|
||
public uint Xmin { get; set; }
|
||
|
||
public string Name { get; set; } = null!;
|
||
|
||
/// <summary>Для UI: короткий код (например, "PURCHASE", "RENT"). Нужен
|
||
/// в основном сидеру + для сверки с 1С/МойСкладом при синхронизации.
|
||
/// Пользователь может оставить пустым.</summary>
|
||
public string? Code { get; set; }
|
||
|
||
public bool IsSystem { get; set; }
|
||
|
||
public bool IsActive { get; set; } = true;
|
||
|
||
public string? Notes { get; set; }
|
||
}
|