GlisWeb framework
_amministrazione.utils.php
Vai alla documentazione di questo file.
1 <?php
2 
19 
20  // config globale
21  global $cf;
22 
23  // debug
24  // die( 'id -> ' . $id );
25 
26  // prelevo le righe
27  $r['righe'] = mysqlQuery(
28  $cf['mysql']['connection'],
29  'SELECT righe_documenti_amministrativi.*, '.
30  'iva.nome AS nome_iva, iva.aliquota, iva.codice AS codice_iva, iva.descrizione AS descrizione_iva, udm.sigla AS udm, articoli.nome AS articolo '.
31  'FROM righe_documenti_amministrativi '.
32  'LEFT JOIN udm ON udm.id = righe_documenti_amministrativi.id_udm '.
33  'INNER JOIN iva ON iva.id = righe_documenti_amministrativi.id_iva '.
34  'LEFT JOIN articoli ON articoli.id = righe_documenti_amministrativi.id_articolo '.
35  'WHERE righe_documenti_amministrativi.id_documento = ? '.
36  'AND righe_documenti_amministrativi.id_genitore IS NULL ORDER BY data_lavorazione, ordine ',
37  array(
38  array( 's' => $id )
39  )
40  );
41 
42  // totali
43  $r['tot'] = array(
44  'importo_netto_totale' => 0,
45  'importo_iva_totale' => 0,
46  'importo_lordo_totale' => 0
47  );
48 
49  // calcoli per riga
50  foreach( $r['righe'] as &$riga ) {
51  $riga['qtd'] = ( empty( $riga['quantita'] ) ) ? 1 : $riga['quantita'];
52  $riga['importo_netto_unitario'] = round( ( $riga['importo_netto_totale'] / $riga['qtd'] ), 2 );
53  $riga['importo_netto_totale'] = round( $riga['importo_netto_totale'], 2 ) ;
54  $riga['importo_iva_totale'] = round( $riga['importo_netto_totale'] * ( $riga['aliquota'] / 100 ), 2 ) ;
55  $riga['importo_lordo_totale'] = $riga['importo_netto_totale'] + $riga['importo_iva_totale'] ;
56  $riga['aliquota'] = round( $riga['aliquota'], 2 );
57  $r['tot']['importo_netto_totale'] += $riga['importo_netto_totale'];
58  $r['tot']['importo_iva_totale'] += $riga['importo_iva_totale'];
59  $r['tot']['importo_lordo_totale'] += $riga['importo_lordo_totale'];
60  if( isset( $r['iva'][ $riga['id_iva'] ]['tot'] ) ) {
61  $r['iva'][ $riga['id_iva'] ]['imponibile_tot'] += $riga['importo_netto_totale'];
62  $r['iva'][ $riga['id_iva'] ]['tot'] += $riga['importo_iva_totale'];
63  } else {
64  $r['iva'][ $riga['id_iva'] ] = array(
65  'tot' => $riga['importo_iva_totale'],
66  'imponibile_tot' => $riga['importo_netto_totale'],
67  'nome' => $riga['nome_iva'],
68  'codice' => $riga['codice_iva'],
69  'aliquota' => $riga['aliquota'],
70  'riferimento' => ( ( ! empty( $riga['codice_iva'] ) ) ? $riga['descrizione_iva'] : NULL )
71  );
72  }
73  // ChIaRa!
74  $riga['aggregate'] = mysqlQuery(
75  $cf['mysql']['connection'],
76  'SELECT righe_documenti_amministrativi.*, '.
77  'iva.nome AS nome_iva, iva.aliquota, iva.codice AS codice_iva, iva.descrizione AS descrizione_iva, udm.sigla AS udm '.
78  'FROM righe_documenti_amministrativi '.
79  'LEFT JOIN iva ON iva.id = righe_documenti_amministrativi.id_iva '.
80  'LEFT JOIN udm ON udm.id = righe_documenti_amministrativi.id_udm '.
81  'WHERE id_genitore = ?',
82  array(
83  array( 's' => $riga['id'] )
84  )
85  );
86  // calcoli per riga
87  foreach( $riga['aggregate'] as &$aggregata ) {
88  $aggregata['qtd'] = ( empty( $aggregata['quantita'] ) ) ? 1 : $aggregata['quantita'];
89  $aggregata['importo_netto_unitario'] = round( ( $aggregata['importo_netto_totale'] / $aggregata['qtd'] ), 2 );
90  $aggregata['importo_netto_totale'] = round( $aggregata['importo_netto_totale'], 2 );
91  $aggregata['importo_iva_totale'] = round( $aggregata['importo_netto_totale'] * ( $aggregata['aliquota'] / 100 ), 2 );
92  $aggregata['importo_lordo_totale'] = $aggregata['importo_netto_totale'] + $aggregata['importo_iva_totale'];
93  $aggregata['aliquota'] = round( $aggregata['aliquota'], 2 );
94 
95  // formattazzione rige aggregate
96  $aggregata['importo_netto_totale'] = sprintf( '%0.2f', $aggregata['importo_netto_totale'] );
97  $aggregata['importo_iva_totale'] = sprintf( '%0.2f', $aggregata['importo_iva_totale'] );
98  $aggregata['importo_lordo_totale'] = sprintf( '%0.2f', $aggregata['importo_lordo_totale'] );
99  $aggregata['data_lavorazione'] = date_format(date_create($aggregata['data_lavorazione']),'d/m/Y');
100  }
101 
102  // formattazione righe
103  $riga['importo_netto_unitario'] = sprintf( '%0.2f', $riga['importo_netto_unitario'] );
104  $riga['importo_netto_totale'] = sprintf( '%0.2f', $riga['importo_netto_totale'] );
105  $riga['importo_iva_totale'] = sprintf( '%0.2f', $riga['importo_iva_totale'] );
106  $riga['importo_lordo_totale'] = sprintf( '%0.2f', $riga['importo_lordo_totale'] );
107  $riga['data_lavorazione'] = date_format(date_create($riga['data_lavorazione']),'d/m/Y');
108  $r['iva'][ $riga['id_iva'] ]['imponibile_tot'] = round( $r['iva'][ $riga['id_iva'] ]['imponibile_tot'], 2);
109  $r['iva'][ $riga['id_iva'] ]['tot'] = round( $r['iva'][ $riga['id_iva'] ]['tot'], 2);
110 
111  }
112 
113 if(! empty($r['tot']) ){
114  // formattazioni finali
115  foreach( $r['tot'] as &$tot ) {
116  $tot = sprintf( '%0.2f', $tot );
117  }
118 }
119 
120 if(! empty($r['iva'])){
121  foreach( $r['iva'] as &$tot ) {
122  $tot['tot'] = sprintf( '%0.2f', $tot['tot'] );
123  }
124 }
125  // debug
126  // header( 'Content-type: text/plain;' );
127  // die( 'risultato -> ' . print_r( $r, true ) );
128 
129  // valore di ritorno
130  return $r;
131 
132  }
133 
140 
141  // config globale
142  global $cf;
143 
144  // debug
145  // die( 'id -> ' . $id );
146 
147  // prelevo le righe
148  $r['righe'] = mysqlQuery(
149  $cf['mysql']['connection'],
150  'SELECT scadenze.*, '.
151  'modalita_pagamento.nome AS modalita_pagamento, modalita_pagamento.codice AS codice_pagamento '.
152  'FROM scadenze '.
153  'INNER JOIN modalita_pagamento ON modalita_pagamento.id = scadenze.id_modalita_pagamento '.
154  'WHERE scadenze.id_documento = ? ',
155  array(
156  array( 's' => $id )
157  )
158  );
159 
160  // totali
161  $r['tot'] = array(
162  'importo_lordo_totale' => 0
163  );
164 
165  // calcoli per riga
166  foreach( $r['righe'] as &$riga ) {
167  $r['tot']['importo_lordo_totale'] += $riga['importo_lordo_totale'];
168  }
169 
170  // formattazioni finali
171  foreach( $r['righe'] as &$riga ) {
172  $riga['data_standard'] = $riga['data'];
173  $riga['data'] = strftime( '%d/%m/%Y', strtotime( $riga['data'] ) );
174  $riga['testo'] = 'pagamento tramite ' . $riga['modalita_pagamento'] . ' ' .
175  'per ' . $riga['nome'];
176  }
177 
178  // debug
179  // header( 'Content-type: text/plain;' );
180  // die( 'risultato -> ' . print_r( $r, true ) );
181 
182  // valore di ritorno
183  return $r;
184 
185  }
186 
187 ?>
docAmministrativiGetRighe( $id)
docAmministrativiGetScadenze( $id)
mysqlQuery( $c, $q, $p=false, &$e=array())
$cf['ricerca']['template']
Definition: _030.common.php:7
$r
Definition: _osm.php:25