# МойСклад — розничные деньги (reference для модели смены) Как в МойСклад розничные операции отражаются в деньгах (по `https://dev.moysklad.ru/doc/api/remap/1.2/documents/` и известной семантике; страница docs отдаётся JS-ом, поэтому ниже — сводка модели, а не дословная цитата). ## Сущности - **Розничная смена** `retailshift` — контейнер смены на точке (ККМ). Хранит начальный остаток (размен), суммы продаж нал/безнал, возвраты, внесения/изъятия, итоговые суммы на закрытие. - **Розничная продажа** `retaildemand` — чек. Внутри — оплата: `cashSum` (нал) и `noCashSum`/`bankPercent` (безнал, эквайринг). Привязана к смене. - **Розничный возврат** `retailsalesreturn` — возврат покупателю (нал/безнал). - **Внесение/Изъятие** `retaildrawercashin` / `retaildrawercashout` — движение наличных в кассе ККМ внутри смены (внесение разменом, изъятие инкассацией). - **Приходный/расходный ордер** `cashin` / `cashout`, платёж `paymentin`/`paymentout` — общие денежные документы (не розничные), влияют на остаток счёта/кассы. ## Как попадает в деньги - Касса (денежный счёт типа «касса») = размен + Σ продаж нал − Σ возвратов нал + Σ внесений − Σ изъятий. Безнал (карты) идёт на привязанный **расчётный счёт/ эквайринг**, отдельно от наличной кассы. - Каждый `retaildemand`/`retailsalesreturn`/`drawercashin|out` — это движение по счёту; в отчёте «Деньги» (движение ДС) они видны по типам. - **Закрытие смены**: фиксируется фактический остаток наличных; **расхождение** (факт − расчёт) оформляется как излишек/недостача — отдельное движение кассы. - Размен (начальный остаток смены) — НЕ новое поступление: это те же деньги, что уже в кассе; он не задваивается как приход. ## Наша адаптация (food-market, простой режим) - Материализуем движения смены в `money_transactions` ПРИ ЗАКРЫТИИ (а не по каждому чеку) — проще для простого магазина, остаток кассы/эквайринга становится верным сразу после закрытия. Типы — `MoneyTransactionCategory` (RetailSalesCash/…/ShiftSurplus). - Карта → отдельный счёт «Эквайринг» смены (как расчётный счёт в МойСклад). - Размен не материализуем (деньги уже в кассе). Итог кассы после закрытия = факту наличных, если по кассе не было других операций. - Отличие: МойСклад проводит `retaildemand` в деньги сразу (живой остаток в течение смены); у нас остаток кассы меняется при закрытии, но «живой» нал смены для контроля выплат считается на лету (размен + продажи − возвраты + внесения − выплаты).