1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-01-01 18:49:18 +01:00

Migliorie minori esportazione Ri.Ba.

This commit is contained in:
Pek5892 2023-01-16 16:02:28 +01:00
parent 382173c2b2
commit 3588ed70ca
7 changed files with 66 additions and 35 deletions

View File

@ -29,7 +29,7 @@ abstract class Elemento
/** /**
* @return array * @return array
*/ */
abstract public function toCbiFormat(); abstract public function toRibaAbiCbiFormat();
/** /**
* @param string $string * @param string $string

View File

@ -6,15 +6,16 @@ namespace Plugins\PresentazioniBancarie\Cbi;
* Classe per gestire l'intestazione del RiBa. * Classe per gestire l'intestazione del RiBa.
* *
* @property int $abi * @property int $abi
* @property int $soggetto_veicolatore
* @property int $cab * @property int $cab
* @property string $conto * @property string $conto
* @property string $data_creazione * @property string $data_creazione
* @property string $nome_supporto * @property string $nome_supporto
* @property string $codice_divisa * @property string $codice_divisa
* @property string $ragione_soc1_creditore * @property string $ragione_sociale_creditore
* @property string $ragione_soc2_creditore
* @property string $indirizzo_creditore * @property string $indirizzo_creditore
* @property string $cap_citta_prov_creditore * @property string $citta_creditore
* @property string $partita_iva_o_codice_fiscale_creditore
* @property string $identificativo_creditore * @property string $identificativo_creditore
* @property string $codice_sia * @property string $codice_sia
* @property bool $eol * @property bool $eol
@ -27,6 +28,13 @@ class Intestazione extends Elemento
* @var int Valore numerico di 5 cifre * @var int Valore numerico di 5 cifre
*/ */
protected $abi; protected $abi;
/**
* Codice ABI del soggetto veicolatore.
*
* @var int Valore numerico di 5 cifre
*/
protected $soggetto_veicolatore;
/** /**
* Codice CAB della banca del creditore. * Codice CAB della banca del creditore.
* *
@ -54,11 +62,7 @@ class Intestazione extends Elemento
/** /**
* @var string Valore alfanumerico di 24 cifre * @var string Valore alfanumerico di 24 cifre
*/ */
protected $ragione_soc1_creditore; protected $ragione_sociale_creditore;
/**
* @var string Valore alfanumerico di 24 cifre
*/
protected $ragione_soc2_creditore;
/** /**
* @var string Valore alfanumerico di 24 cifre * @var string Valore alfanumerico di 24 cifre
*/ */
@ -66,7 +70,11 @@ class Intestazione extends Elemento
/** /**
* @var string Valore alfanumerico di 24 cifre * @var string Valore alfanumerico di 24 cifre
*/ */
protected $cap_citta_prov_creditore; protected $citta_creditore;
/**
* @var string Valore alfanumerico di 24 cifre
*/
protected $partita_iva_o_codice_fiscale_creditore;
/** /**
* @var string Valore alfanumerico di 16 cifre, opzionale (default "") * @var string Valore alfanumerico di 16 cifre, opzionale (default "")
*/ */
@ -80,7 +88,7 @@ class Intestazione extends Elemento
*/ */
protected $eol = true; protected $eol = true;
public function toCbiFormat() public function toRibaAbiCbiFormat()
{ {
return [ return [
$this->abi, $this->abi,
@ -89,12 +97,13 @@ class Intestazione extends Elemento
$this->data_creazione, $this->data_creazione,
$this->nome_supporto, $this->nome_supporto,
$this->codice_divisa, $this->codice_divisa,
$this->ragione_soc1_creditore, $this->ragione_sociale_creditore,
$this->ragione_soc2_creditore,
$this->indirizzo_creditore, $this->indirizzo_creditore,
$this->cap_citta_prov_creditore, $this->citta_creditore,
$this->partita_iva_o_codice_fiscale_creditore,
$this->identificativo_creditore, $this->identificativo_creditore,
$this->codice_sia, $this->codice_sia,
$this->soggetto_veicolatore,
$this->eol, $this->eol,
]; ];
} }

View File

@ -6,10 +6,10 @@ namespace Plugins\PresentazioniBancarie\Cbi\Records;
* Classe dedicata alla gestione dei dati per il record 20 del formato CBI. * Classe dedicata alla gestione dei dati per il record 20 del formato CBI.
* *
* @property string numero_progressivo Numero progressivo della ricevuta, uguale a quello indicato per il record 14 della disposizione. * @property string numero_progressivo Numero progressivo della ricevuta, uguale a quello indicato per il record 14 della disposizione.
* @property string descrizione_creditore_1 Descrizione del creditore (24 caratteri alfanumerici). * @property string descrizione_creditore_1 Descrizione del creditore (24 caratteri alfanumerici): ragione sociale
* @property string descrizione_creditore_2 Descrizione del creditore (24 caratteri alfanumerici). * @property string descrizione_creditore_2 Descrizione del creditore (24 caratteri alfanumerici): indirizzo
* @property string descrizione_creditore_3 Descrizione del creditore (24 caratteri alfanumerici). * @property string descrizione_creditore_3 Descrizione del creditore (24 caratteri alfanumerici): citta
* @property string descrizione_creditore_4 Descrizione del creditore (24 caratteri alfanumerici). * @property string descrizione_creditore_4 Descrizione del creditore (24 caratteri alfanumerici): codice fiscale o partita iva -> allineamento a dx (vedi http://www.m8k.org/tracciatocbinet)
*/ */
class Record20 extends BaseRecord class Record20 extends BaseRecord
{ {
@ -35,7 +35,7 @@ class Record20 extends BaseRecord
'tipo' => 'string', 'tipo' => 'string',
], ],
'descrizione_creditore_4' => [ 'descrizione_creditore_4' => [
'inizio' => 83, 'inizio' => 91,
'dimensione' => 24, 'dimensione' => 24,
'tipo' => 'string', 'tipo' => 'string',
], ],

View File

@ -12,7 +12,7 @@ namespace Plugins\PresentazioniBancarie\Cbi\Records;
* @property string campo_a_disposizione Campo a disposizione dell'Azienda codice_sia_mittente. * @property string campo_a_disposizione Campo a disposizione dell'Azienda codice_sia_mittente.
* @property string tipo_flusso Assume il valore: "1" = operazioni generate nellambito di attività Market Place. * @property string tipo_flusso Assume il valore: "1" = operazioni generate nellambito di attività Market Place.
* @property string qualificatore_flusso Assume il valore fisso "$". * @property string qualificatore_flusso Assume il valore fisso "$".
* @property string soggetto_veicolare Se i due campi tipo_flusso e qualificatore_flusso sono valorizzati con i valori previsti, deve essere indicato il codice ABI della Banca Gateway MP. * @property string soggetto_veicolatore Se i due campi tipo_flusso e qualificatore_flusso sono valorizzati con i valori previsti, deve essere indicato il codice ABI della Banca Gateway MP.
* @property string codice_divisa Assume il valore fisso "E" (Euro). * @property string codice_divisa Assume il valore fisso "E" (Euro).
* @property string centro_applicativo Questo campo è di interesse soltanto della tratta tra Centri Applicativi. Codice ABI del Centro Applicativo destinatario del supporto. * @property string centro_applicativo Questo campo è di interesse soltanto della tratta tra Centri Applicativi. Codice ABI del Centro Applicativo destinatario del supporto.
*/ */
@ -52,10 +52,9 @@ class RecordIB extends BaseRecord
'qualificatore_flusso' => [ 'qualificatore_flusso' => [
'inizio' => 106, 'inizio' => 106,
'dimensione' => 1, 'dimensione' => 1,
'tipo' => 'constant', 'tipo' => 'string',
'valore' => '$',
], ],
'soggetto_veicolare' => [ 'soggetto_veicolatore' => [
'inizio' => 107, 'inizio' => 107,
'dimensione' => 5, 'dimensione' => 5,
'tipo' => 'string', 'tipo' => 'string',

View File

@ -93,8 +93,11 @@ class RiBa
$ib->nome_supporto = $intestazione->nome_supporto; $ib->nome_supporto = $intestazione->nome_supporto;
$ib->data_creazione = $intestazione->data_creazione; $ib->data_creazione = $intestazione->data_creazione;
if ( $intestazione->soggetto_veicolatore != "" ) {
$ib->tipo_flusso = 1; $ib->tipo_flusso = 1;
$ib->soggetto_veicolare = $intestazione->abi; $ib->qualificatore_flusso = '$';
}
$ib->soggetto_veicolatore = $intestazione->soggetto_veicolatore;
$contenuto .= $ib->toCBI().$eol; $contenuto .= $ib->toCBI().$eol;
// Iterazione tra le ricevute interne al RiBa // Iterazione tra le ricevute interne al RiBa
@ -123,10 +126,10 @@ class RiBa
// Record 20 // Record 20
$r20 = new Record20(); $r20 = new Record20();
$r20->numero_progressivo = $progressivo; $r20->numero_progressivo = $progressivo;
$r20->descrizione_creditore_1 = $intestazione->ragione_soc1_creditore; $r20->descrizione_creditore_1 = $intestazione->ragione_sociale_creditore;
$r20->descrizione_creditore_2 = $intestazione->ragione_soc2_creditore; $r20->descrizione_creditore_2 = $intestazione->indirizzo_creditore;
$r20->descrizione_creditore_3 = $intestazione->indirizzo_creditore; $r20->descrizione_creditore_3 = $intestazione->citta_creditore;
$r20->descrizione_creditore_4 = $intestazione->cap_citta_prov_creditore; $r20->descrizione_creditore_4 = $intestazione->partita_iva_o_codice_fiscale_creditore;
$contenuto .= $r20->toCBI().$eol; $contenuto .= $r20->toCBI().$eol;
// Record 30 // Record 30
@ -159,7 +162,7 @@ class RiBa
$r51 = new Record51(); $r51 = new Record51();
$r51->numero_progressivo = $progressivo; $r51->numero_progressivo = $progressivo;
$r51->numero_ricevuta = $ricevuta->numero_ricevuta; $r51->numero_ricevuta = $ricevuta->numero_ricevuta;
$r51->denominazione_creditore = $intestazione->ragione_soc1_creditore; $r51->denominazione_creditore = $intestazione->ragione_sociale_creditore;
$contenuto .= $r51->toCBI().$eol; $contenuto .= $r51->toCBI().$eol;
// Record 70 // Record 70
@ -183,4 +186,24 @@ class RiBa
return $contenuto; return $contenuto;
} }
public function asRibaAbiCbi()
{
$formato_intestazione = $this->intestazione->toRibaAbiCbiFormat();
// Trasformazione delle ricevute nel formato relativo
$formato_ricevute = [];
foreach ($this->ricevute as $ricevuta) {
$formato_ricevute[] = $ricevuta->toRibaAbiCbiFormat();
}
// Eccezione in caso di assenza di ricevute interne
if (empty($formato_ricevute)) {
throw new InvalidArgumentException();
}
$cbi = new RibaAbiCbi();
return $cbi->creaFile($formato_intestazione, $formato_ricevute);
}
} }

View File

@ -90,7 +90,7 @@ class Ricevuta extends Elemento
*/ */
protected $descrizione_origine; protected $descrizione_origine;
public function toCbiFormat() public function toRibaAbiCbiFormat()
{ {
return [ return [
$this->numero_ricevuta, $this->numero_ricevuta,

View File

@ -87,10 +87,10 @@ class Gestore
$intestazione->cab = $cab_assuntrice; $intestazione->cab = $cab_assuntrice;
$intestazione->data_creazione = $data->format('dmy'); $intestazione->data_creazione = $data->format('dmy');
$intestazione->nome_supporto = $supporto; $intestazione->nome_supporto = $supporto;
$intestazione->cap_citta_prov_creditore = strtoupper($this->azienda['cap'].' '.$this->azienda['citta'].' '.$this->azienda['provincia']); $intestazione->citta_creditore = strtoupper($this->azienda['cap'].' '.$this->azienda['citta'].' '.$this->azienda['provincia']);
$intestazione->ragione_soc1_creditore = strtoupper($this->azienda->ragione_sociale); $intestazione->ragione_sociale_creditore = strtoupper($this->azienda->ragione_sociale);
$intestazione->indirizzo_creditore = strtoupper($this->azienda['indirizzo']); $intestazione->indirizzo_creditore = strtoupper($this->azienda['indirizzo']);
$intestazione->identificativo_creditore = !empty($this->azienda->partita_iva) ? $this->azienda->partita_iva : $this->azienda->codice_fiscale; $intestazione->partita_iva_o_codice_fiscale_creditore = !empty($this->azienda->partita_iva) ? $this->azienda->partita_iva : $this->azienda->codice_fiscale;
$this->riba = new RiBa($intestazione); $this->riba = new RiBa($intestazione);
} }