Fix su fabbisogno per linee di produzione: non veniva calcolata la qta già scaricata dagli ordini

This commit is contained in:
Giuseppe Scorrano 2021-02-19 17:08:28 +01:00
parent 669bc1a8f5
commit 6376668d15

View File

@ -36,53 +36,94 @@ public class ProdFabbisognoLineeProdViewModel {
" SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " +
" " + UtilityDB.valueToString(endDate) + " AS data_fine, " +
" " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " +
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep " +
"), " +
" custom_mtb_colr AS ( " +
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep), " +
" withdraw_mtb_colr AS ( " +
" SELECT cod_mart, " +
" partita_mag, " +
" SUM(qta_col) as qta_col, " +
" SUM(num_cnf) as num_cnf, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" FROM mtb_colr " +
" INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " +
" mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " +
" WHERE segno = -1 " +
" GROUP BY cod_mart, " +
" partita_mag, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" ), " +
" custom_mtb_colr AS (SELECT cod_mart, " +
" sum(qta_col) AS qta_col, " +
" sum(num_cnf) AS num_cnf, " +
" sum(qta_col) / sum(num_cnf) AS qta_cnf, " +
" posizione " +
" FROM mvw_sitart_udc_det_inventario " +
" GROUP BY cod_mart, posizione " +
" ), " +
" tmp_ord AS ( " +
" GROUP BY cod_mart, posizione), " +
" grouped_ord AS ( " +
" SELECT dtb_ordr.cod_mart, " +
" dtb_ordt.cod_jfas, " +
" dtb_ordt.cod_mdep, " +
" dtb_ordt.gestione, " +
" CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
" SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
" mtb_aart.unt_mis, " +
" SUM(ISNULL(custom_mtb_colr.qta_col, 0)) AS qta_col_versata, " +
" SUM(ISNULL(custom_mtb_colr.qta_cnf, 0)) AS qta_cnf_versata, " +
" SUM(ISNULL(custom_mtb_colr.num_cnf, 0)) AS num_cnf_versata" +
" SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " +
" SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata, " +
" jrl_fase_posizioni.posizione " +
" FROM dtb_ordr " +
" INNER JOIN dtb_ordt " +
" on dtb_ordr.gestione = dtb_ordt.gestione AND dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
" INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " +
" dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
" INNER JOIN jrl_fase_posizioni ON dtb_ordt.cod_jfas = jrl_fase_posizioni.cod_jfas " +
" LEFT OUTER JOIN custom_mtb_colr ON custom_mtb_colr.posizione = jrl_fase_posizioni.posizione AND " +
" dtb_ordr.cod_mart = custom_mtb_colr.cod_mart " +
" INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart " +
" LEFT OUTER JOIN withdraw_mtb_colr " +
" ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " +
" withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " +
" withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " +
" withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " +
" CROSS APPLY input_values " +
" WHERE dtb_ordt.gestione = 'L' " +
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
" AND jrl_fase_posizioni.posizione = input_values.linea_prod " +
" AND flag_evaso = 'I' " +
" AND dtb_ordr.flag_evaso_forzato = 'N' " +
" AND flag_annulla = 'N' " +
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
" AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
" GROUP BY dtb_ordr.cod_mart, " +
" mtb_aart.unt_mis " +
" ) " +
" AND jrl_fase_posizioni.posizione = input_values.linea_prod " +
" GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione, " +
" jrl_fase_posizioni.posizione " +
" ), " +
" tmp_ord AS (SELECT grouped_ord.cod_mart, " +
" mtb_aart.unt_mis, " +
" SUM(qta_ord) AS qta_ord, " +
" SUM(num_cnf_ord) AS num_cnf_ord, " +
" SUM(qta_col_scaricata) AS qta_col_scaricata, " +
" SUM(num_cnf_scaricata) AS num_cnf_scaricata, " +
" SUM(ISNULL(custom_mtb_colr.qta_col, 0)) AS qta_col_versata, " +
" SUM(ISNULL(custom_mtb_colr.num_cnf, 0)) AS num_cnf_versata " +
" " +
" FROM grouped_ord " +
" LEFT OUTER JOIN custom_mtb_colr " +
" ON custom_mtb_colr.posizione = grouped_ord.posizione AND " +
" grouped_ord.cod_mart = custom_mtb_colr.cod_mart " +
" INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " +
" CROSS APPLY input_values " +
" GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis) " +
" " +
"SELECT cod_mart, " +
" qta_ord, " +
" num_cnf_ord, " +
" unt_mis, " +
" qta_col_versata, " +
" num_cnf_versata, " +
" CASE WHEN qta_ord - qta_col_versata < 0 THEN 0 ELSE qta_ord - qta_col_versata END AS qta_fabbisogno, " +
" CASE WHEN num_cnf_ord - num_cnf_versata < 0 THEN 0 ELSE num_cnf_ord - num_cnf_versata END AS num_cnf_fabbisogno " +
" qta_col_scaricata, " +
" num_cnf_scaricata, " +
" CASE " +
" WHEN qta_ord - qta_col_versata - qta_col_scaricata < 0 THEN 0 " +
" ELSE qta_ord - qta_col_versata - qta_col_scaricata END AS qta_fabbisogno, " +
" CASE " +
" WHEN num_cnf_ord - num_cnf_versata - num_cnf_scaricata < 0 THEN 0 " +
" ELSE num_cnf_ord - num_cnf_versata - num_cnf_scaricata END AS num_cnf_fabbisogno " +
"FROM tmp_ord " +
"ORDER BY cod_mart";