Aggiunta sede anche per preventivi

Duplica per contratti
Fix minori
This commit is contained in:
Luca 2019-04-08 18:50:28 +02:00
parent 24de451dab
commit 716c76575f
6 changed files with 105 additions and 47 deletions

View File

@ -126,6 +126,34 @@ switch (post('op')) {
}
break;
// Duplica contratto
case 'copy':
$dbo->query('CREATE TEMPORARY TABLE tmp SELECT * FROM co_contratti WHERE id = '.prepare($id_record));
$dbo->query('ALTER TABLE tmp DROP id');
$dbo->query('INSERT INTO co_contratti SELECT NULL,tmp.* FROM tmp');
$id_record = $dbo->lastInsertedID();
$dbo->query('DROP TEMPORARY TABLE tmp');
// Codice contratto: calcolo il successivo in base al formato specificato
$numero = Contratto::getNextNumero();
$dbo->query('UPDATE co_contratti SET idstato=1, numero = '.prepare($numero).' WHERE id='.prepare($id_record));
//copio anche le righe del preventivo
$dbo->query('CREATE TEMPORARY TABLE tmp SELECT * FROM co_righe_contratti WHERE idcontratto = '.filter('id_record'));
$dbo->query('ALTER TABLE tmp DROP id');
$dbo->query('UPDATE tmp SET idcontratto = '.prepare($id_record));
$dbo->query('INSERT INTO co_righe_contratti SELECT NULL,tmp.* FROM tmp');
$dbo->query('DROP TEMPORARY TABLE tmp');
//Azzero eventuale quantità evasa
$dbo->query('UPDATE co_righe_contratti SET qta_evasa=0 WHERE id='.prepare($id_record));
flash()->info(tr('Contratto duplicato correttamente!'));
break;
case 'manage_sconto':
if (post('idriga') != null) {

View File

@ -2,6 +2,9 @@
include_once __DIR__.'/../../core.php';
echo'
<button type="button" class="btn btn-primary" onclick="if( confirm(\'Duplicare questo contratto?\') ){ $(\'#copia-contratto\').submit(); }"> <i class="fa fa-copy"></i> '.tr('Duplica contratto').'</button>';
$rs_documento = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontratto='.prepare($id_record));
/* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */
@ -22,3 +25,11 @@ if ($record['rinnovabile']) {
</button>
</div>';
}
// Duplica contratto
echo '
<form action="" method="post" id="copia-contratto">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="copy">
</form>';

View File

@ -65,15 +65,15 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
<div class="row">
<div class="col-md-4">
<div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Validità'); ?>", "name": "validita", "decimals": "0", "value": "$validita$", "icon-after": "giorni" ]}
</div>
<div class="col-md-4">
<div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Rinnovabile'); ?>", "name": "rinnovabile", "help": "<?php echo tr('Il contratto è rinnovabile?'); ?>", "value": "$rinnovabile$" ]}
</div>
<div class="col-md-4">
<div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Preavviso per rinnovo'); ?>", "name": "giorni_preavviso_rinnovo", "decimals": "0", "value": "$giorni_preavviso_rinnovo$", "icon-after": "giorni", "disabled": <?php echo $record['rinnovabile'] ? 0 : 1; ?> ]}
</div>
</div>

View File

@ -32,6 +32,7 @@ switch (post('op')) {
$idstato = post('idstato');
$nome = post('nome');
$idanagrafica = post('idanagrafica');
$idsede = post('idsede');
$idagente = post('idagente');
$idreferente = post('idreferente');
$idpagamento = post('idpagamento');
@ -69,6 +70,7 @@ switch (post('op')) {
$query = 'UPDATE co_preventivi SET idstato='.prepare($idstato).','.
' nome='.prepare($nome).','.
' idanagrafica='.prepare($idanagrafica).','.
' idsede='.prepare($idsede).','.
' idagente='.prepare($idagente).','.
' idreferente='.prepare($idreferente).','.
' idpagamento='.prepare($idpagamento).','.
@ -114,6 +116,9 @@ switch (post('op')) {
$dbo->query('UPDATE tmp SET idpreventivo = '.prepare($id_record));
$dbo->query('INSERT INTO co_righe_preventivi SELECT NULL,tmp.* FROM tmp');
$dbo->query('DROP TEMPORARY TABLE tmp');
//Azzero eventuale quantità evasa
$dbo->query('UPDATE co_righe_preventivi SET qta_evasa=0 WHERE id='.prepare($id_record));
flash()->info(tr('Preventivo duplicato correttamente!'));

View File

@ -21,13 +21,28 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
{[ "type": "text", "label": "<?php echo tr('Numero'); ?>", "name": "numero", "required": 1, "class": "text-center", "value": "$numero$" ]}
</div>
<div class="col-md-4">
<div class="col-md-6">
<?php
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "ajax-source": "clienti" ]}
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede", "value": "$idsede$", "ajax-source": "sedi", "placeholder": "Sede legale" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Referente'); ?>", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti" ]}
</div>
<div class="col-md-3">
<?php
if ($record['idagente'] != 0) {
@ -36,54 +51,15 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
?>
{[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Agente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idagente$" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Referente'); ?>", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Tempi di consegna'); ?>", "name": "tempi_consegna", "value": "$tempi_consegna$" ]}
</div>
<div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Validità'); ?>", "name": "validita", "decimals": "0", "value": "$validita$", "icon-after": "giorni" ]}
</div>
</div>
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Metodo di pagamento'); ?>", "name": "idpagamento", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione", "value": "$idpagamento$" ]}
</div>
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data bozza'); ?>", "name": "data_bozza", "value": "$data_bozza$" ]}
</div>
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data accettazione'); ?>", "name": "data_accettazione", "value": "$data_accettazione$" ]}
</div>
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "name": "data_conclusione", "value": "$data_conclusione$" ]}
</div>
<div class="col-md-2">
{[ "type": "date", "label": "<?php echo tr('Data rifiuto'); ?>", "name": "data_rifiuto", "value": "$data_rifiuto$" ]}
</div>
</div>
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT id, descrizione FROM co_statipreventivi", "value": "$idstato$" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Tipo di attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione", "value": "$idtipointervento$" ]}
</div>
@ -91,6 +67,41 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
<!--div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Resa materiale'); ?>", "name": "idporto", "values": "query=SELECT id, descrizione FROM dt_porto ORDER BY descrizione", "value": "$idporto$" ]}
</div-->
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Tempi di consegna'); ?>", "name": "tempi_consegna", "value": "$tempi_consegna$" ]}
</div>
</div>
<div class="row">
<div class="col-md-3">
{[ "type": "date", "label": "<?php echo tr('Data bozza'); ?>", "name": "data_bozza", "value": "$data_bozza$" ]}
</div>
<div class="col-md-3">
{[ "type": "date", "label": "<?php echo tr('Data accettazione'); ?>", "name": "data_accettazione", "value": "$data_accettazione$" ]}
</div>
<div class="col-md-3">
{[ "type": "date", "label": "<?php echo tr('Data conclusione'); ?>", "name": "data_conclusione", "value": "$data_conclusione$" ]}
</div>
<div class="col-md-3">
{[ "type": "date", "label": "<?php echo tr('Data rifiuto'); ?>", "name": "data_rifiuto", "value": "$data_rifiuto$" ]}
</div>
</div>
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Metodo di pagamento'); ?>", "name": "idpagamento", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione", "value": "$idpagamento$" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT id, descrizione FROM co_statipreventivi", "value": "$idstato$" ]}
</div>
</div>
<div class="row">

View File

@ -141,4 +141,7 @@ ALTER TABLE `co_ritenutaacconto` DROP `esente`, DROP `indetraibile`;
UPDATE `co_ritenutaacconto` SET `percentuale_imponibile` = 100;
-- Aggiornamento widget "Debiti verso fornitori"
UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS('' '', REPLACE(REPLACE(REPLACE(FORMAT((SELECT ABS(SUM(da_pagare-pagato))), 2), '','', ''#''), ''.'', '',''),''#'', ''.''), ''&euro;'') AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=''uscita'' AND co_documenti.idstatodocumento!=1 |segment| AND 1=1' WHERE `zz_widgets`.`name` = 'Debiti verso fornitori';
UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS('' '', REPLACE(REPLACE(REPLACE(FORMAT((SELECT ABS(SUM(da_pagare-pagato))), 2), '','', ''#''), ''.'', '',''),''#'', ''.''), ''&euro;'') AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=''uscita'' AND co_documenti.idstatodocumento!=1 |segment| AND 1=1' WHERE `zz_widgets`.`name` = 'Debiti verso fornitori';
-- Aggiunta idsede anche preventivi (completamento 2.4.1)
ALTER TABLE `co_preventivi` ADD `idsede` INT NOT NULL AFTER `idanagrafica`;