Migliorie movimenti articoli #236
This commit is contained in:
parent
797a42e6d2
commit
0cb957aaf9
|
@ -56,7 +56,13 @@ switch (post('op')) {
|
|||
$movimento = $qta - $old_qta;
|
||||
|
||||
if ($movimento != 0) {
|
||||
add_movimento_magazzino($id_record, $movimento);
|
||||
$descrizione_movimento = post('descrizione_movimento');
|
||||
$data_movimento = post('data_movimento');
|
||||
if($descrizione_movimento!='' && $data_movimento!=''){
|
||||
add_movimento_magazzino($id_record, $movimento, [], $descrizione_movimento, $data_movimento);
|
||||
}else{
|
||||
add_movimento_magazzino($id_record, $movimento);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -41,10 +41,10 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "number", "label": "<?php echo tr('Quantità'); ?>", "name": "qta", "required": 1, "value": "$qta$", "readonly": 1, "decimals": "qta", "min-value": "undefined" ]}
|
||||
<input type="hidden" id="old_qta" value="<?=$records[0]['qta']?>">
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "<?php echo tr('Modifica quantità manualmente'); ?>", "name": "qta_manuale", "value": 0, "help": "<?php echo tr('Seleziona per modificare manualmente la quantità'); ?>", "placeholder": "<?php echo tr('Quantità manuale'); ?>", "extra": "<?php echo ($records[0]['servizio']) ? 'disabled' : ''; ?>" ]}
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
|
@ -56,6 +56,17 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
|
||||
$('#qta_manuale').click(function(){
|
||||
$("#qta").attr("readonly", !$('#qta_manuale').is(":checked"));
|
||||
if($('#qta_manuale').is(":checked")){
|
||||
$("#div_modifica_manuale").show();
|
||||
$("#div_modifica_manuale").show();
|
||||
$("#descrizione_movimento").attr('required', true);
|
||||
$("#data_movimento").attr('required', true);
|
||||
}else{
|
||||
$("#div_modifica_manuale").hide();
|
||||
$('#qta').val($('#old_qta').val());
|
||||
$("#descrizione_movimento").attr('required', false);
|
||||
$("#data_movimento").attr('required', false);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -68,8 +79,6 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
{[ "type": "select", "label": "<?php echo tr('Unità di misura'); ?>", "name": "um", "value": "$um$", "ajax-source": "misure", "icon-after": "add|<?php echo Modules::get('Unità di misura')['id']; ?>" ]}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
$records[0]['abilita_serial'] = ($records[0]['serial'] > 0) ? 1 : $records[0]['abilita_serial'];
|
||||
if (empty($records[0]['abilita_serial'])) {
|
||||
|
@ -84,6 +93,15 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
|
|||
|
||||
|
||||
</div>
|
||||
|
||||
<div class='row' id="div_modifica_manuale" style="display:none;">
|
||||
<div class='col-md-3'>
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione movimento'); ?>", "name": "descrizione_movimento", "value": "" ]}
|
||||
</div>
|
||||
<div class='col-md-3'>
|
||||
{[ "type": "date", "label": "<?php echo tr('Data movimento'); ?>", "name": "data_movimento", "value": "-now-" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
|
|
@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php';
|
|||
/**
|
||||
* Funzione per inserire i movimenti di magazzino.
|
||||
*/
|
||||
function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '')
|
||||
function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '', $data='')
|
||||
{
|
||||
$dbo = Database::getConnection();
|
||||
|
||||
|
@ -15,12 +15,16 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
|
|||
|
||||
//Info Articolo
|
||||
$rs_art = $dbo->fetchArray("SELECT * FROM mg_articoli WHERE id='".$idarticolo."'");
|
||||
$manuale = 0;
|
||||
|
||||
// Ddt
|
||||
if (!empty($array['idddt'])) {
|
||||
$rs = $dbo->fetchArray('SELECT numero, numero_esterno, dt_tipiddt.descrizione AS tipo, dt_tipiddt.dir FROM dt_ddt LEFT JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='.prepare($array['idddt']));
|
||||
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
|
||||
$tipo = strtolower($rs[0]['tipo']);
|
||||
|
||||
$rs_data = $dbo->fetchArray("SELECT data FROM dt_ddt WHERE id='".$array['idddt']."'");
|
||||
$data = $rs_data[0]['data'];
|
||||
}
|
||||
|
||||
// Fattura
|
||||
|
@ -28,6 +32,9 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
|
|||
$rs = $dbo->fetchArray('SELECT numero, numero_esterno, co_tipidocumento.descrizione AS tipo, co_tipidocumento.dir FROM co_documenti LEFT JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento WHERE co_documenti.id='.prepare($array['iddocumento']));
|
||||
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
|
||||
$tipo = strtolower($rs[0]['tipo']);
|
||||
|
||||
$rs_data = $dbo->fetchArray("SELECT data FROM co_documenti WHERE id='".$array['iddocumento']."'");
|
||||
$data = $rs_data[0]['data'];
|
||||
}
|
||||
|
||||
// Automezzo
|
||||
|
@ -47,23 +54,32 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
|
|||
|
||||
$new = ($qta < 0 ? '+' : '').-$qta;
|
||||
|
||||
$dbo->query('UPDATE mg_articoli_automezzi SET qta = qta + '.$new.' WHERE idarticolo = '.prepare($idarticolo).' AND idautomezzo = '.prepare($array['idautomezzo']));
|
||||
$dbo->query('UPDATE mg_articoli_automezzi SET qta = qta + '.$new.' WHERE idarticolo = '.prepare($idarticolo).' AND idautomezzo = '.prepare($array['idautomezzo']));
|
||||
$data = date('Y-m-d');
|
||||
}
|
||||
|
||||
// Intervento
|
||||
elseif (!empty($array['idintervento'])) {
|
||||
$movimento = ($qta > 0) ? tr('Ripristino articolo da intervento _NUM_') : tr('Scarico magazzino per intervento _NUM_');
|
||||
$numero = $array['idintervento'];
|
||||
|
||||
$rs_data = $dbo->fetchArray("SELECT IFNULL(MAX(orario_fine), data_richiesta) AS data FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.id='".$array['idintervento']."'");
|
||||
$data = $rs_data[0]['data'];
|
||||
}
|
||||
|
||||
// Manuale
|
||||
else {
|
||||
$manuale = 1;
|
||||
$movimento = !empty($descrizone) ? $descrizone : '';
|
||||
$descrizone = '';
|
||||
|
||||
if (empty($movimento)) {
|
||||
$movimento = ($qta > 0) ? tr('Carico magazzino') : tr('Scarico magazzino');
|
||||
}
|
||||
|
||||
if($data==''){
|
||||
$data = date('Y-m-d');
|
||||
}
|
||||
}
|
||||
|
||||
// Descrizione di default
|
||||
|
@ -92,6 +108,8 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = '
|
|||
'idarticolo' => $idarticolo,
|
||||
'qta' => $qta,
|
||||
'movimento' => $movimento,
|
||||
'data' => $data,
|
||||
'manuale' => $manuale,
|
||||
]));
|
||||
}
|
||||
|
||||
|
|
|
@ -55,13 +55,13 @@ if (!empty($rs2)) {
|
|||
|
||||
// Data
|
||||
echo '
|
||||
<td>'.Translator::timestampToLocale($r['created_at']).'</td>';
|
||||
<td>'.Translator::dateToLocale($r['data']).'</td>';
|
||||
|
||||
// Operazioni
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
|
||||
if (Auth::admin()) {
|
||||
if (Auth::admin() && $r['manuale']=='1') {
|
||||
echo '
|
||||
<a class="btn btn-danger btn-sm ask" data-backto="record-edit" data-op="delmovimento" data-idmovimento="'.$r['id'].'">
|
||||
<i class="fa fa-trash"></i>
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
// Script per aggiornare le date dei movimenti con le date dei documenti
|
||||
|
||||
$rs = $dbo->fetchArray("SELECT * FROM mg_movimenti");
|
||||
|
||||
for($i=0;$i<sizeof($rs);$i++){
|
||||
if($rs[$i]['idintervento']!=''){
|
||||
$rs_data = $dbo->fetchArray("SELECT IFNULL(MAX(orario_fine), data_richiesta) AS data FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.id='".$rs[$i]['idintervento']."'");
|
||||
$data = $rs_data[0]['data'];
|
||||
$dbo->query("UPDATE mg_movimenti SET data='".$data."' WHERE id='".$rs[$i]['id']."'");
|
||||
}
|
||||
else if($rs[$i]['idddt']!='0'){
|
||||
$rs_data = $dbo->fetchArray("SELECT data FROM dt_ddt WHERE id='".$rs[$i]['idddt']."'");
|
||||
$data = $rs_data[0]['data'];
|
||||
$dbo->query("UPDATE mg_movimenti SET data='".$data."' WHERE id='".$rs[$i]['id']."'");
|
||||
}
|
||||
else if($rs[$i]['iddocumento']!='0'){
|
||||
$rs_data = $dbo->fetchArray("SELECT data FROM co_documenti WHERE id='".$rs[$i]['iddocumento']."'");
|
||||
$data = $rs_data[0]['data'];
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -97,3 +97,9 @@ CREATE TABLE IF NOT EXISTS `co_righe_contratti_materiali` (
|
|||
|
||||
-- Modifica query wiget per mostrare solo quelli che non sono sati rinnovati
|
||||
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(id) AS dato, co_contratti.id, DATEDIFF( data_conclusione, NOW() ) AS giorni_rimanenti FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE fatturabile = 1) AND rinnovabile=1 AND NOW() > DATE_ADD( data_conclusione, INTERVAL - ABS(giorni_preavviso_rinnovo) DAY) AND YEAR(data_conclusione) > 1970 HAVING ISNULL((SELECT id FROM co_contratti contratti WHERE contratti.idcontratto_prev=co_contratti.id )) ORDER BY giorni_rimanenti ASC' WHERE `zz_widgets`.`name` = 'Contratti in scadenza';
|
||||
|
||||
-- Aggiunto campo data su movimenti articoli
|
||||
ALTER TABLE `mg_movimenti` ADD `data` DATE NOT NULL AFTER `movimento`;
|
||||
|
||||
-- Campo per indentificare i movimenti manuali
|
||||
ALTER TABLE `mg_movimenti` ADD `manuale` TINYINT(1) NOT NULL AFTER `data`;
|
Loading…
Reference in New Issue