Miglioramento gestione variabili $$

This commit is contained in:
Thomas Zilio 2018-07-18 14:50:46 +02:00
parent 3bf0ff69ae
commit 9e34829fc7
11 changed files with 46 additions and 27 deletions

View File

@ -144,6 +144,14 @@ if (Modules::getPermission($permesso) == 'r' || Modules::getPermission($permesso
// Lettura risultato query del modulo
include App::filepath($directory.'|custom|', 'init.php');
// Retrocompatibilità
if (!isset($record) && isset($records[0])) {
$record = $records[0];
}
// Registrazione del record
HTMLBuilder\HTMLBuilder::setRecord($record);
if (Modules::getPermission($permesso) == 'rw') {
// Esecuzione delle operazioni di gruppo
$id_records = post('id_records');

View File

@ -12,10 +12,10 @@ if ($module['name'] == 'Ddt di vendita') {
$module_origin = 'Ordini fornitore';
}
$record = $dbo->fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
$idconto = $record[0]['idconto'];
$idanagrafica = $record[0]['idanagrafica'];
$info = $dbo->fetchOne('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idconto = $info['idconto'];
$idanagrafica = $info['idanagrafica'];
// Preventivo
echo '

View File

@ -12,10 +12,10 @@ if ($module['name'] == 'Fatture di vendita') {
$conti = 'conti-acquisti';
}
$record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
$idconto = $record[0]['idconto'];
$idanagrafica = $record[0]['idanagrafica'];
$info= $dbo->fetchOne('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idconto = $info['idconto'];
$idanagrafica = $info['idanagrafica'];
/*
Form di inserimento riga documento

View File

@ -10,9 +10,9 @@ if ($module['name'] == 'Fatture di vendita') {
$dir = 'uscita';
}
$record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
$idanagrafica = $record[0]['idanagrafica'];
$info = $dbo->fetchOne('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idanagrafica = $info['idanagrafica'];
// Preventivo
echo '

View File

@ -13,9 +13,9 @@ if ($module['name'] == 'Fatture di vendita') {
$conti = 'conti-acquisti';
}
$record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
$idanagrafica = $record[0]['idanagrafica'];
$info = $dbo->fetchOne('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idanagrafica = $info['idanagrafica'];
/*
Form di inserimento riga documento

View File

@ -14,9 +14,9 @@ if ($module['name'] == 'Fatture di vendita') {
$conti = 'conti-acquisti';
}
$record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
$idanagrafica = $record[0]['idanagrafica'];
$info = $dbo->fetchOne('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idanagrafica = $info['idanagrafica'];
$idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto');

View File

@ -12,9 +12,9 @@ if ($module['name'] == 'Fatture di vendita') {
$module_origin = 'Ordini fornitore';
}
$record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
$idanagrafica = $record[0]['idanagrafica'];
$info = $dbo->fetchOne('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idanagrafica = $info['idanagrafica'];
// Preventivo
echo '

View File

@ -12,9 +12,9 @@ if ($module['name'] == 'Fatture di vendita') {
$conti = 'conti-acquisti';
}
$record = $dbo->fetchArray('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($record[0]['numero_esterno'] != '') ? $record[0]['numero_esterno'] : $record[0]['numero'];
$idanagrafica = $record[0]['idanagrafica'];
$info = $dbo->fetchOne('SELECT * FROM co_documenti WHERE id='.prepare($id_record));
$numero = ($info['numero_esterno'] != '') ? $info['numero_esterno'] : $info['numero'];
$idanagrafica = $info['idanagrafica'];
$idconto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto');

View File

@ -2,8 +2,6 @@
include_once __DIR__.'/../../core.php';
$record = $records[0];
$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']));
echo '

View File

@ -3,7 +3,6 @@
include_once __DIR__.'/../../core.php';
$enable_readonly = !setting('Modifica Viste di default');
$record = $records[0];
echo '
<form action="" method="post" role="form">

View File

@ -85,6 +85,9 @@ class HTMLBuilder
/** @var int Limite di ricorsione interna */
protected static $max_recursion = 10;
/** @var array Elenco degli elementi abilitati per la sostituzione automatica nei valori ($nome$) */
protected static $record = [];
/**
* Esegue la sostituzione dei tag personalizzati con il relativo codice HTML.
*
@ -206,7 +209,7 @@ class HTMLBuilder
// Sostituzione delle variabili $nome$ col relativo valore da database
elseif (is_string($json[$key]) && preg_match_all('/\$([a-z0-9\_]+)\$/i', $json[$key], $m)) {
for ($i = 0; $i < count($m[0]); ++$i) {
$record = isset($records[0][$m[1][$i]]) ? $records[0][$m[1][$i]] : '';
$record = isset(self::$record[$m[1][$i]]) ? self::$record[$m[1][$i]] : '';
$json[$key] = str_replace($m[0][$i], prepareToField($record), $json[$key]);
}
}
@ -419,4 +422,15 @@ class HTMLBuilder
self::$managers['instances'][$original] = $class;
}
}
/**
* Imposta l'oggetto responsabile per la costruzione del codice HTML per il tag personalizzato.
*
* @param string $input
* @param string|mixed $class
*/
public static function setRecord($record)
{
self::$record = $record;
}
}