Action disabled: source
мета-данные страницы
DOC_ORDER_PAYS
Оплата заказа
Назначение
Репликационная таблица doc_order_pays из БД Химчистка хранит ссылки на документы оплаты заказов
Поля таблицы
№ | Поле | Описание |
---|---|---|
1 | ID | ВнНомер товара |
2 | DOC_ORDER_ID | Ссылка на заказ, заполняется из DOCS_ORDER |
3 | DOC_TYPE | Тип документа, заполняется из DOC_TYPES |
4 | DOC_KASSA_ID | Ссылка на документ в кассовой оплате, связанный с DOCS_KASSA |
5 | DOC_BANK_ID | Ссылка на документ в банковской оплате, связанный с DOCS_BANK |
6 | DOC_CARD_ID | Ссылка на документ оплаты по карте, связанный с DOCS_CARD |
7 | DOC_BONUS_ID | Ссылка на документ оплаты бонусом, связанный с DOCS_BONUS |
8 | DOC_DEPOSIT_ID | Ссылка на документ оплаты депозитом, связанный с DOCS_DEPOSIT |
9 | DOC_ID | Ссылка на документ, заполняется из DOCS. Дублируется из соответствующей ссылки на оплату |
10 | GUID | Уникальный GUID оплаты, используется в мобильных сервисах |
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
Оплата заказов 1
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
Оплата заказов 2
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
Оплата заказов 3
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
Оплата заказов 4
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
Оплата заказов - проверка таблиц docs и docs_order
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'