mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 11:30:55 +01:00
Allineamento add tipi anagrafiche e pagamenti
This commit is contained in:
parent
3c190fdcb9
commit
7a904d5450
@ -28,6 +28,14 @@ class Tipo extends Model
|
||||
|
||||
protected $table = 'an_tipianagrafiche';
|
||||
|
||||
public static function build($descrizione)
|
||||
{
|
||||
$model = new static();
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
public function anagrafiche()
|
||||
{
|
||||
return $this->hasMany(Anagrafica::class, 'idtipoanagrafica');
|
||||
@ -62,4 +70,26 @@ class Tipo extends Model
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* Imposta l'attributo name del tipo di anagrafica.
|
||||
*/
|
||||
public function setNameAttribute($value)
|
||||
{
|
||||
$translated = database()->table($this->table.'_lang')
|
||||
->where('id_record', '=', $this->id)
|
||||
->where('id_lang', '=', setting('Lingua'));
|
||||
|
||||
if ($translated->count() > 0) {
|
||||
$translated->update([
|
||||
'name' => $value
|
||||
]);
|
||||
} else {
|
||||
$translated->insert([
|
||||
'id_record' => $this->id,
|
||||
'id_lang' => setting('Lingua'),
|
||||
'name' => $value
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\DDT\DDT;
|
||||
use Modules\IVA\Aliquota;
|
||||
use Modules\Iva\Aliquota;
|
||||
use Util\Generator;
|
||||
|
||||
/*
|
||||
|
@ -18,7 +18,7 @@
|
||||
*/
|
||||
|
||||
use Modules\Fatture\Fattura;
|
||||
use Modules\IVA\Aliquota;
|
||||
use Modules\Iva\Aliquota;
|
||||
use Util\Generator;
|
||||
|
||||
/*
|
||||
|
@ -29,7 +29,7 @@ use Modules\Fatture\Fattura;
|
||||
use Modules\Interventi\Components\Riga as RigaIntervento;
|
||||
use Modules\Interventi\Components\Sessione;
|
||||
use Modules\Interventi\Intervento;
|
||||
use Modules\IVA\Aliquota;
|
||||
use Modules\Iva\Aliquota;
|
||||
use Util\Generator;
|
||||
use Util\Ini;
|
||||
|
||||
|
@ -18,32 +18,30 @@
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Iva\Aliquota;
|
||||
|
||||
switch (filter('op')) {
|
||||
case 'update':
|
||||
$descrizione = post('descrizione');
|
||||
$codice = post('codice');
|
||||
|
||||
$esente = post('esente');
|
||||
$percentuale = empty($esente) ? post('percentuale') : 0;
|
||||
$indetraibile = post('indetraibile');
|
||||
$dicitura = post('dicitura');
|
||||
$codice = post('codice');
|
||||
$codice_natura_fe = post('codice_natura_fe');
|
||||
$esigibilita = post('esigibilita');
|
||||
$descrizione = post('descrizione');
|
||||
|
||||
if ($dbo->fetchNum('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE (`name` = '.prepare($descrizione).' AND `codice` = '.prepare($codice).') AND `co_iva`.`id` != '.prepare($id_record)) == 0) {
|
||||
$codice_natura = post('codice_natura_fe') ?: null;
|
||||
$esigibilita = post('esigibilita');
|
||||
|
||||
$dbo->update('co_iva', [
|
||||
'esente' => $esente,
|
||||
'percentuale' => $percentuale,
|
||||
'indetraibile' => post('indetraibile'),
|
||||
'dicitura' => post('dicitura'),
|
||||
'codice' => $codice,
|
||||
'codice_natura_fe' => $codice_natura,
|
||||
'esigibilita' => $esigibilita,
|
||||
], ['id' => $id_record]);
|
||||
|
||||
$dbo->update('co_iva_lang', [
|
||||
'name' => $descrizione,
|
||||
], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]);
|
||||
$aliquota = Aliquota::where('id', '=', (new Aliquota())->getByName($descrizione)->id_record)->where('codice', '=', $codice)->where('id', '!=', $iva->id)->first();
|
||||
if (!$aliquota) {
|
||||
$iva->esente = $esente;
|
||||
$iva->percentuale = $percentuale;
|
||||
$iva->indetraibile = $indetraibile;
|
||||
$iva->dicitura = $dicitura;
|
||||
$iva->codice = $codice;
|
||||
$iva->codice_natura_fe = $codice_natura_fe;
|
||||
$iva->esigibilita = $esigibilita;
|
||||
$iva->name = $descrizione;
|
||||
$iva->save();
|
||||
|
||||
// Messaggio di avvertenza
|
||||
if ((stripos('N6', (string) $codice_natura) === 0) && $esigibilita == 'S') {
|
||||
@ -69,23 +67,13 @@ switch (filter('op')) {
|
||||
$esigibilita = post('esigibilita');
|
||||
$indetraibile = post('indetraibile');
|
||||
|
||||
if ($dbo->fetchNum('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name` = '.prepare($descrizione).' AND `codice` = '.prepare($codice)) == 0) {
|
||||
$dbo->insert('co_iva', [
|
||||
'esente' => $esente,
|
||||
'codice' => $codice,
|
||||
'codice_natura_fe' => $codice_natura,
|
||||
'percentuale' => $percentuale,
|
||||
'indetraibile' => $indetraibile,
|
||||
'esigibilita' => $esigibilita,
|
||||
]);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
$dbo->insert('co_iva_lang', [
|
||||
'id_record' => $id_record,
|
||||
'name' => $descrizione,
|
||||
'id_lang' => setting('Lingua'),
|
||||
]);
|
||||
|
||||
$aliquota = Aliquota::where('id', '=', (new Aliquota())->getByName($descrizione)->id_record)->where('codice', '=', $codice)->first();
|
||||
if (!$aliquota) {
|
||||
$iva = Aliquota::build($esente, $percentuale, $indetraibile, $dicitura, $codice, $codice_natura_fe, $esigibilita);
|
||||
$id_record= $dbo->lastInsertedID();
|
||||
$iva->name = $descrizione;
|
||||
$iva->save();
|
||||
|
||||
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
|
||||
'_TYPE_' => 'IVA',
|
||||
]));
|
||||
|
@ -18,7 +18,10 @@
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Iva\Aliquota;
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `co_iva` LEFT JOIN `co_iva_lang` ON (`co_iva`.`id` = `co_iva_lang`.`id_record` AND `co_iva_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_iva`.`id`='.prepare($id_record));
|
||||
|
||||
$iva = Aliquota::find($id_record);
|
||||
}
|
||||
|
@ -28,6 +28,22 @@ class Aliquota extends Model
|
||||
|
||||
protected $table = 'co_iva';
|
||||
|
||||
|
||||
public static function build($esente, $percentuale, $indetraibile, $dicitura, $codice, $codice_natura_fe, $esigibilita)
|
||||
{
|
||||
$model = new static();
|
||||
$model->esente = $esente;
|
||||
$model->percentuale = $percentuale;
|
||||
$model->indetraibile = $indetraibile;
|
||||
$model->dicitura = $dicitura;
|
||||
$model->codice = $codice;
|
||||
$model->codice_natura_fe = $codice_natura_fe;
|
||||
$model->esigibilita = $esigibilita;
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'attributo name dell'aliquota IVA.
|
||||
*
|
||||
@ -57,4 +73,26 @@ class Aliquota extends Model
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* Imposta l'attributo name dell'aliquota.
|
||||
*/
|
||||
public function setNameAttribute($value)
|
||||
{
|
||||
$translated = database()->table($this->table.'_lang')
|
||||
->where('id_record', '=', $this->id)
|
||||
->where('id_lang', '=', setting('Lingua'));
|
||||
|
||||
if ($translated->count() > 0) {
|
||||
$translated->update([
|
||||
'name' => $value
|
||||
]);
|
||||
} else {
|
||||
$translated->insert([
|
||||
'id_record' => $this->id,
|
||||
'id_lang' => setting('Lingua'),
|
||||
'name' => $value
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Interventi\Intervento;
|
||||
use Modules\IVA\Aliquota;
|
||||
use Modules\Iva\Aliquota;
|
||||
use Modules\Ordini\Ordine;
|
||||
|
||||
/*
|
||||
|
@ -24,13 +24,13 @@ use Modules\Pagamenti\Pagamento;
|
||||
switch (filter('op')) {
|
||||
case 'update':
|
||||
$descrizione = filter('descrizione');
|
||||
$id_pagamento = (new Pagamento())->getByName($descrizione)->id_record;
|
||||
|
||||
if (isset($descrizione)) {
|
||||
foreach (post('id') as $key => $id) {
|
||||
// Data fatturazione
|
||||
$giorno = 0;
|
||||
|
||||
$pagamento = Pagamento::find($id);
|
||||
// Data fatturazione fine mese
|
||||
if (post('scadenza')[$key] == 2) {
|
||||
$giorno = -1;
|
||||
@ -46,28 +46,27 @@ switch (filter('op')) {
|
||||
$giorno = -post('giorno')[$key] - 1;
|
||||
}
|
||||
|
||||
$array = [
|
||||
'num_giorni' => post('distanza')[$key],
|
||||
'giorno' => $giorno,
|
||||
'prc' => post('percentuale')[$key],
|
||||
'idconto_vendite' => post('idconto_vendite') ?: null,
|
||||
'idconto_acquisti' => post('idconto_acquisti') ?: null,
|
||||
'codice_modalita_pagamento_fe' => post('codice_modalita_pagamento_fe'),
|
||||
];
|
||||
|
||||
if ($id_pagamento) {
|
||||
flash()->error(tr('Esiste più un metodo di pagamento con questo nome!'));
|
||||
break;
|
||||
if (!empty($id)) {
|
||||
$pagamento->name = $descrizione;
|
||||
$pagamento->num_giorni = post('distanza')[$key];
|
||||
$pagamento->giorno = $giorno;
|
||||
$pagamento->prc = post('percentuale')[$key];
|
||||
$pagamento->idconto_vendite = post('idconto_vendite') ?: null;
|
||||
$pagamento->idconto_acquisti = post('idconto_acquisti') ?: null;
|
||||
$pagamento->codice_modalita_pagamento_fe = post('codice_modalita_pagamento_fe');
|
||||
$pagamento->save();
|
||||
} else {
|
||||
if (!empty($id)) {
|
||||
$dbo->update('co_pagamenti_lang', ['name' => $descrizione], ['id' => $id, 'id_lang' => setting('Lingua')]);
|
||||
$dbo->update('co_pagamenti', $array, ['id' => $id_record]);
|
||||
} else {
|
||||
$dbo->INSERT('co_pagamenti', $array);
|
||||
$dbo->INSERT('co_pagamenti_lang', ['name' => $descrizione, 'id_record' => $id, 'id_lang' => setting('Lingua')]);
|
||||
}
|
||||
$pagamento = Pagamento::build(post('codice_modalita_pagamento_fe'));
|
||||
$pagamento->num_giorni = post('distanza')[$key];
|
||||
$pagamento->giorno = $giorno;
|
||||
$pagamento->prc = post('percentuale')[$key];
|
||||
$pagamento->idconto_vendite = post('idconto_vendite') ?: null;
|
||||
$pagamento->idconto_acquisti = post('idconto_acquisti') ?: null;
|
||||
$pagamento->name = $descrizione;
|
||||
$pagamento->save();
|
||||
}
|
||||
}
|
||||
|
||||
flash()->info(tr('Salvataggio completato!'));
|
||||
} else {
|
||||
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!'));
|
||||
@ -85,9 +84,10 @@ switch (filter('op')) {
|
||||
if ($id_pagamento) {
|
||||
flash()->error(tr('Esiste già un metodo di pagamento con questo nome!'));
|
||||
} else {
|
||||
$dbo->query('INSERT INTO `co_pagamenti` (`codice_modalita_pagamento_fe`, `prc` ) VALUES ('.prepare($codice_modalita_pagamento_fe).', 100 )');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$dbo->query('INSERT INTO `co_pagamenti_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).')');
|
||||
$pagamento = Pagamento::build($codice_modalita_pagamento_fe);
|
||||
$id_record= $dbo->lastInsertedID();
|
||||
$pagamento->name = $descrizione;
|
||||
$pagamento->save();
|
||||
|
||||
flash()->info(tr('Aggiunta nuova tipologia di _TYPE_', [
|
||||
'_TYPE_' => 'pagamento',
|
||||
@ -99,6 +99,11 @@ switch (filter('op')) {
|
||||
|
||||
case 'delete':
|
||||
if (!empty($id_record)) {
|
||||
$descrizione = filter('descrizione');
|
||||
|
||||
$dbo->query('DELETE FROM `co_pagamenti` WHERE `id` IN (SELECT `id_record` FROM `co_pagamenti_lang` WHERE `name` = "'.prepare($descrizione).'")');
|
||||
$dbo->query('DELETE FROM `co_pagamenti_lang` WHERE `name` = "'.prepare($descrizione).'"');
|
||||
|
||||
$dbo->query('DELETE FROM `co_pagamenti` WHERE `id`='.prepare($id_record));
|
||||
|
||||
flash()->info(tr('Tipologia di _TYPE_ eliminata con successo!', [
|
||||
|
@ -29,7 +29,7 @@ include_once __DIR__.'/../../core.php';
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "<?php echo tr('Codice Modalità (Fatturazione Elettronica)'); ?>", "name": "codice_modalita_pagamento_fe", "value": "", "values": "query=SELECT `codice` as id, CONCAT(`codice`, ' - ', `name`) AS descrizione FROM `fe_modalita_pagamento` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento_lang`.`id_record`=`fe_modalita_pagamento`.`codice` AND `fe_modalita_pagamento_lang`.`id_lang`=<?php prepare(setting('Lingua')); ?>)", "required": 1 ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Codice Modalità (Fatturazione Elettronica)'); ?>", "name": "codice_modalita_pagamento_fe", "value": "", "values": "query=SELECT `fe_modalita_pagamento`.`codice` as id, CONCAT(`fe_modalita_pagamento`.`codice`, ' - ', `name`) AS descrizione FROM `fe_modalita_pagamento` LEFT JOIN `fe_modalita_pagamento_lang` ON (`fe_modalita_pagamento_lang`.`id_record`=`fe_modalita_pagamento`.`codice` AND `fe_modalita_pagamento_lang`.`id_lang`= <?php echo setting('Lingua'); ?>)", "required": 1 ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -87,7 +87,7 @@ $tipi_scadenza_pagamento = [
|
||||
],
|
||||
];
|
||||
|
||||
$results = $dbo->fetchArray('SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($record['name']).' ORDER BY `num_giorni` ASC');
|
||||
$results = $dbo->fetchArray('SELECT *, `co_pagamenti`.`id` as id FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id` = `co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($record['name']).' ORDER BY `num_giorni` ASC');
|
||||
$numero_rata = 1;
|
||||
foreach ($results as $result) {
|
||||
$tipo_scadenza_pagamento = 3;
|
||||
|
@ -18,7 +18,10 @@
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Pagamenti\Pagamento;
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `co_pagamenti`.`id`='.prepare($id_record));
|
||||
|
||||
$pagamento = Pagamento::find($id_record);
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ namespace Modules\Pagamenti;
|
||||
use Carbon\Carbon;
|
||||
use Common\SimpleModelTrait;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Modules\Fatture\Fattura;
|
||||
|
||||
class Pagamento extends Model
|
||||
{
|
||||
@ -29,6 +30,15 @@ class Pagamento extends Model
|
||||
|
||||
protected $table = 'co_pagamenti';
|
||||
|
||||
public static function build($codice)
|
||||
{
|
||||
$model = new static();
|
||||
$model->codice_modalita_pagamento_fe = $codice;
|
||||
$model->save();
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
public function fatture()
|
||||
{
|
||||
return $this->hasMany(Fattura::class, 'idpagamento');
|
||||
@ -169,4 +179,26 @@ class Pagamento extends Model
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* Imposta l'attributo name del pagamento.
|
||||
*/
|
||||
public function setNameAttribute($value)
|
||||
{
|
||||
$translated = database()->table($this->table.'_lang')
|
||||
->where('id_record', '=', $this->id)
|
||||
->where('id_lang', '=', setting('Lingua'));
|
||||
|
||||
if ($translated->count() > 0) {
|
||||
$translated->update([
|
||||
'name' => $value
|
||||
]);
|
||||
} else {
|
||||
$translated->insert([
|
||||
'id_record' => $this->id,
|
||||
'id_lang' => setting('Lingua'),
|
||||
'name' => $value
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Anagrafiche\Tipo;
|
||||
|
||||
switch (post('op')) {
|
||||
case 'update':
|
||||
@ -28,7 +29,8 @@ switch (post('op')) {
|
||||
// Nome accettato
|
||||
|
||||
if (!in_array($descrizione, $block)) {
|
||||
$dbo->query('UPDATE `an_tipianagrafiche_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_tipo));
|
||||
$tipo->name = $descrizione;
|
||||
$tipo->save();
|
||||
flash()->info(tr('Informazioni salvate correttamente!'));
|
||||
} else {
|
||||
// Nome non consentito
|
||||
@ -42,15 +44,15 @@ switch (post('op')) {
|
||||
|
||||
if (!empty($descrizione)) {
|
||||
// Verifico che il nome non sia duplicato
|
||||
$rs = $dbo->fetchArray('SELECT `name` FROM `an_tipianagrafiche_lang` WHERE `name`='.prepare($descrizione));
|
||||
$tipo = Tipo::find((new Tipo())->getByName($descrizione)->id_record);
|
||||
|
||||
if (count($rs) > 0) {
|
||||
if ($tipo) {
|
||||
flash()->error(tr('Nome già esistente!'));
|
||||
} else {
|
||||
$dbo->query('INSERT INTO `an_tipianagrafiche` (`id`) VALUES (NULL)');
|
||||
$tipo = Tipo::build($descrizione);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$dbo->query('INSERT INTO `an_tipianagrafiche_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).')');
|
||||
|
||||
$tipo->name = $descrizione;
|
||||
$tipo->save();
|
||||
flash()->info(tr('Nuovo tipo di anagrafica aggiunto!'));
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,10 @@
|
||||
*/
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Modules\Anagrafiche\Tipo;
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `an_tipianagrafiche`.`id`='.prepare($id_record));
|
||||
|
||||
$tipo = Tipo::find($id_record);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user