mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-01 16:36:45 +01:00
Merge branch 'master' into 2.4.2
This commit is contained in:
commit
90897ef0cd
@ -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>
|
||||
|
||||
|
@ -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>';
|
||||
|
@ -160,7 +160,7 @@ $operations = [
|
||||
'class' => 'btn btn-lg btn-warning',
|
||||
'blank' => false,
|
||||
],
|
||||
]
|
||||
],
|
||||
];
|
||||
|
||||
return $operations;
|
||||
|
@ -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]);
|
||||
|
@ -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'].'" ]}
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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));
|
||||
|
@ -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.'%');
|
||||
}
|
||||
|
@ -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':
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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$';
|
||||
}
|
@ -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">
|
||||
|
Loading…
x
Reference in New Issue
Block a user