Compare commits

...

6 Commits

Author SHA1 Message Date
MatteoPistorello 528a2c7c52 Fix export csv 2021-09-10 17:24:15 +02:00
Luca cc9f399acc Fix aggiornamento 2.4.26 2021-09-10 16:41:06 +02:00
Luca 746ad2b3ed Update 2_4_26.sql 2021-09-10 16:21:19 +02:00
Dasc3er 3937368ca3 Fix gestione caratteri speciali in Fattura Elettronica 2021-09-10 15:39:06 +02:00
Dasc3er d745e4c8d9 Merge remote-tracking branch 'origin/master' 2021-09-10 10:09:57 +02:00
Dasc3er e68f9870c2 Miglioramento commenti in API Clienti per Applicazione 2021-09-10 10:09:17 +02:00
5 changed files with 26 additions and 12 deletions

View File

@ -550,11 +550,11 @@ if (!function_exists('temp_file')) {
// $base_directory = trim(sys_get_temp_dir(), DIRECTORY_SEPARATOR);
$base_directory = implode(DIRECTORY_SEPARATOR, [
trim(base_dir(), DIRECTORY_SEPARATOR),
rtrim(base_dir(), DIRECTORY_SEPARATOR),
'files',
'temp',
]);
$file = trim($base_directory, DIRECTORY_SEPARATOR).
$file = rtrim($base_directory, DIRECTORY_SEPARATOR).
DIRECTORY_SEPARATOR.
ltrim($name, DIRECTORY_SEPARATOR);

View File

@ -631,20 +631,26 @@ class Validator
// Formattazione testo
elseif ($info['type'] == 'string' || $info['type'] == 'normalizedString') {
$output = replace(html_entity_decode($output), [
'&' => '&',
'"' => '"',
"'" => ''',
'<' => '&lt;',
'>' => '&gt;',
/**
* Sostituzione dei caratteri speciali del linguaggio.
*
* @source https://stackoverflow.com/a/3373364
*/
$replace_chars = ['Š' => 'S', 'š' => 's', 'Ž' => 'Z', 'ž' => 'z', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'A', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'B', 'ß' => 'Ss', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'a', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'o', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ý' => 'y', 'þ' => 'b', 'ÿ' => 'y'];
$output = replace($output, $replace_chars);
// Caratteri personalizzati
// Sostituzione tag e contenuti specifici per XML
$output = htmlspecialchars($output, ENT_NOQUOTES | ENT_XML1 | ENT_SUBSTITUTE, 'UTF-8', false);
// Sostituzione per caratteri personalizzati
$output = replace($output, [
'€' => 'euro',
'—' => '-',
'…' => '...',
'~' => '-',
]);
$output = preg_replace('/[^ -~òèéàùì°]+/', ' ', $output);
$output = preg_replace('/[[:^print:]]/', ' ', utf8_decode($output));
}
// Riduzione delle dimensioni

View File

@ -51,6 +51,8 @@ class Clienti extends AppResource
return [];
}
// Problema noto: questo sistema non rileva le anagrafiche esistenti se il Tecnico inizia a lavorare su una Attività creata dopo l'ultima sincronizzazione
// Risolto da applicazione con ricerca del record locale per il Cliente
$id_interventi = array_keys($interventi);
$query .= '
AND an_anagrafiche.idanagrafica IN (

View File

@ -88,7 +88,7 @@ UPDATE `co_tipidocumento` SET `reversed` = '0' WHERE `co_tipidocumento`.`descriz
UPDATE `zz_cache` SET `expire_at` = NULL WHERE `zz_cache`.`name` = 'Informazioni su Services';
-- Fix flag default per i plugin
UPDATE `zz_plugins` SET `default` = 1, `version` = '' WHERE `zz_plugins`.`name` IN ('Impianti del cliente', 'Impianti', 'Referenti', 'Sedi', 'Statistiche', 'Interventi svolti', 'Componenti ini', 'Movimenti', 'Serial', 'Consuntivo', 'Consuntivo', 'Pianificazione interventi', 'Ddt del cliente', 'Fatturazione Elettronica', 'Fatturazione Elettronica', 'Revisioni', 'Ricevute FE', 'Giacenze', 'Rinnovi', 'Statistiche', 'Dichiarazioni d''Intento', 'Pianificazione fatturazione', 'Listino Clienti', 'Storico attività', 'Consuntivo', 'Allegati', 'Componenti', 'Listino Fornitori', 'Piani di sconto/maggiorazione', 'Varianti Articolo')
UPDATE `zz_plugins` SET `default` = 1, `version` = '' WHERE `zz_plugins`.`name` IN ('Impianti del cliente', 'Impianti', 'Referenti', 'Sedi', 'Statistiche', 'Interventi svolti', 'Componenti ini', 'Movimenti', 'Serial', 'Consuntivo', 'Consuntivo', 'Pianificazione interventi', 'Ddt del cliente', 'Fatturazione Elettronica', 'Fatturazione Elettronica', 'Revisioni', 'Ricevute FE', 'Giacenze', 'Rinnovi', 'Statistiche', 'Dichiarazioni d''Intento', 'Pianificazione fatturazione', 'Listino Clienti', 'Storico attività', 'Consuntivo', 'Allegati', 'Componenti', 'Listino Fornitori', 'Piani di sconto/maggiorazione', 'Varianti Articolo');
-- Escludo dalla lista movimenti quelli collegati ad articoli eliminati
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_movimenti` JOIN `mg_articoli` ON `mg_articoli`.id = `mg_movimenti`.`idarticolo` LEFT JOIN `an_sedi` ON `mg_movimenti`.`idsede` = `an_sedi`.`id` WHERE 1=1 AND mg_articoli.deleted_at IS NULL HAVING 2=2 ORDER BY mg_movimenti.data DESC, mg_movimenti.created_at DESC' WHERE `zz_modules`.`name` = 'Movimenti';
@ -97,4 +97,4 @@ UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_movimenti` JOIN `m
ALTER TABLE `dt_causalet` ADD `deleted_at` TIMESTAMP NULL AFTER `updated_at`;
-- Modifico il filtro del modulo
UPDATE `zz_modules` SET `options2` = 'SELECT |select| FROM `dt_causalet` WHERE 1=1 AND `deleted_at` IS NULL HAVING 2=2' WHERE `zz_modules`.`name` = 'Causali';
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `dt_causalet` WHERE 1=1 AND `deleted_at` IS NULL HAVING 2=2' WHERE `zz_modules`.`name` = 'Causali';

View File

@ -92,6 +92,12 @@ return [
'my_impianti_categorie',
'my_impianti_contratti',
'my_impianti_interventi',
'mg_articolo_attributo',
'mg_attributi',
'mg_attributo_combinazione',
'mg_combinazioni',
'mg_valori_attributi',
'my_impianto_componenti',
'my_componenti',
'or_ordini',
'or_righe_ordini',