B_BAL_KASSA

Проект «AnaliticDB»

Остатки в кассе

Назначение

Нерепликационная таблица B_BAL_KASSA из БД Срезы содержит суммы платежей по кассе и остатки в кассе на дату. Предназначена для вычисления остатков в кассе.

Поля таблицы

select
  bk.id          , -- ВнНомер
  bk.dttm        , -- Дата и время расчета
  bk.DT          , -- Состояние на дату
  bk.kassa_id    , -- Касса
  bk.pay_Cash    , -- Сумма оплат заказов наличными
  bk.db_Deposits , -- Сумма поступлений депозитов
  bk.Encashment  , -- Инкассация
  bk.other_cash  , -- Сумма прочих платежей
  bk.rest_Cash   , -- Сумма остатка в кассе
  bk.kassa_name    -- Касса
from  b_bal_kassa bk -- Остатки в кассе

dttm - Дата и время расчета.
DT - Задолженность на дату. Вычисляется задолженность на 00:00, то есть документы на указанную дату исключаются из расчета.

kassa_id - ID кассы в справочнике kasses из базы данных «Химчистка».
kassa_name - Касса - наименование кассы (kasses.name).

pay_Cash - Сумма оплат заказов наличными
db_Deposits - Сумма поступлений депозитов через кассу Encashment - Инкассация other_cash - Сумма прочих платежей rest_Cash - Сумма остатка в кассе

Формирование таблицы

Расчет выполняется функцией TMain.CalcB_BAL_KASSA

  1. В качестве даты расчета берется первое число месяца от выбранной даты, котора будет записана в поле DT «Задолженность на дату»
  2. В качестве базовой даты расчета берется первое число предыдущего месяца от даты расчета
  3. Считывается базовая запись из b_bal_kassa на базовую дату расчета
  4. Считаются обороты платежей за месяц из a_Payments
  5. К значениям базовой записи из b_bal_kassa добавляются обороты и расчитывается остатки в кассе

Вычисляется задолженность на 00:00, то есть документы на дату расчета исключаются из расчета.

Обороты платежей за месяц из a_Payments

select 
  z.kassa_id, 
  sum(iif((z.case_id=5) and (z.type_id=2),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as pay_Cash, 
  sum(iif((z.case_id=5) and (z.type_id=4),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as db_Deposits,
  sum(iif((z.case_id=5) and (z.type_id=5),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as Encashment, 
  sum(iif((z.case_id=5) and (z.type_id=1),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as other_cash  
from A_Payments z  
where (z.doc_date<:p1) and (z.doc_date>=:p2)
group by z.kassa_id 

Первый расчет выполняется на 01.01.2019 с начала существования базы данных where (z.doc_date<:p1)

b_bal_kassa на дату расчета

  • dttm - «Дата и время расчета» выставляется автоматически как системное время.
  • DT - «Задолженность на дату». Дату расчета, совпадающая с первым числом месяца на 00:00, поэтому документы на указанную дату исключаются из расчета.
  • pay_Cash - «Сумма оплат заказов наличными» = базовая.pay_Cash+обороты.pay_Cash
  • db_Deposits - «Сумма поступлений депозитов через кассу» = базовая.db_Deposits+обороты.db_Deposits
  • Encashment - «Инкассация» = базовая.Encashment+обороты.Encashment (будет отрицательная на ПП и положительная в центральной кассе).
  • other_cash - «Сумма прочих платежей» = базовая.other_cash+обороты.other_cash
  • rest_Cash - «Сумма остатка в кассе» = pay_Cash+db_Deposits+Encashment+other_cash
  • kassa_id - ID кассы в справочнике kasses из базы данных «Химчистка».
  • kassa_name - Касса - наименование кассы (kasses.name).

Использование таблицы

Дополнительная информация