"anagrafica_cesoiati", "column" => "codice_cesoiato"],*/ ["table" => "anagrafica_sviluppi", "column" => "codice_sviluppo"]/*, ["table" => "anagrafica_lamiere", "column" => "codice_lamiera"], ["table" => "anagrafica_rinforzi", "column" => "codice_rinforzo"], ["table" => "anagrafica_lane", "column" => "codice_lana"], ["table" => "anagrafica_lane_ceramiche", "column" => "codice_lana_ceramica"], ["table" => "anagrafica_rinforzi_piede", "column" => "codice_rinforzo_piede"], ["table" => "anagrafica_pannelli", "column" => "codice_pannello"], ["table" => "anagrafica_traversine_superiori", "column" => "codice_traversina_superiore"], ["table" => "anagrafica_traversine_inferiori", "column" => "codice_traversina_inferiore"], ["table" => "anagrafica_kit", "column" => "codice_kit"], ["table" => "anagrafica_cabine", "column" => "codice_cabina"], ["table" => "anagrafica_sottoinsiemi_corridoi", "column" => "codice_sottoinsieme_corridoio"], ["table" => "anagrafica_carrelli", "column" => "codice_carrello"]*/ ]; $codici_tables = []; foreach ($mapping as $obj) { $codici_tables[$obj['table']] = []; $q="SELECT " . $obj['column'] . " AS codice FROM mi_db_tecnico.dbo." . $obj['table'] . " WHERE profilo = 'mi40'"; $r=sqlsrv_query($conn,$q); if($r==FALSE) die("phperror".$q); else { while($row=sqlsrv_fetch_array($r)) { array_push($codici_tables[$obj['table']],utf8_encode($row['codice'])); } } } foreach ($codici_tables as $table => $list) { $anagraf = fopen('anagraf/anagraf_' . str_replace("anagrafica_","",$table) . '.txt', 'w'); $distbase = fopen('distbase/distbase_' . str_replace("anagrafica_","",$table) . '.txt', 'w'); $codici = []; $i=0; foreach ($list as $codice) { array_push($codici,$codice); $i++; if ($i % 500 === 0) { fwrite($anagraf, getAnagrafica($codici,$conn)); fwrite($distbase, getDistinta($codici,$conn)); $codici = []; } } fwrite($anagraf, getAnagrafica($codici,$conn)); fwrite($distbase, getDistinta($codici,$conn)); fclose($anagraf); fclose($distbase); } function getAnagrafica($codici,$conn) { $codici_in = "'".implode("','",$codici)."'"; $colHeaders = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X"]; $columns=[]; foreach ($colHeaders as $columnName) { switch ($columnName) { default: $column["type"]="text"; break; } $column["data"]=$columnName; $column["readOnly"]=true; array_push($columns,$column); } $data = ""; $q="Select codice_articolo as A,descrizione as B,unita_di_misura as C,qnt as D,Expr4 as E,Expr5 as F,Expr1 as G,Expr6 as H,Expr7 as I,Expr2 as J,Expr3 as K,classe_doga as L,peso_netto as M,peso_lordo as N,flag_producibilita as O,descrizione_lingua as P,hscode as Q,note_1 as R,note_2 as S,note_3 as T,note_4 as U,note_5 as V,note_6 as W,note_7 as X from (SELECT codice_rinforzo_piede AS [codice_articolo],descrizione as descrizione, 'Nr.' AS unita_di_misura, qnt, '' AS Expr4, '' AS Expr5, 'Rinpiede' AS Expr1, '' AS Expr6, '' AS Expr7, '' AS Expr2, '' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_rinforzi_piede union SELECT codice_cesoiato AS [codice_articolo codice_articolo codice_articolo], descrizione AS descrizione_articolo, 'Nr.' AS unita_di_misura, lung, halt AS Expr4, 0 AS Expr5, 'Cesoiato' AS Expr1, '' AS Expr6, 'Materiale finitura ' + finitura, '' AS Expr2, '' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_cesoiati union SELECT mi_db_tecnico.dbo.anagrafica_sviluppi.codice_sviluppo AS codice_articolo, mi_db_tecnico.dbo.anagrafica_sviluppi.descrizione AS descrizione_articolo, 'Nr.' AS unita_di_misura, mi_db_tecnico.dbo.anagrafica_sviluppi.lung, '' AS Expr4, mi_db_tecnico.dbo.anagrafica_sviluppi.halt, CASE WHEN COUNT(mi_db_tecnico.dbo.lavorazioni_sviluppi.id_lavorazione_sviluppo) = 0 THEN 'SvilnonFor' WHEN COUNT(mi_db_tecnico.dbo.lavorazioni_sviluppi.id_lavorazione_sviluppo) <> 0 THEN 'SvilFor' END AS Expr1, mi_db_tecnico.dbo.anagrafica_sviluppi.tipo, mi_db_tecnico.dbo.anagrafica_sviluppi.finitura, '' AS Expr2, mi_db_tecnico.dbo.anagrafica_sviluppi.codice_sviluppo + '.00' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_sviluppi LEFT OUTER JOIN mi_db_tecnico.dbo.lavorazioni_sviluppi ON mi_db_tecnico.dbo.anagrafica_sviluppi.id_sviluppo = mi_db_tecnico.dbo.lavorazioni_sviluppi.id_sviluppo GROUP BY mi_db_tecnico.dbo.anagrafica_sviluppi.codice_sviluppo, mi_db_tecnico.dbo.anagrafica_sviluppi.descrizione, mi_db_tecnico.dbo.anagrafica_sviluppi.lung, mi_db_tecnico.dbo.anagrafica_sviluppi.halt, mi_db_tecnico.dbo.anagrafica_sviluppi.tipo, mi_db_tecnico.dbo.anagrafica_sviluppi.finitura, mi_db_tecnico.dbo.anagrafica_sviluppi.codice_sviluppo + '.00' union SELECT codice_lamiera AS [codice_articolo codice_articolo codice_articolo], CASE WHEN descrizione = 'Angolo' THEN 'Pannello piegato' WHEN descrizione = 'MultiAngolo' THEN 'Pannello multiangolo' ELSE 'Pannello Dritto' END AS descrizione_articolo, 'Nr.' AS unita_di_misura, lung1, lung2, halt,CASE WHEN descrizione = 'MultiAngolo' THEN 'MulLamiera' WHEN lung2 > 0 THEN 'AngLamiera' ELSE 'PanLamiera' END AS Expr1, tipo, finitura, '' AS Expr2, codice_lamiera + '.00' AS Expr3, '0' AS classe_doga, '' AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_lamiere union SELECT codice_lana_ceramica AS [codice_articolo codice_articolo codice_articolo], descrizione, 'Nr.' AS unita_di_misura, lung, halt AS Expr4, 0 AS Expr5, 'lanaceramica' AS Expr1, '' AS Expr6, '' AS Expr7, '' AS Expr2, '' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_lane_ceramiche union SELECT codice_lana AS [codice_articolo codice_articolo codice_articolo], descrizione, 'Nr.' AS unita_di_misura, lung, halt AS Expr4, 0 AS Expr5, 'materassino' AS Expr1, '' AS Expr6, CASE WHEN RIGHT(descrizione, 2) = '25' THEN 'B15' ELSE 'B0' END AS Expr7, '' AS Expr2, '' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_lane union SELECT codice_traversina_inferiore AS [codice_articolo codice_articolo codice_articolo], descrizione, 'Nr.' AS unita_di_misura, lung, '' AS Expr4, '' AS Expr5, 'travinf' AS Expr1, '' AS Expr6, '' AS Expr7, '' AS Expr2, '' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_traversine_inferiori union SELECT codice_traversina_superiore AS [codice_articolo codice_articolo codice_articolo], descrizione, 'Nr.' AS unita_di_misura, lung, '' AS Expr4, '' AS Expr5, 'travsup' AS Expr1, '' AS Expr6, '' AS Expr7, '' AS Expr2, '' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_traversine_superiori union SELECT codice_rinforzo AS [codice_articolo codice_articolo codice_articolo], descrizione, 'Nr.' AS unita_di_misura, qnt, '' AS Expr4, '' AS Expr5, 'Rinforzo' AS Expr1, '' AS Expr6, '' AS Expr7, '' AS Expr2, '' AS Expr3, '0' AS classe_doga, 0 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_rinforzi union SELECT codice_lamiera AS [codice_articolo codice_articolo codice_articolo], descrizione, 'Nr.' AS unita_di_misura, halt, lung1 AS Expr4, spess AS Expr5, CASE WHEN SUBSTRING(tipo, 5, 5) = 'MISC' THEN 'PanLamiera' ELSE 'DogaLam' END AS Expr1, LEFT(tipo, 3) AS Expr6, finitura AS Expr7, SUBSTRING(tipo, 5, 5) AS Expr2, CASE WHEN SUBSTRING(tipo, 5, 5) = 'MISC' THEN codice_lamiera + '.00' ELSE '' END AS Expr3, '' AS classe_doga, 0 AS peso_netto, 0 AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_soffitti.dbo.anagrafica_lamiere union SELECT mi_soffitti.dbo.anagrafica_doghe.codice_doga AS [codice_articolo codice_articolo codice_articolo], 'Doga ' + SUBSTRING(mi_soffitti.dbo.anagrafica_lamiere.tipo, 5, 5) + ' ' + mi_soffitti.dbo.anagrafica_doghe.finitura + ' ' + LEFT(mi_soffitti.dbo.anagrafica_lamiere.tipo, 3) AS Expr8, 'Nr.' AS unita_di_misura, mi_soffitti.dbo.anagrafica_doghe.halt, mi_soffitti.dbo.anagrafica_lamiere.lung1 AS Expr4, 0 AS Expr5, 'Doga' AS Expr1, CASE WHEN SUBSTRING(mi_soffitti.dbo.anagrafica_lamiere.tipo, 5, 5) = 'MISC' THEN LEFT(anagrafica_sviluppi.tipo, 3) ELSE LEFT(mi_soffitti.dbo.anagrafica_lamiere.tipo, 3) END AS Expr6, mi_soffitti.dbo.anagrafica_doghe.finitura AS Expr7, SUBSTRING(mi_soffitti.dbo.anagrafica_lamiere.tipo, 5, 5) AS Expr2, '' AS Expr3, mi_soffitti.dbo.anagrafica_doghe.resis AS classe_doga, 1000 AS peso_netto, '' AS peso_lordo, CASE WHEN SUBSTRING(mi_soffitti.dbo.anagrafica_lamiere.tipo, 5, 5) = 'MISC' THEN 'H' ELSE '' END AS flag_producibilita, 'Staves for Cieling' AS descrizione_lingua, '7308 9059' AS hscode, CASE WHEN SUBSTRING(mi_soffitti.dbo.anagrafica_lamiere.tipo, 5, 5) = 'MISC' THEN producibilita_s ELSE '' END AS note_1, '' AS note_2, CASE WHEN SUBSTRING(mi_soffitti.dbo.anagrafica_lamiere.tipo, 5, 5) = 'MISC' THEN origine ELSE '' END AS note_3, CASE WHEN SUBSTRING(mi_soffitti.dbo.anagrafica_lamiere.tipo, 5, 5) = 'MISC' THEN LEFT(mi_soffitti.dbo.anagrafica_lamiere.tipo, 3) ELSE '' END AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_soffitti.dbo.anagrafica_lamiere INNER JOIN mi_soffitti.dbo.anagrafica_doghe ON mi_soffitti.dbo.anagrafica_lamiere.id_lamiera = mi_soffitti.dbo.anagrafica_doghe.id_lamiera LEFT OUTER JOIN mi_soffitti.dbo.anagrafica_sviluppi ON mi_soffitti.dbo.anagrafica_lamiere.id_sviluppo = mi_soffitti.dbo.anagrafica_sviluppi.id_sviluppo union SELECT DISTINCT mi_soffitti.dbo.anagrafica_colli.codice_collo AS [codice_articolo codice_articolo codice_articolo], CASE WHEN LEFT(anagrafica_colli.codice_collo, 2) = '+S' THEN 'Collo doghe Scuretto Corridoio' ELSE 'Collo doghe cabine Kit' END AS Expr8, 'Nr.' AS unita_di_misura, '' AS Expr9, '' AS Expr4, '' AS Expr5, 'Collo' AS Expr1, '' AS Expr6, '' AS Expr7, '' AS Expr2, '' AS Expr3, '' AS classe_doga, 1000 AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, 'Staves pack' AS descrizione_lingua, '7308 9059' AS hscode, '' AS note_1, '' AS note_2, CASE WHEN LEFT(anagrafica_colli.codice_collo, 2) = '+S' THEN origine ELSE '' END AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_soffitti.dbo.anagrafica_doghe INNER JOIN mi_soffitti.dbo.distinta_colli ON mi_soffitti.dbo.anagrafica_doghe.codice_doga = mi_soffitti.dbo.distinta_colli.codice RIGHT OUTER JOIN mi_soffitti.dbo.anagrafica_colli ON mi_soffitti.dbo.distinta_colli.codice_collo = mi_soffitti.dbo.anagrafica_colli.codice_collo union SELECT REPLACE(codice_articolo, '-', '') AS codice_articolo , Expr8, unita_di_misura, Expr9, Expr4, Expr5, Expr1, Expr6, MIN(Expr7) AS Expr7, Expr2, REPLACE(Expr3, '-', '') AS Expr3, classe_doga, SUM(peso_netto) AS Expr10, peso_lordo, flag_producibilita, descrizione_lingua, hscode, note_1, note_2, note_3, note_4, note_5, note_6, note_7 FROM (SELECT LEFT(mi_soffitti.dbo.anagrafica_maxi_colli.codice_maxi_collo, 11) AS codice_articolo, 'Nr.' AS unita_di_misura, '' AS Expr9, '' AS Expr4, '' AS Expr5, 'Pallet' AS Expr1, '' AS Expr6, derivedtbl_1.finitura AS Expr7, '' AS Expr2, LEFT(mi_soffitti.dbo.anagrafica_maxi_colli.codice_maxi_collo, 11) + '.00' AS Expr3, '' AS classe_doga, ISNULL(derivedtbl_1.peso_cad, '') AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, 'Staves pallet' AS descrizione_lingua, '7308 9059' AS hscode, '' AS note_1, '' AS note_2, ISNULL(derivedtbl_1.origine, '') AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7, mi_soffitti.dbo.anagrafica_maxi_colli.descrizione AS Expr8 FROM mi_soffitti.dbo.colli_maxi_colli INNER JOIN (SELECT mi_soffitti.dbo.colli.id_collo, MIN(mi_soffitti.dbo.doghe.origine) AS origine, SUM(mi_soffitti.dbo.doghe.peso_cad) AS peso_cad, MIN(mi_soffitti.dbo.doghe.producibilita_s) AS producibilita_s, MIN(mi_soffitti.dbo.doghe.finitura) AS finitura, mi_soffitti.dbo.colli.codice_collo FROM mi_soffitti.dbo.colli INNER JOIN mi_soffitti.dbo.doghe_colli ON mi_soffitti.dbo.colli.id_collo = mi_soffitti.dbo.doghe_colli.id_collo INNER JOIN mi_soffitti.dbo.doghe ON mi_soffitti.dbo.doghe_colli.id_doga = mi_soffitti.dbo.doghe.id_doga GROUP BY mi_soffitti.dbo.colli.id_collo, mi_soffitti.dbo.colli.codice_collo) AS derivedtbl_1 ON mi_soffitti.dbo.colli_maxi_colli.id_collo = derivedtbl_1.id_collo INNER JOIN mi_soffitti.dbo.anagrafica_maxi_colli ON mi_soffitti.dbo.colli_maxi_colli.id_maxi_collo = mi_soffitti.dbo.anagrafica_maxi_colli.id_maxi_collo) AS t99k GROUP BY codice_articolo, Expr8, unita_di_misura, Expr9, Expr4, Expr5, Expr1, Expr6, Expr2, Expr3, classe_doga, peso_lordo, flag_producibilita, descrizione_lingua, hscode, note_1, note_2, note_3, note_4, note_5, note_6, note_7 union SELECT mi_soffitti.dbo.anagrafica_soffitti.codice_soffitto AS codice_articolo , mi_soffitti.dbo.anagrafica_soffitti.descrizione AS Expr9, 'Nr.' AS unita_di_misura, '' AS Expr8, '' AS Expr4, '' AS Expr5, 'Soffitto' AS Expr1, '' AS Expr6, derivedtbl_1.finitura AS Expr7, '' AS Expr2, mi_soffitti.dbo.anagrafica_soffitti.codice_soffitto + '.00' AS Expr3, '' AS classe_doga, ISNULL(derivedtbl_1.peso_cad, '') AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, 'Cabin/Corridor Ceiling' AS descrizione_lingua, '7308 9059' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_soffitti.dbo.anagrafica_soffitti INNER JOIN (SELECT SUM(mi_soffitti.dbo.doghe.peso_cad) AS peso_cad, MIN(mi_soffitti.dbo.doghe.finitura) AS finitura, mi_soffitti.dbo.soffitti.id_soffitto, mi_soffitti.dbo.soffitti.codice_soffitto FROM mi_soffitti.dbo.colli INNER JOIN mi_soffitti.dbo.doghe_colli ON mi_soffitti.dbo.colli.id_collo = mi_soffitti.dbo.doghe_colli.id_collo INNER JOIN mi_soffitti.dbo.doghe ON mi_soffitti.dbo.doghe_colli.id_doga = mi_soffitti.dbo.doghe.id_doga INNER JOIN mi_soffitti.dbo.colli_soffitti ON mi_soffitti.dbo.colli.id_collo = mi_soffitti.dbo.colli_soffitti.id_collo INNER JOIN mi_soffitti.dbo.soffitti ON mi_soffitti.dbo.colli_soffitti.id_soffitto = mi_soffitti.dbo.soffitti.id_soffitto GROUP BY mi_soffitti.dbo.soffitti.id_soffitto, mi_soffitti.dbo.soffitti.codice_soffitto UNION SELECT SUM(doghe_1.peso_cad) AS peso_cad, MIN(doghe_1.finitura) AS finitura, soffitti_1.id_soffitto, soffitti_1.codice_soffitto FROM mi_soffitti.dbo.doghe AS doghe_1 INNER JOIN mi_soffitti.dbo.doghe_soffitti ON doghe_1.id_doga = mi_soffitti.dbo.doghe_soffitti.id_doga INNER JOIN mi_soffitti.dbo.soffitti AS soffitti_1 ON mi_soffitti.dbo.doghe_soffitti.id_soffitto = soffitti_1.id_soffitto GROUP BY soffitti_1.id_soffitto, soffitti_1.codice_soffitto) AS derivedtbl_1 ON mi_soffitti.dbo.anagrafica_soffitti.id_soffitto = derivedtbl_1.id_soffitto union sELECT mi_soffitti.dbo.anagrafica_sviluppi.codice_sviluppo AS [codice_articolo codice_articolo codice_articolo], mi_soffitti.dbo.anagrafica_sviluppi.descrizione AS Expr8, 'Nr.' AS unita_di_misura, mi_soffitti.dbo.anagrafica_sviluppi.lung, mi_soffitti.dbo.anagrafica_sviluppi.spess, mi_soffitti.dbo.anagrafica_sviluppi.halt AS Expr5, 'SvilnonFor' AS Expr1, LEFT(mi_soffitti.dbo.anagrafica_lamiere.tipo, 3) AS Expr6, mi_soffitti.dbo.anagrafica_sviluppi.finitura AS Expr7, 'MISC' AS Expr3, mi_soffitti.dbo.anagrafica_sviluppi.codice_sviluppo + '.00' AS uuu, '' AS classe_doga, '' AS peso_netto, '' AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_soffitti.dbo.anagrafica_sviluppi INNER JOIN mi_soffitti.dbo.anagrafica_lamiere ON mi_soffitti.dbo.anagrafica_sviluppi.id_sviluppo = mi_soffitti.dbo.anagrafica_lamiere.id_sviluppo union SELECT codice_lana AS [codice_articolo codice_articolo codice_articolo], descrizione AS Expr8, 'Nr.' AS unita_di_misura, lung, halt AS Expr5, spess, 'Lana Roccia' AS Expr1, '' AS Expr6, 'B15' AS Expr7,'' as expr2, '' AS Expr3, '' AS classe_doga, '' AS peso_netto, 0 AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_soffitti.dbo.anagrafica_lane union SELECT codice_cesoiato AS [codice_articolo codice_articolo codice_articolo], descrizione AS Expr8, 'Nr.' AS unita_di_misura, halt AS Expr5, lung, 0 AS Expr2, 'Cesoiato' AS Expr1, '' AS Expr6, 'Materiale finitura ' + finitura AS Expr7, '' as expr2, '' AS Expr3, '' AS classe_doga, 0 AS peso_netto, 0 AS peso_lordo, '' AS flag_producibilita, '' AS descrizione_lingua, '' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_soffitti.dbo.anagrafica_cesoiati union select * from esportazione_pesi_gea_cabine_view --ok fino a qio union select codice_articolo, descrizione_articolo, unita_di_misura, larghezza, altezza, profondita, significato_variabile_a_seconda_della_tipologia_1, significato_variabile_a_seconda_della_tipologia_2, significato_variabile_a_seconda_della_tipologia_3, tipo_doga, riferimento_o_disegno, classe_doga,convert(varchar,peso_netto),convert(varchar,peso_lordo), flag_producibilita, descrizione_lingua, hscode,convert(varchar,note_1), note_2, note_3, note_4, note_5, note_6, note_7 from esportazione_pesi_gea_kit_view union select * from esportazione_pesi_gea_pannelli_view union select * from esportazione_pesi_gea_sottoinsiemi_corridoi_view union SELECT anagrafica_carrelli.codice_carrello, anagrafica_carrelli.descrizione, 'Nr.' AS unita_di_misura, '' AS Expr8, '' AS Expr4, '' AS Expr5, 'Carrello' AS Expr1, '' AS Expr6, '' AS Expr7, '' AS Expr2, '' AS Expr3, CONVERT(VARCHAR(MAX),peso_qnt_carrelli.superficie) AS Expr10, peso_qnt_carrelli.peso, '' AS peso_lordo, '' AS flag_producibilita, 'Bulkheads Trolley' AS descrizione_lingua, '94069038' AS hscode, '' AS note_1, '' AS note_2, '' AS note_3, '' AS note_4, '' AS note_5, '' AS note_6, '' AS note_7 FROM mi_db_tecnico.dbo.anagrafica_carrelli AS anagrafica_carrelli INNER JOIN mi_db_tecnico.dbo.peso_qnt_carrelli AS peso_qnt_carrelli ON anagrafica_carrelli.id_carrello = peso_qnt_carrelli.id_carrello ) as t where codice_articolo in ($codici_in) order by codice_articolo"; $r=sqlsrv_query($conn,$q); if($r==FALSE) { die("phperror".$q); } else { while($row=sqlsrv_fetch_array($r)) { $rowObj=[]; foreach ($columns as $column_lcl) { if($column_lcl["type"] == 'text') array_push($rowObj,utf8_encode($row[$column_lcl["data"]])); else array_push($rowObj,round($row[$column_lcl["data"]],2)); } $data .= implode("\t",$rowObj) . "\n"; } } return $data; } function getDistinta($codici,$conn) { $codici_in = "'".implode("','",$codici)."'"; $colHeaders = ["A","B","C","D","E","F","G","H"]; $columns=[]; foreach ($colHeaders as $columnName) { switch ($columnName) { default: $column["type"]="text"; break; } $column["data"]=$columnName; $column["readOnly"]=true; array_push($columns,$column); } $data = ""; $virgolette = '"'; $q="select codice_padre AS A, codice AS B, qnt AS C, pos AS D, fase_pr1 AS E, pr2 AS F, posnum AS G, CabRif AS H from (SELECT TOP (100) PERCENT codice_rinforzo_piede as codice_padre, codice, qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_rinforzi_piede union all SELECT mi_db_tecnico.dbo.cesoiati.codice_cesoiato, mi_db_tecnico.dbo.materie_prime.codice_materia_prima AS codice, ROUND(mi_db_tecnico.dbo.cesoiati.lung * mi_db_tecnico.dbo.cesoiati.halt / 1000000, 1) AS qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.cesoiati INNER JOIN mi_db_tecnico.dbo.materie_prime ON mi_db_tecnico.dbo.cesoiati.id_materia_prima = mi_db_tecnico.dbo.materie_prime.id_materia_prima union all SELECT TOP (100) PERCENT codice_sviluppo, codice, qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_sviluppi WHERE tabella <> 'lavorazioni_sviluppi' union all SELECT TOP (100) PERCENT codice_lamiera, codice, qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_lamiere WHERE (NOT (codice LIKE '000%')) union all SELECT TOP (100) PERCENT codice_lana_ceramica, codice, qnt AS Expr1, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_lane_ceramiche_cv union all SELECT TOP (100) PERCENT codice_lana, codice, qnt AS Expr1, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_lane_cv WHERE tabella <> 'lavorazioni_lane' AND (NOT (codice LIKE '000%')) union all SELECT TOP (100) PERCENT codice_traversina_inferiore, codice, qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_traversine_inferiori union all SELECT TOP (100) PERCENT codice_traversina_superiore, codice, qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_traversine_superiori union all SELECT TOP (100) PERCENT codice_rinforzo, codice, qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_rinforzi union all select codice_kit, codice_pannello, qnt,convert(varchar,pos), '' as fase_pr1,'' as pr2, '' as posnum, '' as cabrif from (select tr.codice_kit, tr.codice_pannello, tr.qnt, tr.r-trm.nm+1 as pos from (SELECT TOP (100) PERCENT row_number() over (ORDER BY kit_1.codice_kit, mi_db_tecnico.dbo.pannelli_kit.posx) as r,mi_db_tecnico.dbo.pannelli_kit.id_pannello_kit, kit_1.codice_kit, mi_db_tecnico.dbo.pannelli.codice_pannello, mi_db_tecnico.dbo.pannelli_kit.qnt, mi_db_tecnico.dbo.pannelli_kit.posx FROM mi_db_tecnico.dbo.kit AS kit_1 INNER JOIN mi_db_tecnico.dbo.pannelli_kit ON kit_1.id_kit = mi_db_tecnico.dbo.pannelli_kit.id_kit INNER JOIN mi_db_tecnico.dbo.pannelli ON mi_db_tecnico.dbo.pannelli_kit.id_pannello = mi_db_tecnico.dbo.pannelli.id_pannello ORDER BY kit_1.codice_kit, mi_db_tecnico.dbo.pannelli_kit.posx) as tr inner join (select codice_kit,min(r) as nm from (SELECT TOP (100) PERCENT row_number() over (ORDER BY kit_1.codice_kit, mi_db_tecnico.dbo.pannelli_kit.posx) as r,mi_db_tecnico.dbo.pannelli_kit.id_pannello_kit, kit_1.codice_kit, mi_db_tecnico.dbo.pannelli.codice_pannello, mi_db_tecnico.dbo.pannelli_kit.qnt, mi_db_tecnico.dbo.pannelli_kit.posx FROM mi_db_tecnico.dbo.kit AS kit_1 INNER JOIN mi_db_tecnico.dbo.pannelli_kit ON kit_1.id_kit = mi_db_tecnico.dbo.pannelli_kit.id_kit INNER JOIN mi_db_tecnico.dbo.pannelli ON mi_db_tecnico.dbo.pannelli_kit.id_pannello = mi_db_tecnico.dbo.pannelli.id_pannello ORDER BY kit_1.codice_kit, mi_db_tecnico.dbo.pannelli_kit.posx) as trmin group by codice_kit) as trm on tr.codice_kit = trm.codice_kit union all SELECT mi_db_tecnico.dbo.kit.codice_kit, mi_db_tecnico.dbo.materie_prime.codice_materia_prima, CASE WHEN fattore_conversione_gea IS NULL THEN qnt WHEN modo_calcolo_gea = 'Lung' THEN qnt * fattore_conversione_gea ELSE qnt * fattore_conversione_gea END AS qnt, '' AS Expr1 FROM mi_db_tecnico.dbo.kit INNER JOIN mi_db_tecnico.dbo.materie_prime_kit ON mi_db_tecnico.dbo.kit.id_kit = mi_db_tecnico.dbo.materie_prime_kit.id_kit INNER JOIN mi_db_tecnico.dbo.materie_prime ON mi_db_tecnico.dbo.materie_prime_kit.id_materia_prima = mi_db_tecnico.dbo.materie_prime.id_materia_prima union all SELECT kit_5.codice_kit, mi_db_tecnico.dbo.lane_ceramiche.codice_lana_ceramica, mi_db_tecnico.dbo.lane_ceramiche_kit.qnt, '' FROM mi_db_tecnico.dbo.kit AS kit_5 INNER JOIN mi_db_tecnico.dbo.lane_ceramiche_kit ON kit_5.id_kit = mi_db_tecnico.dbo.lane_ceramiche_kit.id_kit INNER JOIN mi_db_tecnico.dbo.lane_ceramiche ON mi_db_tecnico.dbo.lane_ceramiche_kit.id_lana_ceramica = mi_db_tecnico.dbo.lane_ceramiche.id_lana_ceramica union all SELECT kit_4.codice_kit, mi_db_tecnico.dbo.rinforzi.codice_rinforzo, mi_db_tecnico.dbo.rinforzi_kit.qnt, '' FROM mi_db_tecnico.dbo.kit AS kit_4 INNER JOIN mi_db_tecnico.dbo.rinforzi_kit ON kit_4.id_kit = mi_db_tecnico.dbo.rinforzi_kit.id_kit INNER JOIN mi_db_tecnico.dbo.rinforzi ON mi_db_tecnico.dbo.rinforzi_kit.id_rinforzo = mi_db_tecnico.dbo.rinforzi.id_rinforzo union all SELECT kit_3.codice_kit, mi_db_tecnico.dbo.traversine_superiori.codice_traversina_superiore, mi_db_tecnico.dbo.traversine_superiori_kit.qnt, '' FROM mi_db_tecnico.dbo.kit AS kit_3 INNER JOIN mi_db_tecnico.dbo.traversine_superiori_kit ON kit_3.id_kit = mi_db_tecnico.dbo.traversine_superiori_kit.id_kit INNER JOIN mi_db_tecnico.dbo.traversine_superiori ON mi_db_tecnico.dbo.traversine_superiori_kit.id_traversina_superiore = mi_db_tecnico.dbo.traversine_superiori.id_traversina_superiore union all SELECT kit_2.codice_kit, mi_db_tecnico.dbo.traversine_inferiori.codice_traversina_inferiore, mi_db_tecnico.dbo.traversine_inferiori_kit.qnt, '' FROM mi_db_tecnico.dbo.kit AS kit_2 INNER JOIN mi_db_tecnico.dbo.traversine_inferiori_kit ON kit_2.id_kit = mi_db_tecnico.dbo.traversine_inferiori_kit.id_kit INNER JOIN mi_db_tecnico.dbo.traversine_inferiori ON mi_db_tecnico.dbo.traversine_inferiori_kit.id_traversina_inferiore = mi_db_tecnico.dbo.traversine_inferiori.id_traversina_inferiore ) as tt1 union all Select t3.codice_cabina,t3.codice_kit,t3.qnt,t3.pos,'' as fase_pr1,'' as pr2,t3.posnum1 - t4.n0 + 1 as PN , '' as cabrif from (SELECT row_number() over (ORDER BY cabine_3.codice_cabina, CASE WHEN len(pos) > 1 THEN RIGHT(pos, 1) + LEFT(pos, 1) WHEN pos <> '0' THEN '0' + pos ELSE '0' END) as posnum1, cabine_3.codice_cabina, mi_db_tecnico.dbo.kit.codice_kit, mi_db_tecnico.dbo.kit_cabine.qnt, mi_db_tecnico.dbo.kit_cabine.pos, CASE WHEN len(pos) > 1 THEN RIGHT(pos, 1) + LEFT(pos, 1) WHEN pos <> '0' THEN '0' + pos ELSE '0' END AS POSNUM FROM mi_db_tecnico.dbo.cabine AS cabine_3 INNER JOIN mi_db_tecnico.dbo.kit_cabine ON cabine_3.id_cabina = mi_db_tecnico.dbo.kit_cabine.id_cabina INNER JOIN mi_db_tecnico.dbo.kit ON mi_db_tecnico.dbo.kit_cabine.id_kit = mi_db_tecnico.dbo.kit.id_kit where pos <> '0') as t3 INNER JOIN (select min(posnum1) as n0,codice_cabina from (select * from (SELECT row_number() over (ORDER BY cabine_3.codice_cabina, CASE WHEN len(pos) > 1 THEN RIGHT(pos, 1) + LEFT(pos, 1) WHEN pos <> '0' THEN '0' + pos ELSE '0' END) as posnum1, cabine_3.codice_cabina, mi_db_tecnico.dbo.kit.codice_kit, mi_db_tecnico.dbo.kit_cabine.qnt, mi_db_tecnico.dbo.kit_cabine.pos, CASE WHEN len(pos) > 1 THEN RIGHT(pos, 1) + LEFT(pos, 1) WHEN pos <> '0' THEN '0' + pos ELSE '0' END AS POSNUM FROM mi_db_tecnico.dbo.cabine AS cabine_3 INNER JOIN mi_db_tecnico.dbo.kit_cabine ON cabine_3.id_cabina = mi_db_tecnico.dbo.kit_cabine.id_cabina INNER JOIN mi_db_tecnico.dbo.kit ON mi_db_tecnico.dbo.kit_cabine.id_kit = mi_db_tecnico.dbo.kit.id_kit where pos <> '0') as t1) as t2 group by codice_cabina) as t4 ON t3.codice_cabina = t4.codice_cabina union all SELECT TOP (100) PERCENT cabine_3.codice_cabina, mi_db_tecnico.dbo.kit.codice_kit, mi_db_tecnico.dbo.kit_cabine.qnt, mi_db_tecnico.dbo.kit_cabine.pos,'' as ttt,'' as uyuy, '0' AS POSNUM,'' as cabrif FROM mi_db_tecnico.dbo.cabine AS cabine_3 INNER JOIN mi_db_tecnico.dbo.kit_cabine ON cabine_3.id_cabina = mi_db_tecnico.dbo.kit_cabine.id_cabina INNER JOIN mi_db_tecnico.dbo.kit ON mi_db_tecnico.dbo.kit_cabine.id_kit = mi_db_tecnico.dbo.kit.id_kit WHERE (mi_db_tecnico.dbo.kit_cabine.pos = '0') union all SELECT codice_cabina, codice_materia_prima AS codice, SUM(ISNULL(qnt, 0)) AS qnt, pos,'' as ttt,'' as uyuy, '' AS POSNUM,'' as cabrif FROM (SELECT mi_db_tecnico.dbo.materie_prime_cabine.id_materia_prima_cabina, mi_db_tecnico.dbo.cabine.codice_cabina, mi_db_tecnico.dbo.materie_prime.codice_materia_prima, CASE WHEN fattore_conversione_gea IS NULL THEN qnt WHEN modo_calcolo_gea = 'Lung' THEN qnt * fattore_conversione_gea ELSE qnt * fattore_conversione_gea END AS qnt, mi_db_tecnico.dbo.materie_prime_cabine.pos, 'materie_prime' AS tabella, mi_db_tecnico.dbo.cabine.profilo FROM mi_db_tecnico.dbo.cabine INNER JOIN mi_db_tecnico.dbo.materie_prime_cabine ON mi_db_tecnico.dbo.cabine.id_cabina = mi_db_tecnico.dbo.materie_prime_cabine.id_cabina INNER JOIN mi_db_tecnico.dbo.materie_prime ON mi_db_tecnico.dbo.materie_prime_cabine.id_materia_prima = mi_db_tecnico.dbo.materie_prime.id_materia_prima union all SELECT mi_db_tecnico.dbo.pannelli_cabine.id_pannello_cabina, cabine_2.codice_cabina, mi_db_tecnico.dbo.pannelli.codice_pannello, mi_db_tecnico.dbo.pannelli_cabine.qnt, mi_db_tecnico.dbo.pannelli_cabine.pos, 'pannelli' AS tabella, cabine_2.profilo FROM mi_db_tecnico.dbo.cabine AS cabine_2 INNER JOIN mi_db_tecnico.dbo.pannelli_cabine ON cabine_2.id_cabina = mi_db_tecnico.dbo.pannelli_cabine.id_cabina INNER JOIN mi_db_tecnico.dbo.pannelli ON mi_db_tecnico.dbo.pannelli_cabine.id_pannello = mi_db_tecnico.dbo.pannelli.id_pannello) AS t GROUP BY codice_cabina, codice_materia_prima, tabella, id_materia_prima_cabina, profilo, pos union all select Codice_pannello, codice,case when um = 'Mq' then qnt/1000000 when um = 'Ml' then qnt / 1000 else qnt end as qnt,'' as pos, case when tabella = 'rinforzi' then convert(varchar,posx) else '' end as pr1, case when tabella = 'rinforzi' then convert(varchar,posy) else '' end as pr2 ,'' as posnum,'' as cabrif from (SELECT id, codice_pannello, codice_lamiera AS codice, SUM(ISNULL(qnt, 0)) AS qnt, ISNULL(posx, 0) AS posx, ISNULL(posy, 0) AS posy, ISNULL(dimx, 0) AS dimx, ISNULL(dimy, 0) AS dimy, tabella, profilo,um FROM (SELECT NULL AS id, mi_db_tecnico.dbo.pannelli.codice_pannello, mi_db_tecnico.dbo.lamiere.codice_lamiera, 1 AS qnt, 0 AS posx, 0 AS posy, 0 AS dimx, 0 AS dimy, 'lamiere' AS tabella, mi_db_tecnico.dbo.pannelli.profilo,'NR' as Um FROM mi_db_tecnico.dbo.pannelli INNER JOIN mi_db_tecnico.dbo.lamiere ON mi_db_tecnico.dbo.pannelli.id_lamiera = mi_db_tecnico.dbo.lamiere.id_lamiera union all SELECT mi_db_tecnico.dbo.rinforzi_piede_pannelli.id_rinforzo_piede_pannello, pannelli_5.codice_pannello, mi_db_tecnico.dbo.rinforzi_piede.codice_rinforzo_piede, mi_db_tecnico.dbo.rinforzi_piede_pannelli.qnt, mi_db_tecnico.dbo.rinforzi_piede_pannelli.posx, mi_db_tecnico.dbo.rinforzi_piede_pannelli.posy, 0 AS dimx, 0 AS dimy, 'rinforzi_piede' AS tabella, mi_db_tecnico.dbo.rinforzi_piede.profilo,'NR' as Um FROM mi_db_tecnico.dbo.rinforzi_piede INNER JOIN mi_db_tecnico.dbo.rinforzi_piede_pannelli ON mi_db_tecnico.dbo.rinforzi_piede.id_rinforzo_piede = mi_db_tecnico.dbo.rinforzi_piede_pannelli.id_rinforzo_piede RIGHT OUTER JOIN mi_db_tecnico.dbo.pannelli AS pannelli_5 ON mi_db_tecnico.dbo.rinforzi_piede_pannelli.id_pannello = pannelli_5.id_pannello union all SELECT mi_db_tecnico.dbo.rinforzi_pannelli.id_rinforzo_pannello, pannelli_4.codice_pannello, mi_db_tecnico.dbo.rinforzi.codice_rinforzo, mi_db_tecnico.dbo.rinforzi_pannelli.qnt, mi_db_tecnico.dbo.rinforzi_pannelli.posx, mi_db_tecnico.dbo.rinforzi_pannelli.posy, 0 AS dimx, 0 AS dimy, 'rinforzi' AS tabella, mi_db_tecnico.dbo.rinforzi.profilo,'NR' as Um FROM mi_db_tecnico.dbo.rinforzi INNER JOIN mi_db_tecnico.dbo.rinforzi_pannelli ON mi_db_tecnico.dbo.rinforzi.id_rinforzo = mi_db_tecnico.dbo.rinforzi_pannelli.id_rinforzo RIGHT OUTER JOIN mi_db_tecnico.dbo.pannelli AS pannelli_4 ON mi_db_tecnico.dbo.rinforzi_pannelli.id_pannello = pannelli_4.id_pannello union all SELECT mi_db_tecnico.dbo.materie_prime_pannelli.id_materia_prima_pannello, pannelli_3.codice_pannello, mi_db_tecnico.dbo.materie_prime.codice_materia_prima, CASE WHEN fattore_conversione_gea IS NULL THEN qnt WHEN modo_calcolo_gea = 'Lung' THEN qnt * fattore_conversione_gea ELSE qnt * fattore_conversione_gea END AS qnt, mi_db_tecnico.dbo.materie_prime_pannelli.posx, mi_db_tecnico.dbo.materie_prime_pannelli.posy, mi_db_tecnico.dbo.materie_prime_pannelli.dimx, mi_db_tecnico.dbo.materie_prime_pannelli.dimy, 'materie_prime' AS tabella, mi_db_tecnico.dbo.materie_prime_pannelli.profilo, mi_db_tecnico.dbo.materie_prime.um AS UM FROM mi_db_tecnico.dbo.materie_prime INNER JOIN mi_db_tecnico.dbo.materie_prime_pannelli ON mi_db_tecnico.dbo.materie_prime.id_materia_prima = mi_db_tecnico.dbo.materie_prime_pannelli.id_materia_prima RIGHT OUTER JOIN mi_db_tecnico.dbo.pannelli AS pannelli_3 ON mi_db_tecnico.dbo.materie_prime_pannelli.id_pannello = pannelli_3.id_pannello union all SELECT mi_db_tecnico.dbo.lane_pannelli.id_lana_pannello, pannelli_2.codice_pannello, mi_db_tecnico.dbo.lane.codice_lana, mi_db_tecnico.dbo.lane_pannelli.qnt, mi_db_tecnico.dbo.lane_pannelli.posx, mi_db_tecnico.dbo.lane_pannelli.posy, 0 AS dimx, 0 AS dimy, 'lane' AS tabella, mi_db_tecnico.dbo.lane.profilo,'NR' as Um FROM mi_db_tecnico.dbo.lane INNER JOIN mi_db_tecnico.dbo.lane_pannelli ON mi_db_tecnico.dbo.lane.id_lana = mi_db_tecnico.dbo.lane_pannelli.id_lana RIGHT OUTER JOIN mi_db_tecnico.dbo.pannelli AS pannelli_2 ON mi_db_tecnico.dbo.lane_pannelli.id_pannello = pannelli_2.id_pannello union all SELECT mi_db_tecnico.dbo.lane_ceramiche_pannelli.id_lana_ceramica_pannello, pannelli_1.codice_pannello, mi_db_tecnico.dbo.lane_ceramiche.codice_lana_ceramica, mi_db_tecnico.dbo.lane_ceramiche_pannelli.qnt, mi_db_tecnico.dbo.lane_ceramiche_pannelli.posx, mi_db_tecnico.dbo.lane_ceramiche_pannelli.posy, mi_db_tecnico.dbo.lane_ceramiche_pannelli.dimx, mi_db_tecnico.dbo.lane_ceramiche_pannelli.dimy, 'lane_ceramiche' AS tabella, pannelli_1.profilo,'NR' as Um FROM mi_db_tecnico.dbo.pannelli AS pannelli_1 LEFT OUTER JOIN mi_db_tecnico.dbo.lane_ceramiche INNER JOIN mi_db_tecnico.dbo.lane_ceramiche_pannelli ON mi_db_tecnico.dbo.lane_ceramiche.id_lana_ceramica = mi_db_tecnico.dbo.lane_ceramiche_pannelli.id_lana_ceramica ON pannelli_1.id_pannello = mi_db_tecnico.dbo.lane_ceramiche_pannelli.id_pannello ) AS t where codice_lamiera is not null GROUP BY id, codice_pannello, codice_lamiera, ISNULL(posx, 0), ISNULL(posy, 0), ISNULL(dimx, 0), ISNULL(dimy, 0), tabella, profilo,um) as tp union all SELECT TOP (100) PERCENT codice_sottoinsieme_corridoio, codice, qnt, isnull(pos,'') AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_sottoinsiemi_corridoi union all SELECT TOP (100) PERCENT distinta_carrelli.codice_carrello, ISNULL(cabine_carrelli.n_cab, distinta_carrelli.codice) AS Expr1, distinta_carrelli.qnt, '' AS pos, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_db_tecnico.dbo.distinta_carrelli AS distinta_carrelli INNER JOIN mi_db_tecnico.dbo.carrelli AS carrelli ON distinta_carrelli.codice_carrello = carrelli.codice_carrello LEFT OUTER JOIN mi_db_tecnico.dbo.cabine_carrelli AS cabine_carrelli ON carrelli.id_carrello = cabine_carrelli.id_carrello --soffitti union all SELECT TOP (100) PERCENT codice_lamiera, codice, CASE WHEN qnt > 1 THEN qnt / 1000000 ELSE qnt END AS Expr1, '' AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_soffitti.dbo.distinta_lamiere union all SELECT TOP (100) PERCENT codice_sviluppo, codice, qnt, '' AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_soffitti.dbo.distinta_sviluppi union all SELECT TOP (100) PERCENT mi_soffitti.dbo.distinta_doghe.codice_doga, REPLACE(mi_soffitti.dbo.parametri_svil_doghe.codice_colla, '$virgolette', '') AS Expr3, mi_soffitti.dbo.distinta_doghe.qnt * mi_soffitti.dbo.parametri_svil_doghe.quantita_colla / 1000000 AS Expr1, '' AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_soffitti.dbo.distinta_doghe INNER JOIN mi_soffitti.dbo.parametri_svil_doghe ON '$virgolette' + mi_soffitti.dbo.distinta_doghe.codice + '$virgolette' = mi_soffitti.dbo.parametri_svil_doghe.codLana union all SELECT TOP (100) PERCENT codice_doga, codice, CASE WHEN qnt > 1 THEN qnt / 1000000 ELSE qnt END AS Expr1, '' AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_soffitti.dbo.distinta_doghe union all SELECT TOP (100) PERCENT mi_soffitti.dbo.distinta_cesoiati.codice_cesoiato, mi_soffitti.dbo.distinta_cesoiati.codice, mi_soffitti.dbo.cesoiati.lung * mi_soffitti.dbo.cesoiati.halt / 1000000 AS Expr1, '' AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_soffitti.dbo.distinta_cesoiati INNER JOIN mi_soffitti.dbo.cesoiati ON mi_soffitti.dbo.distinta_cesoiati.codice_cesoiato = mi_soffitti.dbo.cesoiati.codice_cesoiato union all SELECT TOP (100) PERCENT mi_soffitti.dbo.distinta_lane.codice_lana, mi_soffitti.dbo.distinta_lane.codice, CASE WHEN fattore_conversione_gea IS NULL THEN lung * halt / 1000000 WHEN modo_calcolo_gea = 'Lung' THEN halt * fattore_conversione_gea / 1000 ELSE lung * halt * fattore_conversione_gea / 1000000 END AS Expr1, '' AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_soffitti.dbo.distinta_lane INNER JOIN mi_soffitti.dbo.lane ON mi_soffitti.dbo.distinta_lane.codice_lana = mi_soffitti.dbo.lane.codice_lana INNER JOIN mi_soffitti.dbo.materie_prime ON mi_soffitti.dbo.distinta_lane.codice = mi_soffitti.dbo.materie_prime.codice_materia_prima union all SELECT TOP (100) PERCENT codice_collo, codice, qnt, '' AS Expr2, '' AS fase_pr1, '' AS pr2, '' AS posnum, '' AS CabRif FROM mi_soffitti.dbo.distinta_colli union all select expr1 as codice_maxi_collo,codice,qnt,expr3 as fase,expr2 as pr1,pr2,posnum,cabrif from (SELECT TOP (100) PERCENT REPLACE(mi_soffitti.dbo.distinta_maxi_colli.codice_maxi_collo, '-', '') AS Expr1, mi_soffitti.dbo.distinta_maxi_colli.codice, mi_soffitti.dbo.distinta_maxi_colli.qnt, ISNULL(derivedtbl_1.fase, '') AS Expr3, '' AS Expr2, '' AS pr2, '' AS posnum, mi_soffitti.dbo.distinta_maxi_colli.pos AS CabRif, mi_soffitti.dbo.distinta_maxi_colli.id FROM mi_soffitti.dbo.doghe_colli INNER JOIN mi_soffitti.dbo.colli ON mi_soffitti.dbo.doghe_colli.id_collo = mi_soffitti.dbo.colli.id_collo INNER JOIN mi_soffitti.dbo.doghe ON mi_soffitti.dbo.doghe_colli.id_doga = mi_soffitti.dbo.doghe.id_doga INNER JOIN mi_soffitti.dbo.distinta_maxi_colli ON mi_soffitti.dbo.colli.codice_collo = mi_soffitti.dbo.distinta_maxi_colli.codice LEFT OUTER JOIN (SELECT doghe_1.codice_doga, LEFT(mi_soffitti.dbo.lamiere.tipo, 3) AS Expr1, doghe_1.resis, doghe_1.descrizionetec, mi_soffitti.dbo.lamiere.tipo, mi_soffitti.dbo.parametri_svil_doghe.fase FROM mi_soffitti.dbo.doghe AS doghe_1 INNER JOIN mi_soffitti.dbo.lamiere_doghe ON doghe_1.id_doga = mi_soffitti.dbo.lamiere_doghe.id_doga INNER JOIN mi_soffitti.dbo.lamiere ON mi_soffitti.dbo.lamiere_doghe.id_lamiera = mi_soffitti.dbo.lamiere.id_lamiera INNER JOIN mi_soffitti.dbo.parametri_svil_doghe ON '$virgolette' + doghe_1.descrizionetec + '$virgolette' = mi_soffitti.dbo.parametri_svil_doghe.mat AND '$virgolette' + LEFT(mi_soffitti.dbo.lamiere.tipo, 3) + '$virgolette' = mi_soffitti.dbo.parametri_svil_doghe.tipo AND '$virgolette' + doghe_1.resis + '$virgolette' = mi_soffitti.dbo.parametri_svil_doghe.resis) AS derivedtbl_1 ON mi_soffitti.dbo.doghe.codice_doga = derivedtbl_1.codice_doga GROUP BY REPLACE(mi_soffitti.dbo.distinta_maxi_colli.codice_maxi_collo, '-', ''), mi_soffitti.dbo.distinta_maxi_colli.codice, mi_soffitti.dbo.distinta_maxi_colli.qnt, mi_soffitti.dbo.distinta_maxi_colli.pos, ISNULL(derivedtbl_1.fase, ''), mi_soffitti.dbo.distinta_maxi_colli.id)as tm union all SELECT DISTINCT TOP (100) PERCENT mi_soffitti.dbo.soffitti.codice_soffitto, CASE WHEN LEFT(codice_soffitto, 3) = '+32' THEN replace(codice_soffitto, '+32CA', '+32CL') ELSE replace(codice_soffitto, '+42CO', '+42CC') + maxi_collo END AS Expr4, '1' AS Expr3, CASE WHEN LEFT(codice_soffitto, 3) <> '+32' THEN 'S170' ELSE '' END AS fase_pr1, '' AS Expr1, '' AS pr2, '' AS Expr2, '' AS CabRif FROM mi_soffitti.dbo.soffitti INNER JOIN mi_soffitti.dbo.colli_soffitti ON mi_soffitti.dbo.soffitti.id_soffitto = mi_soffitti.dbo.colli_soffitti.id_soffitto INNER JOIN mi_soffitti.dbo.colli ON mi_soffitti.dbo.colli_soffitti.id_collo = mi_soffitti.dbo.colli.id_collo GROUP BY mi_soffitti.dbo.soffitti.codice_soffitto, CASE WHEN LEFT(codice_soffitto, 3) = '+32' THEN replace(codice_soffitto, '+32CA', '+32CL') ELSE replace(codice_soffitto, '+42CO', '+42CC') + maxi_collo END HAVING (CASE WHEN LEFT(codice_soffitto, 3) = '+32' THEN replace(codice_soffitto, '+32CA', '+32CL') ELSE replace(codice_soffitto, '+42CO', '+42CC') + maxi_collo END IS NOT NULL) union all SELECT TOP (100) PERCENT mi_soffitti.dbo.soffitti.codice_soffitto, mi_soffitti.dbo.doghe.codice_doga, mi_soffitti.dbo.doghe_soffitti.qnt AS Expr3, '' AS Expr1, '' AS fase_pr1, '' AS pr2, '' AS Expr2, '' AS CabRif FROM mi_soffitti.dbo.doghe_soffitti INNER JOIN mi_soffitti.dbo.soffitti ON mi_soffitti.dbo.doghe_soffitti.id_soffitto = mi_soffitti.dbo.soffitti.id_soffitto INNER JOIN mi_soffitti.dbo.doghe ON mi_soffitti.dbo.doghe_soffitti.id_doga = mi_soffitti.dbo.doghe.id_doga union all SELECT TOP (100) PERCENT mi_soffitti.dbo.soffitti.codice_soffitto, mi_soffitti.dbo.materie_prime.codice_materia_prima, CASE WHEN fattore_conversione_gea IS NULL THEN qnt WHEN modo_calcolo_gea = 'Lung' THEN qnt * fattore_conversione_gea ELSE qnt * fattore_conversione_gea END AS Expr4, mi_soffitti.dbo.materie_prime_soffitti.fase, '' AS Expr1, '' AS pr2, '' AS Expr2, '' AS CabRif FROM mi_soffitti.dbo.soffitti INNER JOIN mi_soffitti.dbo.materie_prime_soffitti ON mi_soffitti.dbo.soffitti.id_soffitto = mi_soffitti.dbo.materie_prime_soffitti.id_soffitto INNER JOIN mi_soffitti.dbo.materie_prime ON mi_soffitti.dbo.materie_prime_soffitti.id_materia_prima = mi_soffitti.dbo.materie_prime.id_materia_prima) as distinta where codice is not null and codice_padre in ($codici_in) order by codice_padre,posnum"; $r=sqlsrv_query($conn,$q); if($r==FALSE) { die("phperror".$q); } else { while($row=sqlsrv_fetch_array($r)) { $rowObj=[]; foreach ($columns as $column_lcl) { if($column_lcl["type"] == 'text') array_push($rowObj,utf8_encode($row[$column_lcl["data"]])); else array_push($rowObj,round($row[$column_lcl["data"]],2)); } $data .= implode("\t",$rowObj) . "\n"; } } return $data; } ?>