Skip to content

Commit d3d8ad0

Browse files
committed
feat: aggiunta la possibilità di modificare i conti da plugin Movimenti contabili
1 parent efa49af commit d3d8ad0

2 files changed

Lines changed: 98 additions & 22 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
/*
4+
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
5+
* Copyright (C) DevCode s.r.l.
6+
*
7+
* This program is free software: you can redistribute it and/or modify
8+
* it under the terms of the GNU General Public License as published by
9+
* the Free Software Foundation, either version 3 of the License, or
10+
* (at your option) any later version.
11+
*
12+
* This program is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+
* GNU General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU General Public License
18+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
19+
*/
20+
21+
include_once __DIR__.'/../../core.php';
22+
23+
switch (filter('op')) {
24+
case 'update_conti_movimenti':
25+
// Aggiornamento dei conti associati ai movimenti
26+
$idconti = post('idconto');
27+
28+
if (!empty($idconti)) {
29+
foreach ($idconti as $id_movimento => $id_conto) {
30+
$dbo->update('co_movimenti', [
31+
'idconto' => $id_conto,
32+
], [
33+
'id' => $id_movimento,
34+
]);
35+
}
36+
37+
flash()->info(tr('Conti aggiornati correttamente!'));
38+
} else {
39+
flash()->warning(tr('Nessun movimento da aggiornare!'));
40+
}
41+
42+
break;
43+
}

plugins/movimenti_contabili/edit.php

Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,34 @@
3737
} else {
3838
$modulo = Module::find($id_module)->getTranslation('title');
3939
if ($modulo == 'Anagrafiche') {
40-
$movimenti = $dbo->fetchArray('SELECT co_movimenti.*, SUM(totale) AS totale, co_pianodeiconti3.descrizione, co_pianodeiconti3.numero AS conto3, co_pianodeiconti2.numero AS conto2 FROM co_movimenti LEFT JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id LEFT JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE id_anagrafica='.prepare($id_record).' GROUP BY idmastrino, idconto ORDER BY data, idmastrino');
40+
$movimenti = $dbo->fetchArray('SELECT co_movimenti.*, totale, co_pianodeiconti3.descrizione, co_pianodeiconti3.numero AS conto3, co_pianodeiconti2.numero AS conto2 FROM co_movimenti LEFT JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id LEFT JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE id_anagrafica='.prepare($id_record).' GROUP BY co_movimenti.id ORDER BY data, idmastrino');
4141
} else {
42-
$movimenti = $dbo->fetchArray('SELECT co_movimenti.*, SUM(totale) AS totale, co_pianodeiconti3.descrizione, co_pianodeiconti3.numero AS conto3, co_pianodeiconti2.numero AS conto2 FROM co_movimenti LEFT JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id LEFT JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE iddocumento='.prepare($id_record).' GROUP BY idmastrino, idconto ORDER BY data, idmastrino');
42+
$movimenti = $dbo->fetchArray('SELECT co_movimenti.*, totale, co_pianodeiconti3.descrizione, co_pianodeiconti3.numero AS conto3, co_pianodeiconti2.numero AS conto2 FROM co_movimenti LEFT JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id LEFT JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE iddocumento='.prepare($id_record).' GROUP BY co_movimenti.id ORDER BY data, idmastrino');
4343
}
4444

4545
$idmastrini_processati = [-1];
4646

4747
if (!empty($movimenti)) {
4848
echo '
49-
<table class="table table-hover table-sm table-bordered table-striped" style="font-size:11pt;">
50-
<thead>
51-
<tr>
52-
<th width="160">'.tr('Data').'</th>
53-
<th>'.tr('Conto').'</th>
54-
<th width="170">'.tr('Dare').'</th>
55-
<th width="170">'.tr('Avere').'</th>
56-
<th width="170">'.tr('Scalare').'</th>
57-
</tr>
58-
</thead>
49+
<form action="" method="post" role="form">
50+
<input type="hidden" name="id_module" value="'.$id_module.'">
51+
<input type="hidden" name="id_plugin" value="'.$id_plugin.'">
52+
<input type="hidden" name="id_record" value="'.$id_record.'">
53+
<input type="hidden" name="backto" value="record-edit">
54+
<input type="hidden" name="op" value="update_conti_movimenti">
55+
56+
<table class="table table-hover table-sm table-bordered table-striped" style="font-size:11pt;">
57+
<thead>
58+
<tr>
59+
<th width="160">'.tr('Data').'</th>
60+
<th>'.tr('Conto').'</th>
61+
<th width="170">'.tr('Dare').'</th>
62+
<th width="170">'.tr('Avere').'</th>
63+
<th width="170">'.tr('Scalare').'</th>
64+
</tr>
65+
</thead>
5966
60-
<tbody>';
67+
<tbody>';
6168

6269
foreach ($movimenti as $movimento) {
6370
$documento = $modulo == 'Anagrafiche' ? Fattura::find($movimento['iddocumento']) : null;
@@ -70,12 +77,21 @@
7077

7178
echo '
7279
<tr>
73-
<td class="text-center">'.Translator::dateToLocale($movimento['data']).'</td>
74-
<td>'.$descrizione.'<small class="pull-right text-right text-muted" style="font-size:8pt;">'.($documento ? $documento->getReference() : '').'</small></td>
75-
<td class="text-right">'.($movimento['totale'] > 0 ? moneyFormat(abs($movimento['totale'])) : '').'</td>
76-
<td class="text-right">'.($movimento['totale'] < 0 ? moneyFormat(abs($movimento['totale'])) : '').'</td>
77-
<td class="text-right">'.moneyFormat($scalare).'</td>
78-
</tr>';
80+
<td class="text-center">'.Translator::dateToLocale($movimento['data']).'</td>
81+
<td>
82+
<div class="row">
83+
<div class="col-md-10">
84+
{[ "type": "select", "name": "idconto['.$movimento['id'].']", "required": 1, "value": "'.$movimento['idconto'].'", "ajax-source": "conti", "class": "unblockable" ]}
85+
</div>
86+
<div class="col-md-2">
87+
<small class="pull-right text-right text-muted" style="font-size:8pt;">'.($documento ? $documento->getReference() : '').'</small>
88+
</div>
89+
</div>
90+
</td>
91+
<td class="text-right">'.($movimento['totale'] > 0 ? moneyFormat(abs($movimento['totale'])) : '').'</td>
92+
<td class="text-right">'.($movimento['totale'] < 0 ? moneyFormat(abs($movimento['totale'])) : '').'</td>
93+
<td class="text-right">'.moneyFormat($scalare).'</td>
94+
</tr>';
7995

8096
$idmastrini_processati[] = $movimento['idmastrino'];
8197
}
@@ -96,16 +112,33 @@
96112
echo '
97113
<tr>
98114
<td class="text-center">'.Translator::dateToLocale($altro_movimento['data']).'</td>
99-
<td>'.$descrizione.'<small class="pull-right text-right text-muted" style="font-size:8pt;">'.($documento ? $documento->getReference() : '').'</small></td>
115+
<td>
116+
<div class="row">
117+
<div class="col-md-10">
118+
{[ "type": "select", "name": "idconto['.$altro_movimento['id'].']", "required": 1, "value": "'.$altro_movimento['idconto'].'", "ajax-source": "conti", "class": "unblockable" ]}
119+
</div>
120+
<div class="col-md-2">
121+
<small class="pull-right text-right text-muted" style="font-size:8pt;">'.($documento ? $documento->getReference() : '').'</small>
122+
</div>
123+
</div>
124+
</td>
100125
<td class="text-right">'.($altro_movimento['totale'] > 0 ? moneyFormat(abs($altro_movimento['totale'])) : '').'</td>
101126
<td class="text-right">'.($altro_movimento['totale'] < 0 ? moneyFormat(abs($altro_movimento['totale'])) : '').'</td>
102127
<td class="text-right">'.moneyFormat($scalare).'</td>
103128
</tr>';
104129
}
105130
}
106131
echo '
107-
</tbody>
108-
</table>';
132+
</tbody>
133+
</table>
134+
135+
<div class="row">
136+
<div class="col-md-12 text-right">
137+
<button type="submit" class="btn btn-success">
138+
<i class="fa fa-check"></i> '.tr('Salva').'</button>
139+
</div>
140+
</div>
141+
</form>';
109142
} else {
110143
echo '
111144
<h3 class="text-center">

0 commit comments

Comments
 (0)