diff --git a/assets/src/js/functions/input.js b/assets/src/js/functions/input.js
index f63f0c743..e54444529 100644
--- a/assets/src/js/functions/input.js
+++ b/assets/src/js/functions/input.js
@@ -103,7 +103,7 @@ Input.prototype.init = function () {
}
// Inizializzazione per textarea
- else if (this.element.hasClass('autosize') || htmlElement.hasAttribute('maxlength')) {
+ else if (this.element.hasClass('autosize') || this.element.attr('maxlength')) {
if (this.element.hasClass('autosize'))
initCompleted = initTextareaInput(htmlElement);
diff --git a/modules/articoli/bulk.php b/modules/articoli/bulk.php
index 3a3c0164e..a39f620d2 100644
--- a/modules/articoli/bulk.php
+++ b/modules/articoli/bulk.php
@@ -24,8 +24,8 @@ use Modules\Articoli\Articolo;
use Modules\Preventivi\Components\Articolo as ArticoloPreventivo;
use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione;
-use Prints;
use Plugins\DettagliArticolo\DettaglioPrezzo;
+use Prints;
switch (post('op')) {
case 'change-acquisto':
@@ -37,7 +37,7 @@ switch (post('op')) {
$articolo->prezzo_acquisto = $new_prezzo_acquisto;
$articolo->save();
- if(!empty($articolo->id_fornitore)){
+ if (!empty($articolo->id_fornitore)) {
$prezzo_predefinito = DettaglioPrezzo::dettaglioPredefinito($articolo->id, $articolo->id_fornitore, 'uscita')->first();
$prezzo_predefinito->setPrezzoUnitario($new_prezzo_acquisto);
$prezzo_predefinito->save();
@@ -47,7 +47,7 @@ switch (post('op')) {
flash()->info(tr('Prezzi di acquisto aggiornati!'));
break;
-
+
case 'change-vendita':
foreach ($id_records as $id) {
$articolo = Articolo::find($id);
@@ -62,7 +62,6 @@ switch (post('op')) {
break;
-
case 'delete-bulk':
foreach ($id_records as $id) {
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`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 `idarticolo` = '.prepare($id).')
diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php
index d54c3823b..694b8ecdd 100755
--- a/modules/ddt/edit.php
+++ b/modules/ddt/edit.php
@@ -192,7 +192,7 @@ if ($module['name'] == 'Ddt di vendita') {
'id' => $record['idspedizione'],
])['esterno'];
?>
- {[ "type": "select", "label": "", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": , "required": , "icon-after": "add||tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|" ]}
+ {[ "type": "select", "label": "", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": , "required": , "icon-after": "add||tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|" ]}
diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php
index 5428139e9..40702f382 100755
--- a/modules/fatture/actions.php
+++ b/modules/fatture/actions.php
@@ -718,7 +718,7 @@ switch (post('op')) {
$copia = $riga->copiaIn($fattura, $qta);
- $copia->id_conto = ($documento->direzione=='entrata' ? ($articolo->idconto_vendita ?: $id_conto) : ($articolo->idconto_acquisto ?: $id_conto));
+ $copia->id_conto = ($documento->direzione == 'entrata' ? ($articolo->idconto_vendita ?: $id_conto) : ($articolo->idconto_acquisto ?: $id_conto));
$copia->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto;
$copia->id_ritenuta_acconto = $id_ritenuta_acconto;
$copia->id_rivalsa_inps = $id_rivalsa_inps;
diff --git a/modules/fatture/src/Components/RelationTrait.php b/modules/fatture/src/Components/RelationTrait.php
index 831450773..c4545aa5c 100755
--- a/modules/fatture/src/Components/RelationTrait.php
+++ b/modules/fatture/src/Components/RelationTrait.php
@@ -202,7 +202,9 @@ trait RelationTrait
list($qta, $diff) = $this->parseQta($value);
parent::setQtaAttribute($value);
- if ($this->fattura->isNota() && $this->hasOriginalComponent()) {
+ // Individuazione fattura corrente (fix in caso di creazione diretta)
+ $fattura = $this->fattura;
+ if (isset($fattura) && $fattura->isNota() && $this->hasOriginalComponent()) {
$source = $this->getOriginalComponent();
// Aggiornamento della quantità evasa di origine
diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php
index 4832b877f..332df547a 100755
--- a/modules/fatture/src/Fattura.php
+++ b/modules/fatture/src/Fattura.php
@@ -499,7 +499,7 @@ class Fattura extends Document
return $fe->toXML();
}
- $file = $this->uploads()->where('name', 'Fattura Elettronica')->first();
+ $file = $this->uploads()->where('name', '=', 'Fattura Elettronica')->first();
return $file->getContent();
}
@@ -535,6 +535,18 @@ class Fattura extends Document
->first();
}
+ /**
+ * Restituisce la fattura elettronica registrata come allegato.
+ *
+ * @return Upload|null
+ */
+ public function getFatturaElettronica()
+ {
+ return $this->uploads()
+ ->where('name', '=', 'Fattura Elettronica')
+ ->first();
+ }
+
/**
* Controlla se la fattura di acquisto è elettronica.
*
@@ -542,7 +554,7 @@ class Fattura extends Document
*/
public function isFE()
{
- $file = $this->uploads()->where('name', 'Fattura Elettronica')->first();
+ $file = $this->getFatturaElettronica();
return !empty($this->progressivo_invio) and file_exists($file->filepath);
}
diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php
index e3cbac264..86cab6784 100755
--- a/modules/interventi/bulk.php
+++ b/modules/interventi/bulk.php
@@ -128,7 +128,7 @@ switch (post('op')) {
]));
}
- if(!empty(array_diff($id_records, $interventi))){
+ if (!empty(array_diff($id_records, $interventi))) {
flash()->warning(tr('_NUM_ interventi non sono stati fatturati.', [
'_NUM_' => sizeof(array_diff($id_records, $interventi)),
]));
diff --git a/plugins/exportFE/actions.php b/plugins/exportFE/actions.php
index c5b2e3e30..d72859d86 100755
--- a/plugins/exportFE/actions.php
+++ b/plugins/exportFE/actions.php
@@ -25,7 +25,7 @@ use Plugins\ReceiptFE\Ricevuta;
switch (filter('op')) {
case 'generate':
if (!empty($fattura_pa)) {
- $file = $fattura_pa->save($upload_dir);
+ $file = $fattura_pa->save();
flash()->info(tr('Fattura elettronica generata correttamente!'));
diff --git a/plugins/exportFE/download.php b/plugins/exportFE/download.php
index 9bad5b965..d46057841 100755
--- a/plugins/exportFE/download.php
+++ b/plugins/exportFE/download.php
@@ -19,4 +19,5 @@
include_once __DIR__.'/init.php';
-download($upload_dir.'/'.$fattura_pa->getFilename());
+$file = $fattura->getFatturaElettronica();
+download(base_dir().'/'.$file->filepath, $file->original_name);
diff --git a/plugins/exportFE/edit.php b/plugins/exportFE/edit.php
index adb999f1a..305fec92d 100755
--- a/plugins/exportFE/edit.php
+++ b/plugins/exportFE/edit.php
@@ -82,9 +82,7 @@ echo '
';
- $file = $generata ? Upload::where('original', $fattura_pa->getFilename())
- ->where('id_record', $id_record)
- ->first() : null;
+ $file = $generata ? $fattura->getFatturaElettronica() : null;
echo '
diff --git a/plugins/exportFE/init.php b/plugins/exportFE/init.php
index d78dfe2a6..4dca2ff76 100755
--- a/plugins/exportFE/init.php
+++ b/plugins/exportFE/init.php
@@ -19,11 +19,11 @@
include_once __DIR__.'/../../core.php';
+use Modules\Fatture\Fattura;
use Plugins\ExportFE\FatturaElettronica;
try {
+ $fattura = Fattura::find($id_record);
$fattura_pa = new FatturaElettronica($id_record);
} catch (UnexpectedValueException $e) {
}
-
-$upload_dir = base_dir().'/'.FatturaElettronica::getDirectory();
diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php
index f968a3690..8b2842d62 100755
--- a/plugins/exportFE/src/FatturaElettronica.php
+++ b/plugins/exportFE/src/FatturaElettronica.php
@@ -78,15 +78,14 @@ class FatturaElettronica
}
/**
- * Restituisce le informazioni sull'anagrafica azienda.
- *
* @return bool
*/
public function isGenerated()
{
$documento = $this->getDocumento();
+ $file = $documento->getFatturaElettronica();
- return !empty($documento['progressivo_invio']) && file_exists(base_dir().'/'.static::getDirectory().'/'.$this->getFilename());
+ return !empty($documento['progressivo_invio']) && file_exists(base_dir().'/'.$file->filepath);
}
/**
@@ -293,22 +292,26 @@ class FatturaElettronica
/**
* Salva il file XML.
*
- * @param string $directory
- *
* @return string Nome del file
*/
- public function save($directory)
+ public function save()
{
$this->delete();
$name = 'Fattura Elettronica';
- $info = $this->getUploadData();
+ $data = $this->getUploadData();
// Generazione nome XML
$filename = $this->getFilename(true);
+ // Rimozione allegato precedente
+ $precedente = $this->getDocumento()->getFatturaElettronica();
+ if (!empty($precedente)){
+ $precedente->delete();
+ }
+
// Registrazione come allegato
- Uploads::upload($this->toXML(), array_merge($info, [
+ Uploads::upload($this->toXML(), array_merge($data, [
'name' => $name,
'original_name' => $filename,
]));
diff --git a/plugins/exportFE/src/Interaction.php b/plugins/exportFE/src/Interaction.php
index 2a282d4d3..8c5b0ca16 100755
--- a/plugins/exportFE/src/Interaction.php
+++ b/plugins/exportFE/src/Interaction.php
@@ -20,6 +20,7 @@
namespace Plugins\ExportFE;
use API\Services;
+use Modules\Fatture\Fattura;
use UnexpectedValueException;
/**
@@ -32,12 +33,13 @@ class Interaction extends Services
public static function sendInvoice($id_record)
{
try {
- $fattura = new FatturaElettronica($id_record);
- $file = base_dir().'/'.FatturaElettronica::getDirectory().'/'.$fattura->getFilename();
+ $fattura_elettronica = new FatturaElettronica($id_record);
+ $fattura = Fattura::find($id_record);
+ $file = $fattura->getFatturaElettronica();
$response = static::request('POST', 'invio_fattura_xml', [
- 'xml' => file_get_contents($file),
- 'filename' => $fattura->getFilename(),
+ 'xml' => $file->getContent(),
+ 'filename' => $fattura_elettronica->getFilename(),
]);
$body = static::responseBody($response);
@@ -70,8 +72,8 @@ class Interaction extends Services
public static function getInvoiceRecepits($id_record)
{
try {
- $fattura = new FatturaElettronica($id_record);
- $filename = $fattura->getFilename();
+ $fattura_elettronica = new FatturaElettronica($id_record);
+ $filename = $fattura_elettronica->getFilename();
$response = static::request('POST', 'notifiche_fattura', [
'name' => $filename,