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