1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00
This commit is contained in:
MatteoPistorello
2021-02-19 12:43:49 +01:00
114 changed files with 520 additions and 426 deletions

View File

@@ -27,7 +27,7 @@ use Modules\Emails\Template;
use Notifications\EmailNotification; use Notifications\EmailNotification;
if (empty($structure) || empty($structure['enabled'])) { if (empty($structure) || empty($structure['enabled'])) {
die(tr('Accesso negato')); exit(tr('Accesso negato'));
} }
$upload_dir = base_dir().'/'.Uploads::getDirectory($id_module, $id_plugin); $upload_dir = base_dir().'/'.Uploads::getDirectory($id_module, $id_plugin);
@@ -286,7 +286,7 @@ elseif (post('op') == 'send-email') {
$dbo->query('UPDATE `zz_views` SET `order` = '.prepare($i).' WHERE id='.prepare($id_riga)); $dbo->query('UPDATE `zz_views` SET `order` = '.prepare($i).' WHERE id='.prepare($id_riga));
} }
} elseif (filter('op') == 'visualizza_righe_riferimenti') { } elseif (filter('op') == 'visualizza_righe_riferimenti') {
include_once base_dir().'/include/riferimenti/righe_riferimenti.php'; include_once base_dir().'/include/riferimenti/riferimenti.php';
} elseif (filter('op') == 'visualizza_righe_documento') { } elseif (filter('op') == 'visualizza_righe_documento') {
include_once base_dir().'/include/riferimenti/righe_documento.php'; include_once base_dir().'/include/riferimenti/righe_documento.php';
} elseif (filter('op') == 'salva_riferimento_riga') { } elseif (filter('op') == 'salva_riferimento_riga') {
@@ -298,10 +298,7 @@ elseif (post('op') == 'send-email') {
]); ]);
} elseif (filter('op') == 'rimuovi_riferimento_riga') { } elseif (filter('op') == 'rimuovi_riferimento_riga') {
$database->delete('co_riferimenti_righe', [ $database->delete('co_riferimenti_righe', [
'source_type' => filter('source_type'), 'id' => filter('idriferimento'),
'source_id' => filter('source_id'),
'target_type' => filter('target_type'),
'target_id' => filter('target_id'),
]); ]);
} }

View File

@@ -75,7 +75,7 @@ if (!empty($options['create_document'])) {
$id_segment = $_SESSION['module_'.$final_module['id']]['id_segment']; $id_segment = $_SESSION['module_'.$final_module['id']]['id_segment'];
$stato_predefinito = $database->fetchOne("SELECT id FROM co_statidocumento WHERE descrizione = 'Bozza'"); $stato_predefinito = $database->fetchOne("SELECT id FROM co_statidocumento WHERE descrizione = 'Bozza'");
echo ' echo '
<input type="hidden" name="reversed" value="'.$options['reversed'].'"> <input type="hidden" name="reversed" value="'.$options['reversed'].'">
<div class="col-md-6"> <div class="col-md-6">

View File

@@ -214,7 +214,7 @@ echo '
}); });
} }
function rimuoviRiferimento(btn, source_type, source_id) { function rimuoviRiferimento(btn, source_type, source_id, idriferimento) {
$("#main_loading").show(); $("#main_loading").show();
let row = $(btn).closest("tr"); let row = $(btn).closest("tr");
@@ -233,6 +233,7 @@ echo '
source_id: source_id, source_id: source_id,
target_type: target_type, target_type: target_type,
target_id: target_id, target_id: target_id,
idriferimento: idriferimento,
}, },
success: function(data) { success: function(data) {
$("#main_loading").fadeOut(); $("#main_loading").fadeOut();

View File

@@ -48,7 +48,7 @@ if (!$riferimenti->isEmpty()) {
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.$riga_class.'"> <tr data-id="'.$riga->id.'" data-type="'.$riga_class.'">
<td> <td>
<button type="button" class="btn btn-xs btn-danger pull-right" onclick="rimuoviRiferimento(this, \''.addslashes($source_type).'\',\''.$source_id.'\')"> <button type="button" class="btn btn-xs btn-danger pull-right" onclick="rimuoviRiferimento(this, \''.addslashes($source_type).'\', \''.$source_id.'\', \''.$riferimento->id.'\')">
<i class="fa fa-trash"></i> <i class="fa fa-trash"></i>
</button> </button>

View File

@@ -31,20 +31,19 @@ switch ($op) {
if ($dbo->isConnected() && $dbo->isInstalled() && auth()->attempt($username, $password)) { if ($dbo->isConnected() && $dbo->isInstalled() && auth()->attempt($username, $password)) {
$_SESSION['keep_alive'] = true; $_SESSION['keep_alive'] = true;
if (intval(setting('Inizio periodo calendario'))){ if (intval(setting('Inizio periodo calendario'))) {
$_SESSION['period_start'] = setting('Inizio periodo calendario'); $_SESSION['period_start'] = setting('Inizio periodo calendario');
}else{ } else {
$_SESSION['period_start'] = date('Y').'-01-01'; $_SESSION['period_start'] = date('Y').'-01-01';
} }
if (intval(setting('Fine periodo calendario'))){ if (intval(setting('Fine periodo calendario'))) {
$_SESSION['period_end'] = setting('Fine periodo calendario'); $_SESSION['period_end'] = setting('Fine periodo calendario');
}else{ } else {
$_SESSION['period_end'] = date('Y').'-12-31'; $_SESSION['period_end'] = date('Y').'-12-31';
} }
// Rimozione log vecchi
// Rimozione log vecchi
//$dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()'); //$dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()');
} else { } else {
$status = auth()->getCurrentStatus(); $status = auth()->getCurrentStatus();
@@ -157,7 +156,7 @@ echo '
if (isset($username)) { if (isset($username)) {
echo ' value="'.$username.'"'; echo ' value="'.$username.'"';
} }
echo' required> echo ' required>
</div> </div>
{[ "type": "password", "name": "password", "autocomplete": "current-password", "placeholder": "'.tr('Password').'", "icon-before": "<i class=\"fa fa-lock\"></i>" ]} {[ "type": "password", "name": "password", "autocomplete": "current-password", "placeholder": "'.tr('Password').'", "icon-before": "<i class=\"fa fa-lock\"></i>" ]}

View File

@@ -127,10 +127,10 @@ if (!empty($results)) {
<tbody>'; <tbody>';
foreach ($errors as $name => $diff) { foreach ($errors as $name => $diff) {
if(count($diff) == 1 && array_key_exists('type',$diff) && str_contains($diff['type']['expected'] , $diff['type']['current'])){ if (count($diff) == 1 && array_key_exists('type', $diff) && str_contains($diff['type']['expected'], $diff['type']['current'])) {
$class="info"; $class = 'info';
}else{ } else {
$class="warning"; $class = 'warning';
} }
echo ' echo '
<tr class="bg-'.$class.'" > <tr class="bg-'.$class.'" >
@@ -161,11 +161,10 @@ if (!empty($results)) {
<tbody>'; <tbody>';
foreach ($foreign_keys as $name => $diff) { foreach ($foreign_keys as $name => $diff) {
if (count($diff) == 2 && array_key_exists('current', $diff) && $diff['current'] == null) {
if(count($diff) == 2 && array_key_exists('current',$diff) && $diff['current'] == null ){ $class = 'info';
$class="info"; } else {
}else{ $class = 'warning';
$class="warning";
} }
echo ' echo '
<tr class="bg-'.$class.'" > <tr class="bg-'.$class.'" >

View File

@@ -230,16 +230,16 @@ function search(button) {
</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>
</div>'; </div>';

View File

@@ -37,7 +37,7 @@ function customStructure()
$files = glob(base_dir().'/'.$dir.'/*/custom/*.{php,html}', GLOB_BRACE); $files = glob(base_dir().'/'.$dir.'/*/custom/*.{php,html}', GLOB_BRACE);
$recursive_files = glob(base_dir().'/'.$dir.'/*/custom/**/*.{php,html}', GLOB_BRACE); $recursive_files = glob(base_dir().'/'.$dir.'/*/custom/**/*.{php,html}', GLOB_BRACE);
$files = array_merge($files, $recursive_files); $files = array_merge($files, $recursive_files);
foreach ($files as $file) { foreach ($files as $file) {
$file = str_replace(base_dir().'/', '', $file); $file = str_replace(base_dir().'/', '', $file);
@@ -53,7 +53,7 @@ function customStructure()
$files = glob(base_dir().'/include/custom/*.{php,html}', GLOB_BRACE); $files = glob(base_dir().'/include/custom/*.{php,html}', GLOB_BRACE);
$recursive_files = glob(base_dir().'/include/custom/**/*.{php,html}', GLOB_BRACE); $recursive_files = glob(base_dir().'/include/custom/**/*.{php,html}', GLOB_BRACE);
$files = array_merge($files, $recursive_files); $files = array_merge($files, $recursive_files);
foreach ($files as $file) { foreach ($files as $file) {
$file = str_replace(base_dir().'/', '', $file); $file = str_replace(base_dir().'/', '', $file);

View File

@@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php';
use Util\Zip; use Util\Zip;
if (!setting('Attiva aggiornamenti')) { if (!setting('Attiva aggiornamenti')) {
die(tr('Accesso negato')); exit(tr('Accesso negato'));
} }
if (!extension_loaded('zip')) { if (!extension_loaded('zip')) {

View File

@@ -343,7 +343,7 @@ switch ($resource) {
} }
$where[] = '( '.prepare($superselect['data']).' BETWEEN data_inizio AND data_fine)'; $where[] = '( '.prepare($superselect['data']).' BETWEEN data_inizio AND data_fine)';
//$where[] = 'data_inizio < NOW()'; //$where[] = 'data_inizio < NOW()';
//$where[] = 'data_fine > NOW()'; //$where[] = 'data_fine > NOW()';
if (empty($filter)) { if (empty($filter)) {

View File

@@ -58,7 +58,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
} }
if (in_array($id_fornitore, $tipi_anagrafica)) { if (in_array($id_fornitore, $tipi_anagrafica)) {
echo '<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine fornitore').'" data-href="add.php?id_module='.Modules::get('Ordini fornitore')['id'].'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i>'.tr('Nuovo ordine fornitore').' echo '<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine fornitore').'" data-href="add.php?id_module='.Modules::get('Ordini fornitore')['id'].'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i>'.tr('Nuovo ordine fornitore').'
</a></li> </a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.Modules::get('Ddt di acquisto')['id'].'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').' <li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.Modules::get('Ddt di acquisto')['id'].'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').'

View File

@@ -50,20 +50,19 @@ if (!$is_cliente) {
$nazione_anagrafica = $anagrafica->sedeLegale->nazione; $nazione_anagrafica = $anagrafica->sedeLegale->nazione;
// Avvisi problemi scheda anagrafica // Avvisi problemi scheda anagrafica
$problemi_anagrafica = []; $problemi_anagrafica = [];
if ($is_cliente && empty($record['idconto_cliente'])){ if ($is_cliente && empty($record['idconto_cliente'])) {
array_push($problemi_anagrafica, ' Piano dei conti mancante per il cliente'); array_push($problemi_anagrafica, ' Piano dei conti mancante per il cliente');
} }
if ($is_fornitore && empty($record['idconto_fornitore'])){ if ($is_fornitore && empty($record['idconto_fornitore'])) {
array_push($problemi_anagrafica, ' Piano dei conti mancante per il fornitore'); array_push($problemi_anagrafica, ' Piano dei conti mancante per il fornitore');
} }
if (sizeof($problemi_anagrafica) > 0) { if (sizeof($problemi_anagrafica) > 0) {
echo '<div class="alert alert-warning"><i class="fa fa-warning"></i> '.tr("Attenzione: _CAMPI_" , [ echo '<div class="alert alert-warning"><i class="fa fa-warning"></i> '.tr('Attenzione: _CAMPI_', [
'_CAMPI_' => implode(', ', $problemi_anagrafica) '_CAMPI_' => implode(', ', $problemi_anagrafica),
]).'</div>'; ]).'</div>';
} }

View File

@@ -59,7 +59,7 @@ switch ($name) {
} }
} }
if($value == $anagrafica->partita_iva){ if ($value == $anagrafica->partita_iva) {
$partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value; $partita_iva = !empty($anagrafica) && is_numeric($value) ? $anagrafica->nazione->iso2.$value : $value;
$result = $disponibile; $result = $disponibile;
$check = Validate::isValidVatNumber($partita_iva); $check = Validate::isValidVatNumber($partita_iva);
@@ -129,7 +129,7 @@ switch ($name) {
])->count() == 0; ])->count() == 0;
$result = $disponibile; $result = $disponibile;
$message = $disponibile ? tr("Questa email non è ancora stata utilizzata") : tr("L'email è già utilizzata in un'altra anagrafica"); $message = $disponibile ? tr('Questa email non è ancora stata utilizzata') : tr("L'email è già utilizzata in un'altra anagrafica");
$errors = []; $errors = [];
$check = Validate::isValidEmail($value); $check = Validate::isValidEmail($value);

View File

@@ -18,12 +18,12 @@
*/ */
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Articoli\Articolo;
use Modules\Preventivi\Preventivo;
use Modules\Anagrafiche\Anagrafica;
use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
use Modules\TipiIntervento\Tipo as TipoSessione;
use Modules; use Modules;
use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo;
use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione;
use Prints; use Prints;
switch (post('op')) { switch (post('op')) {
@@ -59,12 +59,12 @@ switch (post('op')) {
flash()->info(tr('Articoli eliminati!')); flash()->info(tr('Articoli eliminati!'));
break; break;
case 'stampa-etichette': case 'stampa-etichette':
$_SESSION['superselect']['id_articolo_barcode'] = $id_records; $_SESSION['superselect']['id_articolo_barcode'] = $id_records;
$id_print = Prints::getPrints()['Barcode']; $id_print = Prints::getPrints()['Barcode'];
redirect( base_path().'/pdfgen.php?id_print='.$id_print.'&id_record='.Articolo::where('barcode', '!=', '' )->first()->id ); redirect(base_path().'/pdfgen.php?id_print='.$id_print.'&id_record='.Articolo::where('barcode', '!=', '')->first()->id);
exit(); exit();
break; break;
@@ -74,8 +74,8 @@ switch (post('op')) {
$data = post('data'); $data = post('data');
$qta = post('qta'); $qta = post('qta');
$n_articoli = 0; $n_articoli = 0;
foreach ($id_records as $id) { foreach ($id_records as $id) {
$articolo = Articolo::find($id); $articolo = Articolo::find($id);
$qta_movimento = $qta - $articolo->qta; $qta_movimento = $qta - $articolo->qta;
$articolo->movimenta($qta_movimento, $descrizione, $data, true); $articolo->movimenta($qta_movimento, $descrizione, $data, true);
@@ -104,8 +104,8 @@ switch (post('op')) {
$preventivo = Preventivo::build($anagrafica, $tipo, $nome, $data, 0); $preventivo = Preventivo::build($anagrafica, $tipo, $nome, $data, 0);
$id_preventivo = $preventivo->id; $id_preventivo = $preventivo->id;
foreach ($id_records as $id) { foreach ($id_records as $id) {
$originale = Articolo::find($id); $originale = Articolo::find($id);
$articolo = ArticoloPreventivo::build($preventivo, $originale); $articolo = ArticoloPreventivo::build($preventivo, $originale);
$articolo->qta = 1; $articolo->qta = 1;
@@ -129,7 +129,7 @@ switch (post('op')) {
} }
$database->commitTransaction(); $database->commitTransaction();
redirect( base_path().'/editor.php?id_module='.Modules::get('Preventivi')['id'].'&id_record='.$id_preventivo); redirect(base_path().'/editor.php?id_module='.Modules::get('Preventivi')['id'].'&id_record='.$id_preventivo);
exit(); exit();
break; break;

View File

@@ -58,7 +58,6 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
$documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idaspettobeni='.prepare($id_record).' $documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idaspettobeni='.prepare($id_record).'
UNION SELECT id FROM co_documenti WHERE idaspettobeni='.prepare($id_record)); UNION SELECT id FROM co_documenti WHERE idaspettobeni='.prepare($id_record));

View File

@@ -51,17 +51,17 @@ if (!isset($id_original)) {
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "id": "colore_", "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength=\"7\"", "icon-after": "<div class=\"img-circle square\"></div>" ]} {[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "id": "colore_", "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength=\"7\"", "icon-after": "<div class=\"img-circle square\"></div>" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "textarea", "label": "<?php echo tr('Nota'); ?>", "name": "nota", "value": "$nota$" ]} {[ "type": "textarea", "label": "<?php echo tr('Nota'); ?>", "name": "nota", "value": "$nota$" ]}
</div> </div>
</div> </div>

View File

@@ -31,17 +31,17 @@ if (isset($id_record)) {
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]} {[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "value": "$nome$" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "id": "colore_", "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength=\"7\"", "icon-after": "<div class=\"img-circle square\"></div>" ]} {[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "id": "colore_", "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength=\"7\"", "icon-after": "<div class=\"img-circle square\"></div>" ]}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "textarea", "label": "<?php echo tr('Nota'); ?>", "name": "nota", "value": "$nota$" ]} {[ "type": "textarea", "label": "<?php echo tr('Nota'); ?>", "name": "nota", "value": "$nota$" ]}
</div> </div>
</div> </div>

View File

@@ -79,7 +79,6 @@ switch (filter('op')) {
break; break;
case 'delete': case 'delete':
$documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idcausalet='.prepare($id_record).' $documenti = $dbo->fetchNum('SELECT id FROM dt_ddt WHERE idcausalet='.prepare($id_record).'
UNION SELECT id FROM co_documenti WHERE idcausalet='.prepare($id_record)); UNION SELECT id FROM co_documenti WHERE idcausalet='.prepare($id_record));

View File

@@ -108,7 +108,6 @@ switch (post('op')) {
break; break;
case 'update_rinnovo': case 'update_rinnovo':
$contratto->rinnovabile = post('rinnovabile'); $contratto->rinnovabile = post('rinnovabile');
$contratto->rinnovo_automatico = post('rinnovo_automatico'); $contratto->rinnovo_automatico = post('rinnovo_automatico');
$contratto->giorni_preavviso_rinnovo = post('giorni_preavviso_rinnovo'); $contratto->giorni_preavviso_rinnovo = post('giorni_preavviso_rinnovo');
@@ -315,7 +314,6 @@ $riga = $contratto->getRiga($type, $id_riga);
// eliminazione contratto // eliminazione contratto
case 'delete': case 'delete':
// Fatture o interventi collegati a questo contratto // Fatture o interventi collegati a questo contratto
$elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')'.' $elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')'.'
UNION UNION
@@ -414,7 +412,6 @@ $riga = $contratto->getRiga($type, $id_riga);
break; break;
case 'import': case 'import':
$rs = $dbo->fetchArray('SELECT * FROM co_contratti_tipiintervento WHERE idcontratto = '.prepare(post('idcontratto')).' AND idtipointervento='.prepare(post('idtipointervento'))); $rs = $dbo->fetchArray('SELECT * FROM co_contratti_tipiintervento WHERE idcontratto = '.prepare(post('idcontratto')).' AND idtipointervento='.prepare(post('idtipointervento')));
// Se la riga in_tipiintervento esiste, la aggiorno... // Se la riga in_tipiintervento esiste, la aggiorno...

View File

@@ -49,7 +49,7 @@ echo '
</div>'; </div>';
// Duplica contratto // Duplica contratto
echo' echo '
<button type="button" class="btn btn-primary" onclick="if( confirm(\''.tr('Duplicare questo contratto?').'\') ){ $(\'#copia-contratto\').submit(); }"> <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').' <i class="fa fa-copy"></i> '.tr('Duplica contratto').'
</button>'; </button>';

View File

@@ -207,7 +207,6 @@ class Contratto extends Document
$intervallo = CarbonInterval::make($this->validita.' '.$this->tipo_validita); $intervallo = CarbonInterval::make($this->validita.' '.$this->tipo_validita);
$data = Carbon::make($this->data_accettazione)->add($intervallo); $data = Carbon::make($this->data_accettazione)->add($intervallo);
$this->data_conclusione = $data->subDays(1); $this->data_conclusione = $data->subDays(1);
} }
} }

View File

@@ -64,7 +64,6 @@ foreach ($moduli as $module_id => $note) {
</tr>'; </tr>';
foreach ($note as $nota) { foreach ($note as $nota) {
$class = (strtotime($nota->notification_date) < strtotime(date('Y-m-d')) && !empty($nota->notification_date)) ? 'danger' : ''; $class = (strtotime($nota->notification_date) < strtotime(date('Y-m-d')) && !empty($nota->notification_date)) ? 'danger' : '';
echo ' echo '

View File

@@ -63,7 +63,7 @@ switch (post('op')) {
$idpagamento = post('idpagamento'); $idpagamento = post('idpagamento');
$numero_esterno = post('numero_esterno'); $numero_esterno = post('numero_esterno');
$id_anagrafica = post('idanagrafica'); $id_anagrafica = post('idanagrafica');
if ($dir == 'uscita') { if ($dir == 'uscita') {
$idrivalsainps = post('id_rivalsa_inps'); $idrivalsainps = post('id_rivalsa_inps');
$idritenutaacconto = post('id_ritenuta_acconto'); $idritenutaacconto = post('id_ritenuta_acconto');
@@ -73,7 +73,7 @@ switch (post('op')) {
$idritenutaacconto = 0; $idritenutaacconto = 0;
$bollo = 0; $bollo = 0;
} }
$tipo_sconto = post('tipo_sconto_generico'); $tipo_sconto = post('tipo_sconto_generico');
$sconto = post('sconto_generico'); $sconto = post('sconto_generico');

View File

@@ -140,7 +140,7 @@ switch (post('op')) {
$n_ddt = 0; $n_ddt = 0;
foreach ($id_records as $id) { foreach ($id_records as $id) {
$ddt = DDT::find($id); $ddt = DDT::find($id);
$ddt->idstatoddt = $id_stato; $ddt->idstatoddt = $id_stato;
$ddt->save(); $ddt->save();

View File

@@ -23,6 +23,6 @@ echo '
<div class="tip" data-toggle="tooltip" title="'.tr("Il ddt è fatturabile solo se non si trova negli stati _STATE_LIST_ e la relativa causale è abilitata all'importazione in altri documenti", [ <div class="tip" data-toggle="tooltip" title="'.tr("Il ddt è fatturabile solo se non si trova negli stati _STATE_LIST_ e la relativa causale è abilitata all'importazione in altri documenti", [
'_STATE_LIST_' => 'Evaso, Parzialmente evaso, Parzialmente fatturato', '_STATE_LIST_' => 'Evaso, Parzialmente evaso, Parzialmente fatturato',
]).'"> ]).'">
<button class="btn btn-info '.($ddt->isImportabile() ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'"><i class="fa fa-magic"></i> '.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).' <button class="btn btn-info '.($ddt->isImportabile() ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'"><i class="fa fa-magic"></i> '.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'
</button> </button>
</div>'; </div>';

View File

@@ -20,19 +20,19 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\DDT\DDT; use Modules\DDT\DDT;
use Modules\Fatture\Fattura;
$documento = DDT::find($id_record); $documento = DDT::find($id_record);
$module = Modules::get($id_module); $module = Modules::get($id_module);
if($documento->reversed){ if ($documento->reversed) {
if($module['name'] == 'Ddt di vendita'){ if ($module['name'] == 'Ddt di vendita') {
$final_module = 'Fatture di acquisto'; $final_module = 'Fatture di acquisto';
$dir = 'uscita'; $dir = 'uscita';
} else { } else {
$final_module = 'Fatture di vendita'; $final_module = 'Fatture di vendita';
$dir = 'entrata'; $dir = 'entrata';
} }
} elseif($module['name'] == 'Ddt di vendita'){ } elseif ($module['name'] == 'Ddt di vendita') {
$final_module = 'Fatture di vendita'; $final_module = 'Fatture di vendita';
$dir = 'entrata'; $dir = 'entrata';
} else { } else {
@@ -53,4 +53,4 @@ $options = [
'reversed' => $documento->reversed, 'reversed' => $documento->reversed,
]; ];
echo App::load('importa.php', [], $options, true); echo App::load('importa.php', [], $options, true);

View File

@@ -322,7 +322,7 @@ if (!$block_edit) {
$ordini_query = 'SELECT COUNT(*) AS tot FROM or_ordini WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Accettato\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoordine=(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') AND or_ordini.id IN (SELECT idordine FROM or_righe_ordini WHERE or_righe_ordini.idordine = or_ordini.id AND (qta - qta_evasa) > 0)'; $ordini_query = 'SELECT COUNT(*) AS tot FROM or_ordini WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Accettato\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoordine=(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') AND or_ordini.id IN (SELECT idordine FROM or_righe_ordini WHERE or_righe_ordini.idordine = or_ordini.id AND (qta - qta_evasa) > 0)';
$ordini = $dbo->fetchArray($ordini_query)[0]['tot']; $ordini = $dbo->fetchArray($ordini_query)[0]['tot'];
if($dir == 'entrata'){ if ($dir == 'entrata') {
$ddt_query = 'SELECT COUNT(*) AS tot FROM dt_ddt WHERE idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoddt=(SELECT id FROM or_tipiordine WHERE dir="uscita") AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0)'; $ddt_query = 'SELECT COUNT(*) AS tot FROM dt_ddt WHERE idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoddt=(SELECT id FROM or_tipiordine WHERE dir="uscita") AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0)';
$ddt = $dbo->fetchArray($ddt_query)[0]['tot']; $ddt = $dbo->fetchArray($ddt_query)[0]['tot'];
echo ' echo '
@@ -330,7 +330,7 @@ if (!$block_edit) {
<i class="fa fa-plus"></i> '.tr('Ddt').' <i class="fa fa-plus"></i> '.tr('Ddt').'
</a>'; </a>';
} }
echo ' echo '
<a class="btn btn-sm btn-primary'.(!empty($ordini) ? '' : ' disabled').'" data-href="'.base_path().'/modules/ddt/add_ordine.php?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="Aggiungi ordine"> <a class="btn btn-sm btn-primary'.(!empty($ordini) ? '' : ' disabled').'" data-href="'.base_path().'/modules/ddt/add_ordine.php?id_module='.$id_module.'&id_record='.$id_record.'" data-toggle="modal" data-title="Aggiungi ordine">
<i class="fa fa-plus"></i> '.tr('Ordine').' <i class="fa fa-plus"></i> '.tr('Ordine').'

View File

@@ -341,7 +341,7 @@ function apriRiferimenti(button) {
let id = riga.data("id"); let id = riga.data("id");
let type = riga.data("type"); let type = riga.data("type");
openModal("'.tr('Riferimenti riga').'", globals.rootdir + "/actions.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&op=visualizza_riferimenti&riga_id=" + id + "&riga_type=" + type) openModal("'.tr('Riferimenti riga').'", globals.rootdir + "/actions.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&op=visualizza_righe_riferimenti&riga_id=" + id + "&riga_type=" + type)
} }
$(document).ready(function() { $(document).ready(function() {

View File

@@ -64,7 +64,7 @@ if (!$record['predefined']) {
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<?php $records[0]['icon'] = (empty($records[0]['icon'])) ? 'fa fa-envelope' : $records[0]['icon']; ?> <?php $records[0]['icon'] = (empty($records[0]['icon'])) ? 'fa fa-envelope' : $records[0]['icon']; ?>
{[ "type": "text", "label": "<?php echo tr('Icona'); ?>", "name": "icon", "value": "<?php echo $records[0]['icon']; ?>" ,"help":"<?php echo tr('Es. \'fa fa-envelope\''); ?>" ]} {[ "type": "text", "label": "<?php echo tr('Icona'); ?>", "name": "icon", "value": "<?php echo $records[0]['icon']; ?>" ,"help":"<?php echo tr('Es. \'fa fa-envelope\''); ?>" ]}
</div> </div>
</div> </div>

View File

@@ -126,7 +126,7 @@ switch (post('op')) {
} }
// Operazioni sul bollo // Operazioni sul bollo
if($dir == 'entrata'){ if ($dir == 'entrata') {
$fattura->addebita_bollo = post('addebita_bollo'); $fattura->addebita_bollo = post('addebita_bollo');
$bollo_automatico = post('bollo_automatico'); $bollo_automatico = post('bollo_automatico');
if (empty($bollo_automatico)) { if (empty($bollo_automatico)) {
@@ -315,7 +315,7 @@ switch (post('op')) {
//} //}
// In fase di duplicazione di una fattura non deve essere calcolato il numero progressivo ma questo deve // In fase di duplicazione di una fattura non deve essere calcolato il numero progressivo ma questo deve
// essere generato in fase di emissione della stessa. // essere generato in fase di emissione della stessa.
$new->numero_esterno = ''; $new->numero_esterno = '';
$new->codice_stato_fe = null; $new->codice_stato_fe = null;
@@ -702,8 +702,8 @@ switch (post('op')) {
// Creazione della fattura al volo // Creazione della fattura al volo
if (post('create_document') == 'on') { if (post('create_document') == 'on') {
$descrizione = ($documento->direzione == 'entrata') ? 'Fattura immediata di vendita' : 'Fattura immediata di acquisto'; $descrizione = ($documento->direzione == 'entrata') ? 'Fattura immediata di vendita' : 'Fattura immediata di acquisto';
if($reversed){ if ($reversed) {
$tipo = Tipo::where('descrizione', 'Nota di credito')->where('dir', '!=', $documento->direzione)->first(); $tipo = Tipo::where('descrizione', 'Nota di credito')->where('dir', '!=', $documento->direzione)->first();
} else { } else {
$tipo = Tipo::where('descrizione', $descrizione)->first(); $tipo = Tipo::where('descrizione', $descrizione)->first();
@@ -730,7 +730,7 @@ switch (post('op')) {
foreach ($righe as $riga) { foreach ($righe as $riga) {
if (post('evadere')[$riga->id] == 'on') { if (post('evadere')[$riga->id] == 'on') {
$qta = post('qta_da_evadere')[$riga->id]; $qta = post('qta_da_evadere')[$riga->id];
if($reversed){ if ($reversed) {
$qta = -$qta; $qta = -$qta;
} }

View File

@@ -36,7 +36,6 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
'dir' => $dir, 'dir' => $dir,
])['id']; ])['id'];
?> ?>
<form action="" method="post" id="add-form"> <form action="" method="post" id="add-form">
<input type="hidden" name="op" value="add"> <input type="hidden" name="op" value="add">

View File

@@ -27,7 +27,8 @@ switch ($resource) {
$query_ordini = "SELECT or_ordini.id, $query_ordini = "SELECT or_ordini.id,
CONCAT('Ordine num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM or_statiordine WHERE id = idstatoordine) , ']') AS text, CONCAT('Ordine num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM or_statiordine WHERE id = idstatoordine) , ']') AS text,
'Ordini' AS optgroup, 'Ordini' AS optgroup,
'ordine' AS tipo 'ordine' AS tipo,
'uscita' AS dir
FROM or_ordini FROM or_ordini
INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id
WHERE idanagrafica = ".prepare($id_anagrafica)." AND WHERE idanagrafica = ".prepare($id_anagrafica)." AND
@@ -44,7 +45,8 @@ switch ($resource) {
$query_ddt = "SELECT dt_ddt.id, $query_ddt = "SELECT dt_ddt.id,
CONCAT('DDT num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , ']') AS text, CONCAT('DDT num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , ']') AS text,
'DDT' AS optgroup, 'DDT' AS optgroup,
'ddt' AS tipo 'ddt' AS tipo,
'uscita' AS dir
FROM dt_ddt FROM dt_ddt
INNER JOIN dt_righe_ddt ON dt_righe_ddt.idddt = dt_ddt.id INNER JOIN dt_righe_ddt ON dt_righe_ddt.idddt = dt_ddt.id
WHERE idanagrafica = ".prepare($id_anagrafica)." AND WHERE idanagrafica = ".prepare($id_anagrafica)." AND
@@ -71,5 +73,72 @@ switch ($resource) {
$ddt = $database->fetchArray($query_ddt); $ddt = $database->fetchArray($query_ddt);
$results = array_merge($ordini, $ddt); $results = array_merge($ordini, $ddt);
break;
case 'riferimenti-vendita-fe':
$direzione = 'entrata';
$id_articolo = $superselect['id_articolo'];
if (empty($id_articolo)) {
return [];
}
// Campi di ricerca
$search_fields = [];
if (!empty($search)) {
$search_fields[] = "IF(numero_esterno != '', numero_esterno, numero) LIKE ".prepare('%'.$search.'%');
$search_fields[] = "DATE_FORMAT(data, '%d/%m/%Y') LIKE ".prepare('%'.$search.'%');
}
$where = implode(' OR ', $search_fields);
$where = $where ? '('.$where.')' : '1=1';
$query_ordini = "SELECT or_ordini.id,
CONCAT('Ordine num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM or_statiordine WHERE id = idstatoordine) , ']') AS text,
'Ordini' AS optgroup,
'ordine' AS tipo,
'entrata' AS dir
FROM or_ordini
INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id
WHERE idarticolo = ".prepare($id_articolo)." AND
idstatoordine IN (
SELECT id FROM or_statiordine WHERE descrizione != 'Fatturato'
) AND
idtipoordine IN (
SELECT id FROM or_tipiordine WHERE dir = ".prepare($direzione).'
) AND |where|
GROUP BY or_ordini.id
ORDER BY data DESC, numero DESC';
$query_ddt = "SELECT dt_ddt.id,
CONCAT('DDT num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , ']') AS text,
'DDT' AS optgroup,
'ddt' AS tipo,
'entrata' AS dir
FROM dt_ddt
INNER JOIN dt_righe_ddt ON dt_righe_ddt.idddt = dt_ddt.id
WHERE idarticolo = ".prepare($id_articolo)." AND
idstatoddt IN (
SELECT id FROM dt_statiddt WHERE descrizione != 'Fatturato'
) AND
idtipoddt IN (
SELECT id FROM dt_tipiddt WHERE dir=".prepare($direzione).'
) AND |where|
GROUP BY dt_ddt.id
HAVING SUM(dt_righe_ddt.qta - dt_righe_ddt.qta_evasa) > 0
ORDER BY data DESC, numero DESC';
// Sostituzione per la ricerca
$query_ordini = replace($query_ordini, [
'|where|' => $where,
]);
$query_ddt = replace($query_ddt, [
'|where|' => $where,
]);
$ordini = $database->fetchArray($query_ordini);
$ddt = $database->fetchArray($query_ddt);
$results = array_merge($ordini, $ddt);
break; break;
} }

View File

@@ -235,9 +235,9 @@ switch (post('op')) {
$new->id_segment = $id_segment; $new->id_segment = $id_segment;
$new->numero = Fattura::getNextNumero($data, $dir, $id_segment); $new->numero = Fattura::getNextNumero($data, $dir, $id_segment);
//if (!empty($fattura->numero_esterno)) { //if (!empty($fattura->numero_esterno)) {
//$new->numero_esterno = Fattura::getNextNumeroSecondario($data, $dir, $id_segment); //$new->numero_esterno = Fattura::getNextNumeroSecondario($data, $dir, $id_segment);
//} //}
$new->numero_esterno = ''; $new->numero_esterno = '';
$new->codice_stato_fe = null; $new->codice_stato_fe = null;

View File

@@ -220,7 +220,7 @@ elseif ($record['stato'] == 'Bozza') {
</div>'; </div>';
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Agente di riferimento').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente_fattura$" ]} {[ "type": "select", "label": "'.tr('Agente di riferimento').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente_fattura$" ]}
</div>'; </div>';
@@ -316,7 +316,7 @@ elseif ($record['stato'] == 'Bozza') {
<strike>'; <strike>';
} }
echo(empty($scadenza->da_pagare) ? '<i class="fa fa-exclamation-triangle"></i>' : '').moneyFormat($scadenza->da_pagare); echo (empty($scadenza->da_pagare) ? '<i class="fa fa-exclamation-triangle"></i>' : '').moneyFormat($scadenza->da_pagare);
if ($pagamento_iniziato) { if ($pagamento_iniziato) {
echo ' echo '
@@ -362,7 +362,7 @@ elseif ($record['stato'] == 'Bozza') {
if ($dir == 'uscita') { if ($dir == 'uscita') {
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr("Ritenuta pagata dal fornitore").'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]} {[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]}
</div>'; </div>';
} }
if ($dir == 'entrata') { if ($dir == 'entrata') {

View File

@@ -519,7 +519,7 @@ function verifica_numero(Fattura $fattura)
'YEAR(data) = '.prepare(date('Y', strtotime($data))), 'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'id_segment = '.prepare($id_segment), 'id_segment = '.prepare($id_segment),
], $data); ], $data);
do { do {
$numero = Generator::generate($maschera, $ultimo, 1, Generator::dateToPattern($data)); $numero = Generator::generate($maschera, $ultimo, 1, Generator::dateToPattern($data));

View File

@@ -168,7 +168,7 @@ class Fattura extends Document
$id_banca_azienda = $azienda->{'idbanca_'.$conto}; $id_banca_azienda = $azienda->{'idbanca_'.$conto};
} }
} }
$model->id_banca_azienda = $id_banca_azienda; $model->id_banca_azienda = $id_banca_azienda;
// Gestione dello Split Payment sulla base dell'anagrafica Controparte // Gestione dello Split Payment sulla base dell'anagrafica Controparte

View File

@@ -134,7 +134,6 @@ switch ($op) {
// Duplica impianto // Duplica impianto
case 'copy': case 'copy':
$dbo->query('CREATE TEMPORARY TABLE tmp SELECT * FROM my_impianti WHERE id= '.prepare($id_record)); $dbo->query('CREATE TEMPORARY TABLE tmp SELECT * FROM my_impianti WHERE id= '.prepare($id_record));
$dbo->query('ALTER TABLE tmp DROP id'); $dbo->query('ALTER TABLE tmp DROP id');
$dbo->query('INSERT INTO my_impianti SELECT NULL,tmp. * FROM tmp'); $dbo->query('INSERT INTO my_impianti SELECT NULL,tmp. * FROM tmp');

View File

@@ -19,7 +19,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
echo' echo '
<button type="button" class="btn btn-primary" onclick="if( confirm(\'Duplicare questo impianto?\') ){ $(\'#copia-impianto\').submit(); }"> <i class="fa fa-copy"></i> '.tr('Duplica impianto').'</button>'; <button type="button" class="btn btn-primary" onclick="if( confirm(\'Duplicare questo impianto?\') ){ $(\'#copia-impianto\').submit(); }"> <i class="fa fa-copy"></i> '.tr('Duplica impianto').'</button>';
// Duplica impianto // Duplica impianto

View File

@@ -79,36 +79,35 @@ switch (post('op')) {
if (!empty($stato['notifica']) && $stato['idstatointervento'] != $record['idstatointervento']) { if (!empty($stato['notifica']) && $stato['idstatointervento'] != $record['idstatointervento']) {
$template = Template::find($stato['id_email']); $template = Template::find($stato['id_email']);
if(!empty($stato['destinatari'])){ if (!empty($stato['destinatari'])) {
$mail = Mail::build(auth()->getUser(), $template, $id_record); $mail = Mail::build(auth()->getUser(), $template, $id_record);
$mail->addReceiver($stato['destinatari']); $mail->addReceiver($stato['destinatari']);
$mail->save(); $mail->save();
} }
if(!empty($stato['notifica_cliente'])){ if (!empty($stato['notifica_cliente'])) {
$mail_cliente = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => post('idanagrafica')]); $mail_cliente = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => post('idanagrafica')]);
if(!empty($mail_cliente['email'])){ if (!empty($mail_cliente['email'])) {
$mail = Mail::build(auth()->getUser(), $template, $id_record); $mail = Mail::build(auth()->getUser(), $template, $id_record);
$mail->addReceiver($mail_cliente['email']); $mail->addReceiver($mail_cliente['email']);
$mail->save(); $mail->save();
} }
} }
if(!empty($stato['notifica_tecnici'])){ if (!empty($stato['notifica_tecnici'])) {
$tecnici_intervento = $dbo->select('in_interventi_tecnici', 'idtecnico', ['idintervento' => $id_record]); $tecnici_intervento = $dbo->select('in_interventi_tecnici', 'idtecnico', ['idintervento' => $id_record]);
$tecnici_assegnati = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico AS idtecnico', ['id_intervento' => $id_record]); $tecnici_assegnati = $dbo->select('in_interventi_tecnici_assegnati', 'id_tecnico AS idtecnico', ['id_intervento' => $id_record]);
$tecnici = array_unique(array_merge($tecnici_intervento, $tecnici_assegnati), SORT_REGULAR); $tecnici = array_unique(array_merge($tecnici_intervento, $tecnici_assegnati), SORT_REGULAR);
foreach($tecnici as $tecnico){ foreach ($tecnici as $tecnico) {
$mail_tecnico = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => $tecnico]); $mail_tecnico = $dbo->selectOne('an_anagrafiche', '*', ['idanagrafica' => $tecnico]);
if(!empty($mail_tecnico['email'])){ if (!empty($mail_tecnico['email'])) {
$mail = Mail::build(auth()->getUser(), $template, $id_record); $mail = Mail::build(auth()->getUser(), $template, $id_record);
$mail->addReceiver($mail_tecnico['email']); $mail->addReceiver($mail_tecnico['email']);
$mail->save(); $mail->save();
} }
} }
} }
} }
aggiorna_sedi_movimenti('interventi', $id_record); aggiorna_sedi_movimenti('interventi', $id_record);
flash()->info(tr('Attività modificata correttamente!')); flash()->info(tr('Attività modificata correttamente!'));

View File

@@ -142,7 +142,7 @@ switch (post('op')) {
foreach ($id_records as $id) { foreach ($id_records as $id) {
$intervento = Intervento::find($id); $intervento = Intervento::find($id);
if ( !$intervento->stato->is_completato || ($intervento->stato->is_completato==$stato->is_completato) ) { if (!$intervento->stato->is_completato || ($intervento->stato->is_completato == $stato->is_completato)) {
$intervento->stato()->associate($stato); $intervento->stato()->associate($stato);
$intervento->save(); $intervento->save();

View File

@@ -32,7 +32,7 @@ if (empty($record['firma_file'])) {
} }
// Duplica intervento // Duplica intervento
echo' echo '
<button type="button" class="btn btn-primary " onclick="duplicaIntervento()"> <button type="button" class="btn btn-primary " onclick="duplicaIntervento()">
<i class="fa fa-copy"></i> '.tr('Duplica attività').' <i class="fa fa-copy"></i> '.tr('Duplica attività').'
</button> </button>

View File

@@ -85,7 +85,7 @@ echo '
{[ "type": "number", "label": "'.tr('Sconto km').'", "name": "sconto_km", "value": "'.$sessione['scontokm_unitario'].'", "icon-after": "choice|untprc|'.$sessione['tipo_sconto_km'].'"]} {[ "type": "number", "label": "'.tr('Sconto km').'", "name": "sconto_km", "value": "'.$sessione['scontokm_unitario'].'", "icon-after": "choice|untprc|'.$sessione['tipo_sconto_km'].'"]}
</div>'; </div>';
echo' echo '
</div> </div>
<div class="row"> <div class="row">
@@ -101,7 +101,7 @@ echo '
{[ "type": "number", "label": "'.tr('Addebito diritto ch.').'", "name": "prezzo_dirittochiamata", "value": "'.$sessione['prezzo_dirittochiamata'].'" ]} {[ "type": "number", "label": "'.tr('Addebito diritto ch.').'", "name": "prezzo_dirittochiamata", "value": "'.$sessione['prezzo_dirittochiamata'].'" ]}
</div>'; </div>';
echo' echo '
</div>'; </div>';
echo ' echo '

View File

@@ -66,7 +66,6 @@ switch (filter('op')) {
break; break;
case 'delete': case 'delete':
$righe = $dbo->fetchNum('SELECT id FROM co_righe_documenti WHERE um='.prepare($record['valore']).' $righe = $dbo->fetchNum('SELECT id FROM co_righe_documenti WHERE um='.prepare($record['valore']).'
UNION SELECT id FROM dt_righe_ddt WHERE um='.prepare($record['valore']).' UNION SELECT id FROM dt_righe_ddt WHERE um='.prepare($record['valore']).'
UNION SELECT id FROM or_righe_ordini WHERE um='.prepare($record['valore']).' UNION SELECT id FROM or_righe_ordini WHERE um='.prepare($record['valore']).'

View File

@@ -31,7 +31,7 @@ switch (post('op')) {
$avere = post('avere')[$i]; $avere = post('avere')[$i];
if (!empty($idconto)) { if (!empty($idconto)) {
if(!empty($dare)){ if (!empty($dare)) {
$totale = $dare; $totale = $dare;
} else { } else {
$totale = -$avere; $totale = -$avere;
@@ -59,7 +59,7 @@ switch (post('op')) {
$avere = post('avere')[$i]; $avere = post('avere')[$i];
if (!empty($idconto)) { if (!empty($idconto)) {
if(!empty($dare)){ if (!empty($dare)) {
$totale = $dare; $totale = $dare;
} else { } else {
$totale = -$avere; $totale = -$avere;

View File

@@ -59,11 +59,11 @@ include_once __DIR__.'/../../core.php';
</td> </td>
<td class="text-right"> <td class="text-right">
{[ "type": "number", "name": "dare['.$i.']", "id": "dare'.$id.'", "value": "'.($rs[$i]['totale']>0 ? $rs[$i]['totale'] : '').'"]} {[ "type": "number", "name": "dare['.$i.']", "id": "dare'.$id.'", "value": "'.($rs[$i]['totale'] > 0 ? $rs[$i]['totale'] : '').'"]}
</td> </td>
<td class="text-right"> <td class="text-right">
{[ "type": "number", "name": "avere['.$i.']", "id": "avere'.$id.'", "value": "'.($rs[$i]['totale']<0 ? abs($rs[$i]['totale']) : '').'"]} {[ "type": "number", "name": "avere['.$i.']", "id": "avere'.$id.'", "value": "'.($rs[$i]['totale'] < 0 ? abs($rs[$i]['totale']) : '').'"]}
</td> </td>
</tr>'; </tr>';
} }

View File

@@ -78,11 +78,11 @@ for ($i = 0; $i < 10; ++$i) {
</td> </td>
<td class="text-right"> <td class="text-right">
{[ "type": "number", "name": "dare['.$i.']", "id": "dare'.$id.'", "value": "'.($rs[$i]['totale']>0 ? $rs[$i]['totale'] : '').'"]} {[ "type": "number", "name": "dare['.$i.']", "id": "dare'.$id.'", "value": "'.($rs[$i]['totale'] > 0 ? $rs[$i]['totale'] : '').'"]}
</td> </td>
<td class="text-right"> <td class="text-right">
{[ "type": "number", "name": "avere['.$i.']", "id": "avere'.$id.'", "value": "'.($rs[$i]['totale']<0 ? abs($rs[$i]['totale']) : '').'"]} {[ "type": "number", "name": "avere['.$i.']", "id": "avere'.$id.'", "value": "'.($rs[$i]['totale'] < 0 ? abs($rs[$i]['totale']) : '').'"]}
</td> </td>
</tr>'; </tr>';
} }

View File

@@ -19,14 +19,13 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Ordini\Ordine;
use Modules\Fatture\Fattura; use Modules\Fatture\Fattura;
use Modules\Fatture\Stato; use Modules\Fatture\Stato;
use Modules\Fatture\Tipo; use Modules\Fatture\Tipo;
use Modules\Ordini\Ordine;
$module_fatture = 'Fatture di vendita'; $module_fatture = 'Fatture di vendita';
// Segmenti // Segmenti
$id_fatture = Modules::get($module_fatture)['id']; $id_fatture = Modules::get($module_fatture)['id'];
if (!isset($_SESSION['module_'.$id_fatture]['id_segment'])) { if (!isset($_SESSION['module_'.$id_fatture]['id_segment'])) {
@@ -118,7 +117,7 @@ switch (post('op')) {
$n_ordini = 0; $n_ordini = 0;
foreach ($id_records as $id) { foreach ($id_records as $id) {
$ordine = Ordine::find($id); $ordine = Ordine::find($id);
$ordine->idstatoordine = $id_stato; $ordine->idstatoordine = $id_stato;
$ordine->save(); $ordine->save();
@@ -137,7 +136,7 @@ switch (post('op')) {
break; break;
} }
if ($module['name'] == 'Ordini cliente') { if ($module['name'] == 'Ordini cliente') {
$operations['crea_fattura'] = [ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module['name'])]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module['name'])]),
'data' => [ 'data' => [
'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module['name'])]), 'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module['name'])]),
@@ -148,7 +147,7 @@ $operations['crea_fattura'] = [
'blank' => false, 'blank' => false,
], ],
]; ];
} }
$operations['cambia_stato'] = [ $operations['cambia_stato'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'), 'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'),
@@ -161,4 +160,5 @@ $operations['cambia_stato'] = [
'blank' => false, 'blank' => false,
], ],
]; ];
return $operations;
return $operations;

View File

@@ -36,25 +36,20 @@ echo '
</a> </a>
</li>'; </li>';
if ($dir == 'entrata') {
if ($dir == 'entrata'){
echo ' echo '
<li> <li>
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-toggle="modal" data-title="'.tr('Crea ordine fornitore').'"> <a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-toggle="modal" data-title="'.tr('Crea ordine fornitore').'">
<i class="fa fa-file-o"></i> '.tr('Ordine fornitore').' <i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
</a> </a>
</li>'; </li>';
} else {
}else{
/*echo ' /*echo '
<li> <li>
<a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_cliente" data-toggle="modal" data-title="'.tr('Crea ordine cliente').'"> <a data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_cliente" data-toggle="modal" data-title="'.tr('Crea ordine cliente').'">
<i class="fa fa-file-o"></i> '.tr('Ordine cliente').' <i class="fa fa-file-o"></i> '.tr('Ordine cliente').'
</a> </a>
</li>';*/ </li>';*/
} }
echo ' echo '

View File

@@ -202,11 +202,11 @@ echo '
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
<div class="pull-left">'; <div class="pull-left">';
$prev_query = 'SELECT COUNT(*) AS tot FROM co_preventivi WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstato IN(SELECT id FROM co_statipreventivi WHERE is_fatturabile = 1) AND default_revision=1 AND co_preventivi.id IN (SELECT idpreventivo FROM co_righe_preventivi WHERE co_righe_preventivi.idpreventivo = co_preventivi.id AND (qta - qta_evasa) > 0)'; $prev_query = 'SELECT COUNT(*) AS tot FROM co_preventivi WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstato IN(SELECT id FROM co_statipreventivi WHERE is_fatturabile = 1) AND default_revision=1 AND co_preventivi.id IN (SELECT idpreventivo FROM co_righe_preventivi WHERE co_righe_preventivi.idpreventivo = co_preventivi.id AND (qta - qta_evasa) > 0)';
$preventivi = $dbo->fetchArray($prev_query)[0]['tot']; $preventivi = $dbo->fetchArray($prev_query)[0]['tot'];
if($dir=='entrata'){ if ($dir == 'entrata') {
echo ' echo '
<div class="tip"> <div class="tip">
<a class="btn btn-sm btn-primary '.(!empty($preventivi) ? '' : ' disabled').'" data-href="'.base_path().'/modules/ordini/add_preventivo.php?id_module='.$id_module.'&id_record='.$id_record.'" data-title="'.tr('Aggiungi preventivo').'" data-toggle="tooltip"> <a class="btn btn-sm btn-primary '.(!empty($preventivi) ? '' : ' disabled').'" data-href="'.base_path().'/modules/ordini/add_preventivo.php?id_module='.$id_module.'&id_record='.$id_record.'" data-title="'.tr('Aggiungi preventivo').'" data-toggle="tooltip">
<i class="fa fa-plus"></i> '.tr('Preventivo').' <i class="fa fa-plus"></i> '.tr('Preventivo').'

View File

@@ -68,6 +68,16 @@ foreach ($righe as $riga) {
<td>'; <td>';
$numero_riferimenti_riga = $riga->referenceTargets()->count();
$numero_riferimenti_collegati = $riga->referenceSources()->count();
$riferimenti_presenti = $numero_riferimenti_riga;
$testo_aggiuntivo = $riferimenti_presenti ? $numero_riferimenti_riga : '';
echo '
<button type="button" class="btn btn-xs btn-'.($riferimenti_presenti ? 'primary' : 'info').' pull-right text-right" onclick="apriRiferimenti(this)">
<i class="fa fa-chevron-right"></i> '.tr('Riferimenti').' '.$testo_aggiuntivo.'
</button>';
// Aggiunta dei riferimenti ai documenti // Aggiunta dei riferimenti ai documenti
if ($riga->hasOriginalComponent()) { if ($riga->hasOriginalComponent()) {
echo ' echo '
@@ -349,6 +359,14 @@ function modificaSeriali(button) {
openModal("'.tr('Aggiorna SN').'", globals.rootdir + "/modules/fatture/add_serial.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type); openModal("'.tr('Aggiorna SN').'", globals.rootdir + "/modules/fatture/add_serial.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
} }
function apriRiferimenti(button) {
let riga = $(button).closest("tr");
let id = riga.data("id");
let type = riga.data("type");
openModal("'.tr('Riferimenti riga').'", globals.rootdir + "/actions.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&op=visualizza_righe_riferimenti&riga_id=" + id + "&riga_type=" + type)
}
$(document).ready(function() { $(document).ready(function() {
$(".sortable").each(function() { $(".sortable").each(function() {
$(this).sortable({ $(this).sortable({

View File

@@ -85,11 +85,11 @@ foreach ($primo_livello as $conto_primo) {
<tr> <tr>
<th>'.tr('Descrizione').'</th> <th>'.tr('Descrizione').'</th>
<th style="width: 10%" class="text-center">'.tr('Importo').'</th>'; <th style="width: 10%" class="text-center">'.tr('Importo').'</th>';
if($conto_primo['descrizione']=='Economico'){ if ($conto_primo['descrizione'] == 'Economico') {
echo ' echo '
<th style="width: 10%" class="text-center">'.tr('Importo reddito').'</th>'; <th style="width: 10%" class="text-center">'.tr('Importo reddito').'</th>';
} }
echo ' echo '
</tr> </tr>
</thead> </thead>
@@ -125,7 +125,7 @@ foreach ($primo_livello as $conto_primo) {
$totale_conto = -$totale_conto; $totale_conto = -$totale_conto;
$totale_reddito = -$totale_reddito; $totale_reddito = -$totale_reddito;
} }
$totale_conto2 += $totale_conto; $totale_conto2 += $totale_conto;
$totale_reddito2 += $totale_reddito; $totale_reddito2 += $totale_reddito;
@@ -178,7 +178,7 @@ foreach ($primo_livello as $conto_primo) {
</a>'; </a>';
} }
echo ' echo '
</span>'; </span>';
// Span con info del conto // Span con info del conto
@@ -192,13 +192,13 @@ foreach ($primo_livello as $conto_primo) {
<td class="text-right"> <td class="text-right">
'.moneyFormat($totale_conto, 2).' '.moneyFormat($totale_conto, 2).'
</td>'; </td>';
if($conto_primo['descrizione']=='Economico'){ if ($conto_primo['descrizione'] == 'Economico') {
echo ' echo '
<td class="text-right"> <td class="text-right">
'.moneyFormat($totale_reddito, 2).' '.moneyFormat($totale_reddito, 2).'
</td>'; </td>';
} }
echo ' echo '
</tr>'; </tr>';
} }
@@ -209,10 +209,10 @@ foreach ($primo_livello as $conto_primo) {
<tr> <tr>
<th class="text-right">'.tr('Totale').'</th> <th class="text-right">'.tr('Totale').'</th>
<th class="text-right">'.moneyFormat($totale_conto2).'</th>'; <th class="text-right">'.moneyFormat($totale_conto2).'</th>';
if($conto_primo['descrizione']=='Economico'){ if ($conto_primo['descrizione'] == 'Economico') {
echo '<th class="text-right">'.moneyFormat($totale_reddito2).'</th>'; echo '<th class="text-right">'.moneyFormat($totale_reddito2).'</th>';
} }
echo ' echo '
</tr> </tr>
</tfoot> </tfoot>
</table>'; </table>';
@@ -240,8 +240,8 @@ foreach ($primo_livello as $conto_primo) {
} }
} }
$totale_conto2=0; $totale_conto2 = 0;
$totale_reddito2=0; $totale_reddito2 = 0;
} }
echo ' echo '

View File

@@ -19,7 +19,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
echo' echo '
<button type="button" class="btn btn-primary" onclick="if( confirm(\'Duplicare questo preventivo?\') ){ $(\'#copia-preventivo\').submit(); }"> <button type="button" class="btn btn-primary" onclick="if( confirm(\'Duplicare questo preventivo?\') ){ $(\'#copia-preventivo\').submit(); }">
<i class="fa fa-copy"></i> '.tr('Duplica preventivo').' <i class="fa fa-copy"></i> '.tr('Duplica preventivo').'
</button>'; </button>';

View File

@@ -68,7 +68,6 @@ switch (filter('op')) {
break; break;
case 'delete': case 'delete':
$righe = $dbo->fetchNum('SELECT idanagrafica FROM an_anagrafiche WHERE idrelazione='.prepare($id_record)); $righe = $dbo->fetchNum('SELECT idanagrafica FROM an_anagrafiche WHERE idrelazione='.prepare($id_record));
if (isset($id_record) && empty($righe)) { if (isset($id_record) && empty($righe)) {

View File

@@ -46,33 +46,33 @@ switch (post('op')) {
$pagato = floatval($pagato); $pagato = floatval($pagato);
$da_pagare = floatval($da_pagare); $da_pagare = floatval($da_pagare);
if(!empty($iddocumento)){ if (!empty($iddocumento)) {
$id_tipo = $dbo->selectOne('co_documenti', 'idtipodocumento', ['id' => $iddocumento])['idtipodocumento']; $id_tipo = $dbo->selectOne('co_documenti', 'idtipodocumento', ['id' => $iddocumento])['idtipodocumento'];
$tipo_documento = $dbo->selectOne('co_tipidocumento', '*', ['id' => $id_tipo]); $tipo_documento = $dbo->selectOne('co_tipidocumento', '*', ['id' => $id_tipo]);
if($tipo_documento['dir'] == 'uscita'){ if ($tipo_documento['dir'] == 'uscita') {
if($pagato > 0){ if ($pagato > 0) {
$pagato = -$pagato; $pagato = -$pagato;
} }
if($da_pagare > 0){ if ($da_pagare > 0) {
$da_pagare = -$da_pagare; $da_pagare = -$da_pagare;
} }
} else{ } else {
if($pagato < 0){ if ($pagato < 0) {
$pagato = -$pagato; $pagato = -$pagato;
} }
if($da_pagare < 0){ if ($da_pagare < 0) {
$da_pagare = -$da_pagare; $da_pagare = -$da_pagare;
} }
} }
if(!empty($tipo_documento['reversed'])){ if (!empty($tipo_documento['reversed'])) {
$pagato = -$pagato; $pagato = -$pagato;
$da_pagare = -$da_pagare; $da_pagare = -$da_pagare;
} }
} }
$totale_pagato = sum($totale_pagato, $pagato); $totale_pagato = sum($totale_pagato, $pagato);
$id_scadenza = post('id_scadenza')[$id]; $id_scadenza = post('id_scadenza')[$id];

View File

@@ -205,11 +205,11 @@ if (!empty($documento)) {
<?php <?php
if (empty($documento)) { if (empty($documento)) {
echo ' echo '
<a class="btn btn-danger ask" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">
<i class="fa fa-trash"></i> '.tr('Elimina').' <i class="fa fa-trash"></i> '.tr('Elimina').'
</a>'; </a>';
} }
echo ' echo '
<table class="hide"> <table class="hide">

View File

@@ -32,12 +32,12 @@ echo '
<div class="row">'; <div class="row">';
if ($nome_stampa != 'Liquidazione IVA') { if ($nome_stampa != 'Liquidazione IVA') {
echo' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_sezionale", "required": "1", "values": "query=SELECT id AS id, name AS descrizione FROM zz_segments WHERE id_module = (SELECT id FROM zz_modules WHERE name = \''.(($dir == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto').'\') AND is_fiscale = 1 UNION SELECT 0 AS id, \'Tutti i sezionali\' AS descrizione" ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_sezionale", "required": "1", "values": "query=SELECT id AS id, name AS descrizione FROM zz_segments WHERE id_module = (SELECT id FROM zz_modules WHERE name = \''.(($dir == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto').'\') AND is_fiscale = 1 UNION SELECT 0 AS id, \'Tutti i sezionali\' AS descrizione" ]}
</div>'; </div>';
} }
echo' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "date", "label": "'.tr('Data inizio').'", "required": "1", "name": "date_start", "value": "'.Translator::dateToLocale($_SESSION['period_start']).'" ]} {[ "type": "date", "label": "'.tr('Data inizio').'", "required": "1", "name": "date_start", "value": "'.Translator::dateToLocale($_SESSION['period_start']).'" ]}
</div> </div>

View File

@@ -34,7 +34,6 @@ switch (post('op')) {
break; break;
case 'add': case 'add':
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$icona = post('icona'); $icona = post('icona');
$is_completato = post('is_completato') ?: null; $is_completato = post('is_completato') ?: null;
@@ -54,7 +53,6 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
//scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato nei contratti //scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato nei contratti
if (count($dbo->fetchArray('SELECT id FROM co_contratti WHERE idstato='.prepare($id_record))) > 0) { if (count($dbo->fetchArray('SELECT id FROM co_contratti WHERE idstato='.prepare($id_record))) > 0) {
$query = 'UPDATE co_staticontratti SET deleted_at = NOW() WHERE can_delete = 1 AND id='.prepare($id_record); $query = 'UPDATE co_staticontratti SET deleted_at = NOW() WHERE can_delete = 1 AND id='.prepare($id_record);

View File

@@ -58,7 +58,6 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
//scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato negli interventi //scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato negli interventi
if (count($dbo->fetchArray('SELECT id FROM in_interventi WHERE idstatointervento='.prepare($id_record))) > 0) { if (count($dbo->fetchArray('SELECT id FROM in_interventi WHERE idstatointervento='.prepare($id_record))) > 0) {
$query = 'UPDATE in_statiintervento SET deleted_at = NOW() WHERE idstatointervento='.prepare($id_record).' AND `can_delete`=1'; $query = 'UPDATE in_statiintervento SET deleted_at = NOW() WHERE idstatointervento='.prepare($id_record).' AND `can_delete`=1';

View File

@@ -35,7 +35,6 @@ switch (post('op')) {
break; break;
case 'add': case 'add':
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$icona = post('icona'); $icona = post('icona');
$is_completato = post('is_completato') ?: null; $is_completato = post('is_completato') ?: null;
@@ -55,7 +54,6 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
//scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato nei preventivi //scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato nei preventivi
if (count($dbo->fetchArray('SELECT id FROM co_preventivi WHERE idstato='.prepare($id_record))) > 0) { if (count($dbo->fetchArray('SELECT id FROM co_preventivi WHERE idstato='.prepare($id_record))) > 0) {
$query = 'UPDATE co_statipreventivi SET deleted_at = NOW() WHERE can_delete = 1 AND id='.prepare($id_record); $query = 'UPDATE co_statipreventivi SET deleted_at = NOW() WHERE can_delete = 1 AND id='.prepare($id_record);

View File

@@ -332,7 +332,6 @@ $(document).ready(function() {
}); });
</script>'; </script>';
// Interventi per tecnico // Interventi per tecnico
$tecnici = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche $tecnici = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche
INNER JOIN INNER JOIN
@@ -346,14 +345,13 @@ ORDER BY ragione_sociale ASC");
$dataset = ''; $dataset = '';
foreach ($tecnici as $tecnico) { foreach ($tecnici as $tecnico) {
$sessioni = $dbo->fetchArray('SELECT SUM(in_interventi_tecnici.ore) AS result, CONCAT(CAST(SUM(in_interventi_tecnici.ore) AS char(20)),\' ore\') AS ore_lavorate, YEAR(in_interventi_tecnici.orario_inizio) AS year, MONTH(in_interventi_tecnici.orario_inizio) AS month FROM in_interventi_tecnici INNER JOIN `in_interventi` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` LEFT JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento` WHERE in_interventi_tecnici.idtecnico = '.prepare($tecnico['id']).' AND in_interventi_tecnici.orario_inizio BETWEEN '.prepare($start).' AND '.prepare($end).' AND `in_statiintervento`.`is_completato` = 1 GROUP BY YEAR(in_interventi_tecnici.orario_inizio), MONTH(in_interventi_tecnici.orario_inizio) ORDER BY YEAR(in_interventi_tecnici.orario_inizio) ASC, MONTH(in_interventi_tecnici.orario_inizio) ASC'); $sessioni = $dbo->fetchArray('SELECT SUM(in_interventi_tecnici.ore) AS result, CONCAT(CAST(SUM(in_interventi_tecnici.ore) AS char(20)),\' ore\') AS ore_lavorate, YEAR(in_interventi_tecnici.orario_inizio) AS year, MONTH(in_interventi_tecnici.orario_inizio) AS month FROM in_interventi_tecnici INNER JOIN `in_interventi` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` LEFT JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento` WHERE in_interventi_tecnici.idtecnico = '.prepare($tecnico['id']).' AND in_interventi_tecnici.orario_inizio BETWEEN '.prepare($start).' AND '.prepare($end).' AND `in_statiintervento`.`is_completato` = 1 GROUP BY YEAR(in_interventi_tecnici.orario_inizio), MONTH(in_interventi_tecnici.orario_inizio) ORDER BY YEAR(in_interventi_tecnici.orario_inizio) ASC, MONTH(in_interventi_tecnici.orario_inizio) ASC');
$sessioni = Stats::monthly($sessioni, $start, $end); $sessioni = Stats::monthly($sessioni, $start, $end);
//Colore tecnico //Colore tecnico
$background = $tecnico['colore']; $background = $tecnico['colore'];
if (empty( $background ) || $background == '#FFFFFF' ){ if (empty($background) || $background == '#FFFFFF') {
//Random color //Random color
$background = '#'.dechex(rand(256, 16777215)); $background = '#'.dechex(rand(256, 16777215));
} }
@@ -366,8 +364,6 @@ foreach ($tecnici as $tecnico) {
], ],
},'; },';
} }
echo ' echo '
@@ -437,4 +433,4 @@ $(document).ready(function() {
} }
}); });
}); });
</script>'; </script>';

View File

@@ -22,7 +22,6 @@ use Notifications\EmailNotification;
switch (post('op')) { switch (post('op')) {
case 'send': case 'send':
$email = EmailNotification::build($mail); $email = EmailNotification::build($mail);
// Invio mail // Invio mail

View File

@@ -49,8 +49,7 @@ if (Services::isEnabled()) {
// Informazioni su Services // Informazioni su Services
$servizi = Cache::pool('Informazioni su Services')->content; $servizi = Cache::pool('Informazioni su Services')->content;
if (!empty($servizi)){ if (!empty($servizi)) {
// Elaborazione dei servizi in scadenza // Elaborazione dei servizi in scadenza
$limite_scadenze = (new Carbon())->addDays(60); $limite_scadenze = (new Carbon())->addDays(60);
$servizi_in_scadenza = []; $servizi_in_scadenza = [];
@@ -126,12 +125,9 @@ if (Services::isEnabled()) {
}); });
}); });
</script>'; </script>';
} else {
}else{
echo ' echo '
<div class="col-md-12 col-lg-6"><div class="alert alert-warning alert-dismissible" role="alert"><button class="close" type="button" data-dismiss="alert" aria-hidden="true"><span aria-hidden="true">×</span><span class="sr-only">'.tr('Chiudi').'</span></button><span><i class="fa fa-warning"></i> '.tr('Nessun servizio abilitato o "OSMCloud Services API Token" non valido').'.</span></div></div>'; <div class="col-md-12 col-lg-6"><div class="alert alert-warning alert-dismissible" role="alert"><button class="close" type="button" data-dismiss="alert" aria-hidden="true"><span aria-hidden="true">×</span><span class="sr-only">'.tr('Chiudi').'</span></button><span><i class="fa fa-warning"></i> '.tr('Nessun servizio abilitato o "OSMCloud Services API Token" non valido').'.</span></div></div>';
} }
} }

View File

@@ -27,7 +27,6 @@ switch (filter('op')) {
if (isset($descrizione) && isset($dir) && isset($codice_tipo_documento_fe)) { if (isset($descrizione) && isset($dir) && isset($codice_tipo_documento_fe)) {
if ($dbo->fetchNum('SELECT * FROM `co_tipidocumento` WHERE `dir`='.prepare($dir).' AND `codice_tipo_documento_fe`='.prepare($codice_tipo_documento_fe).' AND `id`!='.prepare($id_record)) == 0) { if ($dbo->fetchNum('SELECT * FROM `co_tipidocumento` WHERE `dir`='.prepare($dir).' AND `codice_tipo_documento_fe`='.prepare($codice_tipo_documento_fe).' AND `id`!='.prepare($id_record)) == 0) {
$predefined = post('predefined'); $predefined = post('predefined');
if (!empty($predefined)) { if (!empty($predefined)) {
$dbo->query('UPDATE co_tipidocumento SET predefined = 0 WHERE dir = '.prepare($dir)); $dbo->query('UPDATE co_tipidocumento SET predefined = 0 WHERE dir = '.prepare($dir));
@@ -87,7 +86,6 @@ switch (filter('op')) {
break; break;
case 'delete': case 'delete':
$documenti = $dbo->fetchNum('SELECT id FROM co_documenti WHERE idtipodocumento ='.prepare($id_record)); $documenti = $dbo->fetchNum('SELECT id FROM co_documenti WHERE idtipodocumento ='.prepare($id_record));
if (isset($id_record) && empty($documenti)) { if (isset($id_record) && empty($documenti)) {
@@ -96,7 +94,6 @@ switch (filter('op')) {
'_TYPE_' => 'tipo documento', '_TYPE_' => 'tipo documento',
])); ]));
} else { } else {
$dbo->update('co_tipidocumento', [ $dbo->update('co_tipidocumento', [
'deleted_at' => date(), 'deleted_at' => date(),
'predefined' => 0, 'predefined' => 0,
@@ -107,9 +104,8 @@ switch (filter('op')) {
'_TYPE_' => 'tipo documento', '_TYPE_' => 'tipo documento',
])); ]));
//flash()->error(tr('Sono presenti dei documenti collegati a questo tipo documento')); //flash()->error(tr('Sono presenti dei documenti collegati a questo tipo documento'));
} }
break; break;
} }

View File

@@ -66,7 +66,6 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
// Permetto eliminazione tipo intervento solo se questo non è utilizzado da nessun'altra parte a gestionale // Permetto eliminazione tipo intervento solo se questo non è utilizzado da nessun'altra parte a gestionale
// UNION SELECT `in_tariffe`.`idtipointervento` FROM `in_tariffe` WHERE `in_tariffe`.`idtipointervento` = '.prepare($id_record).' // UNION SELECT `in_tariffe`.`idtipointervento` FROM `in_tariffe` WHERE `in_tariffe`.`idtipointervento` = '.prepare($id_record).'
// UNION SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).' // UNION SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).'

View File

@@ -99,7 +99,6 @@ switch (filter('op')) {
break; break;
case 'delete': case 'delete':
$documenti = $dbo->fetchNum('SELECT id FROM co_scadenziario WHERE tipo = (SELECT nome FROM co_tipi_scadenze WHERE id = '.prepare($id_record).')'); $documenti = $dbo->fetchNum('SELECT id FROM co_scadenziario WHERE tipo = (SELECT nome FROM co_tipi_scadenze WHERE id = '.prepare($id_record).')');
if (isset($id_record) && empty($documenti)) { if (isset($id_record) && empty($documenti)) {

View File

@@ -127,6 +127,8 @@ switch (filter('op')) {
'conto' => post('conto'), 'conto' => post('conto'),
'tipo_riga_riferimento' => post('tipo_riga_riferimento'), 'tipo_riga_riferimento' => post('tipo_riga_riferimento'),
'id_riga_riferimento' => post('id_riga_riferimento'), 'id_riga_riferimento' => post('id_riga_riferimento'),
'tipo_riga_riferimento_vendita' => post('tipo_riga_riferimento_vendita'),
'id_riga_riferimento_vendita' => post('id_riga_riferimento_vendita'),
'movimentazione' => post('movimentazione'), 'movimentazione' => post('movimentazione'),
'crea_articoli' => post('crea_articoli'), 'crea_articoli' => post('crea_articoli'),
'is_ritenuta_pagata' => post('is_ritenuta_pagata'), 'is_ritenuta_pagata' => post('is_ritenuta_pagata'),

View File

@@ -118,7 +118,7 @@ $tipo_documento = $database->fetchOne('SELECT CONCAT("(", codice, ") ", descrizi
// Gestione per fattura elettroniche senza pagamento definito // Gestione per fattura elettroniche senza pagamento definito
$pagamenti = []; $pagamenti = [];
if (isset($fattura_body['DatiPagamento'])) { if (isset($fattura_body['DatiPagamento'])) {
$pagamenti = $fattura_body['DatiPagamento']; $pagamenti = $fattura_body['DatiPagamento'];
$pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti]; $pagamenti = isset($pagamenti[0]) ? $pagamenti : [$pagamenti];
} }
@@ -282,11 +282,11 @@ echo '
</div>'; </div>';
$ritenuta = $dati_generali['DatiRitenuta']; $ritenuta = $dati_generali['DatiRitenuta'];
if(!empty($ritenuta)){ if (!empty($ritenuta)) {
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": 0, "help": "'.tr("Attivare se la ritenuta è stata pagata dal fornitore").'" ]} {[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": 0, "help": "'.tr('Attivare se la ritenuta è stata pagata dal fornitore').'" ]}
</div>'; </div>';
} }
echo ' echo '
@@ -323,7 +323,7 @@ if (!empty($righe)) {
$query .= ' AND codice_natura_fe = '.prepare($riga['Natura']); $query .= ' AND codice_natura_fe = '.prepare($riga['Natura']);
// Fallback per natura iva mancante // Fallback per natura iva mancante
if( empty($dbo->fetchArray($query)) ){ if (empty($dbo->fetchArray($query))) {
$query = $start_query; $query = $start_query;
} }
} }
@@ -397,21 +397,38 @@ if (!empty($righe)) {
<input type="hidden" name="id_riga_riferimento['.$key.']" id="id_riga_riferimento_'.$key.'" value=""> <input type="hidden" name="id_riga_riferimento['.$key.']" id="id_riga_riferimento_'.$key.'" value="">
<input type="hidden" name="tipo_riga_riferimento['.$key.']" id="tipo_riga_riferimento_'.$key.'" value=""> <input type="hidden" name="tipo_riga_riferimento['.$key.']" id="tipo_riga_riferimento_'.$key.'" value="">
<div class="col-md-3"> <input type="hidden" name="tipo_riferimento_vendita['.$key.']" id="tipo_riferimento_vendita_'.$key.'" value="">
{[ "type": "select", "name": "articoli['.$key.']", "ajax-source": "articoli", "select-options": '.json_encode(['permetti_movimento_a_zero' => 1, 'dir' => 'entrata', 'idanagrafica' => $anagrafica ? $anagrafica->id : '']).', "icon-after": "add|'.Modules::get('Articoli')['id'].'|codice='.htmlentities($codice_principale).'&descrizione='.htmlentities($riga['Descrizione']).'", "value": "'.$id_articolo.'", "label": "'.tr('Articolo').'" ]} <input type="hidden" name="id_riferimento_vendita['.$key.']" id="id_riferimento_vendita_'.$key.'" value="">
<input type="hidden" name="id_riga_riferimento_vendita['.$key.']" id="id_riga_riferimento_vendita_'.$key.'" value="">
<input type="hidden" name="tipo_riga_riferimento_vendita['.$key.']" id="tipo_riga_riferimento_vendita_'.$key.'" value="">
<div class="col-md-12">
<div class="row">
<div class="col-md-6">
{[ "type": "select", "name": "articoli['.$key.']", "ajax-source": "articoli", "select-options": '.json_encode(['permetti_movimento_a_zero' => 1, 'dir' => 'entrata', 'idanagrafica' => $anagrafica ? $anagrafica->id : '']).', "icon-after": "add|'.Modules::get('Articoli')['id'].'|codice='.htmlentities($codice_principale).'&descrizione='.htmlentities($riga['Descrizione']).'", "value": "'.$id_articolo.'", "label": "'.tr('Articolo').'" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "name": "conto['.$key.']", "ajax-source": "conti-acquisti", "required": 1, "label": "'.tr('Conto acquisti').'" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "name": "iva['.$key.']", "values": '.json_encode('query='.$query).', "required": 1, "label": "'.tr('Aliquota IVA').'" ]}
</div>
</div>
<div class="row">
<div class="col-md-3">
{[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "label": "'.tr('Riferimento acquisto').'", "icon-after": '.json_encode('<button type="button" onclick="rimuoviRiferimento(this)" class="btn btn-primary disabled" id="rimuovi_riferimento_'.$key.'"><i class="fa fa-close"></i></button>').' ]}
</div>
<div class="col-md-3">
{[ "type": "select", "name": "selezione_riferimento_vendita['.$key.']", "ajax-source": "riferimenti-vendita-fe", "select-options": '.json_encode(['id_articolo' => $id_articolo]).', "label": "'.tr('Riferimento vendita').'", "icon-after": '.json_encode('<button type="button" onclick="rimuoviRiferimentoVendita(this)" class="btn btn-primary disabled" id="rimuovi_riferimento_vendita_'.$key.'"><i class="fa fa-close"></i></button>').' ]}
</div>
</div>
</div> </div>
<div class="col-md-3">
{[ "type": "select", "name": "conto['.$key.']", "ajax-source": "conti-acquisti", "required": 1, "label": "'.tr('Conto acquisti').'" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "name": "iva['.$key.']", "values": '.json_encode('query='.$query).', "required": 1, "label": "'.tr('Aliquota IVA').'" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "label": "'.tr('Riferimento').'", "icon-after": '.json_encode('<button type="button" onclick="rimuoviRiferimento(this)" class="btn btn-primary disabled" id="rimuovi_riferimento_'.$key.'"><i class="fa fa-close"></i></button>').' ]}
</div>
</td> </td>
</tr>'; </tr>';
} }
@@ -488,7 +505,7 @@ echo '
if (data) { if (data) {
let riga = $this.closest("tr").prev(); let riga = $this.closest("tr").prev();
selezionaRiferimento(riga, data.tipo, data.id); selezionaRiferimento(riga, data.tipo, data.id, data.dir);
} }
}); });
@@ -504,7 +521,7 @@ function rimuoviRiferimento(button) {
riga.removeClass("success").removeClass("warning"); riga.removeClass("success").removeClass("warning");
} }
function selezionaRiferimento(riga, tipo_documento, id_documento) { function selezionaRiferimento(riga, tipo_documento, id_documento, dir) {
let id_riga = riga.data("id"); let id_riga = riga.data("id");
let qta = riga.data("qta"); let qta = riga.data("qta");
@@ -518,6 +535,7 @@ function selezionaRiferimento(riga, tipo_documento, id_documento) {
tipo_documento: tipo_documento, tipo_documento: tipo_documento,
righe_ddt: riferimenti.ddt, righe_ddt: riferimenti.ddt,
righe_ordini: riferimenti.ordini, righe_ordini: riferimenti.ordini,
dir: dir,
}; };
let url = "'.$structure->fileurl('riferimento.php').'?" + $.param(query); let url = "'.$structure->fileurl('riferimento.php').'?" + $.param(query);
@@ -579,7 +597,14 @@ function impostaRiferimento(id_riga, documento, riga) {
impostaContenuto(riga_fe.data("iva_percentuale"), riga.iva_percentuale, "%", "#riferimento_" + id_riga + "_iva"); impostaContenuto(riga_fe.data("iva_percentuale"), riga.iva_percentuale, "%", "#riferimento_" + id_riga + "_iva");
$("#riferimento_" + id_riga).html(documento.descrizione ? documento.descrizione : ""); $("#riferimento_" + id_riga).html(documento.descrizione ? documento.descrizione : "");
$("#riferimento_" + id_riga + "_descrizione").html(riga.descrizione ? riga.descrizione : "");
var descrizione = riga.descrizione;
console.log(descrizione);
if(typeof descrizione !== "undefined"){
descrizione = descrizione.replace(/_/g, " ");
}
$("#riferimento_" + id_riga + "_descrizione").html(descrizione ? descrizione : "");
// Colorazione dell\'intera riga // Colorazione dell\'intera riga
let warnings = riga_fe.find(".text-warning"); let warnings = riga_fe.find(".text-warning");
@@ -612,4 +637,33 @@ function impostaContenuto(valore_riga, valore_riferimento, contenuto_successivo,
elemento.html("<br>" + contenuto); elemento.html("<br>" + contenuto);
} }
function impostaRiferimentoVendita(id_riga, documento, riga) {
// Informazioni interne per il riferimento
$("#tipo_riferimento_vendita_" + id_riga).val(documento.tipo);
$("#id_riferimento_vendita_" + id_riga).val(documento.id);
$("#tipo_riga_riferimento_vendita_" + id_riga).val(riga.tipo);
$("#id_riga_riferimento_vendita_" + id_riga).val(riga.id);
// Gestione della selezione
input("selezione_riferimento_vendita[" + id_riga + "]").disable();
$("#rimuovi_riferimento_vendita_" + id_riga).removeClass("disabled");
}
function rimuoviRiferimentoVendita(button) {
let riga = $(button).closest("tr").prev();
let id_riga = riga.data("id");
impostaRiferimentoVendita(id_riga, {}, {});
input("selezione_riferimento_vendita[" + id_riga + "]").enable()
.getElement().selectReset();
$(button).addClass("disabled");
riga.removeClass("success").removeClass("warning");
}
$("[id^=\'articoli\']").change(function() {
updateSelectOption("id_articolo", $(this).val());
});
</script>'; </script>';

View File

@@ -29,6 +29,7 @@ $qta = get('qta');
$id_documento = get('id_documento'); $id_documento = get('id_documento');
$tipo_documento = get('tipo_documento'); $tipo_documento = get('tipo_documento');
$dir = get('dir');
if ($tipo_documento == 'ordine') { if ($tipo_documento == 'ordine') {
$documento = Ordine::find($id_documento); $documento = Ordine::find($id_documento);
$righe_utilizzate = get('righe_ordini'); $righe_utilizzate = get('righe_ordini');
@@ -59,7 +60,7 @@ foreach ($righe as $riga) {
$dettagli = [ $dettagli = [
'tipo' => get_class($riga), 'tipo' => get_class($riga),
'id' => $riga->id, 'id' => $riga->id,
'descrizione' => $riga->descrizione, 'descrizione' => str_replace(' ', '_', $riga->descrizione),
'qta' => $riga->qta, 'qta' => $riga->qta,
'um' => $riga->um, 'um' => $riga->um,
'prezzo_unitario' => $riga->prezzo_unitario ?: $riga_origine->prezzo_unitario, 'prezzo_unitario' => $riga->prezzo_unitario ?: $riga_origine->prezzo_unitario,
@@ -102,8 +103,14 @@ var documento_importazione = {
function selezionaRiga(button) { function selezionaRiga(button) {
let riga = $(button).closest("tr"); let riga = $(button).closest("tr");
let dettagli_riga = riga.data("dettagli"); let dettagli_riga = riga.data("dettagli")
impostaRiferimento("'.$id_riga.'", documento_importazione, dettagli_riga);
if("'.$dir.'"=="entrata"){
impostaRiferimentoVendita("'.$id_riga.'", documento_importazione, dettagli_riga);
}else{
impostaRiferimento("'.$id_riga.'", documento_importazione, dettagli_riga);
}
$(button).closest(".modal").modal("hide"); $(button).closest(".modal").modal("hide");
} }

View File

@@ -364,7 +364,7 @@ class FatturaElettronica
{ {
$this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura'], $info['is_ritenuta_pagata']); $this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura'], $info['is_ritenuta_pagata']);
$this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli'], $info['tipo_riga_riferimento'], $info['id_riga_riferimento']); $this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli'], $info['tipo_riga_riferimento'], $info['id_riga_riferimento'], $info['tipo_riga_riferimento_vendita'], $info['id_riga_riferimento_vendita']);
$this->saveAllegati(); $this->saveAllegati();

View File

@@ -19,13 +19,12 @@
namespace Plugins\ImportFE; namespace Plugins\ImportFE;
use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo as ArticoloOriginale; use Modules\Articoli\Articolo as ArticoloOriginale;
use Modules\Articoli\Categoria; use Modules\Articoli\Categoria;
use Modules\Fatture\Components\Articolo; use Modules\Fatture\Components\Articolo;
use Modules\Fatture\Components\Riga; use Modules\Fatture\Components\Riga;
use Modules\Fatture\Fattura; use Modules\Fatture\Fattura;
use Modules\Anagrafiche\Anagrafica;
use Plugins\DettagliArticolo\DettaglioFornitore;
use Plugins\DettagliArticolo\DettaglioPrezzo; use Plugins\DettagliArticolo\DettaglioPrezzo;
use UnexpectedValueException; use UnexpectedValueException;
use Util\XML; use Util\XML;
@@ -110,7 +109,7 @@ class FatturaOrdinaria extends FatturaElettronica
return $this->forceArray($result); return $this->forceArray($result);
} }
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = []) public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [], $tipi_riferimenti_vendita = [], $id_riferimenti_vendita = [])
{ {
$info = $this->getRitenutaRivalsa(); $info = $this->getRitenutaRivalsa();
@@ -161,8 +160,12 @@ class FatturaOrdinaria extends FatturaElettronica
$obj = Articolo::build($fattura, $articolo); $obj = Articolo::build($fattura, $articolo);
$obj->movimentazione($movimentazione); $obj->movimentazione($movimentazione);
$target_type = 'Modules\Fatture\Components\Articolo';
} else { } else {
$obj = Riga::build($fattura); $obj = Riga::build($fattura);
$target_type = 'Modules\Fatture\Components\Riga';
} }
$obj->descrizione = $riga['Descrizione']; $obj->descrizione = $riga['Descrizione'];
@@ -176,6 +179,17 @@ class FatturaOrdinaria extends FatturaElettronica
$obj->descrizione .= $nuovo_riferimento; $obj->descrizione .= $nuovo_riferimento;
} }
$obj->save();
if (!empty($tipi_riferimenti_vendita[$key])) {
database()->insert('co_riferimenti_righe', [
'source_type' => $tipi_riferimenti_vendita[$key],
'source_id' => $id_riferimenti_vendita[$key],
'target_type' => $target_type,
'target_id' => $obj->id,
]);
}
$obj->id_iva = $iva[$key]; $obj->id_iva = $iva[$key];
$obj->idconto = $conto[$key]; $obj->idconto = $conto[$key];

View File

@@ -95,7 +95,7 @@ class FatturaSemplificata extends FatturaElettronica
return $result; return $result;
} }
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = []) public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [], $tipi_riferimenti_vendita = [], $id_riferimenti_vendita = [])
{ {
$righe = $this->getRighe(); $righe = $this->getRighe();
$fattura = $this->getFattura(); $fattura = $this->getFattura();

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.n.c. * Copyright (C) DevCode s.r.l.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -17,9 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
use Modules\Contratti\Components\Riga;
use Modules\Contratti\Components\Articolo;
use Modules\Articoli\Articolo as ArticoloOriginale; use Modules\Articoli\Articolo as ArticoloOriginale;
use Modules\Contratti\Components\Articolo;
use Modules\Contratti\Components\Riga;
use Modules\Contratti\Contratto; use Modules\Contratti\Contratto;
use Modules\Fatture\Fattura; use Modules\Fatture\Fattura;
use Modules\Fatture\Tipo; use Modules\Fatture\Tipo;
@@ -35,22 +35,22 @@ switch ($operazione) {
case 'add': case 'add':
$contratto = Contratto::find($id_record); $contratto = Contratto::find($id_record);
if(post('scadenza')=='Mensile'){ if (post('scadenza') == 'Mensile') {
$timeing = '+1 month'; $timeing = '+1 month';
} }
if(post('scadenza')=='Bimestrale'){ if (post('scadenza') == 'Bimestrale') {
$timeing = '+2 month'; $timeing = '+2 month';
} }
if(post('scadenza')=='Trimestrale'){ if (post('scadenza') == 'Trimestrale') {
$timeing = '+3 month'; $timeing = '+3 month';
} }
if(post('scadenza')=='Quadrimestrale'){ if (post('scadenza') == 'Quadrimestrale') {
$timeing = '+4 month'; $timeing = '+4 month';
} }
if(post('scadenza')=='Semestrale'){ if (post('scadenza') == 'Semestrale') {
$timeing = '+6 month'; $timeing = '+6 month';
} }
if(post('scadenza')=='Annuale'){ if (post('scadenza') == 'Annuale') {
$timeing = '+12 month'; $timeing = '+12 month';
} }
@@ -61,14 +61,14 @@ switch ($operazione) {
$date_pianificazioni = []; $date_pianificazioni = [];
$pianificazioni = []; $pianificazioni = [];
foreach ($selezioni as $key => $selezione) { foreach ($selezioni as $key => $selezione) {
if( $numero_fatture==0 && !empty(post('data_inizio')) ){ if ($numero_fatture == 0 && !empty(post('data_inizio'))) {
$date = new DateTime(post('data_inizio')); $date = new DateTime(post('data_inizio'));
}else{ } else {
$date = new DateTime($periodi[$key]); $date = new DateTime($periodi[$key]);
if(post('cadenza_fatturazione')=='Inizio'){ if (post('cadenza_fatturazione') == 'Inizio') {
$date->modify('first day of this month'); $date->modify('first day of this month');
}elseif( post('cadenza_fatturazione')=='Giorno' && !empty(post('giorno_fisso')) ){ } elseif (post('cadenza_fatturazione') == 'Giorno' && !empty(post('giorno_fisso'))) {
$date->modify('last day of this month'); $date->modify('last day of this month');
$last_day = $date->format('d'); $last_day = $date->format('d');
$day = post('giorno_fisso') > $last_day ? $last_day : post('giorno_fisso'); $day = post('giorno_fisso') > $last_day ? $last_day : post('giorno_fisso');
@@ -95,32 +95,32 @@ switch ($operazione) {
// Creazione nuove righe // Creazione nuove righe
$qta = post('qta'); $qta = post('qta');
foreach($righe_contratto as $r){ foreach ($righe_contratto as $r) {
$qta_evasa = $r->qta_evasa; $qta_evasa = $r->qta_evasa;
$data_scadenza = ''; $data_scadenza = '';
$inizio = $date_pianificazioni[0]; $inizio = $date_pianificazioni[0];
$fine = date("Y-m-d", strtotime($inizio.' -1 days')); $fine = date('Y-m-d', strtotime($inizio.' -1 days'));
$fine = date("Y-m-d", strtotime($fine." ".$timeing)); $fine = date('Y-m-d', strtotime($fine.' '.$timeing));
for ($rata = 1; $rata <= $numero_fatture; ++$rata) { for ($rata = 1; $rata <= $numero_fatture; ++$rata) {
if( $qta_evasa<$r->qta ){ if ($qta_evasa < $r->qta) {
$qta_riga = ($qta[$r->id]<=($r->qta-$qta_evasa) ? $qta[$r->id] : ($r->qta-$qta_evasa) ); $qta_riga = ($qta[$r->id] <= ($r->qta - $qta_evasa) ? $qta[$r->id] : ($r->qta - $qta_evasa));
$descrizione = post('descrizione')[$r->id]; $descrizione = post('descrizione')[$r->id];
$descrizione = variables($descrizione, $inizio, $fine)['descrizione']; $descrizione = variables($descrizione, $inizio, $fine)['descrizione'];
$inizio = $fine; $inizio = $fine;
$fine = date("Y-m-d", strtotime($timeing, strtotime($inizio))); $fine = date('Y-m-d', strtotime($timeing, strtotime($inizio)));
$inizio = date("Y-m-d", strtotime($inizio.' +1 days')); $inizio = date('Y-m-d', strtotime($inizio.' +1 days'));
$prezzo_unitario = ($r->subtotale / $r->qta); $prezzo_unitario = ($r->subtotale / $r->qta);
if( !empty($r->idarticolo) ){ if (!empty($r->idarticolo)) {
$articolo = ArticoloOriginale::find($r->idarticolo); $articolo = ArticoloOriginale::find($r->idarticolo);
$riga = Articolo::build($contratto, $articolo); $riga = Articolo::build($contratto, $articolo);
}else{ } else {
$riga = Riga::build($contratto); $riga = Riga::build($contratto);
} }
$riga->descrizione = $descrizione; $riga->descrizione = $descrizione;
$riga->setPrezzoUnitario($prezzo_unitario, $r->idiva); $riga->setPrezzoUnitario($prezzo_unitario, $r->idiva);
$riga->qta = $qta_riga; $riga->qta = $qta_riga;

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.n.c. * Copyright (C) DevCode s.r.l.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -106,7 +106,7 @@ $righe = $contratto->getRighe();
echo ' echo '
<div class="alert alert-info"> <div class="alert alert-info">
<p>'.tr("Puoi utilizzare le seguenti variabili nella descrizione delle righe").':</p>'.variables()['list'].' <p>'.tr('Puoi utilizzare le seguenti variabili nella descrizione delle righe').':</p>'.variables()['list'].'
</div>'; </div>';
foreach ($righe as $riga) { foreach ($righe as $riga) {
@@ -131,9 +131,9 @@ foreach ($righe as $riga) {
<div class="col-md-9"> <div class="col-md-9">
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione['.$riga->id.']", "value": "'.$descrizione.'" ]} {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione['.$riga->id.']", "value": "'.$descrizione.'" ]}
{[ "type": "number", "label": "'.tr('Q.tà per fattura').'", "class":"qta_fattura", "name": "qta['.$riga->id.']", "required": 1, "value": "1", "decimals": "qta", "min-value": "1", "icon-after":"'.tr('Su _TOT_',[ {[ "type": "number", "label": "'.tr('Q.tà per fattura').'", "class":"qta_fattura", "name": "qta['.$riga->id.']", "required": 1, "value": "1", "decimals": "qta", "min-value": "1", "icon-after":"'.tr('Su _TOT_', [
'_TOT_' => Translator::numberToLocale( ($riga->qta-$riga->qta_evasa) ), '_TOT_' => Translator::numberToLocale(($riga->qta - $riga->qta_evasa)),
]).'", "options":"'.str_replace('"','\"',$options).'" ]} ]).'", "options":"'.str_replace('"', '\"', $options).'" ]}
</div> </div>
<div class="col-md-3" id="totali_'.$riga->id.'"> <div class="col-md-3" id="totali_'.$riga->id.'">
</div> </div>
@@ -166,7 +166,7 @@ echo '
$(document).ready(function(){ $(document).ready(function(){
caricaCadenza(); caricaCadenza();
get_prezzi(); get_prezzi();
}); });
$("#scadenza").change(function(){ $("#scadenza").change(function(){
caricaCadenza(); caricaCadenza();
@@ -175,17 +175,17 @@ echo '
$("#data_inizio").focusout(function(){ $("#data_inizio").focusout(function(){
caricaCadenza(); caricaCadenza();
}); });
function caricaCadenza() { function caricaCadenza() {
let container = $("#cadenza"); let container = $("#cadenza");
localLoading(container, true); localLoading(container, true);
return $.get("'.$structure->fileurl('ajax_cadenza.php').'?id_module='.$id_module.'&id_record='.$id_record.'&scadenza="+$("#scadenza").val()+"&data_inizio="+$("#data_inizio").val(), function(data) { return $.get("'.$structure->fileurl('ajax_cadenza.php').'?id_module='.$id_module.'&id_record='.$id_record.'&scadenza="+$("#scadenza").val()+"&data_inizio="+$("#data_inizio").val(), function(data) {
container.html(data); container.html(data);
localLoading(container, false); localLoading(container, false);
}); });
} }
$("input:checkbox").click(function(){ $("input:checkbox").click(function(){
var check = 0; var check = 0;
@@ -234,7 +234,7 @@ echo '
var imponibile_riga = (riga.totale_imponibile/riga.qta)*qta; var imponibile_riga = (riga.totale_imponibile/riga.qta)*qta;
imponibile_riga = imponibile_riga.toLocaleString()+" &euro;"; imponibile_riga = imponibile_riga.toLocaleString()+" &euro;";
var iva_riga = (riga.iva/riga.qta)*qta; var iva_riga = (riga.iva/riga.qta)*qta;
iva_riga = iva_riga.toLocaleString()+" &euro;"; iva_riga = iva_riga.toLocaleString()+" &euro;";
@@ -256,5 +256,5 @@ echo '
$("#div_giorno_fisso").hide(); $("#div_giorno_fisso").hide();
} }
}) })
</script>'; </script>';

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.n.c. * Copyright (C) DevCode s.r.l.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -24,22 +24,22 @@ include_once __DIR__.'/../../core.php';
$contratto = Contratto::find($id_record); $contratto = Contratto::find($id_record);
if(get('scadenza')=='Mensile'){ if (get('scadenza') == 'Mensile') {
$timeing = '+1 month'; $timeing = '+1 month';
} }
if(get('scadenza')=='Bimestrale'){ if (get('scadenza') == 'Bimestrale') {
$timeing = '+2 month'; $timeing = '+2 month';
} }
if(get('scadenza')=='Trimestrale'){ if (get('scadenza') == 'Trimestrale') {
$timeing = '+3 month'; $timeing = '+3 month';
} }
if(get('scadenza')=='Quadrimestrale'){ if (get('scadenza') == 'Quadrimestrale') {
$timeing = '+4 month'; $timeing = '+4 month';
} }
if(get('scadenza')=='Semestrale'){ if (get('scadenza') == 'Semestrale') {
$timeing = '+6 month'; $timeing = '+6 month';
} }
if(get('scadenza')=='Annuale'){ if (get('scadenza') == 'Annuale') {
$timeing = '+12 month'; $timeing = '+12 month';
} }
@@ -54,13 +54,13 @@ echo '
while ($data_corrente->lessThanOrEqualTo($data_conclusione)) { while ($data_corrente->lessThanOrEqualTo($data_conclusione)) {
$data = $data_corrente->endOfMonth()->format('Y-m-d'); $data = $data_corrente->endOfMonth()->format('Y-m-d');
$data_fatturazione = ($data_fatturazione ?: date("Y-m", strtotime($data)) ); $data_fatturazione = ($data_fatturazione ?: date('Y-m', strtotime($data)));
unset($checked); unset($checked);
if( $id_module==Modules::get('Contratti')['id'] ){ if ($id_module == Modules::get('Contratti')['id']) {
if( $data==date("Y-m-t", strtotime($timeing, strtotime($data_fatturazione)) ) ){ if ($data == date('Y-m-t', strtotime($timeing, strtotime($data_fatturazione)))) {
$checked = 'checked'; $checked = 'checked';
$data_fatturazione = date("Y-m", strtotime($data)); $data_fatturazione = date('Y-m', strtotime($data));
} }
} }
@@ -90,4 +90,4 @@ echo '
}); });
$("#total_check").html("Rate: " + check).trigger("change"); $("#total_check").html("Rate: " + check).trigger("change");
}); });
</script>'; </script>';

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.n.c. * Copyright (C) DevCode s.r.l.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@ $numero_rata = $contratto->pianificazioni->search(function ($item) use ($id_pian
$module_fattura = Modules::get('Fatture di vendita'); $module_fattura = Modules::get('Fatture di vendita');
$id_conto = setting('Conto predefinito fatture di vendita'); $id_conto = setting('Conto predefinito fatture di vendita');
$data = date("Y-m",strtotime($pianificazione->data_scadenza))."-".date("d",strtotime($contratto->data_accettazione)); $data = date('Y-m', strtotime($pianificazione->data_scadenza)).'-'.date('d', strtotime($contratto->data_accettazione));
echo ' echo '
<form action="" method="post"> <form action="" method="post">

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.n.c. * Copyright (C) DevCode s.r.l.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View File

@@ -2,7 +2,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
function variables($descrizione='', $inizio=null, $fine=null) function variables($descrizione = '', $inizio = null, $fine = null)
{ {
$mese = [ $mese = [
'01' => 'Gennaio', '01' => 'Gennaio',
@@ -19,19 +19,19 @@
'12' => 'Dicembre', '12' => 'Dicembre',
]; ];
$result['list'] = "<ul> $result['list'] = '<ul>
<li><code>{periodo}</code></li> <li><code>{periodo}</code></li>
<li><code>{data_inizio}</code></li> <li><code>{data_inizio}</code></li>
<li><code>{data_fine}</code></li> <li><code>{data_fine}</code></li>
<li><code>{mese_fatturazione}</code></li> <li><code>{mese_fatturazione}</code></li>
</ul>"; </ul>';
if( !empty($descrizione) ){ if (!empty($descrizione)) {
$result['descrizione'] = str_replace("{periodo}","durata dal ".Translator::dateToLocale($inizio)." al ".Translator::dateToLocale($fine),$descrizione); $result['descrizione'] = str_replace('{periodo}', 'durata dal '.Translator::dateToLocale($inizio).' al '.Translator::dateToLocale($fine), $descrizione);
$result['descrizione'] = str_replace("{data_inizio}",Translator::dateToLocale($inizio), $result['descrizione']); $result['descrizione'] = str_replace('{data_inizio}', Translator::dateToLocale($inizio), $result['descrizione']);
$result['descrizione'] = str_replace("{data_fine}",Translator::dateToLocale($fine), $result['descrizione']); $result['descrizione'] = str_replace('{data_fine}', Translator::dateToLocale($fine), $result['descrizione']);
$result['descrizione'] = str_replace("{mese_fatturazione}", $mese[date('m',strtotime($inizio))], $result['descrizione']); $result['descrizione'] = str_replace('{mese_fatturazione}', $mese[date('m', strtotime($inizio))], $result['descrizione']);
} }
return $result; return $result;
} }

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.n.c. * Copyright (C) DevCode s.r.l.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
<?php <?php
/* /*
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione * OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
* Copyright (C) DevCode s.n.c. * Copyright (C) DevCode s.r.l.
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@@ -23,8 +23,8 @@ include_once __DIR__.'/../../../core.php';
$pianificazioni = Pianificazione::doesntHave('fattura') $pianificazioni = Pianificazione::doesntHave('fattura')
->orderBy('data_scadenza', 'asc') ->orderBy('data_scadenza', 'asc')
->whereHas('contratto', function($q){ ->whereHas('contratto', function ($q) {
$q->whereHas('stato', function($q){ $q->whereHas('stato', function ($q) {
$q->where('is_fatturabile', 1); $q->where('is_fatturabile', 1);
}); });
}) })

View File

@@ -23,7 +23,6 @@ $operazione = filter('op');
switch ($operazione) { switch ($operazione) {
case 'edit_revision': case 'edit_revision':
$master_revision = post('master_revision'); $master_revision = post('master_revision');
$id_record = post('idrevisione'); $id_record = post('idrevisione');
//Tolgo il flag default_revision da tutte le revisioni e dal record_principale //Tolgo il flag default_revision da tutte le revisioni e dal record_principale
@@ -34,7 +33,6 @@ switch ($operazione) {
break; break;
case 'delete_revision': case 'delete_revision':
$idrevisione = post('idrevisione'); $idrevisione = post('idrevisione');
$dbo->query('DELETE FROM co_preventivi WHERE id='.prepare($idrevisione)); $dbo->query('DELETE FROM co_preventivi WHERE id='.prepare($idrevisione));

View File

@@ -57,7 +57,7 @@ if ($statistiche != null) {
<script src="'.$statistiche->fileurl('js/stats/widget.js').'"></script>'; <script src="'.$statistiche->fileurl('js/stats/widget.js').'"></script>';
} }
echo' echo '
<script> <script>
var local_url = "'.str_replace('edit.php', '', $structure->fileurl('edit.php')).'"; var local_url = "'.str_replace('edit.php', '', $structure->fileurl('edit.php')).'";

View File

@@ -104,7 +104,7 @@ if ($statistiche != null) {
<script src="'.$statistiche->fileurl('js/stats/table.js').'"></script>'; <script src="'.$statistiche->fileurl('js/stats/table.js').'"></script>';
} }
echo' echo '
<script src="'.$structure->fileurl('js/prezzo.js').'"></script> <script src="'.$structure->fileurl('js/prezzo.js').'"></script>

View File

@@ -109,7 +109,6 @@ class Clienti extends AppResource
public function createRecord($data) public function createRecord($data)
{ {
$ragione_sociale = $data['ragione_sociale']; $ragione_sociale = $data['ragione_sociale'];
$id_tipo = [1]; $id_tipo = [1];
@@ -133,7 +132,6 @@ class Clienti extends AppResource
return [ return [
'id' => $id_record, 'id' => $id_record,
]; ];
} }
public function updateRecord($data) public function updateRecord($data)
@@ -163,5 +161,4 @@ class Clienti extends AppResource
$record->cellulare = $data['cellulare']; $record->cellulare = $data['cellulare'];
$record->email = $data['email']; $record->email = $data['email'];
} }
} }

View File

@@ -216,14 +216,13 @@ class RigheInterventi extends AppResource
$record->descrizione = $data['descrizione']; $record->descrizione = $data['descrizione'];
$record->um = $data['um'] ?: null; $record->um = $data['um'] ?: null;
if(empty($data['id_iva'])){ if (empty($data['id_iva'])) {
$data['id_iva'] = settings('Iva predefinita'); $data['id_iva'] = settings('Iva predefinita');
} }
//$record->costo_unitario = $data['costo_unitario'] ?: 0; //$record->costo_unitario = $data['costo_unitario'] ?: 0;
$record->setPrezzoUnitario($data['prezzo_unitario'], $data['id_iva']); $record->setPrezzoUnitario($data['prezzo_unitario'], $data['id_iva']);
$record->setSconto($data['sconto_percentuale'] ?: $data['sconto_unitario'], $data['tipo_sconto']); $record->setSconto($data['sconto_percentuale'] ?: $data['sconto_unitario'], $data['tipo_sconto']);
try { try {
$record->qta = $data['qta']; $record->qta = $data['qta'];

View File

@@ -127,9 +127,9 @@ abstract class Article extends Accounting
if ($document instanceof \Modules\Fatture\Fattura) { if ($document instanceof \Modules\Fatture\Fattura) {
if ($document->isNota()) { if ($document->isNota()) {
if($this->getDirection()=='uscita'){ if ($this->getDirection() == 'uscita') {
$dir = 'entrata'; $dir = 'entrata';
} else{ } else {
$dir = 'uscita'; $dir = 'uscita';
} }
} }

View File

@@ -668,7 +668,7 @@ class Database extends Util\Singleton
*/ */
public function raw($value) public function raw($value)
{ {
return$this->getCapsule()->getConnection()->raw($value); return $this->getCapsule()->getConnection()->raw($value);
} }
/** /**

View File

@@ -98,7 +98,7 @@ class Permissions
} }
if (!$result && $die) { if (!$result && $die) {
die(tr('Accesso negato')); exit(tr('Accesso negato'));
} }
} }
} }

View File

@@ -39,12 +39,13 @@ trait RecordTrait
/** /**
* @param string $name * @param string $name
*/ */
public function customField($name) { public function customField($name)
{
$field = database()->table('zz_fields') $field = database()->table('zz_fields')
->leftJoin('zz_field_record', 'zz_fields.id', '=', 'zz_field_record.id_field') ->leftJoin('zz_field_record', 'zz_fields.id', '=', 'zz_field_record.id_field')
->where('zz_fields.name','=', $name) ->where('zz_fields.name', '=', $name)
->where('zz_fields.id_module','=', $this->getModule()->id) ->where('zz_fields.id_module', '=', $this->getModule()->id)
->where('zz_field_record.id_record','=', $this->id) ->where('zz_field_record.id_record', '=', $this->id)
->first(); ->first();
return $field->value; return $field->value;

View File

@@ -488,8 +488,6 @@ class Update
} }
} }
$results;
return $results; return $results;
} }
@@ -532,7 +530,7 @@ class Update
return 'modules/'.$module.'/update/'.$version; return 'modules/'.$module.'/update/'.$version;
} }
return $update['directory'].'/update/'.$version; return $update['directory'].'/update/'.$version;
} }
/** /**

View File

@@ -33,10 +33,9 @@ echo '<style>
} }
</style>'; </style>';
if (!empty($_SESSION['superselect']['id_articolo_barcode'])) {
if (!empty($_SESSION['superselect']['id_articolo_barcode']) ){
$articoli = Articolo::whereIn('id', $_SESSION['superselect']['id_articolo_barcode'])->get(); $articoli = Articolo::whereIn('id', $_SESSION['superselect']['id_articolo_barcode'])->get();
unset( $_SESSION['superselect']['id_articolo_barcode'] ); unset($_SESSION['superselect']['id_articolo_barcode']);
} else { } else {
$articoli = Articolo::where('id', '=', $id_record)->get(); $articoli = Articolo::where('id', '=', $id_record)->get();
} }
@@ -44,17 +43,16 @@ if (!empty($_SESSION['superselect']['id_articolo_barcode']) ){
$pages = count($articoli); $pages = count($articoli);
$page = 0; $page = 0;
foreach( $articoli as $articolo ){ foreach ($articoli as $articolo) {
echo ' echo '
<div class="barcode-cell"> <div class="barcode-cell">
<barcode code="'.$articolo->barcode.'" type="C39" height="2" size="0.65" class="barcode" /> <barcode code="'.$articolo->barcode.'" type="C39" height="2" size="0.65" class="barcode" />
<p><b>'.$articolo->barcode.'</b></p> <p><b>'.$articolo->barcode.'</b></p>
</div>'; </div>';
$page++; ++$page;
if ( $page < $pages ) { if ($page < $pages) {
echo '<pagebreak>'; echo '<pagebreak>';
} }
} }

View File

@@ -39,8 +39,8 @@ echo '
</thead> </thead>
<tbody>'; <tbody>';
// Mostra le righe delle attività // Mostra le righe delle attività
foreach($liv2_patrimoniale as $liv2_p){ foreach ($liv2_patrimoniale as $liv2_p) {
if($liv2_p['totale']>0){ if ($liv2_p['totale'] > 0) {
$totale_attivita += $liv2_p['totale']; $totale_attivita += $liv2_p['totale'];
echo ' echo '
<tr> <tr>
@@ -48,27 +48,26 @@ echo '
<td><b>'.$liv2_p['descrizione'].'</b></td> <td><b>'.$liv2_p['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat($liv2_p['totale']).'</b></td> <td class="text-right"><b>'.numberFormat($liv2_p['totale']).'</b></td>
</tr>'; </tr>';
foreach($liv3_patrimoniale as $liv3_p){ foreach ($liv3_patrimoniale as $liv3_p) {
// Visualizzo solo i conti di livello 3 relativi al conto di livello 2 // Visualizzo solo i conti di livello 3 relativi al conto di livello 2
if($liv2_p['id'] == $liv3_p['idpianodeiconti2']){ if ($liv2_p['id'] == $liv3_p['idpianodeiconti2']) {
echo ' echo '
<tr> <tr>
<td>'.$liv3_p['numero'].'</td> <td>'.$liv3_p['numero'].'</td>
<td>'.$liv3_p['descrizione'].'</td> <td>'.$liv3_p['descrizione'].'</td>
<td class="text-right">'.numberFormat($liv3_p['totale']).'</td> <td class="text-right">'.numberFormat($liv3_p['totale']).'</td>
</tr>'; </tr>';
} }
}
} if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
if($liv2_p['descrizione']=="Crediti clienti e crediti diversi"){
echo ' echo '
<tr> <tr>
<td></td> <td></td>
<td>Clienti</td> <td>Clienti</td>
<td class="text-right">'.numberFormat($crediti_clienti).'</td> <td class="text-right">'.numberFormat($crediti_clienti).'</td>
</tr>'; </tr>';
} elseif($liv2_p['descrizione']=="Debiti fornitori e debiti diversi") { } elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
echo ' echo '
<tr> <tr>
<td></td> <td></td>
@@ -76,14 +75,14 @@ echo '
<td class="text-right">'.numberFormat($debiti_fornitori).'</td> <td class="text-right">'.numberFormat($debiti_fornitori).'</td>
</tr>'; </tr>';
} }
} }
} }
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Totale Attività</b></h6></td> <td colspan="2"><h6><b>Totale Attività</b></h6></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_attivita)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_attivita)).'</b></h6></td>
</tr>'; </tr>';
if($utile_perdita>0){ if ($utile_perdita > 0) {
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Perdita</b></h6></td> <td colspan="2"><h6><b>Perdita</b></h6></td>
@@ -91,7 +90,7 @@ echo '
</tr> </tr>
<tr> <tr>
<td colspan="2"><h6><b>Totale a pareggio</b></h6></td> <td colspan="2"><h6><b>Totale a pareggio</b></h6></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_attivita)+abs($utile_perdita)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_attivita) + abs($utile_perdita)).'</b></h6></td>
</tr>'; </tr>';
} }
echo ' echo '
@@ -114,10 +113,10 @@ echo '
</tr> </tr>
</thead> </thead>
<tbody>'; <tbody>';
$i=0; $i = 0;
// Mostra le righe delle passività // Mostra le righe delle passività
foreach($liv2_patrimoniale as $liv2_p){ foreach ($liv2_patrimoniale as $liv2_p) {
if($liv2_p['totale']<0){ if ($liv2_p['totale'] < 0) {
$totale_passivita += $liv2_p['totale']; $totale_passivita += $liv2_p['totale'];
echo ' echo '
<tr> <tr>
@@ -125,9 +124,9 @@ echo '
<td><b>'.$liv2_p['descrizione'].'</b></td> <td><b>'.$liv2_p['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat(abs($liv2_p['totale'])).'</b></td> <td class="text-right"><b>'.numberFormat(abs($liv2_p['totale'])).'</b></td>
</tr>'; </tr>';
foreach($liv3_patrimoniale as $liv3_p){ foreach ($liv3_patrimoniale as $liv3_p) {
if($liv2_p['id'] == $liv3_p['idpianodeiconti2']){ if ($liv2_p['id'] == $liv3_p['idpianodeiconti2']) {
echo ' echo '
<tr> <tr>
<td>'.$liv3_p['numero'].'</td> <td>'.$liv3_p['numero'].'</td>
@@ -136,14 +135,14 @@ echo '
</tr>'; </tr>';
} }
} }
if($liv2_p['descrizione']=="Crediti clienti e crediti diversi"){ if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
echo ' echo '
<tr> <tr>
<td></td> <td></td>
<td>Clienti</td> <td>Clienti</td>
<td class="text-right">'.numberFormat(abs($crediti_clienti)).'</td> <td class="text-right">'.numberFormat(abs($crediti_clienti)).'</td>
</tr>'; </tr>';
} elseif($liv2_p['descrizione']=="Debiti fornitori e debiti diversi") { } elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
echo ' echo '
<tr> <tr>
<td></td> <td></td>
@@ -151,14 +150,14 @@ echo '
<td class="text-right">'.numberFormat(abs($debiti_fornitori)).'</td> <td class="text-right">'.numberFormat(abs($debiti_fornitori)).'</td>
</tr>'; </tr>';
} }
} }
} }
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Totale Passività</b></h6></td> <td colspan="2"><h6><b>Totale Passività</b></h6></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_passivita)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_passivita)).'</b></h6></td>
</tr>'; </tr>';
if($utile_perdita<0){ if ($utile_perdita < 0) {
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Utile</b></h6></td> <td colspan="2"><h6><b>Utile</b></h6></td>
@@ -166,7 +165,7 @@ echo '
</tr> </tr>
<tr> <tr>
<td colspan="2"><h6><b>Totale a pareggio</b></h6></td> <td colspan="2"><h6><b>Totale a pareggio</b></h6></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_passivita)+abs($utile_perdita)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_passivita) + abs($utile_perdita)).'</b></h6></td>
</tr>'; </tr>';
} }
echo ' echo '
@@ -199,8 +198,8 @@ echo '
</thead> </thead>
<tbody>'; <tbody>';
// Mostra le righe dei costi // Mostra le righe dei costi
foreach($liv2_economico as $liv2_e){ foreach ($liv2_economico as $liv2_e) {
if($liv2_e['totale']>0){ if ($liv2_e['totale'] > 0) {
$totale_costi += $liv2_e['totale']; $totale_costi += $liv2_e['totale'];
echo ' echo '
<tr> <tr>
@@ -208,25 +207,25 @@ echo '
<td><b>'.$liv2_e['descrizione'].'</b></td> <td><b>'.$liv2_e['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat($liv2_e['totale']).'</b></td> <td class="text-right"><b>'.numberFormat($liv2_e['totale']).'</b></td>
</tr>'; </tr>';
foreach($liv3_economico as $liv3_e){ foreach ($liv3_economico as $liv3_e) {
if($liv2_e['id'] == $liv3_e['idpianodeiconti2']){ if ($liv2_e['id'] == $liv3_e['idpianodeiconti2']) {
echo ' echo '
<tr> <tr>
<td>'.$liv3_e['numero'].'</td> <td>'.$liv3_e['numero'].'</td>
<td>'.$liv3_e['descrizione'].'</td> <td>'.$liv3_e['descrizione'].'</td>
<td class="text-right">'.numberFormat($liv3_e['totale']).'</td> <td class="text-right">'.numberFormat($liv3_e['totale']).'</td>
</tr>'; </tr>';
} }
} }
} }
} }
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Totale costi</b></h6></td> <td colspan="2"><h6><b>Totale costi</b></h6></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_costi)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_costi)).'</b></h6></td>
</tr>'; </tr>';
if($utile_perdita<0){ if ($utile_perdita < 0) {
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Utile</b></h6></td> <td colspan="2"><h6><b>Utile</b></h6></td>
@@ -234,7 +233,7 @@ echo '
</tr> </tr>
<tr> <tr>
<td colspan="2"><h6><b>Totale a pareggio</b></h6></td> <td colspan="2"><h6><b>Totale a pareggio</b></h6></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_costi)+abs($utile_perdita)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_costi) + abs($utile_perdita)).'</b></h6></td>
</tr>'; </tr>';
} }
echo ' echo '
@@ -259,8 +258,8 @@ echo '
</thead> </thead>
<tbody>'; <tbody>';
// Mostra le righe dei ricavi // Mostra le righe dei ricavi
foreach($liv2_economico as $liv2_e){ foreach ($liv2_economico as $liv2_e) {
if($liv2_e['totale']<0){ if ($liv2_e['totale'] < 0) {
$totale_ricavi += $liv2_e['totale']; $totale_ricavi += $liv2_e['totale'];
echo ' echo '
<tr> <tr>
@@ -268,25 +267,25 @@ echo '
<td><b>'.$liv2_e['descrizione'].'</b></td> <td><b>'.$liv2_e['descrizione'].'</b></td>
<td class="text-right"><b>'.numberFormat(abs($liv2_e['totale'])).'</b></td> <td class="text-right"><b>'.numberFormat(abs($liv2_e['totale'])).'</b></td>
</tr>'; </tr>';
foreach($liv3_economico as $liv3_e){ foreach ($liv3_economico as $liv3_e) {
if($liv2_e['id'] == $liv3_e['idpianodeiconti2']){ if ($liv2_e['id'] == $liv3_e['idpianodeiconti2']) {
echo ' echo '
<tr> <tr>
<td>'.$liv3_e['numero'].'</td> <td>'.$liv3_e['numero'].'</td>
<td>'.$liv3_e['descrizione'].'</td> <td>'.$liv3_e['descrizione'].'</td>
<td class="text-right">'.numberFormat(abs($liv3_e['totale'])).'</td> <td class="text-right">'.numberFormat(abs($liv3_e['totale'])).'</td>
</tr>'; </tr>';
} }
} }
} }
} }
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Totale ricavi</b></h6></td> <td colspan="2"><h6><b>Totale ricavi</b></h6></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_ricavi)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_ricavi)).'</b></h6></td>
</tr>'; </tr>';
if($utile_perdita>0){ if ($utile_perdita > 0) {
echo ' echo '
<tr> <tr>
<td colspan="2"><h6><b>Perdita</b></h6></td> <td colspan="2"><h6><b>Perdita</b></h6></td>
@@ -294,7 +293,7 @@ echo '
</tr> </tr>
<tr> <tr>
<td colspan="2"><h6><b>Totale a pareggio</b></td> <td colspan="2"><h6><b>Totale a pareggio</b></td>
<td class="text-right"><h6><b>'.numberFormat(abs($totale_ricavi)+abs($utile_perdita)).'</b></h6></td> <td class="text-right"><h6><b>'.numberFormat(abs($totale_ricavi) + abs($utile_perdita)).'</b></h6></td>
</tr>'; </tr>';
} }
echo ' echo '
@@ -302,4 +301,4 @@ echo '
</table> </table>
</div> </div>
</div>'; </div>';

View File

@@ -17,10 +17,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
echo ' echo '
<h5 style="border-bottom:1px solid #777; display:block;"> <h5 style="border-bottom:1px solid #777; display:block;">
<div class="col-xs-5">STAMPA BILANCIO <small>'.dateFormat($date_start).' - '.dateFormat($date_end).'</small></div> <div class="col-xs-5">STAMPA BILANCIO <small>'.dateFormat($date_start).' - '.dateFormat($date_end).'</small></div>
<div class="col-xs-7 text-right">'.$azienda['ragione_sociale'].'</div> <div class="col-xs-7 text-right">'.$azienda['ragione_sociale'].'</div>
</h5><br> </h5><br>
<h4 class="text-center">ESERCIZIO '.$esercizio.'</h4><br>'; <h4 class="text-center">ESERCIZIO '.$esercizio.'</h4><br>';

View File

@@ -79,4 +79,4 @@ GROUP BY
ORDER BY ORDER BY
co_pianodeiconti2.numero'); co_pianodeiconti2.numero');
$crediti_clienti = sum(array_column($crediti_clienti, 'totale')); $crediti_clienti = sum(array_column($crediti_clienti, 'totale'));

View File

@@ -1,9 +1,7 @@
<?php <?php
return [ return [
'format' => 'A4', 'format' => 'A4',
'orientation' => 'P', 'orientation' => 'P',
'font-size' => '9px', 'font-size' => '9px',
]; ];

View File

@@ -259,7 +259,7 @@ if ($options['pricing']) {
</th> </th>
</tr>'; </tr>';
} }
echo' echo '
</table>'; </table>';
// CONDIZIONI GENERALI DI FORNITURA // CONDIZIONI GENERALI DI FORNITURA

View File

@@ -74,7 +74,7 @@ foreach ($righe as $riga) {
echo '-'; echo '-';
} }
echo' echo '
</td> </td>
<td> <td>

View File

@@ -93,5 +93,5 @@ $custom = [
// - utente qualsiasi con permessi almeno in lettura sul modulo // - utente qualsiasi con permessi almeno in lettura sul modulo
// - admin // - admin
if ((Auth::user()['gruppo'] == 'Clienti' && $id_cliente != Auth::user()['idanagrafica'] && !Auth::admin()) || Modules::getPermission($documento->module) == '-') { if ((Auth::user()['gruppo'] == 'Clienti' && $id_cliente != Auth::user()['idanagrafica'] && !Auth::admin()) || Modules::getPermission($documento->module) == '-') {
die(tr('Non hai i permessi per questa stampa!')); exit(tr('Non hai i permessi per questa stampa!'));
} }

View File

@@ -270,7 +270,7 @@ if (!empty($record['ritenutaacconto']) || !empty($documento->totale_ritenuta_con
echo ' echo '
</th>'; </th>';
echo' echo '
</tr> </tr>
<tr> <tr>

View File

@@ -118,7 +118,7 @@ $custom = [
// - utente qualsiasi con permessi almeno in lettura sul modulo // - utente qualsiasi con permessi almeno in lettura sul modulo
// - admin // - admin
if ((Auth::user()['gruppo'] == 'Clienti' && $id_cliente != Auth::user()['idanagrafica'] && !Auth::admin()) || Modules::getPermission($module_name) == '-') { if ((Auth::user()['gruppo'] == 'Clienti' && $id_cliente != Auth::user()['idanagrafica'] && !Auth::admin()) || Modules::getPermission($module_name) == '-') {
die(tr('Non hai i permessi per questa stampa!')); exit(tr('Non hai i permessi per questa stampa!'));
} }
if ($fattura_accompagnatoria) { if ($fattura_accompagnatoria) {

View File

@@ -94,7 +94,7 @@ echo '
<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>
@@ -352,7 +352,7 @@ if (empty($documento['firma_file'])) {
echo ' <i>'.$documento['firma_nome'].'</i>'; echo ' <i>'.$documento['firma_nome'].'</i>';
} }
echo ' echo '
</td> </td>
</tr>'; </tr>';

Some files were not shown because too many files have changed in this diff Show More