мета-данные страницы
  •  

Это старая версия документа!


B_DEBT_CP

Проект «AnaliticDB»

Задолженность по приемному пункту

CP - collection point - приемный пункт

Назначение

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

Поля таблицы

select
  bc.id           , -- ВнНомер
  bc.dttm         , -- Дата и время расчета
  bc.DT           , -- Задолженность на дату
  bc.Sclad_id     , -- Приемный пункт (Склад приемки)
  bc.Debts        , -- Сумма задолженности
  bc.Sales        , -- Сумма продаж
  bc.net_sales    , -- Сумма заказов с учетом скидки = Чистая сумма продаж
  bc.payments     , -- Сумма оплат
  bc.pay_Bonuses  , -- Сумма оплат заказов через бонусы
  bc.pay_Deposits , -- Сумма оплат заказов через депозит
  bc.pay_Bank     , -- Сумма оплат заказов через банк
  bc.pay_Card     , -- Сумма оплат заказов через кредитные карты
  bc.pay_Cash     , -- Сумма оплат заказов наличными
  bc.sclad_name     -- Приемный пункт
from b_debt_cp bc -- Задолженность по ПП

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

Sclad_id - ID ПП в справочнике sclads из базы данных «Химчистка».
sclad_name - Приемный пункт (Склад приемки) (sclads.name).

Debts - Сумма задолженности вычисляется как Net_sales - pay_ments

Sales - Сумма продаж вычисляется как сумма заказов без учета скидки.
Net_sales - Чистая сумма продаж вычисляется как сумма заказов с учетом скидки, то есть сумм к оплате.

payments - Сумма оплат вычисляется как сумма всех видов платежей по заказам = pay_Bonuses + pay_Deposits + pay_Cash + pay_Bank + pay_Card

pay_Bonuses - Сумма оплат заказов через бонусы
pay_Deposits - Сумма оплат заказов через депозит
pay_Cash - Сумма оплат заказов наличными
pay_Bank - Сумма оплат заказов через банк
pay_Card - Сумма оплат заказов через кредитные карты

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

Расчет выполняется функцией TMain.CalcB_DEBT_CP
Расчет выполняется аналогично Задолженность общая, но с группировкой по приемным пунктам.

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

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

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

select 
  z.sclad_id,
  sum(iif(z.type_id=2,coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as payments, 
  sum(iif((z.type_id=2) and (z.case_id=1),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as pay_Bonuses, 
  sum(iif((z.type_id=2) and (z.case_id=2),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as pay_Deposits, 
  sum(iif((z.type_id=2) and (z.case_id=3),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as pay_Bank, 
  sum(iif((z.type_id=2) and (z.case_id=4),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as pay_Card, 
  sum(iif((z.type_id=2) and (z.case_id=5),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as pay_Cash, 
  sum(iif((z.type_id=3) and (z.case_id=1),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as db_Bonuses, 
  sum(iif((z.type_id=4),coalesce(z.debet,0)-coalesce(z.kredit,0),0)) as db_Deposits 
from A_Payments z   
where (z.doc_date<:p1) and (z.doc_date>=:p2)
group by z.sclad_id 

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

Обороты реализации за месяц из A_Sales

select 
  z.sclad_id, 
  sum(z.net_sales) as net_sales, 
  sum(z.sales) as sales 
from A_Sales z  
where (z.doc_date<:p1) and (z.doc_date>=:p2)
group by z.sclad_id 

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

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

  • dttm - «Дата и время расчета» выставляется автоматически как системное время.
  • DT - «Задолженность на дату». Дату расчета, совпадающая с первым числом месяца на 00:00, поэтому документы на указанную дату исключаются из расчета.
  • Sales - «Сумма продаж» = базовая.Sales+обороты.Sales
  • Net_sales - «Чистая сумма продаж» = базовая.Net_sales+обороты.Net_sales
  • pay_Bonuses - «Сумма оплат заказов через бонусы» = базовая.pay_Bonuses+обороты.pay_Bonuses
  • pay_Deposits - «Сумма оплат заказов через депозит» = базовая.pay_Deposits+обороты.pay_Deposits
  • pay_Cash - «Сумма оплат заказов наличными» = базовая.pay_Cash+обороты.pay_Cash
  • pay_Bank - «Сумма оплат заказов через банк» = базовая.pay_Bank+обороты.pay_Bank
  • pay_Card - «Сумма оплат заказов через кредитные карты» = базовая.pay_Card+обороты.pay_Card
  • payments - «Сумма оплат заказов» = pay_Bonuses + pay_Deposits + pay_Cash + pay_Bank + pay_Card
  • Debts - «Сумма задолженности» = Net_sales - payments
  • Sclad_id - ID ПП в справочнике sclads из базы данных «Химчистка».
  • sclad_name - Приемный пункт (Склад приемки) (sclads.name).

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

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