Skip to content

Commit 21056db

Browse files
feat: stampa definitiva libro giornale e migliorie registri iva
1 parent da06169 commit 21056db

8 files changed

Lines changed: 41 additions & 33 deletions

File tree

modules/stampe_contabili/actions.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@
2424
case 'crea_definitiva':
2525
$year = date('Y', strtotime(post('date_start')));
2626

27-
$first_page = $dbo->fetchOne('SELECT MAX(last_page) AS last_page FROM co_stampecontabili WHERE `id_print`='.prepare(post('id_print')).' AND YEAR(`date_end`)='.prepare($year).' AND `dir`='.prepare(post('dir')))['last_page'] + 1;
27+
$first_page = $dbo->fetchOne('SELECT MAX(last_page) AS last_page FROM co_stampecontabili WHERE `id_print`='.prepare(post('id_print')).' AND `id_sezionale`='.prepare(post('id_sezionale')).' AND YEAR(`date_end`)='.prepare($year).' AND `dir`='.prepare(post('dir')))['last_page'] + 1;
2828

2929
$print = Prints::render(post('id_print'), null, null, true, true, ['reset' => $first_page - 1, 'suppress' => 0]);
3030
$pages = count($print['pages']);
3131
$last_page = $first_page + $pages - 1;
3232

3333
$result = $dbo->table('co_stampecontabili')->insertGetId([
3434
'id_print' => post('id_print'),
35+
'id_sezionale' => post('id_sezionale') ?: '',
3536
'date_start' => post('date_start'),
3637
'date_end' => post('date_end'),
3738
'first_page' => $first_page,
@@ -49,7 +50,7 @@
4950
'id_record' => $result,
5051
]);
5152

52-
echo json_encode($result);
53+
echo json_encode(['first_page' => $first_page - 1]);
5354

5455
break;
5556
}

modules/stampe_contabili/ajax/complete.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@
2525
$date_start = get('date_start');
2626
$date_end = get('date_end');
2727
$id_print = get('id_print');
28+
$id_sezionale = get('id_sezionale');
2829
$dir = get('dir');
2930

30-
$stampa_definitiva = $dbo->fetchOne('SELECT id FROM co_stampecontabili WHERE id_print='.prepare($id_print).' AND dir='.prepare($dir).' AND date_start='.prepare($date_start).' AND date_end='.prepare($date_end))['id'];
31+
$stampa_definitiva = $dbo->fetchOne('SELECT id FROM co_stampecontabili WHERE id_print='.prepare($id_print).' AND id_sezionale='.prepare($id_sezionale).' AND dir='.prepare($dir).' AND date_start='.prepare($date_start).' AND date_end='.prepare($date_end))['id'];
3132

3233
echo json_encode($stampa_definitiva ?: 0);
3334

modules/stampe_contabili/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
109109
<div class="card-body">
110110
<div class="col-md-6">
111-
'.Prints::getLink('Libro giornale', 2, 'btn-primary col-md-12', '<br>'.tr('Libro').'<br>'.tr('giornale'), '|default| fa-2x').'
111+
<button type="button" class="btn btn-primary col-md-12" data-card-widget="modal" data-title="'.tr('Libro giornale').'" data-href="'.base_path().'/modules/stampe_contabili/stampe_contabili.php?nome_stampa=Libro giornale&id_record='.$id_record.'"><i class="fa fa-print fa-2x"></i><br>'.tr('Libro').'<br>'.tr('giornale').'</button>
112112
</div>
113113
</div>
114114
</div>

modules/stampe_contabili/stampe_contabili.php

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494

9595
echo '
9696
<div class="row">';
97-
if ($nome_stampa != 'Liquidazione IVA') {
97+
if ($nome_stampa != 'Liquidazione IVA' && $nome_stampa != 'Libro giornale') {
9898
echo '
9999
<div class="col-md-4">
100100
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_sezionale", "required": "1", "values": "query=SELECT `zz_segments`.`id`, `zz_segments_lang`.`title` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `title` = \"'.(($dir == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto').'\" AND `id_lang` = '.prepare(Models\Locale::getDefault()->id).') AND `is_fiscale` = 1 UNION SELECT -1 AS id, \"Tutti i sezionali\" AS descrizione" ]}
@@ -130,13 +130,15 @@
130130
if ($nome_stampa != 'Liquidazione IVA') {
131131
$elementi = $dbo->fetchArray('SELECT * FROM co_stampecontabili WHERE date_end BETWEEN '.prepare($_SESSION['period_start']).' AND '.prepare($_SESSION['period_end']).' AND id_print='.prepare($id_print).' AND dir='.prepare($dir));
132132
echo '
133-
<div class="card card-primary collapsable collapsed-card">
133+
<div class="card card-info collapsable collapsed-card">
134134
<div class="card-header with-border">
135-
<h3 class="card-title"><i class="fa fa-print"></i> '.tr('Stampe definitive registro iva _DIR_ dal _START_ al _END_', [
136-
'_DIR_' => $dir == 'entrata' ? 'vendite' : 'acquisti',
137-
'_START_' => dateFormat($_SESSION['period_start']),
138-
'_END_' => dateFormat($_SESSION['period_end']),
139-
]).'</h3>
135+
<h3 class="card-title"><i class="fa fa-print"></i> '.tr('Stampe definitive _NOME_ _DIR_ dal _START_ al _END_', [
136+
'_NOME_' => $nome_stampa,
137+
'_DIR_' => ($dir ? ($dir == 'entrata' ? 'vendite' : 'acquisti') : ''),
138+
'_START_' => dateFormat($_SESSION['period_start']),
139+
'_END_' => dateFormat($_SESSION['period_end']),
140+
]).'
141+
</h3>
140142
<div class="card-tools pull-right">
141143
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
142144
</div>
@@ -145,9 +147,12 @@
145147
<ul>';
146148

147149
foreach ($elementi as $elemento) {
148-
$descrizione = tr('Stampa definitiva dal _START_ al _END_ (_FIRST_-_LAST_)', [
150+
$sezionale_stampa = $dbo->fetchOne('SELECT `zz_segments_lang`.`title` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `zz_segments`.`id` = '.$elemento['id_sezionale'])['title'];
151+
152+
$descrizione = tr('Stampa definitiva dal _START_ al _END_ _SEZIONALE_ (_FIRST_-_LAST_)', [
149153
'_START_' => dateFormat($elemento['date_start']),
150154
'_END_' => dateFormat($elemento['date_end']),
155+
'_SEZIONALE_' => $sezionale_stampa ? '['.$sezionale_stampa.']' : '',
151156
'_FIRST_' => $elemento['first_page'],
152157
'_LAST_' => $elemento['last_page'],
153158
]);
@@ -185,6 +190,10 @@
185190
eseguiControlli();
186191
});
187192
193+
$("#id_sezionale").on("change", function(){
194+
eseguiControlli();
195+
});
196+
188197
function eseguiControlli() {
189198
let date_start = $("#date_start").data("DateTimePicker").date().format("YYYY-MM-DD");
190199
let date_end = $("#date_end").data("DateTimePicker").date().format("YYYY-MM-DD");
@@ -242,7 +251,7 @@ function controllaDate(date_start, date_end) {
242251
243252
// Controllo se è già stata creata una stampa definitiva nel periodo selezionato
244253
function controllaStampa(date_start, date_end) {
245-
$(document).load(globals.rootdir + "/ajax_complete.php?module=stampe_contabili&op=controlla_stampa&dir='.$dir.'&id_print='.$id_print.'&date_start=" + date_start + "&date_end=" + date_end, function(response) {
254+
$(document).load(globals.rootdir + "/ajax_complete.php?module=stampe_contabili&op=controlla_stampa&dir='.$dir.'&id_sezionale="+$("#id_sezionale").val()+"&id_print='.$id_print.'&date_start=" + date_start + "&date_end=" + date_end, function(response) {
246255
let stampa_definitiva = response;
247256
248257
if (stampa_definitiva==0) {
@@ -280,7 +289,8 @@ function avvia_stampa (){
280289
dir: "'.$dir.'",
281290
},
282291
success: function(result) {
283-
window.open("'.$link.'&dir='.$dir.'&id_sezionale="+$("#id_sezionale").val()+"&date_start="+$("#date_start").val()+"&date_end="+$("#date_end").val()+"");
292+
result = JSON.parse(result);
293+
window.open("'.$link.'&dir='.$dir.'&id_sezionale="+$("#id_sezionale").val()+"&date_start="+$("#date_start").val()+"&date_end="+$("#date_end").val()+"&first_page="+result.first_page+"");
284294
$("#modals > div").modal("hide");
285295
}
286296
});

pdfgen.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,13 @@
2828
$ptype = get('ptype');
2929
if (!empty($ptype)) {
3030
$print = PrintTemplate::where('directory', $ptype)->orderBy('predefined', 'DESC')->first();
31-
$id_print = $print[0]->id;
31+
$id_print = $print->id;
3232

33-
$id_record = !empty($id_record) ? $id_record : get($print[0]->previous);
33+
$id_record = !empty($id_record) ? $id_record : get($print->previous);
3434
}
3535

36-
$result = Prints::render($id_print, $id_record, $directory);
36+
$mpdfPageNumSubstitutions = get('first_page') ? ['reset' => get('first_page'), 'suppress' => 0] : [];
37+
$result = Prints::render($id_print, $id_record, $directory, false, true, $mpdfPageNumSubstitutions);
3738

3839
if (empty($result)) {
3940
echo '

templates/libro_giornale/footer.php

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,10 @@
1818
* along with this program. If not, see <https://www.gnu.org/licenses/>.
1919
*/
2020

21-
echo '
22-
<table style="color:#aaa; font-size:8px;">
23-
<tr>
24-
<td align="left" style="width:97mm;">
25-
'.tr('Stampato con OpenSTAManager il _DATE_', ['_DATE_' => date('d/m/Y')]).'
26-
</td>
27-
28-
<td class="text-right" style="width:97mm;">
29-
'.tr('Pagina _PAGE_ di _TOTAL_', [
30-
'_PAGE_' => '{PAGENO}',
31-
'_TOTAL_' => '{nb}',
32-
]).'
33-
</td>
34-
</tr>
35-
</table>';
21+
echo '
22+
<p class="text-right">
23+
'.tr('_YEAR_/_PAGE_', [
24+
'_PAGE_' => '{PAGENO}',
25+
'_YEAR_' => date('Y'),
26+
]).'
27+
</p>';

templates/registro_iva/init.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
$dir = filter('dir');
2525

2626
$id_sezionale = filter('id_sezionale');
27-
$sezionale = $dbo->fetchOne('SELECT `zz_segments_lang`.`title` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `zz_segments`.`id` = '.$id_sezionale)['name'];
27+
$sezionale = $dbo->fetchOne('SELECT `zz_segments_lang`.`title` FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `zz_segments`.`id` = '.$id_sezionale)['title'];
2828

2929
$date_start = filter('date_start');
3030
$date_end = filter('date_end');

update/2_7.sql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,3 +225,6 @@ SELECT @id_module := `id` FROM `zz_modules` WHERE `name` = 'Ordini cliente';
225225
INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES
226226
(1, (SELECT `id` FROM `zz_views` WHERE `name` = 'Note interne' AND `id_module` = @id_module), 'Note interne'),
227227
(2, (SELECT `id` FROM `zz_views` WHERE `name` = 'Note interne' AND `id_module` = @id_module), 'Notes');
228+
229+
-- Aggiunto sezionale in stampe definitive
230+
ALTER TABLE `co_stampecontabili` ADD `id_sezionale` INT NOT NULL;

0 commit comments

Comments
 (0)