Inizio revisione modulo Scadenzario
This commit is contained in:
parent
d9aec773d5
commit
2f8f472fe8
|
@ -334,7 +334,7 @@ elseif ($record['stato'] == 'Bozza') {
|
|||
<p class="pull-left"><strong>'.tr('Scadenze').'</strong></p>
|
||||
|
||||
<div class="btn-group pull-right">
|
||||
'.Modules::link('Scadenzario', $fattura->gruppoScadenze->id, tr('<i class="fa fa-edit tip" title="'.tr('Modifica scadenze').'"></i>'), '', 'class="btn btn-xs btn-primary"');
|
||||
'.Modules::link('Scadenzario', $fattura->getGruppoScadenze()->id, tr('<i class="fa fa-edit tip" title="'.tr('Modifica scadenze').'"></i>'), '', 'class="btn btn-xs btn-primary"');
|
||||
|
||||
// Ricalcola scadenze disponibile solo per fatture di acquisto
|
||||
if ($fattura->isFE() && $ricalcola && $module['name'] == 'Fatture di acquisto') {
|
||||
|
|
|
@ -444,14 +444,15 @@ class Fattura extends Document
|
|||
return $this->hasOne(Components\Riga::class, 'iddocumento')->where('id', $this->id_riga_bollo);
|
||||
}
|
||||
|
||||
public function gruppoScadenze()
|
||||
public function getGruppoScadenze()
|
||||
{
|
||||
return $this->hasOne(Gruppo::class, 'id_documento');
|
||||
return $this->gestoreScadenze->getGruppo();
|
||||
}
|
||||
|
||||
public function scadenze()
|
||||
{
|
||||
return $this->gruppoScadenze->scadenze()
|
||||
return $this->getGruppoScadenze()
|
||||
->scadenze()
|
||||
->orderBy('scadenza');
|
||||
}
|
||||
|
||||
|
@ -608,7 +609,7 @@ class Fattura extends Document
|
|||
|| $options[0] == 'forza_emissione'
|
||||
) {
|
||||
// Correzione descrizione per Gruppo Scadenze di riferimento
|
||||
$gruppo = $this->gruppoScadenze;
|
||||
$gruppo = $this->gestoreScadenze->getGruppo();
|
||||
$gruppo->descrizione = $this->getReference();
|
||||
$gruppo->save();
|
||||
|
||||
|
|
|
@ -32,20 +32,35 @@ use Util\XML;
|
|||
*/
|
||||
class Scadenze
|
||||
{
|
||||
/**
|
||||
* @var Fattura
|
||||
*/
|
||||
private $fattura;
|
||||
|
||||
/**
|
||||
* @var Gruppo
|
||||
*/
|
||||
private $gruppo;
|
||||
|
||||
public function __construct(Fattura $fattura)
|
||||
{
|
||||
$this->fattura = $fattura;
|
||||
}
|
||||
|
||||
public function getGruppo(){
|
||||
// Generazione Gruppo Scadenze di riferimento
|
||||
if (empty($this->fattura->gruppoScadenze)) {
|
||||
$gruppo = Gruppo::build($this->fattura->getReference(), $this->fattura);
|
||||
if (isset($this->gruppo)){
|
||||
return $this->gruppo;
|
||||
}
|
||||
|
||||
return $this->fattura->gruppoScadenze;
|
||||
// Ricerca Gruppo Scadenza associato alla Fattura
|
||||
$this->gruppo = Gruppo::where('id_documento', '=', $this->fattura->id)->first();
|
||||
|
||||
// Generazione Gruppo Scadenza associato alla Fattura
|
||||
if (empty($this->gruppo)){
|
||||
$this->gruppo = Gruppo::build($this->fattura->getReference(), $this->fattura);
|
||||
}
|
||||
|
||||
return $this->gruppo;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -87,7 +102,7 @@ class Scadenze
|
|||
|
||||
$importo = -$ritenuta_acconto;
|
||||
|
||||
self::registraScadenza($this->fattura, $importo, $scadenza, $is_pagato, 'ritenutaacconto');
|
||||
$this->registraScadenza($importo, $scadenza, $is_pagato, 'ritenutaacconto');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,9 +122,9 @@ class Scadenze
|
|||
* @param bool $is_pagato
|
||||
* @param string $tipo
|
||||
*/
|
||||
protected static function registraScadenza(Fattura $fattura, $importo, $data_scadenza, $is_pagato, $tipo = 'fattura')
|
||||
protected function registraScadenza($importo, $data_scadenza, $is_pagato, $tipo = 'fattura')
|
||||
{
|
||||
return Scadenza::build($fattura->getGruppo(), $importo, $data_scadenza, $tipo, $is_pagato);
|
||||
return Scadenza::build($this->getGruppo(), $importo, $data_scadenza, $tipo, $is_pagato);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -140,7 +155,7 @@ class Scadenze
|
|||
$scadenza = !empty($rata['DataScadenzaPagamento']) ? FatturaElettronicaImport::parseDate($rata['DataScadenzaPagamento']) : $this->fattura->data;
|
||||
$importo = $this->fattura->isNota() ? $rata['ImportoPagamento'] : -$rata['ImportoPagamento'];
|
||||
|
||||
self::registraScadenza($this->fattura, $importo, $scadenza, $is_pagato);
|
||||
$this->registraScadenza($importo, $scadenza, $is_pagato);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,7 +181,7 @@ class Scadenze
|
|||
$scadenza = $rata['scadenza'];
|
||||
$importo = $direzione == 'uscita' ? -$rata['importo'] : $rata['importo'];
|
||||
|
||||
self::registraScadenza($this->fattura, $importo, $scadenza, $is_pagato);
|
||||
$this->registraScadenza($importo, $scadenza, $is_pagato);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,55 +35,50 @@ echo '
|
|||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">
|
||||
'.tr('Dettagli scadenza').'
|
||||
<button type="button" class="btn btn-xs btn-info pull-right tip '.(empty($documento) ? 'disabled' : '').'" id="add-scadenza" '.(empty($documento) ? 'disabled' : '').' title="'.tr('È possibile aggiungere scadenze solo se è presente il collegamento a un documento, in caso contrario è consigliato creare più scadenze con la stessa descrizione').'">
|
||||
<i class="fa fa-plus"></i> '.tr('Aggiungi scadenza').'
|
||||
</button>
|
||||
'.tr('Gruppo Scadenze').'
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
|
||||
<!-- Info scadenza -->
|
||||
<div class="col-md-6">';
|
||||
<div class="panel-body">';
|
||||
|
||||
if (!empty($documento)) {
|
||||
echo '
|
||||
<table class="table table-striped table-hover table-condensed table-bordered">
|
||||
<tr>
|
||||
<th width="120">'.($dir == 'entrata' ? tr('Cliente') : tr('Fornitore')).':</th>
|
||||
<td>
|
||||
'.Modules::link('Anagrafiche', $documento->anagrafica->id, $documento->anagrafica->ragione_sociale).'
|
||||
</td>
|
||||
</tr>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h4>' . tr('Documento') . '</h4>
|
||||
' . Modules::link($documento->getModule(), $documento->id, $documento->getReference()) . '
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<th>'.tr('Documento').':</th>
|
||||
<td>'.$documento->tipo->descrizione.'</td>
|
||||
</tr>
|
||||
<div class="col-md-4">
|
||||
<h4>' . ($documento->direzione == 'entrata' ? tr('Cliente') : tr('Fornitore')) . '</h4>
|
||||
' . Modules::link('Anagrafiche', $documento->anagrafica->id, $documento->anagrafica->ragione_sociale) . '
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<th>'.tr('Numero').':</th>
|
||||
<td>'.$numero.'</td>
|
||||
</tr>
|
||||
<div class="col-md-4">
|
||||
<h4>' . tr('Netto a pagare') . '</h4>
|
||||
' . moneyFormat($documento->netto) . '
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<th>'.tr('Data').':</th>
|
||||
<td>'.Translator::dateToLocale($documento->data).'</td>
|
||||
</tr>
|
||||
<div class="clearfix"></div>
|
||||
<br>';
|
||||
}
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{[ "type": "text", "label": "'.tr('Descrizione').'", "name": "descrizione", "value": "'.$gruppo['descrizione'].'" ]}
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<th>'.tr('Netto a pagare').':</th>
|
||||
<td>'.moneyFormat($documento->netto).'</td>
|
||||
</tr>
|
||||
<div class="col-md-4">
|
||||
{[ "type": "date", "label": "'.tr('Data di emissione').'", "name": "data_emissione", "value": "'.$gruppo['data_emissione'].'" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<th>'.tr('Note').':</th>
|
||||
<td>
|
||||
{[ "type": "textarea", "name": "note", "value": "'.$record['note'].'" ]}
|
||||
</td>
|
||||
</tr>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "ckeditor", "label": "'.tr('Note').'", "name": "note", "value": "'.$gruppo['note'].'" ]}
|
||||
</div>
|
||||
</div>';
|
||||
|
||||
<tr>
|
||||
<th>'.tr('Distinta').':</th>
|
||||
|
@ -126,22 +121,34 @@ if (!empty($documento)) {
|
|||
|
||||
echo '
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Elenco scadenze -->
|
||||
<div class="col-md-6">
|
||||
<div class="box box-primary">
|
||||
<div class="box-header">
|
||||
<h3 class="box-title">'.tr('Elenco scadenza').'</h3>
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-xs btn-info tip '.(empty($documento) ? 'disabled' : '').'" id="add-scadenza" '.(empty($documento) ? 'disabled' : '').' title="'.tr('È possibile aggiungere scadenze solo se è presente il collegamento a un documento, in caso contrario è consigliato creare più scadenze con la stessa descrizione').'">
|
||||
<i class="fa fa-plus"></i> '.tr('Aggiungi scadenza').'
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box-body">
|
||||
<table class="table table-hover table-condensed table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="150">'.tr('Data').'</th>
|
||||
<th width="150">'.tr('Importo').'</th>
|
||||
<th width="150">'.tr('Pagato').'</th>
|
||||
<th width="150">'.tr('Data concordata').'</th>
|
||||
<th class="text-center" width="150">'.tr('Data').'</th>
|
||||
<th class="text-center" width="150">'.tr('Importo').'</th>
|
||||
<th class="text-center" width="150">'.tr('Pagato').'</th>
|
||||
<th class="text-center" width="150">'.tr('Data concordata').'</th>
|
||||
<th class="text-center" width="150">'.tr('Note').'</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody id="scadenze">';
|
||||
|
||||
foreach ($scadenze as $i => $scadenza) {
|
||||
foreach ($scadenze as $i => $scadenza) {
|
||||
if ($scadenza['da_pagare'] == $scadenza['pagato']) {
|
||||
$class = 'success';
|
||||
} elseif (abs($scadenza['pagato']) == 0) {
|
||||
|
@ -156,7 +163,7 @@ foreach ($scadenze as $i => $scadenza) {
|
|||
<tr class="'.$class.'">
|
||||
<input type="hidden" name="id_scadenza['.$i.']" value="'.$scadenza['id'].'">
|
||||
|
||||
<td align="center">
|
||||
<td class="text-center">
|
||||
{[ "type": "date", "name": "scadenza['.$i.']", "value": "'.$scadenza['scadenza'].'" ]}
|
||||
</td>
|
||||
|
||||
|
@ -168,13 +175,17 @@ foreach ($scadenze as $i => $scadenza) {
|
|||
{[ "type": "number", "name": "pagato['.$i.']", "decimals": 2, "value": "'.numberFormat($scadenza['pagato']).'" ]}
|
||||
</td>
|
||||
|
||||
<td align="center">
|
||||
<td class="text-center">
|
||||
{[ "type": "date", "name": "data_concordata['.$i.']", "value": "'.$scadenza['data_concordata'].'" ]}
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
echo '
|
||||
<td>
|
||||
{[ "type": "textarea", "name": "note['.$i.']", "value": "'.$scadenza['note'].'" ]}
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
echo '
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
|
@ -184,37 +195,21 @@ echo '
|
|||
<td class="text-right"></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>';
|
||||
</table>
|
||||
|
||||
if ($totale_da_pagare != 0) {
|
||||
echo '
|
||||
<div class="pull-right">
|
||||
<a onclick="launch_modal(\''.tr('Registra contabile pagamento').'\', \''.base_path().'/add.php?id_module='.Modules::get('Prima nota')['id'].'&'.(!empty($record['iddocumento']) ? 'id_documenti='.$record['iddocumento'].'&single=1' : 'id_scadenze='.$id_record).'\');" class="btn btn-sm btn-primary">
|
||||
<i class="fa fa-euro"></i> '.tr('Registra contabile pagamento...').'
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<br>';
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="alert alert-warning hide" id="totale"><?php echo tr('Il totale da pagare non corrisponde con il totale della fattura che è pari a _MONEY_', [
|
||||
<div class="alert alert-warning hide" id="totale">'.tr('Il totale da pagare non corrisponde con il totale della fattura che è pari a _MONEY_', [
|
||||
'_MONEY_' => '<b>'.moneyFormat($totale_da_pagare).'</b>',
|
||||
]); ?>.<br><?php echo tr('Differenza di _TOT_ _CURRENCY_', [
|
||||
'_TOT_' => '<span id="diff"></span>',
|
||||
'_CURRENCY_' => currency(),
|
||||
]); ?>.
|
||||
]).'.
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="totale_da_pagare" value="<?php echo round($totale_da_pagare, 2); ?>">
|
||||
<input type="hidden" id="totale_da_pagare" value="'.round($totale_da_pagare, 2).'">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</form>';
|
||||
|
||||
<?php
|
||||
$id_scadenza = $id_record;
|
||||
|
||||
// Forzatura per allegare file sempre al primo record
|
||||
|
@ -241,7 +236,7 @@ echo '
|
|||
<tr class="danger">
|
||||
<input type="hidden" name="id_scadenza[-id-]" value="">
|
||||
|
||||
<td align="center">
|
||||
<td class="text-center">
|
||||
{[ "type": "date", "name": "scadenza[-id-]" ]}
|
||||
</td>
|
||||
|
||||
|
@ -253,9 +248,13 @@ echo '
|
|||
{[ "type": "number", "name": "pagato[-id-]", "decimals": 2 ]}
|
||||
</td>
|
||||
|
||||
<td align="center">
|
||||
<td class="text-center">
|
||||
{[ "type": "date", "name": "data_concordata[-id-]" ]}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{[ "type": "textarea", "name": "note[-id-]" ]}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -66,7 +66,7 @@ class Gruppo extends Model
|
|||
* Da utilizzare per le Fatture.
|
||||
*/
|
||||
public function rimuoviScadenze() {
|
||||
$this->scadenze->delete();
|
||||
$this->scadenze()->delete();
|
||||
}
|
||||
|
||||
public function delete()
|
||||
|
|
|
@ -4,6 +4,7 @@ CREATE TABLE IF NOT EXISTS `co_gruppi_scadenze` (
|
|||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id_documento` int(11) DEFAULT NULL,
|
||||
`descrizione` varchar(255) NOT NULL,
|
||||
`note` TEXT,
|
||||
`data_emissione` date DEFAULT NULL,
|
||||
`totale_pagato` decimal(12, 6) NOT NULL,
|
||||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
|
Loading…
Reference in New Issue