Personalizzazione scadenze
This commit is contained in:
parent
604a8eac6b
commit
30957f2363
1
add.php
1
add.php
|
@ -64,6 +64,7 @@ $(document).ready(function(){
|
||||||
last.after($("#custom_fields_bottom-add").html());
|
last.after($("#custom_fields_bottom-add").html());
|
||||||
|
|
||||||
start_superselect();
|
start_superselect();
|
||||||
|
start_datepickers();
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
|
|
|
@ -268,6 +268,7 @@ if (empty($record) || !$has_access) {
|
||||||
last.after($("#custom_fields_bottom-edit").html());
|
last.after($("#custom_fields_bottom-edit").html());
|
||||||
|
|
||||||
start_superselect();
|
start_superselect();
|
||||||
|
start_datepickers();
|
||||||
});
|
});
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
|
|
|
@ -1786,3 +1786,7 @@ function submitAjax(form, data = {}, callback = null, errorCallback = null) {
|
||||||
function removeHash() {
|
function removeHash() {
|
||||||
history.replaceState(null, null, ' ');
|
history.replaceState(null, null, ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function replaceAll(str, find, replace) {
|
||||||
|
return str.replace(new RegExp(find, "g"), replace);
|
||||||
|
}
|
||||||
|
|
|
@ -81,6 +81,5 @@ echo '
|
||||||
<button type="button" class="btn btn-primary ask tip" data-msg="'.tr('Se riapri questa fattura verrà azzerato lo scadenzario e la prima nota. Continuare?').'" data-method="post" data-op="reopen" data-backto="record-edit" data-title="'.tr('Riaprire la fattura?').'" title="'.tr('Riporta la fattura in stato bozza e ne elimina i movimenti contabili').'">
|
<button type="button" class="btn btn-primary ask tip" data-msg="'.tr('Se riapri questa fattura verrà azzerato lo scadenzario e la prima nota. Continuare?').'" data-method="post" data-op="reopen" data-backto="record-edit" data-title="'.tr('Riaprire la fattura?').'" title="'.tr('Riporta la fattura in stato bozza e ne elimina i movimenti contabili').'">
|
||||||
<i class="fa fa-folder-open"></i> '.tr('Riapri fattura').'...
|
<i class="fa fa-folder-open"></i> '.tr('Riapri fattura').'...
|
||||||
</button>';
|
</button>';
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,10 +145,6 @@ echo '
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<script>
|
<script>
|
||||||
function replaceAll(str, find, replace) {
|
|
||||||
return str.replace(new RegExp(find, "g"), replace);
|
|
||||||
}
|
|
||||||
|
|
||||||
function add_blocco(btn, nome){
|
function add_blocco(btn, nome){
|
||||||
$("#template .superselect, #template .superselectajax").select2().select2("destroy");
|
$("#template .superselect, #template .superselectajax").select2().select2("destroy");
|
||||||
var last = $(btn).closest("table").find("tr[id^=last-" + nome + "]").parent().last();
|
var last = $(btn).closest("table").find("tr[id^=last-" + nome + "]").parent().last();
|
||||||
|
|
|
@ -117,10 +117,6 @@ foreach ($result['altri_dati'] as $dato) {
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<script>
|
<script>
|
||||||
function replaceAll(str, find, replace) {
|
|
||||||
return str.replace(new RegExp(find, "g"), replace);
|
|
||||||
}
|
|
||||||
|
|
||||||
var n = '.($key - 1).';
|
var n = '.($key - 1).';
|
||||||
function add_altri_dati(btn){
|
function add_altri_dati(btn){
|
||||||
$("#template .superselect, #template .superselectajax").select2().select2("destroy");
|
$("#template .superselect, #template .superselectajax").select2().select2("destroy");
|
||||||
|
|
|
@ -16,20 +16,51 @@ switch (post('op')) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'update':
|
case 'update':
|
||||||
|
$tipo = post('tipo');
|
||||||
|
$descrizione = post('descrizione');
|
||||||
|
$iddocumento = post('iddocumento') ?: 0;
|
||||||
|
|
||||||
// Calcolo il totale da pagare
|
// Calcolo il totale da pagare
|
||||||
$rs = $dbo->fetchArray('SELECT SUM(da_pagare) AS totale_da_pagare, iddocumento FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento=(SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).')');
|
$scadenza = $dbo->fetchOne('SELECT SUM(da_pagare) AS totale_da_pagare, iddocumento FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento=(SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).')');
|
||||||
$totale_da_pagare = sum($rs[0]['totale_da_pagare'], null, Settings::get('Cifre decimali per importi'));
|
$totale_da_pagare = sum($scadenza['totale_da_pagare'], null);
|
||||||
|
|
||||||
$totale_utente = 0;
|
$totale_utente = 0;
|
||||||
|
|
||||||
// Verifico se il totale sommato è uguale al totale da pagare (solo per le scadenze delle fatture)
|
// Verifico se il totale sommato è uguale al totale da pagare (solo per le scadenze delle fatture)
|
||||||
foreach (post('scadenza') as $idscadenza => $da_pagare) {
|
foreach (post('da_pagare') as $id_scadenza => $da_pagare) {
|
||||||
$totale_utente = sum($totale_utente, $da_pagare);
|
$totale_utente = sum($totale_utente, $da_pagare);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($totale_utente == $totale_da_pagare || empty($rs[0]['iddocumento'])) {
|
if ($totale_utente == $totale_da_pagare || empty($scadenza['iddocumento'])) {
|
||||||
foreach (post('scadenza') as $idscadenza => $da_pagare) {
|
foreach (post('da_pagare') as $id => $da_pagare) {
|
||||||
$dbo->query('UPDATE co_scadenziario SET da_pagare='.prepare($da_pagare).', pagato='.prepare(post('pagato')[$idscadenza]).', scadenza='.prepare(post('data')[$idscadenza]).' WHERE id='.prepare($idscadenza));
|
$pagato = post('pagato')[$id];
|
||||||
|
$scadenza = post('scadenza')[$id];
|
||||||
|
$data_concordata = post('data_concordata')[$id];
|
||||||
|
|
||||||
|
$nuova = post('nuova')[$id];
|
||||||
|
if (empty($nuova)) {
|
||||||
|
$database->update('co_scadenziario', [
|
||||||
|
'da_pagare' => $da_pagare,
|
||||||
|
'pagato' => $pagato,
|
||||||
|
'scadenza' => $scadenza,
|
||||||
|
'data_concordata' => $data_concordata,
|
||||||
|
], ['id' => $id]);
|
||||||
|
|
||||||
|
if ($da_pagare == 0) {
|
||||||
|
$database->delete('co_scadenziario', ['id' => $id]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$database->insert('co_scadenziario', [
|
||||||
|
'descrizione' => $descrizione,
|
||||||
|
'tipo' => $tipo,
|
||||||
|
'iddocumento' => $iddocumento,
|
||||||
|
'da_pagare' => $da_pagare,
|
||||||
|
'pagato' => $pagato,
|
||||||
|
'scadenza' => $scadenza,
|
||||||
|
'data_concordata' => $data_concordata,
|
||||||
|
'data_emissione' => date('Y-m-d'),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
flash()->info(tr('Scadenze aggiornate!'));
|
flash()->info(tr('Scadenze aggiornate!'));
|
||||||
|
|
|
@ -8,9 +8,18 @@ echo '
|
||||||
<input type="hidden" name="backto" value="record-edit">
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
<input type="hidden" name="id_record" value="'.$id_record.'">
|
<input type="hidden" name="id_record" value="'.$id_record.'">
|
||||||
|
|
||||||
|
<input type="hidden" name="tipo" value="'.$record['tipo'].'">
|
||||||
|
<input type="hidden" name="descrizione" value="'.$record['descrizione'].'">
|
||||||
|
<input type="hidden" name="iddocumento" value="'.$record['iddocumento'].'">
|
||||||
|
|
||||||
<div class="panel panel-primary">
|
<div class="panel panel-primary">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h3 class="panel-title">'.tr('Dettagli scadenza').'</h3>
|
<h3 class="panel-title">
|
||||||
|
'.tr('Dettagli scadenza').'
|
||||||
|
<button type="button" class="btn btn-xs btn-info pull-right" id="add-scadenza">
|
||||||
|
<i class="fa fa-plus"></i> '.tr('Aggiungi scadenza').'
|
||||||
|
</button>
|
||||||
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
|
@ -66,11 +75,16 @@ echo '
|
||||||
<!-- Elenco scadenze -->
|
<!-- Elenco scadenze -->
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<table class="table table-hover table-condensed table-bordered">
|
<table class="table table-hover table-condensed table-bordered">
|
||||||
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th width="150">'.tr('Data').'</th>
|
<th width="150">'.tr('Data').'</th>
|
||||||
<th width="150">'.tr('Importo').'</th>
|
<th width="150">'.tr('Importo').'</th>
|
||||||
<th width="150">'.tr('Pagato').'</th>
|
<th width="150">'.tr('Pagato').'</th>
|
||||||
</tr>';
|
<th width="150">'.tr('Data concordata').'</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody id="scadenze">';
|
||||||
|
|
||||||
$totale_da_pagare = 0;
|
$totale_da_pagare = 0;
|
||||||
$totale_pagato = 0;
|
$totale_pagato = 0;
|
||||||
|
@ -96,18 +110,23 @@ for ($i = 0; $i < count($rs); ++$i) {
|
||||||
echo '
|
echo '
|
||||||
<tr class="'.$class.'">
|
<tr class="'.$class.'">
|
||||||
<td align="center">
|
<td align="center">
|
||||||
{[ "type": "date", "name": "data['.$rs[$i]['id'].']", "value": "'.$rs[$i]['scadenza'].'" ]}
|
{[ "type": "date", "name": "scadenza['.$rs[$i]['id'].']", "value": "'.$rs[$i]['scadenza'].'" ]}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td align="right">
|
<td align="right">
|
||||||
{[ "type": "number", "name": "scadenza['.$rs[$i]['id'].']", "decimals": 2, "value": "'.Translator::numberToLocale($rs[$i]['da_pagare'], 2).'" ]}
|
{[ "type": "number", "name": "da_pagare['.$rs[$i]['id'].']", "decimals": 2, "value": "'.Translator::numberToLocale($rs[$i]['da_pagare'], 2).'", "onchange": "controlloTotale()" ]}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td align="right">
|
<td align="right">
|
||||||
{[ "type": "number", "name": "pagato['.$rs[$i]['id'].']", "decimals": 2, "value": "'.Translator::numberToLocale($rs[$i]['pagato']).'" ]}
|
{[ "type": "number", "name": "pagato['.$rs[$i]['id'].']", "decimals": 2, "value": "'.Translator::numberToLocale($rs[$i]['pagato']).'" ]}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
<td align="center">
|
||||||
|
{[ "type": "date", "name": "data_concordata['.$rs[$i]['id'].']", "value": "'.$rs[$i]['data_concordata'].'" ]}
|
||||||
|
</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$totale_da_pagare = sum(array_column($rs, 'da_pagare'));
|
$totale_da_pagare = sum(array_column($rs, 'da_pagare'));
|
||||||
$totale_pagato = sum(array_column($rs, 'pagato'));
|
$totale_pagato = sum(array_column($rs, 'pagato'));
|
||||||
|
|
||||||
|
@ -121,11 +140,14 @@ $(document).ready(function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
|
</tbody>
|
||||||
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td align="right"><b>'.tr('Totale').'</b></td>
|
<td align="right"><b>'.tr('Totale').'</b></td>
|
||||||
<td align="right" id="totale_utente">'.Translator::numberToLocale($totale_da_pagare).'</td>
|
<td align="right" id="totale_utente">'.Translator::numberToLocale($totale_da_pagare).'</td>
|
||||||
<td align="right"></td>
|
<td align="right"></td>
|
||||||
</tr>';
|
</tr>
|
||||||
|
</tfoot>';
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
@ -150,8 +172,6 @@ echo '
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clearfix"></div>
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
|
||||||
|
@ -164,33 +184,64 @@ if ($records[0]['iddocumento'] == 0) {
|
||||||
</a>
|
</a>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<table class="hide">
|
||||||
|
<tbody id="scadenza-template">
|
||||||
|
<tr class="danger">
|
||||||
|
<input type="hidden" name="nuova[-id-]" value="1">
|
||||||
|
|
||||||
|
<td align="center">
|
||||||
|
{[ "type": "date", "name": "scadenza[-id-]" ]}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right">
|
||||||
|
{[ "type": "number", "name": "da_pagare[-id-]", "decimals": 2, "onchange": "controlloTotale()" ]}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right">
|
||||||
|
{[ "type": "number", "name": "pagato[-id-]", "decimals": 2 ]}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="center">
|
||||||
|
{[ "type": "date", "name": "data_concordata[-id-]" ]}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var i = '.$i.';
|
||||||
|
$(document).on("click", "#add-scadenza", function(){
|
||||||
|
i++;
|
||||||
|
var text = replaceAll($("#scadenza-template").html(), "-id-", "" + i);
|
||||||
|
|
||||||
|
$("#scadenze").append(text);
|
||||||
|
start_datepickers();
|
||||||
|
});
|
||||||
|
</script>';
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
globals.cifre_decimali = 2;
|
globals.cifre_decimali = 2;
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
totale_ok();
|
controlloTotale();
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if ($dir == 'uscita') {
|
if ($dir == 'uscita') {
|
||||||
echo '
|
echo '
|
||||||
$("#email-button").remove();';
|
$("#email-button").remove();';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($record['iddocumento'] != 0) {
|
|
||||||
?>
|
|
||||||
$('input[name*=scadenza]').keyup( function(){ totale_ok(); } );
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
});
|
});
|
||||||
|
|
||||||
function totale_ok(){
|
function controlloTotale() {
|
||||||
totale_da_pagare = $('#totale_da_pagare').val().toEnglish();
|
totale_da_pagare = $('#totale_da_pagare').val().toEnglish();
|
||||||
totale_utente = 0;
|
totale_utente = 0;
|
||||||
|
|
||||||
$('input[name*=scadenza]').each( function(){
|
$('input[name*=da_pagare]').each(function() {
|
||||||
|
|
||||||
totale_utente += $(this).val().toEnglish();
|
totale_utente += $(this).val().toEnglish();
|
||||||
|
|
||||||
|
@ -209,9 +260,7 @@ if ($records[0]['iddocumento'] == 0) {
|
||||||
if (diff == 0) {
|
if (diff == 0) {
|
||||||
$('#btn-saves').removeClass('hide');
|
$('#btn-saves').removeClass('hide');
|
||||||
$('#totale').addClass('hide');
|
$('#totale').addClass('hide');
|
||||||
}
|
} else {
|
||||||
|
|
||||||
else{
|
|
||||||
$('#btn-saves').addClass('hide');
|
$('#btn-saves').addClass('hide');
|
||||||
$('#totale').removeClass('hide');
|
$('#totale').removeClass('hide');
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,8 +49,9 @@ switch (filter('op')) {
|
||||||
$utente->email = $email;
|
$utente->email = $email;
|
||||||
|
|
||||||
$cambia_password = filter('change_password');
|
$cambia_password = filter('change_password');
|
||||||
if (!empty($cambia_password))
|
if (!empty($cambia_password)) {
|
||||||
$utente->password = $password;
|
$utente->password = $password;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$utente = User::build($username, $email, $password);
|
$utente = User::build($username, $email, $password);
|
||||||
}
|
}
|
||||||
|
|
|
@ -130,9 +130,5 @@ function testQuery(){
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function replaceAll(str, find, replace) {
|
|
||||||
return str.replace(new RegExp(find, "g"), replace);
|
|
||||||
}
|
|
||||||
</script>';
|
</script>';
|
||||||
}
|
}
|
||||||
|
|
|
@ -183,3 +183,8 @@ ORDER BY `scadenza` ASC' WHERE `name` = 'Scadenzario';
|
||||||
|
|
||||||
-- Aggiunte impostazione Autocomple web form
|
-- Aggiunte impostazione Autocomple web form
|
||||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Autocompletamento form', 'on', 'list[on,off]', '1', 'Generali', '', NULL);
|
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Autocompletamento form', 'on', 'list[on,off]', '1', 'Generali', '', NULL);
|
||||||
|
|
||||||
|
-- Data concordata per le scadenza
|
||||||
|
ALTER TABLE `co_scadenziario` ADD `data_concordata` DATE;
|
||||||
|
|
||||||
|
UPDATE `zz_views` SET `query` = 'IF(pagato = da_pagare, ''#38CD4E'', IF(data_concordata IS NOT NULL AND data_concordata > NOW(), '' #CC9837'', IF(scadenza < NOW(), ''#CC4D37'', '''')))' WHERE `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario') AND `name` = '_bg_';
|
||||||
|
|
Loading…
Reference in New Issue