diff --git a/Application.cfc b/Application.cfc index bef7ba9..2de12f3 100644 --- a/Application.cfc +++ b/Application.cfc @@ -69,7 +69,7 @@ - + diff --git a/agreement.cfm b/agreement.cfm index 3e735c9..eee3aa2 100644 --- a/agreement.cfm +++ b/agreement.cfm @@ -300,7 +300,7 @@

- Строки спецификаций (#qItem.recordCount#) + Строки спецификаций (#qItem.recordCount#) (все суммы без вероятности)

diff --git a/etc/db/analytics.sql b/etc/db/analytics.sql new file mode 100644 index 0000000..73a96f0 --- /dev/null +++ b/etc/db/analytics.sql @@ -0,0 +1,183 @@ +select /*переделать выборку версий через group by*/ + /* dayscale.dt + ,a.contract_id + ,a.agreement_version + ,a.deal_uid + ,a.probability_perc + ,siv.dt_from + ,siv.dt_to + ,siv.quantity + ,siv.price*/ + DATE_TRUNC('month', siv.dt_from)::date AS month_install + ,sum(siv.price*siv.quantity*a.probability_perc/100) as cost_install + --,si.pricing_model_id + + from + (SELECT dd::date as dt FROM generate_series + ( '2024-01-01'::timestamp + , '2029-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt=siv.dt_from) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid) + join specification s on (si.specification_id=s.specification_id) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + where si.pricing_model_id=1 + group by DATE_TRUNC('month', siv.dt_from) + --order by ds.dt + union all + +select + /*dayscale.dt + ,a.contract_id + ,a.agreement_version + ,a.deal_uid + ,a.probability_perc + ,siv.dt_from + ,siv.quantity + ,siv.price + ,si.pricing_model_id*/ + DATE_TRUNC('month', dayscale.dt)::date AS month_i + ,sum(siv.price*siv.quantity*a.probability_perc/100/dayscale.days) as cost_install + + + from + (SELECT dd::date as dt, DATE_PART('days', + DATE_TRUNC('month', dd) + '1 MONTH'::INTERVAL - '1 DAY'::INTERVAL + ) days FROM generate_series + ( '2025-01-01'::timestamp + , '2025-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt >= siv.dt_from /**/) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid) + join specification s on (si.specification_id=s.specification_id AND si.pricing_model_id in (2,3)) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + + group by DATE_TRUNC('month', dayscale.dt) + order by DATE_TRUNC('month', dayscale.dt) + + select + DATE_TRUNC('month', dayscale.dt)::date AS month_start + ,sum(siv.price*siv.quantity*a.probability_perc/100) as income + from + (SELECT dd::date as dt FROM generate_series + ( '2023-01-01'::timestamp + , '2027-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt=siv.dt_from) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (1)) + join specification s on (si.specification_id=s.specification_id) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + where si.pricing_model_id=1 + group by DATE_TRUNC('month', dayscale.dt) + + union all + +select + DATE_TRUNC('month', dayscale.dt)::date + ,sum(siv.price*siv.quantity*a.probability_perc/100/dayscale.days) + from + (SELECT dd::date as dt, DATE_PART('days', + DATE_TRUNC('month', dd) + '1 MONTH'::INTERVAL - '1 DAY'::INTERVAL + ) days FROM generate_series + ( '2023-01-01'::timestamp + , '2027-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt >= siv.dt_from AND (siv.dt_to >= dayscale.dt OR siv.dt_to IS NULL)) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (2,3)) + join specification s on (si.specification_id=s.specification_id ) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + + group by DATE_TRUNC('month', dayscale.dt) + order by 1 + + + select + DATE_TRUNC('month', dayscale.dt)::date AS month_start + ,sum(siv.price*siv.quantity*a.probability_perc/100) as income + from (SELECT dd::date as dt FROM generate_series( + '2023-01-01'::timestamp + , '2027-12-31'::timestamp + , '1 day'::interval) dd + ) dayscale + join specification_item_version siv on (dayscale.dt=siv.dt_from) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (1)) + join specification s on (si.specification_id=s.specification_id) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + where si.pricing_model_id=1 + group by DATE_TRUNC('month', dayscale.dt) + + union all + + select + DATE_TRUNC('month', dayscale.dt)::date + ,sum(siv.price*siv.quantity*a.probability_perc/100/dayscale.days) + from (SELECT dd::date as dt + , DATE_PART('days', DATE_TRUNC('month', dd) + '1 MONTH'::INTERVAL - '1 DAY'::INTERVAL) days + FROM generate_series( + '2023-01-01'::timestamp + , '2027-12-31'::timestamp + , '1 day'::interval) dd + ) dayscale + join specification_item_version siv on (dayscale.dt >= siv.dt_from AND (siv.dt_to >= dayscale.dt OR siv.dt_to IS NULL)) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (2,3)) + join specification s on (si.specification_id=s.specification_id ) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + + group by DATE_TRUNC('month', dayscale.dt) + order by 1 + + \ No newline at end of file diff --git a/inc/menu.cfm b/inc/menu.cfm index 8883410..c4a7756 100644 --- a/inc/menu.cfm +++ b/inc/menu.cfm @@ -16,6 +16,9 @@ + + + @@ -43,11 +46,7 @@ - + \ No newline at end of file diff --git a/income_daily_rpt.cfm b/income_daily_rpt.cfm new file mode 100644 index 0000000..664a36f --- /dev/null +++ b/income_daily_rpt.cfm @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + select + --install + DATE_TRUNC('month', dayscale.dt)::date as m, + dayscale.dt::date, + sum(siv.price*siv.quantity*a.probability_perc/100) as income + from (SELECT dd::date as dt FROM generate_series( + '2023-01-01'::timestamp + , '2029-12-31'::timestamp + , '1 day'::interval) dd + ) dayscale + join specification_item_version siv on (dayscale.dt=siv.dt_from) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (1)) + join specification s on (si.specification_id=s.specification_id) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + group by dayscale.dt + + + union all + --fix and payg + select + DATE_TRUNC('month', dayscale.dt)::date as m, + dayscale.dt::date, + sum(siv.price*siv.quantity*a.probability_perc/100/dayscale.days) + from (SELECT dd::date as dt + , DATE_PART('days', DATE_TRUNC('month', dd) + '1 MONTH'::INTERVAL - '1 DAY'::INTERVAL) days + FROM generate_series( + '2023-01-01'::timestamp + , '2029-12-31'::timestamp + , '1 day'::interval) dd + ) dayscale + join specification_item_version siv on (dayscale.dt >= siv.dt_from AND (siv.dt_to >= dayscale.dt OR siv.dt_to IS NULL)) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (2,3)) + join specification s on (si.specification_id=s.specification_id ) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + group by dayscale.dt + + order by 1 + + + + + + + + + + + + + + + + + + Выручка по дням 2023-01-01 .. 2029-12-31 + + + + + + + + + + + +
+ + Дни и месяцы с нулевой суммой не показаны +
+ + + + + + + + + + + + + + +
ДатаВыручкаОкругл
#dateFormat(dt,"DD.MM.YYYY")##income##round(income)#
+ + +
+ + select m, sum(income) as income from qRead group by m order by m + + + Суммировано по месяцам: + + + + + + + + + + + + + + + +
МесяцВыручкаОкругл
#dateFormat(m,"MM.YYYY")##income##round(income)#
+
+ + + diff --git a/income_monthly_rpt.cfm b/income_monthly_rpt.cfm new file mode 100644 index 0000000..bd98485 --- /dev/null +++ b/income_monthly_rpt.cfm @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + select + DATE_TRUNC('month', dayscale.dt)::date AS dt + ,sum(siv.price*siv.quantity*a.probability_perc/100) as income + + from + (SELECT dd::date as dt FROM generate_series + ( '2023-01-01'::timestamp + , '2029-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt=siv.dt_from) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (1)) + join specification s on (si.specification_id=s.specification_id) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + group by DATE_TRUNC('month', dayscale.dt) + + union all + +select + + DATE_TRUNC('month', dayscale.dt)::date + ,sum(siv.price*siv.quantity*a.probability_perc/100/dayscale.days) + + + from + (SELECT dd::date as dt, DATE_PART('days', + DATE_TRUNC('month', dd) + '1 MONTH'::INTERVAL - '1 DAY'::INTERVAL + ) days FROM generate_series + ( '2023-01-01'::timestamp + , '2029-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt >= siv.dt_from AND (siv.dt_to >= dayscale.dt OR siv.dt_to IS NULL)) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (2,3)) + join specification s on (si.specification_id=s.specification_id ) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + + group by DATE_TRUNC('month', dayscale.dt) + order by 1 + + + + + + + + + + + +select count(*) as cnt from specification_item where 1=1 + + + + + + + + + + + + Выручка по месяцам 2023-01-01 .. 2029-12-31 + + + + + + + + + +Месяцы с нулевой суммой не показаны + + + + + + + + + + + + + + + + +
ДатаВыручкаОкругл
#dateFormat(dt,"MM.YYYY")##income##round(income)#
+ + +
+ diff --git a/income_rpt.cfm b/income_rpt.cfm new file mode 100644 index 0000000..dddfd62 --- /dev/null +++ b/income_rpt.cfm @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + select + DATE_TRUNC('month', siv.dt_from)::date AS month_start + ,sum(siv.price*siv.quantity*a.probability_perc/100) as income + + from + (SELECT dd::date as dt FROM generate_series + ( '2024-01-01'::timestamp + , '2029-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt=siv.dt_from) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (1)) + join specification s on (si.specification_id=s.specification_id) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + where si.pricing_model_id=1 + group by DATE_TRUNC('month', dayscale.dt) + + union all + +select + + DATE_TRUNC('month', dayscale.dt)::date + ,sum(siv.price*siv.quantity*a.probability_perc/100/dayscale.days) + + + from + (SELECT dd::date as dt, DATE_PART('days', + DATE_TRUNC('month', dd) + '1 MONTH'::INTERVAL - '1 DAY'::INTERVAL + ) days FROM generate_series + ( '2025-01-01'::timestamp + , '2025-12-31'::timestamp + , '1 day'::interval) dd) dayscale + join specification_item_version siv on (dayscale.dt >= siv.dt_from AND (siv.dt_to >= dayscale.dt OR siv.dt_to IS NULL)) + join specification_item si on (siv.specification_item_uid=si.specification_item_uid AND si.pricing_model_id in (2,3)) + join specification s on (si.specification_id=s.specification_id ) + join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version AND a.agreement_version=(select max(iiv.agreement_version) from specification_item_version iiv + join specification_item ii on (iiv.specification_item_uid=ii.specification_item_uid) + join specification isp on (ii.specification_id=isp.specification_id) + join agreement ia on (isp.contract_id=ia.contract_id AND iiv.agreement_version=ia.agreement_version) + where iiv.specification_item_uid=si.specification_item_uid + AND ia.is_actual + )) + join contract d on s.contract_id=d.contract_id + join contragent k on d.contragent_id=k.contragent_id + join svc on (si.svc_id=svc.svc_id) + + group by DATE_TRUNC('month', dayscale.dt) + order by DATE_TRUNC('month', dayscale.dt) + + + + + + + + + + + +select count(*) as cnt from specification_item where 1=1 + + + + + + + + + + + + Экземпляры услуг (текущее состояние) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + title="редактировать" class="edit"title="просмотр" class="view"> + + + #deal_uid# + + + #specification_item_uid# + + + #contract# #dateformat(dt_contract,"YYYY-MM-DD")# + + + #specification# + + + #version_prev# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #gridFooter# + Расчета по дням тут нет. + Дата по на самом деле нигде не используется. + Важное допущение: вероятность прошлой сделки принимается за 100% (то есть изменения имеют смысл только к действующему договору) + + + diff --git a/specification.cfm b/specification.cfm index 89aa5e9..5b48064 100644 --- a/specification.cfm +++ b/specification.cfm @@ -165,6 +165,10 @@ join agreement a on (siv.agreement_version=a.agreement_version AND a.contract_id=s.contract_id) where siv.specification_item_uid=i.specification_item_uid AND a.is_actual order by siv.agreement_version desc limit 1) as agreement + ,(select a.probability_perc from specification_item_version siv + join agreement a on (siv.agreement_version=a.agreement_version AND a.contract_id=s.contract_id) + where siv.specification_item_uid=i.specification_item_uid AND a.is_actual + order by siv.agreement_version desc limit 1) as probability_perc ,(select a.is_actual from specification_item_version siv join agreement a on (siv.agreement_version=a.agreement_version AND a.contract_id=s.contract_id) where siv.specification_item_uid=i.specification_item_uid AND a.is_actual @@ -264,7 +268,7 @@ #item_version_count# - #agreement# /#dateFormat(dt_agreement,'DD.MM.YYYY')# + #agreement# /#dateFormat(dt_agreement,'DD.MM.YYYY')# #probability_perc#% #agreement_version# @@ -291,6 +295,7 @@ a.agreement ,a.dt_agreement ,a.agreement_version + ,a.probability_perc ,a.is_actual ,(select count(*) from specification_item si join specification_item_version iv on (si.specification_item_uid=iv.specification_item_uid) @@ -328,6 +333,7 @@ Соглашение (имя) Дата согл. Н-р согл. + Вероятность % Действует Строк изменено @@ -343,6 +349,7 @@ #agreement_version# + #probability_perc# #changed_item_cnt# diff --git a/specification_item.cfm b/specification_item.cfm index 94e6a64..71b992c 100644 --- a/specification_item.cfm +++ b/specification_item.cfm @@ -195,6 +195,7 @@ ,a.agreement ,a.dt_agreement ,a.is_actual + ,a.probability_perc from specification_item_version siv left join specification_item i on (siv.specification_item_uid=i.specification_item_uid) left join specification s on (i.specification_id=s.specification_id) @@ -225,6 +226,7 @@ Соглашение Дата соглашения Согл. действ. + Вер-ть% Дата с Дата по Услуга (для печати) @@ -245,6 +247,7 @@ #agreement# #dateFormat(dt_agreement,'DD.MM.YYYY')# + #probability_perc# #dateFormat(dt_from, 'DD.MM.YYYY')# #dateFormat(dt_to, 'DD.MM.YYYY')# #specification_item_version# diff --git a/specification_item_ls.cfm b/specification_item_ls.cfm index 2418c1c..3b86d4e 100644 --- a/specification_item_ls.cfm +++ b/specification_item_ls.cfm @@ -38,6 +38,7 @@ svc.svc si.svc_id si.pricing_model_id + p.pricing_model_short svc.code siv.dt_from siv.dt_to @@ -58,6 +59,7 @@ join contract d on s.contract_id=d.contract_id join contragent k on d.contragent_id=k.contragent_id join svc on (si.svc_id=svc.svc_id) + join pricing_model p on (si.pricing_model_id=p.pricing_model_id) left outer join (select siv1.agreement_version ,siv1.specification_item_uid @@ -146,7 +148,10 @@ select count(*) as cnt from specification_item where 1=1 - + + + + @@ -168,6 +173,9 @@ select count(*) as cnt from specification_item where 1=1 #deal_uid# + + + #specification_item_uid# #contract# #dateformat(dt_contract,"YYYY-MM-DD")# @@ -190,12 +198,14 @@ select count(*) as cnt from specification_item where 1=1 + + diff --git a/specification_item_version.cfm b/specification_item_version.cfm index 3ebcb03..097b1bd 100644 --- a/specification_item_version.cfm +++ b/specification_item_version.cfm @@ -157,7 +157,7 @@ - #d.specification_item_uid# + #d.specification_item_uid# diff --git a/specification_version.cfm b/specification_version.cfm index 68e65b9..7096478 100644 --- a/specification_version.cfm +++ b/specification_version.cfm @@ -61,7 +61,7 @@ - select a.agreement, a.agreement_version, a.dt_agreement, a.is_actual + select a.agreement, a.agreement_version, a.dt_agreement, a.is_actual, a.probability_perc from agreement a where a.contract_id= AND a.agreement_version= @@ -143,7 +143,7 @@
Соглашение
@@ -203,16 +203,18 @@ ,p.pricing_model_short ,s.specification_id ,s.contract_id - ,(select count(*) from specification_item_version siv where siv.specification_item_uid=i.specification_item_uid) as item_version_count + ,(select count(*) from specification_item_version siv where siv.specification_item_uid=i.specification_item_uid) as item_version_count ,ver.agreement_version ,ver.specification_item_uid ,ver.agreement ,ver.dt_agreement ,ver.is_actual + ,ver.probability_perc ,ver.specification_item_version as specification_item ,ver.quantity ,ver.price ,ver.quantity*ver.price as cost + ,ver.quantity*ver.price*probability_perc/100 as cost_p ,ver.dt_from ,ver.dt_to from specification_item i @@ -225,6 +227,7 @@ ,a.contract_id ,a.dt_agreement ,a.is_actual + ,a.probability_perc ,siv.specification_item_version ,siv.quantity ,siv.price @@ -281,6 +284,7 @@ Кол-во Цена Стоимость + Ст-ть с вер. Дата с Дата по @@ -311,6 +315,7 @@ #quantity# #price# #cost# + #cost_p# #dateFormat(dt_from,'DD.MM.YYYY')# #dateFormat(dt_to,'DD.MM.YYYY')# @@ -318,7 +323,7 @@ #item_version_count# - #agreement# #dateFormat(dt_agreement,'DD.MM.YYYY')# + #agreement# #dateFormat(dt_agreement,'DD.MM.YYYY')# #probability_perc#% #qItem.agreement_version#