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:
parent
ad4e732c8d
commit
b43d80ec5c
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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 '
|
||||
|
@ -76,4 +76,6 @@ if (!empty($id_record)) {
|
||||
GROUP BY id
|
||||
|
||||
ORDER BY `data`');
|
||||
|
||||
$is_anagrafica_deleted = !$contratto->anagrafica;
|
||||
}
|
||||
|
@ -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 '
|
||||
|
@ -101,4 +101,6 @@ if (!empty($id_record)) {
|
||||
id
|
||||
|
||||
ORDER BY `data`');
|
||||
|
||||
$is_anagrafica_deleted = !$ddt->anagrafica;
|
||||
}
|
||||
|
@ -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 ]}
|
||||
|
@ -92,4 +92,6 @@ if (!empty($id_record)) {
|
||||
}
|
||||
|
||||
$superselect['idtipodocumento'] = $record['idtipodocumento'];
|
||||
|
||||
$is_anagrafica_deleted = !$fattura->anagrafica;
|
||||
}
|
||||
|
@ -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>';
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -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>';
|
||||
}
|
@ -119,4 +119,6 @@ if (!empty($id_record)) {
|
||||
|
||||
ORDER BY
|
||||
`data`');
|
||||
|
||||
$is_anagrafica_deleted = !$ordine->anagrafica;
|
||||
}
|
||||
|
@ -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 '
|
||||
|
@ -121,4 +121,6 @@ if (!empty($id_record)) {
|
||||
GROUP BY id
|
||||
|
||||
ORDER BY `data`');
|
||||
|
||||
$is_anagrafica_deleted = !$preventivo->anagrafica;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user