2017-09-08 17:03:47 +02:00
< ? php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager : il software gestionale open source per l ' assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright ( C ) DevCode s . r . l .
2020-09-07 15:04:06 +02:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
2017-09-08 17:03:47 +02:00
include_once __DIR__ . '/../../core.php' ;
2024-02-05 17:07:33 +01:00
use Modules\Anagrafiche\Nazione ;
2019-07-12 12:40:13 +02:00
use Modules\DDT\DDT ;
2024-02-08 13:10:46 +01:00
use Modules\Pagamenti\Pagamento ;
2017-09-08 17:03:47 +02:00
2019-07-12 12:40:13 +02:00
$documento = DDT :: find ( $id_record );
2023-12-06 15:06:49 +01:00
$d_qta = ( int ) setting ( 'Cifre decimali per quantità in stampa' );
$d_importi = ( int ) setting ( 'Cifre decimali per importi in stampa' );
$d_totali = ( int ) setting ( 'Cifre decimali per totali in stampa' );
2023-12-06 10:06:36 +01:00
2019-07-12 12:40:13 +02:00
$id_cliente = $documento [ 'idanagrafica' ];
2019-07-11 15:05:36 +02:00
$id_sede = $record [ 'idsede_partenza' ];
2024-01-26 14:48:13 +01:00
$id_azienda = setting ( 'Azienda predefinita' );
2017-09-08 17:03:47 +02:00
2024-02-08 13:10:46 +01:00
$pagamento = Pagamento :: find ( $documento [ 'idpagamento' ]);
2019-07-12 12:40:13 +02:00
$causale = $dbo -> fetchOne ( 'SELECT * FROM dt_causalet WHERE id = ' . prepare ( $documento [ 'idcausalet' ]));
$porto = $dbo -> fetchOne ( 'SELECT * FROM dt_porto WHERE id = ' . prepare ( $documento [ 'idporto' ]));
2024-02-27 09:59:44 +01:00
$aspetto_beni = $dbo -> fetchOne ( 'SELECT * FROM `dt_aspettobeni` LEFT JOIN `dt_aspettobeni_lang` ON (`dt_aspettobeni`.`id`=`dt_aspettobeni_lang`.`id_record` AND `dt_aspettobeni_lang`.`id_lang`=' . prepare ( setting ( 'Lingua' )) . ') WHERE `dt_aspettobeni`.`id` = ' . prepare ( $documento [ 'idaspettobeni' ]));
2019-07-12 12:40:13 +02:00
$spedizione = $dbo -> fetchOne ( 'SELECT * FROM dt_spedizione WHERE id = ' . prepare ( $documento [ 'idspedizione' ]));
$vettore = $dbo -> fetchOne ( 'SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = ' . prepare ( $documento [ 'idvettore' ]));
2024-02-26 15:53:39 +01:00
$tipo_doc = $documento -> tipo -> name ;
2019-07-12 12:40:13 +02:00
if ( empty ( $documento [ 'numero_esterno' ])) {
2023-05-18 16:11:27 +02:00
$numero = 'pro-forma ' . $documento [ 'numero' ];
2019-07-12 12:40:13 +02:00
$tipo_doc = tr ( 'DDT pro-forma' , [], [ 'upper' => true ]);
2017-12-20 14:05:14 +01:00
} else {
2019-07-12 12:40:13 +02:00
$numero = ! empty ( $documento [ 'numero_esterno' ]) ? $documento [ 'numero_esterno' ] : $documento [ 'numero' ];
2017-09-08 17:03:47 +02:00
}
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
$destinazione = '' ;
2019-07-12 12:40:13 +02:00
if ( ! empty ( $documento [ 'idsede_destinazione' ])) {
2021-03-30 11:05:02 +02:00
$rsd = $dbo -> fetchArray ( 'SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica=' . prepare ( $id_cliente ) . ' AND id=' . prepare ( $documento [ 'idsede_destinazione' ]));
2017-09-08 17:03:47 +02:00
2018-05-24 18:51:21 +02:00
if ( ! empty ( $rsd [ 0 ][ 'nomesede' ])) {
$destinazione .= $rsd [ 0 ][ 'nomesede' ] . '<br/>' ;
}
2017-09-08 17:03:47 +02:00
if ( ! empty ( $rsd [ 0 ][ 'indirizzo' ])) {
$destinazione .= $rsd [ 0 ][ 'indirizzo' ] . '<br/>' ;
}
if ( ! empty ( $rsd [ 0 ][ 'indirizzo2' ])) {
$destinazione .= $rsd [ 0 ][ 'indirizzo2' ] . '<br/>' ;
}
if ( ! empty ( $rsd [ 0 ][ 'cap' ])) {
$destinazione .= $rsd [ 0 ][ 'cap' ] . ' ' ;
}
if ( ! empty ( $rsd [ 0 ][ 'citta' ])) {
$destinazione .= $rsd [ 0 ][ 'citta' ];
}
if ( ! empty ( $rsd [ 0 ][ 'provincia' ])) {
$destinazione .= ' (' . $rsd [ 0 ][ 'provincia' ] . ')' ;
}
2020-10-04 10:13:23 +02:00
if ( ! empty ( $rsd [ 0 ][ 'id_nazione' ])) {
2024-02-05 17:07:33 +01:00
$nazione = Nazione :: find ( $rsd [ 0 ][ 'id_nazione' ]);
2020-10-16 08:31:10 +02:00
if ( $nazione [ 'iso2' ] != 'IT' ) {
2024-02-05 17:07:33 +01:00
$destinazione .= ' - ' . $nazione -> name . '<br />' ;
2020-10-04 10:13:23 +02:00
}
}
2021-03-30 11:05:02 +02:00
if ( ! empty ( $rsd [ 0 ][ 'telefono' ])) {
$destinazione .= 'Tel: ' . $rsd [ 0 ][ 'telefono' ] . '<br />' ;
}
if ( ! empty ( $rsd [ 0 ][ 'cellualre' ])) {
$destinazione .= 'Cell: ' . $rsd [ 0 ][ 'cellulare' ];
}
2017-09-08 17:03:47 +02:00
}
2024-01-26 14:48:13 +01:00
// Leggo i dati della destinazione (se 0=sede legale, se!=altra sede da leggere da tabella an_sedi)
$partenza = '' ;
if ( ! empty ( $documento [ 'idsede_partenza' ])) {
$rsd = $dbo -> fetchArray ( 'SELECT (SELECT codice FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS codice, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=an_sedi.idanagrafica) AS ragione_sociale, nomesede, indirizzo, indirizzo2, cap, citta, provincia, piva, codice_fiscale, id_nazione, telefono, cellulare FROM an_sedi WHERE idanagrafica=' . prepare ( $id_azienda ) . ' AND id=' . prepare ( $documento [ 'idsede_partenza' ]));
if ( ! empty ( $rsd [ 0 ][ 'nomesede' ])) {
$partenza .= $rsd [ 0 ][ 'nomesede' ] . '<br/>' ;
}
if ( ! empty ( $rsd [ 0 ][ 'indirizzo' ])) {
$partenza .= $rsd [ 0 ][ 'indirizzo' ] . '<br/>' ;
}
if ( ! empty ( $rsd [ 0 ][ 'indirizzo2' ])) {
$partenza .= $rsd [ 0 ][ 'indirizzo2' ] . '<br/>' ;
}
if ( ! empty ( $rsd [ 0 ][ 'cap' ])) {
$partenza .= $rsd [ 0 ][ 'cap' ] . ' ' ;
}
if ( ! empty ( $rsd [ 0 ][ 'citta' ])) {
$partenza .= $rsd [ 0 ][ 'citta' ];
}
if ( ! empty ( $rsd [ 0 ][ 'provincia' ])) {
$partenza .= ' (' . $rsd [ 0 ][ 'provincia' ] . ')' ;
}
if ( ! empty ( $rsd [ 0 ][ 'id_nazione' ])) {
2024-02-05 17:07:33 +01:00
$nazione = Nazione :: find ( $rsd [ 0 ][ 'id_nazione' ]);
2024-01-26 14:48:13 +01:00
if ( $nazione [ 'iso2' ] != 'IT' ) {
2024-02-05 17:07:33 +01:00
$partenza .= ' - ' . $nazione -> name . '<br />' ;
2024-01-26 14:48:13 +01:00
}
}
if ( ! empty ( $rsd [ 0 ][ 'telefono' ])) {
$partenza .= 'Tel: ' . $rsd [ 0 ][ 'telefono' ] . '<br />' ;
}
if ( ! empty ( $rsd [ 0 ][ 'cellualre' ])) {
$partenza .= 'Cell: ' . $rsd [ 0 ][ 'cellulare' ];
}
}
2017-09-08 17:03:47 +02:00
// Sostituzioni specifiche
2017-09-08 18:19:39 +02:00
$custom = [
2017-09-15 15:03:27 +02:00
'tipo_doc' => $tipo_doc ,
2019-07-10 11:53:35 +02:00
'numero' => $numero ,
2019-07-12 12:40:13 +02:00
'data' => Translator :: dateToLocale ( $documento [ 'data' ]),
2024-02-08 13:10:46 +01:00
'pagamento' => $pagamento -> name ,
2017-09-08 17:03:47 +02:00
'c_destinazione' => $destinazione ,
2024-01-26 14:48:13 +01:00
'c_partenza' => $partenza ,
2019-07-12 12:40:13 +02:00
'aspettobeni' => $aspetto_beni [ 'descrizione' ],
'causalet' => $causale [ 'descrizione' ],
'porto' => $porto [ 'descrizione' ],
'n_colli' => ! empty ( $documento [ 'n_colli' ]) ? $documento [ 'n_colli' ] : '' ,
'spedizione' => $spedizione [ 'descrizione' ],
'vettore' => $vettore [ 'ragione_sociale' ],
2017-09-08 17:03:47 +02:00
];
2018-03-27 16:46:22 +02:00
// Accesso solo a:
// - cliente se è impostato l'idanagrafica di un Cliente
// - utente qualsiasi con permessi almeno in lettura sul modulo
// - admin
2019-07-12 12:40:13 +02:00
if (( Auth :: user ()[ 'gruppo' ] == 'Clienti' && $id_cliente != Auth :: user ()[ 'idanagrafica' ] && ! Auth :: admin ()) || Modules :: getPermission ( $documento -> module ) == '-' ) {
2021-02-18 18:48:44 +01:00
exit ( tr ( 'Non hai i permessi per questa stampa!' ));
2017-09-08 17:03:47 +02:00
}