Aggiunta trasformazione fatture pro-forma

This commit is contained in:
Thomas Zilio 2018-09-28 09:30:46 +02:00
parent 625c30c123
commit eb15efd632
6 changed files with 54 additions and 14 deletions

View File

@ -1333,6 +1333,12 @@ switch (post('op')) {
}
}
break;
case 'transform':
$fattura->id_segment = post('id_segment');
$fattura->save();
break;
}

View File

@ -32,3 +32,12 @@ if ($dir == 'entrata' && empty($record['ref_documento']) && $record['stato'] ==
</ul>
</div>';
}
if (empty($record['is_fiscale'])) {
$msg = '{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_module.'\' AND is_fiscale = 1 ORDER BY name" ]}';
echo '
<button type="button" class="btn btn-warning ask" data-msg="'.tr('Vuoi trasformare questa fattura pro-forma in una di tipo fiscale?').'<br>'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="transform" data-button="'.tr('Trasforma').'" data-class="btn btn-lg btn-warning" data-backto="record-edit">
<i class="fa fa-upload"></i> '.tr('Trasforma in fattura fiscale').'
</button>';
}

View File

@ -88,6 +88,9 @@ if ($dir == 'entrata') {
$query = 'SELECT * FROM co_statidocumento';
if (empty($record['is_fiscale'])) {
$query .= " WHERE descrizione = 'Bozza'";
$plugin = $dbo->fetchArray("SELECT id FROM zz_plugins WHERE name='Fatturazione Elettronica' AND idmodule_to = ".prepare($id_module));
echo '<script>$("#link-tab_'.$plugin[0]['id'].'").addClass("disabled");</script>';
}
?>

View File

@ -34,10 +34,6 @@ class Fattura extends Model
$database = database();
// Calcolo dei numeri fattura
$numero = static::getNumero($data, $direzione, $id_segment);
$numero_esterno = static::getNumeroSecondario($data, $direzione, $id_segment);
if ($direzione == 'entrata') {
$id_conto = setting('Conto predefinito fatture di vendita');
$conto = 'vendite';
@ -68,12 +64,16 @@ class Fattura extends Model
$id_sede = $database->selectOne('an_anagrafiche', 'idsede_fatturazione', ['idanagrafica' => $id_anagrafica])['idsede_fatturazione'];
// Salvataggio delle informazioni
$model->numero = $numero;
$model->numero_esterno = $numero_esterno;
$model->data = $data;
$model->anagrafica()->associate($anagrafica);
$model->tipo()->associate($tipo_documento);
$model->stato()->associate($stato_documento);
$model->save();
// Salvataggio delle informazioni
$model->data = $data;
$model->id_segment = $id_segment;
$model->idconto = $id_conto;
$model->idsede = $id_sede;
@ -83,16 +83,34 @@ class Fattura extends Model
if (!empty($id_banca)) {
$model->idbanca = $id_banca;
}
$model->anagrafica()->associate($anagrafica);
$model->tipo()->associate($tipo_documento);
$model->stato()->associate($stato_documento);
$model->save();
return $model;
}
/**
* Imposta il sezionale relativo alla fattura e calcola il relativo numero.
* **Attenzione**: la data deve inserita prima!
*
* @param [type] $value
* @return void
*/
public function setIdSegmentAttribute($value)
{
$previous = $this->id_segment;
$this->attributes['id_segment'] = $value;
// Calcolo dei numeri fattura
if ($value != $previous) {
$direzione = $this->tipo()->dir;
$data = $this->data;
$this->numero = static::getNumero($data, $direzione, $value);
$this->numero_esterno = static::getNumeroSecondario($data, $direzione, $value);
}
}
/**
* Calcola il nuovo numero di fattura.
*

View File

@ -144,7 +144,7 @@ return [
'text' => tr('Crea fattura'),
'data' => [
'title' => tr('Vuoi davvero generare le fatture per questi interventi?'),
'msg' => '<br>{[ "type": "checkbox", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}
'msg' => tr('Verranno fatturati gli interventi completati non inseriti in preventivi e contratti').'.<br>{[ "type": "checkbox", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}
<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}',
'button' => tr('Crea fatture'),
'class' => 'btn btn-lg btn-warning',

View File

@ -138,6 +138,8 @@ abstract class Row extends Description
protected function fixSconto()
{
$this->attributes['sconto'] = $this->sconto;
$this->fixIva();
}
/**
@ -192,6 +194,7 @@ abstract class Row extends Description
$this->attributes['qta'] = $value;
$this->fixSubtotale();
$this->fixSconto();
}
/**
@ -204,6 +207,7 @@ abstract class Row extends Description
$this->costo_unitario = $value;
$this->fixSubtotale();
$this->fixSconto();
}
/**