Compare commits

...

3 Commits

Author SHA1 Message Date
MatteoPistorello 5b16274a9e Fix minore 2021-09-16 12:45:12 +02:00
MatteoPistorello 7ed4a62d8a Fix orario modifica listini articolo 2021-09-16 11:58:22 +02:00
MatteoPistorello 77b3152cfa Aggiunto tipo documento in crea fattura in fase di importazione 2021-09-16 11:57:07 +02:00
4 changed files with 44 additions and 30 deletions

View File

@ -40,10 +40,11 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
### Aggiunto (Added)
- Aggiunto modal in fase di **Stampa Bilancio** per visualizzare o meno l'elenco analitico dei clienti e fornitori
- Aggiunta scelta del tipo documento in fase di creazione fattura da un altro documento
### Modificato (Changed)
### Fixed
- Fix orario della modifica del listino di riferimento dell'articolo
## 2.4.25 (2021-08-25)
### Aggiunto (Added)

View File

@ -89,18 +89,38 @@ if (!empty($options['create_document'])) {
$stato_predefinito = $database->fetchOne("SELECT id FROM co_statidocumento WHERE descrizione = 'Bozza'");
if(!empty($options['reversed'])){
$idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
'dir' => $dir,
'descrizione' => 'Nota di credito',
])['id'];
} elseif(in_array($original_module['name'], ['Ddt di vendita', 'Ddt di acquisto'])){
$idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
'dir' => $dir,
'descrizione' => ($dir=='uscita' ? 'Fattura differita di acquisto' : 'Fattura differita di vendita'),
])['id'];
} else{
$idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
'predefined' => 1,
'dir' => $dir,
])['id'];
}
echo '
<input type="hidden" name="reversed" value="'.$options['reversed'].'">
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM co_statidocumento WHERE descrizione IN (\'Emessa\', \'Bozza\')", "value": "'.$stato_predefinito['id'].'"]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Ritenuta contributi').'", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT * FROM co_ritenuta_contributi" ]}
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT id, CONCAT(codice_tipo_documento_fe, \' - \', descrizione) AS descrizione FROM co_tipidocumento WHERE enabled = 1 AND dir = '.prepare($dir).' ORDER BY codice_tipo_documento_fe", "value": "'.$idtipodocumento.'" ]}
</div>
<div class="col-md-6">
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.prepare($final_module['id']).' ORDER BY name", "value": "'.$id_segment.'" ]}
</div>
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Ritenuta contributi').'", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT * FROM co_ritenuta_contributi" ]}
</div>';
}

View File

@ -687,7 +687,6 @@ switch (post('op')) {
case 'add_documento':
$class = post('class');
$id_documento = post('id_documento');
$reversed = post('reversed');
// Individuazione del documento originale
if (!is_subclass_of($class, \Common\Document::class)) {
@ -702,18 +701,7 @@ switch (post('op')) {
// Creazione della fattura al volo
if (post('create_document') == 'on') {
$descrizione = ($documento->direzione == 'entrata') ? 'Fattura immediata di vendita' : 'Fattura immediata di acquisto';
// Fattura differita in caso di importazione da DDT
if ($documento instanceof DDT) {
$descrizione = ($documento->direzione == 'entrata') ? 'Fattura differita di vendita' : 'Fattura differita di acquisto';
}
if ($reversed) {
$tipo = Tipo::where('descrizione', 'Nota di credito')->where('dir', '!=', $documento->direzione)->first();
} else {
$tipo = Tipo::where('descrizione', $descrizione)->first();
}
$tipo = Tipo::find(post('idtipodocumento'));
$fattura = Fattura::build($documento->anagrafica, $tipo, post('data'), post('id_segment'));

View File

@ -45,13 +45,16 @@ switch (filter('op')) {
if (empty($dettaglio_predefinito)) {
$dettaglio_predefinito = DettaglioPrezzo::build($articolo, $anagrafica, $direzione);
}
$dettaglio_predefinito->sconto_percentuale = $sconto;
$dettaglio_predefinito->setPrezzoUnitario($prezzo_unitario);
$dettaglio_predefinito->save();
if ($articolo->id_fornitore == $anagrafica->idanagrafica && $direzione == 'uscita') {
$prezzo_unitario = $prezzo_unitario - ($prezzo_unitario * $sconto / 100);
$articolo->prezzo_acquisto = $prezzo_unitario;
$articolo->save();
if($dettaglio_predefinito->sconto_percentuale != $sconto || $dettaglio_predefinito->prezzo_unitario!= $prezzo_unitario){
$dettaglio_predefinito->sconto_percentuale = $sconto;
$dettaglio_predefinito->setPrezzoUnitario($prezzo_unitario);
$dettaglio_predefinito->save();
if ($articolo->id_fornitore == $anagrafica->idanagrafica && $direzione == 'uscita') {
$prezzo_unitario = $prezzo_unitario - ($prezzo_unitario * $sconto / 100);
$articolo->prezzo_acquisto = $prezzo_unitario;
$articolo->save();
}
}
}
@ -76,11 +79,13 @@ switch (filter('op')) {
$dettaglio = DettaglioPrezzo::build($articolo, $anagrafica, $direzione);
}
$dettaglio->minimo = $minimi[$key];
$dettaglio->massimo = $massimi[$key];
$dettaglio->sconto_percentuale = $sconti[$key];
$dettaglio->setPrezzoUnitario($prezzo_unitario);
$dettaglio->save();
if($dettaglio->minimo != $minimi[$key] || $dettaglio->massimo != $massimi[$key] || $dettaglio->sconto_percentuale != $sconti[$key] || $dettaglio->prezzo_unitario != $prezzo_unitario){
$dettaglio->minimo = $minimi[$key];
$dettaglio->massimo = $massimi[$key];
$dettaglio->sconto_percentuale = $sconti[$key];
$dettaglio->setPrezzoUnitario($prezzo_unitario);
$dettaglio->save();
}
}
} else {
$dettagli->delete();