770 2015 dopo controlli 770 semplificato dell'agenzia delle entrate
git-svn-id: svn://10.65.10.50/branches/R_10_00@23101 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									66243e8aaa
								
							
						
					
					
						commit
						a04851fc0d
					
				| @ -289,9 +289,15 @@ void TSchedaPercipienti::calcola_riga_pag(TRectype& rec, | ||||
| 	const real totdet = detfamil + detlavdip;   | ||||
| 	const real ritenuta = totdet > ritlorda ? ZERO : ritlorda - totdet; | ||||
| 	rec.put(PAG_RITENUTA, ritenuta); | ||||
|   real ctssncomp = (((compenso * h_PercAssImpInps) / CENTO) * h_PercInps) / CENTO;  ctssncomp.round(fdec);  // calcolo contributo Inps complessivo
 | ||||
|    | ||||
|   real ctssncomp = (((compenso * h_PercAssImpInps) / CENTO) * h_PercInps) / CENTO;   | ||||
|   ctssncomp.round(fdec);  // calcolo contributo Inps complessivo
 | ||||
|   rec.put(PAG_INPSCOMP, ctssncomp); | ||||
| 	real ctssnperc = (h_PercCommitInps == ZERO) ? ctssncomp - ((ctssncomp * 2) / 3) : ctssncomp - ((ctssncomp * h_PercCommitInps) / CENTO);  ctssnperc.round(fdec); // calcolo contributo Inps del percipiente
 | ||||
| 
 | ||||
|   real ctssnperc = h_PercCommitInps.is_zero() ? ctssncomp - ((ctssncomp * 2) / 3)  | ||||
|                                               : ctssncomp - ((ctssncomp * h_PercCommitInps) / CENTO);   | ||||
|   ctssnperc.round(fdec); // calcolo contributo Inps del percipiente
 | ||||
| 	 | ||||
|   rec.put(PAG_INPSPERC, ctssnperc); | ||||
| 	real utpagati = rec.get_real(PAG_UTPAGATI);   | ||||
| 	if (abs(utpagati) > abs(imponibile)) | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
| #include "rpag.h" | ||||
| #include "scperc.h" | ||||
| 
 | ||||
| TString _quadronuovo; | ||||
| static TString4 _quadronuovo; | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // Righe pagamento delle schede percipienti
 | ||||
| @ -70,7 +70,7 @@ const TRectype* TRighe_pagamento::prospetto_e1(char caus) | ||||
| 
 | ||||
| void TRighe_pagamento::add_riga(const TRectype& scheda, const TRectype& riga) | ||||
| {  | ||||
|   TString chiave; | ||||
|   TString16 chiave; | ||||
|    | ||||
|   const char causqua = toupper(scheda.get_char(SPR_CAUSQUA)); | ||||
|   chiave << causqua; | ||||
| @ -735,7 +735,7 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga) const | ||||
|   ammlordo += riga.get_real(PAG_SOMNSRIT); | ||||
|   ammlordo += riga.get_real(PAG_CONTROBB); | ||||
|   ammlordo += riga.get_real(PAG_SOMREGCONV); | ||||
|   quadro.put(QUD_TOTALE, ammlordo);                      // AUXXX021
 | ||||
|   quadro.put(QUD_TOTALE, ammlordo);                       | ||||
| 
 | ||||
|   real somme = riga.get_real(PAG_COMPENSO); | ||||
|   somme -= imponibile; | ||||
| @ -744,8 +744,8 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga) const | ||||
|   somme -= riga.get_real(PAG_SOMREGCONV); | ||||
|   quadro.put(QUD_SOMME, somme);                            | ||||
| 
 | ||||
|   quadro.put(QUD_SOMREGCONV, riga.get(PAG_SOMREGCONV));  // AUXXX022
 | ||||
|   quadro.put(QUD_IMPONIBILE, imponibile);                // AUXXX024
 | ||||
|   quadro.put(QUD_SOMREGCONV, riga.get(PAG_SOMREGCONV));   | ||||
|   quadro.put(QUD_IMPONIBILE, imponibile);                // AUXXX008
 | ||||
|   quadro.put(QUD_IMPORTO, riga.get(PAG_RITENUTA));         | ||||
| 
 | ||||
|   const real inps_tot = riga.get(PAG_INPSCOMP); | ||||
| @ -755,8 +755,8 @@ void TQuadroC_E2::genera_la(TRectype& quadro, const TRectype& riga) const | ||||
|     inps_perc = riga.get_real(PAG_INPSPERC); | ||||
|     inps_erog = inps_tot - inps_perc; | ||||
|   } | ||||
|   quadro.put(QUD_CTINPSEROG, inps_erog);                 // AUXXX033 
 | ||||
|   quadro.put(QUD_CTINPSPERC, inps_perc);                 // AUXXX034
 | ||||
|   quadro.put(QUD_CTINPSEROG, inps_erog);                 // AUXXX020
 | ||||
|   quadro.put(QUD_CTINPSPERC, inps_perc);                 // AUXXX021
 | ||||
|    | ||||
|   genera_aliquota(quadro, QUD_PERC, QUD_IMPONIBILE, QUD_IMPORTO); | ||||
| } | ||||
| @ -892,7 +892,7 @@ void TQuadroC_E2::generazione() | ||||
|   const TRectype& scheda = cur.curr(); | ||||
|   const TRectype& riga   = cur.curr(LF_RPAG); | ||||
| 
 | ||||
|   TProgress_monitor pi(items, TR("Generazione da schede.")); | ||||
|   TProgress_monitor pi(items, TR("Generazione da schede")); | ||||
|    | ||||
|   distruzione(); | ||||
|    | ||||
|  | ||||
| @ -185,11 +185,12 @@ bool TGenera::azzera_quadroL() | ||||
|      | ||||
|   TString scritta;  | ||||
|   scritta.format("Azzeramento quadro ST per la ditta %ld", _codditta); | ||||
|   TProgind progn(cl_items, scritta, FALSE, TRUE); | ||||
|   TProgind progn(cl_items, scritta, false); | ||||
|    | ||||
|   for (cl=0; cl.pos() < cl_items; ++cl) | ||||
|   { | ||||
|     progn.addstatus(1); | ||||
|     if (!progn.addstatus(1)) | ||||
|       break; | ||||
|    | ||||
| // solo quelli dell'anno dichiarazione 
 | ||||
|     if (curr.get_int(QUL_QLAP) != _annodic)     | ||||
| @ -204,7 +205,7 @@ bool TGenera::azzera_quadroL() | ||||
|     rl.remove(); | ||||
|   }                     | ||||
|    | ||||
|   return TRUE; | ||||
|   return true; | ||||
| }                            | ||||
| 
 | ||||
| void TGenera::dati_rver(TLocalisamfile& rver,TSchedaP& sch, long numvers) | ||||
| @ -472,13 +473,12 @@ TGenera_versamenti& app() { return (TGenera_versamenti&)main_app(); } | ||||
| 
 | ||||
| bool TGenera_versamenti::menu(MENU_TAG m) | ||||
| { | ||||
|   long  codditta, codditta_prec; | ||||
|   int   i = 0;   | ||||
|   TConfig cnf_user(CONFIG_USER); | ||||
|    | ||||
|   if (m == BAR_ITEM_ID(1)) | ||||
|   { | ||||
|     codditta_prec = get_firm_770(); | ||||
|     TConfig cnf_user(CONFIG_USER, _section); | ||||
|     const long codditta_prec = get_firm_770(); | ||||
|     int   i = 0;   | ||||
|     long  codditta = 0; | ||||
|     while ((codditta = cnf_user.get_long(DITTE_SEL, _section, i++)) != 0L)  | ||||
|     { | ||||
|       set_firm_770(codditta); | ||||
| @ -486,10 +486,9 @@ bool TGenera_versamenti::menu(MENU_TAG m) | ||||
|         break; | ||||
|     } | ||||
|     set_firm_770(codditta_prec);   | ||||
|     return FALSE;                | ||||
|   } | ||||
|      | ||||
|   return FALSE; | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| bool TGenera_versamenti::create() | ||||
|  | ||||
| @ -4,11 +4,11 @@ | ||||
| 
 | ||||
| int main(int argc,char** argv) | ||||
| { | ||||
|   const int n = (argc > 1) ? atoi(argv[1]+1) : -1; | ||||
|   const int n = argc>1 ? *argv[1]-'0' : 0; | ||||
|   switch(n) | ||||
|   { | ||||
|   case  1: m777200(argc, argv); break; | ||||
|   default: m777100(argc, argv); break; | ||||
|   case  1: m777200(argc, argv); break; // C.U.
 | ||||
|   default: m777100(argc, argv); break; // 770
 | ||||
|   } | ||||
|   return 0; | ||||
| } | ||||
							
								
								
									
										108
									
								
								m770/777100.cpp
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								m770/777100.cpp
									
									
									
									
									
								
							| @ -28,7 +28,7 @@ | ||||
| // Utility
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| const int ANNO_DIC = 2014; | ||||
| const int ANNO_PAG = 2014; | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // TForm770
 | ||||
| @ -131,26 +131,39 @@ public: | ||||
| 
 | ||||
| bool TForm770::validate(TForm_item &cf, TToken_string &s) | ||||
| {  | ||||
|   const TString code(s.get(0)); // prende il primo parametro, il codice del messaggio
 | ||||
|   const TFixed_string code = s.get(0); // prende il primo parametro, il codice del messaggio
 | ||||
|   if (code == "_PERIODO_RIF") | ||||
|   { | ||||
|     const TRectype& curr = relation()->curr(); | ||||
|     const int anno = curr.get_int("QLAP"); | ||||
|     const int mese = curr.get_int("QLMP"); | ||||
|     TString8 str; | ||||
|     str.format("%02d%04d", mese, anno); | ||||
|     TString8 str; str.format("%02d%04d", mese, anno); | ||||
|     cf.set(str); | ||||
|     return true; | ||||
|   } | ||||
|   if (code == "_PROVINCIA") | ||||
|   { | ||||
|     const TString& prov = cf.get(); | ||||
|     const TFixed_string prov = cf.get(); | ||||
|     if (prov == "EE") // Il 770 non gradisce la provincia EE associata agli stati esteri
 | ||||
|       cf.set(""); else | ||||
|     if (prov == "FO") // Ci sono ancora vecchie province :-( 
 | ||||
|       cf.set("FC"); | ||||
|     return true; | ||||
|   } | ||||
|   if (code == "_SOLO_CAUS_M") | ||||
|   { | ||||
|     const TRectype& curr = relation()->curr(); | ||||
|     if (!curr.get("CAUSALE").starts_with("M") || curr.get_real("IMPONIBILE") <= 5000) | ||||
|       cf.set(""); | ||||
|     return true; | ||||
|   } | ||||
|   if (code == "_SOLO_CAUS_N") | ||||
|   { | ||||
|     const TRectype& curr = relation()->curr(); | ||||
|     if (curr.get("CAUSALE") != "N") | ||||
|       cf.set(""); | ||||
|     return true; | ||||
|   } | ||||
| 
 | ||||
|   return TForm::validate(cf, s); | ||||
| } | ||||
| @ -398,12 +411,14 @@ TRecnotype TForm770::trasfer(long codditta, TTrasferimento770& file, char rectyp | ||||
|   region.put(BSE_CODDITTA, codditta); | ||||
|   cur.setregion(region, region); | ||||
| 
 | ||||
|   if (region.num() == LF_QUADRO_ST) | ||||
|   { | ||||
|   TString16 filter; | ||||
|     filter.format("QLAP=%d", ANNO_DIC); | ||||
|     cur.setfilter(filter); | ||||
|   switch (region.num()) | ||||
|   { | ||||
|   case LF_QUADRO_ST: filter.format("QLAP=%d", ANNO_PAG); break; | ||||
|   case LF_QUALA    : filter.format("ANNO=%d", ANNO_PAG); break; | ||||
|   default: break; | ||||
|   } | ||||
|   cur.setfilter(filter); | ||||
| 
 | ||||
|   const TRecnotype items = cur.items(); | ||||
|   if (items > 0)         // Se c'e almeno un record ...
 | ||||
| @ -639,12 +654,11 @@ const TString& TTrasferimento770::read_codfis_dic(const TRectype& rec) | ||||
|   _codatt_dic = rec_nditte.get(NDT_CODATTPREV); // Codice attivita' prevalente
 | ||||
|   key.add(_codatt_dic);                         // key = CODDITTA|CODATTPREV
 | ||||
|   const TRectype& attiv = _cache770.get(LF_ATTIV, key); | ||||
|   if (attiv.exist(ATT_CODATECO))                // Non e' detto che il campo esista sempre
 | ||||
|   { | ||||
|   const TString& codateco = attiv.get(ATT_CODATECO); | ||||
|   if (codateco.full()) | ||||
|     _codatt_dic = codateco; | ||||
|   } | ||||
|   else | ||||
|     error_box(TR("Non esiste il codice attività ATECO")); | ||||
| 
 | ||||
|   const TAnagrafica dich(LF_ANAG, _tipoa_dic, _codan_dic); | ||||
|   if (!dich.ok()) | ||||
| @ -660,8 +674,8 @@ const TString& TTrasferimento770::read_codfis_dic(const TRectype& rec) | ||||
| TRecnotype TTrasferimento770::conta_certificazioni() const | ||||
| { | ||||
|   TString query; | ||||
|   query.format("USE %d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld", | ||||
|                LF_QUALA, _cod_ditta, _cod_ditta); | ||||
|   query.format("USE %d SELECT ANNO=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld", | ||||
|                LF_QUALA, ANNO_PAG,_cod_ditta, _cod_ditta); | ||||
|   TISAM_recordset recset(query); | ||||
|   const TRecnotype nc = recset.items(); | ||||
|   return nc; | ||||
| @ -672,7 +686,7 @@ bool TTrasferimento770::casella_prospetto_st() const | ||||
|   // Il quadro ST e' il "vecchio" quadro L
 | ||||
|   TString query; | ||||
|   query.format("USE %d\nSELECT QLAP=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld", | ||||
|                LF_QUADRO_ST, ANNO_DIC, _cod_ditta, _cod_ditta); | ||||
|                LF_QUADRO_ST, ANNO_PAG, _cod_ditta, _cod_ditta); | ||||
|   TISAM_recordset recset(query); | ||||
|   const TRecnotype nr = recset.items(); | ||||
|   return nr > 0; | ||||
| @ -683,7 +697,7 @@ bool TTrasferimento770::casella_prospetto_sx() const | ||||
|   // Il quadro SX sono le ritenute versate in eccesso
 | ||||
|   TString query; | ||||
|   query.format("USE %d\nSELECT QLAP=%d\nFROM CODDITTA=%ld\nTO CODDITTA=%ld", | ||||
|                LF_QUADRO_ST, ANNO_DIC, _cod_ditta, _cod_ditta); | ||||
|                LF_QUADRO_ST, ANNO_PAG, _cod_ditta, _cod_ditta); | ||||
|   TISAM_recordset recset(query); | ||||
|   bool found = false; | ||||
|   for (bool ok = recset.move_first(); ok && !found; ok = recset.move_next()) | ||||
| @ -769,6 +783,9 @@ bool TTrasferimento770::append_record_b() | ||||
|       rec.set(134, rec_rap.data_nascita()); | ||||
|       rec.set(135, rec_rap.comune_nascita()); | ||||
|       rec.set(136, rec_rap.provincia_nascita()); | ||||
| 
 | ||||
|       if (rec_rap.comune_nascita().blank()) | ||||
|         cantread_box("dati nascita legale rappresentante"); | ||||
|     } | ||||
|     else | ||||
|       cantread_box("dati del legale rappresentante"); | ||||
| @ -830,18 +847,18 @@ void TTrasferimento770::riepiloga_ss(const TRecord770& rec, TArray& riep_ss) con | ||||
| { | ||||
|   TString8 code; | ||||
|   real val; | ||||
|   for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("AU") && !val.is_zero()) | ||||
|   for (int i = 0; rec.np_get_real(i, code, val); i++) if (code.starts_with("AU") && code[5] != 'A' && !val.is_zero()) | ||||
|   {    | ||||
|     const TString& key = code.right(3); | ||||
|     const int num = atoi(key); | ||||
|     if (num >= 27 && num <= 35)  | ||||
|     if (num >= 9 && num <= 17)  | ||||
|     { | ||||
|       real& r = real_at(riep_ss, num-27);  // AU_27-AU_47 -> SS003001
 | ||||
|       r += val; | ||||
|       real& r = real_at(riep_ss, num-9);  // AU_9 -AU_54 -> SS003001
 | ||||
|       r += val;                           // AU_10-AU_55 -> SS003002
 | ||||
|     } else | ||||
|     if (num >= 47 && num <= 55)  | ||||
|     if (num >= 54 && num <= 62)  | ||||
|     { | ||||
|       real& r = real_at(riep_ss, num-47); | ||||
|       real& r = real_at(riep_ss, num-54); | ||||
|       r -= val; | ||||
|     } | ||||
|   } | ||||
| @ -874,10 +891,10 @@ bool TTrasferimento770::split(const char* path) | ||||
|   TRecord770 rec; | ||||
| 
 | ||||
|   unsigned long disk_size = 15*1024*1024;   // Max 15 Mb per fornitura
 | ||||
|   const bool magnetic = ::xvt_fsys_is_removable_drive(path) !=0; | ||||
|   const bool magnetic = ::xvt_fsys_is_floppy_drive(path)!=0; | ||||
|   if (magnetic) | ||||
|   { | ||||
|     if (!yesno_box(FR("Inserire il primo disco del trasferimento nell'unita' %s\n" | ||||
|     if (!yesno_box(FR("Inserire il primo disco del trasferimento nell'unità %s\n" | ||||
|                    "Tutti i dischi devono essere vuoti ed avere la stesso formato.\n" | ||||
|                    "Si desidera iniziare il trasferimento?"), path)) | ||||
|       return false; | ||||
| @ -887,7 +904,7 @@ bool TTrasferimento770::split(const char* path) | ||||
|   const long records_per_disk = long(disk_size / TOTAL_SIZE) - 3;  // Tolgo A,B,Z
 | ||||
|   const int volumes = int((records-1)/records_per_disk)+1; | ||||
| 
 | ||||
|   TProgind pi(records, TR("Generazione file trasferimento"), false, true); | ||||
|   TProgress_monitor pi(records, TR("Generazione file trasferimento")); | ||||
|    | ||||
|   // Read from start
 | ||||
|   open("", 'r'); | ||||
| @ -933,7 +950,7 @@ bool TTrasferimento770::split(const char* path) | ||||
|     { | ||||
|       while (read(rec)) | ||||
|       { | ||||
|         pi.addstatus(1); | ||||
|         pi.add_status(); | ||||
|    | ||||
|         const char tipo_rec = rec.tipo_record(); | ||||
|         if (tipo_rec <= 'A' || tipo_rec == 'F' || tipo_rec == 'J' || tipo_rec >= 'Z') | ||||
| @ -1029,7 +1046,7 @@ void TTrasferimento770::remove() | ||||
| } | ||||
| 
 | ||||
| TTrasferimento770::TTrasferimento770(const char* path, char  mode, int volume) | ||||
| : _in_stream(NULL), _out_stream(NULL), _save_headers(false), _centesimi(false) | ||||
|                  : _in_stream(NULL), _out_stream(NULL), _save_headers(false), _centesimi(false) | ||||
| { | ||||
|   open(path, mode, volume); | ||||
| } | ||||
| @ -1050,6 +1067,7 @@ protected: | ||||
| 
 | ||||
| public:          | ||||
|   TTransfer770_msk(); | ||||
|   ~TTransfer770_msk(); | ||||
| }; | ||||
| 
 | ||||
| bool TTransfer770_msk::on_field_event(TOperable_field& of, TField_event fe, long jolly) | ||||
| @ -1072,16 +1090,34 @@ bool TTransfer770_msk::on_field_event(TOperable_field& of, TField_event fe, long | ||||
| 
 | ||||
| TTransfer770_msk::TTransfer770_msk() : TAutomask("777100a")  | ||||
| {  | ||||
|   /*
 | ||||
|   int anno = ini_get_int(CONFIG_STUDIO, "77", ANNO_SEL); | ||||
|   if (anno <= 0) | ||||
|   set(F_ANNOPAG, ANNO_PAG); | ||||
|   set(F_ANNODIC, ANNO_PAG+1); | ||||
|   set(F_NOHEADERS,ini_get_bool(CONFIG_STUDIO, "77", "SaveDataOnly", false)); | ||||
|   set(F_PATH,   ini_get_string(CONFIG_STUDIO, "77", "SavePath")); | ||||
|   long ditta1 = ini_get_int   (CONFIG_STUDIO, "77", "SaveFirm1", 0); | ||||
|   long ditta2 = ini_get_int   (CONFIG_STUDIO, "77", "SaveFirm2", 0); | ||||
|   if (ditta1 <= 0 || ditta2 <= 0) | ||||
|   { | ||||
|     const TDate oggi(TODAY); | ||||
|     anno = oggi.year()-1; | ||||
|     TPointer_array d; | ||||
|     prefix().firms(d); | ||||
|     if (!d.empty()) | ||||
|     { | ||||
|       if (ditta1 <= 0)  | ||||
|         ditta1 = d.get_long(0); | ||||
|       if (ditta2 < ditta1)  | ||||
|         ditta2 = d.get_long(d.last()); | ||||
|     } | ||||
|   set(F_ANNO, anno); | ||||
|   */ | ||||
|   set(F_ANNO, ANNO_DIC); | ||||
|   } | ||||
|   set(F_DADITTA, ditta1); | ||||
|   set(F_ADITTA,  ditta2); | ||||
| } | ||||
| 
 | ||||
| TTransfer770_msk::~TTransfer770_msk() | ||||
| { | ||||
|   ini_set_bool  (CONFIG_STUDIO, "77", "SaveDataOnly",get_bool(F_NOHEADERS)); | ||||
|   ini_set_string(CONFIG_STUDIO, "77", "SavePath",    get(F_PATH)); | ||||
|   ini_set_int   (CONFIG_STUDIO, "77", "SaveFirm1",   get_long(F_DADITTA)); | ||||
|   ini_set_int   (CONFIG_STUDIO, "77", "SaveFirm2",   get_long(F_ADITTA)); | ||||
| } | ||||
| 
 | ||||
| class TTransfer770_app : public TSkeleton_application | ||||
| @ -1098,7 +1134,7 @@ void TTransfer770_app::main_loop() | ||||
|   { | ||||
|     TFilename tmp; tmp.tempdir(); | ||||
|     TTrasferimento770 t(tmp, 'w'); | ||||
|     t.save_headers(m.get_bool(F_HEADERS)); | ||||
|     t.save_headers(!m.get_bool(F_NOHEADERS)); | ||||
|     t.set_cent_mode(m.get_bool(F_CENT)); | ||||
| 
 | ||||
|     TRelation rel_base(LF_BASE); | ||||
|  | ||||
| @ -1,9 +1,10 @@ | ||||
| #define F_PATH      102 | ||||
| #define F_ANNO     104  | ||||
| #define F_ANNOPAG   103 | ||||
| #define F_ANNODIC   104  | ||||
| #define F_DADITTA   105 | ||||
| #define F_DADESC    106 | ||||
| #define F_ADITTA    107 | ||||
| #define F_ADESC     108 | ||||
| #define F_HEADERS  109 | ||||
| #define F_NOHEADERS 109 | ||||
| #define F_CENT      110 | ||||
| 
 | ||||
|  | ||||
| @ -1,14 +1,20 @@ | ||||
| #include "777100a.h" | ||||
| 
 | ||||
| PAGE "Invio 770" -1 -1 72 8 | ||||
| PAGE "Invio 770" -1 -1 76 10 | ||||
| 
 | ||||
| NUMBER F_ANNO 4 | ||||
| NUMBER F_ANNOPAG 4 | ||||
| BEGIN | ||||
|   PROMPT 47 1 "Anno dichiarazione " | ||||
|   PROMPT 49 0 "Anno pagamenti     " | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_PATH 260 53 | ||||
| NUMBER F_ANNODIC 4 | ||||
| BEGIN | ||||
|   PROMPT 49 1 "Anno dichiarazione " | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| STRING F_PATH 260 58 | ||||
| BEGIN | ||||
|   PROMPT 1 2 "Destinazione " | ||||
|   DSELECT | ||||
| @ -17,7 +23,7 @@ END | ||||
| 
 | ||||
| NUMBER F_DADITTA 5 | ||||
| BEGIN | ||||
|   PROMPT 1 3 "Da ditta " | ||||
|   PROMPT 1 4 "Dalla ditta  " | ||||
|   USE LF_BASE  | ||||
|   JOIN LF_NDITTE INTO CODDITTA=CODDITTA | ||||
|   INPUT CODDITTA F_DADITTA | ||||
| @ -27,17 +33,18 @@ BEGIN | ||||
|   OUTPUT F_DADITTA CODDITTA | ||||
|   OUTPUT F_DADESC LF_NDITTE->RAGSOC  | ||||
|   CHECKTYPE NORMAL | ||||
|   ADD RUN ba4 -2 | ||||
| END | ||||
| 
 | ||||
| STRING F_DADESC 50 | ||||
| BEGIN | ||||
|   PROMPT 20 3 "" | ||||
|   PROMPT 22 4 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| NUMBER F_ADITTA 5 | ||||
| BEGIN | ||||
|   PROMPT 1 4 "A ditta  " | ||||
|   PROMPT 1 5 "Alla ditta   " | ||||
|   COPY USE F_DADITTA | ||||
|   INPUT CODDITTA F_ADITTA | ||||
|   COPY DISPLAY F_DADITTA | ||||
| @ -46,22 +53,23 @@ BEGIN | ||||
|   CHECKTYPE SEARCH | ||||
|   NUM_EXPR (#F_ADITTA=0)||(#F_ADITTA>=#F_DADITTA) | ||||
|   WARNING "La ditta finale deve seguire quella iniziale" | ||||
|   ADD RUN ba4 -2 | ||||
| END | ||||
| 
 | ||||
| STRING F_ADESC 50 | ||||
| BEGIN | ||||
|   PROMPT 20 4 "" | ||||
|   PROMPT 22 5 "" | ||||
|   FLAGS "D" | ||||
| END | ||||
| 
 | ||||
| BOOLEAN F_HEADERS | ||||
| BOOLEAN F_NOHEADERS | ||||
| BEGIN | ||||
|   PROMPT 1 6 "Genera record di testata (tipo A, B, Z)" | ||||
|   PROMPT 1 7 "Generazione dei soli record dati (H,J) senza record di testata (A, B, Z)" | ||||
| END | ||||
| 
 | ||||
| BOOLEAN F_CENT | ||||
| BEGIN | ||||
|   PROMPT 1 7 "Salva importi in centesimi (x 100)" | ||||
|   PROMPT 1 8 "Salvataggio importi in centesimi (x 100)" | ||||
|   FLAGS "H" | ||||
| END | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										210
									
								
								m770/77qla.frm
									
									
									
									
									
								
							
							
						
						
									
										210
									
								
								m770/77qla.frm
									
									
									
									
									
								
							| @ -40,7 +40,7 @@ BEGIN | ||||
|   KEY "COD.FIS" | ||||
|   PROMPT 10 1 "" | ||||
|   FIELD 216@->COFI | ||||
|   SPECIAL STRING TRASFER "AU001001" "AN" | ||||
|   SPECIAL STRING TRASFER "AU001A01" "AN" | ||||
| END | ||||
| 
 | ||||
| STRINGA 2 | ||||
| @ -48,7 +48,7 @@ BEGIN | ||||
|   KEY "COGNOME" | ||||
|   PROMPT 42 1 "" | ||||
|   FIELD 216@->RAGSOC[1,30] | ||||
|   SPECIAL STRING TRASFER "AU001002" "AN" | ||||
|   SPECIAL STRING TRASFER "AU001A02" "AN" | ||||
| END           | ||||
| 
 | ||||
| STRINGA 3 | ||||
| @ -56,7 +56,7 @@ BEGIN | ||||
|   KEY "NOME" | ||||
|   PROMPT 22 3 "" | ||||
|   FIELD 216@->RAGSOC[31,50] | ||||
|   SPECIAL STRING TRASFER "AU001003" "AN" | ||||
|   SPECIAL STRING TRASFER "AU001A03" "AN" | ||||
| END | ||||
| 
 | ||||
| STRINGA 4 | ||||
| @ -64,7 +64,7 @@ BEGIN | ||||
|   KEY "SESSO" | ||||
|   PROMPT 57 3 "" | ||||
|   FIELD 218@->SESSO | ||||
|   SPECIAL STRING TRASFER "AU001004" "AN" | ||||
|   SPECIAL STRING TRASFER "AU001A04" "AN" | ||||
| END | ||||
| 
 | ||||
| STRINGA 5 | ||||
| @ -73,7 +73,7 @@ BEGIN | ||||
|   PROMPT 63 3 "" | ||||
|   FIELD 218@->DATANASC | ||||
|   PICTURE "##^ ##^ ####" | ||||
|   SPECIAL STRING TRASFER "AU001005" "DT" | ||||
|   SPECIAL STRING TRASFER "AU001A05" "DT" | ||||
| END | ||||
| 
 | ||||
| STRINGA 6 | ||||
| @ -81,7 +81,7 @@ BEGIN | ||||
|   KEY "COMUNE DI NASCITA" | ||||
|   PROMPT 79 3 "" | ||||
|   FIELD 313@->DENCOM | ||||
|   SPECIAL STRING TRASFER "AU001006" "AN" | ||||
|   SPECIAL STRING TRASFER "AU001A06" "AN" | ||||
| END | ||||
| 
 | ||||
| STRINGA 7 | ||||
| @ -89,273 +89,205 @@ BEGIN | ||||
|   KEY "PROV DI NASCITA" | ||||
|   PROMPT 126 3 "" | ||||
|   FIELD 313@->PROVCOM | ||||
|   SPECIAL STRING TRASFER "AU001007" "AN" | ||||
|   SPECIAL STRING TRASFER "AU001A07" "AN" | ||||
|   MESSAGE _PROVINCIA | ||||
| END | ||||
| 
 | ||||
| STRINGA 8 | ||||
| STRINGA 20 | ||||
| BEGIN | ||||
|   KEY "COMUNE DI RESIDENZA FISCALE" | ||||
|   PROMPT 25 5 "" | ||||
|   FIELD 513@->DENCOM | ||||
|   FIELD 413@->DENCOM | ||||
|   SPECIAL STRING TRASFER "AU001008" "AN" | ||||
|   GROUP 1 | ||||
|   SPECIAL STRING TRASFER "AU001A20" "AN" | ||||
| END | ||||
| 
 | ||||
| STRINGA 9 | ||||
| STRINGA 21 | ||||
| BEGIN | ||||
|   KEY "PROV DI RESIDENZA FISCALE" | ||||
|   PROMPT 126 3 "" | ||||
|   FIELD 513@->PROVCOM | ||||
|   FIELD 413@->PROVCOM | ||||
|   GROUP 1 | ||||
|   SPECIAL STRING TRASFER "AU001009" "AN" | ||||
|   MESSAGE _PROVINCIA | ||||
|   MESSAGE _SOLO_CAUS_N | ||||
|   SPECIAL STRING TRASFER "AU001A21" "AN" | ||||
| END | ||||
| 
 | ||||
| NUMBER 10 | ||||
| STRINGA 22 | ||||
| BEGIN | ||||
|   KEY "CODICE REGIONE" | ||||
|   KEY "CODICE COMUNE" | ||||
|   PROMPT 78 5 "" | ||||
|   FIELD 218@->CODREG96 | ||||
|   SPECIAL STRING TRASFER "AU001010" "NU" | ||||
|   GROUP 1 | ||||
| END | ||||
| 
 | ||||
| STRINGA 12 | ||||
| BEGIN | ||||
|   KEY "CODICE COMUNE SOLO SE CAUSALE=N" | ||||
|   PROMPT 78 5 "" | ||||
|   SPECIAL STRING TRASFER "AU001011" "AN" | ||||
|   FIELD 513@->COM | ||||
|   FIELD 413@->COM | ||||
|   SPECIAL STRING TRASFER "AU001A22" "AN" | ||||
|   MESSAGE _SOLO_CAUS_N | ||||
| END | ||||
| 
 | ||||
| STRINGA 101 | ||||
| BEGIN | ||||
|   KEY "VIA RES. FISC." | ||||
|   FIELD 216@->INDRF[1,35] | ||||
|   FIELD 216@->INDRES[1,35] | ||||
|   FLAGS "H" | ||||
|   MESSAGE COPY,11 | ||||
| END | ||||
| 
 | ||||
| STRINGA 102 | ||||
| BEGIN | ||||
|   KEY "NUM.CIV DI RESIDENZA FISC." | ||||
|   FLAGS "H" | ||||
|   FIELD 216@->CIVRF | ||||
|   FIELD 216@->CIVRES | ||||
|   MESSAGE APPEND,11 | ||||
| END | ||||
| 
 | ||||
| STRINGA 11 | ||||
| BEGIN | ||||
|   KEY "VIA RF + NUMCIVRF" | ||||
|   PROMPT 78 5 "" | ||||
|   SPECIAL STRING TRASFER "AU001012" "AN" | ||||
|   MESSAGE COPY,17 | ||||
| END | ||||
| 
 | ||||
| STRINGA 15 | ||||
| BEGIN | ||||
|   KEY "CODICE FISCALE ESTERO" | ||||
|   PROMPT 90 7 ""       | ||||
|   FIELD 216@->COFIEST | ||||
|   SPECIAL STRING TRASFER "AU001015" "AN" | ||||
|   MESSAGE EMPTY HIDE,15@ | ||||
|   MESSAGE SHOW,15@ | ||||
| END | ||||
| 
 | ||||
| STRINGA 16 | ||||
| BEGIN | ||||
|   KEY "LOCALITA' ESTERA DI RES." | ||||
|   PROMPT 75 7 ""  | ||||
|   SPECIAL STRING TRASFER "AU001016" "AN" | ||||
|   GROUP 15 | ||||
| END | ||||
| 
 | ||||
| STRINGA 17 | ||||
| BEGIN | ||||
|   KEY "INDIRIZZO DI RES. ESTERO" | ||||
|   PROMPT 75 7 ""    | ||||
|   SPECIAL STRING TRASFER "AU001017" "AN" | ||||
|   GROUP 15 | ||||
| END | ||||
| 
 | ||||
| NUMERO 18 | ||||
| BEGIN | ||||
|   KEY "STATO ESTERO" | ||||
|   PROMPT 75 7 ""  | ||||
|   FIELD 216@->STATORES | ||||
|   SPECIAL STRING TRASFER "AU001018" "NU" | ||||
|   GROUP 15 | ||||
| END | ||||
| 
 | ||||
| STRINGA 19 | ||||
| BEGIN | ||||
|   KEY "CAUSALE" | ||||
|   PROMPT 13 9 "" | ||||
|   FIELD CAUSALE | ||||
|   SPECIAL STRING TRASFER "AU001019" "AN" | ||||
|   SPECIAL STRING TRASFER "AU001001" "AN" | ||||
| END | ||||
| 
 | ||||
| NUMERO 20 | ||||
| NUMERO 102 | ||||
| BEGIN | ||||
|   KEY "ANNO" | ||||
|   PROMPT 16 9 "" | ||||
|   FIELD ANNO | ||||
|   SPECIAL STRING TRASFER "AU001020" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001002" "NP" | ||||
| END | ||||
| 
 | ||||
| STRINGA 21 | ||||
| STRINGA 103 | ||||
| BEGIN | ||||
|   KEY "ANTICIPAZIONI" | ||||
|   PROMPT 27 9 "" | ||||
|   FIELD ANTICIPAZ | ||||
|   SPECIAL STRING TRASFER "AU001021" "CB" | ||||
|   SPECIAL STRING TRASFER "AU001003" "CB" | ||||
| END | ||||
|   | ||||
| VALUTA 22 | ||||
| VALUTA 104 | ||||
| BEGIN | ||||
|   KEY "AMMONTARE LORDO" | ||||
|   PROMPT 27 9 "" | ||||
|   FIELD TOTALE | ||||
|   SPECIAL STRING TRASFER "AU001022" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001004" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 23 | ||||
| VALUTA 105 | ||||
| BEGIN | ||||
|   KEY "SOMREGCONV" | ||||
|   PROMPT 47 9 "" | ||||
|   FIELD SOMREGCONV     | ||||
|   SPECIAL STRING TRASFER "AU001023" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001005" "NP" | ||||
| END | ||||
| 
 | ||||
| NUMERO 24 | ||||
| NUMERO 106 | ||||
| BEGIN | ||||
|   KEY "Codice somme non soggette a ritenuta" | ||||
|   PROMPT 64 9 "" | ||||
|   SPECIAL STRING TRASFER "AU001024" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001006" "NP" | ||||
|   MESSAGE _NUMEXPR,IF(SOMME>0,1,0) | ||||
| END | ||||
| 
 | ||||
| VALUTA 25 | ||||
| VALUTA 107 | ||||
| BEGIN | ||||
|   KEY "SOMME NON SOGGETTE A RITENUTA" | ||||
|   PROMPT 66 9 "" | ||||
|   PROMPT 107 9 "" | ||||
|   FIELD SOMME | ||||
|   SPECIAL STRING TRASFER "AU001025" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001007" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 26 | ||||
| VALUTA 108 | ||||
| BEGIN | ||||
|   KEY "IMPONIBILE = 22-23-25" | ||||
|   PROMPT 88 9 "" | ||||
|   PROMPT 108 9 "" | ||||
|   FIELD IMPONIBILE | ||||
|   SPECIAL STRING TRASFER "AU001026" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001008" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 27 | ||||
| VALUTA 109 | ||||
| BEGIN | ||||
|   KEY "Ritenute operate a titolo di acconto" | ||||
|   PROMPT 109 9 "" | ||||
|   FIELD IMPORTO        | ||||
|   SPECIAL STRING TRASFER "AU001027" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001009" "NP" | ||||
| END | ||||
| 
 | ||||
| 
 | ||||
| VALUTA 28 | ||||
| VALUTA 110 | ||||
| BEGIN | ||||
|   KEY "Ritenute operate a titolo di imposta" | ||||
|   PROMPT 109 9 "" | ||||
|   SPECIAL STRING TRASFER "AU001028" "NP" | ||||
|   PROMPT 110 9 "" | ||||
|   SPECIAL STRING TRASFER "AU001010" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 29 | ||||
| VALUTA 111 | ||||
| BEGIN | ||||
|   KEY "RITENUTE SOSPESE" | ||||
|   PROMPT 109 9 "" | ||||
|   FIELD RITSOSPESE | ||||
|   SPECIAL STRING TRASFER "AU001029" "" | ||||
|   SPECIAL STRING TRASFER "AU001011" "" | ||||
| END | ||||
| 
 | ||||
| VALUTA 30 | ||||
| VALUTA 112 | ||||
| BEGIN | ||||
|   KEY "ADDIZIONALE REGIONALE a titolo di acconto" | ||||
|   PROMPT 109 9 "" | ||||
|   FIELD ADDREG                     | ||||
|   SPECIAL STRING TRASFER "AU001030" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001012" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 31 | ||||
| VALUTA 113 | ||||
| BEGIN | ||||
|   KEY "ADDIZIONALE REGIONALE a titolo di imposta" | ||||
|   PROMPT 109 9 "" | ||||
|   SPECIAL STRING TRASFER "AU001031" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001013" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 32 | ||||
| VALUTA 114 | ||||
| BEGIN | ||||
|   KEY "ADDIZIONALE REGIONALE SOSPESA" | ||||
|   PROMPT 109 9 "" | ||||
|   PROMPT 114 9 "" | ||||
|   FIELD ADDREGSOSP | ||||
|   SPECIAL STRING TRASFER "AU001032" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001014" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 33 | ||||
| VALUTA 115 | ||||
| BEGIN | ||||
|   KEY "ADDIZIONALE COMUNALE a titolo di acconto" | ||||
|   PROMPT 109 9 "" | ||||
| //  FIELD ADDCOM | ||||
|   SPECIAL STRING TRASFER "AU001033" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001015" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 34 | ||||
| VALUTA 116 | ||||
| BEGIN | ||||
|   KEY "ADDIZIONALE COMUNALE a titolo di imposta" | ||||
|   PROMPT 109 9 "" | ||||
|   SPECIAL STRING TRASFER "AU001034" "NP" | ||||
|   PROMPT 116 9 "" | ||||
|   SPECIAL STRING TRASFER "AU001016" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 35 | ||||
| VALUTA 117 | ||||
| BEGIN | ||||
|   KEY "ADDIZIONALE COMUNALE SOSPESA" | ||||
|   PROMPT 109 9 "" | ||||
|   PROMPT 117 9 "" | ||||
| //  FIELD ADDCOMSOSP | ||||
|   SPECIAL STRING TRASFER "AU001035" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001017" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 36 | ||||
| VALUTA 118 | ||||
| BEGIN | ||||
|   KEY "IMPONIBILE ANNI PRECEDENTI" | ||||
|   PROMPT 109 9 "" | ||||
|   PROMPT 118 9 "" | ||||
|   FIELD IMPANNIPRE | ||||
|   SPECIAL STRING TRASFER "AU001036" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001018" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 37 | ||||
| VALUTA 119 | ||||
| BEGIN | ||||
|   KEY "RITENUTE ANNI PRECEDENTI" | ||||
|   PROMPT 109 9 "" | ||||
|   PROMPT 119 9 "" | ||||
|   FIELD RITANNIPRE | ||||
|   SPECIAL STRING TRASFER "AU001037" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001019" "NP" | ||||
| END | ||||
| 
 | ||||
| VALUTA 38 | ||||
| VALUTA 120 | ||||
| BEGIN | ||||
|   KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL SOGGETTO EROGANTE" | ||||
|   PROMPT 109 9 "" | ||||
|   PROMPT 120 9 "" | ||||
|   FIELD CTINPSEROG | ||||
|   SPECIAL STRING TRASFER "AU001038" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001020" "NP" | ||||
|   MESSAGE _SOLO_CAUS_M | ||||
| END | ||||
| 
 | ||||
| VALUTA 39 | ||||
| VALUTA 121 | ||||
| BEGIN | ||||
|   KEY "CONTRIBUTI PREVIDENZIALI A CARICO DEL PERCIPIENTE" | ||||
|   PROMPT 109 9 "" | ||||
|   PROMPT 121 9 "" | ||||
|   FIELD CTINPSPERC | ||||
|   SPECIAL STRING TRASFER "AU001039" "NP" | ||||
|   SPECIAL STRING TRASFER "AU001021" "NP" | ||||
|   MESSAGE _SOLO_CAUS_M | ||||
| END | ||||
| 
 | ||||
| END | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user