mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-27 00:06:14 +01:00
Aggiunto select per aggiornare i prezzi di acquisto dell'articolo in fase di importFE
This commit is contained in:
parent
f928223253
commit
9f1ece8f8b
@ -132,6 +132,7 @@ switch (filter('op')) {
|
||||
'movimentazione' => post('movimentazione'),
|
||||
'crea_articoli' => post('crea_articoli'),
|
||||
'is_ritenuta_pagata' => post('is_ritenuta_pagata'),
|
||||
'update_info' => post('update_info'),
|
||||
];
|
||||
|
||||
$fattura_pa = FatturaElettronica::manage($filename);
|
||||
|
@ -294,6 +294,14 @@ echo '
|
||||
</div>';
|
||||
|
||||
// Righe
|
||||
if (setting('Aggiorna info di acquisto')=='Non aggiornare'){
|
||||
$update_info = 'update_not';
|
||||
} elseif (setting('Aggiorna info di acquisto')=='Aggiorna prezzo di listino'){
|
||||
$update_info ='update_price';
|
||||
} else{
|
||||
$update_info = 'update_all';
|
||||
}
|
||||
|
||||
$righe = $fattura_pa->getRighe();
|
||||
if (!empty($righe)) {
|
||||
echo '
|
||||
@ -413,34 +421,45 @@ if (!empty($righe)) {
|
||||
<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="box collapsed-box" style="background:#eeeeee;">
|
||||
<div class="box-header">
|
||||
<div class="row">
|
||||
<div class="col-md-5">
|
||||
{[ "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='.str_replace('\\', '/', htmlentities($codice_principale)).'&descrizione='.str_replace('\\', '/', str_replace('\'', '‘', htmlentities($riga['Descrizione']))).'", "value": "'.$id_articolo.'", "label": "'.tr('Articolo').'", "extra": "data-id=\''.$key.'\'" ]}
|
||||
</div>
|
||||
|
||||
<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='.str_replace('\\', '/', htmlentities($codice_principale)).'&descrizione='.str_replace('\\', '/', str_replace('\'', '‘', htmlentities($riga['Descrizione']))).'", "value": "'.$id_articolo.'", "label": "'.tr('Articolo').'", "extra": "data-id=\''.$key.'\'" ]}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "name": "conto['.$key.']", "id": "conto-'.$key.'", "ajax-source": "conti-acquisti", "required": 1, "label": "'.tr('Conto acquisti').'", "value": "'.$idconto_acquisto.'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "name": "conto['.$key.']", "id": "conto-'.$key.'", "ajax-source": "conti-acquisti", "required": 1, "label": "'.tr('Conto acquisti').'", "value": "'.$idconto_acquisto.'" ]}
|
||||
</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": "iva['.$key.']", "values": '.json_encode('query='.$query).', "required": 1, "label": "'.tr('Aliquota IVA').'" ]}
|
||||
<div class="col-md-1 box-tools">
|
||||
<br>
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse" onclick="$(this).find(\'i\').toggleClass(\'fa-plus\').toggleClass(\'fa-minus\');">
|
||||
<i class="fa fa-plus"></i> '.tr('Altro').'
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
<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>').', "help": "'.tr('Articoli contenuti in Ordini o DDT del Fornitore').'" ]}
|
||||
</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>').', "help": "'.tr('Articoli contenuti in Ordini o DDT del Fornitore').'" ]}
|
||||
<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>').', "help": "'.tr('Articoli contenuti in Ordini Cliente').'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "name": "update_info['.$key.']", "values": "list=\"update_not\":\"Non aggiornare\", \"update_price\":\"Aggiorna prezzo di listino\", \"update_all\":\"Aggiorna prezzo di acquisto + imposta fornitore predefinito\"", "label": "'.tr('Aggiorna info di acquisto').'", "value": "'.$update_info.'" ]}
|
||||
</div>
|
||||
</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>').', "help": "'.tr('Articoli contenuti in Ordini Cliente').'" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
|
@ -362,7 +362,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->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->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'], $info['update_info']);
|
||||
|
||||
$this->saveAllegati();
|
||||
|
||||
|
@ -110,12 +110,14 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
return $this->forceArray($result);
|
||||
}
|
||||
|
||||
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [], $tipi_riferimenti_vendita = [], $id_riferimenti_vendita = [])
|
||||
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [], $tipi_riferimenti_vendita = [], $id_riferimenti_vendita = [], $update_info = [])
|
||||
{
|
||||
$info = $this->getRitenutaRivalsa();
|
||||
|
||||
$righe = $this->getRighe();
|
||||
$fattura = $this->getFattura();
|
||||
$anagrafica = Anagrafica::find($fattura->idanagrafica);
|
||||
$direzione = 'uscita';
|
||||
|
||||
$id_ritenuta_acconto = $info['id_ritenuta_acconto'];
|
||||
$id_rivalsa = $info['id_rivalsa'];
|
||||
@ -150,8 +152,6 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
$articolo->idconto_acquisto = $conto[$key];
|
||||
$articolo->save();
|
||||
|
||||
$direzione = 'uscita';
|
||||
$anagrafica = Anagrafica::find($fattura->idanagrafica);
|
||||
$dettaglio_prezzo = DettaglioPrezzo::build($articolo, $anagrafica, $direzione);
|
||||
|
||||
$dettaglio_prezzo->setPrezzoUnitario($riga['PrezzoUnitario']);
|
||||
@ -162,7 +162,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
if (!empty($articolo)) {
|
||||
$articolo->idconto_acquisto = $conto[$key];
|
||||
$articolo->save();
|
||||
|
||||
|
||||
$obj = Articolo::build($fattura, $articolo);
|
||||
|
||||
$obj->movimentazione($movimentazione);
|
||||
@ -254,7 +254,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
'qta' => $obj->qta,
|
||||
'cumulativo' => false,
|
||||
]);
|
||||
|
||||
|
||||
if ($tipo == 'PRC') {
|
||||
$tot_sconto = $sconto_calcolato * 100 / $obj->imponibile;
|
||||
} else {
|
||||
@ -264,14 +264,42 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||
$tot_sconto = $sconto_riga;
|
||||
}
|
||||
|
||||
$sconto_unitario += $tot_sconto;
|
||||
$sconto_unitario += $tot_sconto;
|
||||
}
|
||||
|
||||
$obj->setSconto($sconto_unitario, $tipo);
|
||||
$tipo = null;
|
||||
$obj->setSconto($sconto_unitario, $tipo);
|
||||
}
|
||||
|
||||
// Aggiornamento prezzo di acquisto e fornitore predefinito in base alle impostazioni
|
||||
if (!empty($articolo)) {
|
||||
if ($update_info[$key]=='update_price' || $update_info[$key]=='update_all') {
|
||||
$dettaglio_predefinito = DettaglioPrezzo::dettaglioPredefinito($articolo->id, $anagrafica->idanagrafica, $direzione)
|
||||
->first();
|
||||
|
||||
// Aggiungo associazione fornitore-articolo se non presente
|
||||
if (empty($dettaglio_predefinito)) {
|
||||
$dettaglio_predefinito = DettaglioPrezzo::build($articolo, $anagrafica, $direzione);
|
||||
}
|
||||
|
||||
// Aggiornamento listino
|
||||
$dettaglio_predefinito->sconto_percentuale = 0;
|
||||
$dettaglio_predefinito->setPrezzoUnitario($obj->prezzo_unitario);
|
||||
$dettaglio_predefinito->save();
|
||||
|
||||
// Aggiornamento fornitore predefinito
|
||||
if ($update_info[$key]=='update_all') {
|
||||
// Aggiornamento prezzo di acquisto e fornitore predefinito
|
||||
$articolo->prezzo_acquisto = $obj->prezzo_unitario;
|
||||
$articolo->id_fornitore = $anagrafica->idanagrafica;
|
||||
$articolo->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tipo = null;
|
||||
$sconto_unitario = null;
|
||||
$obj->save();
|
||||
|
||||
}
|
||||
|
||||
// Ricaricamento della fattura
|
||||
|
@ -131,3 +131,5 @@ ALTER TABLE `em_accounts` ADD `id_oauth2` INT(11) DEFAULT NULL,
|
||||
ALTER TABLE `an_referenti` ADD `enable_newsletter` BOOLEAN DEFAULT TRUE;
|
||||
ALTER TABLE `an_sedi` ADD `enable_newsletter` BOOLEAN DEFAULT TRUE;
|
||||
|
||||
-- Aggiunta impostazione aggiornamento prezzi e fornitore in fase di import FE
|
||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Aggiorna info di acquisto', 'Non aggiornare', 'list[Non aggiornare,Aggiorna prezzo di listino,Aggiorna prezzo di acquisto + imposta fornitore predefinito]', '1', 'Fatturazione', '16', NULL);
|
Loading…
Reference in New Issue
Block a user