Aggiunto duplica preventivo + controllo se il preventivo è stato inserito in un ordine
This commit is contained in:
parent
4f5f2a9bc8
commit
3aed1da809
|
@ -138,6 +138,26 @@ switch (post('op')) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Duplica preventivo
|
||||||
|
case 'copy':
|
||||||
|
$dbo->query('CREATE TEMPORARY TABLE tmp SELECT * FROM co_preventivi WHERE id = '.prepare($id_record));
|
||||||
|
$dbo->query('ALTER TABLE tmp DROP id');
|
||||||
|
$dbo->query('INSERT INTO co_preventivi SELECT NULL,tmp.* FROM tmp');
|
||||||
|
$id_record = $dbo->lastInsertedID();
|
||||||
|
$dbo->query('DROP TEMPORARY TABLE tmp');
|
||||||
|
|
||||||
|
// Codice preventivo: calcolo il successivo in base al formato specificato
|
||||||
|
$numeropreventivo_template = setting('Formato codice preventivi');
|
||||||
|
$numeropreventivo_template = str_replace('#', '%', $numeropreventivo_template);
|
||||||
|
$rs = $dbo->fetchArray('SELECT numero FROM co_preventivi WHERE numero LIKE('.prepare(Util\Generator::complete($numeropreventivo_template)).') ORDER BY numero DESC LIMIT 0,1');
|
||||||
|
$numero = Util\Generator::generate(setting('Formato codice preventivi'), $rs[0]['numero']);
|
||||||
|
|
||||||
|
$dbo->query('UPDATE co_preventivi SET idstato=1, numero = '.$numero.', master_revision = id WHERE id='.prepare($id_record));
|
||||||
|
|
||||||
|
flash()->info(tr('Preventivo duplicato correttamente!'));
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
case 'addintervento':
|
case 'addintervento':
|
||||||
if (post('idintervento') !== null) {
|
if (post('idintervento') !== null) {
|
||||||
// Selezione costi da intervento
|
// Selezione costi da intervento
|
||||||
|
|
|
@ -20,7 +20,7 @@ if (!in_array($record['stato'], ['Bozza', 'Rifiutato', 'In attesa di conferma'])
|
||||||
</div>';
|
</div>';
|
||||||
} else {
|
} else {
|
||||||
echo '
|
echo '
|
||||||
<form action="" method="post" id="form_crearevisione">
|
<form action="" method="post" class="pull-left id="form_crearevisione">
|
||||||
<input type="hidden" name="backto" value="record-edit">
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
<input type="hidden" name="op" value="add_revision">
|
<input type="hidden" name="op" value="add_revision">
|
||||||
<input type="hidden" name="id_record" value="'.$id_record.'">
|
<input type="hidden" name="id_record" value="'.$id_record.'">
|
||||||
|
@ -28,3 +28,14 @@ if (!in_array($record['stato'], ['Bozza', 'Rifiutato', 'In attesa di conferma'])
|
||||||
<button type="button" class="btn btn-warning" onclick="if(confirm(\'Vuoi creare un nuova revisione?\')){$(\'#form_crearevisione\').submit();}"><i class="fa fa-copy"></i> Crea nuova revisione...</button>
|
<button type="button" class="btn btn-warning" onclick="if(confirm(\'Vuoi creare un nuova revisione?\')){$(\'#form_crearevisione\').submit();}"><i class="fa fa-copy"></i> Crea nuova revisione...</button>
|
||||||
</form>';
|
</form>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//duplica preventivo
|
||||||
|
echo '
|
||||||
|
|
||||||
|
<form action="" method="post" class="pull-left" style="margin-left:4px;" id="form-copy">
|
||||||
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
|
<input type="hidden" name="op" value="copy">
|
||||||
|
<button type="button" class="btn btn-primary" onclick="if( confirm(\'Duplicare questo preventivo?\') ){ $(\'#form-copy\').submit(); }">
|
||||||
|
<i class="fa fa-copy"></i> '.tr('Duplica preventivo').'
|
||||||
|
</button>
|
||||||
|
</form>';
|
||||||
|
|
|
@ -183,9 +183,20 @@ include $docroot.'/modules/preventivi/row-list.php';
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
||||||
|
|
||||||
|
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
//fatture collegate a questo preventivo
|
//fatture, ordini collegate a questo preventivo
|
||||||
$elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).') ORDER BY `data`');
|
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).')
|
||||||
|
|
||||||
|
UNION
|
||||||
|
SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, "Ordine cliente" AS tipo_documento, 0 AS dir FROM `or_ordini` JOIN `or_righe_ordini` ON `or_righe_ordini`.`idordine` = `or_ordini`.`id` WHERE `or_righe_ordini`.`idpreventivo` = '.prepare($id_record).'
|
||||||
|
|
||||||
|
ORDER BY `data`');
|
||||||
|
|
||||||
if (!empty($elementi)) {
|
if (!empty($elementi)) {
|
||||||
echo '
|
echo '
|
||||||
|
@ -201,15 +212,21 @@ if (!empty($elementi)) {
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<ul>';
|
<ul>';
|
||||||
|
|
||||||
foreach ($elementi as $fattura) {
|
foreach ($elementi as $elemento) {
|
||||||
|
|
||||||
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
|
||||||
'_DOC_' => $fattura['tipo_documento'],
|
'_DOC_' => $elemento['tipo_documento'],
|
||||||
'_NUM_' => !empty($fattura['numero_esterno']) ? $fattura['numero_esterno'] : $fattura['numero'],
|
'_NUM_' => !empty($elemento['numero_esterno']) ? $elemento['numero_esterno'] : $elemento['numero'],
|
||||||
'_DATE_' => Translator::dateToLocale($fattura['data']),
|
'_DATE_' => Translator::dateToLocale($elemento['data']),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$modulo = ($fattura['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
if (in_array($elemento['tipo_documento'],['Ordine cliente'])) {
|
||||||
$id = $fattura['id'];
|
$modulo = 'Ordini cliente';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto';
|
||||||
|
}
|
||||||
|
$id = $elemento['id'];
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
<li>'.Modules::link($modulo, $id, $descrizione).'</li>';
|
||||||
|
@ -230,10 +247,6 @@ if (!empty($elementi)) {
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
|
||||||
|
|
||||||
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
|
||||||
|
|
||||||
<a class="btn btn-danger ask" data-backto="record-list">
|
<a class="btn btn-danger ask" data-backto="record-list">
|
||||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||||
</a>
|
</a>
|
||||||
|
|
Loading…
Reference in New Issue