Aggiunta sede anche per preventivi
Duplica per contratti Fix minori
This commit is contained in:
parent
24de451dab
commit
716c76575f
|
@ -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) {
|
||||
|
|
|
@ -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>';
|
|
@ -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>
|
||||
|
|
|
@ -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!'));
|
||||
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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), '','', ''#''), ''.'', '',''),''#'', ''.''), ''€'') 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), '','', ''#''), ''.'', '',''),''#'', ''.''), ''€'') 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`;
|
Loading…
Reference in New Issue