mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-01-30 23:45:07 +01:00
Miglioramenti vari
This commit is contained in:
parent
d29c722f0e
commit
c56a36340d
@ -393,12 +393,14 @@ class Database extends Util\Singleton
|
|||||||
$array = [$array];
|
$array = [$array];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Chiavi dei valori
|
||||||
$keys = [];
|
$keys = [];
|
||||||
$temp = array_keys($array[0]);
|
$temp = array_keys($array[0]);
|
||||||
foreach ($temp as $value) {
|
foreach ($temp as $value) {
|
||||||
$keys[] = $this->quote($value);
|
$keys[] = $this->quote($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Valori da inserire
|
||||||
$inserts = [];
|
$inserts = [];
|
||||||
foreach ($array as $values) {
|
foreach ($array as $values) {
|
||||||
foreach ($values as $key => $value) {
|
foreach ($values as $key => $value) {
|
||||||
@ -408,6 +410,7 @@ class Database extends Util\Singleton
|
|||||||
$inserts[] = '('.implode(array_values($values), ', ').')';
|
$inserts[] = '('.implode(array_values($values), ', ').')';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Costruzione della query
|
||||||
$query = 'INSERT INTO '.$this->quote($table).' ('.implode(',', $keys).') VALUES '.implode($inserts, ', ');
|
$query = 'INSERT INTO '.$this->quote($table).' ('.implode(',', $keys).') VALUES '.implode($inserts, ', ');
|
||||||
|
|
||||||
if (!empty($return)) {
|
if (!empty($return)) {
|
||||||
@ -435,16 +438,19 @@ class Database extends Util\Singleton
|
|||||||
throw new UnexpectedValueException();
|
throw new UnexpectedValueException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Valori da aggiornare
|
||||||
$update = [];
|
$update = [];
|
||||||
foreach ($array as $key => $value) {
|
foreach ($array as $key => $value) {
|
||||||
$update[] = $this->quote($key).' = '.$this->prepareValue($key, $value);
|
$update[] = $this->quote($key).' = '.$this->prepareValue($key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Condizioni di aggiornamento
|
||||||
$where = [];
|
$where = [];
|
||||||
foreach ($conditions as $key => $value) {
|
foreach ($conditions as $key => $value) {
|
||||||
$where[] = $this->quote($key).' = '.$this->prepareValue($key, $value);
|
$where[] = $this->quote($key).' = '.$this->prepareValue($key, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Costruzione della query
|
||||||
$query = 'UPDATE '.$this->quote($table).' SET '.implode($update, ', ').' WHERE '.implode($where, ' AND ');
|
$query = 'UPDATE '.$this->quote($table).' SET '.implode($update, ', ').' WHERE '.implode($where, ' AND ');
|
||||||
|
|
||||||
if (!empty($return)) {
|
if (!empty($return)) {
|
||||||
@ -478,19 +484,23 @@ class Database extends Util\Singleton
|
|||||||
throw new UnexpectedValueException();
|
throw new UnexpectedValueException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Valori da ottenere
|
||||||
$select = [];
|
$select = [];
|
||||||
foreach ((array) $array as $key => $value) {
|
foreach ((array) $array as $key => $value) {
|
||||||
$select[] = $value.(is_numeric($key) ? '' : 'AS '.$this->quote($key));
|
$select[] = $value.(is_numeric($key) ? '' : 'AS '.$this->quote($key));
|
||||||
}
|
}
|
||||||
$select = !empty($select) ? $select : ['*'];
|
$select = !empty($select) ? $select : ['*'];
|
||||||
|
|
||||||
|
// Costruzione della query
|
||||||
$query = 'SELECT '.implode(', ', $select).' FROM '.$this->quote($table);
|
$query = 'SELECT '.implode(', ', $select).' FROM '.$this->quote($table);
|
||||||
|
|
||||||
|
// Condizioni di selezione
|
||||||
$where = $this->whereStatement($conditions);
|
$where = $this->whereStatement($conditions);
|
||||||
if (!empty($where)) {
|
if (!empty($where)) {
|
||||||
$query .= ' WHERE '.$where;
|
$query .= ' WHERE '.$where;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Impostazioni di ordinamento
|
||||||
if (!empty($order)) {
|
if (!empty($order)) {
|
||||||
$list = [];
|
$list = [];
|
||||||
$allow = ['ASC', 'DESC'];
|
$allow = ['ASC', 'DESC'];
|
||||||
@ -507,6 +517,7 @@ class Database extends Util\Singleton
|
|||||||
$query .= ' ORDER BY '.implode(', ', $list);
|
$query .= ' ORDER BY '.implode(', ', $list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Eventuali limiti
|
||||||
if (!empty($limit)) {
|
if (!empty($limit)) {
|
||||||
$query .= ' LIMIT '.(is_array($limit) ? $limit[0].', '.$limit[1] : $limit);
|
$query .= ' LIMIT '.(is_array($limit) ? $limit[0].', '.$limit[1] : $limit);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,9 @@ switch ($resource) {
|
|||||||
$order[] = 'idanagrafica';
|
$order[] = 'idanagrafica';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(empty($where['deleted'])){
|
||||||
$where['deleted'] = 0;
|
$where['deleted'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -761,6 +761,9 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
|
|||||||
|
|
||||||
$descrizione = strtoupper(tr('Sconto'));
|
$descrizione = strtoupper(tr('Sconto'));
|
||||||
|
|
||||||
|
// Opzione per disabilitare l'idgruppo (per preventivi)
|
||||||
|
$id_gruppo = !isset($options['idgruppo']) || !empty($options['idgruppo']);
|
||||||
|
|
||||||
// Rimozione dello sconto precedente
|
// Rimozione dello sconto precedente
|
||||||
$dbo->query('DELETE FROM '.$tables['row']." WHERE descrizione LIKE '%".$descrizione."%' AND ".$fields['row'].'='.prepare($id_record));
|
$dbo->query('DELETE FROM '.$tables['row']." WHERE descrizione LIKE '%".$descrizione."%' AND ".$fields['row'].'='.prepare($id_record));
|
||||||
|
|
||||||
@ -771,7 +774,7 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
|
|||||||
// Aggiorno l'eventuale sconto gestendolo con le righe in fattura
|
// Aggiorno l'eventuale sconto gestendolo con le righe in fattura
|
||||||
if (!empty($sconto[0]['sconto_globale'])) {
|
if (!empty($sconto[0]['sconto_globale'])) {
|
||||||
if ($sconto[0]['tipo_sconto_globale'] == 'PRC') {
|
if ($sconto[0]['tipo_sconto_globale'] == 'PRC') {
|
||||||
$subtotale = $dbo->fetchArray('SELECT SUM(subtotale - sconto) AS imponibile FROM (SELECT '.$tables['row'].'.subtotale, '.$tables['row'].'.sconto FROM '.$tables['row'].' WHERE '.$fields['row'].'='.prepare($id_record).((!isset($options['idgruppo']) || !empty($options['idgruppo'])) ? ' GROUP BY idgruppo' : '').') AS t')[0]['imponibile'];
|
$subtotale = $dbo->fetchArray('SELECT SUM(subtotale - sconto) AS imponibile FROM (SELECT '.$tables['row'].'.subtotale, '.$tables['row'].'.sconto FROM '.$tables['row'].' WHERE '.$fields['row'].'='.prepare($id_record).($id_gruppo ? ' GROUP BY idgruppo' : '').') AS t')[0]['imponibile'];
|
||||||
$subtotale = -$subtotale / 100 * $sconto[0]['sconto_globale'];
|
$subtotale = -$subtotale / 100 * $sconto[0]['sconto_globale'];
|
||||||
|
|
||||||
$descrizione = $descrizione.' '.Translator::numberToLocale($sconto[0]['sconto_globale']).'%';
|
$descrizione = $descrizione.' '.Translator::numberToLocale($sconto[0]['sconto_globale']).'%';
|
||||||
@ -795,8 +798,7 @@ function aggiorna_sconto($tables, $fields, $id_record, $options = [])
|
|||||||
'#order' => '(SELECT IFNULL(MAX(`order`) + 1, 0) FROM '.$tables['row'].' AS t WHERE '.$fields['row'].'='.prepare($id_record).')',
|
'#order' => '(SELECT IFNULL(MAX(`order`) + 1, 0) FROM '.$tables['row'].' AS t WHERE '.$fields['row'].'='.prepare($id_record).')',
|
||||||
];
|
];
|
||||||
|
|
||||||
// Opzione per disabilitare l'idgruppo (per preventivi)
|
if ($id_gruppo) {
|
||||||
if (!isset($options['idgruppo']) || !empty($options['idgruppo'])) {
|
|
||||||
$values['#idgruppo'] = '(SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM '.$tables['row'].' AS t WHERE '.$fields['row'].'='.prepare($id_record).')';
|
$values['#idgruppo'] = '(SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM '.$tables['row'].' AS t WHERE '.$fields['row'].'='.prepare($id_record).')';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user