1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-17 20:10:50 +01:00

Estrazione ZIP per import FE

This commit is contained in:
Thomas Zilio 2019-11-15 15:11:20 +01:00
parent 5bbada6ebf
commit 618e195c34
17 changed files with 69 additions and 78 deletions

View File

@ -44,6 +44,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- Supporto alla selezione della lingua durante la configurazione - Supporto alla selezione della lingua durante la configurazione
- Gestione dei permessi per gruppi all'interno del sistema di **Gestione documentale** - Gestione dei permessi per gruppi all'interno del sistema di **Gestione documentale**
- Supporto agli sconti combinati nel modulo **Listini** - Supporto agli sconti combinati nel modulo **Listini**
- Supporto al caricamento di archivi ZIP per le *Fatture Elettroniche* di acquisto da importare (solo estrazione)
### Modificato (Changed) ### Modificato (Changed)

View File

@ -14,7 +14,7 @@ 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;
// 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();

View File

@ -266,7 +266,6 @@ switch (post('op')) {
SELECT `in_interventi`.`codice` AS `codice`, `in_interventi`.`id` AS `id`, 0 AS `numero`, 0 AS `numero_esterno`, `in_interventi`.`data_richiesta` AS `data`, 0 AS `tipo_documento`, 0 AS `dir` FROM `in_interventi` WHERE `in_interventi`.`id_contratto` = '.prepare($id_record).' ORDER BY `data` '); SELECT `in_interventi`.`codice` AS `codice`, `in_interventi`.`id` AS `id`, 0 AS `numero`, 0 AS `numero_esterno`, `in_interventi`.`data_richiesta` AS `data`, 0 AS `tipo_documento`, 0 AS `dir` FROM `in_interventi` WHERE `in_interventi`.`id_contratto` = '.prepare($id_record).' ORDER BY `data` ');
if (empty($elementi)) { if (empty($elementi)) {
try { try {
$contratto->delete(); $contratto->delete();
@ -278,7 +277,6 @@ switch (post('op')) {
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException $e) {
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
} }
} }
break; break;

View File

@ -2,13 +2,11 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
$rs_documento = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontratto='.prepare($id_record)); $rs_documento = $dbo->fetchArray('SELECT * FROM co_righe_contratti WHERE idcontratto='.prepare($id_record));
$disabled = $record['is_fatturabile'] && !empty($rs_documento); $disabled = $record['is_fatturabile'] && !empty($rs_documento);
$stati_fatturabili= $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_abilitati FROM `co_staticontratti` WHERE `is_fatturabile` = 1')['stati_abilitati'];
$stati_fatturabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_abilitati FROM `co_staticontratti` WHERE `is_fatturabile` = 1')['stati_abilitati'];
/* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */ /* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */
echo ' echo '
@ -16,22 +14,19 @@ echo '
<i class="fa fa-magic"></i> '.tr('Crea fattura').' <i class="fa fa-magic"></i> '.tr('Crea fattura').'
</button>'; </button>';
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_pianificabile'] && $record['rinnovabile']; $rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_pianificabile'] && $record['rinnovabile'];
$stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `is_pianificabile` = 1')['stati_pianificabili']; $stati_pianificabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`descrizione` SEPARATOR ", ") AS stati_pianificabili FROM `co_staticontratti` WHERE `is_pianificabile` = 1')['stati_pianificabili'];
echo ' echo '
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled tip').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="'.tr('Rinnova').'" data-class="btn btn-lg btn-warning" '.($rinnova ? '' : 'disabled').' title="'.( ($rinnova) ? '' : tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno stato di questi stati: '.$stati_pianificabili)).'"> <button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled tip').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="'.tr('Rinnova').'" data-class="btn btn-lg btn-warning" '.($rinnova ? '' : 'disabled').' title="'.(($rinnova) ? '' : tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno stato di questi stati: '.$stati_pianificabili)).'">
<i class="fa fa-refresh"></i> '.tr('Rinnova').'... <i class="fa fa-refresh"></i> '.tr('Rinnova').'...
</button>'; </button>';
// Duplica contratto // Duplica contratto
echo' echo'
<button type="button" class="btn btn-primary" onclick="if( confirm(\''.tr('Duplicare questo contratto?').'\') ){ $(\'#copia-contratto\').submit(); }"> <i class="fa fa-copy"></i> '.tr('Duplica contratto').'</button>'; <button type="button" class="btn btn-primary" onclick="if( confirm(\''.tr('Duplicare questo contratto?').'\') ){ $(\'#copia-contratto\').submit(); }"> <i class="fa fa-copy"></i> '.tr('Duplica contratto').'</button>';
echo ' echo '
<form action="" method="post" id="copia-contratto"> <form action="" method="post" id="copia-contratto">
<input type="hidden" name="backto" value="record-edit"> <input type="hidden" name="backto" value="record-edit">

View File

@ -105,7 +105,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Ore rimanenti rinnovo'); ?>", "name": "ore_preavviso_rinnovo", "decimals": "0", "value": "$ore_preavviso_rinnovo$", "icon-after": "ore", "disabled": <?php echo $record['rinnovabile'] ? 0 : 1; ?>, "help": "<?php echo tr("Ore residue nel contratto prima di visualizzare una avviso per un eventuale rinnovo anticipato."); ?>" ]} {[ "type": "number", "label": "<?php echo tr('Ore rimanenti rinnovo'); ?>", "name": "ore_preavviso_rinnovo", "decimals": "0", "value": "$ore_preavviso_rinnovo$", "icon-after": "ore", "disabled": <?php echo $record['rinnovabile'] ? 0 : 1; ?>, "help": "<?php echo tr('Ore residue nel contratto prima di visualizzare una avviso per un eventuale rinnovo anticipato.'); ?>" ]}
</div> </div>
</div> </div>
@ -391,7 +391,6 @@ $elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`,
UNION UNION
SELECT `in_interventi`.`codice` AS `codice`, `in_interventi`.`id` AS `id`, 0 AS `numero`, 0 AS `numero_esterno`, `in_interventi`.`data_richiesta` AS `data`, 0 AS `tipo_documento`, 0 AS `dir` FROM `in_interventi` WHERE `in_interventi`.`id_contratto` = '.prepare($id_record).' ORDER BY `data` '); SELECT `in_interventi`.`codice` AS `codice`, `in_interventi`.`id` AS `id`, 0 AS `numero`, 0 AS `numero_esterno`, `in_interventi`.`data_richiesta` AS `data`, 0 AS `tipo_documento`, 0 AS `dir` FROM `in_interventi` WHERE `in_interventi`.`id_contratto` = '.prepare($id_record).' ORDER BY `data` ');
if (!empty($elementi)) { if (!empty($elementi)) {
echo ' echo '
<div class="box box-warning collapsable collapsed-box"> <div class="box box-warning collapsable collapsed-box">
@ -408,8 +407,7 @@ if (!empty($elementi)) {
// Elenco attività o contratti collegati // Elenco attività o contratti collegati
foreach ($elementi as $riga) { foreach ($elementi as $riga) {
if (!empty($riga['dir'])){ if (!empty($riga['dir'])) {
$descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [ $descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [
'_DOC_' => $riga['tipo_documento'], '_DOC_' => $riga['tipo_documento'],
'_NUM_' => !empty($riga['numero_esterno']) ? $riga['numero_esterno'] : $riga['numero'], '_NUM_' => !empty($riga['numero_esterno']) ? $riga['numero_esterno'] : $riga['numero'],
@ -421,11 +419,9 @@ if (!empty($elementi)) {
echo ' echo '
<li>'.Modules::link($modulo, $id, $descrizione).'</li>'; <li>'.Modules::link($modulo, $id, $descrizione).'</li>';
} else {
}else{
$descrizione = tr('Intervento num. _NUM_ del _DATE_', [ $descrizione = tr('Intervento num. _NUM_ del _DATE_', [
'_NUM_' => $riga['codice'], '_NUM_' => $riga['codice'],
'_DATE_' => Translator::dateToLocale($riga['data']), '_DATE_' => Translator::dateToLocale($riga['data']),
]); ]);
@ -434,9 +430,7 @@ if (!empty($elementi)) {
echo ' echo '
<li>'.Modules::link($modulo, $id, $descrizione).'</li>'; <li>'.Modules::link($modulo, $id, $descrizione).'</li>';
} }
} }
echo ' echo '
@ -450,16 +444,13 @@ if (!empty($elementi)) {
<div class="alert alert-error"> <div class="alert alert-error">
'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'. '.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
</div>'; </div>';
} else {
}else{ ?>
?>
<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> <?php echo tr('Elimina'); ?> <i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
</a> </a>
<?php <?php
}
}
?> ?>

View File

@ -54,7 +54,7 @@ switch (post('op')) {
if ($dir == 'entrata') { if ($dir == 'entrata') {
$fattura->data_registrazione = post('data'); $fattura->data_registrazione = post('data');
}else{ } else {
$fattura->data_registrazione = post('data_registrazione'); $fattura->data_registrazione = post('data_registrazione');
} }

View File

@ -146,8 +146,8 @@ if (empty($record['is_fiscale'])) {
?> ?>
<?php if ($dir == 'entrata') { <?php if ($dir == 'entrata') {
$readonly = '"readonly":1,'; $readonly = '"readonly":1,';
} }
?> ?>
<div class="col-md-2"> <div class="col-md-2">

View File

@ -2,8 +2,8 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Modules\Fatture\Fattura;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Fatture\Fattura;
$module = Modules::get('Prima nota'); $module = Modules::get('Prima nota');
@ -92,9 +92,9 @@ foreach ($id_documenti as $id_documento) {
continue; continue;
} }
if($fattura->idanagrafica!=$idanagrafica_mov && $idanagrafica_mov!=''){ if ($fattura->idanagrafica != $idanagrafica_mov && $idanagrafica_mov != '') {
$idanagrafica_mov = 0; $idanagrafica_mov = 0;
}else{ } else {
$idanagrafica_mov = $fattura->idanagrafica; $idanagrafica_mov = $fattura->idanagrafica;
} }
@ -176,11 +176,11 @@ $righe = array_merge($righe, $riga_documento);
$numero_scadenze = count($id_scadenze); $numero_scadenze = count($id_scadenze);
$numero_documenti = count($id_documenti); $numero_documenti = count($id_documenti);
if ($numero_documenti + $numero_scadenze > 1) { if ($numero_documenti + $numero_scadenze > 1) {
if($idanagrafica_mov!=0){ if ($idanagrafica_mov != 0) {
$an = Anagrafica::find($idanagrafica_mov); $an = Anagrafica::find($idanagrafica_mov);
$descrizione = 'Pag. fatture '.$an->ragione_sociale.' num. '.implode(', ', $numeri); $descrizione = 'Pag. fatture '.$an->ragione_sociale.' num. '.implode(', ', $numeri);
}else{ } else {
$descrizione = 'Pag. fatture num. '.implode(', ', $numeri); $descrizione = 'Pag. fatture num. '.implode(', ', $numeri);
} }
} elseif ($numero_documenti == 1) { } elseif ($numero_documenti == 1) {

View File

@ -57,8 +57,6 @@ if (!empty($contratti)) {
</div>'; </div>';
} }
if (!empty($record['can_delete'])) { if (!empty($record['can_delete'])) {
echo ' echo '
<a class="btn btn-danger ask" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">

View File

@ -1,7 +1,6 @@
<?php <?php
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if ($record['can_delete']) { if ($record['can_delete']) {
$attr = ''; $attr = '';
} else { } else {
@ -58,7 +57,6 @@ if (!empty($preventivi)) {
</div>'; </div>';
} }
if (!empty($record['can_delete'])) { if (!empty($record['can_delete'])) {
echo ' echo '
<a class="btn btn-danger ask" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">

View File

@ -66,10 +66,7 @@ switch (post('op')) {
SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).' SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).'
ORDER BY `idtipointervento`'); ORDER BY `idtipointervento`');
if (empty($elementi)) { if (empty($elementi)) {
$query = 'DELETE FROM in_tipiintervento WHERE idtipointervento='.prepare($id_record); $query = 'DELETE FROM in_tipiintervento WHERE idtipointervento='.prepare($id_record);
$dbo->query($query); $dbo->query($query);
@ -79,9 +76,9 @@ switch (post('op')) {
flash()->info(tr('Tipo di intervento eliminato!')); flash()->info(tr('Tipo di intervento eliminato!'));
break; break;
} }
// no break
case 'import': case 'import':
$values = [ $values = [
'costo_ore' => $record['costo_orario'], 'costo_ore' => $record['costo_orario'],

View File

@ -85,7 +85,6 @@ UNION
SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).' SELECT `co_contratti_tipiintervento`.`idtipointervento` FROM `co_contratti_tipiintervento` WHERE `co_contratti_tipiintervento`.`idtipointervento` = '.prepare($id_record).'
ORDER BY `idtipointervento`'); ORDER BY `idtipointervento`');
if (!empty($elementi)) { if (!empty($elementi)) {
echo ' echo '
<div class="alert alert-danger"> <div class="alert alert-danger">

View File

@ -84,8 +84,8 @@ if (!empty($options) && $options != 'custom' && $options != 'menu') {
echo ' echo '
<div class="nav-tabs-custom"> <div class="nav-tabs-custom">
<ul class="nav nav-tabs nav-justified"> <ul class="nav nav-tabs nav-justified">
<li class="active"><a data-toggle="tab" href="#fields">'.tr('Campi').' <span class="badge">'.( $dbo->fetchNum('SELECT * FROM zz_views WHERE id_module='.prepare($record['id']).' ORDER BY `order` ASC')).'</a></li> <li class="active"><a data-toggle="tab" href="#fields">'.tr('Campi').' <span class="badge">'.($dbo->fetchNum('SELECT * FROM zz_views WHERE id_module='.prepare($record['id']).' ORDER BY `order` ASC')).'</a></li>
<li><a data-toggle="tab" href="#filters">'.tr('Filtri').' <span class="badge">'.( $dbo->fetchNum('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC')).'</span></a></li> <li><a data-toggle="tab" href="#filters">'.tr('Filtri').' <span class="badge">'.($dbo->fetchNum('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC')).'</span></a></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">

View File

@ -10,13 +10,11 @@ echo '
$num = 0; $num = 0;
$additionals = $dbo->fetchArray('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC'); $additionals = $dbo->fetchArray('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC');
if (!empty($additionals)){ if (!empty($additionals)) {
foreach ($additionals as $num => $additional) {
$editable = !($additional['default'] && $enable_readonly);
echo '
foreach ($additionals as $num => $additional) {
$editable = !($additional['default'] && $enable_readonly);
echo '
<div class="box box-'.($additional['enabled'] ? 'success' : 'danger').'"> <div class="box box-'.($additional['enabled'] ? 'success' : 'danger').'">
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title"> <h3 class="box-title">
@ -25,28 +23,28 @@ foreach ($additionals as $num => $additional) {
]).'</a> ]).'</a>
</h3>'; </h3>';
if ($editable) { if ($editable) {
echo ' echo '
<a class="btn btn-danger ask pull-right" data-backto="record-edit" data-op="delete_filter" data-id="'.$additional['id'].'"> <a class="btn btn-danger ask pull-right" data-backto="record-edit" data-op="delete_filter" data-id="'.$additional['id'].'">
<i class="fa fa-trash"></i> '.tr('Elimina').' <i class="fa fa-trash"></i> '.tr('Elimina').'
</a>'; </a>';
} }
echo ' echo '
<a class="btn btn-warning ask pull-right" data-backto="record-edit" data-msg="'.($additional['enabled'] ? tr('Disabilitare questo elemento?') : tr('Abilitare questo elemento?')).'" data-op="change" data-id="'.$additional['id'].'" data-class="btn btn-lg btn-warning" data-button="'.($additional['enabled'] ? tr('Disabilita') : tr('Abilita')).'"> <a class="btn btn-warning ask pull-right" data-backto="record-edit" data-msg="'.($additional['enabled'] ? tr('Disabilitare questo elemento?') : tr('Abilitare questo elemento?')).'" data-op="change" data-id="'.$additional['id'].'" data-class="btn btn-lg btn-warning" data-button="'.($additional['enabled'] ? tr('Disabilita') : tr('Abilita')).'">
<i class="fa fa-eye-slash"></i> '.($additional['enabled'] ? tr('Disabilita') : tr('Abilita')).' <i class="fa fa-eye-slash"></i> '.($additional['enabled'] ? tr('Disabilita') : tr('Abilita')).'
</a>'; </a>';
echo ' echo '
</div> </div>
<div id="additional-'.$additional['id'].'" class="box-body collapse"> <div id="additional-'.$additional['id'].'" class="box-body collapse">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "textarea", "label": "'.tr('Query').'", "name": "query['.$num.']", "value": "'.prepareToField($additional['clause']).'"'; {[ "type": "textarea", "label": "'.tr('Query').'", "name": "query['.$num.']", "value": "'.prepareToField($additional['clause']).'"';
if (!$editable) { if (!$editable) {
echo ', "readonly": '.intval(!$editable).''; echo ', "readonly": '.intval(!$editable).'';
} }
echo ' ]} echo ' ]}
</div> </div>
</div> </div>
@ -68,15 +66,13 @@ foreach ($additionals as $num => $additional) {
</div> </div>
</div>'; </div>';
} }
} else {
}else{
echo '<br> echo '<br>
<div class="alert alert-info"> <div class="alert alert-info">
<i class="fa fa-info-circle"></i> <i class="fa fa-info-circle"></i>
<b>'.tr('Informazione:').'</b> '.tr('Nessun filtro per questo modulo').'. <b>'.tr('Informazione:').'</b> '.tr('Nessun filtro per questo modulo').'.
</div>'; </div>';
} }
echo ' echo '

View File

@ -15,8 +15,24 @@ switch (filter('op')) {
break; break;
case 'save': case 'save':
$content = file_get_contents($_FILES['blob']['tmp_name']); $temp_name = $_FILES['blob']['tmp_name'];
$file = FatturaElettronica::store($_FILES['blob']['name'], $content); $name = $_FILES['blob']['name'];
if (ends_with($name, '.zip')) {
$directory = FatturaElettronica::getImportDirectory();
Util\Zip::extract($temp_name, $directory);
// Redirect forzato per l'importazione
echo json_encode([
'id' => 1,
]);
exit();
} else {
$content = file_get_contents($temp_name);
$file = FatturaElettronica::store($_FILES['blob']['name'], $content);
}
// no break // no break
case 'prepare': case 'prepare':
@ -106,10 +122,10 @@ switch (filter('op')) {
$fattura_pa->delete(); $fattura_pa->delete();
//Aggiorno la tipologia di anagrafica fornitore //Aggiorno la tipologia di anagrafica fornitore
$anagrafica = $dbo->fetchOne("SELECT idanagrafica FROM co_documenti WHERE co_documenti.id=".prepare($id_fattura)); $anagrafica = $dbo->fetchOne('SELECT idanagrafica FROM co_documenti WHERE co_documenti.id='.prepare($id_fattura));
$rs_t = $dbo->fetchOne("SELECT * FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica=(SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche WHERE an_tipianagrafiche.descrizione='Fornitore') AND idanagrafica=".prepare($anagrafica['idanagrafica'])); $rs_t = $dbo->fetchOne("SELECT * FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica=(SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche WHERE an_tipianagrafiche.descrizione='Fornitore') AND idanagrafica=".prepare($anagrafica['idanagrafica']));
if( !$rs_t ){ if (!$rs_t) {
$dbo->query("INSERT INTO an_tipianagrafiche_anagrafiche (idtipoanagrafica, idanagrafica) VALUES ((SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche WHERE an_tipianagrafiche.descrizione='Fornitore'), ".prepare($anagrafica['idanagrafica'])); $dbo->query("INSERT INTO an_tipianagrafiche_anagrafiche (idtipoanagrafica, idanagrafica) VALUES ((SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche WHERE an_tipianagrafiche.descrizione='Fornitore'), ".prepare($anagrafica['idanagrafica']));
} }

View File

@ -20,7 +20,10 @@ if (isset($id_record)) {
$error = true; $error = true;
} }
if(empty($record)){ // Rimozione .p7m dal nome del file (causa eventuale estrazione da ZIP)
$record['name'] = str_replace('.p7m', '', $record['name']);
if (empty($record)) {
flash()->warning(tr('Nessuna fattura da importare!')); flash()->warning(tr('Nessuna fattura da importare!'));
redirect(ROOTDIR.'/controller.php?id_module='.$id_module); redirect(ROOTDIR.'/controller.php?id_module='.$id_module);

View File

@ -7,11 +7,10 @@ use Plugins\ReceiptFE\Interaction;
echo ' echo '
<p>'.tr('Le ricevute delle Fatture Elettroniche permettono di individuare se una determinata fattura tramessa è stata accettata dal Sistema Di Interscambio').'.</p>'; <p>'.tr('Le ricevute delle Fatture Elettroniche permettono di individuare se una determinata fattura tramessa è stata accettata dal Sistema Di Interscambio').'.</p>';
if (Interaction::isEnabled()) { if (Interaction::isEnabled()) {
echo ' echo '
<p>'.tr('Tramite il pulsante _BTN_ è possibile procedere al recupero delle ricevute, aggiornando automaticamente lo stato delle relative fatture e allegandole ad esse', [ <p>'.tr('Tramite il pulsante _BTN_ è possibile procedere al recupero delle ricevute, aggiornando automaticamente lo stato delle relative fatture e allegandole ad esse', [
'_BTN_' => '<b>'.tr('Ricerca ricevute').'</b>', '_BTN_' => '<b>'.tr('Ricerca ricevute').'</b>',
]).'.</p>'; ]).'.</p>';
} }
echo ' echo '
<div class="box box-success"> <div class="box box-success">