Generalizzazione procedura importazione documenti
This commit is contained in:
parent
c610b3bfbe
commit
3f7c3e42c1
|
@ -34,7 +34,8 @@ echo '
|
|||
<input type="hidden" name="backto" value="record-edit">
|
||||
|
||||
<input type="hidden" name="id_documento" value="'.$documento->id.'">
|
||||
<input type="hidden" name="type" value="'.$options['type'].'">';
|
||||
<input type="hidden" name="type" value="'.$options['type'].'">
|
||||
<input type="hidden" name="class" value="'.get_class($documento).'">';
|
||||
|
||||
// Creazione fattura dal documento
|
||||
if (!empty($options['create_document'])) {
|
||||
|
|
|
@ -121,7 +121,7 @@ function discountInfo(\Common\Components\Row $riga, $mostra_maggiorazione = true
|
|||
function reference($document)
|
||||
{
|
||||
if (!empty($document) && !($document instanceof \Common\ReferenceInterface)) {
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
$extra = '';
|
||||
|
@ -129,15 +129,19 @@ function reference($document)
|
|||
$document_id = null;
|
||||
|
||||
if (empty($document)) {
|
||||
$description = tr('Documento di riferimento non disponibile');
|
||||
$content = tr('non disponibile');
|
||||
$extra = 'class="disabled"';
|
||||
} else {
|
||||
$module_id = $document->module;
|
||||
$document_id = $document->id;
|
||||
|
||||
$description = $document->getReference();
|
||||
$content = $document->getReference();
|
||||
}
|
||||
|
||||
$description = tr('Rif. _DOCUMENT_', [
|
||||
'_DOCUMENT_' => strtolower($content),
|
||||
]);
|
||||
|
||||
return Modules::link($module_id, $document_id, $description, $description, $extra);
|
||||
}
|
||||
|
||||
|
|
|
@ -385,32 +385,39 @@ $riga = $contratto->getRiga($type, $id_riga);
|
|||
|
||||
break;
|
||||
|
||||
// Aggiunta di un documento in contratto
|
||||
case 'add_preventivo':
|
||||
case 'add_documento':
|
||||
$class = post('class');
|
||||
$id_documento = post('id_documento');
|
||||
|
||||
$preventivo = \Modules\Preventivi\Preventivo::find(post('id_documento'));
|
||||
// Individuazione del documento originale
|
||||
if (!is_subclass_of($class, \Common\Document::class)) {
|
||||
return;
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Creazione del contratto al volo
|
||||
if (post('create_document') == 'on') {
|
||||
$contratto = Contratto::build($preventivo->anagrafica, $preventivo->nome);
|
||||
$contratto = Contratto::build($documento->anagrafica, $documento->nome);
|
||||
|
||||
$contratto->idpagamento = $preventivo->idpagamento;
|
||||
$contratto->idsede = $preventivo->idsede;
|
||||
$contratto->idpagamento = $documento->idpagamento;
|
||||
$contratto->idsede = $documento->idsede;
|
||||
|
||||
$contratto->id_documento_fe = $preventivo->id_documento_fe;
|
||||
$contratto->codice_cup = $preventivo->codice_cup;
|
||||
$contratto->codice_cig = $preventivo->codice_cig;
|
||||
$contratto->num_item = $preventivo->num_item;
|
||||
$contratto->id_documento_fe = $documento->id_documento_fe;
|
||||
$contratto->codice_cup = $documento->codice_cup;
|
||||
$contratto->codice_cig = $documento->codice_cig;
|
||||
$contratto->num_item = $documento->num_item;
|
||||
|
||||
$contratto->descrizione = $preventivo->descrizione;
|
||||
$contratto->esclusioni = $preventivo->esclusioni;
|
||||
$contratto->descrizione = $documento->descrizione;
|
||||
$contratto->esclusioni = $documento->esclusioni;
|
||||
|
||||
$contratto->save();
|
||||
|
||||
$id_record = $contratto->id;
|
||||
}
|
||||
|
||||
$parziale = false;
|
||||
$righe = $preventivo->getRighe();
|
||||
$righe = $documento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
if (post('evadere')[$riga->id] == 'on' and !empty(post('qta_da_evadere')[$riga->id])) {
|
||||
$qta = post('qta_da_evadere')[$riga->id];
|
||||
|
@ -419,17 +426,15 @@ $riga = $contratto->getRiga($type, $id_riga);
|
|||
|
||||
$copia->save();
|
||||
}
|
||||
|
||||
if ($riga->qta != $riga->qta_evasa) {
|
||||
$parziale = true;
|
||||
}
|
||||
}
|
||||
|
||||
ricalcola_costiagg_ordine($id_record);
|
||||
|
||||
flash()->info(tr('Preventivo _NUM_ aggiunto!', [
|
||||
'_NUM_' => $preventivo->numero,
|
||||
]));
|
||||
// Messaggio informativo
|
||||
$message = tr('_DOC_ aggiunto!', [
|
||||
'_DOC_' => $documento->getReference(),
|
||||
]);
|
||||
flash()->info($message);
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -239,29 +239,37 @@ switch (post('op')) {
|
|||
|
||||
break;
|
||||
|
||||
// Aggiunta di un ordine in ddt
|
||||
// Aggiunta di un documento in ddt
|
||||
case 'add_ordine':
|
||||
$ordine = \Modules\Ordini\Ordine::find(post('id_documento'));
|
||||
case 'add_documento':
|
||||
$class = post('class');
|
||||
$id_documento = post('id_documento');
|
||||
|
||||
// Individuazione del documento originale
|
||||
if (!is_subclass_of($class, \Common\Document::class)) {
|
||||
return;
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Creazione del ddt al volo
|
||||
if (post('create_document') == 'on') {
|
||||
$tipo = Tipo::where('dir', $dir)->first();
|
||||
|
||||
$ddt = DDT::build($ordine->anagrafica, $tipo, post('data'));
|
||||
$ddt->idpagamento = $ordine->idpagamento;
|
||||
$ddt = DDT::build($documento->anagrafica, $tipo, post('data'));
|
||||
$ddt->idpagamento = $documento->idpagamento;
|
||||
|
||||
$ddt->id_documento_fe = $ordine->id_documento_fe;
|
||||
$ddt->codice_cup = $ordine->codice_cup;
|
||||
$ddt->codice_cig = $ordine->codice_cig;
|
||||
$ddt->num_item = $ordine->num_item;
|
||||
$ddt->idsede_destinazione = $ordine->idsede;
|
||||
$ddt->id_documento_fe = $documento->id_documento_fe;
|
||||
$ddt->codice_cup = $documento->codice_cup;
|
||||
$ddt->codice_cig = $documento->codice_cig;
|
||||
$ddt->num_item = $documento->num_item;
|
||||
$ddt->idsede_destinazione = $documento->idsede;
|
||||
|
||||
$ddt->save();
|
||||
|
||||
$id_record = $ddt->id;
|
||||
}
|
||||
|
||||
$righe = $ordine->getRighe();
|
||||
$righe = $documento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
if (post('evadere')[$riga->id] == 'on' and !empty(post('qta_da_evadere')[$riga->id])) {
|
||||
$qta = post('qta_da_evadere')[$riga->id];
|
||||
|
@ -270,8 +278,6 @@ switch (post('op')) {
|
|||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
if ($copia->isArticolo()) {
|
||||
//$copia->movimenta($copia->qta);
|
||||
|
||||
$serials = is_array(post('serial')[$riga->id]) ? post('serial')[$riga->id] : [];
|
||||
|
||||
$copia->serials = $serials;
|
||||
|
@ -283,9 +289,11 @@ switch (post('op')) {
|
|||
|
||||
ricalcola_costiagg_ddt($id_record);
|
||||
|
||||
flash()->info(tr('Ordine _NUM_ aggiunto!', [
|
||||
'_NUM_' => $ordine->numero,
|
||||
]));
|
||||
// Messaggio informativo
|
||||
$message = tr('_DOC_ aggiunto!', [
|
||||
'_DOC_' => $documento->getReference(),
|
||||
]);
|
||||
flash()->info($message);
|
||||
|
||||
break;
|
||||
|
||||
|
|
|
@ -594,26 +594,14 @@ switch (post('op')) {
|
|||
|
||||
// Aggiunta di un documento in fattura
|
||||
case 'add_documento':
|
||||
$class = post('class');
|
||||
$id_documento = post('id_documento');
|
||||
$type = post('type');
|
||||
|
||||
$movimenta = true;
|
||||
$idsede = 0;
|
||||
|
||||
if ($type == 'ordine') {
|
||||
$documento = \Modules\Ordini\Ordine::find($id_documento);
|
||||
$idsede = $documento->idsede;
|
||||
} elseif ($type == 'ddt') {
|
||||
$documento = \Modules\DDT\DDT::find($id_documento);
|
||||
$idsede = ($documento->direzione == 'entrata') ? $documento->idsede_destinazione : $documento->idsede_partenza;
|
||||
$movimenta = false;
|
||||
} elseif ($type == 'preventivo') {
|
||||
$documento = \Modules\Preventivi\Preventivo::find($id_documento);
|
||||
$idsede = $documento->idsede;
|
||||
} elseif ($type == 'contratto') {
|
||||
$documento = \Modules\Contratti\Contratto::find($id_documento);
|
||||
$idsede = $documento->idsede;
|
||||
// Individuazione del documento originale
|
||||
if (!is_subclass_of($class, \Common\Document::class)) {
|
||||
return;
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Creazione della fattura al volo
|
||||
if (post('create_document') == 'on') {
|
||||
|
@ -622,7 +610,7 @@ switch (post('op')) {
|
|||
|
||||
$fattura = Fattura::build($documento->anagrafica, $tipo, post('data'), post('id_segment'));
|
||||
$fattura->idpagamento = $documento->idpagamento;
|
||||
$fattura->idsede_destinazione = $idsede;
|
||||
$fattura->idsede_destinazione = $documento->idsede;
|
||||
$fattura->id_ritenuta_contributi = post('id_ritenuta_contributi') ?: null;
|
||||
$fattura->save();
|
||||
|
||||
|
@ -650,10 +638,6 @@ switch (post('op')) {
|
|||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
if ($copia->isArticolo()) {
|
||||
if ($movimenta) {
|
||||
//$copia->movimenta($copia->qta);
|
||||
}
|
||||
|
||||
$serials = is_array(post('serial')[$riga->id]) ? post('serial')[$riga->id] : [];
|
||||
|
||||
$copia->serials = $serials;
|
||||
|
@ -665,25 +649,10 @@ switch (post('op')) {
|
|||
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
|
||||
$message = '';
|
||||
if ($type == 'ordine') {
|
||||
$message = tr('Ordine _NUM_ aggiunto!', [
|
||||
'_NUM_' => $ordine->numero,
|
||||
]);
|
||||
} elseif ($type == 'ddt') {
|
||||
$message = tr('DDT _NUM_ aggiunto!', [
|
||||
'_NUM_' => $ordine->numero,
|
||||
]);
|
||||
} elseif ($type == 'preventivo') {
|
||||
$message = tr('Preventivo _NUM_ aggiunto!', [
|
||||
'_NUM_' => $ordine->numero,
|
||||
]);
|
||||
} elseif ($type == 'contratto') {
|
||||
$message = tr('Contratto _NUM_ aggiunto!', [
|
||||
'_NUM_' => $ordine->numero,
|
||||
]);
|
||||
}
|
||||
|
||||
// Messaggio informativo
|
||||
$message = tr('_DOC_ aggiunto!', [
|
||||
'_DOC_' => $documento->getReference(),
|
||||
]);
|
||||
flash()->info($message);
|
||||
|
||||
break;
|
||||
|
|
|
@ -278,54 +278,53 @@ $riga = $ordine->getRiga($type, $id_riga);
|
|||
|
||||
break;
|
||||
|
||||
// Aggiunta di un preventivo in ordine
|
||||
// Aggiunta di un documento in ordine
|
||||
case 'add_preventivo':
|
||||
$preventivo = \Modules\Preventivi\Preventivo::find(post('id_documento'));
|
||||
case 'add_documento':
|
||||
$class = post('class');
|
||||
$id_documento = post('id_documento');
|
||||
|
||||
// Individuazione del documento originale
|
||||
if (!is_subclass_of($class, \Common\Document::class)) {
|
||||
return;
|
||||
}
|
||||
$documento = $class::find($id_documento);
|
||||
|
||||
// Creazione dell' ordine al volo
|
||||
if (post('create_document') == 'on') {
|
||||
$tipo = Tipo::where('dir', $dir)->first();
|
||||
|
||||
$ordine = Ordine::build($preventivo->anagrafica, $tipo, post('data'));
|
||||
$ordine->idpagamento = $preventivo->idpagamento;
|
||||
$ordine->idsede = $preventivo->idsede;
|
||||
$ordine = Ordine::build($documento->anagrafica, $tipo, post('data'));
|
||||
$ordine->idpagamento = $documento->idpagamento;
|
||||
$ordine->idsede = $documento->idsede;
|
||||
|
||||
$ordine->id_documento_fe = $preventivo->id_documento_fe;
|
||||
$ordine->codice_cup = $preventivo->codice_cup;
|
||||
$ordine->codice_cig = $preventivo->codice_cig;
|
||||
$ordine->num_item = $preventivo->num_item;
|
||||
$ordine->id_documento_fe = $documento->id_documento_fe;
|
||||
$ordine->codice_cup = $documento->codice_cup;
|
||||
$ordine->codice_cig = $documento->codice_cig;
|
||||
$ordine->num_item = $documento->num_item;
|
||||
|
||||
$ordine->save();
|
||||
|
||||
$id_record = $ordine->id;
|
||||
}
|
||||
|
||||
$parziale = false;
|
||||
$righe = $preventivo->getRighe();
|
||||
$righe = $documento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
if (post('evadere')[$riga->id] == 'on' and !empty(post('qta_da_evadere')[$riga->id])) {
|
||||
$qta = post('qta_da_evadere')[$riga->id];
|
||||
|
||||
$copia = $riga->copiaIn($ordine, $qta);
|
||||
|
||||
// Aggiornamento seriali dalla riga dell'ordine
|
||||
if ($copia->isArticolo()) {
|
||||
//$copia->movimenta($copia->qta);
|
||||
}
|
||||
|
||||
$copia->save();
|
||||
}
|
||||
|
||||
if ($riga->qta != $riga->qta_evasa) {
|
||||
$parziale = true;
|
||||
}
|
||||
}
|
||||
|
||||
ricalcola_costiagg_ordine($id_record);
|
||||
|
||||
flash()->info(tr('Preventivo _NUM_ aggiunto!', [
|
||||
'_NUM_' => $preventivo->numero,
|
||||
]));
|
||||
// Messaggio informativo
|
||||
$message = tr('_DOC_ aggiunto!', [
|
||||
'_DOC_' => $documento->getReference(),
|
||||
]);
|
||||
flash()->info($message);
|
||||
|
||||
break;
|
||||
|
||||
|
|
|
@ -23,12 +23,18 @@ echo '
|
|||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-right">
|
||||
<li>
|
||||
<a class="'.($disabled ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-toggle="modal" data-title="'.tr('Crea ordine cliente').'">
|
||||
<i class="fa fa-truck"></i> '.tr('DDT in uscita').'
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="'.($disabled ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine" data-toggle="modal" data-title="'.tr('Crea ordine cliente').'">
|
||||
<i class="fa fa-file-o"></i> '.tr('Ordine cliente').'
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a class="'.($disabled ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
|
||||
<i class="fa fa-file"></i> '.tr('Fattura').'
|
||||
|
|
|
@ -12,6 +12,9 @@ if (get('documento') == 'fattura') {
|
|||
} elseif (get('documento') == 'ordine') {
|
||||
$final_module = 'Ordini cliente';
|
||||
$op = 'add_preventivo';
|
||||
} elseif (get('documento') == 'ddt') {
|
||||
$final_module = 'Ddt di vendita';
|
||||
$op = 'add_documento';
|
||||
} else {
|
||||
$final_module = 'Contratti';
|
||||
$op = 'add_preventivo';
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
namespace Traits;
|
||||
|
||||
use Stringy\Stringy;
|
||||
|
||||
trait ReferenceTrait
|
||||
{
|
||||
abstract public function getReferenceName();
|
||||
|
@ -14,35 +12,29 @@ trait ReferenceTrait
|
|||
|
||||
public function getReference()
|
||||
{
|
||||
// Informazioni disponibili
|
||||
$name = $this->getReferenceName();
|
||||
$number = $this->getReferenceNumber();
|
||||
$date = $this->getReferenceDate();
|
||||
|
||||
// Testo relativo
|
||||
$name = Stringy::create($name)->toLowerCase();
|
||||
|
||||
// Testi predefiniti
|
||||
if (!empty($date) && !empty($number)) {
|
||||
$description = tr('Rif. _DOC_ num. _NUM_ del _DATE_', [
|
||||
'_DOC_' => $name,
|
||||
'_NUM_' => $number,
|
||||
'_DATE_' => dateFormat($date),
|
||||
]);
|
||||
$description = tr('_DOC_ num. _NUM_ del _DATE_');
|
||||
} elseif (!empty($number)) {
|
||||
$description = tr('Rif. _DOC_ num. _NUM_', [
|
||||
'_DOC_' => $name,
|
||||
'_NUM_' => $number,
|
||||
]);
|
||||
$description = tr('_DOC_ num. _NUM_');
|
||||
} elseif (!empty($date)) {
|
||||
$description = tr('Rif. _DOC_ del _DATE_', [
|
||||
'_DOC_' => $name,
|
||||
'_DATE_' => dateFormat($date),
|
||||
]);
|
||||
$description = tr('_DOC_ del _DATE_');
|
||||
} else {
|
||||
$description = tr('Rif. _DOC_', [
|
||||
'_DOC_' => $name,
|
||||
]);
|
||||
$description = tr('_DOC_');
|
||||
}
|
||||
|
||||
// Creazione descrizione
|
||||
$description = replace($description, [
|
||||
'_DOC_' => $name,
|
||||
'_NUM_' => $number,
|
||||
'_DATE_' => dateFormat($date),
|
||||
]);
|
||||
|
||||
return $description;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue