Prima aggiunta tabelle traduzioni
This commit is contained in:
parent
c6107b0121
commit
ff89f281e2
|
@ -19,14 +19,17 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Tipo;
|
||||
|
||||
if (Update::isUpdateAvailable() || !$dbo->isInstalled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$has_azienda = $dbo->fetchNum("SELECT `an_anagrafiche`.`idanagrafica` FROM `an_anagrafiche`
|
||||
$has_azienda = $dbo->fetchNum('SELECT `an_anagrafiche`.`idanagrafica` FROM `an_anagrafiche`
|
||||
LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
|
||||
WHERE `an_tipianagrafiche`.`descrizione` = 'Azienda' AND `an_anagrafiche`.`deleted_at` IS NULL") != 0;
|
||||
LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).")
|
||||
WHERE `an_tipianagrafiche_lang`.`name` = 'Azienda' AND `an_anagrafiche`.`deleted_at` IS NULL") != 0;
|
||||
$has_user = $dbo->fetchNum('SELECT `id` FROM `zz_users`') != 0;
|
||||
|
||||
$settings = [
|
||||
|
@ -168,7 +171,7 @@ if (!$has_azienda) {
|
|||
|
||||
<div class="panel-body" id="bs-popup">';
|
||||
|
||||
$idtipoanagrafica = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
||||
$idtipoanagrafica = (new Tipo())->getByName('Azienda')->id_record;
|
||||
$readonly_tipo = true;
|
||||
|
||||
ob_start();
|
||||
|
|
|
@ -53,19 +53,20 @@ class PianoConti extends Controllo
|
|||
* Verifico se serve creare un conto per eventuali nuovi clienti o fornitori.
|
||||
*/
|
||||
$anagrafiche_interessate = $database->fetchArray('SELECT
|
||||
an_anagrafiche.idanagrafica AS id,
|
||||
an_anagrafiche.idconto_cliente,
|
||||
an_anagrafiche.idconto_fornitore,
|
||||
an_anagrafiche.ragione_sociale,
|
||||
GROUP_CONCAT(an_tipianagrafiche.descrizione) AS tipi_anagrafica
|
||||
FROM an_anagrafiche
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.idtipoanagrafica = an_tipianagrafiche_anagrafiche.idtipoanagrafica
|
||||
`an_anagrafiche`.`idanagrafica` AS id,
|
||||
`an_anagrafiche`.`idconto_cliente`,
|
||||
`an_anagrafiche`.`idconto_fornitore`,
|
||||
`an_anagrafiche`.`ragione_sociale`,
|
||||
GROUP_CONCAT(`an_tipianagrafiche_lang`.`name`) AS tipi_anagrafica
|
||||
FROM `an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE
|
||||
(idconto_cliente = 0 OR idconto_cliente IS NULL OR idconto_fornitore = 0 OR idconto_fornitore IS NULL)
|
||||
(`idconto_cliente` = 0 OR `idconto_cliente` IS NULL OR `idconto_fornitore` = 0 OR `idconto_fornitore` IS NULL)
|
||||
AND
|
||||
deleted_at IS NULL
|
||||
GROUP BY an_anagrafiche.idanagrafica');
|
||||
`deleted_at` IS NULL
|
||||
GROUP BY `an_anagrafiche`.`idanagrafica`');
|
||||
|
||||
foreach ($anagrafiche_interessate as $anagrafica) {
|
||||
$tipi = explode(',', $anagrafica['tipi_anagrafica']);
|
||||
|
|
|
@ -53,18 +53,19 @@ class ReaValidi extends Controllo
|
|||
* Verifico se i R.E.A. inseriti per le anagrafiche hanno una struttura valida.
|
||||
*/
|
||||
$anagrafiche_interessate = $database->fetchArray('SELECT
|
||||
an_anagrafiche.idanagrafica AS id,
|
||||
an_anagrafiche.codicerea,
|
||||
an_anagrafiche.ragione_sociale,
|
||||
GROUP_CONCAT(an_tipianagrafiche.descrizione) AS tipi_anagrafica
|
||||
FROM an_anagrafiche
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.idtipoanagrafica = an_tipianagrafiche_anagrafiche.idtipoanagrafica
|
||||
`an_anagrafiche`.`idanagrafica` AS id,
|
||||
`an_anagrafiche`.`codicerea`,
|
||||
`an_anagrafiche`.`ragione_sociale`,
|
||||
GROUP_CONCAT(`an_tipianagrafiche_lang`.`name`) AS tipi_anagrafica
|
||||
FROM `an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.id = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE
|
||||
codicerea NOT REGEXP "([A-Za-z]{2})-([0-9]{1,20})" AND codicerea != ""
|
||||
`codicerea` NOT REGEXP "([A-Za-z]{2})-([0-9]{1,20})" AND `codicerea` != ""
|
||||
AND
|
||||
deleted_at IS NULL
|
||||
GROUP BY an_anagrafiche.idanagrafica');
|
||||
`deleted_at` IS NULL
|
||||
GROUP BY `an_anagrafiche`.`idanagrafica`');
|
||||
|
||||
foreach ($anagrafiche_interessate as $anagrafica) {
|
||||
/*$tipi = explode(',', $anagrafica['tipi_anagrafica']);
|
||||
|
|
|
@ -197,7 +197,7 @@ switch (post('op')) {
|
|||
// Lettura tipologia dell'utente loggato
|
||||
$agente_is_logged = false;
|
||||
if (!empty($user['idanagrafica'])) {
|
||||
$rs = $dbo->fetchArray('SELECT descrizione FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica = an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica = '.prepare($user['idanagrafica']));
|
||||
$rs = $dbo->fetchArray('SELECT `name` AS descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica` = '.prepare($user['idanagrafica']));
|
||||
|
||||
for ($i = 0; $i < count($rs); ++$i) {
|
||||
if ($rs[$i]['descrizione'] == 'Agente') {
|
||||
|
@ -236,8 +236,7 @@ switch (post('op')) {
|
|||
echo json_encode(['id' => $id_record, 'text' => $anagrafica->ragione_sociale]);
|
||||
}
|
||||
|
||||
$descrizioni_tipi = $anagrafica->tipi()->get()->pluck('descrizione')->toArray();
|
||||
|
||||
$descrizioni_tipi = $anagrafica->tipi()->get()->pluck('name')->toArray();
|
||||
flash()->info(tr('Aggiunta nuova anagrafica di tipo _TYPE_', [
|
||||
'_TYPE_' => '"'.implode(', ', $descrizioni_tipi).'"',
|
||||
]));
|
||||
|
|
|
@ -21,11 +21,11 @@ use Modules\Anagrafiche\Nazione;
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$id_nazione_italia = Nazione::where('nome', 'Italia')->first()->id;
|
||||
|
||||
if (get('tipoanagrafica') != '') {
|
||||
$rs = $dbo->fetchArray('SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='.prepare(get('tipoanagrafica')));
|
||||
$idtipoanagrafica = $rs[0]['idtipoanagrafica'];
|
||||
$id_nazione_italia = (new Nazione())->getByName('Italia')->id_record;
|
||||
$tipo = get('tipoanagrafica');
|
||||
if (!empty($tipo)) {
|
||||
$rs = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id`, `an_tipianagrafiche_lang`.`name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE name='.prepare($tipo));
|
||||
$idtipoanagrafica = $rs[0]['id'];
|
||||
}
|
||||
|
||||
echo '
|
||||
|
@ -39,7 +39,7 @@ echo '
|
|||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Tipo di anagrafica').'", "name": "idtipoanagrafica[]", "id": "idtipoanagrafica_add", "multiple": "1", "required": 1, "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = \'Azienda\' AND deleted_at IS NULL) ORDER BY descrizione", "value": "'.(isset($idtipoanagrafica) ? $idtipoanagrafica : null).'", "readonly": '.(!empty(get('readonly_tipo')) ? 1 : 0).' ]}
|
||||
{[ "type": "select", "label": "'.tr('Tipo di anagrafica').'", "name": "idtipoanagrafica[]", "id": "idtipoanagrafica_add", "multiple": "1", "required": 1, "values": "query=SELECT `an_tipianagrafiche`.`id`, `name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `an_tipianagrafiche`.`id` NOT IN (SELECT DISTINCT(`x`.`idtipoanagrafica`) FROM `an_tipianagrafiche_anagrafiche` x INNER JOIN `an_tipianagrafiche` t ON `x`.`idtipoanagrafica` = `t`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`t`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `x`.`idanagrafica` WHERE `an_tipianagrafiche_lang`.`name` = \'Azienda\' AND `deleted_at` IS NULL) ORDER BY `name`", "value": "'.(isset($idtipoanagrafica) ? $idtipoanagrafica : null).'", "readonly": '.(!empty(get('readonly_tipo')) ? 1 : 0).' ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -99,7 +99,7 @@ echo '
|
|||
<div class="row">
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "id": "id_nazione_add", "values": "query=SELECT id AS id, CONCAT_WS(\' - \', iso2, nome) AS descrizione, iso2 FROM an_nazioni ORDER BY CASE WHEN iso2=\'IT\' THEN -1 ELSE iso2 END", "value": "'.$id_nazione_italia.'" ]}
|
||||
{[ "type": "select", "label": "'.tr('Nazione').'", "name": "id_nazione", "id": "id_nazione_add", "values": "query=SELECT `an_nazioni`.`id` AS id, CONCAT_WS(\' - \', `iso2`, `an_nazioni_lang`.`name`) AS descrizione, `iso2` FROM `an_nazioni` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(setting('Lingua')).') ORDER BY CASE WHEN `iso2`=\'IT\' THEN -1 ELSE `iso2` END", "value": "'.$id_nazione_italia.'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
|
|
@ -26,62 +26,61 @@ switch ($resource) {
|
|||
$id_azienda = setting('Azienda predefinita');
|
||||
|
||||
$query = "SELECT
|
||||
an_anagrafiche.idanagrafica AS id,
|
||||
an_anagrafiche.lat,
|
||||
an_anagrafiche.lng,
|
||||
is_bloccata,
|
||||
CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'), IF(is_bloccata = 1, CONCAT(' (', an_relazioni.descrizione, ')'), ''),' - ', an_anagrafiche.codice ) AS descrizione,
|
||||
idtipointervento_default AS idtipointervento,
|
||||
in_tipiintervento.descrizione AS idtipointervento_descrizione,
|
||||
an_anagrafiche.idzona,
|
||||
contratto.id AS id_contratto,
|
||||
contratto.descrizione AS descrizione_contratto,
|
||||
co_pagamenti.id AS id_pagamento,
|
||||
co_pagamenti.descrizione AS desc_pagamento,
|
||||
banca_vendite.id AS id_banca_vendite,
|
||||
CONCAT(banca_vendite.nome, ' - ', banca_vendite.iban) AS descrizione_banca_vendite
|
||||
`an_anagrafiche`.`idanagrafica` AS id,
|
||||
`an_anagrafiche`.`lat`,
|
||||
`an_anagrafiche`.`lng`,
|
||||
`is_bloccata`,
|
||||
CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'), IF(`is_bloccata` = 1, CONCAT(' (', `an_relazioni_lang`.`name`, ')'), ''),' - ', `an_anagrafiche`.`codice` ) AS descrizione,
|
||||
`idtipointervento_default` AS idtipointervento,
|
||||
`in_tipiintervento`.`descrizione` AS idtipointervento_descrizione,
|
||||
`an_anagrafiche`.`idzona`,
|
||||
`contratto`.`id` AS id_contratto,
|
||||
`contratto`.`descrizione` AS descrizione_contratto,
|
||||
`co_pagamenti`.`id` AS id_pagamento,
|
||||
`co_pagamenti`.`descrizione` AS desc_pagamento,
|
||||
`banca_vendite`.`id` AS id_banca_vendite,
|
||||
CONCAT(`banca_vendite`.`nome`, ' - ', `banca_vendite`.`iban`) AS descrizione_banca_vendite
|
||||
FROM
|
||||
an_anagrafiche
|
||||
INNER JOIN (an_tipianagrafiche_anagrafiche
|
||||
INNER JOIN an_tipianagrafiche
|
||||
ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica)
|
||||
ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica LEFT JOIN in_tipiintervento ON an_anagrafiche.idtipointervento_default=in_tipiintervento.idtipointervento
|
||||
`an_anagrafiche`
|
||||
INNER JOIN (`an_tipianagrafiche_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche`ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".setting('Lingua').'))
|
||||
ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `in_tipiintervento` ON `an_anagrafiche`.`idtipointervento_default`=`in_tipiintervento`.`idtipointervento`
|
||||
LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione`=`an_relazioni`.`id`
|
||||
LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`= '.setting('Lingua').")
|
||||
LEFT JOIN
|
||||
an_relazioni
|
||||
ON an_anagrafiche.idrelazione=an_relazioni.id
|
||||
(SELECT `co_contratti`.`id`, `idanagrafica`, CONCAT('Contratto ', `numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y'), ' - ', `co_contratti`.`nome`, ' [', `co_staticontratti`.`descrizione` , ']') AS descrizione FROM `co_contratti` LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato`=`co_staticontratti`.`id` WHERE `co_contratti`.`predefined`=1 AND `is_pianificabile`=1) AS contratto
|
||||
ON `an_anagrafiche`.`idanagrafica`=`contratto`.`idanagrafica`
|
||||
LEFT JOIN
|
||||
(SELECT co_contratti.id, idanagrafica, CONCAT('Contratto ', numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y'), ' - ', co_contratti.nome, ' [', `co_staticontratti`.`descrizione` , ']') AS descrizione FROM co_contratti LEFT JOIN co_staticontratti ON co_contratti.idstato=co_staticontratti.id WHERE co_contratti.predefined=1 AND is_pianificabile=1) AS contratto
|
||||
ON an_anagrafiche.idanagrafica=contratto.idanagrafica
|
||||
`co_pagamenti`
|
||||
ON `an_anagrafiche`.`idpagamento_vendite`=`co_pagamenti`.`id`
|
||||
LEFT JOIN
|
||||
co_pagamenti
|
||||
ON an_anagrafiche.idpagamento_vendite=co_pagamenti.id
|
||||
LEFT JOIN
|
||||
co_banche banca_vendite
|
||||
ON co_pagamenti.idconto_vendite = banca_vendite.id_pianodeiconti3 AND banca_vendite.id_anagrafica = ".prepare($id_azienda).' AND banca_vendite.deleted_at IS NULL AND banca_vendite.predefined = 1
|
||||
`co_banche` banca_vendite
|
||||
ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = ".prepare($id_azienda).' AND `banca_vendite`.`deleted_at` IS NULL AND `banca_vendite`.`predefined` = 1
|
||||
|where|
|
||||
ORDER BY
|
||||
ragione_sociale';
|
||||
`ragione_sociale`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = "an_tipianagrafiche.descrizione='Cliente'";
|
||||
$where[] = "`an_tipianagrafiche_lang`.`name`='Cliente'";
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
|
||||
if (!empty($filter_agente)) {
|
||||
$where[] = 'idagente = '.Auth::user()['idanagrafica'];
|
||||
$where[] = '`idagente` = '.Auth::user()['idanagrafica'];
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.piva LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice_fiscale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
$data = AJAX::selectResults($query, $where, $filter, $search_fields, $limit, $custom);
|
||||
|
@ -104,47 +103,47 @@ switch ($resource) {
|
|||
case 'fornitori':
|
||||
$id_azienda = setting('Azienda predefinita');
|
||||
|
||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default AS idtipointervento, co_pagamenti.id AS id_pagamento, co_pagamenti.descrizione AS desc_pagamento, banca_acquisti.id AS id_banca_acquisti, CONCAT(banca_acquisti.nome, ' - ', banca_acquisti.iban) AS descrizione_banca_acquisti FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica LEFT JOIN co_pagamenti ON an_anagrafiche.idpagamento_acquisti=co_pagamenti.id LEFT JOIN co_banche banca_acquisti ON co_pagamenti.idconto_acquisti = banca_acquisti.id_pianodeiconti3 AND banca_acquisti.id_anagrafica = ".prepare($id_azienda).' AND banca_acquisti.deleted_at IS NULL AND banca_acquisti.predefined = 1 |where| ORDER BY ragione_sociale';
|
||||
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` AS `idtipointervento`, `co_pagamenti`.`id` AS id_pagamento, `co_pagamenti`.`descrizione` AS desc_pagamento, `banca_acquisti`.`id` AS id_banca_acquisti, CONCAT(`banca_acquisti`.`nome`, ' - ', `banca_acquisti`.`iban`) AS descrizione_banca_acquisti FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_acquisti`=`co_pagamenti`.`id` LEFT JOIN `co_banche` banca_acquisti ON `co_pagamenti`.`idconto_acquisti` = `banca_acquisti`.`id_pianodeiconti3` AND `banca_acquisti`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_acquisti`.`deleted_at` IS NULL AND `banca_acquisti`.`predefined` = 1 |where| ORDER BY `ragione_sociale`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = "an_tipianagrafiche.descrizione='Fornitore'";
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = "`name` = 'Fornitore'";
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.piva LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice_fiscale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'vettori':
|
||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default AS idtipointervento FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
|
||||
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` AS idtipointervento FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = "descrizione='Vettore'";
|
||||
$where[] = "`name`='Vettore'";
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.piva LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice_fiscale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -154,31 +153,31 @@ switch ($resource) {
|
|||
* - idanagrafica
|
||||
*/
|
||||
case 'agenti':
|
||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
|
||||
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = "descrizione='Agente'";
|
||||
$where[] = "`name`='Agente'";
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.piva LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice_fiscale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
$results = AJAX::selectResults($query, $where, $filter, $search, $limit, $custom);
|
||||
|
||||
// Evidenzia l'agente di default
|
||||
if ($superselect['idanagrafica']) {
|
||||
$rsa = $dbo->fetchArray('SELECT idagente FROM an_anagrafiche WHERE idanagrafica='.prepare($superselect['idanagrafica']));
|
||||
$rsa = $dbo->fetchArray('SELECT `idagente` FROM `an_anagrafiche` WHERE `idanagrafica`='.prepare($superselect['idanagrafica']));
|
||||
$idagente_default = $rsa[0]['idagente'];
|
||||
} else {
|
||||
$idagente_default = 0;
|
||||
|
@ -192,57 +191,57 @@ switch ($resource) {
|
|||
break;
|
||||
|
||||
case 'tecnici':
|
||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
|
||||
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `ragione_sociale`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = "descrizione='Tecnico'";
|
||||
$where[] = "`name`='Tecnico'";
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
|
||||
if (setting('Permetti inserimento sessioni degli altri tecnici')) {
|
||||
} else {
|
||||
// come tecnico posso aprire attività solo a mio nome
|
||||
$user = Auth::user();
|
||||
if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) {
|
||||
$where[] = 'an_anagrafiche.idanagrafica='.$user['idanagrafica'];
|
||||
$where[] = '`an_anagrafiche`.`idanagrafica`='.$user['idanagrafica'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.piva LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice_fiscale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'clienti_fornitori':
|
||||
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup, idtipointervento_default, an_tipianagrafiche.idtipoanagrafica FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC, ragione_sociale ASC";
|
||||
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', `ragione_sociale`, IF(`citta` !='' OR `provincia` != '', CONCAT(' (', `citta`, IF(`provincia`!='', CONCAT(' ', `provincia`), ''), ')'), ''), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup, `idtipointervento_default`, `an_tipianagrafiche`.`id` as id_tipo FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC, `ragione_sociale` ASC';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
$where = [];
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = "an_tipianagrafiche_anagrafiche.idtipoanagrafica IN (SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = 'Cliente' OR descrizione = 'Fornitore' OR descrizione = 'Azienda')";
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
$where[] = '`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` IN (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).") WHERE `name` = 'Cliente' OR `name` = 'Fornitore' OR `name` = 'Azienda')";
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.piva LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice_fiscale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
// Aggiunta filtri di ricerca
|
||||
|
@ -274,23 +273,23 @@ switch ($resource) {
|
|||
|
||||
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
|
||||
case 'anagrafiche':
|
||||
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY `optgroup` ASC, ragione_sociale ASC";
|
||||
$query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', `ragione_sociale`, IF(`citta` !='' OR `provincia` != '', CONCAT(' (', `citta`, IF(`provincia`!='', CONCAT(' ', `provincia`), ''), ')'), ''), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'),' - ', `an_anagrafiche`.`codice`) AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC, `ragione_sociale` ASC';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.piva LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_anagrafiche.codice_fiscale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
// Aggiunta filtri di ricerca
|
||||
|
@ -329,26 +328,26 @@ switch ($resource) {
|
|||
SELECT
|
||||
*
|
||||
FROM
|
||||
(SELECT '0' AS id, (SELECT lat FROM an_anagrafiche |where|) AS lat, (SELECT lng FROM an_anagrafiche |where|) AS lng, (SELECT idzona FROM an_anagrafiche |where|) AS idzona, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), ''), ' (',ragione_sociale,')') FROM an_anagrafiche |where|)) AS descrizione
|
||||
(SELECT '0' AS id, (SELECT `lat` FROM `an_anagrafiche` |where|) AS lat, (SELECT `lng` FROM `an_anagrafiche` |where|) AS lng, (SELECT `idzona` FROM `an_anagrafiche` |where|) AS idzona, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (`citta`, IF(`indirizzo`!='',CONCAT(' (', `indirizzo`, ')'), ''), ' (',`ragione_sociale`,')') FROM `an_anagrafiche` |where|)) AS descrizione
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
id,
|
||||
lat,
|
||||
lng,
|
||||
idzona,
|
||||
CONCAT_WS(' - ', nomesede, CONCAT(citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), '')) ) FROM an_sedi |where|) AS tab
|
||||
`id`,
|
||||
`lat`,
|
||||
`lng`,
|
||||
`idzona`,
|
||||
CONCAT_WS(' - ', `nomesede`, CONCAT(`citta`, IF(indirizzo!='',CONCAT(' (', `indirizzo`, ')'), '')) ) FROM `an_sedi` |where|) AS tab
|
||||
HAVING
|
||||
descrizione LIKE ".prepare('%'.$search.'%').'
|
||||
`descrizione` LIKE ".prepare('%'.$search.'%').'
|
||||
ORDER BY
|
||||
descrizione';
|
||||
`descrizione`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = 'idanagrafica='.prepare($superselect['idanagrafica']);
|
||||
$where[] = '`idanagrafica`='.prepare($superselect['idanagrafica']);
|
||||
|
||||
/*
|
||||
if (!empty($search)) {
|
||||
|
@ -362,21 +361,21 @@ switch ($resource) {
|
|||
$user = Auth::user();
|
||||
$id_azienda = setting('Azienda predefinita');
|
||||
|
||||
$query = "SELECT * FROM (SELECT '0' AS id, 'Sede legale' AS nomesede, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), ''),' (', ragione_sociale,')') FROM an_anagrafiche |where|)) AS descrizione UNION SELECT id, nomesede, CONCAT_WS(' - ', nomesede, CONCAT(citta, IF(indirizzo!='',CONCAT(' (', indirizzo, ')'), '')) ) FROM an_sedi |where|) AS tab |filter| ORDER BY descrizione";
|
||||
$query = "SELECT * FROM (SELECT '0' AS id, 'Sede legale' AS `nomesede`, CONCAT_WS(' - ', \"".tr('Sede legale')."\" , (SELECT CONCAT (`citta`, IF(`indirizzo`!='',CONCAT(' (', `indirizzo`, ')'), ''),' (', `ragione_sociale`,')') FROM `an_anagrafiche` |where|)) AS descrizione UNION SELECT `id`, `nomesede`, CONCAT_WS(' - ', `nomesede`, CONCAT(`citta`, IF(`indirizzo`!='',CONCAT(' (', `indirizzo`, ')'), '')) ) FROM `an_sedi` |where|) AS tab |filter| ORDER BY descrizione";
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = 'idanagrafica='.prepare($id_azienda);
|
||||
$where[] = '`idanagrafica`='.prepare($id_azienda);
|
||||
// admin o utente senza una sede prefissata, avrà accesso a tutte le sedi
|
||||
if (!empty($user->sedi) and !$user->is_admin) {
|
||||
$where[] = 'id IN('.implode(',', $user->sedi).')';
|
||||
$where[] = '`id` IN('.implode(',', $user->sedi).')';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'nomesede LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`nomesede` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -387,100 +386,100 @@ switch ($resource) {
|
|||
*/
|
||||
case 'referenti':
|
||||
if (isset($superselect['idanagrafica'])) {
|
||||
$query = 'SELECT an_referenti.id, an_referenti.nome AS descrizione, an_mansioni.nome AS optgroup FROM an_referenti LEFT JOIN an_mansioni ON an_referenti.idmansione=an_mansioni.id |where| ORDER BY optgroup, an_referenti.nome';
|
||||
$query = 'SELECT `an_referenti`.`id`, `an_referenti`.`nome` AS descrizione, `an_mansioni`.`nome` AS optgroup FROM `an_referenti` LEFT JOIN `an_mansioni` ON `an_referenti`.`idmansione`=`an_mansioni`.`id` |where| ORDER BY optgroup, `an_referenti`.`nome`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_referenti.id='.prepare($element);
|
||||
$filter[] = '`an_referenti`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (isset($superselect['idclientefinale'])) {
|
||||
$where[] = '(idanagrafica='.prepare($superselect['idanagrafica']).' OR idanagrafica='.prepare($superselect['idclientefinale']).')';
|
||||
$where[] = '(`idanagrafica`='.prepare($superselect['idanagrafica']).' OR `idanagrafica`='.prepare($superselect['idclientefinale']).')';
|
||||
} else {
|
||||
$where[] = 'idanagrafica='.prepare($superselect['idanagrafica']);
|
||||
$where[] = '`idanagrafica`='.prepare($superselect['idanagrafica']);
|
||||
}
|
||||
|
||||
if (isset($superselect['idsede_destinazione'])) {
|
||||
$where[] = 'idsede='.prepare($superselect['idsede_destinazione']);
|
||||
$where[] = '`idsede`='.prepare($superselect['idsede_destinazione']);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'an_referenti.nome LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_referenti`.`nome` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'nazioni':
|
||||
$query = 'SELECT id AS id, iso2, CONCAT_WS(\' - \', iso2, nome) AS descrizione FROM an_nazioni |where| ORDER BY CASE WHEN iso2=\'IT\' THEN -1 ELSE iso2 END';
|
||||
$query = 'SELECT `an_nazioni`.`id` AS id, `iso2`, CONCAT_WS(\' - \', `iso2`, `an_nazioni_lang`.`name`) AS descrizione FROM `an_nazioni` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(setting('Lingua')).') |where| ORDER BY CASE WHEN `iso2`=\'IT\' THEN -1 ELSE `iso2` END';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`an_nazioni`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'iso2 LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'CONCAT_WS(\' - \', iso2, nome) LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_nazioni_lang`.`name` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`iso2` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'CONCAT_WS(\' - \', `iso2`, `name`) LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'regioni':
|
||||
if (isset($superselect['id_nazione'])) {
|
||||
$query = 'SELECT an_regioni.id AS id, an_regioni.iso2, CONCAT(CONCAT_WS(\' - \', an_regioni.iso2, an_regioni.nome), \' (\', an_nazioni.iso2, \')\') AS descrizione FROM an_regioni INNER JOIN an_nazioni ON an_regioni.id_nazione = an_nazioni.id |where| ORDER BY an_regioni.nome';
|
||||
$query = 'SELECT `an_regioni`.`id` AS id, `an_regioni`.`iso2`, CONCAT(CONCAT_WS(\' - \', `an_regioni`.`iso2`, `an_regioni_lang`.`name`), \' (\', `an_nazioni`.`iso2`, \')\') AS descrizione FROM `an_regioni` LEFT JOIN `an_regioni_lang` ON (`an_regioni`.`id` = `an_regioni_lang`.`id_record` AND `an_regioni_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `an_nazioni` ON `an_regioni`.`id_nazione` = `an_nazioni`.`id` |where| ORDER BY `an_regioni_lang`.`name`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_regioni.id='.prepare($element);
|
||||
$filter[] = '`an_regioni`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = 'an_regioni.id_nazione='.prepare($superselect['id_nazione']);
|
||||
$where[] = '`an_regioni`.`id_nazione`='.prepare($superselect['id_nazione']);
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'an_regioni.nome LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'an_regioni.iso2 LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'CONCAT_WS(\' - \', an_regioni.iso2, an_regioni.nome) LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_regioni_lang`.`name` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_regioni`.`iso2` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'CONCAT_WS(\' - \', `an_regioni`.`iso2`, `an_regioni_lang`.`name`) LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'relazioni':
|
||||
$query = "SELECT id, CONCAT(descrizione, IF(an_relazioni.deleted_at IS NULL, '', ' (".tr('eliminata').")')) AS descrizione, colore AS _bgcolor_ FROM an_relazioni |where| ORDER BY descrizione";
|
||||
$query = "SELECT `an_relazioni`.`id`, CONCAT(`name`, IF(`an_relazioni`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")')) AS descrizione, `colore` AS _bgcolor_ FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id` = `an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang` = ".prepare(setting('Lingua')).') |where| ORDER BY descrizione';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`an_relazioni`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (empty($filter)) {
|
||||
$where[] = 'an_relazioni.deleted_at IS NULL';
|
||||
$where[] = '`an_relazioni`.`deleted_at` IS NULL';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_relazioni_lang`.`name` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'provenienze':
|
||||
$query = 'SELECT id, descrizione, colore AS bgcolor FROM an_provenienze |where| ORDER BY descrizione';
|
||||
$query = 'SELECT `an_provenienze`.`id`, `an_provenienze_lang`.`name` as descrizione, `colore` AS bgcolor FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang` = '.prepare(setting('Lingua')).') |where| ORDER BY `descrizione`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`an_provenienze`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_provenienze_lang`.`name` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'settori':
|
||||
$query = 'SELECT id, descrizione FROM an_settori |where| ORDER BY descrizione';
|
||||
$query = 'SELECT `an_settori`.`id`, `an_settori_lang`.`name` as descrizione FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(setting('Lingua')).') |where| ORDER BY `name`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`an_settori`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`name` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -26,15 +26,15 @@ include_once __DIR__.'/../../core.php';
|
|||
|
||||
switch (post('op')) {
|
||||
case 'delete-bulk':
|
||||
$id_tipo_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
||||
$id_tipo_azienda = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).") WHERE `name`='Azienda'")[0]['id'];
|
||||
|
||||
foreach ($id_records as $id) {
|
||||
$anagrafica = $dbo->fetchArray('SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='.prepare($id));
|
||||
$anagrafica = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica`='.prepare($id));
|
||||
$tipi = array_column($anagrafica, 'idtipoanagrafica');
|
||||
|
||||
// Se l'anagrafica non è di tipo Azienda
|
||||
if (!in_array($id_tipo_azienda, $tipi)) {
|
||||
$dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module));
|
||||
$dbo->query('UPDATE `an_anagrafiche` SET `deleted_at` = NOW() WHERE `idanagrafica` = '.prepare($id).Modules::getAdditionalsQuery($id_module));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ $is_agente = in_array($id_agente, $tipi_anagrafica);
|
|||
$is_azienda = in_array($id_azienda, $tipi_anagrafica);
|
||||
|
||||
if (!$is_cliente && !$is_fornitore && !$is_azienda && $is_tecnico) {
|
||||
$ignore = $dbo->fetchArray("SELECT id FROM zz_plugins WHERE name='Sedi' OR name='Referenti' OR name='Dichiarazioni d\'intento'");
|
||||
$ignore = $dbo->fetchArray("SELECT `id` FROM `zz_plugins` WHERE `name`='Sedi' OR `name`='Referenti' OR `name`='Dichiarazioni d\'intento'");
|
||||
|
||||
foreach ($ignore as $plugin) {
|
||||
echo '
|
||||
|
@ -41,7 +41,7 @@ if (!$is_cliente && !$is_fornitore && !$is_azienda && $is_tecnico) {
|
|||
}
|
||||
|
||||
if (!$is_cliente) {
|
||||
$ignore = $dbo->fetchArray("SELECT id FROM zz_plugins WHERE name IN ('Impianti del cliente','Contratti del cliente','Ddt del cliente')");
|
||||
$ignore = $dbo->fetchArray("SELECT `id` FROM `zz_plugins` WHERE `name` IN ('Impianti del cliente','Contratti del cliente','Ddt del cliente')");
|
||||
|
||||
foreach ($ignore as $plugin) {
|
||||
echo '
|
||||
|
@ -530,13 +530,13 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Agente principale').'", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, \' (Eliminato)\'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Agente\' AND deleted_at IS NULL)'.(isset($record['idagente']) ? 'OR (an_anagrafiche.idanagrafica = '.prepare($record['idagente']).' AND deleted_at IS NOT NULL) ' : '').'ORDER BY ragione_sociale", "value": "$idagente$" ]}
|
||||
{[ "type": "select", "label": "'.tr('Agente principale').'", "name": "idagente", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, IF(deleted_at IS NOT NULL, CONCAT(`ragione_sociale`, \' (Eliminato)\'), `ragione_sociale` ) AS descrizione FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Agente\' AND `deleted_at` IS NULL)'.(isset($record['idagente']) ? 'OR (`an_anagrafiche`.`idanagrafica` = '.prepare($record['idagente']).' AND `deleted_at` IS NOT NULL) ' : '').'ORDER BY `ragione_sociale`", "value": "$idagente$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Agenti secondari').'", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, \' (Eliminato)\'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Agente\' AND deleted_at IS NULL AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM an_anagrafiche WHERE idanagrafica = '.prepare($record['idanagrafica']).')) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE idanagrafica = '.prepare($record['idanagrafica']).') ) ORDER BY ragione_sociale", "value": "$idagenti$" ]}
|
||||
{[ "type": "select", "label": "'.tr('Agenti secondari').'", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, IF(`deleted_at` IS NOT NULL, CONCAT(`ragione_sociale`, \' (Eliminato)\'), `ragione_sociale` ) AS descrizione FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Agente\' AND `deleted_at` IS NULL AND `an_anagrafiche`.`idanagrafica` NOT IN (SELECT `idagente` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($record['idanagrafica']).')) OR (`an_anagrafiche`.`idanagrafica` IN (SELECT `idagente` FROM `an_anagrafiche_agenti` WHERE `idanagrafica` = '.prepare($record['idanagrafica']).') ) ORDER BY `ragione_sociale`", "value": "$idagenti$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
|
@ -704,7 +704,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = 'Azienda' AND deleted_at IS NULL) ORDER BY descrizione", "value": "$idtipianagrafica$" ]}
|
||||
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT `an_tipianagrafiche`.`id`, `name` as descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(setting('Lingua')); ?>) WHERE `an_tipianagrafiche`.`id` NOT IN (SELECT DISTINCT(`x`.`idtipoanagrafica`) FROM `an_tipianagrafiche_anagrafiche` x INNER JOIN `an_tipianagrafiche` t ON `x`.`idtipoanagrafica` = `t`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `t`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = <?php echo prepare(setting('Lingua')); ?>) INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `x`.`idanagrafica` WHERE `an_tipianagrafiche_lang`.`name` = 'Azienda' AND `deleted_at` IS NULL) ORDER BY `name`", "value": "$idtipianagrafica$" ]}
|
||||
<?php
|
||||
if (in_array($id_azienda, $tipi_anagrafica)) {
|
||||
echo '
|
||||
|
|
|
@ -21,19 +21,19 @@ include_once __DIR__.'/../../core.php';
|
|||
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
|
||||
$rs = $dbo->fetchArray('SELECT idtipoanagrafica, descrizione FROM an_tipianagrafiche');
|
||||
$rs = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id`, `name` descrizione FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')');
|
||||
foreach ($rs as $riga) {
|
||||
${'id_'.strtolower($riga['descrizione'])} = $riga['idtipoanagrafica'];
|
||||
${'id_'.strtolower($riga['descrizione'])} = $riga['id'];
|
||||
}
|
||||
|
||||
if (isset($id_record)) {
|
||||
$anagrafica = Anagrafica::withTrashed()->find($id_record);
|
||||
|
||||
$record = $dbo->fetchOne('SELECT *,
|
||||
(SELECT GROUP_CONCAT(an_tipianagrafiche.idtipoanagrafica) FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica=an_anagrafiche.idanagrafica) AS idtipianagrafica,
|
||||
(SELECT GROUP_CONCAT(idagente) FROM an_anagrafiche_agenti WHERE idanagrafica=an_anagrafiche.idanagrafica) AS idagenti,
|
||||
(SELECT GROUP_CONCAT(descrizione) FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica=an_anagrafiche.idanagrafica) AS tipianagrafica
|
||||
FROM an_anagrafiche WHERE idanagrafica='.prepare($id_record));
|
||||
(SELECT GROUP_CONCAT(`an_tipianagrafiche`.`id`) FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica`=`an_anagrafiche`.`idanagrafica`) AS idtipianagrafica,
|
||||
(SELECT GROUP_CONCAT(`idagente`) FROM `an_anagrafiche_agenti` WHERE `idanagrafica`=`an_anagrafiche`.`idanagrafica`) AS idagenti,
|
||||
(SELECT GROUP_CONCAT(`name`) FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica`=`an_anagrafiche`.`idanagrafica`) AS tipianagrafica
|
||||
FROM `an_anagrafiche` WHERE `idanagrafica`='.prepare($id_record));
|
||||
|
||||
// Cast per latitudine e longitudine
|
||||
if (!empty($record)) {
|
||||
|
@ -41,6 +41,6 @@ if (isset($id_record)) {
|
|||
$record['lng'] = floatval($record['lng']);
|
||||
}
|
||||
|
||||
$tipi_anagrafica = $dbo->fetchArray('SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='.prepare($id_record));
|
||||
$tipi_anagrafica = array_column($tipi_anagrafica, 'idtipoanagrafica');
|
||||
$tipi_anagrafica = $dbo->fetchArray('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica`='.prepare($id_record));
|
||||
$tipi_anagrafica = array_column($tipi_anagrafica, 'id');
|
||||
}
|
||||
|
|
|
@ -30,20 +30,20 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
|
|||
{
|
||||
public function retrieve($request)
|
||||
{
|
||||
$table = 'an_anagrafiche';
|
||||
$table = '`an_anagrafiche`';
|
||||
|
||||
$select = [
|
||||
'an_anagrafiche.*',
|
||||
'an_nazioni.nome AS nazione',
|
||||
'`an_anagrafiche`.*',
|
||||
'`an_nazioni_lang`.`name` AS nazione',
|
||||
];
|
||||
|
||||
$joins[] = [
|
||||
'an_nazioni',
|
||||
'an_anagrafiche.id_nazione',
|
||||
'an_nazioni.id',
|
||||
'`an_nazioni_lang`',
|
||||
'`an_anagrafiche`.`id_nazione`',
|
||||
'`an_nazioni_lang`.`name`',
|
||||
];
|
||||
|
||||
$where[] = ['an_anagrafiche.deleted_at', '=', null];
|
||||
$where[] = ['`an_anagrafiche`.`deleted_at`', '=', null];
|
||||
|
||||
$order['an_anagrafiche.ragione_sociale'] = 'ASC';
|
||||
|
||||
|
@ -51,18 +51,24 @@ class Anagrafiche extends Resource implements RetrieveInterface, CreateInterface
|
|||
$type = 'Cliente';
|
||||
|
||||
$joins[] = [
|
||||
'an_tipianagrafiche_anagrafiche',
|
||||
'an_anagrafiche.idanagrafica',
|
||||
'an_tipianagrafiche_anagrafiche.idanagrafica',
|
||||
'`an_tipianagrafiche_anagrafiche`',
|
||||
'`an_anagrafiche`.`idanagrafica`',
|
||||
'`an_tipianagrafiche_anagrafiche`.`idanagrafica`',
|
||||
];
|
||||
|
||||
$joins[] = [
|
||||
'an_tipianagrafiche',
|
||||
'an_tipianagrafiche_anagrafiche.idtipoanagrafica',
|
||||
'an_tipianagrafiche.idtipoanagrafica',
|
||||
'`an_tipianagrafiche`',
|
||||
'`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`',
|
||||
'`an_tipianagrafiche`.`id`',
|
||||
];
|
||||
|
||||
$where[] = ['an_tipianagrafiche.descrizione', '=', $type];
|
||||
$joins[] = [
|
||||
'`an_tipianagrafiche_lang`',
|
||||
'`an_tipianagrafiche_lang`.`id_record`',
|
||||
'`an_tipianagrafiche`.`id`',
|
||||
];
|
||||
|
||||
$where[] = ['`an_tipianagrafiche_lang`.`name`', '=', $type];
|
||||
}
|
||||
|
||||
return [
|
||||
|
|
|
@ -22,6 +22,7 @@ namespace Modules\Anagrafiche;
|
|||
use Common\SimpleModelTrait;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Modules\Anagrafiche\Tipo as TipoAnagrafica;
|
||||
use Modules\Contratti\Contratto;
|
||||
use Modules\DDT\DDT;
|
||||
use Modules\Fatture\Fattura;
|
||||
|
@ -88,10 +89,10 @@ class Anagrafica extends Model
|
|||
|
||||
public static function fromTipo($type)
|
||||
{
|
||||
$tipologia = Tipo::where('descrizione', $type)->first();
|
||||
$tipologia = TipoAnagrafica::where('name', $type)->first();
|
||||
|
||||
$anagrafiche = self::whereHas('tipi', function ($query) use ($tipologia) {
|
||||
$query->where('an_tipianagrafiche.idtipoanagrafica', '=', $tipologia->id);
|
||||
$query->where('`an_tipianagrafiche`.`id`', '=', $tipologia->id);
|
||||
});
|
||||
|
||||
return $anagrafiche;
|
||||
|
@ -155,7 +156,7 @@ class Anagrafica extends Model
|
|||
public function setTipologieAttribute(array $tipologie)
|
||||
{
|
||||
if ($this->isAzienda()) {
|
||||
$tipologie[] = Tipo::where('descrizione', 'Azienda')->first()->id;
|
||||
$tipologie[] = (new TipoAnagrafica())->getByName('Azienda')->id_record;
|
||||
}
|
||||
|
||||
$tipologie = array_clean($tipologie);
|
||||
|
@ -167,7 +168,7 @@ class Anagrafica extends Model
|
|||
$diff = $actual->diff($previous);
|
||||
|
||||
foreach ($diff as $tipo) {
|
||||
$method = 'fix'.$tipo->descrizione;
|
||||
$method = 'fix'.$tipo->name;
|
||||
if (method_exists($this, $method)) {
|
||||
self::$method($this);
|
||||
}
|
||||
|
@ -185,15 +186,16 @@ class Anagrafica extends Model
|
|||
}
|
||||
|
||||
/**
|
||||
* Controlla se l'anagrafica è di tipo 'Azienda'.
|
||||
* Controlla il tipo di anagrafica.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isTipo($type)
|
||||
{
|
||||
return $this->tipi()->get()->search(function ($item, $key) use ($type) {
|
||||
return $item->descrizione == $type;
|
||||
return (TipoAnagrafica::find($item->id))->name == $type;
|
||||
}) !== false;
|
||||
|
||||
}
|
||||
|
||||
public function delete()
|
||||
|
@ -279,7 +281,7 @@ class Anagrafica extends Model
|
|||
|
||||
public function tipi()
|
||||
{
|
||||
return $this->belongsToMany(Tipo::class, 'an_tipianagrafiche_anagrafiche', 'idanagrafica', 'idtipoanagrafica');
|
||||
return $this->belongsToMany(TipoAnagrafica::class, 'an_tipianagrafiche_anagrafiche', 'idanagrafica', 'idtipoanagrafica');
|
||||
}
|
||||
|
||||
public function sedi()
|
||||
|
|
|
@ -126,7 +126,7 @@ class CSV extends CSVExporter
|
|||
'label' => 'ID Pagamento',
|
||||
],
|
||||
[
|
||||
'field' => 'idtipoanagrafica',
|
||||
'field' => 'id',
|
||||
'label' => 'Tipo',
|
||||
],
|
||||
[
|
||||
|
|
|
@ -21,6 +21,7 @@ namespace Modules\Anagrafiche\Import;
|
|||
|
||||
use Importer\CSVImporter;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
|
||||
/**
|
||||
* Struttura per la gestione delle operazioni di importazione (da CSV) delle Anagrafiche.
|
||||
|
@ -251,15 +252,18 @@ class CSV extends CSVImporter
|
|||
$tipi_selezionati = explode(',', $record['idtipoanagrafica']);
|
||||
|
||||
foreach ($tipi_selezionati as $tipo) {
|
||||
$tipo_anagrafica = $database->fetchOne('SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE LOWER(descrizione) = LOWER('.prepare($tipo).') OR idtipoanagrafica = '.prepare($tipo))['idtipoanagrafica'];
|
||||
$tipo_anagrafica = $database->fetchOne('SELECT `id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE LOWER(`name`) = LOWER('.prepare($tipo).') OR `idtipoanagrafica` = '.prepare($tipo))['idtipoanagrafica'];
|
||||
|
||||
// Creo il tipo anagrafica se non esiste
|
||||
if (empty($tipo_anagrafica)) {
|
||||
$database->insert('an_tipianagrafiche', [
|
||||
'descrizione' => $tipo,
|
||||
])['idtipoanagrafica'];
|
||||
$id_tipoanagrafica = database()->query('INSERT INTO `an_tipianagrafiche` (`id`, `default`) VALUES (NULL, `1`)');
|
||||
$database->insert('an_tipianagrafiche_lang', [
|
||||
'id_lang' => setting('Lingua'),
|
||||
'id_record' => $id_tipoanagrafica,
|
||||
'name' => $tipo_anagrafica,
|
||||
])['id'];
|
||||
|
||||
$tipo_anagrafica = $database->fetchOne('SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE lower(descrizione) = LOWER('.prepare($tipo).') OR idtipoanagrafica = '.prepare($tipo))['idtipoanagrafica'];
|
||||
$tipo_anagrafica = $database->fetchOne('SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE lower(`name`) = LOWER('.prepare($tipo).') OR `idtipoanagrafica` = '.prepare($tipo))['idtipoanagrafica'];
|
||||
}
|
||||
|
||||
$tipologie[] = $tipo_anagrafica;
|
||||
|
@ -275,7 +279,7 @@ class CSV extends CSVImporter
|
|||
|
||||
// Fix per campi con contenuti derivati da query implicite
|
||||
if (!empty($record['id_nazione'])) {
|
||||
$record['id_nazione'] = $database->fetchOne('SELECT id FROM an_nazioni WHERE LOWER(nome) = LOWER('.prepare($record['id_nazione']).') OR LOWER(iso2) = LOWER('.prepare($record['id_nazione']).')')['id'];
|
||||
$record['id_nazione'] = (new Nazione())->getByName($record['id_nazione'])->id_record;
|
||||
} else {
|
||||
unset($record['id_nazione']);
|
||||
}
|
||||
|
@ -284,11 +288,14 @@ class CSV extends CSVImporter
|
|||
$id_settore = '';
|
||||
if (!empty($record['id_settore'])) {
|
||||
$settore = $record['id_settore'];
|
||||
$id_settore = $database->fetchOne('SELECT id FROM an_settori WHERE LOWER(descrizione) = LOWER('.prepare($settore).')')['id'];
|
||||
$id_settore = $database->fetchOne('SELECT `an_settori`.`id` FROM `an_settori` LEFT JOIN (`an_settori_lang` ON`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE LOWER(`name`) = LOWER('.prepare($settore).')')['id'];
|
||||
|
||||
if (empty($id_settore)) {
|
||||
$id_settore = $database->insert('an_settori', [
|
||||
'descrizione' => $settore,
|
||||
$id_settore = database()->query('INSERT INTO `an_settori` (`id`, `created_at`, `updated_at`) VALUES (NULL, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)');
|
||||
$database->insert('an_settori_lang', [
|
||||
'id_lang' => setting('Lingua'),
|
||||
'id_record' => $id_settore,
|
||||
'name' => $settore,
|
||||
])['id'];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,4 +32,34 @@ class Nazione extends Model
|
|||
{
|
||||
return $this->hasMany(Anagrafica::class, 'id_nazione');
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'attributo name della nazione.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNameAttribute()
|
||||
{
|
||||
return database()->table($this->table.'_lang')
|
||||
->select('name')
|
||||
->where('id_record', '=', $this->id)
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first()->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'id della nazione a partire dal nome.
|
||||
*
|
||||
* @param string $name il nome da ricercare
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getByName($name)
|
||||
{
|
||||
return database()->table($this->table.'_lang')
|
||||
->select('id_record')
|
||||
->where('name', '=', $name)
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,28 +27,39 @@ class Tipo extends Model
|
|||
use SimpleModelTrait;
|
||||
|
||||
protected $table = 'an_tipianagrafiche';
|
||||
protected $primaryKey = 'idtipoanagrafica';
|
||||
|
||||
protected $appends = [
|
||||
'id',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
'idtipoanagrafica',
|
||||
];
|
||||
|
||||
/**
|
||||
* Restituisce l'identificativo.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getIdAttribute()
|
||||
{
|
||||
return $this->idtipoanagrafica;
|
||||
}
|
||||
|
||||
public function anagrafiche()
|
||||
{
|
||||
return $this->hasMany(Anagrafica::class, 'an_tipianagrafiche_anagrafiche', 'idtipoanagrafica', 'idanagrafica');
|
||||
return $this->hasMany(Anagrafica::class, 'idtipoanagrafica');
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'attributo name del tipo anagrafica.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNameAttribute()
|
||||
{
|
||||
return database()->table($this->table.'_lang')
|
||||
->select('name')
|
||||
->where('id_record', '=', $this->id)
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first()->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ritorna l'id del tipo di anagrafica a partire dal nome.
|
||||
*
|
||||
* @param string $name il nome da ricercare
|
||||
*
|
||||
* @return \Illuminate\Support\Collection
|
||||
*/
|
||||
public function getByName($name)
|
||||
{
|
||||
return database()->table($this->table.'_lang')
|
||||
->select('id_record')
|
||||
->where('name', '=', $name)
|
||||
->where('id_lang', '=', setting('Lingua'))
|
||||
->first();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ class Articolo extends Model
|
|||
|
||||
protected $table = 'mg_articoli';
|
||||
|
||||
public static function build($codice, $nome, Categoria $categoria = null, Categoria $sottocategoria = null)
|
||||
public static function build($codice, $nome, ?Categoria $categoria = null, ?Categoria $sottocategoria = null)
|
||||
{
|
||||
$model = new static();
|
||||
|
||||
|
|
|
@ -466,7 +466,7 @@ class CSV extends CSVImporter
|
|||
|
||||
if ($dettagli['dir']) {
|
||||
$tipo = Tipo::where('descrizione', $dettagli['dir'])->first();
|
||||
$tipi = $anagrafica->tipi->pluck('idtipoanagrafica')->toArray();
|
||||
$tipi = $anagrafica->tipi->pluck('id')->toArray();
|
||||
|
||||
$tipi[] = $tipo->id;
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ echo '
|
|||
// Tecnico
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Tecnico').'", "name": "idtecnico", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Tecnico\') AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "'.$idtecnico.'" ]}
|
||||
{[ "type": "select", "label": "'.tr('Tecnico').'", "name": "idtecnico", "required": 1, "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale` AS descrizione FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE (`name`=\'Tecnico\') AND `deleted_at` IS NULL ORDER BY `ragione_sociale`", "value": "'.$idtecnico.'" ]}
|
||||
</div>';
|
||||
|
||||
// Data di partenza
|
||||
|
|
|
@ -24,21 +24,27 @@ include_once __DIR__.'/../../core.php';
|
|||
|
||||
// Individuazione dati selezionabili
|
||||
// Stati interventi
|
||||
$stati_intervento = $dbo->fetchArray('SELECT idstatointervento AS id, descrizione, colore FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC');
|
||||
$stati_intervento = $dbo->fetchArray('SELECT `idstatointervento` AS id, `descrizione`, `colore` FROM `in_statiintervento` WHERE `deleted_at` IS NULL ORDER BY `descrizione` ASC');
|
||||
|
||||
// Tipi intervento
|
||||
$tipi_intervento = $dbo->fetchArray('SELECT idtipointervento AS id, descrizione FROM in_tipiintervento WHERE deleted_at IS NULL ORDER BY descrizione ASC');
|
||||
$tipi_intervento = $dbo->fetchArray('SELECT `idtipointervento` AS id, `descrizione` FROM `in_tipiintervento` WHERE `deleted_at` IS NULL ORDER BY `descrizione` ASC');
|
||||
|
||||
// Tecnici disponibili
|
||||
$tecnici_disponibili = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche
|
||||
INNER JOIN
|
||||
an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica
|
||||
LEFT OUTER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica
|
||||
INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id
|
||||
WHERE an_anagrafiche.deleted_at IS NULL AND an_tipianagrafiche.descrizione='Tecnico' ".Modules::getAdditionalsQuery('Interventi', null, false).'
|
||||
GROUP BY an_anagrafiche.idanagrafica
|
||||
ORDER BY ragione_sociale ASC');
|
||||
$tecnici_disponibili = $dbo->fetchArray('SELECT
|
||||
`an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale`, `colore`
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).")
|
||||
LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idtecnico` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `in_interventi` ON `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id`
|
||||
WHERE
|
||||
`an_anagrafiche`.`deleted_at` IS NULL AND `an_tipianagrafiche_lang`.`name`='Tecnico' ".Modules::getAdditionalsQuery('Interventi', null, false).'
|
||||
GROUP BY
|
||||
`an_anagrafiche`.`idanagrafica`
|
||||
ORDER BY
|
||||
`ragione_sociale` ASC');
|
||||
|
||||
// Zone
|
||||
$zone = $dbo->fetchArray('(SELECT 0 AS ordine, \'0\' AS id, \'Nessuna zona\' AS descrizione) UNION (SELECT 1 AS ordine, id, descrizione FROM an_zone) ORDER BY ordine, descrizione ASC');
|
||||
|
|
|
@ -917,7 +917,7 @@ switch ($op) {
|
|||
// Aggiunta tipologia cliente se necessario
|
||||
if (!$anagrafica->isTipo('Cliente')) {
|
||||
$tipo_cliente = TipoAnagrafica::where('descrizione', 'Cliente')->first();
|
||||
$tipi = $anagrafica->tipi->pluck('idtipoanagrafica')->toArray();
|
||||
$tipi = $anagrafica->tipi->pluck('id')->toArray();
|
||||
$tipi[] = $tipo_cliente->id;
|
||||
|
||||
$anagrafica->tipologie = $tipi;
|
||||
|
@ -1045,7 +1045,7 @@ switch ($op) {
|
|||
// Aggiunta tipologia cliente se necessario
|
||||
if (!$azienda->isTipo('Cliente')) {
|
||||
$tipo_cliente = TipoAnagrafica::where('descrizione', 'Cliente')->first();
|
||||
$tipi = $azienda->tipi->pluck('idtipoanagrafica')->toArray();
|
||||
$tipi = $azienda->tipi->pluck('id')->toArray();
|
||||
$tipi[] = $tipo_cliente->id;
|
||||
|
||||
$azienda->tipologie = $tipi;
|
||||
|
|
|
@ -69,7 +69,7 @@ if ($module->name == 'Fatture di vendita' && $services_enable) {
|
|||
$is_estera = false;
|
||||
|
||||
if (setting('Rimuovi avviso fatture estere')) {
|
||||
$is_estera = $database->fetchOne('SELECT idanagrafica FROM an_anagrafiche INNER JOIN an_nazioni ON an_anagrafiche.id_nazione = an_nazioni.id WHERE an_nazioni.nome != "Italia" AND an_anagrafiche.idanagrafica = '.prepare($documento->idanagrafica));
|
||||
$is_estera = $database->fetchOne('SELECT `idanagrafica` FROM `an_anagrafiche` INNER JOIN `an_nazioni` ON `an_anagrafiche`.`id_nazione` = `an_nazioni`.`id` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `an_nazioni_lang`.`name` != "Italia" AND `an_anagrafiche`.`idanagrafica` = '.prepare($documento->idanagrafica));
|
||||
}
|
||||
|
||||
if ($documento->data <= $data_limite_invio && !$is_estera) {
|
||||
|
|
|
@ -699,7 +699,7 @@ class Fattura extends Document
|
|||
return $result;
|
||||
}
|
||||
|
||||
public function replicate(array $except = null)
|
||||
public function replicate(?array $except = null)
|
||||
{
|
||||
$new = parent::replicate($except);
|
||||
$now = Carbon::now();
|
||||
|
|
|
@ -174,7 +174,7 @@ class CSV extends CSVImporter
|
|||
|
||||
// Verifica il tecnico e inserisce la sessione
|
||||
$anagrafica_t = Anagrafica::where('ragione_sociale', $record['tecnico'])->first();
|
||||
$tipo = $database->fetchOne('SELECT idtipoanagrafica FROM an_tipianagrafiche_anagrafiche WHERE idanagrafica = '.prepare($anagrafica_t['idanagrafica']));
|
||||
$tipo = $database->fetchOne('SELECT `idtipoanagrafica` FROM `an_tipianagrafiche_anagrafiche` WHERE `idanagrafica` = '.prepare($anagrafica_t['idanagrafica']));
|
||||
$tecnico = TipoAnagrafica::where('descrizione', 'Tecnico')->first();
|
||||
|
||||
if ($tipo = $tecnico['idtipoanagrafica']) {
|
||||
|
|
|
@ -35,14 +35,18 @@ switch ($resource) {
|
|||
$destinatari = collect();
|
||||
|
||||
// Gestione anagrafiche come destinatari
|
||||
$query = "SELECT CONCAT('anagrafica_', an_anagrafiche.idanagrafica) AS id,
|
||||
CONCAT(an_anagrafiche.ragione_sociale, IF(an_anagrafiche.citta != '' OR an_anagrafiche.provincia != '', CONCAT(' (', an_anagrafiche.citta, IF(an_anagrafiche.provincia != '', an_anagrafiche.provincia, ''), ')'), ''), ' [', email, ']') AS text,
|
||||
`an_tipianagrafiche`.`descrizione` AS optgroup
|
||||
FROM an_anagrafiche
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica = an_tipianagrafiche_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_anagrafiche.deleted_at IS NULL AND an_anagrafiche.enable_newsletter = 1 AND 1=1
|
||||
ORDER BY `optgroup` ASC, ragione_sociale ASC";
|
||||
$query = "SELECT CONCAT('anagrafica_', `an_anagrafiche`.`idanagrafica`) AS id,
|
||||
CONCAT(`an_anagrafiche`.`ragione_sociale`, IF(`an_anagrafiche`.`citta` != '' OR `an_anagrafiche`.`provincia` != '', CONCAT(' (', `an_anagrafiche`.`citta`, IF(`an_anagrafiche`.`provincia` != '', `an_anagrafiche`.`provincia`, ''), ')'), ''), ' [', `email`, ']') AS text,
|
||||
`an_tipianagrafiche_lang`.`name` AS optgroup
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.id` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(setting('Lingua')).')
|
||||
WHERE
|
||||
`an_anagrafiche`.`deleted_at` IS NULL AND `an_anagrafiche`.`enable_newsletter` = 1 AND 1=1
|
||||
ORDER BY
|
||||
`optgroup` ASC, `ragione_sociale` ASC';
|
||||
|
||||
$query = str_replace('1=1', !empty($where) ? replace($where, [
|
||||
'|nome|' => 'ragione_sociale',
|
||||
|
@ -52,33 +56,39 @@ switch ($resource) {
|
|||
$destinatari = $destinatari->concat($anagrafiche);
|
||||
|
||||
// Gestione sedi come destinatari
|
||||
$query = "SELECT CONCAT('sede_', an_sedi.id) AS id,
|
||||
CONCAT(an_anagrafiche.ragione_sociale, ' (', an_sedi.nomesede, IF(an_sedi.citta != '' OR an_sedi.provincia != '', CONCAT(' :', an_sedi.citta, IF(an_sedi.provincia != '', an_sedi.provincia, ''), ''), ''), ')', ' [', an_sedi.email, ']') AS text,
|
||||
$query = "SELECT CONCAT('sede_', `an_sedi`.`id`) AS id,
|
||||
CONCAT(`an_anagrafiche`.`ragione_sociale`, ' (', `an_sedi`.`nomesede`, IF(`an_sedi`.`citta` != '' OR `an_sedi`.`provincia` != '', CONCAT(' :', `an_sedi`.`citta`, IF(`an_sedi`.`provincia` != '', `an_sedi`.`provincia`, ''), ''), ''), ')', ' [', `an_sedi`.`email`, ']') AS text,
|
||||
'Sedi' AS optgroup
|
||||
FROM an_sedi
|
||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_sedi.idanagrafica
|
||||
WHERE an_anagrafiche.deleted_at IS NULL AND an_anagrafiche.enable_newsletter = 1 AND 1=1
|
||||
ORDER BY `optgroup` ASC, ragione_sociale ASC";
|
||||
FROM
|
||||
`an_sedi`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_sedi`.`idanagrafica`
|
||||
WHERE
|
||||
`an_anagrafiche`.`deleted_at` IS NULL AND `an_anagrafiche`.`enable_newsletter` = 1 AND 1=1
|
||||
ORDER BY
|
||||
`optgroup` ASC, `ragione_sociale` ASC";
|
||||
|
||||
$query = str_replace('1=1', !empty($where) ? replace($where, [
|
||||
'|nome|' => 'nomesede LIKE '.prepare('%'.$search.'%').' OR ragione_sociale',
|
||||
'|table|' => 'an_sedi',
|
||||
'|nome|' => '`nomesede` LIKE '.prepare('%'.$search.'%').' OR `ragione_sociale`',
|
||||
'|table|' => '`an_sedi`',
|
||||
]) : '', $query);
|
||||
$sedi = $database->fetchArray($query);
|
||||
$destinatari = $destinatari->concat($sedi);
|
||||
|
||||
// Gestione referenti come destinatari
|
||||
$query = "SELECT CONCAT('referente_', an_referenti.id) AS id,
|
||||
CONCAT(an_anagrafiche.ragione_sociale, ' (', an_referenti.nome, ') [', an_referenti.email, ']') AS text,
|
||||
$query = "SELECT CONCAT('referente_', `an_referenti`.`id`) AS id,
|
||||
CONCAT(`an_anagrafiche`.`ragione_sociale`, ' (', `an_referenti`.`nome`, ') [', `an_referenti`.`email`, ']') AS text,
|
||||
'Referenti' AS optgroup
|
||||
FROM an_referenti
|
||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_referenti.idanagrafica
|
||||
WHERE an_anagrafiche.deleted_at IS NULL AND an_anagrafiche.enable_newsletter = 1 AND 1=1
|
||||
ORDER BY `optgroup` ASC, ragione_sociale ASC";
|
||||
FROM
|
||||
`an_referenti`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_referenti`.`idanagrafica`
|
||||
WHERE
|
||||
`an_anagrafiche`.`deleted_at` IS NULL AND `an_anagrafiche`.`enable_newsletter` = 1 AND 1=1
|
||||
ORDER BY
|
||||
`optgroup` ASC, `ragione_sociale` ASC";
|
||||
|
||||
$query = str_replace('1=1', !empty($where) ? replace($where, [
|
||||
'|nome|' => 'an_referenti.nome LIKE '.prepare('%'.$search.'%').' OR ragione_sociale',
|
||||
'|table|' => 'an_anagrafiche',
|
||||
'|nome|' => '`an_referenti`.`nome` LIKE '.prepare('%'.$search.'%').' OR ragione_sociale',
|
||||
'|table|' => '`an_anagrafiche`',
|
||||
]) : '', $query);
|
||||
$referenti = $database->fetchArray($query);
|
||||
$destinatari = $destinatari->concat($referenti);
|
||||
|
@ -88,18 +98,18 @@ switch ($resource) {
|
|||
break;
|
||||
|
||||
case 'liste_newsletter':
|
||||
$query = "SELECT id, CONCAT(name, ' (', (SELECT COUNT(*) FROM em_list_receiver WHERE em_lists.id = em_list_receiver.id_list), ' destinatari)') AS descrizione FROM em_lists |where| ORDER BY `name` ASC";
|
||||
$query = "SELECT `id`, CONCAT(`name`, ' (', (SELECT COUNT(*) FROM `em_list_receiver` WHERE `em_lists`.`id` = `em_list_receiver`.`id_list`), ' `destinatari`)') AS descrizione FROM `em_lists` |where| ORDER BY `name` ASC";
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (empty($filter)) {
|
||||
$where[] = 'deleted_at IS NULL';
|
||||
$where[] = '`deleted_at` IS NULL';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'name LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`name` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
// Aggiunta filtri di ricerca
|
||||
|
|
|
@ -71,7 +71,7 @@ foreach ($destinatari_filtrati as $destinatario) {
|
|||
$descrizione .= ' ['.$origine->nome.']';
|
||||
}
|
||||
|
||||
$tipo_anagrafica = $database->fetchOne('SELECT GROUP_CONCAT(an_tipianagrafiche.descrizione) AS descrizione FROM an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica WHERE an_tipianagrafiche_anagrafiche.idanagrafica='.prepare($anagrafica->id))['descrizione'];
|
||||
$tipo_anagrafica = $database->fetchOne('SELECT GROUP_CONCAT(`an_tipianagrafiche_lang`.`name`) AS descrizione FROM `an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `an_tipianagrafiche_anagrafiche`.`idanagrafica`='.prepare($anagrafica->id))['descrizione'];
|
||||
|
||||
$riga = [
|
||||
Modules::link('Anagrafiche', $anagrafica->id, $descrizione),
|
||||
|
|
|
@ -160,8 +160,10 @@ if (!empty($interventi)) {
|
|||
</tr>';
|
||||
|
||||
// Raggruppamento per articolo con lo stesso prezzo
|
||||
if ($articolo->qta) {
|
||||
$ricavo = ($articolo->imponibile - $articolo->sconto) / $articolo->qta;
|
||||
$costo = $articolo->spesa / $articolo->qta;
|
||||
}
|
||||
$descrizione = $articolo->articolo->codice.' - '.$articolo->articolo->descrizione;
|
||||
|
||||
$materiali_art[$descrizione][$ricavo][$costo]['id'] = $articolo->articolo->id;
|
||||
|
|
|
@ -185,7 +185,7 @@ class Mastrino extends Model
|
|||
/**
|
||||
* Funzione dedicata alla distribuzione del totale pagato del movimento nelle relative scadenze associate.
|
||||
*/
|
||||
protected function correggiScadenza(Movimento $movimento, Scadenza $scadenza = null, Fattura $documento = null)
|
||||
protected function correggiScadenza(Movimento $movimento, ?Scadenza $scadenza = null, ?Fattura $documento = null)
|
||||
{
|
||||
$is_nota = false;
|
||||
$documento = $documento ?: $scadenza->documento;
|
||||
|
|
|
@ -36,7 +36,7 @@ class Movimento extends Model
|
|||
'dare',
|
||||
];
|
||||
|
||||
public static function build(Mastrino $mastrino, $id_conto, Fattura $documento = null, Scadenza $scadenza = null)
|
||||
public static function build(Mastrino $mastrino, $id_conto, ?Fattura $documento = null, ?Scadenza $scadenza = null)
|
||||
{
|
||||
$model = new static();
|
||||
|
||||
|
|
|
@ -25,8 +25,9 @@ switch (filter('op')) {
|
|||
$colore = filter('colore');
|
||||
|
||||
if (isset($descrizione)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_provenienze` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
|
||||
$dbo->query('UPDATE `an_provenienze` SET `descrizione`='.prepare($descrizione).', `colore`='.prepare($colore).' WHERE `id`='.prepare($id_record));
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($descrizione).' AND `an_provenienze`.`id`!='.prepare($id_record)) == 0) {
|
||||
$dbo->query('UPDATE `an_provenienze_lang` SET `name`='.prepare($descrizione).' WHERE `id_record` = '.prepare($id_record));
|
||||
$dbo->query('UPDATE `an_provenienze` SET `colore`='.prepare($colore).' WHERE `id`='.prepare($id_record));
|
||||
flash()->info(tr('Salvataggio completato.'));
|
||||
} else {
|
||||
flash()->error(tr("E' già presente una provenienza _NAME_.", [
|
||||
|
@ -44,10 +45,10 @@ switch (filter('op')) {
|
|||
$colore = filter('colore');
|
||||
|
||||
if (isset($descrizione)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_provenienze` WHERE `descrizione`='.prepare($descrizione)) == 0) {
|
||||
$dbo->query('INSERT INTO `an_provenienze` (`descrizione`, `colore`) VALUES ('.prepare($descrizione).', '.prepare($colore).')');
|
||||
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($descrizione)) == 0) {
|
||||
$dbo->query('INSERT INTO `an_provenienze` (`colore`) VALUES ('.prepare($colore).')');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$dbo->query('INSERT INTO `an_provenienze_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).')');
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
|
||||
|
|
|
@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
|
|||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
|
|
@ -20,5 +20,5 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_provenienze` WHERE id='.prepare($id_record));
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_provenienze` LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id`=`an_provenienze_lang`.`id_record` AND `an_provenienze_lang`.`id_lang`='.setting('Lingua').') WHERE `an_provenienze`.`id`='.prepare($id_record));
|
||||
}
|
||||
|
|
|
@ -26,8 +26,9 @@ switch (filter('op')) {
|
|||
$is_bloccata = filter('is_bloccata');
|
||||
|
||||
if (isset($descrizione)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_relazioni` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
|
||||
$dbo->query('UPDATE `an_relazioni` SET `descrizione`='.prepare($descrizione).', `colore`='.prepare($colore).', `is_bloccata`='.prepare($is_bloccata).' WHERE `id`='.prepare($id_record));
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_relazioni` LEFT JOIN (`an_relazioni_lang` ON `an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`='.setting('Lingua').') WHERE `an_relazioni_lang`.`name`='.prepare($descrizione).' AND `an_relazioni`.`id`!='.prepare($id_record)) == 0) {
|
||||
$dbo->query('UPDATE `an_relazioni` SET `colore`='.prepare($colore).', `is_bloccata`='.prepare($is_bloccata).' WHERE `id`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `an_relazioni_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record));
|
||||
flash()->info(tr('Salvataggio completato.'));
|
||||
} else {
|
||||
flash()->error(tr("E' già presente una relazione '_NAME_'.", [
|
||||
|
@ -46,10 +47,10 @@ switch (filter('op')) {
|
|||
$is_bloccata = filter('is_bloccata');
|
||||
|
||||
if (isset($descrizione)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_relazioni` WHERE `descrizione`='.prepare($descrizione)) == 0) {
|
||||
$dbo->query('INSERT INTO `an_relazioni` (`descrizione`, `colore`, `is_bloccata` ) VALUES ('.prepare($descrizione).', '.prepare($colore).', '.prepare($is_bloccata).' )');
|
||||
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_relazioni` LEFT JOIN (`an_relazioni_lang` ON `an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`='.setting('Lingua').') WHERE `an_relazioni_lang`.`name`='.prepare($descrizione)) == 0) {
|
||||
$dbo->query('INSERT INTO `an_relazioni` (`colore`, `is_bloccata`) VALUES ('.prepare($colore).', '.prepare($is_bloccata).' )');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$dbo->query('INSERT INTO `an_relazioni_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).')');
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
|
||||
|
@ -70,7 +71,7 @@ switch (filter('op')) {
|
|||
break;
|
||||
|
||||
case 'delete':
|
||||
$dbo->query('UPDATE `an_relazioni` SET deleted_at=NOW() WHERE `id`='.prepare($id_record));
|
||||
$dbo->query('UPDATE `an_relazioni` SET `deleted_at`=NOW() WHERE `id`='.prepare($id_record));
|
||||
flash()->info(tr('Relazione _NAME_ eliminata con successo!', [
|
||||
'_NAME_' => $descrizione,
|
||||
]));
|
||||
|
|
|
@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
|
|||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
|
|
@ -20,5 +20,5 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_relazioni` WHERE id='.prepare($id_record));
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_relazioni` LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`='.setting('Lingua').') WHERE `an_relazioni`.`id`='.prepare($id_record));
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ switch (post('op')) {
|
|||
$tipo = post('tipo');
|
||||
$descrizione = post('descrizione');
|
||||
$iddocumento = post('iddocumento') ?: 0;
|
||||
if (!empty($iddocumento)){
|
||||
if (!empty($iddocumento)) {
|
||||
$scadenze = database()->table('co_scadenziario')->where('iddocumento', '=', $iddocumento)->orderBy('scadenza')->get();
|
||||
}
|
||||
$totale_pagato = 0;
|
||||
|
|
|
@ -25,8 +25,8 @@ switch (filter('op')) {
|
|||
$colore = filter('colore');
|
||||
|
||||
if (isset($descrizione)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_settori` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
|
||||
$dbo->query('UPDATE `an_settori` SET `descrizione`='.prepare($descrizione).' WHERE `id`='.prepare($id_record));
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($descrizione).' AND `an_settori`.`id`!='.prepare($id_record)) == 0) {
|
||||
$dbo->query('UPDATE `an_settori_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($id_record));
|
||||
flash()->info(tr('Salvataggio completato.'));
|
||||
} else {
|
||||
flash()->error(tr("E' già presente il settore merceologico _NAME_.", [
|
||||
|
@ -44,10 +44,10 @@ switch (filter('op')) {
|
|||
$colore = filter('colore');
|
||||
|
||||
if (isset($descrizione)) {
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_settori` WHERE `descrizione`='.prepare($descrizione)) == 0) {
|
||||
$dbo->query('INSERT INTO `an_settori` (`descrizione`) VALUES ('.prepare($descrizione).')');
|
||||
|
||||
if ($dbo->fetchNum('SELECT * FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `name`='.prepare($descrizione)) == 0) {
|
||||
$dbo->query('INSERT INTO `an_settori` (`id`, `created_at`, `updated_at`) VALUES (NULL, NOW(), NOW())');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$dbo->query('INSERT INTO `an_settori_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).', '.prepare($id_record).', '.prepare(setting('Lingua')).')');
|
||||
|
||||
if (isAjaxRequest()) {
|
||||
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
|
||||
|
|
|
@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
|
|||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$" ]}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -20,5 +20,5 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_settori` WHERE id='.prepare($id_record));
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_settori` LEFT JOIN `an_settori_lang` ON (`an_settori`.`id`=`an_settori_lang`.`id_record` AND `an_settori_lang`.`id_lang`='.setting('Lingua').') WHERE `an_settori`.`id`='.prepare($id_record));
|
||||
}
|
||||
|
|
|
@ -416,20 +416,25 @@ $(document).ready(function() {
|
|||
</script>';
|
||||
|
||||
// Interventi per tecnico
|
||||
$tecnici = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale, colore FROM an_anagrafiche
|
||||
INNER JOIN
|
||||
an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica
|
||||
LEFT OUTER JOIN in_interventi_tecnici ON in_interventi_tecnici.idtecnico = an_anagrafiche.idanagrafica
|
||||
INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id
|
||||
WHERE an_anagrafiche.deleted_at IS NULL AND an_tipianagrafiche.descrizione='Tecnico'
|
||||
GROUP BY an_anagrafiche.idanagrafica
|
||||
ORDER BY ragione_sociale ASC");
|
||||
$tecnici = $dbo->fetchArray('SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale`, `colore`
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).")
|
||||
LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idtecnico` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `in_interventi` ON `in_interventi_tecnici`.`idintervento`=`in_interventi`.`id`
|
||||
WHERE
|
||||
`an_anagrafiche`.`deleted_at` IS NULL AND `an_tipianagrafiche_lang`.`name`='Tecnico'
|
||||
GROUP BY
|
||||
`an_anagrafiche`.`idanagrafica`
|
||||
ORDER BY
|
||||
`ragione_sociale` ASC");
|
||||
|
||||
$dataset = '';
|
||||
$where = implode(',', (array) json_decode($_SESSION['superselect']['idtipiintervento'])) != '' ? 'in_interventi_tecnici.idtipointervento IN('.implode(',', (array) json_decode($_SESSION['superselect']['idtipiintervento'])).')' : '1=1';
|
||||
$where = implode(',', (array) json_decode($_SESSION['superselect']['idtipiintervento'])) != '' ? '`in_interventi_tecnici`.`idtipointervento` IN('.implode(',', (array) json_decode($_SESSION['superselect']['idtipiintervento'])).')' : '1=1';
|
||||
foreach ($tecnici as $tecnico) {
|
||||
$sessioni = $dbo->fetchArray('SELECT SUM(in_interventi_tecnici.ore) AS result, CONCAT(CAST(SUM(in_interventi_tecnici.ore) AS char(20)),\' ore\') AS ore_lavorate, YEAR(in_interventi_tecnici.orario_inizio) AS year, MONTH(in_interventi_tecnici.orario_inizio) AS month FROM in_interventi_tecnici INNER JOIN `in_interventi` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` LEFT JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento` WHERE in_interventi_tecnici.idtecnico = '.prepare($tecnico['id']).' AND in_interventi_tecnici.orario_inizio BETWEEN '.prepare($start).' AND '.prepare($end).' AND `in_statiintervento`.`is_completato` AND '.$where.' GROUP BY YEAR(in_interventi_tecnici.orario_inizio), MONTH(in_interventi_tecnici.orario_inizio) ORDER BY YEAR(in_interventi_tecnici.orario_inizio) ASC, MONTH(in_interventi_tecnici.orario_inizio) ASC');
|
||||
$sessioni = $dbo->fetchArray('SELECT SUM(`in_interventi_tecnici`.`ore`) AS result, CONCAT(CAST(SUM(`in_interventi_tecnici`.`ore`) AS char(20)),\' ore\') AS ore_lavorate, YEAR(`in_interventi_tecnici`.`orario_inizio`) AS year, MONTH(`in_interventi_tecnici`.`orario_inizio`) AS month FROM `in_interventi_tecnici` INNER JOIN ``in_interventi`` ON ``in_interventi_tecnici``.`idintervento` = `in_interventi`.`id` LEFT JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`idstatointervento` WHERE `in_interventi_tecnici`.`idtecnico` = '.prepare($tecnico['id']).' AND `in_interventi_tecnici`.`orario_inizio` BETWEEN '.prepare($start).' AND '.prepare($end).' AND `in_statiintervento`.`is_completato` AND '.$where.' GROUP BY YEAR(`in_interventi_tecnici`.`orario_inizio`), MONTH(`in_interventi_tecnici`.`orario_inizio`) ORDER BY YEAR(`in_interventi_tecnici`.`orario_inizio`) ASC, MONTH(`in_interventi_tecnici`.`orario_inizio`) ASC');
|
||||
|
||||
$sessioni = Stats::monthly($sessioni, $start, $end);
|
||||
|
||||
|
@ -535,23 +540,55 @@ $(document).ready(function() {
|
|||
|
||||
$dataset = '';
|
||||
|
||||
$nuovi_clienti = $dbo->fetchArray('SELECT COUNT(*) AS result, GROUP_CONCAT(an_anagrafiche.ragione_sociale, "<br>") AS ragioni_sociali, YEAR(an_anagrafiche.created_at) AS year, MONTH(an_anagrafiche.created_at) AS month FROM an_anagrafiche
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = "Cliente" AND deleted_at IS NULL AND an_anagrafiche.created_at BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(an_anagrafiche.created_at), MONTH(an_anagrafiche.created_at) ORDER BY YEAR(an_anagrafiche.created_at) ASC, MONTH(an_anagrafiche.created_at) ASC');
|
||||
$nuovi_clienti = $dbo->fetchArray('SELECT
|
||||
COUNT(*) AS result,
|
||||
GROUP_CONCAT(`an_anagrafiche`.`ragione_sociale`, "<br>") AS ragioni_sociali,
|
||||
YEAR(`an_anagrafiche`.`created_at`) AS year,
|
||||
MONTH(`an_anagrafiche`.`created_at`) AS month
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = "Cliente" AND `deleted_at` IS NULL AND `an_anagrafiche`.`created_at` BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(`an_anagrafiche`.`created_at`), MONTH(`an_anagrafiche`.`created_at`) ORDER BY YEAR(`an_anagrafiche`.`created_at`) ASC, MONTH(`an_anagrafiche`.`created_at`) ASC');
|
||||
|
||||
$nuovi_fornitori = $dbo->fetchArray('SELECT COUNT(*) AS result, GROUP_CONCAT(an_anagrafiche.ragione_sociale, "<br>") AS ragioni_sociali, YEAR(an_anagrafiche.created_at) AS year, MONTH(an_anagrafiche.created_at) AS month FROM an_anagrafiche
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = "Fornitore" AND deleted_at IS NULL AND an_anagrafiche.created_at BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(an_anagrafiche.created_at), MONTH(an_anagrafiche.created_at) ORDER BY YEAR(an_anagrafiche.created_at) ASC, MONTH(an_anagrafiche.created_at) ASC');
|
||||
$nuovi_fornitori = $dbo->fetchArray('SELECT
|
||||
COUNT(*) AS result,
|
||||
GROUP_CONCAT(`an_anagrafiche`.`ragione_sociale`, "<br>") AS ragioni_sociali,
|
||||
YEAR(`an_anagrafiche`.`created_at`) AS year,
|
||||
MONTH(`an_anagrafiche`.`created_at`) AS month
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = "Fornitore" AND `deleted_at` IS NULL AND `an_anagrafiche`.`created_at` BETWEEN '.prepare($start).' AND '.prepare($end).'
|
||||
GROUP BY
|
||||
YEAR(`an_anagrafiche`.`created_at`), MONTH(`an_anagrafiche`.`created_at`)
|
||||
ORDER BY
|
||||
YEAR(`an_anagrafiche`.`created_at`) ASC, MONTH(`an_anagrafiche`.`created_at`) ASC');
|
||||
|
||||
// Nuovi clienti per i quali ho emesso almeno una fattura di vendita
|
||||
$clienti_acquisiti = $dbo->fetchArray('SELECT COUNT(*) AS result, GROUP_CONCAT(an_anagrafiche.ragione_sociale, "<br>") AS ragioni_sociali, YEAR(an_anagrafiche.created_at) AS year, MONTH(an_anagrafiche.created_at) AS month FROM an_anagrafiche
|
||||
INNER JOIN co_documenti ON an_anagrafiche.idanagrafica = co_documenti.idanagrafica
|
||||
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = "Cliente" AND co_tipidocumento.dir = "entrata" AND an_anagrafiche.created_at BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(an_anagrafiche.created_at), MONTH(an_anagrafiche.created_at) ORDER BY YEAR(an_anagrafiche.created_at) ASC, MONTH(an_anagrafiche.created_at) ASC');
|
||||
$clienti_acquisiti = $dbo->fetchArray('SELECT
|
||||
COUNT(*) AS result,
|
||||
GROUP_CONCAT(`an_anagrafiche`.`ragione_sociale`, "<br>") AS ragioni_sociali,
|
||||
YEAR(`an_anagrafiche`.`created_at`) AS year,
|
||||
MONTH(`an_anagrafiche`.`created_at`) AS month
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
INNER JOIN `co_documenti` ON `an_anagrafiche`.`idanagrafica` = `co_documenti`.`idanagrafica`
|
||||
INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = "Cliente" AND `co_tipidocumento`.`dir` = "entrata" AND `an_anagrafiche`.`created_at` BETWEEN '.prepare($start).' AND '.prepare($end).'
|
||||
GROUP BY
|
||||
YEAR(`an_anagrafiche`.`created_at`), MONTH(`an_anagrafiche`.`created_at`)
|
||||
ORDER BY
|
||||
YEAR(`an_anagrafiche`.`created_at`) ASC, MONTH(`an_anagrafiche`.`created_at`) ASC');
|
||||
|
||||
// Random color
|
||||
$background = '#'.dechex(rand(256, 16777215));
|
||||
|
|
|
@ -28,7 +28,7 @@ switch (post('op')) {
|
|||
// Nome accettato
|
||||
|
||||
if (!in_array($descrizione, $block)) {
|
||||
$dbo->query('UPDATE an_tipianagrafiche SET descrizione='.prepare($descrizione).' WHERE idtipoanagrafica='.prepare($idtipoanagrafica));
|
||||
$dbo->query('UPDATE `an_tipianagrafiche_lang` SET `name`='.prepare($descrizione).' WHERE `id_record`='.prepare($idtipoanagrafica));
|
||||
flash()->info(tr('Informazioni salvate correttamente!'));
|
||||
} else {
|
||||
// Nome non consentito
|
||||
|
@ -42,22 +42,22 @@ switch (post('op')) {
|
|||
|
||||
if (!empty($descrizione)) {
|
||||
// Verifico che il nome non sia duplicato
|
||||
$rs = $dbo->fetchArray('SELECT descrizione FROM an_tipianagrafiche WHERE descrizione='.prepare($descrizione));
|
||||
$rs = $dbo->fetchArray('SELECT `name` FROM `an_tipianagrafiche_lang` WHERE `name`='.prepare($descrizione));
|
||||
|
||||
if (count($rs) > 0) {
|
||||
flash()->error(tr('Nome già esistente!'));
|
||||
} else {
|
||||
$query = 'INSERT INTO an_tipianagrafiche (descrizione) VALUES ('.prepare($descrizione).')';
|
||||
$dbo->query($query);
|
||||
|
||||
$dbo->query('INSERT INTO `an_tipianagrafiche` (`id`) VALUES (NULL)');
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
$dbo->query('INSERT INTO `an_tipianagrafiche_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($descrizione).'), ('.prepare($id_record).', '.prepare(setting('Lingua')).')');
|
||||
|
||||
flash()->info(tr('Nuovo tipo di anagrafica aggiunto!'));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$query = 'DELETE FROM an_tipianagrafiche WHERE idtipoanagrafica='.prepare($id_record);
|
||||
$query = 'DELETE FROM `an_tipianagrafiche` WHERE `id`='.prepare($id_record);
|
||||
$dbo->query($query);
|
||||
|
||||
flash()->info(tr('Tipo di anagrafica eliminato!'));
|
||||
|
|
|
@ -51,7 +51,7 @@ if (!empty($record['default'])) {
|
|||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$", "extra": "<?php echo $attr; ?>" ]}
|
||||
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$name$", "extra": "<?php echo $attr; ?>" ]}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -20,5 +20,5 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM an_tipianagrafiche WHERE idtipoanagrafica='.prepare($id_record));
|
||||
$record = $dbo->fetchOne('SELECT * FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).') WHERE `an_tipianagrafiche`.`id`='.prepare($id_record));
|
||||
}
|
||||
|
|
|
@ -21,16 +21,16 @@ include_once __DIR__.'/../../../core.php';
|
|||
|
||||
switch ($resource) {
|
||||
case 'anagrafiche_utenti':
|
||||
$query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, `an_anagrafiche`.`ragione_sociale` AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC';
|
||||
$query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, `an_anagrafiche`.`ragione_sociale` AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC';
|
||||
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
if (!empty($search_fields)) {
|
||||
|
@ -64,22 +64,26 @@ switch ($resource) {
|
|||
break;
|
||||
|
||||
case 'utenti':
|
||||
$query = "SELECT zz_users.id AS id, if(`an_anagrafiche`.`idanagrafica` IS NOT NULL, CONCAT(`an_anagrafiche`.`ragione_sociale`, ' (', zz_users.username, ')'), zz_users.username) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup
|
||||
FROM zz_users
|
||||
$query = "SELECT `zz_users`.`id` AS id, if(`an_anagrafiche`.`idanagrafica` IS NOT NULL, CONCAT(`an_anagrafiche`.`ragione_sociale`, ' (', `zz_users`.`username`, ')'), `zz_users`.`username`) AS descrizione, `an_tipianagrafiche_lang`.`name` AS optgroup
|
||||
FROM
|
||||
`zz_users`
|
||||
LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
|
||||
|where| ORDER BY `optgroup` ASC";
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`=".prepare(setting('Lingua')).')
|
||||
|where|
|
||||
ORDER BY
|
||||
`optgroup` ASC';
|
||||
|
||||
$where[] = 'an_anagrafiche.deleted_at IS NULL';
|
||||
$where[] = '`an_anagrafiche`.`deleted_at` IS NULL';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'zz_users.id='.prepare($element);
|
||||
$filter[] = '`zz_users`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'zz_users.username LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`zz_users`.`username` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
if (!empty($search_fields)) {
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$utenti = $dbo->fetchArray('SELECT *, (SELECT ragione_sociale FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica=zz_users.idanagrafica ) AS ragione_sociale, (SELECT GROUP_CONCAT(descrizione SEPARATOR ", ") FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica=zz_users.idanagrafica GROUP BY idanagrafica) AS tipo FROM zz_users WHERE idgruppo='.prepare($record['id']));
|
||||
$utenti = $dbo->fetchArray('SELECT *, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `an_anagrafiche`.`idanagrafica`=`zz_users`.`idanagrafica` ) AS `ragione_sociale`, (SELECT GROUP_CONCAT(`name` SEPARATOR ", ") FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`id`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` WHERE `idanagrafica`=`zz_users`.`idanagrafica` GROUP BY `idanagrafica`) AS tipo FROM `zz_users` WHERE `idgruppo`='.prepare($record['id']));
|
||||
|
||||
echo '
|
||||
<div class="panel panel-primary">
|
||||
|
|
|
@ -35,7 +35,7 @@ class Login extends Resource implements CreateInterface
|
|||
$token = auth()->getToken();
|
||||
|
||||
// Informazioni da restituire tramite l'API
|
||||
$response['user'] = $database->fetchOne('SELECT `an_anagrafiche`.`idanagrafica` AS idanagrafica, `ragione_sociale`, `codice`, `piva`, `codice_fiscale`, `indirizzo`, `citta`, `provincia`, (SELECT `nome` FROM `an_nazioni` WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione, `telefono`, `fax`, `cellulare`, `an_anagrafiche`.`email` FROM `zz_users` LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica` WHERE `id` = :id', [
|
||||
$response['user'] = $database->fetchOne('SELECT `an_anagrafiche`.`idanagrafica` AS idanagrafica, `ragione_sociale`, `codice`, `piva`, `codice_fiscale`, `indirizzo`, `citta`, `provincia`, (SELECT `an_nazioni_lang`.`name` FROM `an_nazioni` LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `an_nazioni`.`id` = `an_anagrafiche`.`id_nazione`) AS nazione, `telefono`, `fax`, `cellulare`, `an_anagrafiche`.`email` FROM `zz_users` LEFT JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica` WHERE `id` = :id', [
|
||||
':id' => $user['id'],
|
||||
]);
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ namespace Plugins\ExportFE;
|
|||
use FluidXml\FluidXml;
|
||||
use GuzzleHttp\Client;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
use Modules\Anagrafiche\Sede;
|
||||
use Modules\Banche\Banca;
|
||||
use Modules\Fatture\Fattura;
|
||||
|
@ -313,7 +314,7 @@ class FatturaElettronica
|
|||
]));
|
||||
|
||||
// Aggiornamento effettivo
|
||||
$result=database()->update('co_documenti', [
|
||||
$result = database()->update('co_documenti', [
|
||||
'progressivo_invio' => $this->getDocumento()['progressivo_invio'],
|
||||
'codice_stato_fe' => 'GEN',
|
||||
'id_ricevuta_principale' => null,
|
||||
|
@ -1118,8 +1119,7 @@ class FatturaElettronica
|
|||
}
|
||||
|
||||
if (!empty($sede['id_nazione'])) {
|
||||
$rs_nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id='.prepare($sede['id_nazione']));
|
||||
|
||||
$rs_nazione = Nazione::find($sede['id_nazione']);
|
||||
$result['IndirizzoResa']['Nazione'] = $rs_nazione['iso2'];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Modules\Anagrafiche\Tipo;
|
||||
use Modules\DDT\DDT;
|
||||
use Modules\Fatture\Fattura;
|
||||
use Modules\Fatture\Stato;
|
||||
|
@ -173,12 +174,13 @@ switch (filter('op')) {
|
|||
}
|
||||
|
||||
// Aggiorno la tipologia di anagrafica fornitore
|
||||
$anagrafica = $database->fetchOne('SELECT idanagrafica FROM co_documenti WHERE co_documenti.id='.prepare($id_fattura));
|
||||
$rs_t = $database->fetchOne("SELECT * FROM an_tipianagrafiche_anagrafiche WHERE idtipoanagrafica=(SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche WHERE an_tipianagrafiche.descrizione='Fornitore') AND idanagrafica=".prepare($anagrafica['idanagrafica']));
|
||||
$anagrafica = $database->fetchOne('SELECT `idanagrafica` FROM `co_documenti` WHERE `co_documenti`.`id`='.prepare($id_fattura));
|
||||
$id_tipo = (new Tipo())->getByName('Fornitore')->id_record;
|
||||
$rs_t = $database->fetchOne('SELECT * FROM `an_tipianagrafiche_anagrafiche` WHERE `idtipoanagrafica`='.prepare($id_tipo).' AND `idanagrafica`='.prepare($anagrafica['idanagrafica']));
|
||||
|
||||
// Se non trovo corrispondenza aggiungo all'anagrafica la tipologia fornitore
|
||||
if (empty($rs_t)) {
|
||||
$database->query("INSERT INTO an_tipianagrafiche_anagrafiche (idtipoanagrafica, idanagrafica) VALUES ((SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche WHERE an_tipianagrafiche.descrizione='Fornitore'), ".prepare($anagrafica['idanagrafica']).')');
|
||||
$database->query("INSERT INTO `an_tipianagrafiche_anagrafiche` (`idtipoanagrafica`, `idanagrafica`) VALUES ($id_tipo, ".prepare($anagrafica['idanagrafica']).')');
|
||||
}
|
||||
|
||||
// Processo il file ricevuto
|
||||
|
|
|
@ -206,7 +206,7 @@ class FatturaElettronica
|
|||
$tipologia = TipoAnagrafica::where('descrizione', $type)->first();
|
||||
|
||||
$anagrafica = Anagrafica::whereHas('tipi', function ($query) use ($tipologia) {
|
||||
$query->where('an_tipianagrafiche.idtipoanagrafica', '=', $tipologia->id);
|
||||
$query->where('`an_tipianagrafiche`.`id`', '=', $tipologia->id);
|
||||
});
|
||||
|
||||
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
|
||||
|
@ -225,11 +225,10 @@ class FatturaElettronica
|
|||
// Se non trovo l'anagrafica tra i fornitori, provo a ricercarla anche tra i clienti
|
||||
if (empty($anagrafica->first())) {
|
||||
$type = 'Cliente';
|
||||
|
||||
$tipologia = TipoAnagrafica::where('descrizione', $type)->first();
|
||||
$tipologia = (new TipoAnagrafica())->getByName($type)->id_record;
|
||||
|
||||
$anagrafica = Anagrafica::whereHas('tipi', function ($query) use ($tipologia) {
|
||||
$query->where('an_tipianagrafiche.idtipoanagrafica', '=', $tipologia->id);
|
||||
$query->where('`an_tipianagrafiche`.`id`', '=', $tipologia->id);
|
||||
});
|
||||
|
||||
if (!empty($info['partita_iva']) && !empty($info['codice_fiscale'])) {
|
||||
|
|
|
@ -162,7 +162,7 @@ class Gestore
|
|||
$this->debito_diretto = new DirectDebitCBI();
|
||||
}
|
||||
|
||||
public function aggiungi(Scadenza $scadenza, int $identifier, string $descrizione, string $codice_sequenza = null)
|
||||
public function aggiungi(Scadenza $scadenza, int $identifier, string $descrizione, ?string $codice_sequenza = null)
|
||||
{
|
||||
$documento = $scadenza->documento;
|
||||
$controparte = $scadenza->anagrafica;
|
||||
|
|
|
@ -34,7 +34,7 @@ echo '
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = \'\', \'\', CONCAT(\' (\', citta, \')\')), IF(deleted_at IS NULL, \'\', \' ('.tr('eliminata').')\')) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE deleted_at IS NULL AND descrizione=\'Agente\' AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM co_provvigioni) ORDER BY ragione_sociale", "required": 1, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Agente&readonly_tipo=1" ]}
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = \'\', \'\', CONCAT(\' (\', `citta`, \')\')), IF(`deleted_at` IS NULL, \'\', \' ('.tr('eliminata').')\')) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.setting('Lingua').')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `deleted_at` IS NULL AND `name`=\'Agente\' AND `an_anagrafiche`.`idanagrafica` NOT IN (SELECT `idagente` FROM `co_provvigioni`) ORDER BY `ragione_sociale`", "required": 1, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Agente&readonly_tipo=1" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
|
|
@ -33,7 +33,7 @@ echo '
|
|||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "value": "$idagente$", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = \'\', \'\', CONCAT(\' (\', citta, \')\')), IF(deleted_at IS NULL, \'\', \' ('.tr('eliminata').')\')) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE deleted_at IS NULL AND descrizione=\'Agente\' AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM co_provvigioni WHERE idagente!='.prepare($record['idagente']).') ORDER BY ragione_sociale", "required": 1, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Agente&readonly_tipo=1" ]}
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "value": "$idagente$", "values": "query=SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = \'\', \'\', CONCAT(\' (\', `citta`, \')\')), IF(`deleted_at` IS NULL, \'\', \' ('.tr('eliminata').')\')) AS descrizione, `idtipointervento_default` FROM `an_anagrafiche` INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.setting('Lingua').')) ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `deleted_at` IS NULL AND `name`=\'Agente\' AND `an_anagrafiche`.`idanagrafica` NOT IN (SELECT `idagente` FROM `co_provvigioni` WHERE `idagente`!='.prepare($record['idagente']).') ORDER BY `ragione_sociale`", "required": 1, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica=Agente&readonly_tipo=1" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
|
||||
// id_record = sede
|
||||
if (isset($id_record)) {
|
||||
$record = $dbo->fetchOne('SELECT * FROM an_sedi WHERE id='.prepare($id_record));
|
||||
|
@ -29,5 +31,5 @@ if (isset($id_record)) {
|
|||
// id_parent = anagrafica
|
||||
if (isset($id_parent)) {
|
||||
$record['tipo_anagrafica'] = $dbo->fetchOne('SELECT tipo FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica ='.prepare($id_parent))['tipo'];
|
||||
$record['iso2'] = $dbo->fetchOne('SELECT iso2 FROM an_nazioni INNER JOIN an_anagrafiche ON an_nazioni.id = an_anagrafiche.id_nazione WHERE an_anagrafiche.idanagrafica ='.prepare($id_parent))['iso2'];
|
||||
$record['iso2'] = Nazione::find($record['id_nazione'])->iso2;
|
||||
}
|
||||
|
|
|
@ -74,8 +74,10 @@ elseif ($anagrafica->isTipo('Tecnico')) {
|
|||
$interventi = Intervento::whereIn('id', array_column($interventi, 'id'))->get();
|
||||
$totale_interventi = $interventi->sum('totale_imponibile');
|
||||
|
||||
$sessioni = Sessione::whereIn('id', array_column($sessioni, 'id'))->get();
|
||||
$totale_ore_lavorate = $sessioni->sum('ore');
|
||||
if ($sessioni){
|
||||
$sessioni = Sessione::whereIn('id', array_column($sessioni, 'id'))->get();
|
||||
$totale_ore_lavorate = $sessioni->sum('ore');
|
||||
}
|
||||
|
||||
// Ddt in uscita
|
||||
$ddt_uscita = DDT::whereBetween('data', [$start, $end])
|
||||
|
@ -222,15 +224,15 @@ echo '
|
|||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-'.($sessioni->count() == 0 ? 'gray' : 'yellow').'"><i class="fa fa-wrench"></i></span>
|
||||
<span class="info-box-icon bg-'.(!empty($sessioni) ? 'gray' : 'yellow').'"><i class="fa fa-wrench"></i></span>
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text pull-left">'.tr('Ore lavorate').'</span>';
|
||||
if ($anagrafica->isTipo('Cliente')) {
|
||||
echo '
|
||||
'.($sessioni->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.Modules::get('Interventi')['id'].'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
|
||||
'.($sessioni ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.Modules::get('Interventi')['id'].'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
|
||||
} else {
|
||||
echo '
|
||||
'.($sessioni->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.Modules::get('Interventi')['id'].'&search_Tecnici='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
|
||||
'.($sessioni ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.Modules::get('Interventi')['id'].'&search_Tecnici='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
|
||||
}
|
||||
echo '
|
||||
<br class="clearfix">
|
||||
|
|
|
@ -32,13 +32,16 @@ class Clienti extends AppResource
|
|||
public function getModifiedRecords($last_sync_at)
|
||||
{
|
||||
$parameters = [];
|
||||
$query = "SELECT
|
||||
an_anagrafiche.idanagrafica AS id,
|
||||
an_anagrafiche.updated_at
|
||||
FROM an_anagrafiche
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = 'Cliente' AND (an_anagrafiche.deleted_at IS NULL OR an_anagrafiche.idanagrafica IN(SELECT in_interventi.idanagrafica FROM in_interventi))";
|
||||
$query = 'SELECT
|
||||
`an_anagrafiche`.`idanagrafica` AS id,
|
||||
`an_anagrafiche`.`updated_at`
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.setting('Lingua').")
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = 'Cliente' AND (`an_anagrafiche`.`deleted_at` IS NULL OR `an_anagrafiche`.`idanagrafica` IN(SELECT `in_interventi`.`idanagrafica` FROM `in_interventi`))";
|
||||
|
||||
// Sincronizzazione limitata ai Clienti con Interventi di interesse per il Tecnico corrente
|
||||
$sincronizza_lavorati = setting('Sincronizza solo i Clienti per cui il Tecnico ha lavorato in passato');
|
||||
|
@ -74,32 +77,33 @@ class Clienti extends AppResource
|
|||
public function retrieveRecord($id)
|
||||
{
|
||||
// Gestione della visualizzazione dei dettagli del record
|
||||
$query = 'SELECT an_anagrafiche.idanagrafica AS id,
|
||||
an_anagrafiche.ragione_sociale,
|
||||
an_anagrafiche.tipo,
|
||||
an_anagrafiche.piva AS partita_iva,
|
||||
an_anagrafiche.codice_fiscale,
|
||||
an_anagrafiche.indirizzo,
|
||||
an_anagrafiche.indirizzo2,
|
||||
an_anagrafiche.citta,
|
||||
an_anagrafiche.cap,
|
||||
an_anagrafiche.provincia,
|
||||
an_anagrafiche.km,
|
||||
IFNULL(an_anagrafiche.lat, 0.00) AS latitudine,
|
||||
IFNULL(an_anagrafiche.lng, 0.00) AS longitudine,
|
||||
an_nazioni.nome AS nazione,
|
||||
an_anagrafiche.fax,
|
||||
an_anagrafiche.telefono,
|
||||
an_anagrafiche.cellulare,
|
||||
an_anagrafiche.email,
|
||||
an_anagrafiche.sitoweb AS sito_web,
|
||||
an_anagrafiche.note,
|
||||
an_anagrafiche.deleted_at,
|
||||
IF(an_anagrafiche.deleted_at IS NULL, 0, 1) AS deleted,
|
||||
an_anagrafiche.idtipointervento_default AS id_tipo_intervento_default
|
||||
FROM an_anagrafiche
|
||||
LEFT OUTER JOIN an_nazioni ON an_anagrafiche.id_nazione = an_nazioni.id
|
||||
WHERE an_anagrafiche.idanagrafica = '.prepare($id);
|
||||
$query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id,
|
||||
`an_anagrafiche`.`ragione_sociale`,
|
||||
`an_anagrafiche`.`tipo`,
|
||||
`an_anagrafiche`.`piva` AS partita_iva,
|
||||
`an_anagrafiche`.`codice_fiscale`,
|
||||
`an_anagrafiche`.`indirizzo`,
|
||||
`an_anagrafiche`.`indirizzo2`,
|
||||
`an_anagrafiche`.`citta`,
|
||||
`an_anagrafiche`.`cap`,
|
||||
`an_anagrafiche`.`provincia`,
|
||||
`an_anagrafiche`.`km`,
|
||||
IFNULL(`an_anagrafiche`.`lat`, 0.00) AS latitudine,
|
||||
IFNULL(`an_anagrafiche`.`lng`, 0.00) AS longitudine,
|
||||
`an_nazioni_lang`.`name` AS nazione,
|
||||
`an_anagrafiche`.`fax`,
|
||||
`an_anagrafiche`.`telefono`,
|
||||
`an_anagrafiche`.`cellulare`,
|
||||
`an_anagrafiche`.`email`,
|
||||
`an_anagrafiche`.`sitoweb` AS sito_web,
|
||||
`an_anagrafiche`.`note`,
|
||||
`an_anagrafiche`.`deleted_at`,
|
||||
IF(`an_anagrafiche`.`deleted_at` IS NULL, 0, 1) AS deleted,
|
||||
`an_anagrafiche`.`idtipointervento_default` AS id_tipo_intervento_default
|
||||
FROM `an_anagrafiche`
|
||||
LEFT JOIN `an_nazioni` ON `an_anagrafiche`.`id_nazione` = `an_nazioni`.`id`
|
||||
LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE `an_anagrafiche`.`idanagrafica` = '.prepare($id);
|
||||
|
||||
$record = database()->fetchOne($query);
|
||||
|
||||
|
|
|
@ -44,15 +44,18 @@ class Contratti extends AppResource implements RetrieveInterface
|
|||
|
||||
public function getModifiedRecords($last_sync_at)
|
||||
{
|
||||
$query = "SELECT
|
||||
DISTINCT(co_contratti.id) AS id,
|
||||
co_contratti.updated_at
|
||||
FROM co_contratti
|
||||
INNER JOIN co_staticontratti ON co_staticontratti.id = co_contratti.idstato
|
||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = co_contratti.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = 'Cliente' AND co_staticontratti.is_pianificabile = 1 AND an_anagrafiche.deleted_at IS NULL";
|
||||
$query = 'SELECT
|
||||
DISTINCT(`co_contratti`.`id`) AS id,
|
||||
`co_contratti`.`updated_at`
|
||||
FROM
|
||||
`co_contratti`
|
||||
INNER JOIN `co_staticontratti` ON `co_staticontratti`.`id` = `co_contratti`.`idstato`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_contratti`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).")
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = 'Cliente' AND `co_staticontratti`.`is_pianificabile` = 1 AND `an_anagrafiche`.`deleted_at` IS NULL";
|
||||
|
||||
// Filtro per data
|
||||
if ($last_sync_at) {
|
||||
|
|
|
@ -47,7 +47,7 @@ class ControlloClienti extends Resource implements RetrieveInterface
|
|||
// Aggiunta tipologia Cliente se non presente nell'anagrafica trovata
|
||||
if (!empty($cliente) && !$cliente->isTipo('Cliente')) {
|
||||
$tipo_cliente = Tipo::where('descrizione', '=', 'Cliente')->first();
|
||||
$tipi = $cliente->tipi->pluck('idtipoanagrafica')->toArray();
|
||||
$tipi = $cliente->tipi->pluck('id')->toArray();
|
||||
|
||||
$tipi[] = $tipo_cliente->id;
|
||||
|
||||
|
|
|
@ -38,24 +38,25 @@ class Login extends Resource implements CreateInterface
|
|||
$utente = $database->fetchOne('SELECT
|
||||
`an_anagrafiche`.`idanagrafica` AS id_anagrafica,
|
||||
`an_anagrafiche`.`ragione_sociale`,
|
||||
zz_groups.nome AS gruppo
|
||||
`zz_groups`.`nome` AS gruppo
|
||||
FROM `zz_users`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica`
|
||||
INNER JOIN zz_groups ON zz_users.idgruppo=zz_groups.id
|
||||
INNER JOIN `zz_groups` ON `zz_users`.`idgruppo`=`zz_groups`.`id`
|
||||
WHERE `an_anagrafiche`.`deleted_at` IS NULL AND `zz_users`.`id` = :id', [
|
||||
':id' => $user['id'],
|
||||
]);
|
||||
} else {
|
||||
$utente = $database->fetchOne("SELECT
|
||||
$utente = $database->fetchOne('SELECT
|
||||
`an_anagrafiche`.`idanagrafica` AS id_anagrafica,
|
||||
`an_anagrafiche`.`ragione_sociale`,
|
||||
zz_groups.nome AS gruppo
|
||||
`zz_groups`.`nome` AS gruppo
|
||||
FROM `zz_users`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `zz_users`.`idanagrafica`
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
INNER JOIN zz_groups ON zz_users.idgruppo=zz_groups.id
|
||||
WHERE an_tipianagrafiche.descrizione = 'Tecnico' AND `an_anagrafiche`.`deleted_at` IS NULL AND `id` = :id", [
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua')).")
|
||||
INNER JOIN `zz_groups` ON `zz_users`.`idgruppo`=`zz_groups`.`id`
|
||||
WHERE `an_tipianagrafiche_lang`.`name` = 'Tecnico' AND `an_anagrafiche`.`deleted_at` IS NULL AND `id` = :id", [
|
||||
':id' => $user['id'],
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -44,16 +44,21 @@ class Preventivi extends AppResource implements RetrieveInterface
|
|||
|
||||
public function getModifiedRecords($last_sync_at)
|
||||
{
|
||||
$query = "SELECT DISTINCT(co_preventivi.id) AS id, co_preventivi.updated_at FROM co_preventivi
|
||||
INNER JOIN co_statipreventivi ON co_statipreventivi.id = co_preventivi.idstato
|
||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = co_preventivi.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = 'Cliente' AND co_statipreventivi.is_pianificabile = 1 AND an_anagrafiche.deleted_at IS NULL";
|
||||
$query = "SELECT
|
||||
DISTINCT(`co_preventivi`.`id`) AS id,
|
||||
`co_preventivi`.`updated_at`
|
||||
FROM
|
||||
`co_preventivi`
|
||||
INNER JOIN `co_statipreventivi` ON `co_statipreventivi`.`id` = `co_preventivi`.`idstato`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_preventivi`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = 'Cliente' AND `co_statipreventivi`.`is_pianificabile` = 1 AND `an_anagrafiche`.`deleted_at` IS NULL";
|
||||
|
||||
// Filtro per data
|
||||
if ($last_sync_at) {
|
||||
$query .= ' AND co_preventivi.updated_at > '.prepare($last_sync_at);
|
||||
$query .= ' AND `co_preventivi`.`updated_at` > '.prepare($last_sync_at);
|
||||
}
|
||||
|
||||
$records = database()->fetchArray($query);
|
||||
|
@ -64,16 +69,19 @@ class Preventivi extends AppResource implements RetrieveInterface
|
|||
public function retrieveRecord($id)
|
||||
{
|
||||
// Gestione della visualizzazione dei dettagli del record
|
||||
$query = 'SELECT co_preventivi.id,
|
||||
co_preventivi.idanagrafica AS id_cliente,
|
||||
IF(co_preventivi.idsede = 0, NULL, co_preventivi.idsede) AS id_sede,
|
||||
co_preventivi.nome,
|
||||
co_preventivi.numero,
|
||||
co_preventivi.data_bozza,
|
||||
co_statipreventivi.descrizione AS stato
|
||||
FROM co_preventivi
|
||||
INNER JOIN co_statipreventivi ON co_statipreventivi.id = co_preventivi.idstato
|
||||
WHERE co_preventivi.id = '.prepare($id);
|
||||
$query = 'SELECT
|
||||
`co_preventivi`.`id`,
|
||||
`co_preventivi`.`idanagrafica` AS id_cliente,
|
||||
IF(`co_preventivi`.`idsede` = 0, NULL, `co_preventivi`.`idsede`) AS id_sede,
|
||||
`co_preventivi`.`nome`,
|
||||
`co_preventivi`.`numero`,
|
||||
`co_preventivi`.`data_bozza`,
|
||||
`co_statipreventivi`.`descrizione` AS stato
|
||||
FROM
|
||||
`co_preventivi`
|
||||
INNER JOIN `co_statipreventivi` ON `co_statipreventivi`.`id` = `co_preventivi`.`idstato`
|
||||
WHERE
|
||||
`co_preventivi`.`id` = '.prepare($id);
|
||||
|
||||
$record = database()->fetchOne($query);
|
||||
|
||||
|
|
|
@ -31,15 +31,21 @@ class Referenti extends AppResource implements RetrieveInterface
|
|||
|
||||
public function getModifiedRecords($last_sync_at)
|
||||
{
|
||||
$query = "SELECT DISTINCT(an_referenti.id) AS id, an_referenti.updated_at FROM an_referenti
|
||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_referenti.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = 'Cliente' AND (an_anagrafiche.deleted_at IS NULL OR an_anagrafiche.idanagrafica IN(SELECT in_interventi.idanagrafica FROM in_interventi))";
|
||||
$query = 'SELECT
|
||||
DISTINCT(`an_referenti`.`id`) AS id,
|
||||
`an_referenti`.`updated_at`
|
||||
FROM
|
||||
`an_referenti`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_referenti`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(setting('Lingua'))."
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = 'Cliente' AND (an_anagrafiche.deleted_at IS NULL OR an_anagrafiche.idanagrafica IN(SELECT in_interventi.idanagrafica FROM in_interventi))";
|
||||
|
||||
// Filtro per data
|
||||
if ($last_sync_at) {
|
||||
$query .= ' AND an_referenti.updated_at > '.prepare($last_sync_at);
|
||||
$query .= ' AND `an_referenti`.`updated_at` > '.prepare($last_sync_at);
|
||||
}
|
||||
|
||||
$records = database()->fetchArray($query);
|
||||
|
@ -50,16 +56,18 @@ class Referenti extends AppResource implements RetrieveInterface
|
|||
public function retrieveRecord($id)
|
||||
{
|
||||
// Gestione della visualizzazione dei dettagli del record
|
||||
$query = 'SELECT an_referenti.id,
|
||||
idanagrafica AS id_cliente,
|
||||
IF(idsede = 0, NULL, idsede) AS id_sede,
|
||||
an_referenti.nome,
|
||||
an_mansioni.nome AS mansione,
|
||||
telefono,
|
||||
email
|
||||
FROM an_referenti
|
||||
LEFT JOIN an_mansioni ON an_referenti.idmansione=an_mansioni.id
|
||||
WHERE an_referenti.id = '.prepare($id);
|
||||
$query = 'SELECT `an_referenti`.`id`,
|
||||
`idanagrafica` AS id_cliente,
|
||||
IF(`idsede` = 0, NULL, `idsede`) AS id_sede,
|
||||
`an_referenti`.`nome`,
|
||||
`an_mansioni`.`nome` AS mansione,
|
||||
`telefono`,
|
||||
`email`
|
||||
FROM
|
||||
`an_referenti`
|
||||
LEFT JOIN `an_mansioni` ON `an_referenti`.`idmansione`=`an_mansioni`.`id`
|
||||
WHERE
|
||||
`an_referenti`.`id` = '.prepare($id);
|
||||
|
||||
$record = database()->fetchOne($query);
|
||||
|
||||
|
|
|
@ -30,15 +30,21 @@ class Sedi extends AppResource
|
|||
|
||||
public function getModifiedRecords($last_sync_at)
|
||||
{
|
||||
$query = "SELECT DISTINCT(an_sedi.id) AS id, an_sedi.updated_at FROM an_sedi
|
||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_sedi.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = 'Cliente' AND an_anagrafiche.deleted_at IS NULL";
|
||||
$query = 'SELECT
|
||||
DISTINCT(`an_sedi`.`id`) AS id,
|
||||
`an_sedi`.`updated_at`
|
||||
FROM
|
||||
`an_sedi`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_sedi`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).")
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = 'Cliente' AND `an_anagrafiche`.`deleted_at` IS NULL";
|
||||
|
||||
// Filtro per data
|
||||
if ($last_sync_at) {
|
||||
$query .= ' AND an_sedi.updated_at > '.prepare($last_sync_at);
|
||||
$query .= ' AND `an_sedi`.`updated_at` > '.prepare($last_sync_at);
|
||||
}
|
||||
|
||||
$records = database()->fetchArray($query);
|
||||
|
@ -49,27 +55,28 @@ class Sedi extends AppResource
|
|||
public function retrieveRecord($id)
|
||||
{
|
||||
// Gestione della visualizzazione dei dettagli del record
|
||||
$query = 'SELECT an_sedi.id,
|
||||
an_sedi.idanagrafica AS id_cliente,
|
||||
an_sedi.nomesede AS nome,
|
||||
an_sedi.piva AS partita_iva,
|
||||
an_sedi.codice_fiscale,
|
||||
an_sedi.indirizzo,
|
||||
an_sedi.indirizzo2,
|
||||
an_sedi.citta,
|
||||
an_sedi.cap,
|
||||
an_sedi.provincia,
|
||||
an_sedi.km,
|
||||
IFNULL(an_sedi.lat, 0.00) AS latitudine,
|
||||
IFNULL(an_sedi.lng, 0.00) AS longitudine,
|
||||
an_nazioni.nome AS nazione,
|
||||
an_sedi.telefono,
|
||||
an_sedi.cellulare,
|
||||
an_sedi.fax,
|
||||
an_sedi.email
|
||||
FROM an_sedi
|
||||
LEFT OUTER JOIN an_nazioni ON an_sedi.id_nazione = an_nazioni.id
|
||||
WHERE an_sedi.id = '.prepare($id);
|
||||
$query = 'SELECT `an_sedi`.`id`,
|
||||
`an_sedi`.`idanagrafica` AS id_cliente,
|
||||
`an_sedi`.`nomesede` AS nome,
|
||||
`an_sedi`.`piva` AS partita_iva,
|
||||
`an_sedi`.`codice_fiscale`,
|
||||
`an_sedi`.`indirizzo`,
|
||||
`an_sedi`.`indirizzo2`,
|
||||
`an_sedi`.`citta`,
|
||||
`an_sedi`.`cap`,
|
||||
`an_sedi`.`provincia`,
|
||||
`an_sedi`.`km`,
|
||||
IFNULL(`an_sedi`.`lat`, 0.00) AS latitudine,
|
||||
IFNULL(`an_sedi`.`lng`, 0.00) AS longitudine,
|
||||
`an_nazioni_lang`.`name` AS nazione,
|
||||
`an_sedi`.`telefono`,
|
||||
`an_sedi`.`cellulare`,
|
||||
`an_sedi`.`fax`,
|
||||
`an_sedi`.`email`
|
||||
FROM `an_sedi`
|
||||
LEFT JOIN `an_nazioni` ON `an_sedi`.`id_nazione` = `an_nazioni`.`id`
|
||||
LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE `an_sedi`.`id` = '.prepare($id);
|
||||
|
||||
$record = database()->fetchOne($query);
|
||||
|
||||
|
|
|
@ -30,11 +30,17 @@ class SediAzienda extends AppResource
|
|||
|
||||
public function getModifiedRecords($last_sync_at)
|
||||
{
|
||||
$query = "SELECT DISTINCT(an_sedi.id) AS id, an_sedi.updated_at FROM an_sedi
|
||||
INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = an_sedi.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica
|
||||
INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica = an_tipianagrafiche.idtipoanagrafica
|
||||
WHERE an_tipianagrafiche.descrizione = 'Azienda' AND an_anagrafiche.deleted_at IS NULL";
|
||||
$query = 'SELECT
|
||||
DISTINCT(`an_sedi`.`id`) AS id,
|
||||
`an_sedi`.`updated_at`
|
||||
FROM
|
||||
`an_sedi`
|
||||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_sedi`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id`=`an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang`='.prepare(setting('Lingua')).")
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`name` = 'Azienda' AND `an_anagrafiche`.`deleted_at` IS NULL";
|
||||
|
||||
// Filtro per data
|
||||
if ($last_sync_at) {
|
||||
|
@ -49,27 +55,28 @@ class SediAzienda extends AppResource
|
|||
public function retrieveRecord($id)
|
||||
{
|
||||
// Gestione della visualizzazione dei dettagli del record
|
||||
$query = 'SELECT an_sedi.id,
|
||||
an_sedi.idanagrafica AS id_cliente,
|
||||
an_sedi.nomesede AS nome,
|
||||
an_sedi.piva AS partita_iva,
|
||||
an_sedi.codice_fiscale,
|
||||
an_sedi.indirizzo,
|
||||
an_sedi.indirizzo2,
|
||||
an_sedi.citta,
|
||||
an_sedi.cap,
|
||||
an_sedi.provincia,
|
||||
an_sedi.km,
|
||||
IFNULL(an_sedi.lat, 0.00) AS latitudine,
|
||||
IFNULL(an_sedi.lng, 0.00) AS longitudine,
|
||||
an_nazioni.nome AS nazione,
|
||||
an_sedi.telefono,
|
||||
an_sedi.cellulare,
|
||||
an_sedi.fax,
|
||||
an_sedi.email
|
||||
FROM an_sedi
|
||||
LEFT OUTER JOIN an_nazioni ON an_sedi.id_nazione = an_nazioni.id
|
||||
WHERE an_sedi.id = '.prepare($id);
|
||||
$query = 'SELECT `an_sedi`.`id`,
|
||||
`an_sedi`.`idanagrafica` AS id_cliente,
|
||||
`an_sedi`.`nomesede` AS nome,
|
||||
`an_sedi`.`piva` AS partita_iva,
|
||||
`an_sedi`.`codice_fiscale`,
|
||||
`an_sedi`.`indirizzo`,
|
||||
`an_sedi`.`indirizzo2`,
|
||||
`an_sedi`.`citta`,
|
||||
`an_sedi`.`cap`,
|
||||
`an_sedi`.`provincia`,
|
||||
`an_sedi`.`km`,
|
||||
IFNULL(`an_sedi`.`lat`, 0.00) AS latitudine,
|
||||
IFNULL(`an_sedi`.`lng`, 0.00) AS longitudine,
|
||||
`an_nazioni_lang`.`name` AS nazione,
|
||||
`an_sedi`.`telefono`,
|
||||
`an_sedi`.`cellulare`,
|
||||
`an_sedi`.`fax`,
|
||||
`an_sedi`.`email`
|
||||
FROM `an_sedi`
|
||||
LEFT JOIN `an_nazioni` ON `an_sedi`.`id_nazione` = `an_nazioni`.`id`
|
||||
LEFT JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND `an_nazioni_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||
WHERE `an_sedi`.`id` = '.prepare($id);
|
||||
|
||||
$record = database()->fetchOne($query);
|
||||
|
||||
|
|
|
@ -367,7 +367,7 @@ abstract class Component extends Model
|
|||
return $result;
|
||||
}
|
||||
|
||||
public function replicate(array $except = null)
|
||||
public function replicate(?array $except = null)
|
||||
{
|
||||
$new = parent::replicate($except);
|
||||
|
||||
|
|
|
@ -72,6 +72,7 @@ class Query
|
|||
$id_module = \Modules::getCurrent()['id'];
|
||||
$segment = !empty(self::$segments) ? $_SESSION['module_'.$id_module]['id_segment'] : null;
|
||||
$is_sezionale = database()->fetchOne('SELECT `is_sezionale` FROM `zz_segments` WHERE `id` = '.prepare($segment))['is_sezionale'];
|
||||
$lang = setting('Lingua');
|
||||
|
||||
$user = \Auth::user();
|
||||
|
||||
|
@ -98,7 +99,7 @@ class Query
|
|||
$date_query = !empty($filters) && !empty(self::$segments) ? ' AND ('.implode(' OR ', $filters).')' : '';
|
||||
}
|
||||
|
||||
// Sostituzione periodi temporali
|
||||
// Sostituzione segmenti
|
||||
preg_match('|segment\((.+?)\)|', (string) $query, $matches);
|
||||
$segment_name = !empty($matches[1]) ? $matches[1] : 'id_segment';
|
||||
$segment_filter = !empty($matches[0]) ? $matches[0] : 'segment';
|
||||
|
@ -122,6 +123,9 @@ class Query
|
|||
|
||||
// Filtro dinamico per il modulo Giacenze sedi
|
||||
'|giacenze_sedi_idsede|' => prepare(isset($_SESSION['giacenze_sedi']) ? $_SESSION['giacenze_sedi']['idsede'] : null),
|
||||
|
||||
// Filtro per lingua
|
||||
'|lang|' => '`id_lang` = '.prepare($lang),
|
||||
];
|
||||
|
||||
// Sostituzione dei formati
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
use Modules\Contratti\Contratto;
|
||||
|
||||
$documento = Contratto::find($id_record);
|
||||
|
@ -52,9 +53,9 @@ if (!empty($documento->idsede)) {
|
|||
$destinazione .= ' ('.$rsd[0]['provincia'].')';
|
||||
}
|
||||
if (!empty($rsd[0]['id_nazione'])) {
|
||||
$nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id = '.prepare($rsd[0]['id_nazione']));
|
||||
$nazione = Nazione::find($rsd[0]['id_nazione']);
|
||||
if ($nazione['iso2'] != 'IT') {
|
||||
$destinazione .= ' - '.$nazione['name'];
|
||||
$destinazione .= ' - '.$nazione->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
use Modules\DDT\DDT;
|
||||
|
||||
$documento = DDT::find($id_record);
|
||||
|
@ -70,9 +71,9 @@ if (!empty($documento['idsede_destinazione'])) {
|
|||
$destinazione .= ' ('.$rsd[0]['provincia'].')';
|
||||
}
|
||||
if (!empty($rsd[0]['id_nazione'])) {
|
||||
$nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id = '.prepare($rsd[0]['id_nazione']));
|
||||
$nazione = Nazione::find($rsd[0]['id_nazione']);
|
||||
if ($nazione['iso2'] != 'IT') {
|
||||
$destinazione .= ' - '.$nazione['name'].'<br />';
|
||||
$destinazione .= ' - '.$nazione->name.'<br />';
|
||||
}
|
||||
}
|
||||
if (!empty($rsd[0]['telefono'])) {
|
||||
|
@ -107,9 +108,9 @@ if (!empty($documento['idsede_partenza'])) {
|
|||
$partenza .= ' ('.$rsd[0]['provincia'].')';
|
||||
}
|
||||
if (!empty($rsd[0]['id_nazione'])) {
|
||||
$nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id = '.prepare($rsd[0]['id_nazione']));
|
||||
$nazione = Nazione::find($rsd[0]['id_nazione']);
|
||||
if ($nazione['iso2'] != 'IT') {
|
||||
$partenza .= ' - '.$nazione['name'].'<br />';
|
||||
$partenza .= ' - '.$nazione->name.'<br />';
|
||||
}
|
||||
}
|
||||
if (!empty($rsd[0]['telefono'])) {
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
use Modules\Fatture\Fattura;
|
||||
|
||||
$documento = Fattura::find($id_record);
|
||||
|
@ -91,9 +92,9 @@ if (!empty($record['idsede_destinazione'])) {
|
|||
$destinazione .= ' ('.$rsd[0]['provincia'].')';
|
||||
}
|
||||
if (!empty($rsd[0]['id_nazione'])) {
|
||||
$nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id = '.prepare($rsd[0]['id_nazione']));
|
||||
$nazione = Nazione::find($rsd[0]['id_nazione']);
|
||||
if ($nazione['iso2'] != 'IT') {
|
||||
$destinazione .= ' - '.$nazione['name'];
|
||||
$destinazione .= ' - '.$nazione->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
|
||||
$replaces = [];
|
||||
|
||||
// Retrocompatibilità
|
||||
|
@ -85,9 +87,9 @@ foreach ($replace as $prefix => $values) {
|
|||
$citta .= ' ('.$values['provincia'].')';
|
||||
}
|
||||
if (!empty($values['id_nazione'])) {
|
||||
$nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id = '.prepare($values['id_nazione']));
|
||||
$nazione = Nazione::find($values['id_nazione']);
|
||||
if ($nazione['iso2'] != 'IT') {
|
||||
$citta .= ' - '.$nazione['name'];
|
||||
$citta .= ' - '.$nazione->name;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
use Modules\Ordini\Ordine;
|
||||
|
||||
$documento = Ordine::find($id_record);
|
||||
|
@ -52,9 +53,9 @@ if (!empty($documento->idsede)) {
|
|||
$destinazione .= ' ('.$rsd[0]['provincia'].')';
|
||||
}
|
||||
if (!empty($rsd[0]['id_nazione'])) {
|
||||
$nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id = '.prepare($rsd[0]['id_nazione']));
|
||||
$nazione = Nazione::find($rsd[0]['id_nazione']);
|
||||
if ($nazione['iso2'] != 'IT') {
|
||||
$destinazione .= ' - '.$nazione['name'];
|
||||
$destinazione .= ' - '.$nazione->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Anagrafiche\Nazione;
|
||||
use Modules\Preventivi\Preventivo;
|
||||
|
||||
$documento = Preventivo::find($id_record);
|
||||
|
@ -52,9 +53,9 @@ if (!empty($documento->idsede)) {
|
|||
$destinazione .= ' ('.$rsd[0]['provincia'].')';
|
||||
}
|
||||
if (!empty($rsd[0]['id_nazione'])) {
|
||||
$nazione = $database->fetchOne('SELECT * FROM an_nazioni WHERE id = '.prepare($rsd[0]['id_nazione']));
|
||||
$nazione = Nazione::find($rsd[0]['id_nazione']);
|
||||
if ($nazione['iso2'] != 'IT') {
|
||||
$destinazione .= ' - '.$nazione['name'];
|
||||
$destinazione .= ' - '.$nazione->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,256 @@
|
|||
-- Aggiornamento impostazione cifre decimali
|
||||
UPDATE `zz_settings` SET `tipo` = 'list[2,3,4,5]' WHERE `nome` = 'Cifre decimali per importi';
|
||||
UPDATE `zz_settings` SET `tipo` = 'list[0,1,2,3,4,5]' WHERE `nome` = 'Cifre decimali per quantità';
|
||||
|
||||
-- Aggiunta impostazione per lingua di default
|
||||
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`,`order`, `help`) VALUES ('Lingua', '1', 'query=SELECT `id`, `name` AS descrizione FROM `zz_langs` ORDER BY `descrizione` ASC', '1', 'Generali',NULL, 'Seleziona la lingua di default del gestionale');
|
||||
|
||||
-- Aggiunta tabella zz_langs
|
||||
CREATE TABLE IF NOT EXISTS `zz_langs` (
|
||||
`id` int NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`enabled` tinyint(1) NOT NULL,
|
||||
`iso_code` varchar(2) NOT NULL,
|
||||
`language_code` varchar(5) NOT NULL,
|
||||
`date` varchar(100) NOT NULL,
|
||||
`time` varchar(100) NOT NULL,
|
||||
`timestamp` varchar(100) NOT NULL,
|
||||
`decimals` varchar(1) NOT NULL,
|
||||
`thousands` varchar(1) NULL,
|
||||
`is_rtl` tinyint(1) NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE `zz_langs`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `zz_langs`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `zz_langs` (`id`, `name`, `enabled`, `iso_code`, `language_code`, `date`, `time`, `timestamp`, `decimals`, `thousands`, `is_rtl`) VALUES (NULL, 'Italiano (Italian)', '1', 'it', 'it-it', 'd/m/Y', 'H:i', 'd/m/Y H:i', ',', NULL, 0);
|
||||
INSERT INTO `zz_langs` (`id`, `name`, `enabled`, `iso_code`, `language_code`, `date`, `time`, `timestamp`, `decimals`, `thousands`, `is_rtl`) VALUES (NULL, 'English (English)', '1', 'en', 'en-gb', 'm/d/Y', 'H:i', 'm/d/Y H:i', ',', NULL, 0);
|
||||
|
||||
-- Aggiunta valuta dollaro
|
||||
INSERT INTO `zz_currencies` (`id`, `name`, `title`, `symbol`) VALUES (NULL, 'Dollaro', 'Dollaro', '$');
|
||||
|
||||
-- Aggiunta tabella an_nazioni_lang
|
||||
CREATE TABLE IF NOT EXISTS `an_nazioni_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
|
||||
ALTER TABLE `an_nazioni_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `an_nazioni_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `an_nazioni_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `nome` FROM `an_nazioni`;
|
||||
|
||||
INSERT INTO `an_nazioni_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'en'), `id`, `name` FROM `an_nazioni`;
|
||||
|
||||
ALTER TABLE `an_nazioni`
|
||||
DROP `nome`,
|
||||
DROP `name`;
|
||||
|
||||
ALTER TABLE `an_nazioni_lang` ADD CONSTRAINT `an_nazioni_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_nazioni`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Allineamento vista Eventi
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`zz_events`
|
||||
INNER JOIN `an_nazioni` ON `an_nazioni`.`id` = `zz_events`.`id_nazione`
|
||||
INNER JOIN `an_nazioni_lang` ON (`an_nazioni`.`id` = `an_nazioni_lang`.`id_record` AND |lang|)
|
||||
WHERE
|
||||
1=1
|
||||
HAVING
|
||||
2=2" WHERE `name` = 'Eventi';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_nazioni_lang`.`name`' WHERE `zz_modules`.`name` = 'Eventi' AND `zz_views`.`name` = 'Nazione';
|
||||
|
||||
-- Aggiunta tabella an_provenienze_lang
|
||||
CREATE TABLE IF NOT EXISTS `an_provenienze_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
ALTER TABLE `an_provenienze_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `an_provenienze_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `an_provenienze_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `an_provenienze`;
|
||||
|
||||
ALTER TABLE `an_provenienze`
|
||||
DROP `descrizione`;
|
||||
|
||||
ALTER TABLE `an_provenienze_lang` ADD CONSTRAINT `an_provenienze_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_provenienze`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Allineamento vista Provenienze
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`an_provenienze`
|
||||
LEFT JOIN `an_provenienze_lang` ON (`an_provenienze`.`id` = `an_provenienze_lang`.`id_record` AND |lang|)
|
||||
WHERE
|
||||
1=1
|
||||
HAVING
|
||||
2=2" WHERE `name` = 'Provenienze';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_provenienze_lang`.`name`' WHERE `zz_modules`.`name` = 'Provenienze' AND `zz_views`.`name` = 'descrizione';
|
||||
|
||||
-- Aggiunta tabella an_regioni_lang
|
||||
CREATE TABLE IF NOT EXISTS `an_regioni_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
ALTER TABLE `an_regioni_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `an_regioni_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `an_regioni_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `nome` FROM `an_regioni`;
|
||||
|
||||
ALTER TABLE `an_regioni`
|
||||
DROP `nome`;
|
||||
|
||||
ALTER TABLE `an_regioni_lang` ADD CONSTRAINT `an_regioni_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_regioni`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Aggiunta tabella an_relazioni_lang
|
||||
CREATE TABLE IF NOT EXISTS `an_relazioni_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
ALTER TABLE `an_relazioni_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `an_relazioni_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `an_relazioni_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `an_relazioni`;
|
||||
|
||||
ALTER TABLE `an_relazioni`
|
||||
DROP `descrizione`;
|
||||
|
||||
ALTER TABLE `an_relazioni_lang` ADD CONSTRAINT `an_relazioni_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_relazioni`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Allineamento vista Relazioni
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`an_relazioni`
|
||||
LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id` = `an_relazioni_lang`.`id_record` AND |lang|)
|
||||
WHERE
|
||||
1=1 AND `deleted_at` IS NULL
|
||||
HAVING
|
||||
2=2
|
||||
ORDER BY
|
||||
`an_relazioni`.`created_at` DESC" WHERE `name` = 'Relazioni';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_relazioni_lang`.`name`' WHERE `zz_modules`.`name` = 'Relazioni' AND `zz_views`.`name` = 'descrizione';
|
||||
|
||||
-- Aggiunta tabella an_settori_lang
|
||||
CREATE TABLE IF NOT EXISTS `an_settori_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
ALTER TABLE `an_settori_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `an_settori_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `an_settori_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `an_settori`;
|
||||
|
||||
ALTER TABLE `an_settori`
|
||||
DROP `descrizione`;
|
||||
|
||||
ALTER TABLE `an_settori_lang` ADD CONSTRAINT `an_settori_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_settori`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Allineamento vista Relazioni
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`an_settori`
|
||||
LEFT JOIN `an_settori_lang` ON (`an_settori`.`id` = `an_settori_lang`.`id_record` AND |lang|)
|
||||
WHERE
|
||||
1=1
|
||||
HAVING
|
||||
2=2" WHERE `name` = 'Settori';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_settori_lang`.`name`' WHERE `zz_modules`.`name` = 'Settori' AND `zz_views`.`name` = 'descrizione';
|
||||
|
||||
ALTER TABLE `an_tipianagrafiche` CHANGE `idtipoanagrafica` `id` INT NOT NULL AUTO_INCREMENT;
|
||||
|
||||
-- Aggiunta tabella an_tipianagrafiche_lang
|
||||
CREATE TABLE IF NOT EXISTS `an_tipianagrafiche_lang` (
|
||||
`id` int NOT NULL,
|
||||
`id_lang` int NOT NULL,
|
||||
`id_record` int NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL
|
||||
);
|
||||
ALTER TABLE `an_tipianagrafiche_lang`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
ALTER TABLE `an_tipianagrafiche_lang`
|
||||
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||
|
||||
INSERT INTO `an_tipianagrafiche_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `an_tipianagrafiche`;
|
||||
|
||||
ALTER TABLE `an_tipianagrafiche`
|
||||
DROP `descrizione`;
|
||||
|
||||
ALTER TABLE `an_tipianagrafiche_lang` ADD CONSTRAINT `an_tipianagrafiche_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `an_tipianagrafiche`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||
|
||||
-- Allineamento vista Anagrafiche
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`an_anagrafiche`
|
||||
LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione` = `an_relazioni`.`id`
|
||||
LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id` = `an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.|lang|)
|
||||
LEFT JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `an_tipianagrafiche` ON `an_tipianagrafiche`.`id` = `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.|lang|)
|
||||
LEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(`nomesede` SEPARATOR ', ') AS nomi FROM `an_sedi` GROUP BY `idanagrafica`) AS sedi ON `an_anagrafiche`.`idanagrafica`= `sedi`.`idanagrafica`
|
||||
LEFT JOIN (SELECT `idanagrafica`, GROUP_CONCAT(`nome` SEPARATOR ', ') AS nomi FROM `an_referenti` GROUP BY `idanagrafica`) AS referenti ON `an_anagrafiche`.`idanagrafica` =`referenti`.`idanagrafica`
|
||||
LEFT JOIN (SELECT `co_pagamenti`.`descrizione`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti`)AS pagvendita ON IF(`an_anagrafiche`.`idpagamento_vendite`>0,`an_anagrafiche`.`idpagamento_vendite`= `pagvendita`.`id`,'')
|
||||
LEFT JOIN (SELECT `co_pagamenti`.`descrizione`AS nome, `co_pagamenti`.`id` FROM `co_pagamenti`)AS pagacquisto ON IF(`an_anagrafiche`.`idpagamento_acquisti`>0,`an_anagrafiche`.`idpagamento_acquisti`= `pagacquisto`.`id`,'')
|
||||
WHERE
|
||||
1=1 AND `an_anagrafiche`.`deleted_at` IS NULL
|
||||
GROUP BY
|
||||
`an_anagrafiche`.`idanagrafica`, `pagvendita`.`nome`, `pagacquisto`.`nome`
|
||||
HAVING
|
||||
2=2
|
||||
ORDER BY
|
||||
TRIM(`ragione_sociale`)" WHERE `name` = 'Anagrafiche';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_relazioni_lang`.`name`' WHERE `zz_modules`.`name` = 'Anagrafiche' AND `zz_views`.`name` = 'color_title_Relazione';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_tipianagrafiche_lang`.`name`' WHERE `zz_modules`.`name` = 'Anagrafiche' AND `zz_views`.`name` = 'Tipo';
|
||||
|
||||
-- Allineamento vista Tipi di anagrafiche
|
||||
UPDATE `zz_modules` SET `options` = "
|
||||
SELECT
|
||||
|select|
|
||||
FROM
|
||||
`an_tipianagrafiche`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.|lang|)
|
||||
WHERE
|
||||
1=1
|
||||
HAVING
|
||||
2=2" WHERE `name` = 'Tipi di anagrafiche';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_tipianagrafiche_lang`.`name`' WHERE `zz_modules`.`name` = 'Tipi di anagrafiche' AND `zz_views`.`name` = 'Descrizione';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`an_tipianagrafiche`.`id`' WHERE `zz_modules`.`name` = 'Tipi di anagrafiche' AND `zz_views`.`name` = 'id';
|
||||
|
||||
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale` AS descrizione FROM `an_anagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `idtipoanagrafica` = (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON(`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record`) WHERE `name` = \'Azienda\') AND `deleted_at` IS NULL' WHERE `zz_settings`.`nome` = 'Azienda predefinita';
|
|
@ -4,15 +4,20 @@ return [
|
|||
'an_anagrafiche',
|
||||
'an_anagrafiche_agenti',
|
||||
'an_nazioni',
|
||||
'an_nazioni_lang',
|
||||
'an_mansioni',
|
||||
'an_referenti',
|
||||
'an_regioni',
|
||||
'an_regioni_lang',
|
||||
'an_relazioni',
|
||||
'an_relazioni_lang',
|
||||
'an_provenienze',
|
||||
'an_provenienze_lang',
|
||||
'an_settori',
|
||||
'an_sedi',
|
||||
'an_tipianagrafiche',
|
||||
'an_tipianagrafiche_anagrafiche',
|
||||
'an_tipianagrafiche_lang',
|
||||
'an_zone',
|
||||
'an_pagamenti_anagrafiche',
|
||||
'an_sedi_tecnici',
|
||||
|
|
Loading…
Reference in New Issue