Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function long of_invio_interfaccia_cdp_dati_fiscali (string vs_codice_distretto, string vs_codice_campo, datetime vdt_data_inizio, datetime vdt_data_fine, string vs_codice_campo_cdp_in_invio);/////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Object cndn522_controlli_finali_invio_cdp
- //
- // Function: of_invio_interfaccia_cdp_dati_fiscali
- //
- // Access: public
- //
- // Arguments: TYPE V/R NAME NOTE
- // --------------------------------------------------------------------------------------------
- // STRING V vs_codice_distretto Codice del distretto di cui è richiesto
- // l'invio dei dati fiscali alle tabelle di
- // interfaccia verso CDP
- // STRING V vs_codice_campo Codice del campo di cui è richiesto
- // l'invio dei dati fiscali alle tabelle di
- // interfaccia verso CDP
- // DATETIME V vdt_data_inizio Data di inizio del periodo di riferimento
- // dei dati da inviare
- // DATETIME V vdt_data_fine Data di fine del periodo di riferimento
- // dei dati da inviare
- // STRING V vs_codice_campo_cdp_in_invio
- // Codice del campo della datawindow di invio chiusure fiscali
- // del quale è in corso l'invio a CDP dei dati delle chiusure fiscali
- //
- // Returns: LONG
- // --------------------------------------------------------------------------------------------
- // valore = 1 : inserimento nelle tabelle di frontiera verso CDP
- // dei dati fiscali del campo eseguito con successo;
- // valore < 0 : inserimento nelle tabelle di frontiera verso CDP
- // dei dati fiscali del campo fallito.
- // In particolare i codici di errore indicano:
- //
- // Purpose: La funzione effettua l'inserimento nelle tabelle di frontiera
- // verso CDP dei dati fiscali del campo relativi al periodo richiesto.
- //
- // Log:
- // DATE WHO WHAT
- // ---------- ----- -------------------------------------------
- // 23/04/2007 RP Versione iniziale
- // 05/09/2007 MK Modifiche per gestione chiusure trimestrali
- /////////////////////////////////////////////////////////////////////////////////////////////////////////
- LONG ll_return_value = 1
- LONG i, j
- DATETIME ldt_data_tecnico_fiscale
- DECIMAL ld_mese_tecnico_fiscale
- xxxu021_data_store_base lds_cdp_dato_fisl_v028_src
- xxxu021_data_store_base lds_cdp_dtgl_fisl_v029_src
- LONG ll_righe_cdp_dato_fisl_v028_src
- LONG ll_righe_cdp_dtgl_fisl_v029_src
- xxxu021_data_store_base lds_cdp_dato_fisle_t020_dst
- xxxu021_data_store_base lds_cdp_dtgl_fisle_t019_dst
- LONG ll_righe_cdp_dato_fisle_t020_dst
- LONG ll_righe_cdp_dtgl_fisle_t019_dst
- STRING ls_codice_company
- DATETIME ldt_data_inizio, ldt_data_fine
- choose case vs_codice_distretto
- case GS_DISTR_GELA
- ls_codice_company = is_codice_company_enimed
- case GS_DISTR_PADANA
- ls_codice_company = is_codice_company_padana
- case GS_DISTR_ADRIATICA
- ls_codice_company = is_codice_company_adriatica
- case GS_DISTR_IONICA
- ls_codice_company = is_codice_company_ionica
- case GS_DISTR_RAVENNA
- ls_codice_company = is_codice_company_eni
- case GS_DISTR_VALDAGRI
- ls_codice_company = is_codice_company_eni
- end choose
- // Creo i datastore con i dati da trasmettere alle tabelle di frontiera verso CDP
- lds_cdp_dato_fisl_v028_src = CREATE xxxu021_data_store_base
- lds_cdp_dato_fisl_v028_src.DataObject = 'cndd522_ds_cdp_dato_fisl_v028'
- lds_cdp_dato_fisl_v028_src.SetTransObject( SQLCA )
- lds_cdp_dtgl_fisl_v029_src = CREATE xxxu021_data_store_base
- lds_cdp_dtgl_fisl_v029_src.DataObject = 'cndd522_ds_cdp_dtgl_fisl_v029'
- lds_cdp_dtgl_fisl_v029_src.SetTransObject( SQLCA )
- lds_cdp_dato_fisle_t020_dst = CREATE xxxu021_data_store_base
- lds_cdp_dato_fisle_t020_dst.DataObject = 'cndd522_ds_cdp_dato_fisle_t020'
- lds_cdp_dato_fisle_t020_dst.SetTransObject( SQLCA )
- lds_cdp_dtgl_fisle_t019_dst = CREATE xxxu021_data_store_base
- lds_cdp_dtgl_fisle_t019_dst.DataObject = 'cndd522_ds_cdp_dtgl_dato_fisle_t019'
- lds_cdp_dtgl_fisle_t019_dst.SetTransObject( SQLCA )
- // MK Modifica del 05/09/2007
- // Somma ii_anni_trim alle date della retrieve
- // Se non è trimestrale ii_anni_trim è = 0
- ldt_data_inizio = DateTime(Date(Year(Date(vdt_data_inizio)) + ii_anni_trim, &
- Month(Date(vdt_data_inizio)), &
- Day(Date(vdt_data_inizio))))
- ldt_data_fine = DateTime(Date(Year(Date(vdt_data_fine)) + ii_anni_trim, &
- Month(Date(vdt_data_fine)), &
- Day(Date(vdt_data_fine))))
- // MK Fine modifica del 05/09/2007
- // ----------------------------------------------------------------------------
- // Verifico di non avere errori durante le retrieve sui datastore appena creati
- // ----------------------------------------------------------------------------
- IF ll_return_value = 1 THEN
- // MK Modifica del 05/09/2007
- // ll_righe_cdp_dato_fisl_v028_src = lds_cdp_dato_fisl_v028_src.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
- ll_righe_cdp_dato_fisl_v028_src = lds_cdp_dato_fisl_v028_src.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
- // MK Fine modifica del 05/09/2007
- IF ll_righe_cdp_dato_fisl_v028_src < 0 THEN
- // se ho un errore nell'accesso alla tabella dei dati
- // delle chiusure fiscali da inviare alle tabelle di frontiera verso CDP
- // scrivo il fallimento nel log
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5201", &
- 5201, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- IF ll_return_value = 1 THEN
- // MK Modifica del 05/09/2007
- // ll_righe_cdp_dtgl_fisl_v029_src = lds_cdp_dtgl_fisl_v029_src.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
- ll_righe_cdp_dtgl_fisl_v029_src = lds_cdp_dtgl_fisl_v029_src.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
- // MK Fine modifica del 05/09/2007
- IF ll_righe_cdp_dtgl_fisl_v029_src < 0 THEN
- // se ho un errore nell'accesso alla tabella dei dati di dettaglio
- // delle chiusure fiscali da inviare alle tabelle di frontiera verso CDP
- // scrivo il fallimento nel log
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5202", &
- 5202, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- IF ll_return_value = 1 THEN
- // MK Modifica del 05/09/2007
- // ll_righe_cdp_dato_fisle_t020_dst = lds_cdp_dato_fisle_t020_dst.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
- ll_righe_cdp_dato_fisle_t020_dst = lds_cdp_dato_fisle_t020_dst.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
- // MK Fine modifica del 05/09/2007
- IF ll_righe_cdp_dato_fisle_t020_dst < 0 THEN
- // se ho un errore nell'accesso alla tabella di frontiera verso CDP
- // dei dati delle chiusure fiscali
- // scrivo il fallimento nel log
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5203", &
- 5203, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- IF ll_return_value = 1 THEN
- // MK Modifica del 05/09/2007
- // ll_righe_cdp_dtgl_fisle_t019_dst = lds_cdp_dtgl_fisle_t019_dst.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
- ll_righe_cdp_dtgl_fisle_t019_dst = lds_cdp_dtgl_fisle_t019_dst.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
- // MK Fine modifica del 05/09/2007
- IF ll_righe_cdp_dtgl_fisle_t019_dst < 0 THEN
- // se ho un errore nell'accesso alla tabella di frontiera verso CDP
- // dei dati di dettaglio delle chiusure fiscali
- // scrivo il fallimento nel log
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5204", &
- 5204, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- // ----------------------------------------------------------------------------
- // Verifico di non avere errori di mancanza di dati da inviare
- // alle tabelle di frontiera verso CDP
- // ----------------------------------------------------------------------------
- IF ll_return_value = 1 THEN
- IF ll_righe_cdp_dato_fisl_v028_src = 0 THEN
- // Se non trovo dati delle chiusure fiscali da inviare alle tabelle di frontiera
- // verso CDP scrivo il fallimento nel log
- // termino l'invio
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5205", &
- 5205, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- // Può succedere che per un campo non ci siano dati di dettaglio
- //IF ll_return_value = 1 THEN
- // IF ll_righe_cdp_dtgl_fisl_v029_src = 0 THEN
- // // Se non trovo dati di dettaglio delle chiusure fiscali da inviare alle tabelle di frontiera
- // // verso CDP scrivo il fallimento nel log
- // // termino l'invio
- // var_glob.par_msg[1] = vs_codice_campo
- // THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- // var_glob.n_appl, &
- // "Log invii CDP", &
- // "5206", &
- // 5206, &
- // 0, &
- // 0 )
- // ll_return_value = -1
- // END IF
- //END IF
- // ----------------------------------------------------------------------------
- // Cancello eventuali dati già presenti nelle tabelle di frontiera verso CDP
- // perchè frutto di precedenti invii
- // ----------------------------------------------------------------------------
- IF ll_return_value = 1 THEN
- IF ll_righe_cdp_dato_fisle_t020_dst > 0 THEN
- lds_cdp_dato_fisle_t020_dst.RowsMove( 1, ll_righe_cdp_dato_fisle_t020_dst, Primary!, &
- lds_cdp_dato_fisle_t020_dst, &
- lds_cdp_dato_fisle_t020_dst.DeletedCount() + 1, &
- Delete! )
- IF lds_cdp_dato_fisle_t020_dst.Update() = -1 THEN
- // Se non riesco a cancellare i dati delle chiusure fiscali
- // già presenti nelle tabelle di frontiera verso CDP
- // perchè frutto di precedenti invii
- // scrivo il fallimento nel log e termino l'invio
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5207", &
- 5207, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- END IF
- IF ll_return_value = 1 THEN
- IF ll_righe_cdp_dtgl_fisle_t019_dst > 0 THEN
- lds_cdp_dtgl_fisle_t019_dst.RowsMove( 1, ll_righe_cdp_dato_fisle_t020_dst, Primary!, &
- lds_cdp_dtgl_fisle_t019_dst, &
- lds_cdp_dtgl_fisle_t019_dst.DeletedCount() + 1, &
- Delete! )
- IF lds_cdp_dtgl_fisle_t019_dst.Update() = -1 THEN
- // Se non riesco a cancellare i dati di dettaglio delle chiusure fiscali
- // già presenti nelle tabelle di frontiera verso CDP
- // perchè frutto di precedenti invii
- // scrivo il fallimento nel log e termino l'invio
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5208", &
- 5208, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- END IF
- // ----------------------------------------------------------------------------
- // Effettuo l'invio dei dati nelle tabelle di frontiera verso CDP
- // ----------------------------------------------------------------------------
- IF ll_return_value = 1 THEN
- // Scrittura dei dati delle chiusure fiscali
- // nelle tabelle di frontiera verso CDP
- FOR i = 1 TO ll_righe_cdp_dato_fisl_v028_src
- j = lds_cdp_dato_fisle_t020_dst.InsertRow(0)
- lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_cmpny', ls_codice_company )
- lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_cmp', &
- lds_cdp_dato_fisl_v028_src.GetItemString( i, 'c_cmp' ) )
- ldt_data_tecnico_fiscale = lds_cdp_dato_fisl_v028_src.GetItemDateTime( i, 'd_fisle' )
- ld_mese_tecnico_fiscale = Year( Date(ldt_data_tecnico_fiscale) ) * 100 + &
- Month( Date(ldt_data_tecnico_fiscale) )
- lds_cdp_dato_fisle_t020_dst.SetItem( j, 'p_mes_tecn_fisle', ld_mese_tecnico_fiscale)
- lds_cdp_dato_fisle_t020_dst.SetItem( j, 'f_qt_tot', &
- lds_cdp_dato_fisl_v028_src.GetItemString( i, 'f_qt_tot' ) )
- lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_atvt', &
- lds_cdp_dato_fisl_v028_src.GetItemString( i, 'c_atvt' ) )
- lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_fld_prdt', &
- lds_cdp_dato_fisl_v028_src.GetItemString( i, 'c_prdt' ) )
- lds_cdp_dato_fisle_t020_dst.SetItem( j, 'q_idroc', &
- lds_cdp_dato_fisl_v028_src.GetItemNumber( i, 'q_prdt' ) )
- NEXT
- // Scrittura dei dati di dettaglio delle chiusure fiscali
- // nelle tabelle di frontiera verso CDP
- FOR i = 1 TO ll_righe_cdp_dtgl_fisl_v029_src
- j = lds_cdp_dtgl_fisle_t019_dst.InsertRow(0)
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_cmpny', ls_codice_company )
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_cmp', &
- lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_cmp' ) )
- ldt_data_tecnico_fiscale = lds_cdp_dtgl_fisl_v029_src.GetItemDateTime( i, 'd_fisle' )
- ld_mese_tecnico_fiscale = Year( Date(ldt_data_tecnico_fiscale) ) * 100 + &
- Month( Date(ldt_data_tecnico_fiscale) )
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'p_mes_tecn_fisle', ld_mese_tecnico_fiscale)
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'f_qt_tot', &
- lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'f_qt_tot' ) )
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_atvt', &
- lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_atvt' ) )
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_fld_prdt', &
- lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_prdt' ) )
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_soc', &
- lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_soc' ) )
- lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'q_idroc', &
- lds_cdp_dtgl_fisl_v029_src.GetItemNumber( i, 'q_prdt' ) )
- NEXT
- END IF
- // ----------------------------------------------------------------------------
- // Effettuo l'update dei datastore delle tabelle di frontiera verso CDP
- // ----------------------------------------------------------------------------
- IF ll_return_value = 1 THEN
- IF lds_cdp_dato_fisle_t020_dst.Update() = -1 THEN
- // Se non riesco a inserire i dati delle chiusure fiscali
- // nelle tabelle di frontiera verso CDP
- // scrivo il fallimento nel log e termino l'invio
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5209", &
- 5209, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- IF ll_return_value = 1 THEN
- IF lds_cdp_dtgl_fisle_t019_dst.Update() = -1 THEN
- // Se non riesco a inserire i dati delle chiusure fiscali
- // nelle tabelle di frontiera verso CDP
- // scrivo il fallimento nel log e termino l'invio
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5210", &
- 5210, &
- 0, &
- 0 )
- ll_return_value = -1
- END IF
- END IF
- // ----------------------------------------------------------------------------
- // Distruggo i datastore creati in questo script
- // ----------------------------------------------------------------------------
- DESTROY lds_cdp_dato_fisl_v028_src
- DESTROY lds_cdp_dtgl_fisl_v029_src
- DESTROY lds_cdp_dato_fisle_t020_dst
- DESTROY lds_cdp_dtgl_fisle_t019_dst
- // ----------------------------------------------------------------------------
- // Se tutto è andato bene, scrivo il successo dell'invio nel log
- // ----------------------------------------------------------------------------
- IF ll_return_value = 1 THEN
- var_glob.par_msg[1] = vs_codice_campo
- THIS.of_scrivi_cdp_log_t170( vs_codice_campo_cdp_in_invio, &
- var_glob.n_appl, &
- "Log invii CDP", &
- "5108", &
- 5108, &
- 0, &
- 0 )
- END IF
- RETURN ll_return_value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement