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*
|
||||
- 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
|
||||
- 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)
|
||||
- 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';
|
||||
|
||||
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.
|
||||
*
|
||||
|
@ -12,6 +12,16 @@ class Categoria extends Model
|
||||
protected $table = 'mg_categorie';
|
||||
protected static $parent_identifier = 'parent';
|
||||
|
||||
public static function build($nome)
|
||||
{
|
||||
$model = parent::build();
|
||||
|
||||
$model->nome = $nome;
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
public function articoli()
|
||||
{
|
||||
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'])) {
|
||||
$dettaglio[]['AltriDatiGestionali'] = [
|
||||
'TipoDato' => 'IMPON-RACC',
|
||||
|
@ -91,6 +91,7 @@ switch (filter('op')) {
|
||||
'iva' => post('iva'),
|
||||
'conto' => post('conto'),
|
||||
'movimentazione' => post('movimentazione'),
|
||||
'crea_articoli' => post('crea_articoli'),
|
||||
];
|
||||
|
||||
$fattura_pa = FatturaElettronica::manage($filename);
|
||||
|
@ -243,9 +243,13 @@ echo '
|
||||
|
||||
// Movimentazioni
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "'.tr('Movimenta gli articoli').'", "name": "movimentazione", "value": 1 ]}
|
||||
</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>';
|
||||
|
||||
// Righe
|
||||
@ -280,16 +284,13 @@ if (!empty($righe)) {
|
||||
$codici = $riga['CodiceArticolo'] ?: [];
|
||||
$codici = !empty($codici) && !isset($codici[0]) ? [$codici] : $codici;
|
||||
|
||||
$codice_principale = null;
|
||||
|
||||
$codici_articoli = [];
|
||||
foreach ($codici as $codice) {
|
||||
$codice_principale = $codice_principale ?: $codice['CodiceValore'];
|
||||
|
||||
$codici_articoli[] = $codice['CodiceValore'].' ('.$codice['CodiceTipo'].')';
|
||||
}
|
||||
|
||||
// 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'];
|
||||
|
||||
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->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione']);
|
||||
$this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli']);
|
||||
|
||||
$this->saveAllegati();
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace Plugins\ImportFE;
|
||||
|
||||
use Modules\Articoli\Articolo as ArticoloOriginale;
|
||||
use Modules\Articoli\Categoria;
|
||||
use Modules\Fatture\Components\Articolo;
|
||||
use Modules\Fatture\Components\Riga;
|
||||
use Modules\Fatture\Fattura;
|
||||
@ -85,7 +86,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
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();
|
||||
|
||||
@ -103,6 +104,22 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
$riga['PrezzoUnitario'] = floatval($riga['PrezzoUnitario']);
|
||||
$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)) {
|
||||
$obj = Articolo::build($fattura, $articolo);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user