<?php include_once(__DIR__."/../../../core.php"); /* RICERCA PRODOTTI */ echo "<div class=\"panel panel-primary\">\n"; echo " <div class=\"panel-heading\">\n"; echo " <h3 class=\"panel-title\">Produzione</h3>\n"; echo " </div>\n"; echo " <div class=\"panel-body\">\n"; $search_serial = $_GET['search_serial']; //Calcolo prossimo lotto e serial number $rs = $dbo->fetchArray("SELECT MAX(serial) AS max_serial FROM mg_prodotti WHERE idarticolo=\"".$id_record."\""); $max_serial = $rs[0]['max_serial']; $next_serial = get_next_code( $max_serial ); echo " <form action=\"\" method=\"post\" role=\"form\">\n"; echo " <input type=\"hidden\" name=\"backto\" value=\"record-edit\">\n"; echo " <input type=\"hidden\" name=\"op\" value=\"addprodotto\">\n"; echo " <input type=\"hidden\" name=\"id_record\" value=\"$id_record\">\n"; //Campi di inserimento lotti echo " <div class=\"row form-group\">\n"; echo " <div class=\"col-md-12\">\n"; echo " <h4>Inserimento nuovi prodotti</h4>\n"; echo " </div>\n"; echo " </div>\n"; // Serial echo " <div class=\"row form-group\">\n"; echo " <label class=\"col-md-2 control-label\" for=\"serial_start\">Serial number da:</label>\n"; echo " <div class=\"col-md-2\">\n"; echo " <input type='text' class='form-control input-md' name='serial_start' onkeyup=\"$('input[name=serial_end]').val( $('input[name=serial_start]').val() ); $('#warn_serial').hide(); ricalcola_totale_prodotti();\" value=\"".$next_serial."\" />"; echo " </div>\n"; echo " <label class=\"col-md-1 control-label text-center\" for=\"serial_end\"> <i class=\"fa fa-arrow-circle-right fa-2x\"></i> </label>\n"; echo " <div class=\"col-md-2\">\n"; echo " <input type='text' class='form-control input-md' name='serial_end' onkeyup=\"check_progressivo( $('input[name=serial_start]'), $('input[name=serial_end]'), $('#warn_serial'), $('#inserisci') );\" value=\"".$next_serial."\" />"; echo " </div>\n"; echo " <div class=\"col-md-3\">\n"; if( $max_serial!='' ) echo " <p id='warn_serial' class='text-danger'><b>Ultimo serial number inserito:</b> $max_serial</p>\n"; echo " </div>\n"; echo " </div>\n"; //Totale prodotti da inserire echo " <div class=\"row\">\n"; echo " <div class=\"col-md-12\">\n"; echo " <p class='text-danger text-center\'>Totale prodotti da inserire: <span id='totale_prodotti'>0</span></p>\n"; echo " <button type='submit' id='inserisci' class='btn-app' onclick=\"if( confirm('Confermi l\\'inserimento di '+globalsp.n_prodotti+' prodotti?') ){ $('#insert_form').submit(); }\"><i class='fa fa-check'></i> Salva</button>\n"; //Visualizzo, in base alle impostazioni scelte, se il magazzino verrà movimentato if( get_var("Movimenta il magazzino durante l'inserimento o eliminazione dei lotti/serial number")==true ) echo " <small>L’inserimento incrementerà la quantità dell’articolo!</small>\n"; else echo " <small>L’inserimento non movimenterà la quantità dell’articolo!</small>\n"; echo " </div>\n"; echo " </div>\n"; echo " </form>\n"; echo " </div>\n"; echo "</div>\n"; // campi di ricerca echo "<div class=\"panel panel-primary\">\n"; echo " <div class=\"panel-heading\">\n"; echo " <h3 class=\"panel-title\">Ricerca prodotti</h3>\n"; echo " </div>\n"; echo " <div class=\"panel-body\">\n"; echo " <p>Puoi ricercare un prodotto venduto o acquistato a partire serial </p>\n"; echo " <form action=\"\" method=\"get\" role=\"form\">\n"; echo " <input type=\"hidden\" name=\"backto\" value=\"record-edit\">\n"; echo " <input type=\"hidden\" name=\"id_record\" value=\"$id_record\">\n"; echo " <input type=\"hidden\" name=\"id_module\" value=\"$id_module\">\n"; echo " <div class=\"row form-group\">\n"; echo " <div class=\"col-md-3\">\n"; echo " <label class=\"control-label\" for=\"search_serial\">Serial number:</label>\n"; echo " <input type='text' class='form-control input-md' id='search_serial' name='search_serial' value=\"".$search_serial."\" />"; echo " </div>\n"; echo " </div>\n"; echo " <button type='submit' id='ricerca' class='btn btn-primary' ><i class='fa fa-search'></i> Avvia ricerca</button>\n"; echo " </form><br/>\n"; echo "<div class=\"text-right\">\n"; //Visualizzo, in base alle impostazioni scelte, se il magazzino verrà movimentato if( get_var("Movimenta il magazzino durante l'inserimento o eliminazione dei serial number")==true ) echo "<small style='color:#f00;'>La cancellazione decrementerà la quantità dell’articolo!</small>\n"; else echo "<small style='color:#f00;'>L’inserimento non decrementerà la quantità dell’articolo!</small>\n"; echo "</div>\n"; echo "<br/>\n"; //Conteggio totale prodotti $rs = $dbo->fetchArray("SELECT COUNT(id) AS tot FROM mg_prodotti WHERE idarticolo='".$id_record."'"); $tot_prodotti = $rs[0]['tot']; //Visualizzazione di tutti i prodotti $query = "SELECT * FROM mg_prodotti WHERE idarticolo='".$id_record."' AND serial LIKE \"%$search_serial%\" "; ( isset($_GET['show_all3']) && $_GET['show_all3']!='' && $search_serial=='' ) ? $show_all=$_GET['show_all3'] : $show_all='0'; $query .= " ORDER BY data DESC, serial DESC"; if( $show_all=='0' ) $query .= " LIMIT 0, 20"; $rs2 = $dbo->fetchArray($query); if( sizeof($rs2)==0 ){ echo "<p>"._("Nessun articolo trovato")."...</p>\n"; echo "<a href='".$rootdir."/editor.php?id_module=".$modules_info['Articoli']['id']."&id_record=".$id_record."&showall3=1#tab_3'>[ Mostra tutti i prodotti ]</a>\n"; } else{ echo "<table class='table table-striped table-hover table-condensed table-bordered'>\n"; echo "<thead><tr>\n"; echo " <th width='200' id=\"th_Serial\">Serial</th>\n"; echo " <th width='200' id=\"th_Data di creazione\">Data di creazione</th>\n"; echo " <th width='400' id=\"th_Documento di carico\">Ordine Fornitore</th>\n"; echo " <th width='400' id=\"th_Documento di vendita\">Documento</th>\n"; echo " <th width='100' id=\"th_Totale\">Totale</th>\n"; echo " <th> </th>\n"; echo "</tr></thead>\n"; echo "<tbody>\n"; for( $i=0; $i<sizeof($rs2); $i++ ){ echo "<td class='text-center'>\n"; echo $rs2[$i]['serial']."\n"; echo "</td>\n"; echo "<td class='text-center'>\n"; echo date("d/m/Y H:i:s", strtotime($rs2[$i]['data']))."\n"; echo "</td>\n"; // ricerco evbemntuali dordini di carico $query4 = "SELECT * FROM mg_prodotti WHERE idarticolo='".$id_record."' AND serial=\"".$rs2[$i]['serial']."\" AND id_riga_ordine <> 0"; $rs4 = $dbo->fetchArray($query4); if( sizeof($rs4)==1 ){ $query4 = "SELECT * from or_righe_ordini left join or_ordini on or_ordini.id=or_righe_ordini.idordine left join an_anagrafiche on an_anagrafiche.idanagrafica = or_ordini.idanagrafica WHERE or_righe_ordini.id='".$rs4[0]['id_riga_ordine']."' "; $rs4 = $dbo->fetchArray($query4); echo "<td class=''>\n"; echo "<a href=\"".$rootdir."/editor.php?id_module=".$modules_info['Ordini fornitore']['id']."&id_record=".$rs4[0]['idordine']."\" title=\"Clicca per aprire questo ordine\" target=\"_blank\">Ordine n<sup>o</sup> ".$rs4[0]['numero_esterno']." del ".date( "d/m/Y", strtotime($rs4[0]['data']) )."</a>\n"; echo "</td>\n"; // echo "<td class=''> </td>\n"; } else{ //ordine echo "<td class='text-left'>\n"; echo "\n"; echo "</td>\n"; } //Venduto su fatture $query4 = "SELECT * FROM mg_prodotti WHERE idarticolo='".$id_record."' AND serial=\"".$rs2[$i]['serial']."\" AND id_riga_documento <> 0"; $rs4 = $dbo->fetchArray($query4); if( sizeof($rs4)==1 ){ $query4 = "SELECT *, ( SELECT descrizione FROM co_tipidocumento WHERE id=(SELECT idtipodocumento FROM co_documenti WHERE id=iddocumento) ) AS tipo_documento, ( SELECT `dir` FROM co_tipidocumento WHERE id=(SELECT idtipodocumento FROM co_documenti WHERE id=iddocumento) ) AS `dir`, ( SELECT numero FROM co_documenti WHERE id=iddocumento ) AS numero, ( SELECT numero_esterno FROM co_documenti WHERE id=iddocumento ) AS numero_esterno, ( SELECT data FROM co_documenti WHERE id=iddocumento ) AS data FROM co_righe_documenti WHERE id='".$rs4[0]['id_riga_documento']."' "; $rs4 = $dbo->fetchArray($query4); ($rs4[0]['numero_esterno']!='') ? $numero=$rs4[0]['numero_esterno'] : $numero=$rs4[0]['numero']; echo "<td class=''>\n"; echo "<a href=\"".$rootdir."/editor.php?id_module=".$modules_info['Fatture di vendita']['id']."&id_record=".$rs4[0]['iddocumento']."\" title=\"Clicca per aprire questo documento\" target=\"_blank\">".$rs4[0]['tipo_documento']." n<sup>o</sup> ".$numero." del ".date( "d/m/Y", strtotime($rs4[0]['data']) )."</a>\n"; echo "</td>\n"; echo "<td class='text-center'>\n"; echo "<span>€ ".number_format($rs4[0]['subtotale']+$rs4[0]['iva'], 2, ",", ".")."</span><br/><small style='color:#555;'>".number_format($rs4[0]['subtotale'], 2, ",", "." )." + ".number_format($rs4[0]['iva'], 2, ",", "." )."</small>\n"; echo "</td>\n"; // echo "<td class=''> </td>\n"; } //Non venduto else{ //Documento echo "<td class='text-left'>\n"; echo "\n"; echo "</td>\n"; //Totale echo "<td class='text-center'>\n"; echo "\n"; echo "</td>\n"; } echo "<td class='text-center'>\n"; echo " <form action='".$rootdir."/editor.php?id_module=".$id_module."&id_record=".$id_record."' method='post' id='delete-form-".$rs2[$i]['id']."' role='form'>\n"; echo " <input type='hidden' name='backto' value='record-edit'>\n"; echo " <input type='hidden' name='id_record' value='".$id_record."'>\n"; echo " <input type='hidden' name='op' value='delprodotto'>\n"; echo " <input type='hidden' name='idprodotto' value='".$rs2[$i]['id']."'>\n"; echo " <a href='javascript:;' class='btn btn-sm btn-danger' title='Rimuovi questa riga' onclick=\"if( confirm('Vuoi eliminare questo prodotto?') ){ $('#delete-form-".$rs2[$i]['id']."').submit(); }\"><i class='fa fa-trash-o'></i></a>\n"; echo " </form>\n"; echo "</td>\n"; //} echo "</tr>\n"; } } echo "</tbody>\n"; echo "</table>\n"; if( $_GET['show_all3']=='1' ) echo "<a href='".$rootdir."/editor.php?id_module=$id_module&id_record=$id_record&show_all3=0#tab_3'>[ Mostra solo gli ultimi 20 prodotti ]</a>\n"; else echo "<a href='".$rootdir."/editor.php?id_module=$id_module&id_record=$id_record&show_all3=1#tab_3'>[ Mostra tutti i ".$tot_prodotti." prodotti ]</a>\n"; echo " </div>\n"; echo "</div>\n"; ?> <script type="text/javascript"> globalsp = { n_prodotti: 0 }; $(document).ready( function(){ setInterval( "ricalcola_totale_prodotti()", 1000 ); }); /* Queste funzioni servono a verificare se i codici di lotti, serial number e "altro" sono progressivi */ function check_progressivo( start, end, warn, submit_btn ){ digits_start = get_last_numeric_part( start.val().toString() ); digits_end = get_last_numeric_part( end.val().toString() ); //Nessun codice numerico trovato if( digits_start=='' || digits_end=='' ){ warn.show(); submit_btn.hide(); } else{ warn.hide(); submit_btn.show(); } ricalcola_totale_prodotti(); } function ricalcola_totale_prodotti(){ serial_start = get_last_numeric_part( $('input[name=serial_start]').val().toString() ); serial_end = get_last_numeric_part( $('input[name=serial_end]').val().toString() ); serial = Math.abs( parseInt(serial_end,10) - parseInt(serial_start,10) )+1; //Se tutti i campi sono vuoti, il numero di prodotti è zero! if( isNaN(serial) ){ globalsp.n_prodotti = 0; } else{ if( isNaN(serial) ) serial = 1; globalsp.n_prodotti = serial ; } $('#totale_prodotti').text( globalsp.n_prodotti ); if( globalsp.n_prodotti==0 ) $('#inserisci').hide(); else $('#inserisci').show(); } /* Questa funzione restituisce la parte numerica di una stringa */ function get_last_numeric_part( str ){ var matches = str.match(/(.*?)([\d]*$)/); return matches[2]; } function reverse_string( s ){ return s.split("").reverse().join(""); } </script>