мета-данные страницы
B_DEBT_CLIENT
Проект «AnaliticDB»
Задолженность по клиентам
Назначение
Нерепликационная таблица B_DEBT_CLIENT из БД Срезы содержит величину задолженности суммарную по всем заказам сгруппированную по клиентам на первое число каждого месяца.
Поля таблицы
select bc.id , -- ВнНомер bc.dttm , -- Дата и время расчета bc.DT , -- Задолженность на дату bc.contr_id , -- Контрагент bc.DT_Start , -- Дата возникновения задолженности 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.db_Deposits , -- Сумма поступлений депозитов bc.db_Bonuses , -- Сумма начисленных бонусов bc.rest_Deposits, -- Сумма остатка депозитов bc.rest_Bonuses , -- Сумма остатка бонусов bc.IS_Debts , -- Есть задолженность bc.IS_Name , -- Есть в справчнике contragents bc.contr_name -- Контрагент from b_debt_client bc -- Задолженность по клиентам
dttm - Дата и время расчета.
DT - Задолженность на дату. Вычисляется задолженность на 00:00, то есть документы на указанную дату исключаются из расчета.
contr_id - ID контрагента в справочнике contragents из базы данных «Химчистка».
contr_name - Контрагент - краткое наименование клиента (contragents.name).
DT_Start - Дата возникновения задолженности - дата первого заказа, который имеет задолженность.
IS_Debts - Есть задолженность - [1, если |Debts|>0.001 и 0, если |Debts|>0.001]. Предназначено для удобства визуальной обработки таблицы.
IS_Name - Есть в справчнике contragents - [1, если есть запись и 0, если запись отсутствует]. Предназначено для удобства визуальной обработки таблицы.
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 - Сумма оплат заказов через кредитные карты
db_Deposits - Сумма поступлений депозитов
db_Bonuses - Сумма начисленных бонусов
rest_Deposits - Сумма остатка депозитов - сумма на депозитных счетах клиентов вычисляется как сумма всех платежей, которые поступили на депозитные счета клиентов за минусом использованных.
rest_Bonuses - Сумма остатка бонусов - Сумма начисленных и неизрасходованных бонусов на счетах клиентов.
Формирование таблицы
Расчет выполняется функцией TMain.CalcB_DEBT_CLIENT
Расчет выполняется аналогично Задолженность общая, но с группировкой по клиентам.
- В качестве даты расчета берется первое число месяца от выбранной даты, котора будет записана в поле DT «Задолженность на дату»
- В качестве базовой даты расчета берется первое число предыдущего месяца от даты расчета
- Считывается базовая запись из b_debt_client на базовую дату расчета
- Считаются обороты реализации за месяц из A_Sales
- Считаются обороты платежей за месяц из a_Payments
- К значениям базовой записи из b_debt_client добавляются обороты и расчитывается задолженность
Обороты платежей за месяц из a_Payments
select z.contr_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.contr_id
Первый расчет выполняется на 01.01.2019 с начала существования базы данных where (z.doc_date<:p1)
Обороты реализации за месяц из A_Sales
select z.contr_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.contr_id
Первый расчет выполняется на 01.01.2019 с начала существования базы данных where (z.doc_date<:p1)
Дата возникновения задолженности из a_orders
select aor.Contr_id, min(aor.doc_date) as DT_Start from a_orders aor where ((aor.IS_Debts=1) or (aor.DT_NO_Debts>:p1)) group by aor.contr_id
b_debt_client на дату расчета
- 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
- db_Deposits - «Сумма поступлений депозитов» = базовая.db_Deposits+обороты.db_Deposits
- db_Bonuses - «Сумма начисленных бонусов» = базовая.db_Bonuses+обороты.db_Bonuses
- rest_Deposits - «Сумма остатка депозитов» = db_Deposits - pay_Deposits
- rest_Bonuses - «Сумма остатка бонусов» = db_Bonuses - pay_Bonuses
- contr_id - ID контрагента в справочнике contragents из базы данных «Химчистка».
- contr_name - Контрагент - краткое наименование клиента (contragents.name).
- DT_Start - Дата возникновения задолженности - дата первого заказа, который имеет задолженность.
- IS_Debts - Есть задолженность - [1, если |Debts|>0.001 и 0, если |Debts|>0.001]. Предназначено для удобства визуальной обработки таблицы.
- IS_Name - Есть в справчнике contragents - [1, если есть запись и 0, если запись отсутствует]. Предназначено для удобства визуальной обработки таблицы.