1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-03-10 00:00:18 +01:00

feat: bloccata la possibilità di creare documenti da anagrafiche eliminate

This commit is contained in:
MatteoPistorello 2024-12-18 13:10:36 +01:00
parent ad4e732c8d
commit b43d80ec5c
14 changed files with 239 additions and 210 deletions

View File

@ -21,6 +21,7 @@
use Models\Group;
use Models\Module;
if (!$is_anagrafica_deleted) {
if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_anagrafica)) {
echo '
<div class="btn-group">
@ -76,6 +77,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
</div>
</div>';
}
}
if (in_array($id_agente, $tipi_anagrafica)) {
// Aggiunta liquidazione provvigioni per agente

View File

@ -56,4 +56,6 @@ if (!empty($id_record)) {
$tipi_anagrafica = $anagrafica->tipi->toArray();
$tipi_anagrafica = array_column($tipi_anagrafica, 'id');
}
$is_anagrafica_deleted = $anagrafica->deleted_at;
}

View File

@ -20,10 +20,11 @@
include_once __DIR__.'/../../core.php';
if (!$is_anagrafica_deleted) {
$is_fatturabile = $record['is_fatturabile'];
$stati_fatturabili = $dbo->fetchOne('SELECT GROUP_CONCAT(`title` SEPARATOR ", ") AS stati_abilitati FROM `co_staticontratti` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id` = `co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `is_fatturabile` = 1')['stati_abilitati'];
/* permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile */
// Permetto di fatturare il contratto solo se contiene righe e si trova in uno stato fatturabile
echo '
<div class="tip" data-widget="tooltip" title="'.tr('Per creare un documento lo stato del contratto deve essere tra: _STATE_LIST_', [
'_STATE_LIST_' => $stati_fatturabili,
@ -45,6 +46,7 @@ echo '
<i class="fa fa-refresh"></i> '.tr('Rinnova').'...
</button>
</div>';
}
// Duplica contratto
echo '

View File

@ -76,4 +76,6 @@ if (!empty($id_record)) {
GROUP BY id
ORDER BY `data`');
$is_anagrafica_deleted = !$contratto->anagrafica;
}

View File

@ -64,6 +64,7 @@ function completaTrasporto() {
</script>';
}
if (!$is_anagrafica_deleted) {
// Informazioni sull'importabilità del DDT
$stati = $database->fetchArray('SELECT `title` as descrizione FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `is_fatturabile` = 1');
@ -86,6 +87,7 @@ echo '
<button class="btn btn-info '.($ddt->isImportabile() ? '' : 'disabled').'" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'"><i class="fa fa-magic"></i> '.tr('Crea ').($ddt->reversed ? 'nota di credito' : ($dir == 'entrata' ? 'fattura di vendita' : 'fattura di acquisto')).'
</button>
</div>';
}
// Duplica ddt
echo '

View File

@ -101,4 +101,6 @@ if (!empty($id_record)) {
id
ORDER BY `data`');
$is_anagrafica_deleted = !$ddt->anagrafica;
}

View File

@ -30,6 +30,7 @@ if ($module->getTranslation('title') == 'Fatture di vendita') {
</a>';
}
if (!$is_anagrafica_deleted) {
if ($dir == 'entrata' || !empty($abilita_autofattura)) {
echo '
<div class="btn-group">
@ -59,6 +60,7 @@ if ($dir == 'entrata' || !empty($abilita_autofattura)) {
echo '
</div>';
}
}
if (empty($record['is_fiscale'])) {
$msg = '<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_module, 'is_sezionale' => 1, 'is_fiscale' => 1]).', "select-options-escape": true ]}

View File

@ -92,4 +92,6 @@ if (!empty($id_record)) {
}
$superselect['idtipodocumento'] = $record['idtipodocumento'];
$is_anagrafica_deleted = !$fattura->anagrafica;
}

View File

@ -53,9 +53,9 @@ function anteprimaFirma() {
}
</script>';
if (!$is_anagrafica_deleted) {
// Creazione altri documenti
$where = '';
// Lettura interventi non collegati a preventivi, ordini e contratti
if (!setting('Permetti fatturazione delle attività collegate a contratti')) {
$where = ' AND in_interventi.id_contratto IS NULL';
}
@ -69,7 +69,9 @@ if (!setting('Permetti fatturazione delle attività collegate a preventivi')) {
$is_fatturabile = $dbo->fetchOne('SELECT
`in_interventi`.`id` FROM `in_interventi` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id`
WHERE
`in_interventi`.`id`='.prepare($id_record).' AND `in_statiintervento`.`is_fatturabile`=1 AND `in_interventi`.`id` NOT IN (SELECT `idintervento` FROM `co_righe_documenti` WHERE `idintervento` IS NOT NULL) '.$where)['id'];
`in_interventi`.`id`='.prepare($id_record).' AND `in_statiintervento`.`is_fatturabile`=1 AND `in_interventi`.`id` NOT IN (SELECT `idintervento` FROM `co_righe_documenti` WHERE `idintervento` IS NOT NULL)
'.$where
)['id'];
$stati_fatturabili = Stato::where('is_fatturabile', '=', '1')->get();
$stati = [];
@ -93,3 +95,4 @@ echo '
</a>
</div>
</div>';
}

View File

@ -44,4 +44,6 @@ if (!empty($id_record)) {
INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento` = `in_statiintervento`.`id`
WHERE
`in_interventi`.`id`='.prepare($id_record));
$is_anagrafica_deleted = !$intervento->anagrafica;
}

View File

@ -32,6 +32,7 @@ function duplicaOrdine() {
}
</script>';
if (!$is_anagrafica_deleted) {
$stati = $dbo->fetchArray('SELECT `title` FROM `or_statiordine` LEFT JOIN `or_statiordine_lang` ON (`or_statiordine`.`id`=`or_statiordine_lang`.`id_record` AND `or_statiordine_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') WHERE `is_fatturabile` = 1');
foreach ($stati as $stato) {
$stati_importabili[] = $stato['title'];
@ -71,3 +72,4 @@ echo '
</ul>
</div>';
}

View File

@ -119,4 +119,6 @@ if (!empty($id_record)) {
ORDER BY
`data`');
$is_anagrafica_deleted = !$ordine->anagrafica;
}

View File

@ -47,6 +47,7 @@ foreach ($stati_abilitati as $stato) {
$stati[] = $stato->getTranslation('title');
}
if (!$is_anagrafica_deleted) {
// Creazione altri documenti
echo '
<div class="btn-group tip" '.(!$disabled ? ' data-widget="tooltip" title="'.tr('Per creare un documento lo stato del preventivo deve essere tra: ').implode(', ', $stati).'"' : '').'">
@ -81,6 +82,7 @@ echo '
</a>
</div>
</div>';
}
// Duplica preventivo
echo '

View File

@ -121,4 +121,6 @@ if (!empty($id_record)) {
GROUP BY id
ORDER BY `data`');
$is_anagrafica_deleted = !$preventivo->anagrafica;
}