Товарный отчет не сходится — различия между версиями
Agk (обсуждение | вклад) (Новая страница: «==Попробуйте выполнить скрипт== <nowiki> update doc_detail dd set price = (select price from parts p where p.id = dd.part_id) where abs(…») |
Olesya (обсуждение | вклад) (→Попробуйте выполнить скрипт) |
||
(не показано 7 промежуточных версии 3 участников) | |||
Строка 4: | Строка 4: | ||
set price = (select price from parts p where p.id = dd.part_id) | set price = (select price from parts p where p.id = dd.part_id) | ||
where abs(price -(select price from parts p where p.id = dd.part_id))>0.01; | where abs(price -(select price from parts p where p.id = dd.part_id))>0.01; | ||
+ | </nowiki> | ||
+ | <nowiki> | ||
update doc_detail | update doc_detail | ||
set summa = (price*quant+sum_dsc) | set summa = (price*quant+sum_dsc) | ||
where abs(summa-(price*quant+sum_dsc))>0.01; | where abs(summa-(price*quant+sum_dsc))>0.01; | ||
+ | </nowiki> | ||
+ | <nowiki> | ||
update docs d set d.summa = (select sum(dd.quant*p.price+dd.sum_dsc) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id) | update docs d set d.summa = (select sum(dd.quant*p.price+dd.sum_dsc) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id) | ||
where abs(d.summa - (select sum(dd.quant*p.price+dd.sum_dsc) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id)) > 0.01; | where abs(d.summa - (select sum(dd.quant*p.price+dd.sum_dsc) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id)) > 0.01; | ||
+ | </nowiki> | ||
+ | <nowiki> | ||
update doc_detail dd1 | update doc_detail dd1 | ||
set dd1.summa_o = (select p.price_o*dd.quant from doc_detail dd left join parts p on dd.part_id = p.id where dd.id = dd1.id) | set dd1.summa_o = (select p.price_o*dd.quant from doc_detail dd left join parts p on dd.part_id = p.id where dd.id = dd1.id) | ||
where abs(dd1.summa_o - (select p.price_o*dd.quant from doc_detail dd left join parts p on dd.part_id = p.id where dd.id = dd1.id)) > 0.01; | where abs(dd1.summa_o - (select p.price_o*dd.quant from doc_detail dd left join parts p on dd.part_id = p.id where dd.id = dd1.id)) > 0.01; | ||
+ | </nowiki> | ||
+ | <nowiki> | ||
update docs d | update docs d | ||
set d.summa_o = (select sum(dd.quant*p.price_o) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id) | set d.summa_o = (select sum(dd.quant*p.price_o) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id) | ||
where abs(summa_o - (select sum(dd.quant*p.price_o) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id)) > 0.01; | where abs(summa_o - (select sum(dd.quant*p.price_o) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id)) > 0.01; | ||
</nowiki> | </nowiki> | ||
+ | |||
+ | |||
+ | '''1. Выявление чеков у которы сумма чека по программе не совпадает с суммой отбитой по ККМ''' | ||
+ | |||
+ | select * from docs where | ||
+ | abs(summ1+summ2-summa)>0.01 and | ||
+ | status=1 and doc_type in (3,9) | ||
+ | |||
+ | '''2. Выявление чеков сумма которого не совпадает с детализацией документа''' | ||
+ | |||
+ | select * from docs d where abs(summa-(select sum(dd.summa) from doc_detail dd where dd.doc_id=d.id))>0.01 | ||
+ | and status=1 and doc_type in (3,9) | ||
+ | |||
+ | Также сумма расходов оптового и перемещений: | ||
+ | select * from docs d where abs(summa-(select sum(dd.summa) from doc_detail dd where dd.doc_id=d.id))>0.01 and status=1 and doc_type in (6,11) | ||
+ | |||
+ | '''3. Поочередно проверяем каждый документ и смотрим каие позиции прохидили по некорректным чекам''' | ||
+ | |||
+ | select * from doc_detail_active_log where doc_id=:doc_id | ||
+ | |||
+ | '''4. Расхождение даты проведения в docs и doc_detail''' | ||
+ | |||
+ | select list(distinct d.id, ',') from docs d left join doc_detail dd on dd.doc_id=d.id where dd.doc_commitdate<>cast(d.commitdate as dm_date) | ||
+ | |||
+ | |||
+ | '''5. Расхождение суммы чеков и суммы z отчета''' | ||
+ | |||
+ | <nowiki> | ||
+ | select * from PR_GET_CORUPTED_Z_REPORTS | ||
+ | </nowiki> | ||
+ | |||
+ | [[Файл:PR GET CORUPTED Z REPORTS.txt]] |
Текущая версия на 14:36, 20 января 2023
Попробуйте выполнить скрипт
update doc_detail dd set price = (select price from parts p where p.id = dd.part_id) where abs(price -(select price from parts p where p.id = dd.part_id))>0.01;
update doc_detail set summa = (price*quant+sum_dsc) where abs(summa-(price*quant+sum_dsc))>0.01;
update docs d set d.summa = (select sum(dd.quant*p.price+dd.sum_dsc) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id) where abs(d.summa - (select sum(dd.quant*p.price+dd.sum_dsc) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id)) > 0.01;
update doc_detail dd1 set dd1.summa_o = (select p.price_o*dd.quant from doc_detail dd left join parts p on dd.part_id = p.id where dd.id = dd1.id) where abs(dd1.summa_o - (select p.price_o*dd.quant from doc_detail dd left join parts p on dd.part_id = p.id where dd.id = dd1.id)) > 0.01;
update docs d set d.summa_o = (select sum(dd.quant*p.price_o) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id) where abs(summa_o - (select sum(dd.quant*p.price_o) from doc_detail dd left join parts p on dd.part_id = p.id where dd.doc_id = d.id)) > 0.01;
1. Выявление чеков у которы сумма чека по программе не совпадает с суммой отбитой по ККМ
select * from docs where abs(summ1+summ2-summa)>0.01 and status=1 and doc_type in (3,9)
2. Выявление чеков сумма которого не совпадает с детализацией документа
select * from docs d where abs(summa-(select sum(dd.summa) from doc_detail dd where dd.doc_id=d.id))>0.01 and status=1 and doc_type in (3,9)
Также сумма расходов оптового и перемещений: select * from docs d where abs(summa-(select sum(dd.summa) from doc_detail dd where dd.doc_id=d.id))>0.01 and status=1 and doc_type in (6,11)
3. Поочередно проверяем каждый документ и смотрим каие позиции прохидили по некорректным чекам
select * from doc_detail_active_log where doc_id=:doc_id
4. Расхождение даты проведения в docs и doc_detail
select list(distinct d.id, ',') from docs d left join doc_detail dd on dd.doc_id=d.id where dd.doc_commitdate<>cast(d.commitdate as dm_date)
5. Расхождение суммы чеков и суммы z отчета
select * from PR_GET_CORUPTED_Z_REPORTS