Esportare scadenze RiBa in standard CBI

Conosci dei gestionali o cerchi un prodotto per la tua azienda? Scrivi in questo forum

Moderatore: Moderatori

usit86
Messaggi: 16
Iscritto il: sabato 12 marzo 2005, 1:00

Esportare scadenze RiBa in standard CBI

Messaggio da usit86 » sabato 12 gennaio 2013, 18:54

Ho creato un gestionale per la mia attività dove ho risolto (con molto aiuto da questo forum) quasi tutti i problemi che mi si sono presentati. L'unico "problema" che ancora non riesco a risolvere riguarda la creazione di un file di testo in standard CBI da poter inviare via home banking per le scadenze con pagamento RiBa. Se qualcuno ha una soluzione o una dritta ne sarei molto grato, accetto anche soluzioni di sviluppatori da poter integrare al mio database (ovviamente dietro giusta ricompensa).

gozzi
Messaggi: 700
Iscritto il: giovedì 25 marzo 2004, 1:00
Località: Torino

Re: Esportare scadenze RiBa in standard CBI

Messaggio da gozzi » sabato 12 gennaio 2013, 23:27

Dovrò affrontare lo stesso problema anche io entro la fine del mese:
al momento ho scaricato il manuale con le specifiche dello standard ma gli ho dato poco più di un'occhiata veloce.
Ti farò sapere non appena inizierò a preoccuparmene in modo da poterci scambiare opinioni ;)
FMPA 12- Win e OsX

usit86
Messaggi: 16
Iscritto il: sabato 12 marzo 2005, 1:00

Re: Esportare scadenze RiBa in standard CBI

Messaggio da usit86 » domenica 13 gennaio 2013, 18:17

Ti ringrazio per il tuo interesse... fammi sapere se risolvi in qualche modo.

Sicuramente qualcuno nel forum ha già affrontato e risolto (spero) questo problema e ci potrà dare una mano.

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Re: Esportare scadenze RiBa in standard CBI

Messaggio da stregatto » lunedì 14 gennaio 2013, 10:47

non è nulla di complicato, solo molto noioso. l'unica cosa che può infastidire è l'acapo (di solito su mac). si tratta semplicemente di prendere le specifiche e seguirle.

.g.

usit86
Messaggi: 16
Iscritto il: sabato 12 marzo 2005, 1:00

Re: Esportare scadenze RiBa in standard CBI

Messaggio da usit86 » lunedì 14 gennaio 2013, 13:32

Grazie Stregatto,

So che non ti piace dare la "pappa fatta", e questo lo condivido in quanto ho imparato ad usare quel poco che conosco di FMP facendo esperimenti in prima persona e leggendo quanti più post potevo. Potresti magari semplicemente instradarmi per la giusta via con la tua consueta ma efficacissima sintesi?

Grazie in anticipo!

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Re: Esportare scadenze RiBa in standard CBI

Messaggio da stregatto » lunedì 14 gennaio 2013, 16:20

parti da: http://www.querciacb.info/it-IT/standar ... cbiit.html

ci sono le specifivhe dei file da realizzare…

.g.

gozzi
Messaggi: 700
Iscritto il: giovedì 25 marzo 2004, 1:00
Località: Torino

Re: Esportare scadenze RiBa in standard CBI

Messaggio da gozzi » martedì 22 gennaio 2013, 14:41

Ho iniziato oggi a sviluppare il file che mi servirà per inviare le Ri.Ba alla banca ed effettivamente è una bella palla...

Ho deciso di creare 3 tabelle:

Riba_flussi -> Riba -> Riba_disposizioni

Ogni flusso Riba conterrà n. Riba ed ogni riba conterrà le 9 righe (riba_disposizioni) che dovranno essere inviate (1 di testa, 1 di coda e 7 di dati)

Molti campi sono duplicati più volte, molti altri sono fissi, tutti sono a lunghezza fissa di 120 caratteri.

Per chi lo avesse già fatto la struttura è simile a quella delle lettere di vettura di Bartolini

Posterò nei prossimi gg degli esempi pratici
FMPA 12- Win e OsX

usit86
Messaggi: 16
Iscritto il: sabato 12 marzo 2005, 1:00

Re: Esportare scadenze RiBa in standard CBI

Messaggio da usit86 » martedì 22 gennaio 2013, 18:17

Grazie Gozzi

Attendo fiducioso il tuo esempio per studiarlo ed adattarlo alla mia soluzione!

gozzi
Messaggi: 700
Iscritto il: giovedì 25 marzo 2004, 1:00
Località: Torino

Re: Esportare scadenze RiBa in standard CBI

Messaggio da gozzi » giovedì 24 gennaio 2013, 15:52

Ho finito la parte più pallosa, quindi quella di definire i campi secondo lo standard.
Di seguito i codici che potrai utilizzare nel tuo file: ovviamente dovrai valorizzare tutte le variabili e poi ti toccherà la parte più divertente... inserirlo nel tuo DB ;)

Io ho creato uno script che imposta con un loop i record in sequenza come richiede lo standard.

Ogni flusso riba (il file txt che invierai alla banca) è composto da n disposizioni.
Ogni disposizione è composta a sua volta da 7 record.
L'insieme di tutti i record ottenuti dovrà iniziare con un record di testa "IB" ed un record di coda "EF"

I record di testa e coda sono così composti:

Record di testa (IB)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso IB*/                                  "IB"  & 
/* 4-8- codice Sia mittente*/                            Sinistra($codice_mittente &"     ";5) &
/* 9-13 - ABI ricevente/debitore */                  Sinistra($abi_debitore &"     ";5)  & 
/* 14-19 - data creazione GGMMAA*/              Sinistra($data_creazione & "      ";6)  & 
/* 20-39 - nome supporto/nome file*/              Sinistra($nome_file & "                    ";20)  & 
/* 40-45 - campo a disposizione */                   Sinistra($campo_disponibile &"      ";6)  & 
/* 46-104 - filler/blank*/                                   "                                                           "  & 

/* 105-111 Qualificatori di flusso */
/* 105 - tipo flusso */                                        Sinistra($tipo_flusso &" ";1) & 
/* 106 - qualificatore flusso */                          Sinistra($qualificatore_flusso &" ";1) &    /* Se valorizzato deve assumenre il valore fisso $ */
/* 107-111 - soggetto veicolatore */                Sinistra($soggetto_veicolatore &"     ";5) & 
/* 112-113 - filler/blank */                                "  "  & 
/* 114 - codice divisa*/                                     "E" &
/* 115 - filler/blank */                                       " "  & 
/* 116-120 - campo non disponibile */              "     "
Record di coda (EF)

Codice: Seleziona tutto

/* 1 - filler/blank*/                                                      " "  &
/* 2-3 - codice fisso EF*/                                  "EF"  & 
/* 4-8- codice Sia mittente*/                            Sinistra($codice_mittente &"     ";5) &
/* 9-13 - ABI ricevente/debitore */                  Sinistra($abi_debitore &"     ";5)  & 
/* 14-19 - data creazione GGMMAA*/              Sinistra($data_creazione & "      ";6)  & 
/* 20-39 - nome supporto/nome file*/              Sinistra($nome_file & "                    ";20)  & 
/* 40-45 - campo a disposizione */                   Sinistra($campo_disponibile &"      ";6)  & 
/* 46-52 - numero disposizioni*/                       Destra("0000000" & $numero_disposizioni;7) & 
/* 53-67 - importo toale in centesimi €*/          Destra("000000000000000" & $totale_importi;15) & 
/* 68-82 - valorizzato con 15 zeri */                 "000000000000000" & 
/* 83-89 - numero record complessivi*/           Destra("0000000" & $numero_record;7) & 
/* 90-113 - filler/blank */                                  "                        "  & 
/* 114 - codice divisa*/                                     "E" &
/* 115-120 - campo non disponibile */              "      "
Ogni disposizione è a sua volta divisa in 7 record che vanno formattati come vedi di seguito:

Riga 1 (14)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso 14*/                                  "14"  & 
/* 4-10- progressivo*/                                      Destra("0000000" & $progressivo;7)  & 

/* 11-22 - filler/blank*/                                     "           "  & 
/* 23-28 - data pagamento GGMMAA*/            Sinistra($data_pagamento & "      ";6)  & 
/* 29-33 -causale, valore fisso 30000*/           "30000" &
/* 33-46 - importo in centesimi*/                       Destra("00000000000000" & $importo;14)  &
/* 47 - segno '-'*/                                              "-"  & 

/* Coordinate banca assuntrice (mittente) */
/* 48-52 - ABI */                                               Sinistra($abi_mittente &"     ";5) & 
/* 53-57 - CAB */                                              Sinistra($cab_mittente &"     ";5) & 
/* 58-69 - Numero C/C */                                 Destra("            " & $numero_conto_mittente;12)  & 

/* Coordinate banca Domiciliataria (debitore) */
/* 70-74 - ABI */                                               Sinistra($abi_debitore &"     ";5)  & 
/* 75-79 - CAB */                                              Sinistra($cab_debitore &"     ";5)  & 
/* 80-91 - filler/blank */                                    "            "  & 

/* Coordinate azienda creditrice (mittente) */ 
/* 92-96 - codice azienda */                             Sinistra($codice_mittente &"     ";5) &
/* 97 - valore fisso '4' */                                   "4"  & 
/* 98-113 - codice cliente debitore*/                Destra("0000000000000000" & $id_cliente;16)  &
/* 114 - flag tipo debitore 
           (se è una banca indicare B)*/                Sinistra($flag_tipo_debitore & " ";1)  &
/* 115-119 - filler/blank */                                "     "  &
/* 120 - codice divisa*/                                     "E"
Riga 2(20)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso 20*/                                  "20"  & 
/* 4-10- progressivo*/                                      Destra("0000000" & $progressivo;7)  & 

/* Descrizione creditore (mittente), suddivisa in 4 segmenti alfanumerici di 24 caratteri ciascuno */
/* 11-34 - 1° segmento*/                                  
/* 35-38 - 2° segmento*/                                  
/* 59-82 - 3° segmento*/                                  
/* 83-106 - 4° segmento*/                               Sinistra("                                                                                                " & $descrizione_mittente;96) & 

/* 107-120 - filler/blank */                                "              "
Riga 3 (30)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso 30*/                                  "30"  & 
/* 4-10- progressivo*/                                      Destra("0000000" & $progressivo;7)  & 

/* Descrizione debitore (destinatario), suddivisa in 2 segmenti alfanumerici di 30 caratteri ciascuno */
/* 11-40 - 1° segmento*/                                  
/* 41-70 - 2° segmento*/                                 Sinistra("                                                            " & $descrizione_mittente;60) & 
/* 71-86 - codice fiscale debitore*/                  Sinistra("                " & $codice_fiscale_debitore;16)  & 
/* 87-120 - filler/blank */                                 "                                  "
Riga 4(40)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso 40*/                                  "40"  & 
/* 4-10- progressivo*/                                      Destra("0000000" & $progressivo;7)  & 

/* Indirizzo del debitore */
/* 11-40 - indirizzo*/                                         Sinistra($indirizzo_debitore & "                              ";30) &
/* 41-45 - cap*/                                                Sinistra($cap_debitore & "     " ;5) &
/* 46-70 - comune e sigla provincia*/               Sinistra($comune_debitore & "                       " ;23) & Sinistra($provincia_debitore & "  ";2)  & 
/* 71-120 -Banca/Sportello domiciliataria*/      Sinistra($banca_debitore & "                                                  " ;50)
Riga 5 (50)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso 50*/                                  "50"  & 
/* 4-10- progressivo*/                                      Destra("0000000" & $progressivo;7)  & 

/* Riferimenti al debito (es Fatturan. del), suddivisi in 2 segmenti alfanumerici di 40 caratteri ciascuno */
/* 11-50 - 1° segmento*/                                  
/* 51-90 - 2° segmento*/                                 Sinistra($descrizione_mittente & "                                                                                ";80) & 
/* 91-100 - filler/blank */                                 "          " &
/* 101-116 - codice fiscale creditore*/             Sinistra($codice_fiscale_mittente & "                ";16)  & 
/* 117-120 - filler/blank */                               "    "
Riga 6 (51)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso 51*/                                  "51"  & 
/* 4-10- progressivo*/                                      Destra("0000000" & $progressivo;7)  & 

/* 11-20 - numero ricevuta*/                           Destra("0000000000" & $id_disposizione;10)  & 
/* 21-40 - denom. abbreviata creditore*/        Sinistra($denominazione_abbreviata_mittente & "                    ";20)  & 

/* Bollo virtuale, tutti i valori sono facoltativi ed intendono l'intendenza di finanza che ha concesso ll'autorizzazione */
/* 41-55 - provincia*/                                        Sinistra($provincia_intendenza_finanza & "               ";15)  & 
/* 56-65 - numero autorizzazione*/                  Sinistra($n_autorizzazione_intendenza_finanza & "          ";10)  & 
/* 66-71 - data autorizzazione GGMMAA*/       Sinistra($data_autorizzazione_intendenza_finanza & "      ";6)  & 
/* 72-120 - filler/blank */                                   "                                                 "
Riga 7 (70)

Codice: Seleziona tutto

/* 1-blank*/                                                      " "  &
/* 2-3 - codice fisso 70*/                                  "70"  & 
/* 4-10- progressivo*/                                      Destra("0000000" & $progressivo;7)  & 

/* 11-88 - filler/blank */                                   "                                                                              "  & 
/* 89-100 - indicatori di circuito*/                     Sinistra($indicatori_circuito & "            ";12)  & 

/* 101-103 Indicatori richiesta di incasso*/                                      
/* 101 - flag tipo documento debitore*/          Sinistra($flag_tipo_documento & " ";1)  & 
/* 102 - flag richiesta esito*/                           Sinistra($flag_richiesta_esito & " ";1)  & 
/* 103 - flag stampa avviso*/                          Sinistra($flag_stampa_avviso & " ";1)  & 
/*104-120 - chiavi di controllo*/                      Sinistra($chiavi_controllo & "                 ";17)
Se copi ed incolli i codici che ho inserito sopra anche tutti gli spazi "andranno a posto" e vedrai la quotatura a fianco ad ogni calcolo.

Per tua comodità in fase di sviluppo creati un formato con caratteri non proporzionali e piuttosto grandi...
FMPA 12- Win e OsX

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Re: Esportare scadenze RiBa in standard CBI

Messaggio da stregatto » venerdì 25 gennaio 2013, 8:52

gozzi, un piccolo trucco:
usando let puoi definire inizialmente una serie di spazi, quindi invece di reinserirli ogni volta potrai usare sempre e solo la variabile dichiarata :)

.g.

Rispondi