Fix warning data per Interventi in Fattura
This commit is contained in:
parent
36d70a7d23
commit
fce5c09eaf
|
@ -94,12 +94,15 @@ if ($dir == 'entrata') {
|
|||
}
|
||||
|
||||
// Verifica la data dell'intervento rispetto alla data della fattura
|
||||
$righe_interventi = $fattura->getRighe()->where('idintervento', '!=', null);
|
||||
if (!empty($righe_interventi)) {
|
||||
foreach ($righe_interventi as $riga_intervento) {
|
||||
$intervento = Intervento::find($riga_intervento->idintervento);
|
||||
$fatturazione_futura = false;
|
||||
$data_fattura = new Carbon($fattura->data);
|
||||
$interventi_collegati = $fattura->getDocumentiCollegati()[Intervento::class];
|
||||
if (!empty($interventi_collegati)) {
|
||||
foreach ($interventi_collegati as $intervento) {
|
||||
$fine_intervento = $intervento->fine ?: $intervento->data_richiesta;
|
||||
$fine_intervento = new Carbon($fine_intervento);
|
||||
|
||||
if ((new Carbon($intervento->fine))->diffInDays(new Carbon($fattura->data), false) < 0) {
|
||||
if ($fine_intervento->diffInDays($data_fattura, false) < 0) {
|
||||
$fatturazione_futura = true;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -193,6 +193,10 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
|
|||
$qta_gruppo = $gruppo->sum('ore');
|
||||
$riga->qta = round($qta_gruppo, $decimals);
|
||||
|
||||
// Riferimento al documento di origine
|
||||
$riga->original_document_type = get_class($intervento);
|
||||
$riga->original_document_id = $intervento->id;
|
||||
|
||||
$riga->save();
|
||||
}
|
||||
|
||||
|
@ -222,6 +226,10 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
|
|||
|
||||
$riga->qta = $gruppo->count();
|
||||
|
||||
// Riferimento al documento di origine
|
||||
$riga->original_document_type = get_class($intervento);
|
||||
$riga->original_document_id = $intervento->id;
|
||||
|
||||
$riga->save();
|
||||
}
|
||||
|
||||
|
@ -255,6 +263,10 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
|
|||
$riga->prezzo_unitario = $viaggio->prezzo_km_unitario;
|
||||
$riga->setSconto($viaggio->scontokm_unitario, $viaggio->tipo_scontokm);
|
||||
|
||||
// Riferimento al documento di origine
|
||||
$riga->original_document_type = get_class($intervento);
|
||||
$riga->original_document_id = $intervento->id;
|
||||
|
||||
$riga->qta = $qta_trasferta;
|
||||
|
||||
$riga->save();
|
||||
|
@ -265,7 +277,6 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion
|
|||
$righe = $intervento->getRighe();
|
||||
foreach ($righe as $riga) {
|
||||
$qta = $riga->qta;
|
||||
|
||||
$copia = $riga->copiaIn($fattura, $qta);
|
||||
|
||||
$copia->id_conto = $id_conto;
|
||||
|
|
|
@ -45,6 +45,41 @@ abstract class Document extends Model implements ReferenceInterface, DocumentInt
|
|||
return static::$movimenta_magazzino;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce tutti i documenti collegati al documento corrente attraverso la procedura di importazione delle righe.
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getDocumentiCollegati()
|
||||
{
|
||||
$riferimenti = collect([
|
||||
$this->descrizioni()
|
||||
->select(['original_document_id', 'original_document_type'])
|
||||
->get(),
|
||||
$this->righe()
|
||||
->select(['original_document_id', 'original_document_type'])
|
||||
->get(),
|
||||
$this->articoli()
|
||||
->select(['original_document_id', 'original_document_type'])
|
||||
->get(),
|
||||
$this->sconti()
|
||||
->select(['original_document_id', 'original_document_type'])
|
||||
->get(),
|
||||
])->flatten();
|
||||
|
||||
return $riferimenti->reject(function ($item) {
|
||||
return empty($item->original_document_type);
|
||||
})->unique(function ($item) {
|
||||
return $item->original_document_type.'|'.$item->original_document_id;
|
||||
})->mapToGroups(function ($item) {
|
||||
return [$item->original_document_type => ($item->original_document_type)::find($item->original_document_id)];
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce tutte le righe collegate al documento.
|
||||
* @return \Illuminate\Support\Collection|iterable
|
||||
*/
|
||||
public function getRighe()
|
||||
{
|
||||
$results = $this->mergeCollections($this->descrizioni, $this->righe, $this->articoli, $this->sconti);
|
||||
|
@ -54,6 +89,12 @@ abstract class Document extends Model implements ReferenceInterface, DocumentInt
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce la riga con tipo e identificativo corrispondente.
|
||||
* @param $type
|
||||
* @param $id
|
||||
* @return mixed
|
||||
*/
|
||||
public function getRiga($type, $id)
|
||||
{
|
||||
$righe = $this->getRighe();
|
||||
|
@ -63,6 +104,10 @@ abstract class Document extends Model implements ReferenceInterface, DocumentInt
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce le righe del documento raggruppate per documento di origine.
|
||||
* @return \Illuminate\Support\Collection|iterable
|
||||
*/
|
||||
public function getRigheRaggruppate()
|
||||
{
|
||||
$righe = $this->getRighe();
|
||||
|
|
|
@ -101,3 +101,6 @@ UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `dt_causalet` WHERE 1=
|
|||
|
||||
-- Fix query per la lista newsletter predefinita
|
||||
UPDATE `em_lists` SET `query` = 'SELECT idanagrafica AS id, ''Modules\\\\Anagrafiche\\\\Anagrafica'' AS tipo FROM an_anagrafiche' WHERE `query` = 'SELECT idanagrafica AS id FROM an_anagrafiche WHERE email != ''''';
|
||||
|
||||
-- Fix riferimento documento per righe create da Interventi
|
||||
UPDATE `co_righe_documenti` SET `original_document_id` = `idintervento`, `original_document_type` = 'Modules\\Interventi\\Intervento' WHERE `idintervento` IS NOT NULL;
|
||||
|
|
Loading…
Reference in New Issue