Advertisement
Guest User

invioCopia_tabelle_frontiere

a guest
Dec 4th, 2014
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 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);/////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. // Object       cndn522_controlli_finali_invio_cdp
  3. //
  4. // Function:    of_invio_interfaccia_cdp_dati_fiscali
  5. //
  6. // Access:      public
  7. //
  8. // Arguments:   TYPE            V/R     NAME                                NOTE
  9. //              --------------------------------------------------------------------------------------------
  10. //                  STRING      V           vs_codice_distretto         Codice del distretto di cui è richiesto
  11. //                                                                                  l'invio dei dati fiscali alle tabelle di
  12. //                                                                                  interfaccia verso CDP
  13. //                  STRING      V           vs_codice_campo             Codice del campo di cui è richiesto
  14. //                                                                                  l'invio dei dati fiscali alle tabelle di
  15. //                                                                                  interfaccia verso CDP
  16. //                  DATETIME        V           vdt_data_inizio             Data di inizio del periodo di riferimento
  17. //                                                                                  dei dati da inviare
  18. //                  DATETIME        V           vdt_data_fine                   Data di fine del periodo di riferimento
  19. //                                                                                  dei dati da inviare
  20. //                  STRING      V           vs_codice_campo_cdp_in_invio
  21. //                                                                                  Codice del campo della datawindow di invio chiusure fiscali
  22. //                                                                                  del quale è in corso l'invio a CDP dei dati delle chiusure fiscali
  23. //
  24. // Returns:     LONG
  25. //              --------------------------------------------------------------------------------------------
  26. //                  valore = 1  :   inserimento nelle tabelle di frontiera verso CDP
  27. //                                      dei dati fiscali del campo eseguito con successo;
  28. //                  valore < 0  :   inserimento nelle tabelle di frontiera verso CDP
  29. //                                      dei dati fiscali del campo fallito.
  30. //                                      In particolare i codici di errore indicano:
  31. //
  32. // Purpose:     La funzione effettua l'inserimento nelle tabelle di frontiera
  33. //                  verso CDP dei dati fiscali del campo relativi al periodo richiesto.
  34. //
  35. // Log:
  36. // DATE         WHO WHAT
  37. // ----------   -----   -------------------------------------------
  38. // 23/04/2007   RP      Versione iniziale
  39. //  05/09/2007  MK     Modifiche per gestione chiusure trimestrali
  40. /////////////////////////////////////////////////////////////////////////////////////////////////////////
  41.  
  42. LONG        ll_return_value = 1
  43. LONG        i, j
  44.  
  45. DATETIME    ldt_data_tecnico_fiscale
  46. DECIMAL ld_mese_tecnico_fiscale
  47.  
  48. xxxu021_data_store_base         lds_cdp_dato_fisl_v028_src
  49. xxxu021_data_store_base         lds_cdp_dtgl_fisl_v029_src
  50.  
  51. LONG            ll_righe_cdp_dato_fisl_v028_src
  52. LONG            ll_righe_cdp_dtgl_fisl_v029_src
  53.  
  54. xxxu021_data_store_base         lds_cdp_dato_fisle_t020_dst
  55. xxxu021_data_store_base         lds_cdp_dtgl_fisle_t019_dst
  56.  
  57. LONG            ll_righe_cdp_dato_fisle_t020_dst
  58. LONG            ll_righe_cdp_dtgl_fisle_t019_dst
  59.  
  60. STRING  ls_codice_company
  61.  
  62. DATETIME    ldt_data_inizio, ldt_data_fine
  63.  
  64.  
  65. choose case vs_codice_distretto
  66.        
  67.     case GS_DISTR_GELA
  68.         ls_codice_company = is_codice_company_enimed
  69.        
  70.     case GS_DISTR_PADANA
  71.         ls_codice_company = is_codice_company_padana
  72.        
  73.     case GS_DISTR_ADRIATICA
  74.         ls_codice_company = is_codice_company_adriatica
  75.        
  76.     case GS_DISTR_IONICA
  77.         ls_codice_company = is_codice_company_ionica
  78.        
  79.     case GS_DISTR_RAVENNA
  80.         ls_codice_company = is_codice_company_eni
  81.        
  82.     case GS_DISTR_VALDAGRI
  83.         ls_codice_company = is_codice_company_eni
  84.        
  85. end choose
  86.  
  87.  
  88.  
  89.  
  90.  
  91. // Creo i datastore con i dati da trasmettere alle tabelle di frontiera verso CDP
  92. lds_cdp_dato_fisl_v028_src = CREATE xxxu021_data_store_base
  93. lds_cdp_dato_fisl_v028_src.DataObject = 'cndd522_ds_cdp_dato_fisl_v028'
  94. lds_cdp_dato_fisl_v028_src.SetTransObject( SQLCA )
  95.  
  96. lds_cdp_dtgl_fisl_v029_src = CREATE xxxu021_data_store_base
  97. lds_cdp_dtgl_fisl_v029_src.DataObject = 'cndd522_ds_cdp_dtgl_fisl_v029'
  98. lds_cdp_dtgl_fisl_v029_src.SetTransObject( SQLCA )
  99.  
  100. lds_cdp_dato_fisle_t020_dst = CREATE xxxu021_data_store_base
  101. lds_cdp_dato_fisle_t020_dst.DataObject = 'cndd522_ds_cdp_dato_fisle_t020'
  102. lds_cdp_dato_fisle_t020_dst.SetTransObject( SQLCA )
  103.  
  104. lds_cdp_dtgl_fisle_t019_dst = CREATE xxxu021_data_store_base
  105. lds_cdp_dtgl_fisle_t019_dst.DataObject = 'cndd522_ds_cdp_dtgl_dato_fisle_t019'
  106. lds_cdp_dtgl_fisle_t019_dst.SetTransObject( SQLCA )
  107.  
  108.  
  109. // MK Modifica del 05/09/2007
  110. // Somma ii_anni_trim alle date della retrieve
  111. // Se non è trimestrale ii_anni_trim è = 0
  112. ldt_data_inizio = DateTime(Date(Year(Date(vdt_data_inizio)) + ii_anni_trim, &
  113.                                           Month(Date(vdt_data_inizio)), &
  114.                                           Day(Date(vdt_data_inizio))))
  115. ldt_data_fine = DateTime(Date(Year(Date(vdt_data_fine)) + ii_anni_trim, &
  116.                                         Month(Date(vdt_data_fine)), &
  117.                                         Day(Date(vdt_data_fine))))
  118. // MK Fine modifica del 05/09/2007
  119.  
  120.  
  121.  
  122. // ----------------------------------------------------------------------------
  123. // Verifico di non avere errori durante le retrieve sui datastore appena creati
  124. // ----------------------------------------------------------------------------
  125.  
  126. IF ll_return_value = 1 THEN
  127.     // MK Modifica del 05/09/2007
  128. //  ll_righe_cdp_dato_fisl_v028_src = lds_cdp_dato_fisl_v028_src.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
  129.     ll_righe_cdp_dato_fisl_v028_src = lds_cdp_dato_fisl_v028_src.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
  130.     // MK Fine modifica del 05/09/2007
  131.     IF ll_righe_cdp_dato_fisl_v028_src < 0 THEN
  132.         // se ho un errore nell'accesso alla tabella dei dati
  133.         //  delle chiusure fiscali da inviare alle tabelle di frontiera verso CDP
  134.         // scrivo il fallimento nel log
  135.         var_glob.par_msg[1] = vs_codice_campo
  136.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  137.                                                 var_glob.n_appl, &
  138.                                                 "Log invii CDP", &
  139.                                                 "5201", &
  140.                                                 5201, &
  141.                                                 0, &
  142.                                                 0 )
  143.         ll_return_value = -1
  144.     END IF
  145. END IF
  146.  
  147. IF ll_return_value = 1 THEN
  148.     // MK Modifica del 05/09/2007
  149. //  ll_righe_cdp_dtgl_fisl_v029_src = lds_cdp_dtgl_fisl_v029_src.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
  150.     ll_righe_cdp_dtgl_fisl_v029_src = lds_cdp_dtgl_fisl_v029_src.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
  151.     // MK Fine modifica del 05/09/2007
  152.     IF ll_righe_cdp_dtgl_fisl_v029_src < 0 THEN
  153.         // se ho un errore nell'accesso alla tabella dei dati di dettaglio
  154.         //  delle chiusure fiscali da inviare alle tabelle di frontiera verso CDP
  155.         // scrivo il fallimento nel log
  156.         var_glob.par_msg[1] = vs_codice_campo
  157.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  158.                                                 var_glob.n_appl, &
  159.                                                 "Log invii CDP", &
  160.                                                 "5202", &
  161.                                                 5202, &
  162.                                                 0, &
  163.                                                 0 )
  164.         ll_return_value = -1
  165.     END IF
  166. END IF
  167.  
  168. IF ll_return_value = 1 THEN
  169.     // MK Modifica del 05/09/2007
  170. //  ll_righe_cdp_dato_fisle_t020_dst = lds_cdp_dato_fisle_t020_dst.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
  171.     ll_righe_cdp_dato_fisle_t020_dst = lds_cdp_dato_fisle_t020_dst.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
  172.     // MK Fine modifica del 05/09/2007
  173.     IF ll_righe_cdp_dato_fisle_t020_dst < 0 THEN
  174.         // se ho un errore nell'accesso alla tabella di frontiera verso CDP
  175.         //  dei dati delle chiusure fiscali
  176.         // scrivo il fallimento nel log
  177.         var_glob.par_msg[1] = vs_codice_campo
  178.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  179.                                                 var_glob.n_appl, &
  180.                                                 "Log invii CDP", &
  181.                                                 "5203", &
  182.                                                 5203, &
  183.                                                 0, &
  184.                                                 0 )
  185.         ll_return_value = -1
  186.     END IF
  187. END IF
  188.  
  189. IF ll_return_value = 1 THEN
  190.     // MK Modifica del 05/09/2007
  191. //  ll_righe_cdp_dtgl_fisle_t019_dst = lds_cdp_dtgl_fisle_t019_dst.Retrieve( vs_codice_campo, vdt_data_inizio, vdt_data_fine )
  192.     ll_righe_cdp_dtgl_fisle_t019_dst = lds_cdp_dtgl_fisle_t019_dst.Retrieve( vs_codice_campo, ldt_data_inizio, ldt_data_fine )
  193.     // MK Fine modifica del 05/09/2007
  194.     IF ll_righe_cdp_dtgl_fisle_t019_dst < 0 THEN
  195.         // se ho un errore nell'accesso alla tabella di frontiera verso CDP
  196.         //  dei dati di dettaglio delle chiusure fiscali
  197.         // scrivo il fallimento nel log
  198.         var_glob.par_msg[1] = vs_codice_campo
  199.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  200.                                                 var_glob.n_appl, &
  201.                                                 "Log invii CDP", &
  202.                                                 "5204", &
  203.                                                 5204, &
  204.                                                 0, &
  205.                                                 0 )
  206.         ll_return_value = -1
  207.     END IF
  208. END IF
  209.  
  210.  
  211.  
  212. // ----------------------------------------------------------------------------
  213. // Verifico di non avere errori di mancanza di dati da inviare
  214. //  alle tabelle di frontiera verso CDP
  215. // ----------------------------------------------------------------------------
  216.  
  217. IF ll_return_value = 1 THEN
  218.     IF ll_righe_cdp_dato_fisl_v028_src = 0 THEN
  219.         // Se non trovo dati delle chiusure fiscali da inviare alle tabelle di frontiera
  220.         // verso CDP scrivo il fallimento nel log
  221.         // termino l'invio
  222.         var_glob.par_msg[1] = vs_codice_campo
  223.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  224.                                                 var_glob.n_appl, &
  225.                                                 "Log invii CDP", &
  226.                                                 "5205", &
  227.                                                 5205, &
  228.                                                 0, &
  229.                                                 0 )
  230.         ll_return_value = -1
  231.     END IF
  232. END IF
  233.  
  234. // Può succedere che per un campo non ci siano dati di dettaglio
  235. //IF ll_return_value = 1 THEN
  236. //  IF ll_righe_cdp_dtgl_fisl_v029_src = 0 THEN
  237. //      // Se non trovo dati di dettaglio delle chiusure fiscali da inviare alle tabelle di frontiera
  238. //      // verso CDP scrivo il fallimento nel log
  239. //      // termino l'invio
  240. //      var_glob.par_msg[1] = vs_codice_campo
  241. //      THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  242. //                                              var_glob.n_appl, &
  243. //                                              "Log invii CDP", &
  244. //                                              "5206", &
  245. //                                              5206, &
  246. //                                              0, &
  247. //                                              0 )
  248. //      ll_return_value = -1
  249. //  END IF
  250. //END IF
  251.  
  252.  
  253.  
  254. // ----------------------------------------------------------------------------
  255. // Cancello eventuali dati già presenti nelle tabelle di frontiera verso CDP
  256. //  perchè frutto di precedenti invii
  257. // ----------------------------------------------------------------------------
  258.  
  259. IF ll_return_value = 1 THEN
  260.     IF ll_righe_cdp_dato_fisle_t020_dst > 0 THEN
  261.         lds_cdp_dato_fisle_t020_dst.RowsMove( 1, ll_righe_cdp_dato_fisle_t020_dst, Primary!, &
  262.                                                         lds_cdp_dato_fisle_t020_dst, &
  263.                                                         lds_cdp_dato_fisle_t020_dst.DeletedCount() + 1, &
  264.                                                         Delete! )
  265.         IF lds_cdp_dato_fisle_t020_dst.Update() = -1 THEN
  266.             // Se non riesco a cancellare i dati delle chiusure fiscali
  267.             //  già presenti nelle tabelle di frontiera verso CDP
  268.             //  perchè frutto di precedenti invii
  269.             // scrivo il fallimento nel log e termino l'invio
  270.             var_glob.par_msg[1] = vs_codice_campo
  271.             THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  272.                                                     var_glob.n_appl, &
  273.                                                     "Log invii CDP", &
  274.                                                     "5207", &
  275.                                                     5207, &
  276.                                                     0, &
  277.                                                     0 )
  278.             ll_return_value = -1
  279.         END IF
  280.     END IF
  281. END IF
  282.  
  283. IF ll_return_value = 1 THEN
  284.     IF ll_righe_cdp_dtgl_fisle_t019_dst > 0 THEN
  285.         lds_cdp_dtgl_fisle_t019_dst.RowsMove( 1, ll_righe_cdp_dato_fisle_t020_dst, Primary!, &
  286.                                                         lds_cdp_dtgl_fisle_t019_dst, &
  287.                                                         lds_cdp_dtgl_fisle_t019_dst.DeletedCount() + 1, &
  288.                                                         Delete! )
  289.         IF lds_cdp_dtgl_fisle_t019_dst.Update() = -1 THEN
  290.             // Se non riesco a cancellare i dati di dettaglio delle chiusure fiscali
  291.             //  già presenti nelle tabelle di frontiera verso CDP
  292.             //  perchè frutto di precedenti invii
  293.             // scrivo il fallimento nel log e termino l'invio
  294.             var_glob.par_msg[1] = vs_codice_campo
  295.             THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  296.                                                     var_glob.n_appl, &
  297.                                                     "Log invii CDP", &
  298.                                                     "5208", &
  299.                                                     5208, &
  300.                                                     0, &
  301.                                                     0 )
  302.             ll_return_value = -1
  303.         END IF
  304.     END IF
  305. END IF
  306.  
  307.  
  308.  
  309. // ----------------------------------------------------------------------------
  310. // Effettuo l'invio dei dati nelle tabelle di frontiera verso CDP
  311. // ----------------------------------------------------------------------------
  312. IF ll_return_value = 1 THEN
  313.    
  314.     // Scrittura dei dati delle chiusure fiscali
  315.     //  nelle tabelle di frontiera verso CDP
  316.     FOR i = 1 TO ll_righe_cdp_dato_fisl_v028_src
  317.        
  318.         j = lds_cdp_dato_fisle_t020_dst.InsertRow(0)
  319.        
  320.         lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_cmpny', ls_codice_company )
  321.        
  322.         lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_cmp', &
  323.                     lds_cdp_dato_fisl_v028_src.GetItemString( i, 'c_cmp' ) )
  324.        
  325.         ldt_data_tecnico_fiscale = lds_cdp_dato_fisl_v028_src.GetItemDateTime( i, 'd_fisle' )
  326.         ld_mese_tecnico_fiscale = Year( Date(ldt_data_tecnico_fiscale) ) * 100 + &
  327.                                                 Month( Date(ldt_data_tecnico_fiscale) )
  328.         lds_cdp_dato_fisle_t020_dst.SetItem( j, 'p_mes_tecn_fisle', ld_mese_tecnico_fiscale)
  329.        
  330.         lds_cdp_dato_fisle_t020_dst.SetItem( j, 'f_qt_tot', &
  331.                     lds_cdp_dato_fisl_v028_src.GetItemString( i, 'f_qt_tot' ) )
  332.        
  333.         lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_atvt', &
  334.                     lds_cdp_dato_fisl_v028_src.GetItemString( i, 'c_atvt' ) )
  335.        
  336.         lds_cdp_dato_fisle_t020_dst.SetItem( j, 'c_fld_prdt', &
  337.                     lds_cdp_dato_fisl_v028_src.GetItemString( i, 'c_prdt' ) )
  338.        
  339.         lds_cdp_dato_fisle_t020_dst.SetItem( j, 'q_idroc', &
  340.                     lds_cdp_dato_fisl_v028_src.GetItemNumber( i, 'q_prdt' ) )
  341.  
  342.     NEXT
  343.  
  344.     // Scrittura dei dati di dettaglio delle chiusure fiscali
  345.     //  nelle tabelle di frontiera verso CDP
  346.     FOR i = 1 TO ll_righe_cdp_dtgl_fisl_v029_src
  347.        
  348.         j = lds_cdp_dtgl_fisle_t019_dst.InsertRow(0)
  349.        
  350.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_cmpny', ls_codice_company )
  351.        
  352.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_cmp', &
  353.                     lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_cmp' ) )
  354.        
  355.         ldt_data_tecnico_fiscale = lds_cdp_dtgl_fisl_v029_src.GetItemDateTime( i, 'd_fisle' )
  356.         ld_mese_tecnico_fiscale = Year( Date(ldt_data_tecnico_fiscale) ) * 100 + &
  357.                                                 Month( Date(ldt_data_tecnico_fiscale) )
  358.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'p_mes_tecn_fisle', ld_mese_tecnico_fiscale)
  359.        
  360.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'f_qt_tot', &
  361.                     lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'f_qt_tot' ) )
  362.        
  363.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_atvt', &
  364.                     lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_atvt' ) )
  365.        
  366.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_fld_prdt', &
  367.                     lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_prdt' ) )
  368.        
  369.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'c_soc', &
  370.                     lds_cdp_dtgl_fisl_v029_src.GetItemString( i, 'c_soc' ) )
  371.        
  372.         lds_cdp_dtgl_fisle_t019_dst.SetItem( j, 'q_idroc', &
  373.                     lds_cdp_dtgl_fisl_v029_src.GetItemNumber( i, 'q_prdt' ) )
  374.  
  375.     NEXT
  376.  
  377. END IF
  378.  
  379. // ----------------------------------------------------------------------------
  380. // Effettuo l'update dei datastore delle tabelle di frontiera verso CDP
  381. // ----------------------------------------------------------------------------
  382.  
  383. IF ll_return_value = 1 THEN
  384.     IF lds_cdp_dato_fisle_t020_dst.Update() = -1 THEN
  385.         // Se non riesco a inserire i dati delle chiusure fiscali
  386.         //  nelle tabelle di frontiera verso CDP
  387.         //  scrivo il fallimento nel log e termino l'invio
  388.         var_glob.par_msg[1] = vs_codice_campo
  389.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  390.                                                 var_glob.n_appl, &
  391.                                                 "Log invii CDP", &
  392.                                                 "5209", &
  393.                                                 5209, &
  394.                                                 0, &
  395.                                                 0 )
  396.         ll_return_value = -1
  397.     END IF
  398. END IF
  399.  
  400. IF ll_return_value = 1 THEN
  401.     IF lds_cdp_dtgl_fisle_t019_dst.Update() = -1 THEN
  402.         // Se non riesco a inserire i dati delle chiusure fiscali
  403.         //  nelle tabelle di frontiera verso CDP
  404.         //  scrivo il fallimento nel log e termino l'invio
  405.         var_glob.par_msg[1] = vs_codice_campo
  406.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  407.                                                 var_glob.n_appl, &
  408.                                                 "Log invii CDP", &
  409.                                                 "5210", &
  410.                                                 5210, &
  411.                                                 0, &
  412.                                                 0 )
  413.         ll_return_value = -1
  414.     END IF
  415. END IF
  416.  
  417.  
  418.  
  419. // ----------------------------------------------------------------------------
  420. // Distruggo i datastore creati in questo script
  421. // ----------------------------------------------------------------------------
  422.  
  423. DESTROY lds_cdp_dato_fisl_v028_src
  424. DESTROY lds_cdp_dtgl_fisl_v029_src
  425.  
  426. DESTROY lds_cdp_dato_fisle_t020_dst
  427. DESTROY lds_cdp_dtgl_fisle_t019_dst
  428.  
  429.  
  430.  
  431. // ----------------------------------------------------------------------------
  432. // Se tutto è andato bene, scrivo il successo dell'invio nel log
  433. // ----------------------------------------------------------------------------
  434.  
  435. IF ll_return_value = 1 THEN
  436.         var_glob.par_msg[1] = vs_codice_campo
  437.         THIS.of_scrivi_cdp_log_t170(    vs_codice_campo_cdp_in_invio, &
  438.                                                 var_glob.n_appl, &
  439.                                                 "Log invii CDP", &
  440.                                                 "5108", &
  441.                                                 5108, &
  442.                                                 0, &
  443.                                                 0 )
  444. END IF
  445.  
  446.  
  447. RETURN ll_return_value
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement