// ************************************************************************ // Stampa anagrafiche (ba6 -0) // Settaggio stampe // ************************************************************************ #include "ba6100.h" static const char sep[] = "-----------------------------------------------------------------" "-----------------------------------------------------------------" ; void TAnaprint_app::set_scheda_anagiu() { // always at top level TString zio = current_cursor()->curr(LF_ANAG).get("RAGSOC"); _bk_ana = set_bookmark(zio); int row = 1; set_row(row++,"SCHEDA SOCIETA'"); set_row(row++,""); set_row(row++,"@bCodice@r@15g@u@pn@25g@r@bRag.Sociale @r@u@50s", FLD(LF_ANAG,"CODANAGR","@@@@@"), FLD(LF_ANAG,"RAGSOC")); set_row(row++,"@25g@bEvent. sigla@r@40g@u@20s", FLD(LF_ANAGGIU,"SIGLA")); set_row(row++,"Oggetto soc.@15g@60s", FLD(LF_ANAGGIU,"OGGSOC")); set_row(row++,"Codice Fiscale@20g@16s@46gPartita IVA @12s", FLD(LF_ANAG,"COFI"), FLD(LF_ANAG,"PAIV")); set_row(row++,"Riferimento@15g@20s", FLD(LF_ANAGGIU,"PERRIF")); set_row(row++,""); set_row(row++,"Sede legale@20gIndirizzo @35s N. @s", FLD(LF_ANAG,"INDRES"), FLD(LF_ANAG,"CIVRES")); TString com = current_cursor()->curr(LF_ANAG).get("COMRES"); TRectype& cc = look_com(com); TString a = cc.get("DENCOM"); TString b = cc.get("CAPCOM"); TString c = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %-24s@58gProv. %2s@68gCAP %5s", (const char*)com, (const char*)a, (const char*)c, (const char*)b); set_row(row++,"@20gTelefono @u@10s@r/@u@30s@r", FLD(LF_ANAG,"PTELRF"), FLD(LF_ANAG,"TELRF")); set_row(row++,""); set_row(row++,"Domicilio fiscale@20gIndirizzo @35s N. @s", FLD(LF_ANAG,"INDRF"), FLD(LF_ANAG,"CIVRF")); com = current_cursor()->curr(LF_ANAG).get("COMRF"); cc = look_com(com); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %-24s@58gProv. %2s@68gCAP %5s", (const char*)com, (const char*)a, (const char*)c, (const char*)b); set_row(row++,""); set_row(row++,"Corrispondenza@20gIndirizzo @35s N. @s @35s", FLD(LF_ANAG,"INDCORR"), FLD(LF_ANAG,"CIVCORR"), FLD(LF_ANAG,"LOCCORR")); com = current_cursor()->curr(LF_ANAG).get("COMCORR"); cc = look_com(com); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %-24s@58gProv. %2s@68gCAP %5s", (const char*)com, (const char*)a, (const char*)c, (const char*)b); com = current_cursor()->curr(LF_ANAG).get("STATOCORR"); if (com.empty()) a = "Italia"; else { a = look_tab("%STA",com,"S0"); } set_row(row++,"@20gStato %s",(const char*)a); set_row(row++,""); set_row(row++,"Telex@20g@u@10s@r/@u@30s@r", FLD(LF_ANAG,"PTLEXRF"), FLD(LF_ANAG,"TLEXRFX")); set_row(row++,"Telefax@20g@u@10s@r/@u@30s@r", FLD(LF_ANAG,"PFAXRF"), FLD(LF_ANAG,"FAXRF")); set_row(row++,"Posta elettronica@20g@s", FLD(LF_ANAG,"MAIL")); set_row(row++,""); set_row(row++,"Ufficio imposte@20gNumero @pn", FLD(LF_ANAG,"UFFIIDD","@@@")); com = look_tab("%UID",get_field(LF_ANAG, "UFFIIDD"),"S6"); // Comune imposte dirette c = look_tab("%UID",get_field(LF_ANAG, "UFFIIDD"),"S4"); // c.c. Esattoria cc = look_com(com); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %-24s@58gProv. %s", (const char*)com, (const char*)a, (const char*)b); set_row(row++,"Ufficio IVA@20gNumero @pn", FLD(LF_ANAG,"UFFIVA","@@@")); com = look_tab("%UIV",get_field(LF_ANAG, "UFFIVA"),"S6"); cc = look_com(com); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %-24s@58gProv. %s", (const char*)com, (const char*)a, (const char*)b); set_row(row++,"Esattoria@20gComunale @02s Provinciale @03s C.C. %s", FLD(LF_ANAG,"CODCONTR",1,2), FLD(LF_ANAG,"CODCONTR",3,5), (const char*)c); set_row(row++,"@20gComune %-24s@58gProv. %s", (const char*)a, (const char*)b); set_row(row++,"@20gCodice contribuente @pn", FLD(LF_ANAG,"CODCONTR", "@@ @@@ @@@@@@@@ @@")); set_row(row++,""); //Qui la stampa dei dati conto fiscale TString16 tipo_stampa; const int tipo = current_cursor()->curr(LF_ANAG).get_int("TIPOSTDEL"); if (tipo == 0) tipo_stampa = "Delega"; else if (tipo == 1) tipo_stampa = "Bollettino"; else tipo_stampa = "Distinta"; set_row(row++,"Dati conto fiscale @20gTitolare conto fiscale @54g@f @60gTipo stampa %s", FLD(LF_ANAG,"TITCF"), (const char*) tipo_stampa); set_row(row++,"@20gCodice ABI @pn @60gCAB @pn", FLD(LF_ANAG,"CODABI","@@@@@"), FLD(LF_ANAG,"CODCAB","@@@@@")); tipo_stampa = current_cursor()->curr(LF_ANAG).get("UFFCONC"); if (tipo_stampa.empty()) { TString cod = current_cursor()->curr(LF_ANAG).get("COMRF"); if (cod.empty()) cod = current_cursor()->curr(LF_ANAG).get("COMRES"); if (cod.not_empty()) { cc = look_com(cod); tipo_stampa = cc.get("UFFCONC"); } } set_row(row++,"@20gConto fiscale %s @s", (const char*)tipo_stampa, FLD(LF_ANAG,"COFI")); set_row(row++,""); // dati atto costitutivo etc set_row(row++,"Dati atto costitutivo e statuto"); set_row(row++,"Estremi@20g@60s", FLD(LF_ANAGGIU,"ESTROMOL")); set_row(row++,"Omologa@25g@ld@41gData iscrizione@70g@ld", FLD(LF_ANAGGIU,"DATAOMOL"), FLD(LF_ANAGGIU,"DATAISCRIZ")); set_row(row++,"Data costituzione@25g@ld@41gDurata sino@70g@ld", FLD(LF_ANAGGIU,"DATACOST"), FLD(LF_ANAGGIU,"DATASCAD")); TString cod = get_field(LF_ANAGGIU,"COMCOST"); cc = look_com(cod); set_row(row++,"Luogo costituzione@20g%s %s", (const char*)cod, (const char*)cc.get("DENCOM")); set_row(row++,"Termine appr. bilancio@25g@d@41gApprovazione bilancio@70g@d", FLD(LF_ANAGGIU,"DATATAPPBI"), FLD(LF_ANAGGIU,"DATAAPPBIL")); set_row(row++,"Scad.org.amministrativo@25g@d@41gScadenza collegio " "sindacale@70g@d", FLD(LF_ANAGGIU,"DATASORAMM"), FLD(LF_ANAGGIU,"DATASCSIND")); set_row(row++,""); set_row(row++,"@5gCapit.sociale@24gCapit.versato@47g" "Fatturato@65gN.azioni@74gValore"); set_row(row++,"@pn @pn @pn @61g@n @pn", FLD(LF_ANAGGIU,"CAPSOC","###.###.###.###.###"), FLD(LF_ANAGGIU,"CAPVER","###.###.###.###.###"), FLD(LF_ANAGGIU,"FATT","###.###.###.###.###"), FLD(LF_ANAGGIU,"NAZIONI"), FLD(LF_ANAGGIU,"VALNOM","###.###.###.###")); set_row(row++,""); set_row(row++,"Dati Statistici@20gNon residente@61g@f", FLD(LF_ANAG,"SOGGNRES")); set_row(row++,"@20gEventi naturali eccezionali@61g@s", FLD(LF_ANAG,"EVECC")); set_row(row++,"@20gResidente in zone terremotate@61g@f", FLD(LF_ANAG,"RESZTERR")); // *TBI* traduzione natura giuridica set_row(row++,"@20gNatura giuridica@61g@s", FLD(LF_ANAGGIU,"NATGIU")); set_row(row++,"@20gStato societa'@51g@20,rt", FLD(LF_ANAGGIU,"STATOSOC")); set_row(row++,"@20gSituazione societa'@51g@20,rt", FLD(LF_ANAGGIU,"SITSOC")); set_row(row++,""); a = look_tab("%STT",current_cursor()->curr(LF_ANAG).get("CODSTAT1"),"S0"); set_row(row++,"@20gSigla stat.1 @7s %-50s", FLD(LF_ANAG,"CODSTAT1"), (const char*)a); a = look_tab("%STT",current_cursor()->curr(LF_ANAG).get("CODSTAT2"),"S0"); set_row(row++,"@20gSigla stat.2 @7s %-50s", FLD(LF_ANAG,"CODSTAT2"), (const char*)a); a = look_tab("%STT",current_cursor()->curr(LF_ANAG).get("CODSTAT3"),"S0"); set_row(row++,"@20gSigla stat.3 @7s %-50s", FLD(LF_ANAG,"CODSTAT3"), (const char*)a); // NOTE set_row(row++,"Note"); set_row(row++,"@6g@70s",FLD(LF_ANAGGIU,"NOTE1")); set_row(row++,"@6g@70s",FLD(LF_ANAGGIU,"NOTE2")); set_row(row++,"@6g@70s",FLD(LF_ANAGGIU,"NOTE3")); set_row(row++,"@6g@70s",FLD(LF_ANAGGIU,"NOTE4")); set_row(row++,"@6g@70s",FLD(LF_ANAGGIU,"NOTE5")); row++; set_row(row++,"Aggiornato il@20g@s", FLD(LF_ANAG, "DATAAGG")); const int l = printer().rows(); for (int i = 64; i <= l; i++) set_row(i, ""); } void TAnaprint_app::set_scheda_anafis() { // always at top level TString zio = current_cursor()->curr(LF_ANAG).get("RAGSOC"); _bk_ana = set_bookmark(zio); int row = 1; set_row(row++,"SCHEDA PERSONA FISICA"); set_row(row++,""); set_row(row++,"@bCodice @r@u@pn@20g@r@bCognome @r@u@S", FLD(LF_ANAG,"CODANAGR","@@@@@"), FLD(LF_ANAG,"RAGSOC",0,29)); set_row(row++,"@20g@bNome @r@u@s", FLD(LF_ANAG,"RAGSOC",30,50)); set_row(row++,""); set_row(row++,"Codice Fiscale@20g@s@46gPartita IVA @s", FLD(LF_ANAG,"COFI"), FLD(LF_ANAG,"PAIV")); set_row(row++,"Cod. Fisc. estero@20g@s", FLD(LF_ANAG,"COFIEST")); set_row(row++,"Data di nascita@20g@ld@32g@t@46gNazionalita' @s", FLD(LF_ANAGFIS,"DATANASC"), FLD(LF_ANAGFIS,"SESSO"), FLD(LF_ANAGFIS,"NAZION")); TString com = get_field(LF_ANAGFIS, "COMNASC"); TRectype& cc = look_com(com); TString a = cc.get("DENCOM"); TString b; // CAPCOM TString c = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %s@58gProv. %s", (const char*)com, (const char*)a, (const char*)c); row++; set_row(row++,"Residenza@20gIndirizzo @s N. @s", FLD(LF_ANAG,"INDRES"), FLD(LF_ANAG,"CIVRES")); com = current_cursor()->curr(LF_ANAG).get("COMRES"); cc = look_com(com); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %s@58gProv. %s@68gCAP %s", (const char*)com, (const char*)a, (const char*)c, (const char*)b); set_row(row++,"@20gTelefono @u@s@r/@u@s@r", FLD(LF_ANAG,"PTELRF"), FLD(LF_ANAG,"TELRF")); set_row(row++,"@20gVariata residenza @f@53gData variazione @s", FLD(LF_ANAG,"VARSLORES"), FLD(LF_ANAG,"DVARSLORES")); row++; set_row(row++,"Domicilio fiscale@20gIndirizzo @s N. @s", FLD(LF_ANAG,"INDRF"), FLD(LF_ANAG,"CIVRF")); com = current_cursor()->curr(LF_ANAG).get("COMRF"); cc = look_com(com); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %s@58gProv. %s@68gCAP %s", (const char*)com, (const char*)a, (const char*)c, (const char*)b); TString flag; const int partic = atoi(get_field(LF_ANAGFIS, "CPARTRF")); switch(partic) { case 2:flag = "Residente all'estero"; break; case 3:flag = "Provvedimenti amministrativi"; break; case 4:flag = "Variata da meno di 60 giorni"; break; default:flag = "Nessuno"; break; }; set_row(row++,"@20gCasi particolari: %s", (const char*)flag); set_row(row++,"@20gDomicilio fiscale diverso da sede legale @f", FLD(LF_ANAG,"RFDIVERSA")); set_row(row++, ""); set_row(row++,"Corrispondenza@20gIndirizzo @s N. @s @s", FLD(LF_ANAG,"INDCORR"), FLD(LF_ANAG,"CIVCORR"), FLD(LF_ANAG, "LOCCORR")); com = current_cursor()->curr(LF_ANAG).get("COMCORR"); cc = look_com(com); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++,"@20gComune %s %s@58gProv. %s@68gCAP %s", (const char*)com, (const char*)a, (const char*)c, (const char*)b); com = current_cursor()->curr(LF_ANAG).get("STATOCORR"); a = com.empty() ? "Italia" : look_tab("%STA",com,"S0"); set_row(row++,"@20gStato %s",(const char*)a); row++; set_row(row++,"Telex@20g@u@s@r/@u@s@r", FLD(LF_ANAG,"PTLEXRF"), FLD(LF_ANAG,"TLEXRFX")); set_row(row++,"Telefax@20g@u@s@r/@u@s@r", FLD(LF_ANAG,"PFAXRF"), FLD(LF_ANAG,"FAXRF")); set_row(row++,"Posta elettronica@20g@s",FLD(LF_ANAG,"MAIL")); set_row(row++,""); set_row(row++,"Ufficio imposte@20gNumero @pn", FLD(LF_ANAG,"UFFIIDD","@@@")); com = current_cursor()->curr(LF_ANAG).get("UFFIIDD"); a = look_tab("%UID",com,"S6"); c = look_tab("%UID",com,"S4"); cc = look_com(a); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); set_row(row++,"@20gComune %s@58gProv. %s", (const char*)a, (const char*)b); set_row(row++,""); set_row(row++,"Esattoria@20gC/C n. %s",(const char*)c); set_row(row++,"@20gComune %s@58gProv. %s", (const char*)a, (const char*)b); set_row(row++,"@20gCodice contribuente @s", FLD(LF_ANAG,"CODCONTR")); set_row(row++,""); // cerca coniuge com = current_cursor()->curr(LF_ANAGFIS).get("CODCONIUGE"); TLocalisamfile& af = current_cursor()->file(LF_ANAG); TRecnotype last = af.recno(); int k = af.getkey(); if (com.not_empty()) { af.curr().zero(); af.setkey(1); af.put("TIPOA","F"); af.put("CODANAGR",com); af.read(); } a = af.get("RAGSOC"); if (com.not_empty()) { af.setkey(k); af.readat(last); b = a.sub(30); a.cut(30); } else a = b = ""; set_row(row++,"Coniuge @pn@20gCognome %s", FLD(LF_ANAGFIS,"CODCONIUGE","@@@@@"), (const char*)a); set_row(row++,"@20gNome %s", (const char*)b); set_row(row++,""); TString16 tipo_stampa; const int tipo = current_cursor()->curr(LF_ANAG).get_int("TIPOSTDEL"); if (tipo == 0) tipo_stampa = "Delega"; else if (tipo == 1) tipo_stampa = "Bollettino"; else tipo_stampa = "Distinta"; set_row(row++,"Dati conto fiscale @20gTitolare conto fiscale @54g@f @60gTipo stampa %s", FLD(LF_ANAG,"TITCF"), (const char*) tipo_stampa); set_row(row++,"@20gCodice ABI @pn @60gCAB @pn", FLD(LF_ANAG,"CODABI","@@@@@"), FLD(LF_ANAG,"CODCAB","@@@@@")); tipo_stampa = current_cursor()->curr(LF_ANAG).get("UFFCONC"); if (tipo_stampa.empty()) { TString cod = current_cursor()->curr(LF_ANAG).get("COMRF"); if (cod.empty()) cod = current_cursor()->curr(LF_ANAG).get("COMRES"); if (cod.not_empty()) { cc = look_com(cod); tipo_stampa = cc.get("UFFCONC"); } } set_row(row++,"@20gConto fiscale %s @s", (const char*)tipo_stampa, FLD(LF_ANAG,"COFI")); set_row(row++,""); set_row(row++,"Dati Statistici@20gNon residente@53g@f", FLD(LF_ANAG,"SOGGNRES")); set_row(row++,"@20gEventi naturali eccezionali@53g@s", FLD(LF_ANAG,"EVECC")); set_row(row++,"@20gResidente in zone terremotate@53g@f", FLD(LF_ANAG,"RESZTERR")); set_row(row++,"@20gStato civile@53g@t", FLD(LF_ANAGFIS,"STATCIV")); set_row(row++,"@20gData variazione stato civile@53g@D", FLD(LF_ANAGFIS,"DVARSCIV")); set_row(row++,"@20gTitolo di studio@53g@t", FLD(LF_ANAGFIS,"TITSTU")); row ++; a = look_tab("%STT", current_cursor()->curr(LF_ANAG).get("CODSTAT1"),"S0"); set_row(row++,"@20gSigla stat.1 @7s %s", FLD(LF_ANAG,"CODSTAT1"), (const char*)a); a = look_tab("%STT",current_cursor()->curr(LF_ANAG).get("CODSTAT2"),"S0"); set_row(row++,"@20gSigla stat.2 @7s %s", FLD(LF_ANAG,"CODSTAT2"), (const char*)a); a = look_tab("%STT",current_cursor()->curr(LF_ANAG).get("CODSTAT3"),"S0"); set_row(row++,"@20gSigla stat.3 @7s %s", FLD(LF_ANAG,"CODSTAT3"), (const char*)a); set_row(row++,""); set_row(row++,"Aggiornato il@20g@s", FLD(LF_ANAG, "DATAAGG")); const int l = printer().rows(); for (int i = 50; i <= l; i++) set_row(i, ""); } void TAnaprint_app::set_scheda_ditta() { // always at top level TString zio = current_cursor()->curr(LF_NDITTE).get("RAGSOC"); _bk_ditta = set_bookmark(zio, _pr_what == nditte ? -1 : _bk_ana); set_row(1,"@bSCHEDA DITTA @r@u@pn@r@20g@bDenominaz. sociale @r@u@s", FLD(LF_NDITTE,"CODDITTA","@@@@@"), FLD(LF_NDITTE,"RAGSOC")); set_row(2,"Albo artigiani@20gIscrizione all'albo @f@55gnum. @s", FLD(LF_NDITTE,"ARTIG"), FLD(LF_NDITTE,"NISCRAA")); TString a = look_com(current_cursor()->curr(LF_NDITTE).get("COMAA")).get("DENCOM"); set_row(3,"@20gLocalita' %s@55gData @D", (const char*)a, FLD(LF_NDITTE,"DATAISCRAA")); set_row(4,"Attivita'"); a = look_tab("%AIS",current_cursor()-> curr(LF_NDITTE).get("CODATTPREV")); // TBC set_row(5,"prevalente@20gCod. @pn Desc. %s", FLD(LF_NDITTE,"CODATTPREV","@@@@@"), (const char*)a); // set_row(6,"@20gGestione piu' attivita'"); set_row(6,"@20gFrequenza versamenti@54g@t", FLD(LF_NDITTE,"FREQVIVA")); set_row(7,"@20gTenuta contabilita' ordinaria@54g@f", FLD(LF_NDITTE,"CONTORD")); set_row(8,"@20gDatore di lavoro@54g@t", FLD(LF_NDITTE,"DATLAV")); set_row(9,"@20gData inizio attivita'@54g@D", FLD(LF_NDITTE,"DINIZIOATT")); long codice = current_cursor()->curr(LF_NDITTE).get_long("FIRMAT"); TString firmat,rappr; TLocalisamfile ana(LF_ANAG); ana.put("TIPOA", "F"); ana.put("CODANAGR",codice); if (ana.read() == NOERR) firmat = ana.get("RAGSOC"); firmat.strip_d_spaces(); set_row(10,"Firmatario@20g@s @30g%s",FLD(LF_NDITTE,"FIRMAT"),(const char *)firmat); codice = current_cursor()->curr(LF_NDITTE).get_long("RAPPR"); ana.put("TIPOA", "F"); ana.put("CODANAGR",codice); if (ana.read() == NOERR) rappr = ana.get("RAGSOC"); rappr.strip_d_spaces(); set_row(11,"Rappresentante@20g@s @30g%s",FLD(LF_NDITTE,"RAPPR"),(const char *)rappr); set_row(12,"Altri dati@20gRiferimento @u@s@r @54gTel. @u@4S@r/@u@S@r", FLD(LF_NDITTE,"PERRIF"), FLD(LF_NDITTE,"PTEL"), FLD(LF_NDITTE,"TEL")); set_row(13,"@20gGestione magazzino @f", FLD(LF_NDITTE,"REGMAG")); set_row(14,"@20gNumero unita' locali @n@54gNum.enasarco @s", FLD(LF_NDITTE,"NULC"), FLD(LF_NDITTE,"NENASARCO")); set_row(15,"Banca di appoggio"); TString16 abicab = get_field(LF_NDITTE, "ABIBAN"); if (abicab.not_empty() && abicab != "00000") { set_row(15,"@20gABI %s@40g%s", (const char*)abicab, look_tab("%BAN", abicab)); const TString16 cab = get_field(LF_NDITTE, "CABBAN"); if (cab.not_empty() && cab != "00000") { abicab << cab; set_row(16,"@20gCAB %s@40g%s", (const char*)cab, look_tab("%BAN", abicab)); } } set_row(17,"Stato@20g@t",FLD(LF_NDITTE,"STATOSOC")); set_row(18,""); } void TAnaprint_app::set_scheda_attiv() { const TString descr(current_cursor()->curr(LF_ATTIV).get("DESCR")); _bk_attiv = set_bookmark(descr, _bk_ditta); set_row(1,"@bATTIVITA'@r @s@20g@bDescrizione:@r %s", FLD(LF_ATTIV,"CODATT","@@@@@"), (const char*)descr); set_row(2,"@20gRegime agricolo@67g@f", FLD(LF_ATTIV,"REGAGR")); set_row(3,"@20gRegime speciale agenzie di viaggio (art.74ter)@67g@f", FLD(LF_ATTIV,"REG74TER")); set_row(4,"@20gAttivita' stagionale@67g@f", FLD(LF_ATTIV,"ATTSTAG")); set_row(5,"@20gAttivita' esercitata in piu' luoghi@67g@f", FLD(LF_ATTIV,"ESLUOGHID")); set_row(6,"@20gData inizio attivita'@60g@D", FLD(LF_ATTIV,"DATAISCIVA")); set_row(7,"@20gData variazione attivita'@60g@D", FLD(LF_ATTIV,"DATAVARIVA")); set_row(8,"@20gData cessazione attivita'@60g@D", FLD(LF_ATTIV,"DCESSATT")); set_row(9,"@20g@bCONSERVAZIONE SCRITTURE CONTABILI@r"); // cerca depositario TString com = get_field(LF_ATTIV,"CODANGRDS"); TString a = get_field(LF_ATTIV,"TIPOADS"); TLocalisamfile& af = current_cursor()->file(LF_ANAG); TRecnotype last = af.recno(); af.zero(); int k = af.getkey(); af.setkey(1); af.put("CODANAGR",com); af.put("TIPOA",a); const bool exists = af.read() == NOERR; TString b,z,c; com = ""; if (exists) // legge i dati del depositario solo se l'anagrafica esiste... { b = af.get("RAGSOC"); com = af.get("INDRF"); z = af.get("CIVRF"); c = af.get("COMRF"); if (com.empty()) com = af.get("INDRES"); if (c.empty()) c = af.get("COMRES"); if (z.empty()) z = af.get("CIVRES"); } TRectype& cm = look_com(c); af.readat(last); af.setkey(k); set_row(10,"Depositario@20gCodice @pn (%s): %s", FLD(LF_ATTIV,"CODANGRDS"), c == 'F' ? "p.f." : "p.g.", (const char*)b); set_row(11,"@20gIndirizzo %s N. %s", (const char*)com, (const char*)z); a = exists ? cm.get("DENCOM") : ""; b = exists ? cm.get("PROVCOM") : ""; c = exists ? cm.get("CAPCOM") : ""; set_row(12,"@20gComune %s@58gProv. %s@68gC.a.p. %s", (const char*)a, (const char*)b, (const char*)c); set_row(13,"@20gTenuta scritture parziali@68g@f", FLD(LF_ATTIV,"TSCRPARZ")); set_row(14,"Luogo@20gIndirizzo @s N. @s", FLD(LF_ATTIV,"INDCS"), FLD(LF_ATTIV,"CIVCS")); cm = look_com(get_field(LF_ATTIV,"COMCS")); a = cm.get("DENCOM"); b = cm.get("PROVCOM"); c = cm.get("CAPCOM"); set_row(15,"@20gComune %s@58gProv. %s@68gC.a.p. %s", (const char*)a, (const char*)b, (const char*)c); set_row(16,"@20gTelefono @s/@s", FLD(LF_ATTIV,"PTELCS"), FLD(LF_ATTIV,"TELCS")); set_row(17,""); set_row(18,""); } void TAnaprint_app::set_scheda_registro() { /* TBI */ } void TAnaprint_app::set_scheda_unloc() { // always at top level TString zio = current_cursor()->curr(LF_UNLOC).get("CODULC"); zio.insert("U.L. ",0); _bk_unloc = set_bookmark(zio, _bk_attiv); set_row(1,"@bUNITA' LOCALE@20gCodice @r@u@pn@r", FLD(LF_UNLOC,"CODULC","@@@")); set_row(2,"@20g@bIndirizzo@r@u @s@r@68g@bNumero @r@u@s", FLD(LF_UNLOC,"INDULC"), FLD(LF_UNLOC,"CIVULC")); TRectype& cc = look_com(get_field(LF_UNLOC,"COMULC")); TString a = cc.get("DENCOM"); TString b = cc.get("PROVCOM"); TString c = cc.get("CAPCOM"); set_row(3,"@20g@bComune@r@4j@u%s@r@58g@bProv.@r @u%s@r@68g@b" "C.a.p.@r @u%s", (const char*)a, (const char*)b, (const char*)c); set_row(4,""); set_row(5,"C.C.I.A.A.@20gNumero@30g@pn", FLD(LF_UNLOC,"NUMCCIAA","@@@@@@@")); cc = look_com(get_field(LF_UNLOC,"COMCCIAA")); a = cc.get("DENCOM"); set_row(6,"@20gComune@30g%s", (const char*)a); set_row(7,"@20gData iscrizione @D@48gData ultima variazione @D", FLD(LF_UNLOC,"DATAICCIAA"), FLD(LF_UNLOC,"DATAVCCIAA")); set_row(8,""); set_row(9,"Autorizzazioni@20gN. R.E.C. @30g@pn@41gComunale n. @pn " "PS n. @pn Altre @s", FLD(LF_UNLOC,"NUMREC","@@@@@@@"), FLD(LF_UNLOC,"AUTCOM","@@@@@"), FLD(LF_UNLOC,"AUTPS","@@@@@@@"), FLD(LF_UNLOC,"ALTAUT")); set_row(10,""); set_row(11,"Posizioni@20gINPS n.@30g@s INAIL n. @s", FLD(LF_UNLOC,"POSINPS"), FLD(LF_UNLOC,"POSINAIL")); set_row(12,""); set_row(13, "Numero Registro Imprese@30g@pn", FLD(LF_UNLOC, "REGIMP", "@@ @@@ @@@@ @@@@@@@@@ @")); zio = get_field(LF_UNLOC,"COMTRIB"); cc = look_com(zio); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); c = get_field(LF_UNLOC, "CAPTRIB"); if (c.empty()) c = cc.get("CAPCOM"); set_row(14,"Comune tribunale@20g%s %s@58gProv. %s@68gC.a.p. %s", (const char*)zio, (const char*)a, (const char*)b, (const char*)c); set_row(15,""); set_row(16,"Locali destinati"); set_row(17,"all'attivita'@20gMq.Locali @pn Di cui a magazzino @pn", FLD(LF_UNLOC,"MQULC","@@@@@"), FLD(LF_UNLOC,"MQULCMAG","@@@@@")); set_row(18,""); } void TAnaprint_app::set_scheda_socio() { int rw; TString b1, b2, b3; TLocalisamfile& ana = current_cursor()->file(LF_ANAG); TLocalisamfile& soc = current_cursor()->file(LF_SOCI); TRecnotype rno = ana.recno(); int k = ana.getkey(); ana.zero(); ana.put("TIPOA",soc.get("TIPOASOC")); ana.put("CODANAGR",soc.get("CODANAGRSO")); if (ana.read() == NOERR) { TString ragsoc(ana.get("RAGSOC")); TString indres(ana.get("INDRES")); TString cofi(ana.get("COFI")); TString paiv(ana.get("PAIV")); const char pre_att = soc.get("ATTPREC")[0]; TString zio("Socio "); zio << soc.get("CODANAGRSO"); zio << "("; zio << soc.get("TIPOASOC") << "): "; zio << ragsoc; _bk_socio = set_bookmark(zio, _bk_ditta); TString codconiuge = ""; TLocalisamfile* anaf; if (soc.get("TIPOASOC") == "F") { TRecnotype rn = 0; int kk = 1; TString ragsoc1 = ragsoc.left(30); TString ragsoc2 = ragsoc.right(20); ragsoc1.trim(); ragsoc2.trim(); if (_pr_what == anafis) { anaf = ¤t_cursor()->file(LF_ANAGFIS); rn = anaf->recno(); kk = anaf->getkey(); } else { anaf = new TLocalisamfile(LF_ANAGFIS); } anaf->zero(); anaf->put("CODANAGR",soc.get("CODANAGRSO")); anaf->read(); TRectype& com = look_com(anaf->get("COMNASC")); set_row(1,"@bSOCIO@r @s / @pn@20g@bCognome@r %s", FLD(LF_SOCI,"TIPOASOC"), FLD(LF_SOCI,"CODANAGRSO","@@@@@"), (const char*)ragsoc1); set_row(2,"@20g@bNome@r %s@53g@bCod.fisc.@r %s", (const char*)ragsoc2, (const char*)cofi); set_row(3,"@20g@bSocio anno %s@r ", pre_att == 'P' ? "precedente" : "attuale"); set_row(4,""); b1 = anaf->get_date("DATANASC").string(full); b2 = anaf->get("SESSO"); set_row(5,"Nascita@20gData@30g%S@42gSesso %S", (const char*)b1, (const char*)b2); b1 = com.get("DENCOM"); b2 = com.get("PROVCOM"); set_row(6,"@20gComune@30g%S@58gProv. %S", (const char*)b1, (const char*)b2); rw = 7; codconiuge = "Cod.coniuge "; codconiuge << anaf->get("CODCONIUGE"); if (_pr_what == anafis) { anaf->setkey(kk); anaf->readat(rn); } else delete anaf; } else { set_row(1,"@bSOCIO@r @S / @pN@20gR.soc. %s", FLD(LF_SOCI,"TIPOASOC"), FLD(LF_SOCI,"CODANAGRSO","@@@@@"), (const char*)ragsoc); set_row(2,"@20gCod.fisc. %s P.IVA %s", (const char*)cofi, (const char*)paiv); set_row(3,"@20g@bSocio anno %s@r ", pre_att == 'P' ? "precedente" : "attuale"); rw = 4; } set_row(rw,""); TRectype& com = look_com(ana.get("COMRES")); b1 = com.get("DENCOM"); b2 = com.get("PROVCOM"); b3 = com.get("CAPCOM"); set_row(rw+1,"Residenza@20gIndirizzo %S", (const char*)indres); set_row(rw+2,"@20gComune %S@58gProv. %S@68gC.a.p. %S", (const char*)b1, (const char*)b2, (const char*)b3); set_row(rw+3,""); TString car = look_tab("%CRS",soc.get("CODCAR")); TString dataagg(ana.get("DATAAGG")); set_row(rw+4,"Carica@20gCod. @pN@30g%s@62gScadenza @lD", FLD(LF_SOCI,"CODCAR","@@"), (const char*)car, FLD(LF_SOCI,"SCADCAR")); set_row(rw+5,"Azioni@20gN.quote @N = @7.3N%% Redd. @7.3N%% Perd. @7.3N%%", FLD(LF_SOCI,"NQUOTEAZ"), FLD(LF_SOCI,"PERCQUAZ"), FLD(LF_SOCI,"PERCAZREDD"), FLD(LF_SOCI,"PERCAZPERD")); set_row(rw+6,"@20gTitolo proprieta' @S Emolumento @pN", FLD(LF_SOCI,"TITPROP"), FLD(LF_SOCI,"EMOLUMENTO","###.###.###.###")); set_row(rw+7,"%% rit.su dividendi @7.3n%% Tipo azione @s " "Partecipaz. assemblea @f", FLD(LF_SOCI,"PERCRITDIV"), FLD(LF_SOCI,"TIPOAZ"), FLD(LF_SOCI,"PARTASS")); set_row(rw+8,"Modello 740 @s @57g%s", FLD(LF_SOCI,"Q740"), (const char*)codconiuge); set_row(rw+9,"Attiv. prevalente @f@37gQuadro 750 @s @53g" "Mesi lavorati art.120 c1 @2n", FLD(LF_SOCI,"ATTPREV"), FLD(LF_SOCI,"QUATTPREV"), FLD(LF_SOCI,"MLAV120C1")); set_row(rw+10,"@20gRichiesta qualifica @s@53gMesi lavorati art.120 c2 @2n", FLD(LF_SOCI,"RICQUAL"), FLD(LF_SOCI,"MLAV120C2")); set_row(rw+11,"Note@20g@s", FLD(LF_SOCI,"NOTE")); set_row(rw+12,"Data ultimo agg. @20gAnagrafica %s @53gSocio @d", (const char*)dataagg, FLD(LF_SOCI,"DATAAGG")); set_row(rw+13,""); set_row(rw+14,""); } ana.setkey(k); ana.readat(rno); } void TAnaprint_app::set_rubriche() { // preprocess_page will fill the vars set_row(2,"@32g@35S", FLD(LF_ANAG,"INDRES")); set_row(3,"@32g#-24T CAP #5T PR #2T", &_com, &_cap, &_prov); set_row(4,"@32gTel. #-36T", &_phone); set_row(5,""); if (_pr_what == nditte) { set_row(1,"@b$[r]@pN@r$[n]@3j@50S", FLD(LF_NDITTE,"CODDITTA","@@@@@"), FLD(LF_NDITTE,"RAGSOC")); } else if (_pr_what == anafis) { set_row(1,"@b$[b]@pN$[n]@r@3j#T", FLD(LF_ANAG,"CODANAGR","@@@@@"), &_surname_name); } else { set_row(1,"@b$[b]@pN$[n]@r@3j@50S", FLD(LF_ANAG,"CODANAGR","@@@@@"), FLD(LF_ANAG,"RAGSOC")); set_row(4,"@56g Rif @12S", FLD(LF_ANAGGIU,"PERRIF")); } } void TAnaprint_app::set_elenco() { switch(_pr_what) { case anafis: case anagiu: if (_pr_what == anafis) { set_row(1,"$[b]@pN$[n]@7g#T", FLD(LF_ANAG,"CODANAGR","@@@@@"), &_surname_name); } else { set_row(1,"$[b]@pN$[n]@7g@50S", FLD(LF_ANAG,"CODANAGR","@@@@@"), FLD(LF_ANAG,"RAGSOC")); } if (_inclditte) set_row(1,"@58g$[r]@pN$[n]@66g@S", FLD(LF_NDITTE,"CODDITTA","@@@@@"), FLD(LF_NDITTE,"RAGSOC")); break; case nditte: set_row(1,"$[r]@pN$[n]@10g@S@50g@S @pN@3j@S", FLD(LF_NDITTE,"CODDITTA","@@@@@"), FLD(LF_NDITTE,"RAGSOC"), FLD(LF_NDITTE,"TIPOA"), FLD(LF_ANAG, "CODANAGR", "@@@@@"), FLD(LF_ANAG, "RAGSOC")); break; } set_row(2,""); } void TAnaprint_app::set_schede() { switch(_pr_what) { case anafis: set_scheda_anafis(); break; case anagiu: set_scheda_anagiu(); break; case nditte: set_scheda_ditta(); break; } } void TAnaprint_app::set_headers() { reset_header(); set_background(); if (_pr_type == elenco) { switch(_pr_what) { case anafis: case anagiu: set_background("W1l{1 2 132 2}W4l{1 5 132 5}"); set_header(1,"@bELENCO PERSONE %s@82gStudio@96gData" "@101g @< @110g Pag. @#", _pr_what == anafis ? "FISICHE" : "GIURIDICHE"); set_header(3,"@iCodice@58gCodice"); set_header(4,"@iAnagr. Ragione sociale/cognome e nome@58gDitta" "@66gDenominazione sociale"); set_header(6,""); break; case nditte: set_background("W1l{1 2 132 2}W4l{1 5 132 5}"); set_header(1,"@bELENCO DITTE@82gStudio@96gData" "@101g @< @110g Pag. @#"); set_header(3,"@iCodice@50gT"); set_header(4,"@iAnagr. Denominazione sociale@50gP Codice" "@61gRagione sociale/Cognome e nome"); set_header(6,""); } printer().headerlen(6); } else if (_pr_type == rubriche) { switch (_pr_what) { case anafis: case anagiu: #if XVT_OS != XVT_OS_SCOUNIX set_background("W1l{1 2 132 2}W4l{1 4 132 4}"); #else set_header(2,(const char*)sep); set_header(4,(const char*)sep); #endif set_header(1,"@bRUBRICA PERSONE %s@40gStudio@53gData @< pag. @#", _pr_what == anagiu ? "GIURIDICHE" : "FISICHE"); set_header(3,"@iCodice Cognome e nome"); set_header(5,""); break; case nditte: #if XVT_OS != XVT_OS_SCOUNIX set_background("W1l{1 2 132 2}W4l{1 4 132 4}"); #else set_header(2,(const char*)sep); set_header(4,(const char*)sep); #endif set_header(1,"@bRUBRICA DITTE@40gStudio@53gData @< pag. @#"); set_header(3,"@iCodice Cognome e nome"); set_header(5,""); break; } printer().headerlen(5); } else if (_pr_type == schede) { set_header(1,""); printer().headerlen(1); } } void TAnaprint_app::set_footers() { reset_footer(); if (_pr_type == schede && _inclditte) printer().footerlen(1); else printer().footerlen(0); } void TAnaprint_app::set_etichette() { int namerow = 0; for (int i = 2; i <= _rows_et; i++) set_row(i, ""); if (_is_piv) { set_row(_piv_row, TString(format("@%dg#t", _piv_col)), &_cofi); _frpos[_piv_row - 1] = TRUE; } if (_is_cod) { set_row(_cod_row, TString(format("@%dg#t", _cod_col)), &_cod); _frpos[_cod_row - 1] = TRUE; } // name goes in first free row for (i = 0; i < _rows_et; i++) { if (!_frpos[i]) { if (namerow == 0) namerow = i; } } namerow++; reset_row(namerow); if (_pr_what == anagiu) set_row(namerow,TString(format("@%dg#t",_ind_col)), &_name); else { set_row(namerow,TString(format("@%dg#t #t #t",_ind_col)), &_sex, &_name, &_surname); } set_row(_ind_row,TString(format("@%dg#t #t", _ind_col)), &_address, &_civ); set_row(_ind_row+1, TString(format("@%dg#t #t #t #t", _ind_col)), &_loc, &_cap, &_com, &_prov); if (!_stato.empty()) { // print state on first free row for (i = _ind_row+1; i < _rows_et; i++) if (!_frpos[i] && i != (namerow - 1)) set_row(i+1, TString(format("@%dg#t", _ind_col)), &_stato); } }