мета-данные страницы
Это старая версия документа!
A_Sales
Проект «AnaliticDB»
Реализация
Назначение
Нерепликационная таблица A_Sales из БД Срезы содержит изменеия сумм заказа
Поля таблицы
select aor.id , -- ВнНомер aor.dttm , -- Дата импорта записи aor.doc_id , -- Заказ docs.doc_id aor.dor_id , -- Заказ docs_order.id aor.date_ch , -- Дата изменеия суммы заказа aor.doc_date , -- Дата заказа aor.doc_num , -- № заказа aor.kind_id , -- Тип заказа aor.laud_serv , -- Стоимость заказа считать через doc_laud_services (1, если kind_id=1 and summ_from_details=1 and use_simple_laundry=0) aor.status_id , -- Статус заказа aor.net_sales , -- Изменение суммы заказа с учетом скидки = Чистая сумма продаж = sales - Скидка (дельта docs_order.kredit) aor.sales , -- Изменение суммы заказа без учета скидки aor.firm_id , -- Организация aor.contr_id , -- Контрагент aor.sclad_id , -- Приемный пункт (Склад приемки) from A_Sales aor -- Реализация
Формирование таблицы
Список заказов
Пока записываются итоговые суммы заказа.
select d.doc_id as doc_id, dor.id as dor_id, d.doc_date as date_ch, d.doc_date as doc_date, d.doc_num as doc_num, dor.kind_id as kind_id, dor.summ_from_details, dor.use_simple_laundry, dor.status_id as status_id, coalesce(dor.kredit,0) as net_sales, iif( (dor.kind_id=1) and (coalesce(dor.summ_from_details,0)=1) and (coalesce(dor.use_simple_laundry,0)=0), coalesce( (select sum(dl.contr_kredit) from doc_order_services dos left join doc_laud_services dl on dl.dos_id=dos.id where dos.doc_order_id=dor.id),0), coalesce(( select sum(coalesce(dos.qty_kredit,0)*dos.kfx*dos.price_rozn_kfx) from doc_order_services dos where dos.doc_order_id=dor.id and (dos.status_id<>7) ),0)+ coalesce(( select sum(coalesce(dol.qty_kredit,0)*dol.price) from doc_order_lines dol where dol.doc_order_id=dor.id ),0)) as Sales, d.firm_id as firm_id, d.contragent_id as contr_id, dor.sclad_kredit_id as sclad_id from docs d inner join docs_order dor on dor.doc_id=d.doc_id where (d.doc_date>=:p1) and (d.doc_date<=:p2)
laud_serv - признак, того что сумма заказа вычисляется через doc_laud_services.
laud_serv=(dor.kind_id=1) and (coalesce(dor.summ_from_details,0)=1) and (coalesce(dor.use_simple_laundry,0)=0)