Formattazione del codice

This commit is contained in:
Thomas Zilio 2018-11-30 16:10:15 +01:00
parent 24f101fb8e
commit 36d4fceded
63 changed files with 224 additions and 246 deletions

View File

@ -11,7 +11,7 @@ if (!isset($options['edit_articolo']) || !empty($options['edit_articolo'])) {
echo ' echo '
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$result['idarticolo'].'", "ajax-source": "articoli", "icon-after": "add|'.Modules::get('Articoli')['id'].'||'.(($options['dir']=='uscita') ? '' : 'disabled').'" ]} {[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$result['idarticolo'].'", "ajax-source": "articoli", "icon-after": "add|'.Modules::get('Articoli')['id'].'||'.(($options['dir'] == 'uscita') ? '' : 'disabled').'" ]}
</div> </div>
</div>'; </div>';
} else { } else {

View File

@ -70,7 +70,7 @@ abstract class Row extends Description
':id' => $this->idiva, ':id' => $this->idiva,
])['percentuale']; ])['percentuale'];
return ($this->imponibile_scontato + $this->rivalsa_inps) * $percentuale /100; return ($this->imponibile_scontato + $this->rivalsa_inps) * $percentuale / 100;
} }
public function getIvaDetraibileAttribute() public function getIvaDetraibileAttribute()

View File

@ -189,40 +189,41 @@ function datediff($interval, $datefrom, $dateto, $using_timestamps = false)
return $datediff; return $datediff;
} }
/*
/**
* Porting della funzione random_int() per rendere Mpdf retrocompatibile con PHP 5.6 * Porting della funzione random_int() per rendere Mpdf retrocompatibile con PHP 5.6
*/ */
if (!function_exists('random_int')) { if (!function_exists('random_int')) {
function random_int($min, $max) { function random_int($min, $max)
{
if (!function_exists('mcrypt_create_iv')) { if (!function_exists('mcrypt_create_iv')) {
trigger_error( trigger_error(
'mcrypt must be loaded for random_int to work', 'mcrypt must be loaded for random_int to work',
E_USER_WARNING E_USER_WARNING
); );
return null; return null;
} }
if (!is_int($min) || !is_int($max)) { if (!is_int($min) || !is_int($max)) {
trigger_error('$min and $max must be integer values', E_USER_NOTICE); trigger_error('$min and $max must be integer values', E_USER_NOTICE);
$min = (int)$min; $min = (int) $min;
$max = (int)$max; $max = (int) $max;
} }
if ($min > $max) { if ($min > $max) {
trigger_error('$max can\'t be lesser than $min', E_USER_WARNING); trigger_error('$max can\'t be lesser than $min', E_USER_WARNING);
return null; return null;
} }
$range = $counter = $max - $min; $range = $counter = $max - $min;
$bits = 1; $bits = 1;
while ($counter >>= 1) { while ($counter >>= 1) {
++$bits; ++$bits;
} }
$bytes = (int)max(ceil($bits/8), 1); $bytes = (int) max(ceil($bits / 8), 1);
$bitmask = pow(2, $bits) - 1; $bitmask = pow(2, $bits) - 1;
if ($bitmask >= PHP_INT_MAX) { if ($bitmask >= PHP_INT_MAX) {

View File

@ -372,13 +372,12 @@ function searchFieldName($field)
* @since 2.4.3 * @since 2.4.3
* *
* @param string $operation * @param string $operation
* @param int $id_record * @param int $id_record
* @param int $id_module * @param int $id_module
* @param int $id_plugin * @param int $id_plugin
* @param int $id_parent * @param int $id_parent
* @param int $id_email * @param int $id_email
* @param array $options * @param array $options
* @return void
*/ */
function operationLog($operation, array $ids = [], array $options = []) function operationLog($operation, array $ids = [], array $options = [])
{ {

View File

@ -103,7 +103,6 @@ function search(button) {
</div> </div>
</div> </div>
</div>'; </div>';
echo ' echo '
@ -115,17 +114,16 @@ function search(button) {
</h3> </h3>
</div> </div>
<div class="box-body" id="update-search">'; <div class="box-body" id="update-search">';
if (extension_loaded('curl')) { if (extension_loaded('curl')) {
echo' <button type="button" class="btn btn-info btn-block" onclick="search(this)"> echo' <button type="button" class="btn btn-info btn-block" onclick="search(this)">
<i class="fa fa-search"></i> '.tr('Ricerca').' <i class="fa fa-search"></i> '.tr('Ricerca').'
</button>'; </button>';
}else{ } else {
echo' <button type="button" class="btn btn-warning btn-block disabled" > echo' <button type="button" class="btn btn-warning btn-block disabled" >
<i class="fa fa-warning"></i> '.tr('Estensione curl non supportata').'. <i class="fa fa-warning"></i> '.tr('Estensione curl non supportata').'.
</button>'; </button>';
}
}
echo' </div> echo' </div>
</div> </div>
</div> </div>

View File

@ -66,8 +66,8 @@ switch ($resource) {
// Email del cliente // Email del cliente
$query = "SELECT DISTINCT(email) AS email, ragione_sociale, idanagrafica FROM an_anagrafiche WHERE email != '' ".$where; $query = "SELECT DISTINCT(email) AS email, ragione_sociale, idanagrafica FROM an_anagrafiche WHERE email != '' ".$where;
// Se type pec, propongo anche la pec // Se type pec, propongo anche la pec
if (get('type')=='pec') { if (get('type') == 'pec') {
$query .= " UNION SELECT DISTINCT(pec), ragione_sociale, idanagrafica FROM an_anagrafiche WHERE email != '' ".$where; $query .= " UNION SELECT DISTINCT(pec), ragione_sociale, idanagrafica FROM an_anagrafiche WHERE email != '' ".$where;
} }
$query .= ' ORDER BY idanagrafica'; $query .= ' ORDER BY idanagrafica';

View File

@ -46,8 +46,8 @@ switch ($resource) {
$custom['idtipointervento'] = 'idtipointervento_default'; $custom['idtipointervento'] = 'idtipointervento_default';
break; break;
case 'vettori': case 'vettori':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale";
foreach ($elements as $element) { foreach ($elements as $element) {
@ -68,7 +68,7 @@ switch ($resource) {
$custom['idtipointervento'] = 'idtipointervento_default'; $custom['idtipointervento'] = 'idtipointervento_default';
break; break;
case 'agenti': case 'agenti':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale";

View File

@ -48,7 +48,8 @@ if (!$cliente) {
</div> </div>
<!-- RIGA PER LE ANAGRAFICHE CON TIPOLOGIA 'PRIVATO' --> <!-- RIGA PER LE ANAGRAFICHE CON TIPOLOGIA 'PRIVATO' -->
<?php if ($record['tipo'] == 'Privato') { ?> <?php if ($record['tipo'] == 'Privato') {
?>
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]} {[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]}
@ -62,7 +63,8 @@ if (!$cliente) {
{[ "type": "select", "label": "<?php echo tr('Sesso'); ?>", "name": "sesso", "values": "list=\"\": \"Non specificato\", \"M\": \"<?php echo tr('Uomo'); ?>\", \"F\": \"<?php echo tr('Donna'); ?>\"", "value": "$sesso$" ]} {[ "type": "select", "label": "<?php echo tr('Sesso'); ?>", "name": "sesso", "values": "list=\"\": \"Non specificato\", \"M\": \"<?php echo tr('Uomo'); ?>\", \"F\": \"<?php echo tr('Donna'); ?>\"", "value": "$sesso$" ]}
</div> </div>
</div> </div>
<?php } ?> <?php
} ?>
<div class="row"> <div class="row">
<div class="col-md-2"> <div class="col-md-2">
@ -70,7 +72,7 @@ if (!$cliente) {
</div> </div>
<div class="col-md-2"> <div class="col-md-2">
{[ "type": "text", "label": "<?php echo (($record['tipo']=='Ente pubblico') ? tr('Codice unico ufficio') : tr('Codice destinatario')); ?>", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": <?php echo (($record['tipo']=='Ente pubblico') ? '6' : '7'); ?>, "extra": "<?php echo ((empty($record['tipo']) or ($record['tipo']=='Privato') ) ? 'disabled' : ''); ?>", "help": "<?php echo tr('<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>'); ?>", "readonly": "<?php echo intval($anagrafica->sedeLegale->nazione->iso2 != 'IT') ?>" ]} {[ "type": "text", "label": "<?php echo ($record['tipo'] == 'Ente pubblico') ? tr('Codice unico ufficio') : tr('Codice destinatario'); ?>", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": <?php echo ($record['tipo'] == 'Ente pubblico') ? '6' : '7'; ?>, "extra": "<?php echo (empty($record['tipo']) or ($record['tipo'] == 'Privato')) ? 'disabled' : ''; ?>", "help": "<?php echo tr('<b>Attenzione</b>: per impostare il codice specificare prima \'Tipologia\' e \'Nazione\' dell\'anagrafica:<br><ul><li>Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri</li><li>Azienda (B2B) - Codice Destinatario, 7 caratteri</li><li>Privato (B2C) - viene utilizzato il Codice Fiscale</li></ul>'); ?>", "readonly": "<?php echo intval($anagrafica->sedeLegale->nazione->iso2 != 'IT'); ?>" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">

View File

@ -111,7 +111,7 @@ return [
'field' => 'indirizzo', 'field' => 'indirizzo',
'label' => 'Indirizzo', 'label' => 'Indirizzo',
], ],
[ [
'field' => 'indirizzo2', 'field' => 'indirizzo2',
'label' => 'Civico', 'label' => 'Civico',
], ],
@ -135,15 +135,15 @@ return [
'field' => 'codice_fiscale', 'field' => 'codice_fiscale',
'label' => 'Codice Fiscale', 'label' => 'Codice Fiscale',
], ],
[ [
'field' => 'data_nascita', 'field' => 'data_nascita',
'label' => 'Data di nascita', 'label' => 'Data di nascita',
], ],
[ [
'field' => 'luogo_nascita', 'field' => 'luogo_nascita',
'label' => 'Luogo di nascita', 'label' => 'Luogo di nascita',
], ],
[ [
'field' => 'sesso', 'field' => 'sesso',
'label' => 'Sesso', 'label' => 'Sesso',
], ],

View File

@ -24,7 +24,7 @@ switch (post('op')) {
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => post('descrizione')]); echo json_encode(['id' => $id_record, 'text' => post('descrizione')]);
} }
flash()->info(tr('Aggiunto un nuovo articolo')); flash()->info(tr('Aggiunto un nuovo articolo'));
break; break;

View File

@ -13,13 +13,13 @@ switch ($resource) {
//per le vendite leggo iva predefinita da anagrafica, se settata //per le vendite leggo iva predefinita da anagrafica, se settata
if (!empty($superselect['dir']) && $superselect['dir'] == 'entrata' && !empty($superselect['idanagrafica'])) { if (!empty($superselect['dir']) && $superselect['dir'] == 'entrata' && !empty($superselect['idanagrafica'])) {
$idiva_predefinita_anagrafica = $dbo->fetchOne("SELECT idiva_vendite FROM an_anagrafiche WHERE idanagrafica = ".prepare($superselect['idanagrafica']))['idiva_vendite']; $idiva_predefinita_anagrafica = $dbo->fetchOne('SELECT idiva_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($superselect['idanagrafica']))['idiva_vendite'];
$iva_predefinita_anagrafica = $dbo->fetchOne("SELECT descrizione FROM co_iva WHERE id = ".prepare($idiva_predefinita_anagrafica))['descrizione']; $iva_predefinita_anagrafica = $dbo->fetchOne('SELECT descrizione FROM co_iva WHERE id = '.prepare($idiva_predefinita_anagrafica))['descrizione'];
} }
// IVA da impostazioni // IVA da impostazioni
$idiva_predefinita = get_var('Iva predefinita'); $idiva_predefinita = get_var('Iva predefinita');
$iva_predefinita = $dbo->fetchOne("SELECT descrizione FROM co_iva WHERE id=".prepare($idiva_predefinita))['descrizione']; $iva_predefinita = $dbo->fetchOne('SELECT descrizione FROM co_iva WHERE id='.prepare($idiva_predefinita))['descrizione'];
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'mg_articoli.id='.prepare($element); $filter[] = 'mg_articoli.id='.prepare($element);

View File

@ -36,17 +36,17 @@ switch (post('op')) {
$data[$key]['attivo'] = 1; $data[$key]['attivo'] = 1;
if (!empty($data[$key]['prezzo_acquisto'])) { if (!empty($data[$key]['prezzo_acquisto'])) {
$data[$key]['prezzo_acquisto'] = $data[$key]['prezzo_acquisto']; $data[$key]['prezzo_acquisto'] = $data[$key]['prezzo_acquisto'];
} }
if (!empty($data[$key]['prezzo_vendita'])) { if (!empty($data[$key]['prezzo_vendita'])) {
$data[$key]['prezzo_vendita'] = $data[$key]['prezzo_vendita']; $data[$key]['prezzo_vendita'] = $data[$key]['prezzo_vendita'];
} }
if (!empty($data[$key]['peso_lordo'])) { if (!empty($data[$key]['peso_lordo'])) {
$data[$key]['peso_lordo'] = $data[$key]['peso_lordo']; $data[$key]['peso_lordo'] = $data[$key]['peso_lordo'];
} }
if (!empty($data[$key]['volume'])) { if (!empty($data[$key]['volume'])) {
$data[$key]['volume'] = $data[$key]['volume']; $data[$key]['volume'] = $data[$key]['volume'];
} }
// Categorie // Categorie
if (!empty($data[$key]['id_categoria'])) { if (!empty($data[$key]['id_categoria'])) {

View File

@ -24,10 +24,10 @@ switch (post('op')) {
$dbo->query('INSERT INTO `dt_aspettobeni` (`descrizione`) VALUES ('.prepare($descrizione).')'); $dbo->query('INSERT INTO `dt_aspettobeni` (`descrizione`) VALUES ('.prepare($descrizione).')');
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);
} }
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [ flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
'_TYPE_' => 'bene', '_TYPE_' => 'bene',

View File

@ -3,7 +3,6 @@
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'aspetto-beni': case 'aspetto-beni':
$query = 'SELECT id, descrizione FROM dt_aspettobeni |where| ORDER BY descrizione ASC'; $query = 'SELECT id, descrizione FROM dt_aspettobeni |where| ORDER BY descrizione ASC';
@ -13,6 +12,6 @@ switch ($resource) {
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
} }
break; break;
} }

View File

@ -3,7 +3,6 @@
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'categorie_documenti': case 'categorie_documenti':
$query = 'SELECT id, descrizione FROM zz_documenti_categorie |where| ORDER BY descrizione ASC'; $query = 'SELECT id, descrizione FROM zz_documenti_categorie |where| ORDER BY descrizione ASC';
@ -19,6 +18,5 @@ switch ($resource) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
} }
break; break;
} }

View File

@ -39,8 +39,8 @@ switch (filter('op')) {
'descrizione' => $descrizione, 'descrizione' => $descrizione,
]); ]);
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);
} }

View File

@ -3,7 +3,6 @@
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
switch ($resource) { switch ($resource) {
case 'causali': case 'causali':
$query = 'SELECT id, descrizione FROM dt_causalet |where| ORDER BY descrizione ASC'; $query = 'SELECT id, descrizione FROM dt_causalet |where| ORDER BY descrizione ASC';
@ -13,6 +12,6 @@ switch ($resource) {
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
} }
break; break;
} }

View File

@ -18,7 +18,7 @@ include_once __DIR__.'/../../core.php';
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Causale predefinita'); ?>", "name": "predefined", "value": "$predefined$", "help":"<?php echo tr("Impostare questa causale di trasporto come predefinita per i ddt");?>." ]} {[ "type": "checkbox", "label": "<?php echo tr('Causale predefinita'); ?>", "name": "predefined", "value": "$predefined$", "help":"<?php echo tr('Impostare questa causale di trasporto come predefinita per i ddt'); ?>." ]}
</div> </div>
</div> </div>
</div> </div>

View File

@ -77,8 +77,8 @@ switch (post('op')) {
$costo_km = post('costo_km'); $costo_km = post('costo_km');
$costo_diritto_chiamata = post('costo_diritto_chiamata'); $costo_diritto_chiamata = post('costo_diritto_chiamata');
$codice_cig = post('codice_cig'); $codice_cig = post('codice_cig');
$codice_cup = post('codice_cup'); $codice_cup = post('codice_cup');
$query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', idsede='.prepare($idsede).', idstato='.prepare($idstato).', nome='.prepare($nome).', idagente='.prepare($idagente).', idpagamento='.prepare($idpagamento).', numero='.prepare($numero).', budget='.prepare($budget).', idreferente='.prepare($idreferente).', validita='.prepare($validita).', data_bozza='.prepare($data_bozza).', data_accettazione='.prepare($data_accettazione).', data_rifiuto='.prepare($data_rifiuto).', data_conclusione='.prepare($data_conclusione).', rinnovabile='.prepare($rinnovabile).', giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', id_documento_fe='.prepare(post('id_documento_fe')).', codice_cig='.prepare($codice_cig).', codice_cup='.prepare($codice_cup).' WHERE id='.prepare($id_record); $query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).', idsede='.prepare($idsede).', idstato='.prepare($idstato).', nome='.prepare($nome).', idagente='.prepare($idagente).', idpagamento='.prepare($idpagamento).', numero='.prepare($numero).', budget='.prepare($budget).', idreferente='.prepare($idreferente).', validita='.prepare($validita).', data_bozza='.prepare($data_bozza).', data_accettazione='.prepare($data_accettazione).', data_rifiuto='.prepare($data_rifiuto).', data_conclusione='.prepare($data_conclusione).', rinnovabile='.prepare($rinnovabile).', giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).', esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).', id_documento_fe='.prepare(post('id_documento_fe')).', codice_cig='.prepare($codice_cig).', codice_cup='.prepare($codice_cup).' WHERE id='.prepare($id_record);
// costo_diritto_chiamata='.prepare($costo_diritto_chiamata).', ore_lavoro='.prepare($ore_lavoro).', costo_orario='.prepare($costo_orario).', costo_km='.prepare($costo_km).' // costo_diritto_chiamata='.prepare($costo_diritto_chiamata).', ore_lavoro='.prepare($ore_lavoro).', costo_orario='.prepare($costo_orario).', costo_km='.prepare($costo_km).'
@ -258,12 +258,12 @@ switch (post('op')) {
break; break;
case 'update_position': case 'update_position':
$orders = explode( ",", $_POST['order'] ); $orders = explode(',', $_POST['order']);
$order = 0; $order = 0;
foreach( $orders as $idriga ){ foreach ($orders as $idriga) {
$dbo->query('UPDATE `co_righe_contratti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE `co_righe_contratti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
$order++; ++$order;
} }
break; break;
@ -344,12 +344,11 @@ switch (post('op')) {
'id_plugin' => Plugins::get('Pianificazione interventi')['id'], 'id_plugin' => Plugins::get('Pianificazione interventi')['id'],
'id_record' => $id_promemoria, 'id_record' => $id_promemoria,
]); ]);
} }
// Cambio stato precedente contratto in concluso (non più pianificabile) // Cambio stato precedente contratto in concluso (non più pianificabile)
$dbo->query('UPDATE `co_contratti` SET `rinnovabile`= 0, `idstato`= (SELECT id FROM co_staticontratti WHERE pianificabile = 0 AND fatturabile = 1 AND descrizione = \'Concluso\') WHERE `id` = '.prepare($id_record)); $dbo->query('UPDATE `co_contratti` SET `rinnovabile`= 0, `idstato`= (SELECT id FROM co_staticontratti WHERE pianificabile = 0 AND fatturabile = 1 AND descrizione = \'Concluso\') WHERE `id` = '.prepare($id_record));
flash()->info(tr('Contratto rinnovato!')); flash()->info(tr('Contratto rinnovato!'));
$id_record = $new_idcontratto; $id_record = $new_idcontratto;

View File

@ -25,7 +25,7 @@ switch ($resource) {
$custom['totale'] = 'totale'; $custom['totale'] = 'totale';
$custom['sconto'] = 'sconto'; $custom['sconto'] = 'sconto';
$custom['n_righe'] = 'n_righe'; $custom['n_righe'] = 'n_righe';
break; break;
} }

View File

@ -4,15 +4,14 @@ include_once __DIR__.'/../../core.php';
$rs_documento = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontratto='.prepare($id_record)); $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 */ /* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */
echo " echo '
<button type=\"button\" class=\"btn btn-info\" ".((($record['fatturabile']) AND (sizeof($rs_documento)>0)) ? '' : 'disabled')." onclick=\"if( confirm('Creare una fattura per questo contratto?') ){fattura_da_contratto();}\"> <button type="button" class="btn btn-info" '.((($record['fatturabile']) and (sizeof($rs_documento) > 0)) ? '' : 'disabled')." onclick=\"if( confirm('Creare una fattura per questo contratto?') ){fattura_da_contratto();}\">
<i class=\"fa fa-magic\"></i> ".tr('Crea fattura').'... <i class=\"fa fa-magic\"></i> ".tr('Crea fattura').'...
</button>'; </button>';
if ($record['rinnovabile']) { 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['pianificabile']; $rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['pianificabile'];
$stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `pianificabile` = 1')['stati_pianificabili']; $stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `pianificabile` = 1')['stati_pianificabili'];
echo ' 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;"> <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').'> <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').'>

View File

@ -134,7 +134,7 @@ if ($record['stato'] == 'Emessa') {
</div> </div>
<!-- Fatturazione Elettronica PA --> <!-- Fatturazione Elettronica PA -->
<div class="panel panel-primary <?php echo ((($record['tipo_anagrafica']) == 'Ente pubblico') ? 'show' : 'hide'); ?>" > <div class="panel panel-primary <?php echo (($record['tipo_anagrafica']) == 'Ente pubblico') ? 'show' : 'hide'; ?>" >
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati appalto'); ?></h3> <h3 class="panel-title"><?php echo tr('Dati appalto'); ?></h3>
</div> </div>

View File

@ -44,6 +44,5 @@ switch (post('op')) {
flash()->info(tr('Campo personalizzato eliminato')); flash()->info(tr('Campo personalizzato eliminato'));
break; break;
} }

View File

@ -10,11 +10,11 @@ include_once __DIR__.'/../../core.php';
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Modulo'); ?>", "name": "module_id", "values": "query=SELECT id, name as text FROM zz_modules WHERE enabled = 1", "value": "<?php echo $record['id_module'] ?>" ]} {[ "type": "select", "label": "<?php echo tr('Modulo'); ?>", "name": "module_id", "values": "query=SELECT id, name as text FROM zz_modules WHERE enabled = 1", "value": "<?php echo $record['id_module']; ?>" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Plugin'); ?>", "name": "plugin_id", "values": "query=SELECT id, name as text FROM zz_plugins WHERE enabled = 1", "value": "<?php echo $record['id_plugin'] ?>" ]} {[ "type": "select", "label": "<?php echo tr('Plugin'); ?>", "name": "plugin_id", "values": "query=SELECT id, name as text FROM zz_plugins WHERE enabled = 1", "value": "<?php echo $record['id_plugin']; ?>" ]}
</div> </div>
</div> </div>

View File

@ -452,7 +452,7 @@ switch (post('op')) {
} }
for ($i = 0; $i < sizeof($rs); ++$i) { for ($i = 0; $i < sizeof($rs); ++$i) {
if($rs[$i]['idarticolo']){ if ($rs[$i]['idarticolo']) {
rimuovi_articolo_daddt($rs[$i]['idarticolo'], $id_record, $rs[$i]['id']); rimuovi_articolo_daddt($rs[$i]['idarticolo'], $id_record, $rs[$i]['id']);
} }
} }
@ -497,12 +497,12 @@ switch (post('op')) {
break; break;
case 'update_position': case 'update_position':
$orders = explode( ",", $_POST['order'] ); $orders = explode(',', $_POST['order']);
$order = 0; $order = 0;
foreach( $orders as $idriga ){ foreach ($orders as $idriga) {
$dbo->query('UPDATE `dt_righe_ddt` SET `order`='.prepare($order).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE `dt_righe_ddt` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
$order++; ++$order;
} }
break; break;

View File

@ -108,7 +108,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "value": "$idaspettobeni$", "ajax-source": "aspetto-beni", "readonly": "<?php echo $record['flag_completato'];?>", "icon-after": "add|<?php echo Modules::get('Aspetto beni')['id']; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Aspetto beni'); ?>", "name": "idaspettobeni", "value": "$idaspettobeni$", "ajax-source": "aspetto-beni", "readonly": "<?php echo $record['flag_completato']; ?>", "icon-after": "add|<?php echo Modules::get('Aspetto beni')['id']; ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
@ -134,7 +134,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "readonly": "<?php echo $record['flag_completato']; ?>", "disabled": <?php echo intval($record['idspedizione'] == 3); ?>, "required": <?php echo intval($record['idspedizione'] != 3); ?>, "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Vettore|<?php echo ((($record['idspedizione'] != 3 and intval(!$record['flag_completato']))) ? '' : 'disabled'); ?>" ]} {[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "readonly": "<?php echo $record['flag_completato']; ?>", "disabled": <?php echo intval($record['idspedizione'] == 3); ?>, "required": <?php echo intval($record['idspedizione'] != 3); ?>, "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Vettore|<?php echo (($record['idspedizione'] != 3 and intval(!$record['flag_completato']))) ? '' : 'disabled'; ?>" ]}
</div> </div>
@ -143,13 +143,13 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
if ($(this).val() == 3) { if ($(this).val() == 3) {
$("#idvettore").attr("required", false); $("#idvettore").attr("required", false);
$("#idvettore").attr("disabled", true); $("#idvettore").attr("disabled", true);
$("label[for=idvettore]").text("<?php echo tr('Vettore') ?>"); $("label[for=idvettore]").text("<?php echo tr('Vettore'); ?>");
$("#idvettore").selectReset("- Seleziona un'opzione -"); $("#idvettore").selectReset("- Seleziona un'opzione -");
$("#idvettore").next().next().find("button.bound:nth-child(1)").prop("disabled", true); $("#idvettore").next().next().find("button.bound:nth-child(1)").prop("disabled", true);
}else{ }else{
$("#idvettore").attr("required", true); $("#idvettore").attr("required", true);
$("#idvettore").attr("disabled", false); $("#idvettore").attr("disabled", false);
$("label[for=idvettore]").text("<?php echo tr('Vettore') ?>*"); $("label[for=idvettore]").text("<?php echo tr('Vettore'); ?>*");
$("#idvettore").next().next().find("button.bound:nth-child(1)").prop("disabled", false); $("#idvettore").next().next().find("button.bound:nth-child(1)").prop("disabled", false);
} }
}); });

View File

@ -743,7 +743,7 @@ switch (post('op')) {
} }
// Inserimento riga normale // Inserimento riga normale
elseif ($qta != 0 || $rsdesc[0]['is_descrizione']==1) { elseif ($qta != 0 || $rsdesc[0]['is_descrizione'] == 1) {
$query = 'INSERT INTO co_righe_documenti(iddocumento, idarticolo, descrizione, is_descrizione, idddt, idiva, desc_iva, iva, iva_indetraibile, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($descrizione).', '.prepare($rsdesc[0]['is_descrizione']).', '.prepare($idddt).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))'; $query = 'INSERT INTO co_righe_documenti(iddocumento, idarticolo, descrizione, is_descrizione, idddt, idiva, desc_iva, iva, iva_indetraibile, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($descrizione).', '.prepare($rsdesc[0]['is_descrizione']).', '.prepare($idddt).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
$dbo->query($query); $dbo->query($query);
@ -830,7 +830,7 @@ switch (post('op')) {
} }
// Inserimento riga normale // Inserimento riga normale
elseif ($qta != 0 || $rsdesc[0]['is_descrizione']==1) { elseif ($qta != 0 || $rsdesc[0]['is_descrizione'] == 1) {
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, is_descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idordine).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($rdesc[0]['is_descrizione']).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))'); $dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, is_descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idordine).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($rdesc[0]['is_descrizione']).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
} }
@ -849,7 +849,7 @@ switch (post('op')) {
$idcontratto = post('id_record'); $idcontratto = post('id_record');
$data = date('Y-m-d'); $data = date('Y-m-d');
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE id_module=".prepare($id_module)." AND predefined='1'"); $rs_segment = $dbo->fetchArray('SELECT * FROM zz_segments WHERE id_module='.prepare($id_module)." AND predefined='1'");
$id_segment = $rs_segment[0]['id']; $id_segment = $rs_segment[0]['id'];
$numero = get_new_numerofattura($data); $numero = get_new_numerofattura($data);
@ -871,7 +871,7 @@ switch (post('op')) {
for ($i = 0; $i < sizeof($rs_righe); ++$i) { for ($i = 0; $i < sizeof($rs_righe); ++$i) {
// Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza // Se sto aggiungendo un articolo uso la funzione per inserirlo e incrementare la giacenza
if ($rs_righe[$i]['idarticolo']!=0) { if ($rs_righe[$i]['idarticolo'] != 0) {
add_articolo_infattura($id_record, $rs_righe[$i]['idarticolo'], $rs_righe[$i]['descrizione'], $rs_righe[$i]['idiva'], $rs_righe[$i]['qta'], $rs_righe[$i]['subtotale'], $rs_righe[$i]['sconto'], $rs_righe[$i]['sconto_unitario'], $rs_righe[$i]['tipo_sconto']); add_articolo_infattura($id_record, $rs_righe[$i]['idarticolo'], $rs_righe[$i]['descrizione'], $rs_righe[$i]['idiva'], $rs_righe[$i]['qta'], $rs_righe[$i]['subtotale'], $rs_righe[$i]['sconto'], $rs_righe[$i]['sconto_unitario'], $rs_righe[$i]['tipo_sconto']);
} }
@ -1182,12 +1182,12 @@ switch (post('op')) {
break; break;
case 'update_position': case 'update_position':
$orders = explode(",", $_POST['order']); $orders = explode(',', $_POST['order']);
$order = 0; $order = 0;
foreach ($orders as $idriga) { foreach ($orders as $idriga) {
$dbo->query('UPDATE `co_righe_documenti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE `co_righe_documenti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
$order++; ++$order;
} }
break; break;

View File

@ -243,11 +243,11 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
<div class="box-body"> <div class="box-body">
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Aspetto beni').'", "name": "idaspettobeni", "placeholder": "", "ajax-source": "aspetto-beni", "value": "$idaspettobeni$", "icon-after": "add|'.Modules::get('Aspetto beni')['id'].'||'.(($record['stato']!='Bozza') ? 'disabled': '' ).'" ]} {[ "type": "select", "label": "'.tr('Aspetto beni').'", "name": "idaspettobeni", "placeholder": "", "ajax-source": "aspetto-beni", "value": "$idaspettobeni$", "icon-after": "add|'.Modules::get('Aspetto beni')['id'].'||'.(($record['stato'] != 'Bozza') ? 'disabled' : '').'" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "idcausalet", "placeholder": "", "ajax-source": "causali", "value": "$idcausalet$", "icon-after": "add|'.Modules::get('Causali')['id'].'||'.(($record['stato']!='Bozza') ? 'disabled': '' ).'" ]} {[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "idcausalet", "placeholder": "", "ajax-source": "causali", "value": "$idcausalet$", "icon-after": "add|'.Modules::get('Causali')['id'].'||'.(($record['stato'] != 'Bozza') ? 'disabled' : '').'" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
@ -265,7 +265,7 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Vettore').'", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Vettore|'.((($record['idspedizione'] != 3) and ($record['stato']=='Bozza')) ? '' : 'disabled').'", "disabled": '.intval($record['idspedizione'] == 3).', "required": '.intval($record['idspedizione'] != 3).' ]} {[ "type": "select", "label": "'.tr('Vettore').'", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Vettore|'.((($record['idspedizione'] != 3) and ($record['stato'] == 'Bozza')) ? '' : 'disabled').'", "disabled": '.intval($record['idspedizione'] == 3).', "required": '.intval($record['idspedizione'] != 3).' ]}
</div> </div>
<script> <script>
@ -345,10 +345,9 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
[ [
'id' => 'DDP', 'id' => 'DDP',
'text' => 'DDP', 'text' => 'DDP',
] ],
]; ];
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Tipo Resa').'", "name": "tipo_resa", "value":"$tipo_resa$", "values": '.json_encode($tipo_resa).', "readonly": '.intval($record['causale_desc'] != 'Reso').' ]} {[ "type": "select", "label": "'.tr('Tipo Resa').'", "name": "tipo_resa", "value":"$tipo_resa$", "values": '.json_encode($tipo_resa).', "readonly": '.intval($record['causale_desc'] != 'Reso').' ]}

View File

@ -617,7 +617,7 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva,
if (empty($idordine)) { if (empty($idordine)) {
$idordine = 0; $idordine = 0;
} }
if (empty($idcontratto)) { if (empty($idcontratto)) {
$idcontratto = 0; $idcontratto = 0;
} }
@ -689,7 +689,7 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva,
// Inserisco il riferimento dell'ordine alla riga // Inserisco il riferimento dell'ordine alla riga
$dbo->query('UPDATE co_righe_documenti SET idordine='.prepare($idordine).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE co_righe_documenti SET idordine='.prepare($idordine).' WHERE id='.prepare($idriga));
// Inserisco il riferimento del contratto alla riga // Inserisco il riferimento del contratto alla riga
$dbo->query('UPDATE co_righe_documenti SET idcontratto='.prepare($idcontratto).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE co_righe_documenti SET idcontratto='.prepare($idcontratto).' WHERE id='.prepare($idriga));
} }
@ -855,7 +855,7 @@ function rimuovi_riga_fattura($id_documento, $id_riga, $dir)
} }
} }
} }
//Rimozione righe generiche //Rimozione righe generiche
if (empty($riga['idarticolo'])) { if (empty($riga['idarticolo'])) {
// TODO: possibile ambiguità tra righe molto simili tra loro // TODO: possibile ambiguità tra righe molto simili tra loro

View File

@ -66,12 +66,12 @@ if (!empty($rs)) {
else { else {
$delete = 'unlink_riga'; $delete = 'unlink_riga';
} }
// Individuazione dei seriali // Individuazione dei seriali
if (!empty($r['abilita_serial'])) { if (!empty($r['abilita_serial'])) {
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_documento='.prepare($r['id'])), 'serial'); $serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_documento='.prepare($r['id'])), 'serial');
$mancanti = $r['qta'] - count($serials); $mancanti = $r['qta'] - count($serials);
if ($mancanti > 0) { if ($mancanti > 0) {
$extra = 'class="warning"'; $extra = 'class="warning"';
} else { } else {

View File

@ -15,5 +15,3 @@ return [
'data' => Translator::dateToLocale($r['data']), 'data' => Translator::dateToLocale($r['data']),
'id_anagrafica' => $r['idanagrafica'], 'id_anagrafica' => $r['idanagrafica'],
]; ];

View File

@ -362,7 +362,7 @@ if (!empty($id_intervento)) {
session_set('superselect,idanagrafica', $(this).val(), 0); session_set('superselect,idanagrafica', $(this).val(), 0);
var value = !$(this).val() ? true : false; var value = !$(this).val() ? true : false;
var placeholder = !$(this).val() ? '<?php echo tr("Seleziona prima un cliente...");?>' : '<?php echo tr("-Seleziona un\'opzione-");?>'; var placeholder = !$(this).val() ? '<?php echo tr('Seleziona prima un cliente...'); ?>' : '<?php echo tr("-Seleziona un\'opzione-"); ?>';
$("#bs-popup #idsede").prop("disabled", value); $("#bs-popup #idsede").prop("disabled", value);
$("#bs-popup #idsede").selectReset(placeholder); $("#bs-popup #idsede").selectReset(placeholder);

View File

@ -22,7 +22,7 @@ $is_completato = $rss[0]['flag_completato'];
$query = 'SELECT in_interventi_tecnici.*, an_anagrafiche.ragione_sociale, an_anagrafiche.deleted_at AS anagrafica_deleted_at, in_tipiintervento.descrizione AS descrizione_tipo FROM in_interventi_tecnici $query = 'SELECT in_interventi_tecnici.*, an_anagrafiche.ragione_sociale, an_anagrafiche.deleted_at AS anagrafica_deleted_at, in_tipiintervento.descrizione AS descrizione_tipo FROM in_interventi_tecnici
INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica
INNER JOIN in_tipiintervento ON in_interventi_tecnici.idtipointervento = in_tipiintervento.idtipointervento INNER JOIN in_tipiintervento ON in_interventi_tecnici.idtipointervento = in_tipiintervento.idtipointervento
WHERE in_interventi_tecnici.idintervento='.prepare($id_record)." ORDER BY ragione_sociale ASC, in_interventi_tecnici.orario_inizio ASC, in_interventi_tecnici.id ASC"; WHERE in_interventi_tecnici.idintervento='.prepare($id_record).' ORDER BY ragione_sociale ASC, in_interventi_tecnici.orario_inizio ASC, in_interventi_tecnici.id ASC';
$sessioni = $dbo->fetchArray($query); $sessioni = $dbo->fetchArray($query);
$prev_tecnico = ''; $prev_tecnico = '';

View File

@ -145,7 +145,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
if (empty($record['idcontratto'])) { if (empty($record['idcontratto'])) {
?> ?>
<!-- Fatturazione Elettronica PA--> <!-- Fatturazione Elettronica PA-->
<div class="panel panel-primary <?php echo ((($record['tipo_anagrafica']) == 'Ente pubblico') ? 'show' : 'hide'); ?>" > <div class="panel panel-primary <?php echo (($record['tipo_anagrafica']) == 'Ente pubblico') ? 'show' : 'hide'; ?>" >
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Dati appalto'); ?></h3> <h3 class="panel-title"><?php echo tr('Dati appalto'); ?></h3>
</div> </div>
@ -285,19 +285,19 @@ if (empty($record['idcontratto'])) {
<div class="text-center row"> <div class="text-center row">
<div class="col-md-12" > <div class="col-md-12" >
<?php <?php
if ($record['firma_file'] == '') { if ($record['firma_file'] == '') {
echo ' echo '
<div class="alert alert-warning"><i class="fa fa-warning"></i> '.tr('Questo intervento non è ancora stato firmato dal cliente').'.</div>'; <div class="alert alert-warning"><i class="fa fa-warning"></i> '.tr('Questo intervento non è ancora stato firmato dal cliente').'.</div>';
} else { } else {
echo ' echo '
<img src="'.$rootdir.'/files/interventi/'.$record['firma_file'].'" class="img-thumbnail"><div>&nbsp;</div> <img src="'.$rootdir.'/files/interventi/'.$record['firma_file'].'" class="img-thumbnail"><div>&nbsp;</div>
<div class="col-md-6 col-md-offset-3 alert alert-success"><i class="fa fa-check"></i> '.tr('Firmato il _DATE_ alle _TIME_ da _PERSON_', [ <div class="col-md-6 col-md-offset-3 alert alert-success"><i class="fa fa-check"></i> '.tr('Firmato il _DATE_ alle _TIME_ da _PERSON_', [
'_DATE_' => Translator::dateToLocale($record['firma_data']), '_DATE_' => Translator::dateToLocale($record['firma_data']),
'_TIME_' => Translator::timeToLocale($record['firma_data']), '_TIME_' => Translator::timeToLocale($record['firma_data']),
'_PERSON_' => '<b>'.$record['firma_nome'].'</b>', '_PERSON_' => '<b>'.$record['firma_nome'].'</b>',
]).'</div>'; ]).'</div>';
} }
?> ?>
</div> </div>
</div> </div>

View File

@ -11,7 +11,7 @@ switch (filter('op')) {
$percentuale = empty($esente) ? post('percentuale') : 0; $percentuale = empty($esente) ? post('percentuale') : 0;
if ($dbo->fetchNum('SELECT * FROM `co_iva` WHERE (`descrizione` = '.prepare($descrizione).' AND `codice` = '.prepare($codice).') AND `id` != '.prepare($id_record)) == 0) { if ($dbo->fetchNum('SELECT * FROM `co_iva` WHERE (`descrizione` = '.prepare($descrizione).' AND `codice` = '.prepare($codice).') AND `id` != '.prepare($id_record)) == 0) {
$codice_natura = post('codice_natura_fe') ? : null; $codice_natura = post('codice_natura_fe') ?: null;
$esigibilita = post('esigibilita'); $esigibilita = post('esigibilita');
$dbo->update('co_iva', [ $dbo->update('co_iva', [
@ -43,7 +43,7 @@ switch (filter('op')) {
$codice = post('codice'); $codice = post('codice');
$esente = post('esente'); $esente = post('esente');
$percentuale = empty($esente) ? post('percentuale') : 0; $percentuale = empty($esente) ? post('percentuale') : 0;
$codice_natura = post('codice_natura_fe') ? : null; $codice_natura = post('codice_natura_fe') ?: null;
if ($dbo->fetchNum('SELECT * FROM `co_iva` WHERE `descrizione` = '.prepare($descrizione).' AND `codice` = '.prepare($codice)) == 0) { if ($dbo->fetchNum('SELECT * FROM `co_iva` WHERE `descrizione` = '.prepare($descrizione).' AND `codice` = '.prepare($codice)) == 0) {
$dbo->insert('co_iva', [ $dbo->insert('co_iva', [
'descrizione' => $descrizione, 'descrizione' => $descrizione,

View File

@ -353,12 +353,12 @@ switch (post('op')) {
break; break;
case 'update_position': case 'update_position':
$orders = explode(",", $_POST['order']); $orders = explode(',', $_POST['order']);
$order = 0; $order = 0;
foreach ($orders as $idriga) { foreach ($orders as $idriga) {
$dbo->query('UPDATE `or_righe_ordini` SET `order`='.prepare($order).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE `or_righe_ordini` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
$order++; ++$order;
} }
break; break;

View File

@ -18,7 +18,7 @@ include_once __DIR__.'/../../core.php';
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Porto predefinito'); ?>", "name": "predefined", "value": "$predefined$", "help":"<?php echo tr("Impostare questo porto come predefinito per i ddt");?>." ]} {[ "type": "checkbox", "label": "<?php echo tr('Porto predefinito'); ?>", "name": "predefined", "value": "$predefined$", "help":"<?php echo tr('Impostare questo porto come predefinito per i ddt'); ?>." ]}
</div> </div>
</div> </div>
</div> </div>

View File

@ -252,7 +252,7 @@ switch (post('op')) {
case 'editriga': case 'editriga':
$idriga = post('idriga'); $idriga = post('idriga');
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$idarticolo = post('idarticolo'); $idarticolo = post('idarticolo');
//Info riga Preventivo //Info riga Preventivo
$rs = $dbo->fetchArray('SELECT * FROM co_righe_preventivi WHERE id='.prepare($idriga)); $rs = $dbo->fetchArray('SELECT * FROM co_righe_preventivi WHERE id='.prepare($idriga));
$is_descrizione = $rs[0]['is_descrizione']; $is_descrizione = $rs[0]['is_descrizione'];
@ -292,12 +292,12 @@ switch (post('op')) {
break; break;
case 'update_position': case 'update_position':
$orders = explode( ",", $_POST['order'] ); $orders = explode(',', $_POST['order']);
$order = 0; $order = 0;
foreach( $orders as $idriga ){ foreach ($orders as $idriga) {
$dbo->query('UPDATE `co_righe_preventivi` SET `order`='.prepare($order).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE `co_righe_preventivi` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
$order++; ++$order;
} }
break; break;

View File

@ -36,7 +36,7 @@ switch ($resource) {
} }
$custom['idtipointervento'] = 'idtipointervento'; $custom['idtipointervento'] = 'idtipointervento';
$custom['tempo_standard'] = 'tempo_standard'; $custom['tempo_standard'] = 'tempo_standard';
$custom['idtipointervento_descrizione'] = 'idtipointervento_descrizione'; $custom['idtipointervento_descrizione'] = 'idtipointervento_descrizione';
$custom['totale'] = 'totale'; $custom['totale'] = 'totale';
$custom['sconto'] = 'sconto'; $custom['sconto'] = 'sconto';

View File

@ -6,13 +6,13 @@ switch (post('op')) {
case 'update': case 'update':
// Calcolo il totale da pagare // Calcolo il totale da pagare
$rs = $dbo->fetchArray('SELECT SUM(da_pagare) AS totale_da_pagare FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento=(SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).')'); $rs = $dbo->fetchArray('SELECT SUM(da_pagare) AS totale_da_pagare FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento=(SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).')');
$totale_da_pagare = sum( $rs[0]['totale_da_pagare'], null, Settings::get('Cifre decimali per importi') ); $totale_da_pagare = sum($rs[0]['totale_da_pagare'], null, Settings::get('Cifre decimali per importi'));
$totale_utente = 0; $totale_utente = 0;
// Verifico se il totale sommato è uguale al totale da pagare // Verifico se il totale sommato è uguale al totale da pagare
foreach (post('scadenza') as $idscadenza => $da_pagare) { foreach (post('scadenza') as $idscadenza => $da_pagare) {
$totale_utente = sum( $totale_utente, $da_pagare ); $totale_utente = sum($totale_utente, $da_pagare);
} }
if ($totale_utente == $totale_da_pagare) { if ($totale_utente == $totale_da_pagare) {

View File

@ -18,7 +18,7 @@ include_once __DIR__.'/../../core.php';
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Spedizione predefinita'); ?>", "name": "predefined", "value": "$predefined$", "help":"<?php echo tr("Impostare questo tipo di spedizione come predefinito per i ddt");?>." ]} {[ "type": "checkbox", "label": "<?php echo tr('Spedizione predefinita'); ?>", "name": "predefined", "value": "$predefined$", "help":"<?php echo tr('Impostare questo tipo di spedizione come predefinito per i ddt'); ?>." ]}
</div> </div>
</div> </div>
</div> </div>

View File

@ -91,7 +91,7 @@ switch (filter('op')) {
} elseif ($password != $password_rep) { } elseif ($password != $password_rep) {
flash()->error(tr('Le password non coincidono')); flash()->error(tr('Le password non coincidono'));
} else { } else {
if ($dbo->query("INSERT INTO zz_users(idgruppo, username, password, idanagrafica, enabled, email) VALUES(".prepare($id_record).", ".prepare($username).", ".prepare(Auth::hashPassword($password)).", ".prepare($idanagrafica).", 1, ".prepare($email).")")) { if ($dbo->query('INSERT INTO zz_users(idgruppo, username, password, idanagrafica, enabled, email) VALUES('.prepare($id_record).', '.prepare($username).', '.prepare(Auth::hashPassword($password)).', '.prepare($idanagrafica).', 1, '.prepare($email).')')) {
$dbo->query('INSERT INTO `zz_tokens` (`id_utente`, `token`) VALUES ('.prepare($dbo->lastInsertedID()).', '.prepare(secure_random_string()).')'); $dbo->query('INSERT INTO `zz_tokens` (`id_utente`, `token`) VALUES ('.prepare($dbo->lastInsertedID()).', '.prepare(secure_random_string()).')');
flash()->info(tr('Utente aggiunto!')); flash()->info(tr('Utente aggiunto!'));

View File

@ -7,11 +7,11 @@ switch ($resource) {
$query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, `an_anagrafiche`.`ragione_sociale` AS "descrizione", `an_tipianagrafiche`.`descrizione` AS optgroup FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC'; $query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, `an_anagrafiche`.`ragione_sociale` AS "descrizione", `an_tipianagrafiche`.`descrizione` AS optgroup FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC';
$where[] = 'an_anagrafiche.deleted_at IS NULL'; $where[] = 'an_anagrafiche.deleted_at IS NULL';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
} }
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%');
} }

View File

@ -43,7 +43,7 @@ if (!empty($anagrafica)) {
echo ' echo '
<a class="btn btn-info col-md-4 tip '.((!empty(Modules::get('Utenti e permessi'))) ? '' : 'disabled' ).'" data-href="'.$rootdir.'/modules/'.Modules::get('Utenti e permessi')['directory'].'/user.php" data-toggle="modal" data-title="Cambia password"> <a class="btn btn-info col-md-4 tip '.((!empty(Modules::get('Utenti e permessi'))) ? '' : 'disabled').'" data-href="'.$rootdir.'/modules/'.Modules::get('Utenti e permessi')['directory'].'/user.php" data-toggle="modal" data-title="Cambia password">
<i class="fa fa-unlock-alt"></i> '.tr('Cambia password').' <i class="fa fa-unlock-alt"></i> '.tr('Cambia password').'
</a> </a>
</div>'; </div>';

View File

@ -71,7 +71,6 @@ if (!$self_edit) {
{[ "type": "text", "label": "'.tr('Email').'", "name": "email", "required": 0, "value": "'.$email.'" ]} {[ "type": "text", "label": "'.tr('Email').'", "name": "email", "required": 0, "value": "'.$email.'" ]}
</div> </div>
</div>'; </div>';
} else { } else {
echo ' echo '
<input type="hidden" id="username" name="username" value="'.$username.'"> <input type="hidden" id="username" name="username" value="'.$username.'">

View File

@ -128,7 +128,7 @@ switch (filter('op')) {
$rs = $dbo->fetchArray('SELECT enabled FROM zz_group_module WHERE id='.prepare($id)); $rs = $dbo->fetchArray('SELECT enabled FROM zz_group_module WHERE id='.prepare($id));
$dbo->update('zz_group_module', [ $dbo->update('zz_group_module', [
'enabled' => !empty($rs[0]['enabled']) ? 0 : 1 'enabled' => !empty($rs[0]['enabled']) ? 0 : 1,
], ['id' => $id]); ], ['id' => $id]);
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
@ -163,16 +163,14 @@ switch (filter('op')) {
break; break;
case 'update_position': case 'update_position':
$orders = explode(",", $_POST['order']); $orders = explode(',', $_POST['order']);
$order = 0; $order = 0;
foreach ($orders as $idriga) { foreach ($orders as $idriga) {
$dbo->query('UPDATE `zz_views` SET `order`='.prepare($order).' WHERE id='.prepare($idriga)); $dbo->query('UPDATE `zz_views` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
$order++; ++$order;
} }
break; break;
} }

View File

@ -217,7 +217,7 @@ if (!empty($options) && $options != 'custom') {
<div class="col-md-3"> <div class="col-md-3">
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">'.tr('Ordine di visualizzazione').' <span class="tip pull-right" title="'.tr("Trascina per ordinare le colonne").'."><i class="fa fa-question-circle-o"></i></span></h3> <h3 class="panel-title">'.tr('Ordine di visualizzazione').' <span class="tip pull-right" title="'.tr('Trascina per ordinare le colonne').'."><i class="fa fa-question-circle-o"></i></span></h3>
</div> </div>
<div class="panel-body sortable">'; <div class="panel-body sortable">';
@ -520,6 +520,6 @@ $(document).ready(function(){
}); });
}); });
</script>'; </script>';
// Fix apertura non corrisposta di un tag div // Fix apertura non corrisposta di un tag div
echo '</div>'; echo '</div>';
} }

View File

@ -9,7 +9,7 @@ switch (filter('op')) {
$file = $fattura_pa->save($upload_dir); $file = $fattura_pa->save($upload_dir);
//Aggiorno la data di creazione della fattura elettronica //Aggiorno la data di creazione della fattura elettronica
$dbo->query("UPDATE co_documenti SET xml_generated_at=NOW() WHERE co_documenti.id=".prepare($id_record)); $dbo->query('UPDATE co_documenti SET xml_generated_at=NOW() WHERE co_documenti.id='.prepare($id_record));
flash()->info(tr('Fattura elettronica generata correttamente!')); flash()->info(tr('Fattura elettronica generata correttamente!'));

View File

@ -3,16 +3,17 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
include_once __DIR__.'/init.php'; include_once __DIR__.'/init.php';
use Plugins\ExportFE\FatturaElettronica;
if (!empty($fattura_pa)) { if (!empty($fattura_pa)) {
$disabled = false; $disabled = false;
$generated = file_exists($upload_dir.'/'.$fattura_pa->getFilename()); $generated = file_exists($upload_dir.'/'.$fattura_pa->getFilename());
//Ulteriore controllo sulla data generazione file // Ulteriore controllo sulla data generazione file
$rs_generated = $dbo->fetchArray("SELECT xml_generated_at FROM co_documenti WHERE id=".prepare($id_record)); $rs_generated = $dbo->fetchArray('SELECT xml_generated_at FROM co_documenti WHERE id='.prepare($id_record));
if(empty($rs_generated[0]['xml_generated_at'])){ if (empty($rs_generated[0]['xml_generated_at'])) {
$generated = false; $generated = false;
} }
} else { } else {
echo ' echo '
<div class="alert alert-warning"> <div class="alert alert-warning">
@ -25,7 +26,7 @@ if (!empty($fattura_pa)) {
} }
// Campi obbligatori per l'anagrafica Azienda // Campi obbligatori per l'anagrafica Azienda
$azienda = Plugins\ExportFE\FatturaElettronica::getAzienda(); $azienda = FatturaElettronica::getAzienda();
$fields = [ $fields = [
'piva' => 'Partita IVA', 'piva' => 'Partita IVA',
// 'codice_fiscale' => 'Codice Fiscale', // 'codice_fiscale' => 'Codice Fiscale',
@ -53,7 +54,7 @@ if (!empty($missing)) {
} }
// Campi obbligatori per l'anagrafica Cliente // Campi obbligatori per l'anagrafica Cliente
$cliente = $dbo->fetchOne('SELECT *, (SELECT `iso2` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($record['idanagrafica'])); $cliente = FatturaElettronica::getAnagrafica($record['idanagrafica']);
$fields = [ $fields = [
// 'piva' => 'Partita IVA', // 'piva' => 'Partita IVA',
// 'codice_fiscale' => 'Codice Fiscale', // 'codice_fiscale' => 'Codice Fiscale',
@ -63,17 +64,17 @@ $fields = [
'nazione' => 'Nazione', 'nazione' => 'Nazione',
]; ];
//se privato/pa o azienda // se privato/pa o azienda
if ($cliente['tipo'] == 'Privato' or $cliente['tipo'] == 'Ente pubblico' ){ if ($cliente['tipo'] == 'Privato' or $cliente['tipo'] == 'Ente pubblico') {
//se privato/pa chiedo obbligatoriamente codice fiscale // se privato/pa chiedo obbligatoriamente codice fiscale
$fields['codice_fiscale'] = 'Codice Fiscale'; $fields['codice_fiscale'] = 'Codice Fiscale';
//se pa chiedo codice unico ufficio // se pa chiedo codice unico ufficio
($cliente['tipo'] == 'Ente pubblico' and empty($cliente['codice_destinatario'])) ? $fields['codice_destinatario'] = 'Codice unico ufficio' : ''; ($cliente['tipo'] == 'Ente pubblico' && empty($cliente['codice_destinatario'])) ? $fields['codice_destinatario'] = 'Codice unico ufficio' : '';
}else{ } else {
//se azienda chiedo partita iva // se azienda chiedo partita iva
$fields['piva'] = 'Partita IVA'; $fields['piva'] = 'Partita IVA';
//se italiana e non ho impostato ne il codice destinatario ne indirizzo PEC chiedo la compilazione di almeno uno dei due // se italiana e non ho impostato ne il codice destinatario ne indirizzo PEC chiedo la compilazione di almeno uno dei due
(empty($cliente['codice_destinatario']) and empty($cliente['pec']) and intval($cliente['nazione'] == 'IT') ) ? $fields['codice_destinatario'] = 'Codice destinatario o indirizzo PEC' : ''; (empty($cliente['codice_destinatario']) and empty($cliente['pec']) && intval($cliente['nazione'] == 'IT')) ? $fields['codice_destinatario'] = 'Codice destinatario o indirizzo PEC' : '';
} }
$missing = []; $missing = [];
@ -131,7 +132,7 @@ echo '
</div>'; </div>';
if($generated){ if ($generated) {
echo ' echo '
<script> <script>
$("#genera").click(function(event){ $("#genera").click(function(event){

View File

@ -94,7 +94,7 @@ class FatturaElettronica
* *
* @return array * @return array
*/ */
protected static function getAnagrafica($id) public static function getAnagrafica($id)
{ {
return database()->fetchOne('SELECT *, (SELECT `iso2` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($id)); return database()->fetchOne('SELECT *, (SELECT `iso2` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($id));
} }
@ -164,7 +164,7 @@ class FatturaElettronica
$documento = $this->getDocumento(); $documento = $this->getDocumento();
$database = database(); $database = database();
$note_accredito = $database->fetchArray("SELECT numero_esterno, data FROM co_documenti WHERE id=".prepare($documento['ref_documento'])); $note_accredito = $database->fetchArray('SELECT numero_esterno, data FROM co_documenti WHERE id='.prepare($documento['ref_documento']));
$this->fatture_collegate = $note_accredito; $this->fatture_collegate = $note_accredito;
} }
@ -477,10 +477,10 @@ class FatturaElettronica
} }
/** /**
* Restituisce l'array responsabile per la generazione del tag DatiOrdineAcquisto. * Restituisce l'array responsabile per la generazione del tag DatiOrdineAcquisto.
* *
* @return array * @return array
*/ */
protected static function getDatiOrdineAcquisto($fattura) protected static function getDatiOrdineAcquisto($fattura)
{ {
$ordini = $fattura->getOrdiniAcquisto(); $ordini = $fattura->getOrdiniAcquisto();
@ -508,10 +508,10 @@ class FatturaElettronica
} }
/** /**
* Restituisce l'array responsabile per la generazione del tag DatiContratto. * Restituisce l'array responsabile per la generazione del tag DatiContratto.
* *
* @return array * @return array
*/ */
protected static function getDatiContratto($fattura) protected static function getDatiContratto($fattura)
{ {
$contratti = $fattura->getContratti(); $contratti = $fattura->getContratti();
@ -539,10 +539,10 @@ class FatturaElettronica
} }
/** /**
* Restituisce l'array responsabile per la generazione del tag DatiFattureCollegate. * Restituisce l'array responsabile per la generazione del tag DatiFattureCollegate.
* *
* @return array * @return array
*/ */
protected static function getDatiFattureCollegate($fattura) protected static function getDatiFattureCollegate($fattura)
{ {
$fatture = $fattura->getFattureCollegate(); $fatture = $fattura->getFattureCollegate();
@ -659,7 +659,7 @@ class FatturaElettronica
$dettaglio['DataFinePeriodo'] = $riga['data_fine_periodo']; $dettaglio['DataFinePeriodo'] = $riga['data_fine_periodo'];
} }
$dettaglio['PrezzoUnitario']= $prezzo_unitario; $dettaglio['PrezzoUnitario'] = $prezzo_unitario;
// Sconto // Sconto
$riga['sconto_unitario'] = floatval($riga['sconto_unitario']); $riga['sconto_unitario'] = floatval($riga['sconto_unitario']);
@ -715,7 +715,7 @@ class FatturaElettronica
} }
$result[] = [ $result[] = [
'DatiRiepilogo' => $iva 'DatiRiepilogo' => $iva,
]; ];
} }
@ -732,7 +732,7 @@ class FatturaElettronica
]; ];
$result[] = [ $result[] = [
'DatiRiepilogo' => $iva 'DatiRiepilogo' => $iva,
]; ];
} }
@ -779,7 +779,7 @@ class FatturaElettronica
} }
$result[] = [ $result[] = [
'DettaglioPagamento' => $pagamento 'DettaglioPagamento' => $pagamento,
]; ];
return $result; return $result;

View File

@ -3,8 +3,6 @@
namespace Plugins\ImportFE; namespace Plugins\ImportFE;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use Modules;
use Uploads;
/** /**
* Classe per l'interazione con API esterne. * Classe per l'interazione con API esterne.
@ -25,7 +23,7 @@ class Interaction
if (!isset(self::$client)) { if (!isset(self::$client)) {
self::$client = new Client([ self::$client = new Client([
'base_uri' => 'https://services.osmcloud.it/v1/', 'base_uri' => 'https://services.osmcloud.it/v1/',
'verify' => false 'verify' => false,
]); ]);
} }

View File

@ -84,16 +84,14 @@ switch (filter('op')) {
// se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria) // se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria)
//if ($data_inizio) { //if ($data_inizio) {
// oggi // oggi
//$min_date = date('Y-m-d'); //$min_date = date('Y-m-d');
//} else { //} else {
//questo promemoria //questo promemoria
//$min_date = date('Y-m-d', strtotime($data_richiesta)); //$min_date = date('Y-m-d', strtotime($data_richiesta));
//} //}
$data_richiesta = $min_date; $data_richiesta = $min_date;
// inizio controllo data_conclusione, data valida e maggiore della $min_date // inizio controllo data_conclusione, data valida e maggiore della $min_date
if ((date('Y', strtotime($data_conclusione)) > 1970) && (date('Y-m-d', strtotime($min_date)) <= date('Y-m-d', strtotime($data_conclusione)))) { if ((date('Y', strtotime($data_conclusione)) > 1970) && (date('Y-m-d', strtotime($min_date)) <= date('Y-m-d', strtotime($data_conclusione)))) {
$i = 0; $i = 0;

View File

@ -15,8 +15,8 @@ $records = $dbo->fetchArray('SELECT *, (SELECT descrizione FROM in_tipiintervent
$pianificabile = $dbo->fetchOne('SELECT pianificabile FROM co_staticontratti WHERE id = :id', [ $pianificabile = $dbo->fetchOne('SELECT pianificabile FROM co_staticontratti WHERE id = :id', [
':id' => $contratto['idstato'], ':id' => $contratto['idstato'],
])['pianificabile']; ])['pianificabile'];
if ($pianificabile){ if ($pianificabile) {
$pianificabile = (date( 'Y', strtotime($contratto['data_accettazione'])) > 1970 and date( 'Y', strtotime($contratto['data_conclusione'])) > 1970) ? true : false ; $pianificabile = (date('Y', strtotime($contratto['data_accettazione'])) > 1970 and date('Y', strtotime($contratto['data_conclusione'])) > 1970) ? true : false;
} }
$stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `pianificabile` = 1')['stati_pianificabili']; $stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `pianificabile` = 1')['stati_pianificabili'];
@ -169,19 +169,18 @@ if (!empty($records)) {
} }
} }
echo ' echo '
<button type="button" '.((!empty($pianificabile)) ? '' : 'disabled').' title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary tip" id="add_promemoria"> <button type="button" '.((!empty($pianificabile)) ? '' : 'disabled').' title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary tip" id="add_promemoria">
<i class="fa fa-plus"></i> '.tr('Nuovo promemoria').' <i class="fa fa-plus"></i> '.tr('Nuovo promemoria').'
</button>'; </button>';
//TODO: terminare con gestione swal standard, prevedere salvataggio ajax e possibilità di lanciare pop-up //TODO: terminare con gestione swal standard, prevedere salvataggio ajax e possibilità di lanciare pop-up
/*$msg = '{[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "values": "query=SELECT co_contratti_tipiintervento.idtipointervento AS id, in_tipiintervento.descrizione AS descrizione FROM in_tipiintervento INNER JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento=co_contratti_tipiintervento.idtipointervento WHERE idcontratto='.prepare($id_record).' AND (co_contratti_tipiintervento.costo_ore!=0 OR co_contratti_tipiintervento.costo_km!=0 OR co_contratti_tipiintervento.costo_dirittochiamata!=0) ORDER BY in_tipiintervento.descrizione" ]}'; /*$msg = '{[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "values": "query=SELECT co_contratti_tipiintervento.idtipointervento AS id, in_tipiintervento.descrizione AS descrizione FROM in_tipiintervento INNER JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento=co_contratti_tipiintervento.idtipointervento WHERE idcontratto='.prepare($id_record).' AND (co_contratti_tipiintervento.costo_ore!=0 OR co_contratti_tipiintervento.costo_km!=0 OR co_contratti_tipiintervento.costo_dirittochiamata!=0) ORDER BY in_tipiintervento.descrizione" ]}';
echo ' echo '
<button type="button" title="Aggiungi un nuovo promemoria da pianificare." class="btn btn-primary ask tip" data-title="'.tr('Vuoi aggiungere un nuovo promemoria?').'" data-msg="'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="add-promemoria" data-id_plugin="'.$plugin['id'].'" data-id_parent="'.$id_record.'" data-data_richiesta="'.date('Y-m-d').'" data-button="'.tr('Aggiungi').'" data-class="btn btn-lg btn-primary" data-backto="record-edit"> <button type="button" title="Aggiungi un nuovo promemoria da pianificare." class="btn btn-primary ask tip" data-title="'.tr('Vuoi aggiungere un nuovo promemoria?').'" data-msg="'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="add-promemoria" data-id_plugin="'.$plugin['id'].'" data-id_parent="'.$id_record.'" data-data_richiesta="'.date('Y-m-d').'" data-button="'.tr('Aggiungi').'" data-class="btn btn-lg btn-primary" data-backto="record-edit">
<i class="fa fa-plus"></i> '.tr('Nuovo promemoria').' <i class="fa fa-plus"></i> '.tr('Nuovo promemoria').'
</button>';*/ </button>';*/
$options = $dbo->fetchArray('SELECT co_contratti_tipiintervento.*, in_tipiintervento.descrizione FROM in_tipiintervento INNER JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento=co_contratti_tipiintervento.idtipointervento WHERE idcontratto='.prepare($id_record).' AND (co_contratti_tipiintervento.costo_ore!=0 OR co_contratti_tipiintervento.costo_km!=0 OR co_contratti_tipiintervento.costo_dirittochiamata!=0) ORDER BY in_tipiintervento.descrizione'); $options = $dbo->fetchArray('SELECT co_contratti_tipiintervento.*, in_tipiintervento.descrizione FROM in_tipiintervento INNER JOIN co_contratti_tipiintervento ON in_tipiintervento.idtipointervento=co_contratti_tipiintervento.idtipointervento WHERE idcontratto='.prepare($id_record).' AND (co_contratti_tipiintervento.costo_ore!=0 OR co_contratti_tipiintervento.costo_km!=0 OR co_contratti_tipiintervento.costo_dirittochiamata!=0) ORDER BY in_tipiintervento.descrizione');
echo ' echo '

View File

@ -167,7 +167,7 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "checkbox", "label": "'.tr("Promemoria ciclico").'", "name": "pianifica_promemoria", "value": "0", "placeholder": "'.tr("Pianificare promemoria ciclici").'", "help": "'.tr("Pianificare ciclicamente altri promemoria identici a questo").'" ]} {[ "type": "checkbox", "label": "'.tr('Promemoria ciclico').'", "name": "pianifica_promemoria", "value": "0", "placeholder": "'.tr('Pianificare promemoria ciclici').'", "help": "'.tr('Pianificare ciclicamente altri promemoria identici a questo').'" ]}
</div> </div>
<div class="col-md-2"> <div class="col-md-2">

View File

@ -2,7 +2,6 @@
namespace Models; namespace Models;
use Traits\StoreTrait;
use Common\Model; use Common\Model;
class Upload extends Model class Upload extends Model

View File

@ -353,6 +353,7 @@ class Modules
public static function filepath($element, $file) public static function filepath($element, $file)
{ {
$element = self::get($element); $element = self::get($element);
return $element ? $element->filepath($file) : null; return $element ? $element->filepath($file) : null;
} }
} }

View File

@ -94,6 +94,7 @@ class Plugins
public static function filepath($element, $file) public static function filepath($element, $file)
{ {
$element = self::get($element); $element = self::get($element);
return $element ? $element->filepath($file) : null; return $element ? $element->filepath($file) : null;
} }
} }

View File

@ -10,7 +10,7 @@
*/ */
return ' return '
<div class="row" style="'.((!empty($settings['header-font-size'])) ? "font-size:".($settings['header-font-size'])."px;" : "").'" > <div class="row" style="'.((!empty($settings['header-font-size'])) ? 'font-size:'.($settings['header-font-size']).'px;' : '').'" >
<div class="col-xs-6"> <div class="col-xs-6">
<img src="$logo$" alt="Logo" border="0"/> <img src="$logo$" alt="Logo" border="0"/>
</div> </div>

View File

@ -12,7 +12,7 @@ $settings = [
], ],
'header-height' => 35, 'header-height' => 35,
'footer-height' => 5, 'footer-height' => 5,
'header-font-size' => 12, 'header-font-size' => 12,
]; ];
return $settings; return $settings;

View File

@ -32,7 +32,7 @@ echo '
// Codice fiscale o P.Iva // Codice fiscale o P.Iva
if (!empty($c_piva)) { if (!empty($c_piva)) {
echo ' echo '
<td colspan=2> <td colspan=2>
'.tr('P.Iva').': <b>'.strtoupper($c_piva).'</b> '.tr('P.Iva').': <b>'.strtoupper($c_piva).'</b>
</td>'; </td>';
@ -42,13 +42,12 @@ echo '
'.tr('C.F.').': <b>'.strtoupper($c_codicefiscale).'</b> '.tr('C.F.').': <b>'.strtoupper($c_codicefiscale).'</b>
</td>'; </td>';
} }
echo '</tr>'; echo '</tr>';
//Indirizzo //Indirizzo
if (!empty($c_indirizzo) or !empty($c_cap) or !empty($c_citta) or !empty($c_provincia)) { if (!empty($c_indirizzo) or !empty($c_cap) or !empty($c_citta) or !empty($c_provincia)) {
echo '
echo '
<tr> <tr>
<td colspan="4"> <td colspan="4">
'.((!empty($c_indirizzo)) ? tr('Via').': <b>'.$c_indirizzo.'</b>' : '').' '.((!empty($c_indirizzo)) ? tr('Via').': <b>'.$c_indirizzo.'</b>' : '').'
@ -57,16 +56,15 @@ echo '
'.((!empty($c_provincia)) ? tr('Provincia').': <b>'.strtoupper($c_provincia).'</b>' : '').' '.((!empty($c_provincia)) ? tr('Provincia').': <b>'.strtoupper($c_provincia).'</b>' : '').'
</td> </td>
</tr>'; </tr>';
}
}
echo ' echo '
<tr> <tr>
<td colspan="4"> <td colspan="4">
'.tr('Telefono').': <b>'.$c_telefono.'</b>'; '.tr('Telefono').': <b>'.$c_telefono.'</b>';
if (!empty($c_cellulare)) { if (!empty($c_cellulare)) {
echo' - '.tr('Cellulare').': <b>'.$c_cellulare.'</b>'; echo' - '.tr('Cellulare').': <b>'.$c_cellulare.'</b>';
} }
echo ' echo '
</td> </td>
</tr>'; </tr>';
@ -264,7 +262,7 @@ if (!empty($rs2)) {
// Prezzo unitario // Prezzo unitario
echo ' echo '
<td class="text-center"> <td class="text-center">
'.($options['pricing'] ? Translator::numberToLocale($r['prezzo_vendita']-$r['sconto_unitario']).' &euro;' : '-').' '.($options['pricing'] ? Translator::numberToLocale($r['prezzo_vendita'] - $r['sconto_unitario']).' &euro;' : '-').'
</td>'; </td>';
// Prezzo totale // Prezzo totale

View File

@ -1,6 +1,5 @@
<?php <?php
use Codeception\Util\Locator;
/** /**
* Inherited Methods. * Inherited Methods.

View File

@ -2,8 +2,6 @@
namespace Helper; namespace Helper;
use Codeception\Util\Locator;
// here you can define custom actions // here you can define custom actions
// all public methods declared in helper class will be available in $t // all public methods declared in helper class will be available in $t

View File

@ -13,15 +13,14 @@ class RowHelper extends \Codeception\Module
* Completa le informazioni per la creazione di un nuovo elemento. * Completa le informazioni per la creazione di un nuovo elemento.
* *
* @param AcceptanceTester $t * @param AcceptanceTester $t
* @param [type] $descrizione * @param [type] $descrizione
* @param [type] $qta * @param [type] $qta
* @param [type] $prezzo * @param [type] $prezzo
* @param integer $sconto * @param int $sconto
* @param string $tipo_sconto * @param string $tipo_sconto
* @param [type] $id_iva * @param [type] $id_iva
* @param [type] $id_rivalsa_inps * @param [type] $id_rivalsa_inps
* @param [type] $id_ritenuta_acconto * @param [type] $id_ritenuta_acconto
* @return void
*/ */
protected function fill(AcceptanceTester $t, $descrizione, $qta, $prezzo, $sconto = 0, $tipo_sconto = 'UNT', $id_iva = null, $id_rivalsa_inps = null, $id_ritenuta_acconto = null) protected function fill(AcceptanceTester $t, $descrizione, $qta, $prezzo, $sconto = 0, $tipo_sconto = 'UNT', $id_iva = null, $id_rivalsa_inps = null, $id_ritenuta_acconto = null)
{ {