Aggiunta campo fornitore per gli articoli

Fix minori
This commit is contained in:
Luca 2019-11-12 18:45:52 +01:00
parent 73062dbfdf
commit dda875a75e
7 changed files with 35 additions and 18 deletions

View File

@ -67,6 +67,7 @@ switch (post('op')) {
$articolo->prezzo_acquisto = post('prezzo_acquisto');
$articolo->idconto_vendita = post('idconto_vendita');
$articolo->idconto_acquisto = post('idconto_acquisto');
$articolo->id_fornitore = post('id_fornitore');
$articolo->idiva_vendita = post('idiva_vendita');
$articolo->gg_garanzia = post('gg_garanzia');
$articolo->servizio = post('servizio');

View File

@ -134,6 +134,12 @@ $_SESSION['superselect']['id_categoria'] = $record['id_categoria'];
</div>
</div>
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "<?php echo tr('Fornitore predefinito'); ?>", "name": "id_fornitore", "value": "$id_fornitore$", "ajax-source": "fornitori" ]}
</div>
</div>
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "<?php echo tr('Conto predefinito di acquisto'); ?>", "name": "idconto_acquisto", "value": "$idconto_acquisto$", "ajax-source": "conti-acquisti" ]}

View File

@ -2,36 +2,36 @@
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));
$disabled = $record['is_fatturabile'] && !empty($rs_documento);
$stati_abilitati = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_abilitati FROM `co_staticontratti` WHERE `is_fatturabile` = 1')['stati_abilitati'];
$stati_fatturabili= $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_abilitati FROM `co_staticontratti` WHERE `is_fatturabile` = 1')['stati_abilitati'];
/* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */
echo '
<button type="button" '.($disabled ? '' : 'disabled').' class="btn btn-info '.($disabled ? '' : 'disabled tip').' " data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'" title="'.($disabled ? '' : tr('Per creare un documento deve essere inserita almeno una riga e lo stato del contratto deve essere tra: ').$stati_abilitati).'">
<button type="button" '.($disabled ? '' : 'disabled').' class="btn btn-info '.($disabled ? '' : 'disabled tip').' " data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'" title="'.($disabled ? '' : tr('Per creare un documento deve essere inserita almeno una riga e lo stato del contratto deve essere tra: ').$stati_fatturabili).'">
<i class="fa fa-magic"></i> '.tr('Crea fattura').'
</button>';
if ($record['rinnovabile']) {
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_pianificabile'];
$stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `is_pianificabile` = 1')['stati_pianificabili'];
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_pianificabile'] && $record['rinnovabile'];
$stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `is_pianificabile` = 1')['stati_pianificabili'];
echo '
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled tip').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="'.tr('Rinnova').'" data-class="btn btn-lg btn-warning" '.($rinnova ? '' : 'disabled').' title="'.( ($rinnova) ? '' : tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno stato di questi stati: '.$stati_pianificabili)).'">
<i class="fa fa-refresh"></i> '.tr('Rinnova').'...
</button>';
echo '
<div class="tip" data-toggle="tooltip" title="'.tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno stato di questi stati: '.$stati_pianificabili).'" style="display:inline;">
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="Rinnova" data-class="btn btn-lg btn-warning" '.($rinnova ? '' : 'disabled').'>
<i class="fa fa-refresh"></i> '.tr('Rinnova').'...
</button>
</div>';
}
// Duplica contratto
echo'
<button type="button" class="btn btn-primary" onclick="if( confirm(\''.tr('Duplicare questo contratto?').'\') ){ $(\'#copia-contratto\').submit(); }"> <i class="fa fa-copy"></i> '.tr('Duplica contratto').'</button>';
echo '
<form action="" method="post" id="copia-contratto">
<input type="hidden" name="backto" value="record-edit">

View File

@ -105,7 +105,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
</div>
<div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Ore rimanenti rinnovo'); ?>", "name": "ore_preavviso_rinnovo", "decimals": "0", "value": "$ore_preavviso_rinnovo$", "icon-after": "ore", "disabled": <?php echo $record['rinnovabile'] ? 0 : 1; ?>, "help": "Numero ore restanti nel contratto per avviso rinnovo anticipato." ]}
{[ "type": "number", "label": "<?php echo tr('Ore rimanenti rinnovo'); ?>", "name": "ore_preavviso_rinnovo", "decimals": "0", "value": "$ore_preavviso_rinnovo$", "icon-after": "ore", "disabled": <?php echo $record['rinnovabile'] ? 0 : 1; ?>, "help": "<?php echo tr("Ore residue nel contratto prima di visualizzare una avviso per un eventuale rinnovo anticipato."); ?>" ]}
</div>
</div>

View File

@ -114,7 +114,7 @@ if ($dir == 'entrata' && !empty($fattura->dichiarazione) && $fattura->stato->des
<?php
if ($dir == 'uscita') {
echo '
<div class="col-md-3">
<div class="col-md-'.(($dir == 'entrata') ? '3' : '2').'">
{[ "type": "text", "label": "'.tr('Numero fattura/protocollo').'", "required": 1, "name": "numero","class": "text-center alphanumeric-mask", "value": "$numero$" ]}
</div>';
$label = tr('Numero fattura del fornitore');
@ -126,7 +126,7 @@ if ($dir == 'entrata' && !empty($fattura->dichiarazione) && $fattura->stato->des
<!-- id_segment -->
{[ "type": "hidden", "label": "Segmento", "name": "id_segment", "class": "text-center", "value": "$id_segment$" ]}
<div class="col-md-3">
<div class="col-md-<?php echo ($dir == 'entrata') ? '3' : '2'; ?>">
{[ "type": "text", "label": "<?php echo $label; ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
</div>
@ -171,7 +171,7 @@ if (empty($record['is_fiscale'])) {
}
?>
<div class="col-md-3">
<div class="col-md-<?php echo ($dir == 'entrata') ? '3' : '2'; ?>">
<!-- TODO: Rimuovere possibilità di selezionare lo stato pagato obbligando l'utente ad aggiungere il movimento in prima nota -->
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatodocumento", "required": 1, "values": "query=<?php echo $query; ?>", "value": "$idstatodocumento$", "class": "unblockable", "extra": " onchange = \"if ($('#idstatodocumento option:selected').text()=='Pagato' || $('#idstatodocumento option:selected').text()=='Parzialmente pagato' ){if( confirm('<?php echo tr('Sicuro di voler impostare manualmente la fattura come pagata senza aggiungere il movimento in prima nota?'); ?>') ){ return true; }else{ $('#idstatodocumento').selectSet(<?php echo $record['idstatodocumento']; ?>); }}\" " ]}
</div>

View File

@ -121,6 +121,7 @@ class FatturaOrdinaria extends FatturaElettronica
$articolo = ArticoloOriginale::build($codice, $riga['Descrizione'], $categoria);
$articolo->prezzo_acquisto = $riga['PrezzoUnitario'];
$articolo->id_fornitore = $fattura->idanagrafica;
$articolo->save();
}
}

View File

@ -874,3 +874,12 @@ ORDER BY giorni_rimanenti ASC, IFNULL( ((SELECT SUM(co_righe_contratti.qta) FROM
-- Aggiunta campo barcode per gli articoli
ALTER TABLE `mg_articoli` ADD `barcode` VARCHAR(255);
-- Aggiunta campo fornitore per gli articoli
ALTER TABLE `mg_articoli` ADD `id_fornitore` INT(11) NULL DEFAULT NULL;
-- Aggiunta vista prezzo vendita e prezzo acquisto per gli articoli
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `summable`, `visible`, `default`) VALUES
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), 'Fornitore', '(SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica` = `id_fornitore`)', 6, 1, 0, 0, 0, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), 'Prezzo di acquisto', 'prezzo_acquisto', 6, 1, 0, 1, 1, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), 'Prezzo di vendita', 'prezzo_vendita', 6, 1, 0, 1, 1, 0, 1);