мета-данные страницы
Это старая версия документа!
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
Расчет выполняется аналогично Задолженность общая, но с группировкой по приемным пунктам.
- В качестве даты расчета берется первое число месяца от выбранной даты, котора будет записана в поле DT «Задолженность на дату»
- В качестве базовой даты расчета берется первое число предыдущего месяца от даты расчета
- Считывается базовая запись из b_debt_cp на базовую дату расчета
- Считаются обороты реализации за месяц из A_Sales
- Считаются обороты платежей за месяц из a_Payments
- К значениям базовой записи из b_debt_cp добавляются обороты и расчитывается задолженность
Обороты платежей за месяц из 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).