1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-03-09 15:50:14 +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,60 +21,62 @@
use Models\Group;
use Models\Module;
if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_anagrafica)) {
echo '
<div class="btn-group">
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-magic"></i>
'.tr('Crea').'...
</button>
<div class="dropdown-menu dropdown-menu-right">';
// Aggiunta utente per i tecnici
if (in_array($id_tecnico, $tipi_anagrafica)) {
if (!$is_anagrafica_deleted) {
if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_anagrafica)) {
echo '
<a class="dropdown-item" data-title="'.tr('Aggiungi utente').'" data-widget="modal" data-href="modules/utenti/user.php?id_module='.Module::where('name', 'Utenti e permessi')->first()->id.'&id_record='.Group::where('nome', 'Tecnici')->first()->id.'&idanagrafica='.$record['idanagrafica'].'">
<i class="fa fa-user"></i> '.tr('Nuovo utente').'
</a>';
}
<div class="btn-group">
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-magic"></i>
'.tr('Crea').'...
</button>
<div class="dropdown-menu dropdown-menu-right">';
if (in_array($id_cliente, $tipi_anagrafica)) {
echo '
<a class="dropdown-item" data-title="'.tr('Aggiungi attività').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Interventi')->first()->id.'&idanagrafica='.$record['idanagrafica'].'">
<i class="fa fa-wrench"></i> '.tr('Nuova attività').'
</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi preventivo').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Preventivi')->first()->id.'&idanagrafica='.$record['idanagrafica'].'">
<i class="fa fa-file-text"></i> '.tr('Nuovo preventivo').'
</a>
// Aggiunta utente per i tecnici
if (in_array($id_tecnico, $tipi_anagrafica)) {
echo '
<a class="dropdown-item" data-title="'.tr('Aggiungi utente').'" data-widget="modal" data-href="modules/utenti/user.php?id_module='.Module::where('name', 'Utenti e permessi')->first()->id.'&id_record='.Group::where('nome', 'Tecnici')->first()->id.'&idanagrafica='.$record['idanagrafica'].'">
<i class="fa fa-user"></i> '.tr('Nuovo utente').'
</a>';
}
<a class="dropdown-item" data-title="'.tr('Aggiungi contratto').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Contratti')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text-o"></i> '.tr('Nuovo contratto').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi ordine cliente').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Ordini cliente')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o"></i> '.tr('Nuovo ordine cliente').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi ddt in uscita').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Ddt in uscita')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i> '.tr('Nuovo ddt in uscita').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi fattura di vendita').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Fatture di vendita')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file"></i> '.tr('Nuova fattura di vendita').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi registrazione contabile').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Prima nota')->first()->id.'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i> '.tr('Nuova registrazione contabile (cliente)').'</a>';
}
if (in_array($id_fornitore, $tipi_anagrafica)) {
echo '
if (in_array($id_cliente, $tipi_anagrafica)) {
echo '
<a class="dropdown-item" data-title="'.tr('Aggiungi ordine fornitore').'" data-widget="modal" data-data-href="add.php?id_module='.Module::where('name', 'Ordini fornitore')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i> '.tr('Nuovo ordine fornitore').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi attività').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Interventi')->first()->id.'&idanagrafica='.$record['idanagrafica'].'">
<i class="fa fa-wrench"></i> '.tr('Nuova attività').'
</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi preventivo').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Preventivi')->first()->id.'&idanagrafica='.$record['idanagrafica'].'">
<i class="fa fa-file-text"></i> '.tr('Nuovo preventivo').'
</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi ddt in entrata').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Ddt in entrata')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i> '.tr('Nuovo ddt in entrata').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi contratto').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Contratti')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text-o"></i> '.tr('Nuovo contratto').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi fattura di acquisto').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Fatture di acquisto')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file fa-flip-horizontal"></i> '.tr('Nuova fattura di acquisto').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi ordine cliente').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Ordini cliente')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o"></i> '.tr('Nuovo ordine cliente').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi registrazione contabile').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Prima nota')->first()->id.'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i> '.tr('Nuova registrazione contabile (fornitore)').'</a>';
<a class="dropdown-item" data-title="'.tr('Aggiungi ddt in uscita').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Ddt in uscita')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i> '.tr('Nuovo ddt in uscita').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi fattura di vendita').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Fatture di vendita')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file"></i> '.tr('Nuova fattura di vendita').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi registrazione contabile').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Prima nota')->first()->id.'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i> '.tr('Nuova registrazione contabile (cliente)').'</a>';
}
if (in_array($id_fornitore, $tipi_anagrafica)) {
echo '
<a class="dropdown-item" data-title="'.tr('Aggiungi ordine fornitore').'" data-widget="modal" data-data-href="add.php?id_module='.Module::where('name', 'Ordini fornitore')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i> '.tr('Nuovo ordine fornitore').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi ddt in entrata').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Ddt in entrata')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i> '.tr('Nuovo ddt in entrata').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi fattura di acquisto').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Fatture di acquisto')->first()->id.'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file fa-flip-horizontal"></i> '.tr('Nuova fattura di acquisto').'</a>
<a class="dropdown-item" data-title="'.tr('Aggiungi registrazione contabile').'" data-widget="modal" data-href="add.php?id_module='.Module::where('name', 'Prima nota')->first()->id.'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i> '.tr('Nuova registrazione contabile (fornitore)').'</a>';
}
echo '
</div>
</div>';
}
echo '
</div>
</div>';
}
if (in_array($id_agente, $tipi_anagrafica)) {

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,34 +20,36 @@
include_once __DIR__.'/../../core.php';
$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'];
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 */
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,
]).'">
<button type="button" class="btn btn-info '.($is_fatturabile ? '' : '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 fattura').'">
<i class="fa fa-magic"></i> '.tr('Crea fattura').'
</button>
</div>';
// 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,
]).'">
<button type="button" class="btn btn-info '.($is_fatturabile ? '' : '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 fattura').'">
<i class="fa fa-magic"></i> '.tr('Crea fattura').'
</button>
</div>';
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_completato'] && $record['rinnovabile'];
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00' && $record['is_completato'] && $record['rinnovabile'];
$stati_completati = $dbo->fetchOne('SELECT GROUP_CONCAT(`title` SEPARATOR ", ") AS stati_completati 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_completato` = 1')['stati_completati'];
$stati_completati = $dbo->fetchOne('SELECT GROUP_CONCAT(`title` SEPARATOR ", ") AS stati_completati 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_completato` = 1')['stati_completati'];
echo '
<div class="tip" data-widget="tooltip" title="'.tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno di questi stati: _STATE_LIST_', [
'_STATE_LIST_' => $stati_completati,
]).'" id="rinnova">
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="'.tr('Rinnova').'" data-class="btn btn-lg btn-warning">
<i class="fa fa-refresh"></i> '.tr('Rinnova').'...
</button>
</div>';
echo '
<div class="tip" data-widget="tooltip" title="'.tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione e si trova in uno di questi stati: _STATE_LIST_', [
'_STATE_LIST_' => $stati_completati,
]).'" id="rinnova">
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="'.tr('Rinnova').'" data-class="btn btn-lg btn-warning">
<i class="fa fa-refresh"></i> '.tr('Rinnova').'...
</button>
</div>';
}
// Duplica contratto
echo '
<button type="button" class="btn btn-primary ask" data-title="'.tr('Duplicare questo contratto?').'" data-msg="'.tr('Clicca su tasto duplica per procedere.').'" data-op="copy" data-button="'.tr('Duplica').'" data-class="btn btn-lg btn-primary" data-backto="record-edit">
<i class="fa fa-copy"></i> '.tr('Duplica contratto').'
</button>';
</button>';

View File

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

View File

@ -64,31 +64,33 @@ function completaTrasporto() {
</script>';
}
// 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');
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');
foreach ($stati as $stato) {
$stati_importabili[] = $stato['descrizione'];
foreach ($stati as $stato) {
$stati_importabili[] = $stato['descrizione'];
}
$causali = $database->fetchArray('SELECT `title` FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record`
AND `dt_causalet_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `is_importabile` = 1');
foreach ($causali as $causale) {
$causali_importabili[] = $causale['title'];
}
echo '
<div class="tip" data-widget="tooltip" title="'.tr('Il ddt è fatturabile solo se si trova negli stati _STATE_LIST_ e la relativa causale è una delle seguenti: _CAUSALE_LIST_', [
'_STATE_LIST_' => implode(', ', $stati_importabili),
'_CAUSALE_LIST_' => implode(', ', $causali_importabili),
]).'">
<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>';
}
$causali = $database->fetchArray('SELECT `title` FROM `dt_causalet` LEFT JOIN `dt_causalet_lang` ON (`dt_causalet`.`id` = `dt_causalet_lang`.`id_record`
AND `dt_causalet_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `is_importabile` = 1');
foreach ($causali as $causale) {
$causali_importabili[] = $causale['title'];
}
echo '
<div class="tip" data-widget="tooltip" title="'.tr('Il ddt è fatturabile solo se si trova negli stati _STATE_LIST_ e la relativa causale è una delle seguenti: _CAUSALE_LIST_', [
'_STATE_LIST_' => implode(', ', $stati_importabili),
'_CAUSALE_LIST_' => implode(', ', $causali_importabili),
]).'">
<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 '
<button type="button" class="btn btn-primary ask" data-title="'.tr('Duplicare questo Ddt?').'" data-msg="'.tr('Clicca su tasto duplica per procedere.').'" data-op="copy" data-button="'.tr('Duplica').'" data-class="btn btn-lg btn-primary" data-backto="record-edit">
<i class="fa fa-copy"></i> '.tr('Duplica ddt').'
</button>';
</button>';

View File

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

View File

@ -30,34 +30,36 @@ if ($module->getTranslation('title') == 'Fatture di vendita') {
</a>';
}
if ($dir == 'entrata' || !empty($abilita_autofattura)) {
echo '
<div class="btn-group">
<button type="button" class="btn btn-primary unblockable dropdown-toggle '.(((!empty($record['ref_documento']) || $record['stato'] != 'Bozza') and (empty($record['is_reversed']) || !empty($abilita_autofattura))) ? '' : 'disabled').'" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>';
if ($dir == 'entrata') {
if (!$is_anagrafica_deleted) {
if ($dir == 'entrata' || !empty($abilita_autofattura)) {
echo '
<ul class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="'.base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'&op=nota_addebito&backto=record-edit">
'.tr('Nota di debito').'
</a>
<a class="dropdown-item" data-href="'.base_path().'/modules/fatture/crea_documento.php?id_module='.$id_module.'&id_record='.$id_record.'&iddocumento='.$id_record.'" data-title="Aggiungi nota di credito">
'.tr('Nota di credito').'
</a>
</ul>';
} elseif (!empty($abilita_autofattura)) {
<div class="btn-group">
<button type="button" class="btn btn-primary unblockable dropdown-toggle '.(((!empty($record['ref_documento']) || $record['stato'] != 'Bozza') and (empty($record['is_reversed']) || !empty($abilita_autofattura))) ? '' : 'disabled').'" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>';
if ($dir == 'entrata') {
echo '
<ul class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="'.base_path().'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'&op=nota_addebito&backto=record-edit">
'.tr('Nota di debito').'
</a>
<a class="dropdown-item" data-href="'.base_path().'/modules/fatture/crea_documento.php?id_module='.$id_module.'&id_record='.$id_record.'&iddocumento='.$id_record.'" data-title="Aggiungi nota di credito">
'.tr('Nota di credito').'
</a>
</ul>';
} elseif (!empty($abilita_autofattura)) {
echo '
<ul class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" data-href="'.base_path().'/modules/fatture/crea_autofattura.php?id_module='.$id_module.'&id_record='.$id_record.'&iddocumento='.$id_record.'" data-title="Aggiungi autofattura">
'.tr('Autofattura').'
</a>
</ul>';
}
echo '
<ul class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" data-href="'.base_path().'/modules/fatture/crea_autofattura.php?id_module='.$id_module.'&id_record='.$id_record.'&iddocumento='.$id_record.'" data-title="Aggiungi autofattura">
'.tr('Autofattura').'
</a>
</ul>';
</div>';
}
echo '
</div>';
}
if (empty($record['is_fiscale'])) {

View File

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

View File

@ -53,43 +53,46 @@ function anteprimaFirma() {
}
</script>';
// 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';
}
if (!setting('Permetti fatturazione delle attività collegate a ordini')) {
$where .= ' AND in_interventi.id_ordine IS NULL';
}
if (!setting('Permetti fatturazione delle attività collegate a preventivi')) {
$where .= ' AND in_interventi.id_preventivo IS NULL';
}
if (!$is_anagrafica_deleted) {
// Creazione altri documenti
$where = '';
if (!setting('Permetti fatturazione delle attività collegate a contratti')) {
$where = ' AND in_interventi.id_contratto IS NULL';
}
if (!setting('Permetti fatturazione delle attività collegate a ordini')) {
$where .= ' AND in_interventi.id_ordine IS NULL';
}
if (!setting('Permetti fatturazione delle attività collegate a preventivi')) {
$where .= ' AND in_interventi.id_preventivo IS NULL';
}
$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'];
$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'];
$stati_fatturabili = Stato::where('is_fatturabile', '=', '1')->get();
$stati = [];
$stati_fatturabili = Stato::where('is_fatturabile', '=', '1')->get();
$stati = [];
foreach ($stati_fatturabili as $stato) {
$stati[] = $stato->getTranslation('title');
}
foreach ($stati_fatturabili as $stato) {
$stati[] = $stato->getTranslation('title');
}
echo '
<div class="tip btn-group" data-widget="tooltip" title="'.tr('Per creare un documento _CONTROLLO_DOCUMENTI_ lo stato dell\'attività deve essere tra: _STATE_LIST_', [
'_CONTROLLO_DOCUMENTI_' => (!setting('Permetti fatturazione delle attività collegate a contratti') || !setting('Permetti fatturazione delle attività collegate a ordini') ||!setting('Permetti fatturazione delle attività collegate a preventivi') ? tr('l\'attività non deve essere collegata ai seguenti documenti').': '.(!setting('Permetti fatturazione delle attività collegate a contratti') ? '<b>Contratti</b>' : '').(!setting('Permetti fatturazione delle attività collegate a ordini') ? ' <b>Ordini</b>' : '').(!setting('Permetti fatturazione delle attività collegate a preventivi') ? ' <b>Preventivi</b>' : '').'<br> e' : ''),
'_STATE_LIST_' => implode(', ', (array)$stati),
]).'">
<button class="btn btn-info dropdown-toggle '.($is_fatturabile ? '' : 'disabled').'" type="button" data-toggle="dropdown" aria-expanded="false">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-file"></i> '.tr('Fattura di vendita').'
</a>
</div>
</div>';
echo '
<div class="tip btn-group" data-widget="tooltip" title="'.tr('Per creare un documento _CONTROLLO_DOCUMENTI_ lo stato dell\'attività deve essere tra: _STATE_LIST_', [
'_CONTROLLO_DOCUMENTI_' => (!setting('Permetti fatturazione delle attività collegate a contratti') || !setting('Permetti fatturazione delle attività collegate a ordini') ||!setting('Permetti fatturazione delle attività collegate a preventivi') ? tr('l\'attività non deve essere collegata ai seguenti documenti').': '.(!setting('Permetti fatturazione delle attività collegate a contratti') ? '<b>Contratti</b>' : '').(!setting('Permetti fatturazione delle attività collegate a ordini') ? ' <b>Ordini</b>' : '').(!setting('Permetti fatturazione delle attività collegate a preventivi') ? ' <b>Preventivi</b>' : '').'<br> e' : ''),
'_STATE_LIST_' => implode(', ', (array)$stati),
]).'">
<button class="btn btn-info dropdown-toggle '.($is_fatturabile ? '' : 'disabled').'" type="button" data-toggle="dropdown" aria-expanded="false">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-file"></i> '.tr('Fattura di vendita').'
</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,42 +32,44 @@ function duplicaOrdine() {
}
</script>';
$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'];
}
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'];
}
echo '
<div class="btn-group tip" '.(!in_array($record['stato'], $stati_importabili) ? ' data-widget="tooltip" title="'.tr('Per creare un documento lo stato dell\'ordine deve essere tra: ').implode(', ', $stati_importabili).'"' : '').'">
<button class="btn btn-info dropdown-toggle '.(in_array($record['stato'], $stati_importabili) ? '' : 'disabled').'" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=intervento" data-toggle="modal" data-title="'.tr('Crea attività').'">
<i class="fa fa-wrench"></i> '.tr('Attività').'
</a>
';
if ($dir == 'entrata') {
echo '
<div class="btn-group tip" '.(!in_array($record['stato'], $stati_importabili) ? ' data-widget="tooltip" title="'.tr('Per creare un documento lo stato dell\'ordine deve essere tra: ').implode(', ', $stati_importabili).'"' : '').'">
<button class="btn btn-info dropdown-toggle '.(in_array($record['stato'], $stati_importabili) ? '' : 'disabled').'" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-magic"></i> '.tr('Crea').'
<span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-toggle="modal" data-title="'.tr('Crea ordine fornitore').'">
<i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
</a>
';
}
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=intervento" data-toggle="modal" data-title="'.tr('Crea attività').'">
<i class="fa fa-wrench"></i> '.tr('Attività').'
</a>
';
echo '
if ($dir == 'entrata') {
echo '
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-toggle="modal" data-title="'.tr('Crea ddt').'">
<i class="fa fa-truck"></i> '.tr('Ddt').'
</a>
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-toggle="modal" data-title="'.tr('Crea ordine fornitore').'">
<i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
</a>
';
}
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-file"></i> '.tr('Fattura').'
</a>
echo '
</ul>
</div>';
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-toggle="modal" data-title="'.tr('Crea ddt').'">
<i class="fa fa-truck"></i> '.tr('Ddt').'
</a>
<a class="dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-toggle="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-file"></i> '.tr('Fattura').'
</a>
</ul>
</div>';
}

View File

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

View File

@ -47,40 +47,42 @@ foreach ($stati_abilitati as $stato) {
$stati[] = $stato->getTranslation('title');
}
// 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).'"' : '').'">
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).'"' : '').'">
<button class="btn btn-info dropdown-toggle '.($disabled ? '' : 'disabled').'" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-magic"></i>&nbsp;'.tr('Crea').'...
<span class="caret"></span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=contratto" data-widget="modal" data-title="'.tr('Crea contratto').'">
<i class="fa fa-file-o"></i> '.tr('Contratto').'
</a>
<button class="btn btn-info dropdown-toggle '.($disabled ? '' : 'disabled').'" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-magic"></i>&nbsp;'.tr('Crea').'...
<span class="caret"></span>
</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=contratto" data-widget="modal" data-title="'.tr('Crea contratto').'">
<i class="fa fa-file-o"></i> '.tr('Contratto').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_cliente" data-widget="modal" data-title="'.tr('Crea ordine cliente').'">
<i class="fa fa-file-o"></i> '.tr('Ordine cliente').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_cliente" data-widget="modal" data-title="'.tr('Crea ordine cliente').'">
<i class="fa fa-file-o"></i> '.tr('Ordine cliente').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-widget="modal" data-title="'.tr('Crea ordine fornitore').'">
<i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ordine_fornitore" data-widget="modal" data-title="'.tr('Crea ordine fornitore').'">
<i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=intervento" data-widget="modal" data-title="'.tr('Crea attività').'">
<i class="fa fa-file-o"></i> '.tr('Attività').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=intervento" data-widget="modal" data-title="'.tr('Crea attività').'">
<i class="fa fa-file-o"></i> '.tr('Attività').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-widget="modal" data-title="'.tr('Crea ordine cliente').'">
<i class="fa fa-truck"></i> '.tr('DDT in uscita').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=ddt" data-widget="modal" data-title="'.tr('Crea ordine cliente').'">
<i class="fa fa-truck"></i> '.tr('DDT in uscita').'
</a>
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-file"></i> '.tr('Fattura').'
</a>
</div>
</div>';
<a class="'.($disabled ? '' : 'disabled').' dropdown-item" data-href="'.$structure->fileurl('crea_documento.php').'?id_module='.$id_module.'&id_record='.$id_record.'&documento=fattura" data-widget="modal" data-title="'.tr('Crea fattura').'">
<i class="fa fa-file"></i> '.tr('Fattura').'
</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;
}