Merge branch 'master' into 2.4.2

This commit is contained in:
Thomas Zilio 2018-09-03 16:49:43 +02:00
commit 90897ef0cd
17 changed files with 75 additions and 90 deletions

View File

@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php';
{[ "type": "text", "label": "<?php echo tr('Filiale'); ?>", "name": "filiale", "value": "$filiale$" ]}
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Conto predefinito'); ?>", "name": "id_pianodeiconti3", "value": "$id_pianodeiconti3$", "values": "query=SELECT id, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2 = 1 AND ( id NOT IN (SELECT id_pianodeiconti3 FROM co_banche WHERE id != '<?php echo $record['id'] ?>' ) )" ]}
{[ "type": "select", "label": "<?php echo tr('Conto predefinito'); ?>", "name": "id_pianodeiconti3", "value": "$id_pianodeiconti3$", "values": "query=SELECT id, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2 = 1 AND ( id NOT IN (SELECT id_pianodeiconti3 FROM co_banche WHERE id != '<?php echo $record['id']; ?>' ) )" ]}
</div>
</div>

View File

@ -16,11 +16,11 @@ if (sizeof($rs_documento) > 0) {
}
if ($record['rinnovabile']) {
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00'&& $record['data_conclusione'] != '0000-00-00';
$rinnova = !empty($record['data_accettazione']) && !empty($record['data_conclusione']) && $record['data_accettazione'] != '0000-00-00' && $record['data_conclusione'] != '0000-00-00';
echo '
<div class="tip" data-toggle="tooltip" title="'.tr('Il contratto è rinnovabile se sono definite le date di accettazione e conclusione').'" style="display:inline;">
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled').'" data-backto="record-edit" data-op="renew" data-msg="'.tr("Rinnovare questo contratto?").'" data-button="Rinnova" data-class="btn btn-lg btn-warning" '.($rinnova ? '' : 'disabled').'>
<button type="button" class="btn btn-warning ask '.($rinnova ? '' : 'disabled').'" data-backto="record-edit" data-op="renew" data-msg="'.tr('Rinnovare questo contratto?').'" data-button="Rinnova" data-class="btn btn-lg btn-warning" '.($rinnova ? '' : 'disabled').'>
<i class="fa fa-refresh"></i> '.tr('Rinnova').'...
</button>
</div>';

View File

@ -160,7 +160,7 @@ $operations = [
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
]
],
];
return $operations;

View File

@ -130,7 +130,7 @@ switch (post('op')) {
} elseif ($rs[0]['descrizione'] == 'Emessa') {
elimina_scadenza($id_record);
elimina_movimento($id_record, 0);
} elseif (($rs[0]['descrizione'] == 'Pagato' or $rs[0]['descrizione'] == 'Parzialmente pagato') and ($dbo->fetchNum("SELECT id FROM co_scadenziario WHERE iddocumento = ".prepare($id_record)) == 0)) {
} elseif (($rs[0]['descrizione'] == 'Pagato' or $rs[0]['descrizione'] == 'Parzialmente pagato') and ($dbo->fetchNum('SELECT id FROM co_scadenziario WHERE iddocumento = '.prepare($id_record)) == 0)) {
// aggiungo la scadenza come già pagata
aggiungi_scadenza($id_record, $pagamento, 1);
aggiungi_movimento($id_record, $dir);
@ -1145,7 +1145,7 @@ switch (post('op')) {
}
// Riporto a magazzino gli articoli nelle righe del contratto
$rsa = $dbo->fetchArray("SELECT idarticolo, qta FROM co_righe_contratti WHERE idcontratto=".prepare($idcontratto));
$rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto));
for ($i = 0; $i < sizeof($rsa); ++$i) {
if (!empty($rsa[$i]['idarticolo'])) {
add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]);

View File

@ -113,10 +113,10 @@ if (!empty($rs)) {
<div class="col-md-6">
{[ "type": "date", "label": "'.tr('Data del documento').'", "name": "data", "required": 1, "value": "-now-" ]}
</div>';
if ($module_name == 'Fatture di vendita' || $module_name == 'Fatture di acquisto') {
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE predefined_accredito='1'");
if($op=='nota_accredito' && sizeof($rs_segment)>0){
if ($op == 'nota_accredito' && sizeof($rs_segment) > 0) {
echo '
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.prepare(Modules::get($module_name)['id']).' ORDER BY name", "value": "'.$rs_segment[0]['id'].'" ]}

View File

@ -39,7 +39,7 @@ function elimina_scadenza($iddocumento)
* Funzione per ricalcolare lo scadenzario di una determinata fattura
* $iddocumento string E' l'id del documento di cui ricalcolare lo scadenzario
* $pagamento string Nome del tipo di pagamento. Se è vuoto lo leggo da co_pagamenti_documenti, perché significa che devo solo aggiornare gli importi.
* $pagato boolean Indica se devo segnare l'importo come pagato
* $pagato boolean Indica se devo segnare l'importo come pagato.
*/
function aggiungi_scadenza($iddocumento, $pagamento = '', $pagato = 0)
{
@ -122,28 +122,26 @@ function aggiungi_scadenza($iddocumento, $pagamento = '', $pagato = 0)
$dbo->query('INSERT INTO co_scadenziario(iddocumento, data_emissione, scadenza, da_pagare, pagato, tipo) VALUES('.prepare($iddocumento).', '.prepare($data).', '.prepare($scadenza).', '.prepare($da_pagare).", 0, 'fattura')");
if ($pagato){
$id_scadenza = $dbo->lastInsertedID();
$dbo->update('co_scadenziario', [
if ($pagato) {
$id_scadenza = $dbo->lastInsertedID();
$dbo->update('co_scadenziario', [
'pagato' => $da_pagare,
'data_pagamento' => $data,
'data_pagamento' => $data,
], ['id' => $id_scadenza]);
}
}
}
// Se c'è una ritenuta d'acconto, la aggiungo allo scadenzario
if ($dir == 'uscita' && $ritenutaacconto > 0) {
$dbo->query('INSERT INTO co_scadenziario(iddocumento, data_emissione, scadenza, da_pagare, pagato, tipo) VALUES('.prepare($iddocumento).', '.prepare($data).', '.prepare(date('Y-m', strtotime($data.' +1 month')).'-15').', '.prepare(-$ritenutaacconto).", 0, 'ritenutaacconto')");
if ($pagato){
$id_scadenza = $dbo->lastInsertedID();
$dbo->update('co_scadenziario', [
if ($pagato) {
$id_scadenza = $dbo->lastInsertedID();
$dbo->update('co_scadenziario', [
'pagato' => -$ritenutaacconto,
'data_pagamento' => $data,
'data_pagamento' => $data,
], ['id' => $id_scadenza]);
}
}
}
return true;

View File

@ -137,7 +137,7 @@ switch (post('op')) {
]);
aggiungi_intervento_in_fattura($intervento['id'], $id_documento, $descrizione, $id_iva, $id_conto);
$n_interventi++;
++$n_interventi;
}
if ($n_interventi > 0) {

View File

@ -55,7 +55,7 @@ function add_tecnico($idintervento, $idtecnico, $inizio, $fine, $idcontratto = n
$dbo = Database::getConnection();
// Controllo sull'identità del tecnico
$tecnico = $dbo->fetchArray("SELECT an_anagrafiche.idanagrafica FROM an_anagrafiche 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 an_anagrafiche.idanagrafica = ".prepare($idtecnico)." AND an_tipianagrafiche.descrizione = 'Tecnico'");
$tecnico = $dbo->fetchArray('SELECT an_anagrafiche.idanagrafica FROM an_anagrafiche 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 an_anagrafiche.idanagrafica = '.prepare($idtecnico)." AND an_tipianagrafiche.descrizione = 'Tecnico'");
if (empty($tecnico)) {
return false;
}

View File

@ -44,8 +44,8 @@ if (!empty($record['immagine'])) {
<div class="col-md-12">
<?php
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
?>
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "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='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "extra": "", "ajax-source": "clienti" ]}
</div>
</div>

View File

@ -257,26 +257,21 @@ if (!empty($rs2)) {
<button type="submit" class="btn btn-success"><i class="fa fa-check"></i> '.tr('Salva modifiche').'</button>';
// Sostituisci componente con un altro dello stesso tipo, posso sostituire solo i componenti installati
if (empty($rs2[$j]['data_sostituzione'])) {
echo "
// Sostituisci componente con un altro dello stesso tipo, posso sostituire solo i componenti installati
if (empty($rs2[$j]['data_sostituzione'])) {
echo "
<button class=\"btn btn-warning\" onclick=\"if( confirm('".tr('Vuoi sostituire questo componente con un altro dello stesso tipo?')."') ){ location.href='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'&op=sostituiscicomponente&backto=record-edit&filename='.$filename.'&id='.$rs2[$j]['id']."'; }\"><i class='fa fa-refresh'></i> ".tr('Sostituisci questo componente').'</button>';
} else {
echo '
} else {
echo '
<button class="btn btn-warning disabled" disabled>'.tr('Componente già sostituito').'</button>';
}
echo '
}
echo '
<a class="btn btn-danger ask" data-backto="record-edit" data-op="unlinkcomponente" data-id="'.$rs2[$j]['id'].'">
<i class="fa fa-trash"></i> '.tr('Elimina').'
</a>';
echo '
echo '
</div>
</form>
</div>

View File

@ -14,12 +14,12 @@ switch (post('op')) {
if ($predefined) {
$dbo->query('UPDATE zz_segments SET predefined = 0 WHERE id_module = '.prepare($id_module));
}
$predefined_accredito = post('predefined_accredito');
if ($predefined_accredito) {
$dbo->query('UPDATE zz_segments SET predefined_accredito = 0 WHERE id_module = '.prepare($id_module));
}
$predefined_addebito = post('predefined_addebito');
if ($predefined_addebito) {
$dbo->query('UPDATE zz_segments SET predefined_addebito = 0 WHERE id_module = '.prepare($id_module));

View File

@ -9,9 +9,9 @@ switch ($resource) {
foreach ($elements as $element) {
$filter[] = 'id = '.prepare($element);
}
if (empty($filter)) {
$where[] = 'deleted_at IS NULL';
}
if (empty($filter)) {
$where[] = 'deleted_at IS NULL';
}
if (!empty($search)) {
$search_fields[] = 'name LIKE '.prepare('%'.$search.'%');
}

View File

@ -123,14 +123,14 @@ switch (filter('op')) {
break;
// Abilita API utente
case 'token_enable':
case 'token_enable':
if ($dbo->query('UPDATE zz_tokens SET enabled = 1 WHERE id_utente = '.prepare($id_utente))) {
flash()->info(tr('Token abilitato!'));
}
flash()->info(tr('Token abilitato!'));
}
break;
// Disabilita API utente
case 'token_disable':
// Disabilita API utente
case 'token_disable':
if ($dbo->query('UPDATE zz_tokens SET enabled = 0 WHERE id_utente = '.prepare($id_utente))) {
flash()->info(tr('Token disabilitato!'));
}
@ -154,38 +154,34 @@ switch (filter('op')) {
break;
// Impostazione/reimpostazione dei permessi di accesso di default
case 'restore_permission':
// Impostazione/reimpostazione dei permessi di accesso di default
case 'restore_permission':
//Gruppo Tecnici
if ($dbo->fetchArray('SELECT `nome` FROM `zz_groups` WHERE `id` = '.prepare($id_record))[0]['nome']=='Tecnici'){
//Gruppo Tecnici
if ($dbo->fetchArray('SELECT `nome` FROM `zz_groups` WHERE `id` = '.prepare($id_record))[0]['nome'] == 'Tecnici') {
$permessi = [];
$permessi['Dashboard'] = 'rw';
$permessi['Anagrafiche'] = 'rw';
$permessi['Interventi'] = 'rw';
$permessi['Magazzino'] = 'rw';
$permessi['Articoli'] = 'rw';
$permessi = array ();
$permessi['Dashboard'] = 'rw';
$permessi['Anagrafiche'] = 'rw';
$permessi['Interventi'] = 'rw';
$permessi['Magazzino'] = 'rw';
$permessi['Articoli'] = 'rw';
$dbo->query('DELETE FROM zz_permissions WHERE idgruppo='.prepare($id_record));
$dbo->query('DELETE FROM zz_permissions WHERE idgruppo='.prepare($id_record));
foreach ($permessi as $module_name => $permesso) {
$module_id = $dbo->fetchArray('SELECT `id` FROM `zz_modules` WHERE `name` = "'.$module_name.'"')[0]['id'];
foreach ($permessi as $module_name => $permesso) {
$dbo->insert('zz_permissions', [
'idgruppo' => $id_record,
'idmodule' => $module_id,
'permessi' => $permesso,
]);
}
$module_id = $dbo->fetchArray('SELECT `id` FROM `zz_modules` WHERE `name` = "'.$module_name.'"')[0]['id'];
$_SESSION['infos'][] = tr('Permessi reimpostati.');
}
$dbo->insert('zz_permissions', [
'idgruppo' => $id_record,
'idmodule' => $module_id,
'permessi' => $permesso,
]);
}
$_SESSION['infos'][] = tr('Permessi reimpostati.');
}
break;
break;
// Aggiornamento dei permessi di accesso
case 'update_permission':

View File

@ -36,7 +36,7 @@ trait PathTrait
$filepath = App::filepath($this->getPath().'|custom|', $file);
$result = str_replace(DOCROOT, ROOTDIR, $filepath);
$result = str_replace('\\','/', $result);
$result = str_replace('\\', '/', $result);
return $result;
}

View File

@ -56,7 +56,8 @@ class Uploads
* Individua il nome fisico per il file indicato.
*
* @param string $source
* @param array $data
* @param array $data
*
* @return string
*/
protected static function getName($source, $data)
@ -283,6 +284,7 @@ class Uploads
*
* @param array $from
* @param array $to
*
* @return bool
*/
public static function copy($from, $to)

View File

@ -382,12 +382,8 @@ echo '
</tr>
</table>';
if ($options['hide_footer']) {
echo '
echo '
<table style="color:#aaa; font-size:10px;">
<tr>
<td align="left" style="width:97mm; height:5mm;">
@ -398,8 +394,6 @@ if ($options['hide_footer']) {
</td>
</tr>
</table>';
} else {
echo '$default_footer$';
}
else{
echo '$default_footer$';
}

View File

@ -1,7 +1,7 @@
<?php
if ($options['hide_header']) {
echo '
echo '
<!-- Intestazione vuota fornitore -->
<div class="row" style="height:111px;">
<div class="col-xs-6">
@ -9,12 +9,12 @@ if ($options['hide_header']) {
<div class="col-xs-6 text-right">
</div>
</div>';
}else{
echo '
} else {
echo '
<!-- Intestazione fornitore -->
$default_header$';
}
echo '
<br>
<div class="row">