mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-22 21:28:08 +01:00
Creazione automatica articoli da FE
This commit is contained in:
parent
1025019943
commit
2109ab44b9
@ -57,7 +57,8 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
|||||||
- **Articoli** ora eliminabili solo virtualmente attraverso il flag *deleted_at*
|
- **Articoli** ora eliminabili solo virtualmente attraverso il flag *deleted_at*
|
||||||
- Miglioramento del plugin *Giacenze* nel modulo **Articoli** per interagire con gli **Ordini** registrati, e aggiunta della quantità progressiva per nel plugin *Movimenti*
|
- Miglioramento del plugin *Giacenze* nel modulo **Articoli** per interagire con gli **Ordini** registrati, e aggiunta della quantità progressiva per nel plugin *Movimenti*
|
||||||
- Generazione del numero delle **Fatture di vendita** a seguito dell'emissione della stessa
|
- Generazione del numero delle **Fatture di vendita** a seguito dell'emissione della stessa
|
||||||
- Supporto alla precisione di importi e quantità fino a 5 decimali
|
- Supporto alla precisione di importi e quantità fino a 5 decimali
|
||||||
|
- Opzione per la creazione automatica degli articoli presenti in **Fattura Elettronica**
|
||||||
|
|
||||||
### Rimosso (Removed)
|
### Rimosso (Removed)
|
||||||
- Funzione *get_costi_intervento* del modulo **Attività**, a causa dell'aggiornamento della maggior parte del sistema di gestione degli **Attività** con le classi Eloquent
|
- Funzione *get_costi_intervento* del modulo **Attività**, a causa dell'aggiornamento della maggior parte del sistema di gestione degli **Attività** con le classi Eloquent
|
||||||
|
@ -14,6 +14,24 @@ class Articolo extends Model
|
|||||||
|
|
||||||
protected $table = 'mg_articoli';
|
protected $table = 'mg_articoli';
|
||||||
|
|
||||||
|
public static function build($codice, $nome, Categoria $categoria, Categoria $sottocategoria = null)
|
||||||
|
{
|
||||||
|
$model = parent::build();
|
||||||
|
|
||||||
|
$model->codice = $codice;
|
||||||
|
$model->descrizione = $nome;
|
||||||
|
|
||||||
|
$model->abilita_serial = false;
|
||||||
|
$model->attivo = true;
|
||||||
|
|
||||||
|
$model->categoria()->associate($categoria);
|
||||||
|
$model->sottocategoria()->associate($sottocategoria);
|
||||||
|
|
||||||
|
$model->save();
|
||||||
|
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Funzione per inserire i movimenti di magazzino.
|
* Funzione per inserire i movimenti di magazzino.
|
||||||
*
|
*
|
||||||
|
@ -12,6 +12,16 @@ class Categoria extends Model
|
|||||||
protected $table = 'mg_categorie';
|
protected $table = 'mg_categorie';
|
||||||
protected static $parent_identifier = 'parent';
|
protected static $parent_identifier = 'parent';
|
||||||
|
|
||||||
|
public static function build($nome)
|
||||||
|
{
|
||||||
|
$model = parent::build();
|
||||||
|
|
||||||
|
$model->nome = $nome;
|
||||||
|
$model->save();
|
||||||
|
|
||||||
|
return $model;
|
||||||
|
}
|
||||||
|
|
||||||
public function articoli()
|
public function articoli()
|
||||||
{
|
{
|
||||||
return $this->hasMany(Articolo::class, 'id_categoria');
|
return $this->hasMany(Articolo::class, 'id_categoria');
|
||||||
|
@ -1232,7 +1232,7 @@ class FatturaElettronica
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
$rs_ritenuta = $database->fetchOne("SELECT percentuale_imponibile FROM co_ritenutaacconto WHERE id=".prepare($riga['idritenutaacconto']));
|
$rs_ritenuta = $database->fetchOne('SELECT percentuale_imponibile FROM co_ritenutaacconto WHERE id='.prepare($riga['idritenutaacconto']));
|
||||||
if (!empty($rs_ritenuta['percentuale_imponibile'])) {
|
if (!empty($rs_ritenuta['percentuale_imponibile'])) {
|
||||||
$dettaglio[]['AltriDatiGestionali'] = [
|
$dettaglio[]['AltriDatiGestionali'] = [
|
||||||
'TipoDato' => 'IMPON-RACC',
|
'TipoDato' => 'IMPON-RACC',
|
||||||
|
@ -91,6 +91,7 @@ switch (filter('op')) {
|
|||||||
'iva' => post('iva'),
|
'iva' => post('iva'),
|
||||||
'conto' => post('conto'),
|
'conto' => post('conto'),
|
||||||
'movimentazione' => post('movimentazione'),
|
'movimentazione' => post('movimentazione'),
|
||||||
|
'crea_articoli' => post('crea_articoli'),
|
||||||
];
|
];
|
||||||
|
|
||||||
$fattura_pa = FatturaElettronica::manage($filename);
|
$fattura_pa = FatturaElettronica::manage($filename);
|
||||||
|
@ -243,9 +243,13 @@ echo '
|
|||||||
|
|
||||||
// Movimentazioni
|
// Movimentazioni
|
||||||
echo '
|
echo '
|
||||||
<div class="col-md-6">
|
<div class="col-md-3">
|
||||||
{[ "type": "checkbox", "label": "'.tr('Movimenta gli articoli').'", "name": "movimentazione", "value": 1 ]}
|
{[ "type": "checkbox", "label": "'.tr('Movimenta gli articoli').'", "name": "movimentazione", "value": 1 ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "checkbox", "label": "'.tr('Creazione automatica articoli').'", "name": "crea_articoli", "value": 0, "help": "'.tr("Nel caso di righe con tag CodiceArticolo, il gestionale procede alla creazione dell'articolo se la riga non risulta assegnata manualmente").'" ]}
|
||||||
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
// Righe
|
// Righe
|
||||||
@ -280,16 +284,13 @@ if (!empty($righe)) {
|
|||||||
$codici = $riga['CodiceArticolo'] ?: [];
|
$codici = $riga['CodiceArticolo'] ?: [];
|
||||||
$codici = !empty($codici) && !isset($codici[0]) ? [$codici] : $codici;
|
$codici = !empty($codici) && !isset($codici[0]) ? [$codici] : $codici;
|
||||||
|
|
||||||
$codice_principale = null;
|
|
||||||
|
|
||||||
$codici_articoli = [];
|
$codici_articoli = [];
|
||||||
foreach ($codici as $codice) {
|
foreach ($codici as $codice) {
|
||||||
$codice_principale = $codice_principale ?: $codice['CodiceValore'];
|
|
||||||
|
|
||||||
$codici_articoli[] = $codice['CodiceValore'].' ('.$codice['CodiceTipo'].')';
|
$codici_articoli[] = $codice['CodiceValore'].' ('.$codice['CodiceTipo'].')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Individuazione articolo con codice relativo
|
// Individuazione articolo con codice relativo
|
||||||
|
$codice_principale = $codici[0]['CodiceValore'];
|
||||||
$id_articolo = $database->fetchOne('SELECT id FROM mg_articoli WHERE codice = '.prepare($codice_principale))['id'];
|
$id_articolo = $database->fetchOne('SELECT id FROM mg_articoli WHERE codice = '.prepare($codice_principale))['id'];
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
@ -349,7 +349,7 @@ class FatturaElettronica
|
|||||||
{
|
{
|
||||||
$this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura']);
|
$this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura']);
|
||||||
|
|
||||||
$this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione']);
|
$this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli']);
|
||||||
|
|
||||||
$this->saveAllegati();
|
$this->saveAllegati();
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace Plugins\ImportFE;
|
namespace Plugins\ImportFE;
|
||||||
|
|
||||||
use Modules\Articoli\Articolo as ArticoloOriginale;
|
use Modules\Articoli\Articolo as ArticoloOriginale;
|
||||||
|
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;
|
||||||
@ -85,7 +86,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||||||
return $this->forceArray($result);
|
return $this->forceArray($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveRighe($articoli, $iva, $conto, $movimentazione = true)
|
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false)
|
||||||
{
|
{
|
||||||
$info = $this->getRitenutaRivalsa();
|
$info = $this->getRitenutaRivalsa();
|
||||||
|
|
||||||
@ -103,6 +104,22 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||||||
$riga['PrezzoUnitario'] = floatval($riga['PrezzoUnitario']);
|
$riga['PrezzoUnitario'] = floatval($riga['PrezzoUnitario']);
|
||||||
$riga['Quantita'] = floatval($riga['Quantita']);
|
$riga['Quantita'] = floatval($riga['Quantita']);
|
||||||
|
|
||||||
|
$codici = $riga['CodiceArticolo'] ?: [];
|
||||||
|
$codici = !empty($codici) && !isset($codici[0]) ? [$codici] : $codici;
|
||||||
|
|
||||||
|
// Creazione articolo relativo
|
||||||
|
if (!empty($codici) && !empty($crea_articoli) && empty($articolo)) {
|
||||||
|
$nome_categoria = 'Importazione automatica';
|
||||||
|
$categoria = Categoria::where('nome', $nome_categoria)->first();
|
||||||
|
if (empty($categoria)) {
|
||||||
|
$categoria = Categoria::build($nome_categoria);
|
||||||
|
}
|
||||||
|
|
||||||
|
$codice = $codici[0]['CodiceValore'];
|
||||||
|
$articolo = ArticoloOriginale::build($codice, $riga['Descrizione'], $categoria);
|
||||||
|
$articolo->prezzo_acquisto = $riga['PrezzoUnitario'];
|
||||||
|
}
|
||||||
|
|
||||||
if (!empty($articolo)) {
|
if (!empty($articolo)) {
|
||||||
$obj = Articolo::build($fattura, $articolo);
|
$obj = Articolo::build($fattura, $articolo);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user