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

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
doc_order_pays [04.05.2020 09:51]
Анисютин создано
doc_order_pays [26.10.2020 06:47]
Строка 1: Строка 1:
-====== doc_order_pays ====== 
- 
-**Оплата заказа** 
- 
-===== Назначение ===== 
- 
-Репликационная таблица **doc_order_pays** из БД **Химчистка** хранит ссылки на документы оплаты заказов 
- 
-===== Поля таблицы ===== 
- 
-<sxh sql> 
-select 
-  dop.id ​             , -- 
-  dop.doc_order_id ​   , -- Оплачиваемый заказ 
-  dop.doc_type ​       , -- 
-  dop.doc_kassa_id ​   , -- Платеж через кассу 
-  dop.doc_bank_id ​    , -- Платеж через банк 
-  dop.doc_card_id ​    , -- Платеж через карту 
-  dop.doc_bonus_id ​   , -- Платеж через бонус 
-  dop.doc_deposit_id ​ , -- Платеж через депозит 
-  dop.DEP_ID ​         , -- 
-  dop.DEP_SRC_ID ​     , -- 
-  dop.OWN_ID ​         , -- 
-  dop.doc_id ​         , -- Документ об оплате 
-  dop.LAST_DEP_ID ​      -- 
-from doc_order_pays dop 
-</​sxh>​ 
- 
-==== Оплата заказа 1 ==== 
- 
-<sxh sql> 
-</​sxh>​ 
- 
-==== Оплата заказов 1 ==== 
- 
-<sxh sql> 
-select d.doc_num, 
-       ​d.debet,​ 
-       ​d.kredit,​ 
-       ​sum(coalesce(d2.debet,​ 0) - coalesce(d2.kredit,​ 0)) 
-from docs d 
-  left join docs_order dor on dor.doc_id = d.doc_id 
-  left join doc_order_pays dop on dop.doc_order_id = dor.id 
-  left join docs d2 on d2.doc_id = dop.doc_id 
-where d.doc_type = 5 
-group by 1,2,3 
-</​sxh>​ 
- 
-==== Оплата заказов 2 ==== 
- 
-<sxh sql> 
-select coalesce(sum(iif(dop.doc_kassa_id ​  is not null, coalesce(d.debet,​0) - coalesce(d.kredit,​0),​0)),​0) as SumKassa, 
-       ​coalesce(sum(iif(dop.doc_bank_id ​   is not null, coalesce(d.debet,​0) - coalesce(d.kredit,​0),​0)),​0) as SumBank, 
-       ​coalesce(sum(iif(dop.doc_card_id ​   is not null, coalesce(d.debet,​0) - coalesce(d.kredit,​0),​0)),​0) as SumCard, 
-       ​coalesce(sum(iif(dop.doc_deposit_id is not null, coalesce(d.debet,​0) - coalesce(d.kredit,​0),​0)),​0) as SumDeposit, 
-       ​coalesce(sum(iif(dop.doc_bonus_id ​  is not null, coalesce(d.debet,​0) - coalesce(d.kredit,​0),​0)),​0) as SumBonus 
-from doc_order_pays dop 
-  inner join docs d on d.doc_id = dop.doc_id 
-</​sxh>​ 
- 
-==== Оплата заказов 3 ==== 
- 
-<sxh sql> 
-select dop.doc_order_id, ​ 
-       ​sum(dk.debet) - sum(dk.kredit) ​ as kassa, ​ 
-       ​sum(dc.debet) - sum(dc.kredit) ​ as cards, 
-       ​sum(dd.debet) - sum(dd.kredit) ​ as deposits, ​ 
-       ​sum(dbs.debet)- sum(dbs.kredit) as bonuses, ​ 
-       ​sum(db.debet) - sum(db.kredit) ​ as banks 
-from doc_order_pays dop 
-  left join docs_kassa dk on dk.doc_id=dop.doc_kassa_id 
-  left join docs_card dc on dc.doc_id=dop.doc_card_id 
-  left join docs_deposit dd on dd.doc_id=dop.doc_deposit_id 
-  left join docs_bonus dbs on dbs.doc_id=dop.doc_bonus_id 
-  left join docs_bank db on db.doc_id=dop.doc_bank_id ​     
-group by 1 
-</​sxh>​ 
- 
-==== Оплата заказов 4 ==== 
- 
-<sxh sql> 
-select 
-        d.doc_id, 
-        dor.id, 
-        d.doc_date, ​     -- Дата заказ 
-        d.doc_num, ​      -- № заказа 
-        d.kredit, ​       -- начислено 
-        d.debet, ​         -- Уплачено 
-        d.kredit-d.debet as Delta, -- Задолженность 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_kassa dk on dk.doc_id=dop.doc_kassa_id 
-             where dop.doc_order_id=dor.id) as SumKassa, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_bank dk on dk.doc_id=dop.doc_bank_id 
-             where dop.doc_order_id=dor.id) as SumBank, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_card dk on dk.doc_id=dop.doc_card_id 
-             where dop.doc_order_id=dor.id) as SumCard, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_deposit dk on dk.doc_id=dop.doc_deposit_id 
-             where dop.doc_order_id=dor.id) as SumDeposit, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_bonus dk on dk.doc_id=dop.doc_bonus_id 
-             where dop.doc_order_id=dor.id) as SumBonus -- Платежи по заказу бонусами 
---        (SumKassa+SumBank+SumCard+SumDeposit+SumBonus) as SumTotal 
-from  docs d 
-left join docs_order dor on dor.doc_id=d.doc_id 
-where d.doc_type=5 -- заказ 
-      and d.doc_id=614036 
-</​sxh>​ 
- 
-==== Оплата заказов - проверка таблиц docs и docs_order ==== 
- 
-<sxh sql> 
-select ​ 
-        z.doc_id, 
-        --dor.id, 
-        z.doc_date, ​     -- Дата заказ 
-        z.doc_num, ​      -- № заказа 
-        z.kredit, ​       -- начислено 
-        z.debet, ​         -- Уплачено 
-        z.Delta, -- Задолженность 
- ​ coalesce(z.SumKassa,​0) as SumKassa, 
-        coalesce(z.SumBank,​0) as SumBank, 
-        coalesce(z.SumCard,​0) as SumCard, 
-        coalesce(z.SumDeposit,​0) as SumDeposit, 
-        coalesce(z.SumBonus,​0) as SumBonus, 
-        coalesce(SumKassa,​0)+coalesce(SumBank,​0)+coalesce(SumCard,​0)+coalesce(SumDeposit,​0)+coalesce(SumBonus,​0) as SumTotal, 
-        z.debet-(coalesce(SumKassa,​0)+coalesce(SumBank,​0)+coalesce(SumCard,​0)+coalesce(SumDeposit,​0)+coalesce(SumBonus,​0)) as differenc 
-from (select 
-        d.doc_id, 
-        --dor.id, 
-        d.doc_date, ​     -- Дата заказ 
-        d.doc_num, ​      -- № заказа 
-        d.kredit, ​       -- начислено 
-        d.debet, ​         -- Уплачено 
-        d.kredit-d.debet as Delta, -- Задолженность 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_kassa dk on dk.doc_id=dop.doc_kassa_id 
-             where dop.doc_order_id=dor.id) as SumKassa, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_bank dk on dk.doc_id=dop.doc_bank_id 
-             where dop.doc_order_id=dor.id) as SumBank, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_card dk on dk.doc_id=dop.doc_card_id 
-             where dop.doc_order_id=dor.id) as SumCard, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_deposit dk on dk.doc_id=dop.doc_deposit_id 
-             where dop.doc_order_id=dor.id) as SumDeposit, 
-        (select sum(dk.debet) from doc_order_pays dop 
-             inner join docs_bonus dk on dk.doc_id=dop.doc_bonus_id 
-             where dop.doc_order_id=dor.id) as SumBonus 
- from  docs d 
- inner join docs_order dor on dor.doc_id=d.doc_id 
--- left join docs_order dor on dor.doc_id=d.doc_id 
--- where d.doc_type=5 -- заказ 
-      ) z 
-where z.doc_num='​0000542'​ 
-</​sxh>​ 
- 
- 
- 
-===== Использование таблицы ===== 
- 
- 
-[[:​таблицы_данных|Назад]]\\ ​