Gestione conti predefiniti crediti e debiti tramite impostazione

This commit is contained in:
MatteoPistorello 2022-05-13 17:24:55 +02:00
parent fb3a6a8ad4
commit af7eb19567
4 changed files with 18 additions and 17 deletions

View File

@ -356,22 +356,18 @@ class Anagrafica extends Model
protected static function creaConto(Anagrafica $anagrafica, $campo)
{
$categoria_conto_id = null;
if ($campo == 'idconto_cliente') {
$type = 'Crediti clienti e crediti diversi';
$categoria_conto_id = setting('Conto di secondo livello per i crediti clienti');
} else {
$type = 'Debiti fornitori e debiti diversi';
$categoria_conto_id = setting('Conto di secondo livello per i debiti fornitori');
}
$database = database();
// Individuazione della categoria
$categoria_conto = $database->table('co_pianodeiconti2')
->where('descrizione', '=', $type)
->first();
// Query di base
$table = $database->table('co_pianodeiconti3')
->where('idpianodeiconti2', '=', $categoria_conto->id);
->where('idpianodeiconti2', '=', $categoria_conto_id);
// Verifica su un possibile conto esistente ma non collegato
$conto = (clone $table)
@ -399,7 +395,7 @@ class Anagrafica extends Model
->insertGetId([
'numero' => $new_numero,
'descrizione' => $anagrafica->ragione_sociale,
'idpianodeiconti2' => $categoria_conto->id,
'idpianodeiconti2' => $categoria_conto_id,
]);
return $id_conto;

View File

@ -62,14 +62,14 @@ echo '
}
if (empty(get('elenco_analitico'))) {
if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti')) {
echo '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat($crediti_clienti).'</td>
</tr>';
} elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
} elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori')) {
echo '
<tr>
<td></td>
@ -140,14 +140,14 @@ echo '
}
if (empty(get('elenco_analitico'))) {
if ($liv2_p['descrizione'] == 'Crediti clienti e crediti diversi') {
if ($liv2_p['id'] == setting('Conto di secondo livello per i crediti clienti')) {
echo '
<tr>
<td></td>
<td>Clienti</td>
<td class="text-right">'.numberFormat(abs($crediti_clienti)).'</td>
</tr>';
} elseif ($liv2_p['descrizione'] == 'Debiti fornitori e debiti diversi') {
} elseif ($liv2_p['id'] == setting('Conto di secondo livello per i debiti fornitori')) {
echo '
<tr>
<td></td>

View File

@ -48,7 +48,7 @@ FROM
INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id
INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id
WHERE
co_pianodeiconti2.descrizione="Debiti fornitori e debiti diversi"
co_pianodeiconti2.descrizione='.prepare(setting('Conto di secondo livello per i debiti fornitori')).'
AND co_pianodeiconti3.id IN (SELECT idconto_fornitore FROM an_anagrafiche)
AND co_movimenti.data>='.prepare($date_start).'
AND co_movimenti.data<='.prepare($date_end).'
@ -70,7 +70,7 @@ FROM
INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id
INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id
WHERE
co_pianodeiconti2.descrizione="Crediti clienti e crediti diversi"
co_pianodeiconti2.id='.prepare(setting('Conto di secondo livello per i crediti clienti')).'
AND co_pianodeiconti3.id IN (SELECT idconto_cliente FROM an_anagrafiche)
AND co_movimenti.data>='.prepare($date_start).'
AND co_movimenti.data<='.prepare($date_end).'

View File

@ -160,7 +160,7 @@ INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Sezionale per autofatture di acquisto', (SELECT `id` FROM `zz_segments` WHERE `name`='Autofatture' AND `id_module`=(SELECT `id` FROM `zz_modules` WHERE name="Fatture di acquisto")), 'query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=(SELECT id FROM zz_modules WHERE name=\"Fatture di acquisto\") ORDER BY name', '1', 'Fatturazione', NULL, NULL);
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conto per autofattura', '', 'query=SELECT `id`, CONCAT_WS(\' - \', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', '1', 'Piano dei conti', NULL, NULL) ;
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conto per autofattura', '', 'query=SELECT `id`, CONCAT_WS(\' - \', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti3` ORDER BY `descrizione` ASC', '1', 'Piano dei conti', NULL, NULL);
INSERT INTO `co_pianodeiconti2` (`numero`, `descrizione`, `idpianodeiconti1`, `dir`) VALUES
('910', 'Conti compensativi', (SELECT `id` FROM `co_pianodeiconti1` WHERE `descrizione`='Patrimoniale'), 'entrata/uscita');
@ -171,4 +171,9 @@ INSERT INTO `co_pianodeiconti3` (`numero`, `descrizione`, `idpianodeiconti2`, `d
ALTER TABLE `co_documenti` ADD `id_autofattura` INT NULL AFTER `id_ricevuta_principale`, ADD FOREIGN KEY (`id_autofattura`) REFERENCES `co_documenti`(`id`) ON DELETE SET NULL;
-- Fix widget Scadenze
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(co_documenti.id) AS dato FROM co_scadenziario INNER JOIN (((co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica) INNER JOIN co_pagamenti ON co_documenti.idpagamento=co_pagamenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id) ON co_scadenziario.iddocumento=co_documenti.id WHERE ABS(pagato) < ABS(da_pagare) AND scadenza >= \"|period_start|\" AND scadenza <= \"|period_end|\" ORDER BY scadenza ASC' WHERE `zz_widgets`.`name` = 'Scadenze';
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(co_documenti.id) AS dato FROM co_scadenziario INNER JOIN (((co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica) INNER JOIN co_pagamenti ON co_documenti.idpagamento=co_pagamenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id) ON co_scadenziario.iddocumento=co_documenti.id WHERE ABS(pagato) < ABS(da_pagare) AND scadenza >= \"|period_start|\" AND scadenza <= \"|period_end|\" ORDER BY scadenza ASC' WHERE `zz_widgets`.`name` = 'Scadenze';
-- Impostazione per gestire conto per la creazione conti anagrafiche
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conto di secondo livello per i crediti clienti', (SELECT `id` FROM `co_pianodeiconti2` WHERE `descrizione`="Crediti clienti e crediti diversi"), 'query=SELECT `id`, CONCAT_WS(\' - \', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti2` WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Patrimoniale") ORDER BY `descrizione` ASC', '1', 'Piano dei conti', NULL, NULL);
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conto di secondo livello per i debiti fornitori', (SELECT `id` FROM `co_pianodeiconti2` WHERE `descrizione`="Debiti fornitori e debiti diversi"), 'query=SELECT `id`, CONCAT_WS(\' - \', `numero`, `descrizione`) AS descrizione FROM `co_pianodeiconti2` WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Patrimoniale") ORDER BY `descrizione` ASC', '1', 'Piano dei conti', NULL, NULL);