mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-23 14:57:46 +01:00
Aggiornamento Contratti
This commit is contained in:
parent
e92430f416
commit
33fee0163d
@ -14,7 +14,8 @@ trait MorphTrait
|
|||||||
return $this->morphedByMany($this->original_type, 'original', $this->table, 'id');
|
return $this->morphedByMany($this->original_type, 'original', $this->table, 'id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOriginal(){
|
public function getOriginal()
|
||||||
|
{
|
||||||
return $this->original()->first();
|
return $this->original()->first();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,29 @@ abstract class Document extends Model
|
|||||||
return $descrizioni->merge($righe)->merge($articoli)->merge($sconti)->sortBy('order');
|
return $descrizioni->merge($righe)->merge($articoli)->merge($sconti)->sortBy('order');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restituisce la collezione di righe e articoli con valori rilevanti per i conti, raggruppate sulla base dei documenti di provenienza.
|
||||||
|
* La chiave è la serializzazione del documento di origine, oppure null in caso non esista.
|
||||||
|
*
|
||||||
|
* @return iterable
|
||||||
|
*/
|
||||||
|
public function getRigheRaggruppate()
|
||||||
|
{
|
||||||
|
$righe = $this->getRighe();
|
||||||
|
|
||||||
|
$groups = $righe->groupBy(function ($item, $key) {
|
||||||
|
if (!$item->hasOriginal()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$parent = $item->getOriginal()->parent;
|
||||||
|
|
||||||
|
return serialize($parent);
|
||||||
|
});
|
||||||
|
|
||||||
|
return $groups;
|
||||||
|
}
|
||||||
|
|
||||||
abstract public function righe();
|
abstract public function righe();
|
||||||
|
|
||||||
abstract public function articoli();
|
abstract public function articoli();
|
||||||
@ -97,6 +120,16 @@ abstract class Document extends Model
|
|||||||
return $this->calcola('guadagno');
|
return $this->calcola('guadagno');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function delete()
|
||||||
|
{
|
||||||
|
$righe = $this->getRighe();
|
||||||
|
foreach ($righe as $riga) {
|
||||||
|
$riga->delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent::delete();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calcola la somma degli attributi indicati come parametri.
|
* Calcola la somma degli attributi indicati come parametri.
|
||||||
* Il metodo **non** deve essere adattato per ulteriori funzionalità: deve esclusivamente calcolare la somma richiesta in modo esplicito dagli argomenti.
|
* Il metodo **non** deve essere adattato per ulteriori funzionalità: deve esclusivamente calcolare la somma richiesta in modo esplicito dagli argomenti.
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
use Modules\Anagrafiche\Anagrafica;
|
use Modules\Anagrafiche\Anagrafica;
|
||||||
|
use Modules\Articoli\Articolo as ArticoloOriginale;
|
||||||
use Modules\Contratti\Components\Articolo;
|
use Modules\Contratti\Components\Articolo;
|
||||||
|
use Modules\Contratti\Components\Descrizione;
|
||||||
use Modules\Contratti\Components\Riga;
|
use Modules\Contratti\Components\Riga;
|
||||||
use Modules\Contratti\Components\Sconto;
|
use Modules\Contratti\Components\Sconto;
|
||||||
use Modules\Contratti\Contratto;
|
use Modules\Contratti\Contratto;
|
||||||
@ -26,72 +28,30 @@ switch (post('op')) {
|
|||||||
|
|
||||||
case 'update':
|
case 'update':
|
||||||
if (post('id_record') !== null) {
|
if (post('id_record') !== null) {
|
||||||
$idstato = post('idstato');
|
$contratto->idanagrafica = post('idanagrafica');
|
||||||
$idanagrafica = post('idanagrafica');
|
$contratto->idsede = post('idsede');
|
||||||
$idsede = post('idsede');
|
$contratto->idstato = post('idstato');
|
||||||
$nome = post('nome');
|
$contratto->nome = post('nome');
|
||||||
$idagente = post('idagente');
|
$contratto->idagente = post('idagente');
|
||||||
$idpagamento = post('idpagamento');
|
$contratto->idpagamento = post('idpagamento');
|
||||||
$numero = post('numero');
|
$contratto->numero = post('numero');
|
||||||
|
$contratto->idreferente = post('idreferente');
|
||||||
|
$contratto->validita = post('validita');
|
||||||
|
$contratto->data_bozza = post('data_bozza');
|
||||||
|
$contratto->data_accettazione = post('data_accettazione');
|
||||||
|
$contratto->data_rifiuto = post('data_rifiuto');
|
||||||
|
$contratto->data_conclusione = post('data_conclusione');
|
||||||
|
$contratto->rinnovabile = post('rinnovabile');
|
||||||
|
$contratto->giorni_preavviso_rinnovo = post('giorni_preavviso_rinnovo');
|
||||||
|
$contratto->ore_preavviso_rinnovo = post('ore_preavviso_rinnovo');
|
||||||
|
$contratto->esclusioni = post('esclusioni');
|
||||||
|
$contratto->descrizione = post('descrizione');
|
||||||
|
$contratto->id_documento_fe = post('id_documento_fe');
|
||||||
|
$contratto->num_item = post('num_item');
|
||||||
|
$contratto->codice_cig = post('codice_cig');
|
||||||
|
$contratto->codice_cup = post('codice_cup');
|
||||||
|
|
||||||
// Se non specifico un budget me lo vado a ricalcolare
|
$contratto->save();
|
||||||
if ($budget != '') {
|
|
||||||
$budget = post('budget');
|
|
||||||
} else {
|
|
||||||
$q = "SELECT (SELECT SUM(subtotale) FROM co_righe_contratti GROUP BY idcontratto HAVING idcontratto=co_contratti.id) AS 'budget' FROM co_contratti WHERE id=".prepare($id_record);
|
|
||||||
$rs = $dbo->fetchArray($q);
|
|
||||||
$budget = $rs[0]['budget'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$data_bozza = post('data_bozza');
|
|
||||||
$data_accettazione = post('data_accettazione');
|
|
||||||
$data_rifiuto = post('data_rifiuto');
|
|
||||||
$data_conclusione = post('data_conclusione');
|
|
||||||
$rinnovabile = post('rinnovabile');
|
|
||||||
|
|
||||||
$giorni_preavviso_rinnovo = post('giorni_preavviso_rinnovo');
|
|
||||||
$ore_preavviso_rinnovo = post('ore_preavviso_rinnovo');
|
|
||||||
$validita = post('validita');
|
|
||||||
$idreferente = post('idreferente');
|
|
||||||
$esclusioni = post('esclusioni');
|
|
||||||
$descrizione = post('descrizione');
|
|
||||||
// $ore_lavoro = post('ore_lavoro');
|
|
||||||
|
|
||||||
$costo_orario = post('costo_orario');
|
|
||||||
$costo_km = post('costo_km');
|
|
||||||
$costo_diritto_chiamata = post('costo_diritto_chiamata');
|
|
||||||
|
|
||||||
$id_documento_fe = post('id_documento_fe');
|
|
||||||
$num_item = post('num_item');
|
|
||||||
$codice_cig = post('codice_cig');
|
|
||||||
$codice_cup = post('codice_cup');
|
|
||||||
|
|
||||||
$query = 'UPDATE co_contratti SET idanagrafica='.prepare($idanagrafica).',
|
|
||||||
idsede='.prepare($idsede).',
|
|
||||||
idstato='.prepare($idstato).',
|
|
||||||
nome='.prepare($nome).',
|
|
||||||
idagente='.prepare($idagente).',
|
|
||||||
idpagamento='.prepare($idpagamento).',
|
|
||||||
numero='.prepare($numero).',
|
|
||||||
budget='.prepare($budget).',
|
|
||||||
idreferente='.prepare($idreferente).',
|
|
||||||
validita='.prepare($validita).',
|
|
||||||
data_bozza='.prepare($data_bozza).',
|
|
||||||
data_accettazione='.prepare($data_accettazione).',
|
|
||||||
data_rifiuto='.prepare($data_rifiuto).',
|
|
||||||
data_conclusione='.prepare($data_conclusione).',
|
|
||||||
rinnovabile='.prepare($rinnovabile).',
|
|
||||||
giorni_preavviso_rinnovo='.prepare($giorni_preavviso_rinnovo).',
|
|
||||||
ore_preavviso_rinnovo='.prepare($ore_preavviso_rinnovo).',
|
|
||||||
esclusioni='.prepare($esclusioni).', descrizione='.prepare($descrizione).',
|
|
||||||
id_documento_fe='.prepare($id_documento_fe).',
|
|
||||||
num_item='.prepare($num_item).',
|
|
||||||
codice_cig='.prepare($codice_cig).',
|
|
||||||
codice_cup='.prepare($codice_cup).' WHERE id='.prepare($id_record);
|
|
||||||
|
|
||||||
// costo_diritto_chiamata='.prepare($costo_diritto_chiamata).', ore_lavoro='.prepare($ore_lavoro).', costo_orario='.prepare($costo_orario).', costo_km='.prepare($costo_km).'
|
|
||||||
|
|
||||||
$dbo->query($query);
|
|
||||||
|
|
||||||
$dbo->query('DELETE FROM my_impianti_contratti WHERE idcontratto='.prepare($id_record));
|
$dbo->query('DELETE FROM my_impianti_contratti WHERE idcontratto='.prepare($id_record));
|
||||||
foreach ((array) post('matricolaimpianto') as $matricolaimpianto) {
|
foreach ((array) post('matricolaimpianto') as $matricolaimpianto) {
|
||||||
@ -99,27 +59,27 @@ switch (post('op')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Salvataggio costi attività unitari del contratto
|
// Salvataggio costi attività unitari del contratto
|
||||||
foreach (post('costo_ore') as $idtipointervento => $valore) {
|
foreach (post('costo_ore') as $id_tipo => $valore) {
|
||||||
$rs = $dbo->fetchArray('SELECT * FROM co_contratti_tipiintervento WHERE idcontratto='.prepare($id_record).' AND idtipointervento='.prepare($idtipointervento));
|
$rs = $dbo->fetchArray('SELECT * FROM co_contratti_tipiintervento WHERE idcontratto='.prepare($id_record).' AND idtipointervento='.prepare($id_tipo));
|
||||||
|
|
||||||
// Se non esiste il record lo inserisco...
|
// Se non esiste il record lo inserisco...
|
||||||
if (sizeof($rs) == 0) {
|
if (sizeof($rs) == 0) {
|
||||||
// Se almeno un valore è diverso da 0 inserisco l'importo...
|
// Se almeno un valore è diverso da 0 inserisco l'importo...
|
||||||
if (post('costo_ore')[$idtipointervento] != 0 || post('costo_km')[$idtipointervento] != 0 || post('costo_dirittochiamata')[$idtipointervento] != 0) {
|
if (post('costo_ore')[$id_tipo] != 0 || post('costo_km')[$id_tipo] != 0 || post('costo_dirittochiamata')[$id_tipo] != 0) {
|
||||||
$dbo->query('INSERT INTO co_contratti_tipiintervento(idcontratto, idtipointervento, costo_ore, costo_km, costo_dirittochiamata, costo_ore_tecnico, costo_km_tecnico, costo_dirittochiamata_tecnico) VALUES('.prepare($id_record).', '.prepare($idtipointervento).', '.prepare(post('costo_ore')[$idtipointervento]).', '.prepare(post('costo_km')[$idtipointervento]).', '.prepare(post('costo_dirittochiamata')[$idtipointervento]).', '.prepare(post('costo_ore_tecnico')[$idtipointervento]).', '.prepare(post('costo_km_tecnico')[$idtipointervento]).', '.prepare(post('costo_dirittochiamata_tecnico')[$idtipointervento]).')');
|
$dbo->query('INSERT INTO co_contratti_tipiintervento(idcontratto, idtipointervento, costo_ore, costo_km, costo_dirittochiamata, costo_ore_tecnico, costo_km_tecnico, costo_dirittochiamata_tecnico) VALUES('.prepare($id_record).', '.prepare($id_tipo).', '.prepare(post('costo_ore')[$id_tipo]).', '.prepare(post('costo_km')[$id_tipo]).', '.prepare(post('costo_dirittochiamata')[$id_tipo]).', '.prepare(post('costo_ore_tecnico')[$id_tipo]).', '.prepare(post('costo_km_tecnico')[$id_tipo]).', '.prepare(post('costo_dirittochiamata_tecnico')[$id_tipo]).')');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...altrimenti...
|
// ...altrimenti...
|
||||||
else {
|
else {
|
||||||
// Aggiorno il nuovo valore se è diverso da 0...
|
// Aggiorno il nuovo valore se è diverso da 0...
|
||||||
if (post('costo_ore')[$idtipointervento] != 0 || post('costo_km')[$idtipointervento] != 0 || post('costo_dirittochiamata')[$idtipointervento] != 0) {
|
if (post('costo_ore')[$id_tipo] != 0 || post('costo_km')[$id_tipo] != 0 || post('costo_dirittochiamata')[$id_tipo] != 0) {
|
||||||
$dbo->query('UPDATE co_contratti_tipiintervento SET costo_ore='.prepare(post('costo_ore')[$idtipointervento]).', costo_km='.prepare(post('costo_km')[$idtipointervento]).', costo_dirittochiamata='.prepare(post('costo_dirittochiamata')[$idtipointervento]).', costo_ore_tecnico='.prepare(post('costo_ore_tecnico')[$idtipointervento]).', costo_km_tecnico='.prepare(post('costo_km_tecnico')[$idtipointervento]).', costo_dirittochiamata_tecnico='.prepare(post('costo_dirittochiamata_tecnico')[$idtipointervento]).' WHERE idcontratto='.prepare($id_record).' AND idtipointervento='.prepare($idtipointervento));
|
$dbo->query('UPDATE co_contratti_tipiintervento SET costo_ore='.prepare(post('costo_ore')[$id_tipo]).', costo_km='.prepare(post('costo_km')[$id_tipo]).', costo_dirittochiamata='.prepare(post('costo_dirittochiamata')[$id_tipo]).', costo_ore_tecnico='.prepare(post('costo_ore_tecnico')[$id_tipo]).', costo_km_tecnico='.prepare(post('costo_km_tecnico')[$id_tipo]).', costo_dirittochiamata_tecnico='.prepare(post('costo_dirittochiamata_tecnico')[$id_tipo]).' WHERE idcontratto='.prepare($id_record).' AND idtipointervento='.prepare($id_tipo));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...altrimenti cancello l'eventuale riga
|
// ...altrimenti cancello l'eventuale riga
|
||||||
else {
|
else {
|
||||||
$dbo->query('DELETE FROM co_contratti_tipiintervento WHERE idcontratto='.prepare($id_record).' AND idtipointervento='.prepare($idtipointervento));
|
$dbo->query('DELETE FROM co_contratti_tipiintervento WHERE idcontratto='.prepare($id_record).' AND idtipointervento='.prepare($id_tipo));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -150,6 +110,42 @@ switch (post('op')) {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'manage_articolo':
|
||||||
|
if (post('idriga') != null) {
|
||||||
|
$articolo = Articolo::find(post('idriga'));
|
||||||
|
} else {
|
||||||
|
$originale = ArticoloOriginale::find(post('idarticolo'));
|
||||||
|
$articolo = Articolo::build($contratto, $originale);
|
||||||
|
}
|
||||||
|
|
||||||
|
$qta = post('qta');
|
||||||
|
|
||||||
|
$articolo->descrizione = post('descrizione');
|
||||||
|
$articolo->um = post('um') ?: null;
|
||||||
|
|
||||||
|
$articolo->id_iva = post('idiva');
|
||||||
|
|
||||||
|
//$articolo->prezzo_unitario_acquisto = post('prezzo_acquisto') ?: 0;
|
||||||
|
$articolo->prezzo_unitario_vendita = post('prezzo');
|
||||||
|
$articolo->sconto_unitario = post('sconto');
|
||||||
|
$articolo->tipo_sconto = post('tipo_sconto');
|
||||||
|
|
||||||
|
try {
|
||||||
|
$articolo->qta = $qta;
|
||||||
|
} catch (UnexpectedValueException $e) {
|
||||||
|
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$articolo->save();
|
||||||
|
|
||||||
|
if (post('idriga') != null) {
|
||||||
|
flash()->info(tr('Articolo modificato!'));
|
||||||
|
} else {
|
||||||
|
flash()->info(tr('Articolo aggiunto!'));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
case 'manage_sconto':
|
case 'manage_sconto':
|
||||||
if (post('idriga') != null) {
|
if (post('idriga') != null) {
|
||||||
$sconto = Sconto::find(post('idriga'));
|
$sconto = Sconto::find(post('idriga'));
|
||||||
@ -173,108 +169,72 @@ switch (post('op')) {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Aggiungo una riga al contratto
|
case 'manage_riga':
|
||||||
case 'addriga':
|
if (post('idriga') != null) {
|
||||||
$idiva = post('idiva');
|
$riga = Riga::find(post('idriga'));
|
||||||
$idarticolo = post('idarticolo');
|
} else {
|
||||||
$descrizione = post('descrizione');
|
$riga = Riga::build($contratto);
|
||||||
|
}
|
||||||
|
|
||||||
$qta = post('qta');
|
$qta = post('qta');
|
||||||
$prezzo = post('prezzo');
|
|
||||||
|
|
||||||
// Calcolo dello sconto
|
$riga->descrizione = post('descrizione');
|
||||||
$sconto_unitario = post('sconto');
|
$riga->um = post('um') ?: null;
|
||||||
$tipo_sconto = post('tipo_sconto');
|
|
||||||
$sconto = calcola_sconto([
|
|
||||||
'sconto' => $sconto_unitario,
|
|
||||||
'prezzo' => $prezzo,
|
|
||||||
'tipo' => $tipo_sconto,
|
|
||||||
'qta' => $qta,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$subtot = $prezzo * $qta;
|
$riga->id_iva = post('idiva');
|
||||||
|
|
||||||
$um = post('um');
|
//$riga->prezzo_unitario_acquisto = post('prezzo_acquisto') ?: 0;
|
||||||
|
$riga->prezzo_unitario_vendita = post('prezzo');
|
||||||
|
$riga->sconto_unitario = post('sconto');
|
||||||
|
$riga->tipo_sconto = post('tipo_sconto');
|
||||||
|
|
||||||
// Lettura iva dell'articolo
|
$riga->qta = $qta;
|
||||||
$rs2 = $dbo->fetchArray('SELECT percentuale, descrizione, indetraibile FROM co_iva WHERE id='.prepare($idiva));
|
|
||||||
$iva = ($prezzo * $qta - $sconto) / 100 * $rs2[0]['percentuale'];
|
|
||||||
$iva_indetraibile = $iva / 100 * $rs2[0]['indetraibile'];
|
|
||||||
$desc_iva = $rs2[0]['descrizione'];
|
|
||||||
|
|
||||||
$dbo->query('INSERT INTO co_righe_contratti(idcontratto, idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, um, qta, sconto, sconto_unitario, tipo_sconto, is_descrizione, `order`) VALUES ('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($um).', '.prepare($qta).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare(empty($qta)).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_contratti AS t WHERE idcontratto='.prepare($id_record).'))');
|
$riga->save();
|
||||||
|
|
||||||
// Messaggi informativi
|
if (post('idriga') != null) {
|
||||||
if (!empty($idarticolo)) {
|
flash()->info(tr('Riga modificata!'));
|
||||||
flash()->info(tr('Articolo aggiunto!'));
|
} else {
|
||||||
} elseif (!empty($qta)) {
|
|
||||||
flash()->info(tr('Riga aggiunta!'));
|
flash()->info(tr('Riga aggiunta!'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ricalcolo inps, ritenuta e bollo
|
||||||
|
ricalcola_costiagg_fattura($id_record);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'manage_descrizione':
|
||||||
|
if (post('idriga') != null) {
|
||||||
|
$riga = Descrizione::find(post('idriga'));
|
||||||
|
} else {
|
||||||
|
$riga = Descrizione::build($contratto);
|
||||||
|
}
|
||||||
|
|
||||||
|
$riga->descrizione = post('descrizione');
|
||||||
|
|
||||||
|
$riga->save();
|
||||||
|
|
||||||
|
if (post('idriga') != null) {
|
||||||
|
flash()->info(tr('Riga descrittiva modificata!'));
|
||||||
} else {
|
} else {
|
||||||
flash()->info(tr('Riga descrittiva aggiunta!'));
|
flash()->info(tr('Riga descrittiva aggiunta!'));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'editriga':
|
|
||||||
$idriga = post('idriga');
|
|
||||||
|
|
||||||
$rs = $dbo->fetchArray("SELECT * FROM co_righe_contratti WHERE id='".$idriga."'");
|
|
||||||
$is_descrizione = $rs[0]['is_descrizione'];
|
|
||||||
|
|
||||||
$idarticolo = post('idarticolo');
|
|
||||||
$descrizione = post('descrizione');
|
|
||||||
|
|
||||||
$qta = post('qta');
|
|
||||||
$prezzo = post('prezzo');
|
|
||||||
$subtot = $prezzo * $qta;
|
|
||||||
|
|
||||||
// Calcolo dello sconto
|
|
||||||
$sconto_unitario = post('sconto');
|
|
||||||
$tipo_sconto = post('tipo_sconto');
|
|
||||||
$sconto = calcola_sconto([
|
|
||||||
'sconto' => $sconto_unitario,
|
|
||||||
'prezzo' => $prezzo,
|
|
||||||
'tipo' => $tipo_sconto,
|
|
||||||
'qta' => $qta,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$idiva = post('idiva');
|
|
||||||
$um = post('um');
|
|
||||||
|
|
||||||
// Calcolo iva
|
|
||||||
$query = 'SELECT percentuale, descrizione, indetraibile FROM co_iva WHERE id='.prepare($idiva);
|
|
||||||
$rs = $dbo->fetchArray($query);
|
|
||||||
$iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
|
|
||||||
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
|
|
||||||
$desc_iva = $rs[0]['descrizione'];
|
|
||||||
|
|
||||||
// Modifica riga generica sul documento
|
|
||||||
if ($is_descrizione == 0) {
|
|
||||||
$query = 'UPDATE co_righe_contratti SET idarticolo='.prepare($idarticolo).', idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga);
|
|
||||||
} else {
|
|
||||||
$query = 'UPDATE co_righe_contratti SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga);
|
|
||||||
}
|
|
||||||
$dbo->query($query);
|
|
||||||
|
|
||||||
flash()->info(tr('Riga modificata!'));
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Eliminazione riga
|
// Eliminazione riga
|
||||||
case 'delriga':
|
case 'delete_riga':
|
||||||
if (post('idriga') !== null) {
|
$id_riga = post('idriga');
|
||||||
$idriga = post('idriga');
|
if ($id_riga !== null) {
|
||||||
|
$riga = Descrizione::find($id_riga) ?: Riga::find($id_riga);
|
||||||
|
$riga = $riga ? $riga : Articolo::find($id_riga);
|
||||||
|
$riga = $riga ? $riga : Sconto::find($id_riga);
|
||||||
|
|
||||||
$query = 'DELETE FROM `co_righe_contratti` WHERE idcontratto='.prepare($id_record).' AND id='.prepare($idriga);
|
$riga->delete();
|
||||||
|
|
||||||
if ($dbo->query($query)) {
|
flash()->info(tr('Riga eliminata!'));
|
||||||
flash()->info(tr('Riga eliminata!'));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ricalcolo il budget
|
|
||||||
$dbo->query('UPDATE co_contratti SET budget=( SELECT SUM(subtotale) FROM co_righe_contratti GROUP BY idcontratto HAVING idcontratto=co_contratti.id ) WHERE id='.prepare($id_record));
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Scollegamento intervento da contratto
|
// Scollegamento intervento da contratto
|
||||||
@ -292,16 +252,16 @@ switch (post('op')) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'update_position':
|
case 'update_position':
|
||||||
$orders = explode(',', $_POST['order']);
|
$orders = explode(',', $_POST['order']);
|
||||||
$order = 0;
|
$order = 0;
|
||||||
|
|
||||||
foreach ($orders as $idriga) {
|
foreach ($orders as $idriga) {
|
||||||
$dbo->query('UPDATE `co_righe_contratti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
|
$dbo->query('UPDATE `co_righe_contratti` SET `order`='.prepare($order).' WHERE id='.prepare($idriga));
|
||||||
++$order;
|
++$order;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// eliminazione contratto
|
// eliminazione contratto
|
||||||
case 'delete':
|
case 'delete':
|
||||||
|
@ -9,7 +9,7 @@ $documento = Contratto::find($id_record);
|
|||||||
|
|
||||||
// Impostazioni per la gestione
|
// Impostazioni per la gestione
|
||||||
$options = [
|
$options = [
|
||||||
'op' => 'addriga',
|
'op' => 'manage_riga',
|
||||||
'action' => 'add',
|
'action' => 'add',
|
||||||
'dir' => $documento->direzione,
|
'dir' => $documento->direzione,
|
||||||
'idanagrafica' => $documento['idanagrafica'],
|
'idanagrafica' => $documento['idanagrafica'],
|
||||||
@ -43,12 +43,15 @@ if ($listino[0]['prc_guadagno'] > 0) {
|
|||||||
$file = 'riga';
|
$file = 'riga';
|
||||||
if (get('is_descrizione') !== null) {
|
if (get('is_descrizione') !== null) {
|
||||||
$file = 'descrizione';
|
$file = 'descrizione';
|
||||||
|
|
||||||
|
$options['op'] = 'manage_descrizione';
|
||||||
} elseif (get('is_articolo') !== null) {
|
} elseif (get('is_articolo') !== null) {
|
||||||
$file = 'articolo';
|
$file = 'articolo';
|
||||||
|
|
||||||
|
$options['op'] = 'manage_articolo';
|
||||||
} elseif (get('is_sconto') !== null) {
|
} elseif (get('is_sconto') !== null) {
|
||||||
$file = 'sconto';
|
$file = 'sconto';
|
||||||
|
|
||||||
$options['op'] = 'manage_sconto';
|
$options['op'] = 'manage_sconto';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo App::load($file.'.php', $result, $options);
|
echo App::load($file.'.php', $result, $options);
|
||||||
|
@ -9,7 +9,7 @@ $documento = Contratto::find($id_record);
|
|||||||
|
|
||||||
// Impostazioni per la gestione
|
// Impostazioni per la gestione
|
||||||
$options = [
|
$options = [
|
||||||
'op' => 'editriga',
|
'op' => 'manage_riga',
|
||||||
'action' => 'edit',
|
'action' => 'edit',
|
||||||
'dir' => $documento->direzione,
|
'dir' => $documento->direzione,
|
||||||
'idanagrafica' => $documento['idanagrafica'],
|
'idanagrafica' => $documento['idanagrafica'],
|
||||||
@ -29,8 +29,12 @@ $result['prezzo'] = $riga->prezzo_unitario_vendita;
|
|||||||
$file = 'riga';
|
$file = 'riga';
|
||||||
if ($riga->isDescrizione()) {
|
if ($riga->isDescrizione()) {
|
||||||
$file = 'descrizione';
|
$file = 'descrizione';
|
||||||
|
|
||||||
|
$options['op'] = 'manage_descrizione';
|
||||||
} elseif ($riga->isArticolo()) {
|
} elseif ($riga->isArticolo()) {
|
||||||
$file = 'articolo';
|
$file = 'articolo';
|
||||||
|
|
||||||
|
$options['op'] = 'manage_articolo';
|
||||||
} elseif ($riga->isSconto()) {
|
} elseif ($riga->isSconto()) {
|
||||||
$file = 'sconto';
|
$file = 'sconto';
|
||||||
|
|
||||||
|
@ -2,17 +2,15 @@
|
|||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
/*
|
// Righe documento
|
||||||
ARTICOLI + RIGHE GENERICHE
|
$righe = $contratto->getRighe();
|
||||||
*/
|
|
||||||
$rs = $dbo->fetchArray('SELECT *, round(sconto_unitario,'.setting('Cifre decimali per importi').') AS sconto_unitario, round(sconto,'.setting('Cifre decimali per importi').') AS sconto, round(subtotale,'.setting('Cifre decimali per importi').') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY `order`');
|
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<table class="table table-striped table-hover table-condensed table-bordered">
|
<table class="table table-striped table-hover table-condensed table-bordered">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>'.tr('Descrizione').'</th>
|
<th>'.tr('Descrizione').'</th>
|
||||||
<th width="120">'.tr('Q.tà').'</th><th width="120">'.tr('Q.tà').' <i title="'.tr('da evadere').' / '.tr('totale').'" class="tip fa fa-question-circle-o"></i></th>
|
<th width="120">'.tr('Q.tà').' <i title="'.tr('da evadere').' / '.tr('totale').'" class="tip fa fa-question-circle-o"></i></th>
|
||||||
<th width="80">'.tr('U.m.').'</th>
|
<th width="80">'.tr('U.m.').'</th>
|
||||||
<th width="120">'.tr('Costo unitario').'</th>
|
<th width="120">'.tr('Costo unitario').'</th>
|
||||||
<th width="120">'.tr('Iva').'</th>
|
<th width="120">'.tr('Iva').'</th>
|
||||||
@ -22,79 +20,69 @@ echo '
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody class="sortable">';
|
<tbody class="sortable">';
|
||||||
|
|
||||||
foreach ($rs as $r) {
|
foreach ($righe as $riga) {
|
||||||
|
echo '
|
||||||
|
<tr data-id="'.$riga->id.'">';
|
||||||
|
|
||||||
// Descrizione
|
// Descrizione
|
||||||
|
$descrizione = nl2br($riga->descrizione);
|
||||||
|
if ($riga->isArticolo()) {
|
||||||
|
$descrizione = Modules::link('Articoli', $riga->idarticolo, $riga->articolo->codice.' - '.$descrizione);
|
||||||
|
}
|
||||||
echo '
|
echo '
|
||||||
<tr data-id="'.$r['id'].'">
|
<td>
|
||||||
<td>';
|
'.$descrizione.'
|
||||||
if (!empty($r['idarticolo'])) {
|
</td>';
|
||||||
echo Modules::link('Articoli', $r['idarticolo'], $r['codice'].' - '.$r['descrizione']);
|
|
||||||
|
if ($riga->isDescrizione()) {
|
||||||
|
echo '
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>';
|
||||||
} else {
|
} else {
|
||||||
echo nl2br($r['descrizione']);
|
// Q.tà
|
||||||
}
|
echo '
|
||||||
|
<td class="text-center">
|
||||||
echo '
|
'.Translator::numberToLocale($riga->qta_rimanente, 'qta').' / '.Translator::numberToLocale($riga->qta, 'qta').'
|
||||||
</td>';
|
</td>';
|
||||||
|
|
||||||
// Q.tà
|
// Unità di misura
|
||||||
echo '
|
|
||||||
<td class="text-center">';
|
|
||||||
|
|
||||||
if (empty($r['is_descrizione'])) {
|
|
||||||
echo '
|
echo '
|
||||||
<span >'.Translator::numberToLocale($r['qta'] - $r['qta_evasa'], 'qta').' / '.Translator::numberToLocale($r['qta'], 'qta').'</span>';
|
<td class="text-center">
|
||||||
}
|
'.$riga->um.'
|
||||||
echo '
|
|
||||||
</td>';
|
</td>';
|
||||||
|
|
||||||
// um
|
// Costo unitario
|
||||||
echo '
|
|
||||||
<td class="text-center">';
|
|
||||||
if (empty($r['is_descrizione'])) {
|
|
||||||
echo '
|
echo '
|
||||||
'.$r['um'];
|
<td class="text-right">
|
||||||
}
|
'.moneyFormat($riga->prezzo_unitario_vendita);
|
||||||
echo '
|
|
||||||
</td>';
|
|
||||||
|
|
||||||
// Costo unitario
|
if ($riga->sconto_unitario > 0) {
|
||||||
echo '
|
|
||||||
<td class="text-right">';
|
|
||||||
if (empty($r['is_descrizione'])) {
|
|
||||||
echo '
|
|
||||||
'.moneyFormat($r['subtotale'] / $r['qta']);
|
|
||||||
|
|
||||||
if ($r['sconto_unitario'] > 0) {
|
|
||||||
echo '
|
echo '
|
||||||
<br><small class="label label-danger">'.tr('sconto _TOT_ _TYPE_', [
|
<br><small class="label label-danger">'.tr('sconto _TOT_ _TYPE_', [
|
||||||
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
|
'_TOT_' => Translator::numberToLocale($riga->sconto_unitario),
|
||||||
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : currency()),
|
'_TYPE_' => ($riga->tipo_sconto == 'PRC' ? '%' : currency()),
|
||||||
]).'</small>';
|
]).'</small>';
|
||||||
}
|
}
|
||||||
}
|
|
||||||
echo'
|
echo'
|
||||||
</td>';
|
</td>';
|
||||||
|
|
||||||
// IVA
|
// IVA
|
||||||
echo '
|
|
||||||
<td class="text-right">';
|
|
||||||
if (empty($r['is_descrizione'])) {
|
|
||||||
echo '
|
echo '
|
||||||
'.moneyFormat($r['iva'])."<br>
|
<td class="text-right">
|
||||||
<small class='help-block'>".$r['desc_iva'].'</small>';
|
'.moneyFormat($riga->iva).'<br>
|
||||||
}
|
<small class="help-block">'.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ('.$riga->aliquota->codice_natura_fe.')' : null).'</small>
|
||||||
echo '
|
|
||||||
</td>';
|
</td>';
|
||||||
|
|
||||||
// Imponibile
|
// Imponibile
|
||||||
echo '
|
|
||||||
<td class="text-right">';
|
|
||||||
if (empty($r['is_descrizione'])) {
|
|
||||||
echo '
|
echo '
|
||||||
'.moneyFormat($r['subtotale'] - $r['sconto']);
|
<td class="text-right">
|
||||||
}
|
'.moneyFormat($riga->imponibile_scontato).'
|
||||||
echo '
|
|
||||||
</td>';
|
</td>';
|
||||||
|
}
|
||||||
|
|
||||||
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
|
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
|
||||||
echo '
|
echo '
|
||||||
@ -102,20 +90,14 @@ foreach ($rs as $r) {
|
|||||||
|
|
||||||
if ($record['stato'] != 'Pagato') {
|
if ($record['stato'] != 'Pagato') {
|
||||||
echo '
|
echo '
|
||||||
<form action="'.$rootdir.'/editor.php?id_module='.Modules::get('Contratti')['id'].'&id_record='.$id_record.'" method="post" id="delete-form-'.$r['id'].'" role="form">
|
<form action="" method="post" id="delete-form-'.$riga->id.'" role="form">
|
||||||
<input type="hidden" name="backto" value="record-edit">
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
<input type="hidden" name="id_record" value="'.$id_record.'">
|
<input type="hidden" name="op" value="delete_riga">
|
||||||
<input type="hidden" name="op" value="delriga">
|
<input type="hidden" name="idriga" value="'.$riga->id.'">
|
||||||
<input type="hidden" name="idriga" value="'.$r['id'].'">
|
|
||||||
<input type="hidden" name="idarticolo" value="'.$r['idarticolo'].'">
|
|
||||||
|
|
||||||
<div class="btn-group">';
|
<div class="btn-group">
|
||||||
|
<a class="btn btn-xs btn-warning" onclick="editRow('.$riga->id.')"><i class="fa fa-edit"></i></a>
|
||||||
echo "
|
<a class="btn btn-xs btn-danger" onclick="deleteRow('.$riga->id.')"><i class="fa fa-trash"></i></a>
|
||||||
<a class='btn btn-xs btn-warning' onclick=\"launch_modal('Modifica riga', '".$rootdir.'/modules/contratti/row-edit.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['id']."', 1 );\"><i class='fa fa-edit'></i></a>
|
|
||||||
|
|
||||||
<a href='javascript:;' class='btn btn-xs btn-danger' title='Rimuovi questa riga' onclick=\"if( confirm('Rimuovere questa riga dal contratto?') ){ $('#delete-form-".$r['id']."').submit(); }\"><i class='fa fa-trash'></i></a>";
|
|
||||||
echo '
|
|
||||||
</div>
|
</div>
|
||||||
</form>';
|
</form>';
|
||||||
}
|
}
|
||||||
@ -130,42 +112,43 @@ foreach ($rs as $r) {
|
|||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calcoli
|
echo '
|
||||||
$imponibile = sum(array_column($rs, 'subtotale'));
|
<script>
|
||||||
$sconto = sum(array_column($rs, 'sconto'));
|
function editRow(id){
|
||||||
$iva = sum(array_column($rs, 'iva'));
|
launch_modal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&idriga=" + id);
|
||||||
|
}
|
||||||
|
|
||||||
$imponibile_scontato = sum($imponibile, -$sconto);
|
function deleteRow(id){
|
||||||
|
if(confirm("'.tr('Rimuovere questa riga dal contratto?').'")){
|
||||||
$totale = sum([
|
$("#delete-form-" + id).submit();
|
||||||
$imponibile_scontato,
|
}
|
||||||
$iva,
|
}
|
||||||
]);
|
</script>';
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
</tbody>';
|
</tbody>';
|
||||||
|
|
||||||
// SCONTO
|
// SCONTO
|
||||||
if (abs($sconto) > 0) {
|
if (!empty($contratto->sconto)) {
|
||||||
// Totale imponibile scontato
|
// Totale imponibile scontato
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5"" class="text-right">
|
<td colspan="5" class="text-right">
|
||||||
<b>'.tr('Imponibile', [], ['upper' => true]).':</b>
|
<b>'.tr('Imponibile', [], ['upper' => true]).':</b>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<span id="budget">'.moneyFormat($imponibile, 2).'</span>
|
'.moneyFormat($contratto->imponibile, 2).'
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>';
|
</tr>';
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5"" class="text-right">
|
<td colspan="5" class="text-right">
|
||||||
<b>'.tr('Sconto', [], ['upper' => true]).':</b>
|
<b>'.tr('Sconto', [], ['upper' => true]).':</b>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
'.moneyFormat($sconto, 2).'
|
'.moneyFormat($contratto->sconto, 2).'
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>';
|
</tr>';
|
||||||
@ -173,11 +156,11 @@ if (abs($sconto) > 0) {
|
|||||||
// Totale imponibile scontato
|
// Totale imponibile scontato
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5"" class="text-right">
|
<td colspan="5" class="text-right">
|
||||||
<b>'.tr('Imponibile scontato', [], ['upper' => true]).':</b>
|
<b>'.tr('Imponibile scontato', [], ['upper' => true]).':</b>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
'.moneyFormat($imponibile_scontato, 2).'
|
'.moneyFormat($contratto->imponibile_scontato, 2).'
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>';
|
</tr>';
|
||||||
@ -185,11 +168,11 @@ if (abs($sconto) > 0) {
|
|||||||
// Totale imponibile
|
// Totale imponibile
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5"" class="text-right">
|
<td colspan="5" class="text-right">
|
||||||
<b>'.tr('Imponibile', [], ['upper' => true]).':</b>
|
<b>'.tr('Imponibile', [], ['upper' => true]).':</b>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<span id="budget">'.moneyFormat($imponibile, 2).'</span>
|
<span id="budget">'.moneyFormat($contratto->imponibile, 2).'</span>
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>';
|
</tr>';
|
||||||
@ -198,11 +181,11 @@ if (abs($sconto) > 0) {
|
|||||||
// Totale iva
|
// Totale iva
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5"" class="text-right">
|
<td colspan="5" class="text-right">
|
||||||
<b>'.tr('Iva', [], ['upper' => true]).':</b>
|
<b>'.tr('Iva', [], ['upper' => true]).':</b>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
'.moneyFormat($iva, 2).'
|
'.moneyFormat($contratto->iva, 2).'
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>';
|
</tr>';
|
||||||
@ -210,11 +193,11 @@ echo '
|
|||||||
// Totale contratto
|
// Totale contratto
|
||||||
echo '
|
echo '
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="5"" class="text-right">
|
<td colspan="5" class="text-right">
|
||||||
<b>'.tr('Totale', [], ['upper' => true]).':</b>
|
<b>'.tr('Totale', [], ['upper' => true]).':</b>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
'.moneyFormat($totale, 2).'
|
'.moneyFormat($contratto->totale, 2).'
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>';
|
</tr>';
|
||||||
|
@ -20,4 +20,12 @@ trait RelationTrait
|
|||||||
{
|
{
|
||||||
return $this->parent();
|
return $this->parent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function delete()
|
||||||
|
{
|
||||||
|
$parent = $this->parent;
|
||||||
|
$parent->save();
|
||||||
|
|
||||||
|
return parent::delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,6 +137,18 @@ class Contratto extends Document
|
|||||||
return $this->hasMany(Intervento::class, 'id_contratto');
|
return $this->hasMany(Intervento::class, 'id_contratto');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function fixBudget()
|
||||||
|
{
|
||||||
|
$this->budget = $this->imponibile_scontato;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function save(array $options = [])
|
||||||
|
{
|
||||||
|
$this->fixBudget();
|
||||||
|
|
||||||
|
return parent::save($options);
|
||||||
|
}
|
||||||
|
|
||||||
// Metodi statici
|
// Metodi statici
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
use Modules\Fatture\Components\Riga;
|
// Righe documento
|
||||||
|
|
||||||
// Righe fattura
|
|
||||||
$righe = $fattura->getRighe();
|
$righe = $fattura->getRighe();
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
@ -332,7 +332,7 @@ class Fattura extends Document
|
|||||||
*/
|
*/
|
||||||
public static function registraScadenza(Fattura $fattura, $importo, $scadenza, $is_pagato, $type = 'fattura')
|
public static function registraScadenza(Fattura $fattura, $importo, $scadenza, $is_pagato, $type = 'fattura')
|
||||||
{
|
{
|
||||||
//Calcolo la descrizione
|
// Individuazione della descrizione
|
||||||
$descrizione = database()->fetchOne("SELECT CONCAT(co_tipidocumento.descrizione, CONCAT(' numero ', IF(numero_esterno!='', numero_esterno, numero))) AS descrizione FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='".$fattura->id."'")['descrizione'];
|
$descrizione = database()->fetchOne("SELECT CONCAT(co_tipidocumento.descrizione, CONCAT(' numero ', IF(numero_esterno!='', numero_esterno, numero))) AS descrizione FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.id='".$fattura->id."'")['descrizione'];
|
||||||
|
|
||||||
database()->insert('co_scadenziario', [
|
database()->insert('co_scadenziario', [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user