VsMoroz / account-buh-documents

Automatically exported from code.google.com/p/account-buh-documents
0 stars 0 forks source link

Отчет Ковальчук -> Финдеп о утвержденных к оплате счетах #57

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 9 years ago
Фиксирую что бы не забыть, опишу детально 
после того как отладим web форму

Original issue reported on code.google.com by rf40...@gmail.com on 12 Apr 2015 at 9:50

GoogleCodeExporter commented 9 years ago
Точно помню что в него должны попадать:
-  все счета которые не оплачены еще и 
утвержденны к оплате до сегодня 15:00, 
+  так же те которые вообще сегодня были 
утверждены (без ограничения в 15:00) 
пользователем который залогинен в десктоп 
приложение.

В примечание вписывать если срочная оплата 
то "Срочно ! и ФИО того кто такой статус 
поставил) так же отдельным столбцом 
вписывать ID  из реестра ковальчук)

Шаблон excell  файлика и  sql  запроса я пришлю

Original comment by rf40...@gmail.com on 12 Apr 2015 at 10:01

GoogleCodeExporter commented 9 years ago
Давай сформируем еще одну кнопку "Реестр 
для фин.депа" возле кнопки "реестр 
бухгалтерии" (а кнопку "удалить" скрой).

Шаблон как должен выглядеть 
сформированный докумен в экселе во 
вложении, давай именно ресстр будем 
формировать в экселе.

Сейчас делаем реестр для разовых 
документов: (ежемесячные попозже, там 
шаблон отличается) 

SET @cnt=0;
SELECT @cnt:=@cnt+1 AS NN, fin.nplane as '№ задачи', fin.postav as 
'Поставщик', fin.numinv as 'НомСчета',''as 'Дата 
оплаты',
        aminvoice as 'Сумма','0' as 'Статус платежа', fin.artbudg as 'Статья бюджета','' as 'Регион', '' AS Комент
FROM 
((SELECT kli.client AS 'nplane', provider.client AS 
'postav',z_tab_invoice.num_invoice AS numinv,
         ROUND(z_tab_invoice.summa,2) AS aminvoice, z_tab_catal_type_budget.statiya  AS 'artbudg',
         z_tab_invoice.sap_id AS 'ts'
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30))
UNION ALL
(SELECT kli.client AS '№ задачи',provider.client AS 
'Прставщик',z_tab_invoice.num_invoice AS 'НомСчета',
       ROUND(z_tab_invoice.summa,2) AS 'Сумма', z_tab_catal_type_budget.statiya  AS 'Статья бюджета',
       z_tab_invoice.sap_id AS 'ts'
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id 
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN z_tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'z_tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30))) fin
ORDER BY fin.ts DESC

Задел на ближайшее будущее доделаю запрос 
в следующей итерации, пишу что бы не забыть:
* добавить что бы если счет срочно в оплату 
то в поле Комент вписывать Срочно в оплату, 
проставил такой то менеджер такого то числа
* модернизировать что бы в финреестр 
попадали все счета которые не оплаченны и  
подтверждены до сегодня до 15:00, а так же 
только те счета которые после 15:00 
подтвердил тот кто залогинен.

Original comment by rf40...@gmail.com on 26 Apr 2015 at 6:26

Attachments:

GoogleCodeExporter commented 9 years ago
О блин, забыл ID из реестра Ковальчук 
добавить в запрос, вот такой запрос 
правильный, (так же в эксель файлике добавь 
справа еще колонку "Таблица Ковальчук")

SET @cnt=0;
SELECT @cnt:=@cnt+1 AS NN, fin.nplane as '№ задачи', fin.postav as 
'Поставщик', fin.numinv as 'НомСчета',''as 'Дата 
оплаты',
        aminvoice as 'Сумма','0' as 'Статус платежа', fin.artbudg as 'Статья бюджета','' as 'Регион', '' AS Комент,
        fin.tblkoval AS 'ТаблицаКовальчук'
FROM 
((SELECT kli.client AS 'nplane', provider.client AS 
'postav',z_tab_invoice.num_invoice AS numinv,
         ROUND(z_tab_invoice.summa,2) AS aminvoice, z_tab_catal_type_budget.statiya  AS 'artbudg',
         z_tab_invoice.sap_id AS 'ts', z_tab_invoice.reestr_num_kovalchuk as tblkoval
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30))
UNION ALL
(SELECT kli.client AS '№ задачи',provider.client AS 
'Прставщик',z_tab_invoice.num_invoice AS 'НомСчета',
       ROUND(z_tab_invoice.summa,2) AS 'Сумма', z_tab_catal_type_budget.statiya  AS 'Статья бюджета',
       z_tab_invoice.sap_id AS 'ts',z_tab_invoice.reestr_num_kovalchuk as tblkoval
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id 
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN z_tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'z_tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30))) fin
ORDER BY fin.ts DESC

Original comment by rf40...@gmail.com on 26 Apr 2015 at 6:34

GoogleCodeExporter commented 9 years ago
Выполнил, v1.01.61

Original comment by panche...@gmail.com on 27 Apr 2015 at 11:59

GoogleCodeExporter commented 9 years ago
Попросили упорядочить для финдепа эту 
часть:

Для  разовых счетов, для реестра который 
формируется по нажатию на кнопку "Реестр 
для фин.депа"

1.Добавить в эксель файлике справа колонку 
"Подтвержден" в нем будет дата 
подтверждения (добавил и в запрос это новое 
поле под названием Подтвержден )
2.В поле Комент добавить статус счета если 
он срочный
3.Отсортировать записи по срочности и по 
дате подтверждения
4.Значения в поле статья бюджета сменить на 
капекс и опекс (для этого обнови две 
таблицы во вложении)
5. Отсортировать по новому:

SET @cnt=0;
SELECT @cnt:=@cnt+1 AS NN, fin.nplane as '№ задачи', fin.postav as 
'Поставщик', fin.numinv as 'НомСчета',''as 'Дата 
оплаты',
        aminvoice as 'Сумма','0' as 'Статус платежа', fin.artbudg as 'Статья бюджета','' as 'Регион',
        IF((SELECT prv.status   FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = fin.idnt ORDER BY prv.tmstamp DESC  LIMIT 1) = '20',
           (SELECT z_confirm_catal.state FROM `z_confirmation` prv LEFT JOIN  z_confirm_catal ON prv.status=z_confirm_catal.id WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = fin.idnt ORDER BY prv.tmstamp DESC  LIMIT 1),
           '') AS Комент,
        fin.tblkoval AS 'ТаблицаКовальчук',
        (SELECT DATE_FORMAT(prv.tmstamp,'%d.%m.%y') FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = fin.idnt ORDER BY prv.tmstamp DESC  LIMIT 1) AS Подтвержден
FROM 
((SELECT kli.client AS 'nplane', provider.client AS 
'postav',z_tab_invoice.num_invoice AS numinv,
         ROUND(z_tab_invoice.summa,2) AS aminvoice, z_tab_catal_type_budget_kovalchuk.kname  AS 'artbudg',
         z_tab_invoice.sap_id AS 'ts', z_tab_invoice.reestr_num_kovalchuk as tblkoval, z_tab_invoice.id as idnt
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN z_tab_catal_type_budget_kovalchuk ON 
z_tab_catal_type_budget.finKovalchuk = z_tab_catal_type_budget_kovalchuk.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30,50))
UNION ALL
(SELECT kli.client AS '№ задачи',provider.client AS 
'Прставщик',z_tab_invoice.num_invoice AS 'НомСчета',
       ROUND(z_tab_invoice.summa,2) AS 'Сумма', z_tab_catal_type_budget_kovalchuk.kname  AS 'Статья бюджета',
       z_tab_invoice.sap_id AS 'ts',z_tab_invoice.reestr_num_kovalchuk as tblkoval,  z_tab_invoice.id as idnt
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN z_tab_catal_type_budget_kovalchuk ON 
z_tab_catal_type_budget.finKovalchuk = z_tab_catal_type_budget_kovalchuk.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id 
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN z_tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'z_tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30,50))) fin
ORDER BY Комент DESC, Подтвержден ASC

Original comment by rf40...@gmail.com on 19 May 2015 at 12:48

Attachments:

GoogleCodeExporter commented 9 years ago
Выполнил, v1.01.63

Original comment by panche...@gmail.com on 19 May 2015 at 7:41

GoogleCodeExporter commented 9 years ago
Все гуд только в приложении чего то 
сломалась сортировка.
У меня в запросе сортировка сначала по 
срочности а в рамках каждой срочности по 
возрастанию по дате подтверждения

У тебя все то же самое но сортировка по дате 
подтверждения по уменьшению

Original comment by rf40...@gmail.com on 19 May 2015 at 11:39

GoogleCodeExporter commented 9 years ago
Замени запрос, в нем изменилась только 
последняя строка:

Было ORDER BY Комент DESC, Подтвержден ASC
Стало ORDER BY fin.artbudg ASC, Комент DESC, Подтвержден 
ASC

Также в эксель файлике в шаблоне  сделай 
столбец E (№ счёта) в формате Текстовый, а то 
оно сейчас в формате "Общиц" и само пытается 
адаптировать номера счетов  то в дату 
превратит то заменит точки на запятые - 
непорядок.

SET @cnt=0;
SELECT @cnt:=@cnt+1 AS NN, fin.nplane as '№ задачи', fin.postav as 
'Поставщик', fin.numinv as 'НомСчета',''as 'Дата 
оплаты',
        aminvoice as 'Сумма','0' as 'Статус платежа', fin.artbudg as 'Статья бюджета','' as 'Регион',
        IF((SELECT prv.status   FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = fin.idnt ORDER BY prv.tmstamp DESC  LIMIT 1) = '20',
           (SELECT z_confirm_catal.state FROM `z_confirmation` prv LEFT JOIN  z_confirm_catal ON prv.status=z_confirm_catal.id WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = fin.idnt ORDER BY prv.tmstamp DESC  LIMIT 1),
           '') AS Комент,
        fin.tblkoval AS 'ТаблицаКовальчук',
        (SELECT DATE_FORMAT(prv.tmstamp,'%d.%m.%y') FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = fin.idnt ORDER BY prv.tmstamp DESC  LIMIT 1) AS Подтвержден
FROM 
((SELECT kli.client AS 'nplane', provider.client AS 
'postav',z_tab_invoice.num_invoice AS numinv,
         ROUND(z_tab_invoice.summa,2) AS aminvoice, z_tab_catal_type_budget_kovalchuk.kname  AS 'artbudg',
         z_tab_invoice.sap_id AS 'ts', z_tab_invoice.reestr_num_kovalchuk as tblkoval, z_tab_invoice.id as idnt
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN z_tab_catal_type_budget_kovalchuk ON 
z_tab_catal_type_budget.finKovalchuk = z_tab_catal_type_budget_kovalchuk.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30,50))
UNION ALL
(SELECT kli.client AS '№ задачи',provider.client AS 
'Прставщик',z_tab_invoice.num_invoice AS 'НомСчета',
       ROUND(z_tab_invoice.summa,2) AS 'Сумма', z_tab_catal_type_budget_kovalchuk.kname  AS 'Статья бюджета',
       z_tab_invoice.sap_id AS 'ts',z_tab_invoice.reestr_num_kovalchuk as tblkoval,  z_tab_invoice.id as idnt
FROM z_tab_invoice 
LEFT JOIN  tab_klients  kli ON z_tab_invoice.client=kli.id
LEFT JOIN z_tab_catal_type_budget  ON z_tab_invoice.articl_budget 
=z_tab_catal_type_budget.id
LEFT JOIN z_tab_catal_type_budget_kovalchuk ON 
z_tab_catal_type_budget.finKovalchuk = z_tab_catal_type_budget_kovalchuk.id
LEFT JOIN tab_catal_dogovor ON z_tab_invoice.num_dogovor=tab_catal_dogovor.id 
LEFT JOIN z_connecttable ON tab_catal_dogovor.id = z_connecttable.tab_b_id AND 
z_connecttable.tab_b like 'tab_catal_dogovor'
LEFT JOIN z_tab_klients provider ON z_connecttable.tab_a_id = provider.id
WHERE z_tab_invoice.type_docum = '2'  AND z_connecttable.tab_a like 
'z_tab_klients' AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (SELECT prv.status    FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30,50))) fin
ORDER BY fin.artbudg ASC, Комент DESC, Подтвержден ASC

Original comment by rf40...@gmail.com on 19 May 2015 at 12:43

GoogleCodeExporter commented 9 years ago
выполнил, v1.01.64

Original comment by panche...@gmail.com on 19 May 2015 at 1:07

GoogleCodeExporter commented 9 years ago
По web интерфейсу осталось три открытых 
вопроса:

1. Проблема, когда название клиента длинное  
вместо того что бы переносить текст на 
вторую строчку  - поле " Клиент" начинает 
расширяться и теснить поле "Информация о 
счете" так что поле "Клиент" имеет ширину 
больше чем "Информация о счете", это не 
правильно - есть ли возможность сделать 
ширину полей Менеджер и Клиент 
фиксированной, что бы текст в них 
переносился на вторую строку ? 

2. Все та же, что бы по умолчанию фильтр 
Менеджер был = тому кто залогинился в 
страничку

3. Что бы работал статус счета - "Вернуть в 
неподтвержденные"

готовлю SQL запросы для  пункта 3 

Original comment by rf40...@gmail.com on 19 May 2015 at 9:34

GoogleCodeExporter commented 9 years ago
Вот измененные запросы и измененный файлик 
во вложении, саня а в этом файлике стоят 
двсе строчки подряд они правильные ?
case 2:
case 4:

5.Получить из БД счета "Требуется 
подтверждение менеджера"
SET @manager='%';
SET @client='%';
    SELECT z_tab_invoice.id as IDcheta, mang.nik as Mngr,klnt.client as Klient, 
        Concat (IF(z_tab_invoice.dt_of_pay > '0000-00-00',concat('Опл: ',DATE_FORMAT(z_tab_invoice.dt_of_pay,'%d.%m.%y'),', '), 
                    IF((SELECT prv.id   FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id LIMIT 1) IS NULL,'','<font color="red">не оплачен</font>, ')),
                detail_of_pay,', ',tab_town.town,' ',z_tab_invoice.address,', ',CAST(z_tab_invoice.sap_id AS CHAR),IF(z_tab_invoice.planner_id='0','',concat(', плнр ',
                CAST(z_tab_invoice.planner_id AS CHAR))),', <strong>',
                (SELECT partner.client
                FROM tab_catal_dogovor
                    LEFT JOIN `z_connecttable` ON `tab_catal_dogovor`.`id`=`z_connecttable`.`tab_b_id`
                    LEFT JOIN `tab_klients` partner ON  `z_connecttable`.`tab_a_id`=`partner`.`id`
                WHERE  tab_catal_dogovor.id = z_tab_invoice.num_dogovor  AND `z_connecttable`.`tab_a` like 'tab_klients' AND `z_connecttable`.`tab_b` like 'tab_catal_dogovor' LIMIT 1
                UNION ALL
                SELECT z_tab_klients.client
                FROM tab_catal_dogovor
                    LEFT JOIN `z_connecttable` ON `tab_catal_dogovor`.`id`=`z_connecttable`.`tab_b_id`
                    LEFT JOIN `z_tab_klients`  ON  `z_connecttable`.`tab_a_id`=`z_tab_klients`.`id`
                WHERE  tab_catal_dogovor.id = z_tab_invoice.num_dogovor  AND `z_connecttable`.`tab_a` like 'z_tab_klients' AND `z_connecttable`.`tab_b` like 'tab_catal_dogovor' LIMIT 1),
                 ' счет ',z_tab_invoice.num_invoice,'</strong> от ',DATE_FORMAT(z_tab_invoice.dt_invoice,'%d.%m.%y'),' отв ',otvetstv.nik,', ',z_tab_invoice.description,
                 IF ((SELECT prv.id FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id LIMIT 1) IS NULL,'',
                    (SELECT concat(' (<strong>Статус:</strong> ',z_confirm_catal.state,' ',DATE_FORMAT(z_confirmation.tmstamp,'%d.%m.%y'),', ',whostatus.nik,')')
                    FROM `z_confirmation`
                    LEFT JOIN tab_access whostatus ON z_confirmation.persona=whostatus.id
                    LEFT JOIN  z_confirm_catal ON z_confirmation.status=z_confirm_catal.id 
                    WHERE z_confirmation.sheet like 'z_tab_invoice' AND `z_confirmation`.`sheet_id` = z_tab_invoice.id ORDER BY z_confirmation.tmstamp DESC LIMIT 1)
                    )   
                 ) as Info, 
       z_tab_invoice.summa as SumScheta
FROM `z_tab_invoice` 
LEFT JOIN tab_access mang ON z_tab_invoice.manager=mang.id
LEFT JOIN tab_klients klnt ON z_tab_invoice.client=klnt.id
LEFT JOIN tab_town ON z_tab_invoice.town = tab_town.id
LEFT JOIN tab_access otvetstv ON z_tab_invoice.responsible=otvetstv.id
WHERE `type_docum` = 2 AND z_tab_invoice.manager LIKE @manager AND 
z_tab_invoice.client LIKE @client AND z_tab_invoice.dt_of_pay = '0000-00-00'
      AND (((SELECT prv.status  FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id LIMIT 1) IS NULL)
            OR ((SELECT prv.status  FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER by prv.tmstamp DESC LIMIT 1) IN (50)) )
ORDER BY klnt.client ASC, z_tab_invoice.sap_id DESC;

6.Получить из БД счета "Подтвержденные не 
оплаченные документы"

SET @manager='%';
SET @client='%';
    SELECT z_tab_invoice.id as IDcheta, mang.nik as Mngr,klnt.client as Klient, 
        Concat (IF(z_tab_invoice.dt_of_pay > '0000-00-00',concat('Опл: ',DATE_FORMAT(z_tab_invoice.dt_of_pay,'%d.%m.%y'),', '), 
                    IF((SELECT prv.id   FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id LIMIT 1) IS NULL,'','<font color="red">не оплачен</font>, ')),
                detail_of_pay,', ',tab_town.town,' ',z_tab_invoice.address,', ',CAST(z_tab_invoice.sap_id AS CHAR),IF(z_tab_invoice.planner_id='0','',concat(', плнр ',
                CAST(z_tab_invoice.planner_id AS CHAR))),', <strong>',
                (SELECT partner.client
                FROM tab_catal_dogovor
                    LEFT JOIN `z_connecttable` ON `tab_catal_dogovor`.`id`=`z_connecttable`.`tab_b_id`
                    LEFT JOIN `tab_klients` partner ON  `z_connecttable`.`tab_a_id`=`partner`.`id`
                WHERE  tab_catal_dogovor.id = z_tab_invoice.num_dogovor  AND `z_connecttable`.`tab_a` like 'tab_klients' AND `z_connecttable`.`tab_b` like 'tab_catal_dogovor' LIMIT 1
                UNION ALL
                SELECT z_tab_klients.client
                FROM tab_catal_dogovor
                    LEFT JOIN `z_connecttable` ON `tab_catal_dogovor`.`id`=`z_connecttable`.`tab_b_id`
                    LEFT JOIN `z_tab_klients`  ON  `z_connecttable`.`tab_a_id`=`z_tab_klients`.`id`
                WHERE  tab_catal_dogovor.id = z_tab_invoice.num_dogovor  AND `z_connecttable`.`tab_a` like 'z_tab_klients' AND `z_connecttable`.`tab_b` like 'tab_catal_dogovor' LIMIT 1),
                 ' счет ',z_tab_invoice.num_invoice,'</strong> от ',DATE_FORMAT(z_tab_invoice.dt_invoice,'%d.%m.%y'),' отв ',otvetstv.nik,', ',z_tab_invoice.description,
                 IF ((SELECT prv.id FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id LIMIT 1) IS NULL,'',
                    (SELECT concat(' (<strong>Статус:</strong> ',z_confirm_catal.state,' ',DATE_FORMAT(z_confirmation.tmstamp,'%d.%m.%y'),', ',whostatus.nik,')')
                    FROM `z_confirmation`
                    LEFT JOIN tab_access whostatus ON z_confirmation.persona=whostatus.id
                    LEFT JOIN  z_confirm_catal ON z_confirmation.status=z_confirm_catal.id 
                    WHERE z_confirmation.sheet like 'z_tab_invoice' AND `z_confirmation`.`sheet_id` = z_tab_invoice.id ORDER BY z_confirmation.tmstamp DESC LIMIT 1)
                    ) 
                 ) as Info, 
       z_tab_invoice.summa as SumScheta
FROM `z_tab_invoice` 
LEFT JOIN tab_access mang ON z_tab_invoice.manager=mang.id
LEFT JOIN tab_klients klnt ON z_tab_invoice.client=klnt.id
LEFT JOIN tab_town ON z_tab_invoice.town = tab_town.id
LEFT JOIN tab_access otvetstv ON z_tab_invoice.responsible=otvetstv.id
WHERE `type_docum` = 2 AND z_tab_invoice.manager LIKE @manager AND 
z_tab_invoice.client LIKE @client 
       AND (SELECT prv.status   FROM `z_confirmation` prv WHERE prv.sheet like 'z_tab_invoice' AND `prv`.`sheet_id` = z_tab_invoice.id ORDER BY prv.tmstamp DESC  LIMIT 1) NOT IN (30,50)
       AND z_tab_invoice.dt_of_pay = '0000-00-00'
ORDER BY klnt.client ASC, z_tab_invoice.sap_id DESC;

Original comment by rf40...@gmail.com on 19 May 2015 at 10:53

Attachments:

GoogleCodeExporter commented 9 years ago
В коментарии #8 я тебя немного ввел в оману, 
изменения чуточку больше, давай созвонимся 
и поправим в голосовом режиме в десктопе

Original comment by rf40...@gmail.com on 19 May 2015 at 10:54

GoogleCodeExporter commented 9 years ago
#10,11: выполнил. Файлы выслал.
Ответы:
1. Зафиксировать не получится, мешает "select" 
во главе столбца "Клиент". Он динамичный, 
зависит от длины элементов списка. Буду 
разбираться, возможно удасться его 
зафиксировать.
2. Сделано.
#11: эти две строчки подряд правильные, но в 
новой версии осталась одна.
5,6. Заменил запросы.   

Original comment by panche...@gmail.com on 20 May 2015 at 5:56

GoogleCodeExporter commented 9 years ago
Ура, теперь при первом открытии страницы - 
значение фильтра Менеджер = тому кто 
залогинился.

Можно ли сделать так что бы когда 
пользователь  справа вверху выбирает 
другие фильтры,  значение поля Менеджер и 
Клиент - не слетало на ноль, а оставалось 
таким каким оно есть на сейчас, ну тоест не 
менялось ?

Original comment by rf40...@gmail.com on 22 May 2015 at 8:28

GoogleCodeExporter commented 9 years ago
Постараюсь адаптировать.

Original comment by panche...@gmail.com on 22 May 2015 at 9:01

GoogleCodeExporter commented 9 years ago
О, заметил большую проблему, если я выбрал 
фильтр Менеджер (себя) и нажимаю кнопку  Select 
ALL - то  выделяются все счета, и мои и не мои, 
все которые требуют подтверждения 
менеджеров.

Можно ли что бы кнопка  Select All выбирала 
только те которые отфильтрованны и на 
экране ?

Если нельзя - давай скроем кнопку Select All. А 
то сейчас менеджеры залогинившись 
получают на экран только свои счета, 
нажимают  Select all и думая что подтверждают 
только свои - на самом деле подтверждают 
все счета.

Original comment by rf40...@gmail.com on 22 May 2015 at 9:26

GoogleCodeExporter commented 9 years ago
Эту проблему ты определил играя фильтрами, 
или после нажатия кнопки "Применить" и в MySQL?

Original comment by panche...@gmail.com on 22 May 2015 at 10:51

GoogleCodeExporter commented 9 years ago
Я проверял: 
1) в MySQL отправятся только те, которые видно 
на экране. А те которых не видно - 
отправляться не будут.
2) при выборе других фильтров будут 
выдиляться новые записи, т.к. выбран 
главный фильтр "Выделить все". 

Original comment by panche...@gmail.com on 22 May 2015 at 11:58

VasiliyM commented 9 years ago

Вынес запрос для формирования документа к финдепу в отдельный файлик. account-buh-documents/Query/Koval to findep.sql

Добавлю условия:

panches commented 9 years ago

Прочитано

VasiliyM commented 9 years ago

Изменил запрос, посмотри файлик, может быть тебе поменять названия полей на английские ? Или ты их поменяй а потом сохрани изменения поставив галочку Create a new branch for this commit and start a pull request я эти изменения пересмотрю и подтвержу

panches commented 9 years ago

Я не могу ничего добавлять в этот файл

VsMoroz commented 9 years ago

Смотрю что ты понемногу осваиваешься :) Примени для десктоп приложения для кнопки реетр финдепа, вот этот запрос account-buh-documents/Query/Koval to findep.sql

panches commented 9 years ago

А Koval to findep (eng).sql отличается от файла с русскими названиями

panches commented 9 years ago

Заменил запрос, v1.01.68