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

Aggiunta tabella zz_segments_lang

This commit is contained in:
Pek5892 2024-03-11 10:40:42 +01:00
parent 5cc4a2884f
commit cf68c56b3a
20 changed files with 104 additions and 58 deletions

View File

@ -1170,7 +1170,7 @@ switch ($op) {
// Nota di debito // Nota di debito
if (get('op') == 'nota_addebito') { if (get('op') == 'nota_addebito') {
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE predefined_addebito='1'"); $rs_segment = $dbo->fetchArray("SELECT * FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = ".prepare(setting('Lingua')).") WHERE `predefined_addebito`='1'");
if (!empty($rs_segment)) { if (!empty($rs_segment)) {
$id_segment = $rs_segment[0]['id']; $id_segment = $rs_segment[0]['id'];
} else { } else {

View File

@ -69,7 +69,7 @@ $idtipodocumento = Tipo::where('predefined', 1)->where('dir', $dir)->first()->id
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Tipo documento'); ?>", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`co_tipidocumento`.`codice_tipo_documento_fe`, ' - ', `co_tipidocumento_lang`.`name`) AS descrizione, `co_tipidocumento`.`id_segment`, `zz_segments`.`name` as name_segment FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = <?php echo prepare(setting('Lingua')) ?>) INNER JOIN `zz_segments` ON `zz_segments`.`id` = `co_tipidocumento`.`id_segment` WHERE `co_tipidocumento`.`enabled` = 1 AND `co_tipidocumento`.`dir` = '<?php echo $dir; ?>' ORDER BY `co_tipidocumento`.`codice_tipo_documento_fe`", "value": "<?php echo $idtipodocumento; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Tipo documento'); ?>", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`co_tipidocumento`.`codice_tipo_documento_fe`, ' - ', `co_tipidocumento_lang`.`name`) AS descrizione, `co_tipidocumento`.`id_segment`, `zz_segments_lang`.`name` as name_segment FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento_lang`.`id_record` = `co_tipidocumento`.`id` AND `co_tipidocumento_lang`.`id_lang` = <?php echo prepare(setting('Lingua')) ?>) INNER JOIN `zz_segments` ON `zz_segments`.`id` = `co_tipidocumento`.`id_segment` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = <?php echo prepare(setting('Lingua')) ?>) WHERE `co_tipidocumento`.`enabled` = 1 AND `co_tipidocumento`.`dir` = '<?php echo $dir; ?>' ORDER BY `co_tipidocumento`.`codice_tipo_documento_fe`", "value": "<?php echo $idtipodocumento; ?>" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -48,7 +48,7 @@ if (isset($id_record)) {
`co_statidocumento_lang`.`name` AS `stato`, `co_statidocumento_lang`.`name` AS `stato`,
`co_tipidocumento_lang`.`name` AS `descrizione_tipo`, `co_tipidocumento_lang`.`name` AS `descrizione_tipo`,
`co_tipidocumento`.`id` AS `idtipodocumento`, `co_tipidocumento`.`id` AS `idtipodocumento`,
(SELECT `is_fiscale` FROM `zz_segments` WHERE `zz_segments`.`id` = `co_documenti`.`id_segment`) AS is_fiscale, `zz_segments`.`is_fiscale` AS is_fiscale,
(SELECT `descrizione` FROM `co_ritenutaacconto` WHERE `id`=`idritenutaacconto`) AS ritenutaacconto_desc, (SELECT `descrizione` FROM `co_ritenutaacconto` WHERE `id`=`idritenutaacconto`) AS ritenutaacconto_desc,
(SELECT `descrizione` FROM `co_rivalse` WHERE `id`=`idrivalsainps`) AS rivalsainps_desc, (SELECT `descrizione` FROM `co_rivalse` WHERE `id`=`idrivalsainps`) AS rivalsainps_desc,
`dt_causalet_lang`.`name` AS causale_desc `dt_causalet_lang`.`name` AS causale_desc
@ -62,7 +62,9 @@ if (isset($id_record)) {
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).') LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(setting('Lingua')).')
LEFT JOIN `dt_causalet` ON `co_documenti`.`idcausalet`=`dt_causalet`.`id` LEFT JOIN `dt_causalet` ON `co_documenti`.`idcausalet`=`dt_causalet`.`id`
LEFT JOIN `dt_causalet_lang` ON (`dt_causalet_lang`.`id_record` = `dt_causalet`.`id` AND `dt_causalet_lang`.`id_lang` = '.prepare(setting('Lingua')).') LEFT JOIN `dt_causalet_lang` ON (`dt_causalet_lang`.`id_record` = `dt_causalet`.`id` AND `dt_causalet_lang`.`id_lang` = '.prepare(setting('Lingua')).')
WHERE `co_tipidocumento`.`dir` = '.prepare($dir).' AND `co_documenti`.`id`='.prepare($id_record)); INNER JOIN `zz_segments` ON `co_documenti`.`id_segment` = `zz_segments`.`id`
WHERE
`co_tipidocumento`.`dir` = '.prepare($dir).' AND `co_documenti`.`id`='.prepare($id_record));
// Note di credito collegate // Note di credito collegate
$note_accredito = $dbo->fetchArray("SELECT `co_documenti`.`id`, IF(`numero_esterno` != '', `numero_esterno`, `numero`) AS numero, data FROM `co_documenti` JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `reversed` = 1 AND `ref_documento`=".prepare($id_record)); $note_accredito = $dbo->fetchArray("SELECT `co_documenti`.`id`, IF(`numero_esterno` != '', `numero_esterno`, `numero`) AS numero, data FROM `co_documenti` JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `reversed` = 1 AND `ref_documento`=".prepare($id_record));

View File

@ -775,7 +775,7 @@ class Fattura extends Document
*/ */
public function isFiscale() public function isFiscale()
{ {
$result = database()->fetchOne('SELECT is_fiscale FROM zz_segments WHERE id ='.prepare($this->id_segment))['is_fiscale']; $result = database()->fetchOne('SELECT `is_fiscale` FROM `zz_segments` WHERE `id` ='.prepare($this->id_segment))['is_fiscale'];
return $result; return $result;
} }

View File

@ -157,7 +157,7 @@ switch (post('op')) {
if (empty($id_documento)) { if (empty($id_documento)) {
if (!empty($accodare)) { if (!empty($accodare)) {
$where = $raggruppamento == 'sede' ? ' AND `idsede_destinazione` = '.prepare($intervento['idsede_destinazione']) : ''; $where = $raggruppamento == 'sede' ? ' AND `idsede_destinazione` = '.prepare($intervento['idsede_destinazione']) : '';
$documento = $dbo->fetchOne('SELECT `co_documenti`.`id` FROM `co_documenti` INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` LEFT JOIN `co_statidocumenti_lang` ON (`co_statidocumenti`.`id` = `co_statidocumenti_lang`.`id_record` AND `co_statidocumenti_lang`.`id_lang` = "'.prepare(setting('Lingua')).'") INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` INNER JOIN `zz_segments` ON `zz_segments`.`id` = `co_documenti`.`id_segment` WHERE `co_statidocumento_lang`.`name` = "Bozza" AND `co_documenti`.`idanagrafica` = '.prepare($id_anagrafica).' AND co_tipidocumento.id='.prepare($tipo_documento['id']).' AND `co_documenti`.`id_segment` = '.prepare($id_segment).$where); $documento = $dbo->fetchOne('SELECT `co_documenti`.`id` FROM `co_documenti` INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` LEFT JOIN `co_statidocumenti_lang` ON (`co_statidocumenti`.`id` = `co_statidocumenti_lang`.`id_record` AND `co_statidocumenti_lang`.`id_lang` = "'.prepare(setting('Lingua')).'") INNER JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` INNER JOIN `zz_segments` ON `zz_segments`.`id` = `co_documenti`.`id_segment` WHERE `co_statidocumento_lang`.`name` = "Bozza" AND `co_documenti`.`idanagrafica` = '.prepare($id_anagrafica).' AND `co_tipidocumento`.`id`='.prepare($tipo_documento['id']).' AND `co_documenti`.`id_segment` = '.prepare($id_segment).$where);
$id_documento = $documento['id']; $id_documento = $documento['id'];
$id_documento_cliente[$id_anagrafica] = $id_documento; $id_documento_cliente[$id_anagrafica] = $id_documento;

View File

@ -105,7 +105,7 @@ switch (post('op')) {
break; break;
} }
$segment = $dbo->selectOne('zz_segments', 'name', ['id' => $_SESSION['module_'.$id_module]['id_segment']])['name']; $segment = $dbo->selectOne('zz_segments_lang', 'name', ['id_record' => $_SESSION['module_'.$id_module]['id_segment']])['name'];
if ($segment != 'Tutti') { if ($segment != 'Tutti') {
$operations['copy_listino'] = [ $operations['copy_listino'] = [

View File

@ -172,7 +172,7 @@ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module['name'])]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module['name'])]),
'data' => [ 'data' => [
'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module['name'])]), 'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module['name'])]),
'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_fatture.'\' ORDER BY name", "value": "'.$id_segment.'" ]}<br> 'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT `zz_segments`.`id`, `zz_segments_lang`.`name` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `id_module`=\''.$id_fatture.'\' ORDER BY `zz_segments_lang`.`name`", "value": "'.$id_segment.'" ]}<br>
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `name`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br> {[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `name`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br>
{[ "type": "select", "label": "'.tr('Raggruppa per').'", "name": "raggruppamento", "required": 1, "values": "list=\"cliente\":\"Cliente\",\"sede\":\"Sede\"" ]}', {[ "type": "select", "label": "'.tr('Raggruppa per').'", "name": "raggruppamento", "required": 1, "values": "list=\"cliente\":\"Cliente\",\"sede\":\"Sede\"" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),

View File

@ -30,22 +30,21 @@ switch (post('op')) {
} }
if ($predefined) { if ($predefined) {
$dbo->query('UPDATE zz_segments SET predefined = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE `zz_segments` SET `predefined` = 0 WHERE `id_module` = '.prepare($module));
} }
$predefined_accredito = post('predefined_accredito'); $predefined_accredito = post('predefined_accredito');
if ($predefined_accredito) { if ($predefined_accredito) {
$dbo->query('UPDATE zz_segments SET predefined_accredito = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE `zz_segments` SET `predefined_accredito` = 0 WHERE `id_module` = '.prepare($module));
} }
$predefined_addebito = post('predefined_addebito'); $predefined_addebito = post('predefined_addebito');
if ($predefined_addebito) { if ($predefined_addebito) {
$dbo->query('UPDATE zz_segments SET predefined_addebito = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE `zz_segments` SET `predefined_addebito` = 0 WHERE `id_module` = '.prepare($module));
} }
$dbo->update('zz_segments', [ $dbo->update('zz_segments', [
'id_module' => $module, 'id_module' => $module,
'name' => post('name'),
'clause' => $_POST['clause'], 'clause' => $_POST['clause'],
'pattern' => $pattern, 'pattern' => $pattern,
'note' => post('note'), 'note' => post('note'),
@ -59,6 +58,11 @@ switch (post('op')) {
'for_fe' => post('for_fe'), 'for_fe' => post('for_fe'),
], ['id' => $id_record]); ], ['id' => $id_record]);
$dbo->update('zz_segments_lang', [
'name' => post('name'),
], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]);
// Aggiornamento dei permessi relativi // Aggiornamento dei permessi relativi
$dbo->sync('zz_group_segment', ['id_segment' => $id_record], ['id_gruppo' => (array) post('gruppi')]); $dbo->sync('zz_group_segment', ['id_segment' => $id_record], ['id_gruppo' => (array) post('gruppi')]);
@ -76,12 +80,11 @@ switch (post('op')) {
} }
if ($predefined) { if ($predefined) {
$dbo->query('UPDATE zz_segments SET predefined = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE `zz_segments` SET `predefined` = 0 WHERE `id_module` = '.prepare($module));
} }
$dbo->insert('zz_segments', [ $dbo->insert('zz_segments', [
'id_module' => $module, 'id_module' => $module,
'name' => post('name'),
'clause' => '1=1', 'clause' => '1=1',
'pattern' => $pattern, 'pattern' => $pattern,
'note' => post('note'), 'note' => post('note'),
@ -91,6 +94,12 @@ switch (post('op')) {
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
$dbo->insert('zz_segments_lang', [
'name' => post('name'),
'id_record' => $id_record,
'id_lang' => setting('Lingua'),
]);
// Aggiunta permessi segmento // Aggiunta permessi segmento
$gruppi = $dbo->fetchArray('SELECT `id` FROM `zz_groups`'); $gruppi = $dbo->fetchArray('SELECT `id` FROM `zz_groups`');
$array = []; $array = [];

View File

@ -29,33 +29,33 @@ switch ($resource) {
$escludi_id = $superselect['escludi_id']; $escludi_id = $superselect['escludi_id'];
if (isset($id_module)) { if (isset($id_module)) {
$query = 'SELECT `id`, `name` AS descrizione FROM zz_segments INNER JOIN `zz_group_segment` ON `zz_segments`.`id` = `zz_group_segment`.`id_segment` |where| ORDER BY `name` ASC'; $query = 'SELECT `zz_segments`.`id`, `zz_segments_lang`.`name` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `zz_group_segment` ON `zz_segments`.`id` = `zz_group_segment`.`id_segment` |where| ORDER BY `name` ASC';
$where[] = 'zz_segments.id_module = '.prepare($id_module); $where[] = '`zz_segments`.`id_module` = '.prepare($id_module);
$where[] = 'zz_group_segment.id_gruppo = '.prepare($user->idgruppo); $where[] = '`zz_group_segment`.`id_gruppo` = '.prepare($user->idgruppo);
if ($is_fiscale != null) { if ($is_fiscale != null) {
$where[] = 'zz_segments.is_fiscale = '.prepare($is_fiscale); $where[] = '`zz_segments`.`is_fiscale` = '.prepare($is_fiscale);
} }
if ($is_sezionale != null) { if ($is_sezionale != null) {
$where[] = 'zz_segments.is_sezionale = '.prepare($is_sezionale); $where[] = '`zz_segments`.`is_sezionale` = '.prepare($is_sezionale);
} }
if ($for_fe != null) { if ($for_fe != null) {
$where[] = 'zz_segments.for_fe = '.prepare($for_fe); $where[] = '`zz_segments`.`for_fe` = '.prepare($for_fe);
} }
if ($escludi_id != null) { if ($escludi_id != null) {
$where[] = 'zz_segments.id != '.prepare($escludi_id); $where[] = '`zz_segments`.`id` != '.prepare($escludi_id);
} }
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'id='.prepare($element); $filter[] = '`zz_segments`.`id`='.prepare($element);
} }
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'zz_segments.name LIKE '.prepare('%'.$search.'%'); $search_fields[] = '`zz_segments_lang`.`name` LIKE '.prepare('%'.$search.'%');
} }
} }

View File

@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php';
use PHPSQLParser\PHPSQLParser; use PHPSQLParser\PHPSQLParser;
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT *, `zz_modules`.`options`, `zz_modules_lang`.`name` AS modulo, (SELECT COUNT(`t`.`id`) FROM `zz_segments` t WHERE `t`.`id_module` = `zz_segments`.`id_module`) AS n_sezionali FROM `zz_segments` INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_segments`.`id_module` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `zz_segments`.`id`='.prepare($id_record)); $record = $dbo->fetchOne('SELECT *, `zz_modules`.`options`, `zz_modules_lang`.`name` AS modulo, (SELECT COUNT(`t`.`id`) FROM `zz_segments` t WHERE `t`.`id_module` = `zz_segments`.`id_module`) AS n_sezionali FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_segments`.`id_module` LEFT JOIN `zz_modules_lang` ON (`zz_modules`.`id` = `zz_modules_lang`.`id_record` AND `zz_modules_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `zz_segments`.`id`='.prepare($id_record));
$parser = new PHPSQLParser(); $parser = new PHPSQLParser();
$parsed = $parser->parse($record['options']); $parsed = $parser->parse($record['options']);

View File

@ -29,31 +29,31 @@ switch ($resource) {
$query = 'SELECT `id`, `name` AS descrizione FROM zz_files |where|'; $query = 'SELECT `id`, `name` AS descrizione FROM zz_files |where|';
if (isset($id_module)) { if (isset($id_module)) {
$where[] = 'zz_files.id_module = '.prepare($id_module); $where[] = '`zz_files`.`id_module` = '.prepare($id_module);
} }
if (isset($id_plugin)) { if (isset($id_plugin)) {
$where[] = 'zz_files.id_plugin = '.prepare($id_plugin); $where[] = '`zz_files`.`id_plugin` = '.prepare($id_plugin);
} }
$where[] = 'zz_files.id_record = '.prepare($id_record); $where[] = '`zz_files`.`id_record` = '.prepare($id_record);
if ($is_fiscale != null) { if ($is_fiscale != null) {
$where[] = 'zz_segments.is_fiscale = '.prepare($is_fiscale); $where[] = '`zz_segments`.`is_fiscale` = '.prepare($is_fiscale);
} }
if ($is_sezionale != null) { if ($is_sezionale != null) {
$where[] = 'zz_segments.is_sezionale = '.prepare($is_sezionale); $where[] = '`zz_segments`.`is_sezionale` = '.prepare($is_sezionale);
} }
if ($escludi_id != null) { if ($escludi_id != null) {
$where[] = 'zz_segments.id != '.prepare($escludi_id); $where[] = '`zz_segments`.`id` != '.prepare($escludi_id);
} }
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'id='.prepare($element); $filter[] = '`id`='.prepare($element);
} }
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'zz_segments.name LIKE '.prepare('%'.$search.'%'); $search_fields[] = '`zz_segments`.`name` LIKE '.prepare('%'.$search.'%');
} }
} }

View File

@ -95,7 +95,7 @@ echo '
if ($nome_stampa != 'Liquidazione IVA') { if ($nome_stampa != 'Liquidazione IVA') {
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_sezionale", "required": "1", "values": "query=SELECT `zz_segments`.`id`, `name` AS descrizione FROM `zz_segments` WHERE `id_module` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = \''.(($dir == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto').'\') AND `is_fiscale` = 1 UNION SELECT -1 AS id, \'Tutti i sezionali\' AS descrizione" ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_sezionale", "required": "1", "values": "query=SELECT `zz_segments`.`id`, `zz_segments_lang`.`name` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `id_module` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = \''.(($dir == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto').'\') AND `is_fiscale` = 1 UNION SELECT -1 AS id, \'Tutti i sezionali\' AS descrizione" ]}
</div>'; </div>';
} }
echo ' echo '

View File

@ -37,14 +37,20 @@ switch (filter('op')) {
'description' => $descrizione, 'description' => $descrizione,
], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]); ], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]);
$segmento = $dbo->fetchOne('SELECT `zz_segments`.`id` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments_lang`.`id_record` = `zz_segments`.`id` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `id_module` = '.prepare((new Module())->getByName('Scadenzario')->id_record).' AND `clause` = "co_scadenziario.tipo=\''.$nome_prev.'\'" AND `zz_segments_lang`.`name` = "Scadenzario '.$nome_prev.'"')['id'];
// aggiorno anche il segmento // aggiorno anche il segmento
$dbo->update('zz_segments', [ $dbo->update('zz_segments', [
'clause' => 'co_scadenziario.tipo="'.$nome.'"', 'clause' => 'co_scadenziario.tipo="'.$nome.'"',
], [
'id' => $segmento,
]);
$dbo->update('zz_segments_lang', [
'name' => 'Scadenzario '.$nome, 'name' => 'Scadenzario '.$nome,
], [ ], [
'clause' => 'co_scadenziario.tipo="'.$nome_prev.'"', 'id_record' => $segmento,
'name' => 'Scadenzario '.$nome_prev, 'id_lang' => setting('Lingua'),
'id_module' => (new Module())->getByName('Scadenzario')->id_record,
]); ]);
flash()->info(tr('Salvataggio completato!')); flash()->info(tr('Salvataggio completato!'));
@ -81,10 +87,15 @@ switch (filter('op')) {
// Aggiungo anche il segmento // Aggiungo anche il segmento
$dbo->insert('zz_segments', [ $dbo->insert('zz_segments', [
'id_module' => (new Module())->getByName('Scadenzario')->id_record, 'id_module' => (new Module())->getByName('Scadenzario')->id_record,
'name' => 'Scadenzario '.$nome,
'clause' => 'co_scadenziario.tipo="'.$nome.'"', 'clause' => 'co_scadenziario.tipo="'.$nome.'"',
'position' => 'WHR', 'position' => 'WHR',
]); ]);
$id_record = $dbo->lastInsertedID();
$dbo->insert('zz_segments', [
'name' => 'Scadenzario '.$nome,
'id_record' => $id_record,
'id_lang' => setting('Lingua'),
]);
if (isAjaxRequest()) { if (isAjaxRequest()) {
echo json_encode(['id' => $id_record, 'text' => $descrizione]); echo json_encode(['id' => $id_record, 'text' => $descrizione]);

View File

@ -273,7 +273,7 @@ if (!empty($anagrafica)) {
{[ "type": "select", "label": "'.tr('Fattura collegata').'", "name": "ref_fattura", "required": 0, "values": "query='.$query.'" ]} {[ "type": "select", "label": "'.tr('Fattura collegata').'", "name": "ref_fattura", "required": 0, "values": "query='.$query.'" ]}
</div>'; </div>';
} elseif ($dati_generali['TipoDocumento'] == 'TD06') { } elseif ($dati_generali['TipoDocumento'] == 'TD06') {
$query .= "AND co_documenti.id_segment = (SELECT id FROM zz_segments WHERE name = 'Fatture pro-forma' AND id_module = ".prepare($id_module).')'; $query .= "AND `co_documenti`.`id_segment` = (SELECT `zz_segments`.`id` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments_lang`.`id_record` = `zz_segments`.`id` AND `zz_segments_lang`.`id_lang` = ".prepare(setting('Lingua')).") WHERE `name` = 'Fatture pro-forma' AND `id_module` = ".prepare($id_module).')';
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">

View File

@ -74,7 +74,7 @@ echo '
// Sezionale // Sezionale
echo '<div class="col-md-6"> echo '<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.$id_module_fattura.' ORDER BY name", "value":"'.$_SESSION['module_'.$id_module_fattura]['id_segment'].'" ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT `zz_segments`.`id`, `name` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments_lang`.`id_record` = `zz_segments`.`id` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `id_module`='.$id_module_fattura.' ORDER BY `name`", "value":"'.$_SESSION['module_'.$id_module_fattura]['id_segment'].'" ]}
</div>'; </div>';
// Conto // Conto

View File

@ -182,7 +182,7 @@ class Modules
if (!isset(self::$segments[$module])) { if (!isset(self::$segments[$module])) {
$database = database(); $database = database();
self::$segments[$module] = $database->fetchArray('SELECT * FROM `zz_segments` INNER JOIN `zz_group_segment` ON `zz_segments`.`id` = `zz_group_segment`.`id_segment` WHERE `id_gruppo` = '.prepare($user->idgruppo).' AND `id_module` = '.prepare($module).' ORDER BY `predefined` DESC, `id` ASC'); self::$segments[$module] = $database->fetchArray('SELECT * FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `zz_group_segment` ON `zz_segments`.`id` = `zz_group_segment`.`id_segment` WHERE `id_gruppo` = '.prepare($user->idgruppo).' AND `id_module` = '.prepare($module).' ORDER BY `predefined` DESC, `id` ASC');
} }
return (array) self::$segments[$module]; return (array) self::$segments[$module];

View File

@ -190,7 +190,7 @@ class Generator
{ {
$database = database(); $database = database();
$maschera = $database->fetchOne('SELECT pattern FROM zz_segments WHERE id = :id_segment', [ $maschera = $database->fetchOne('SELECT `pattern` FROM `zz_segments` WHERE `id` = :id_segment', [
':id_segment' => $id_segment, ':id_segment' => $id_segment,
]); ]);

View File

@ -23,7 +23,7 @@ use Models\Module;
$dir = $_GET['dir']; $dir = $_GET['dir'];
$id_sezionale = filter('id_sezionale'); $id_sezionale = filter('id_sezionale');
$sezionale = $dbo->fetchOne('SELECT name FROM zz_segments WHERE id = '.$id_sezionale)['name']; $sezionale = $dbo->fetchOne('SELECT `zz_segmnets_lang`.`name` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `zz_segments`.`id` = '.$id_sezionale)['name'];
$date_start = filter('date_start'); $date_start = filter('date_start');
$date_end = filter('date_end'); $date_end = filter('date_end');

View File

@ -1837,21 +1837,6 @@ HAVING
ORDER BY ORDER BY
`scadenza` ASC" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Scadenzario'); `scadenza` ASC" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Scadenzario');
-- Allineamento vista Segmenti
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`zz_segments`
INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_segments`.`id_module`
LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.|lang|)
LEFT JOIN (SELECT GROUP_CONCAT(`zz_groups`.`nome` ORDER BY `zz_groups`.`nome` SEPARATOR ', ') AS `gruppi`, `zz_group_segment`.`id_segment` FROM `zz_group_segment` INNER JOIN `zz_groups` ON `zz_groups`.`id` = `zz_group_segment`.`id_gruppo` GROUP BY `zz_group_segment`.`id_segment`) AS `t` ON `t`.`id_segment` = `zz_segments`.`id`
WHERE
1=1
HAVING
2=2
ORDER BY `zz_segments`.`name`,
`zz_segments`.`id_module`" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Segmenti');
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`zz_modules_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Segmenti' AND `zz_views`.`name` = 'Modulo'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`zz_modules_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Segmenti' AND `zz_views`.`name` = 'Modulo';
-- Allineamento vista Stampe -- Allineamento vista Stampe
@ -2036,4 +2021,42 @@ ORDER BY
`mg_articoli_lang`.`name`" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Giacenze sedi'); `mg_articoli_lang`.`name`" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Giacenze sedi');
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`mg_articoli_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Descrizione'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`mg_articoli_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`categoria_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Categoria'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`categoria_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Categoria';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`sottocategoria_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Sottocategoria'; UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`sottocategoria_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Giacenze sedi' AND `zz_views`.`name` = 'Sottocategoria';
-- Aggiunta tabella zz_segments_lang
CREATE TABLE IF NOT EXISTS `zz_segments_lang` (
`id` int NOT NULL,
`id_lang` int NOT NULL,
`id_record` int NOT NULL,
`name` VARCHAR(255) NOT NULL
);
ALTER TABLE `zz_segments_lang`
ADD PRIMARY KEY (`id`);
ALTER TABLE `zz_segments_lang`
MODIFY `id` int NOT NULL AUTO_INCREMENT;
INSERT INTO `zz_segments_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `name` FROM `zz_segments`;
ALTER TABLE `zz_segments`
DROP `name`;
ALTER TABLE `zz_segments_lang` ADD CONSTRAINT `zz_segments_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `zz_segments`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Allineamento vista Segmenti
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`zz_segments`
LEFT JOIN `zz_segments_lang` ON (`zz_segments_lang`.`id_record` = `zz_segments`.`id` AND `zz_segments_lang`.|lang|)
INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_segments`.`id_module`
LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.|lang|)
LEFT JOIN (SELECT GROUP_CONCAT(`zz_groups`.`nome` ORDER BY `zz_groups`.`nome` SEPARATOR ', ') AS `gruppi`, `zz_group_segment`.`id_segment` FROM `zz_group_segment` INNER JOIN `zz_groups` ON `zz_groups`.`id` = `zz_group_segment`.`id_gruppo` GROUP BY `zz_group_segment`.`id_segment`) AS `t` ON `t`.`id_segment` = `zz_segments`.`id`
WHERE
1=1
HAVING
2=2
ORDER BY `zz_segments_lang`.`name`,
`zz_segments`.`id_module`" WHERE `zz_modules`.`id` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Segmenti');
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua")) SET `zz_views`.`query` = '`zz_segments_lang`.`name`' WHERE `zz_modules_lang`.`name` = 'Segmenti' AND `zz_views`.`name` = 'Nome';

View File

@ -181,6 +181,7 @@ return [
'zz_plugins_lang', 'zz_plugins_lang',
'zz_prints', 'zz_prints',
'zz_segments', 'zz_segments',
'zz_segments_lang'
'zz_semaphores', 'zz_semaphores',
'zz_settings', 'zz_settings',
'zz_tasks', 'zz_tasks',