// ************************************************************************ // Stampa anagrafiche (ba6 -0) // Settaggio stampe // ************************************************************************ #include "ba6100.h" 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++,TR("SCHEDA SOCIETA'")); set_row(row++,""); set_row(row++,FR("@bCodice@r@15g@u@pn@25g@r@bRag.Sociale @r@u@50s"), FLD(LF_ANAG,"CODANAGR","@@@@@"), FLD(LF_ANAG,"RAGSOC")); set_row(row++,FR("@25g@bEvent. sigla@r@40g@u@20s"), FLD(LF_ANAGGIU,"SIGLA")); set_row(row++, FR("Oggetto soc.@15g@60s"), FLD(LF_ANAGGIU,"OGGSOC")); set_row(row++, FR("Codice Fiscale@20g@16s@46gPartita IVA @12s"), FLD(LF_ANAG,"COFI"), FLD(LF_ANAG,"PAIV")); set_row(row++,FR("Riferimento@15g@20s"), FLD(LF_ANAGGIU,"PERRIF")); set_row(row++,""); set_row(row++, FR("Sede legale@20gIndirizzo @35s N. @s"), FLD(LF_ANAG,"INDRES"), FLD(LF_ANAG,"CIVRES")); TString com = get_field(LF_ANAG, "COMRES"); TString sta = get_field(LF_ANAG, "STATORES"); const TRectype& cc = look_com(com, sta); TString a = cc.get("DENCOM"); TString b = cc.get("CAPCOM"); TString c = cc.get("PROVCOM"); set_row(row++,FR("@20gComune %s %-24s@58gProv. %2s@68gCAP %5s"), (const char*)com, (const char*)a, (const char*)c, (const char*)b); a = sta.empty() ? TR("Italia") : look_tab("%STA",sta); set_row(row++, FR("@20gStato %s"),(const char*)a); set_row(row++, FR("@20gTelefono @u@10s@r/@u@30s@r"), FLD(LF_ANAG,"PTELRF"), FLD(LF_ANAG,"TELRF")); set_row(row++,""); set_row(row++, FR("Domicilio fiscale@20gIndirizzo @35s N. @s"), FLD(LF_ANAG,"INDRF"), FLD(LF_ANAG,"CIVRF")); com = current_cursor()->curr(LF_ANAG).get("COMRF"); look_com(com); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++,FR("@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++, FR("Corrispondenza@20gIndirizzo @35s N. @s @35s"), FLD(LF_ANAG,"INDCORR"), FLD(LF_ANAG,"CIVCORR"), FLD(LF_ANAG,"LOCCORR")); com = get_field(LF_ANAG, "COMCORR"); sta = get_field(LF_ANAG, "STATOCORR"); look_com(com, sta); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %-24s@58gProv. %2s@68gCAP %5s"), (const char*)com, (const char*)a, (const char*)c, (const char*)b); a = sta.empty() ? TR("Italia") : look_tab("%STA",sta); set_row(row++, FR("@20gStato %s"),(const char*)a); set_row(row++,""); set_row(row++, FR("Telex@20g@u@10s@r/@u@30s@r"), FLD(LF_ANAG,"PTLEXRF"), FLD(LF_ANAG,"TLEXRFX")); set_row(row++, FR("Telefax@20g@u@10s@r/@u@30s@r"), FLD(LF_ANAG,"PFAXRF"), FLD(LF_ANAG,"FAXRF")); set_row(row++, FR("Posta elettronica@20g@s"), FLD(LF_ANAG,"MAIL")); set_row(row++,""); set_row(row++, FR("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 look_com(com); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %-24s@58gProv. %s"), (const char*)com, (const char*)a, (const char*)b); set_row(row++,FR("Ufficio IVA@20gNumero @pn"), FLD(LF_ANAG,"UFFIVA","@@@")); com = look_tab("%UIV",get_field(LF_ANAG, "UFFIVA"),"S6"); look_com(com); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %-24s@58gProv. %s"), (const char*)com, (const char*)a, (const char*)b); set_row(row++,FR("Esattoria@20gComunale @02s Provinciale @03s C.C. %s"), FLD(LF_ANAG,"CODCONTR",0,2), FLD(LF_ANAG,"CODCONTR",2,5), (const char*)c); set_row(row++, FR("@20gCodice contribuente @8s @2s"), FLD(LF_ANAG,"CODCONTR", 5, 13), FLD(LF_ANAG,"CODCONTR", 13, 15)); //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 = TR("Delega"); else if (tipo == 1) tipo_stampa = TR("Bollettino"); else tipo_stampa = TR("Distinta"); set_row(row++,FR("Dati conto fiscale @20gTitolare conto fiscale @54g@f @60gTipo stampa %s"), FLD(LF_ANAG,"TITCF"), (const char*) tipo_stampa); tipo_stampa = current_cursor()->curr(LF_ANAG).get("UFFCONC"); if (tipo_stampa.empty()) { TString cod = get_field(LF_ANAG, "COMRF"); TString sta; if (cod.empty()) { cod = get_field(LF_ANAG, "COMRES"); sta = get_field(LF_ANAG, "STATORES"); } if (cod.not_empty()) { look_com(cod, sta); tipo_stampa = cc.get("UFFCONC"); } } set_row(row++,FR("@20gConto fiscale %s @s"), (const char*)tipo_stampa, FLD(LF_ANAG,"COFI")); TString16 abicab = get_field(LF_ANAG, "CODABI"); if (abicab.not_empty() && abicab != "00000") { set_row(row++,FR("@20gABI %s@30g%s"), (const char*)abicab, look_tab("%BAN", abicab)); const TString16 cab = get_field(LF_ANAG, "CODCAB"); if (cab.not_empty() && cab != "00000") { abicab << cab; set_row(row++, FR("@20gCAB %s@30g%s"), (const char*)cab, look_tab("%BAN", abicab)); } } set_row(row++,""); // dati atto costitutivo etc set_row(row++, TR("Dati atto costitutivo e statuto")); set_row(row++, FR("Estremi@20g@60s"), FLD(LF_ANAGGIU,"ESTROMOL")); set_row(row++, FR("Omologa@25g@ld@41gData iscrizione@70g@ld"), FLD(LF_ANAGGIU,"DATAOMOL"), FLD(LF_ANAGGIU,"DATAISCRIZ")); set_row(row++, FR("Data costituzione@25g@ld@41gDurata sino@70g@ld"), FLD(LF_ANAGGIU,"DATACOST"), FLD(LF_ANAGGIU,"DATASCAD")); TString cod = get_field(LF_ANAGGIU,"COMCOST"); look_com(cod); set_row(row++, FR("Luogo costituzione@20g%s %s"), (const char*)cod, (const char*)cc.get("DENCOM")); set_row(row++, FR("Termine appr. bilancio@25g@d@41gApprovazione bilancio@70g@d"), FLD(LF_ANAGGIU,"DATATAPPBI"), FLD(LF_ANAGGIU,"DATAAPPBIL")); set_row(row++, FR("Scad.org.amministrativo@25g@d@41gScadenza collegio sindacale@70g@d"), FLD(LF_ANAGGIU,"DATASORAMM"), FLD(LF_ANAGGIU,"DATASCSIND")); set_row(row++,""); set_row(row++, FR("@5gCapit.sociale@24gCapit.versato@47gFatturato@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++, FR("Dati Statistici@20gNon residente@61g@f"), FLD(LF_ANAG,"SOGGNRES")); set_row(row++, FR("@20gEventi naturali eccezionali@61g@s"), FLD(LF_ANAG,"EVECC")); set_row(row++, FR("@20gResidente in zone terremotate@61g@f"), FLD(LF_ANAG,"RESZTERR")); // *TBI* traduzione natura giuridica set_row(row++, FR("@20gNatura giuridica@61g@s"), FLD(LF_ANAGGIU,"NATGIU")); set_row(row++, FR("@20gStato societa'@51g@20,rt"), FLD(LF_ANAGGIU,"STATOSOC")); set_row(row++, FR("@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++, FR("@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++, FR("@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++, FR("@20gSigla stat.3 @7s %-50s"), FLD(LF_ANAG,"CODSTAT3"), (const char*)a); // NOTE set_row(row++, TR("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++, FR("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++, TR("SCHEDA PERSONA FISICA")); set_row(row++,""); set_row(row++, FR("@bCodice @r@u@pn@20g@r@bCognome @r@u@S"), FLD(LF_ANAG,"CODANAGR","@@@@@"), FLD(LF_ANAG,"RAGSOC",0,29)); set_row(row++, FR("@20g@bNome @r@u@s"), FLD(LF_ANAG,"RAGSOC",30,50)); set_row(row++,""); set_row(row++, FR("Codice Fiscale@20g@s@46gPartita IVA @s"), FLD(LF_ANAG,"COFI"), FLD(LF_ANAG,"PAIV")); set_row(row++, FR("Cod. Fisc. estero@20g@s"), FLD(LF_ANAG,"COFIEST")); set_row(row++, FR("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"); const TRectype& cc = look_com(com); TString a = cc.get("DENCOM"); TString b; // CAPCOM TString c = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %s@58gProv. %s"), (const char*)com, (const char*)a, (const char*)c); row++; set_row(row++, FR("Residenza@20gIndirizzo @s N. @s"), FLD(LF_ANAG,"INDRES"), FLD(LF_ANAG,"CIVRES")); com = get_field(LF_ANAG, "COMRES"); TString sta = get_field(LF_ANAG, "STATORES"); look_com(com, sta); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %s@58gProv. %s@68gCAP %s"), (const char*)com, (const char*)a, (const char*)c, (const char*)b); a = sta.empty() ? TR("Italia") : look_tab("%STA",sta); set_row(row++, FR("@20gStato %s"),(const char*)a); set_row(row++, FR("@20gTelefono @u@s@r/@u@s@r"), FLD(LF_ANAG,"PTELRF"), FLD(LF_ANAG,"TELRF")); set_row(row++, FR("@20gVariata residenza @f@53gData variazione @s"), FLD(LF_ANAG,"VARSLORES"), FLD(LF_ANAG,"DVARSLORES")); row++; set_row(row++, FR("Domicilio fiscale@20gIndirizzo @s N. @s"), FLD(LF_ANAG,"INDRF"), FLD(LF_ANAG,"CIVRF")); com = get_field(LF_ANAG, "COMRF"); look_com(com); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++, FR("@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 = TR("Residente all'estero"); break; case 3:flag = TR("Provvedimenti amministrativi"); break; case 4:flag = TR("Variata da meno di 60 giorni"); break; default:flag = TR("Nessuno"); break; }; set_row(row++, FR("@20gCasi particolari: %s"), (const char*)flag); set_row(row++, FR("@20gDomicilio fiscale diverso da sede legale @f"), FLD(LF_ANAG,"RFDIVERSA")); set_row(row++, ""); set_row(row++, FR("Corrispondenza@20gIndirizzo @s N. @s @s"), FLD(LF_ANAG,"INDCORR"), FLD(LF_ANAG,"CIVCORR"), FLD(LF_ANAG, "LOCCORR")); com = get_field(LF_ANAG, "COMCORR"); sta = get_field(LF_ANAG, "STATOCORR"); look_com(com, sta); a = cc.get("DENCOM"); b = cc.get("CAPCOM"); c = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %s@58gProv. %s@68gCAP %s"), (const char*)com, (const char*)a, (const char*)c, (const char*)b); a = sta.empty() ? TR("Italia") : look_tab("%STA",sta); set_row(row++, FR("@20gStato %s"),(const char*)a); row++; set_row(row++, FR("Telex@20g@u@s@r/@u@s@r"), FLD(LF_ANAG,"PTLEXRF"), FLD(LF_ANAG,"TLEXRFX")); set_row(row++, FR("Telefax@20g@u@s@r/@u@s@r"), FLD(LF_ANAG,"PFAXRF"), FLD(LF_ANAG,"FAXRF")); set_row(row++, FR("Posta elettronica@20g@s"),FLD(LF_ANAG,"MAIL")); set_row(row++,""); set_row(row++, FR("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 look_com(com); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %-24s@58gProv. %s"), (const char*)com, (const char*)a, (const char*)b); set_row(row++, FR("Ufficio IVA@20gNumero @pn"), FLD(LF_ANAG,"UFFIVA","@@@")); com = look_tab("%UIV",get_field(LF_ANAG, "UFFIVA"),"S6"); look_com(com); a = cc.get("DENCOM"); b = cc.get("PROVCOM"); set_row(row++, FR("@20gComune %s %-24s@58gProv. %s"), (const char*)com, (const char*)a, (const char*)b); set_row(row++, FR("Esattoria@20gComunale @02s Provinciale @03s C.C. %s"), FLD(LF_ANAG,"CODCONTR",0,2), FLD(LF_ANAG,"CODCONTR",2,5), (const char*)c); set_row(row++, FR("@20gCodice contribuente @8s @2s"), FLD(LF_ANAG,"CODCONTR", 5, 13), FLD(LF_ANAG,"CODCONTR", 13, 15)); set_row(row++,""); // cerca coniuge com = get_field(LF_ANAGFIS, "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++, FR("Coniuge @pn@20gCognome %s"), FLD(LF_ANAGFIS,"CODCONIUGE","@@@@@"), (const char*)a); set_row(row++, FR("@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 = TR("Delega"); else if (tipo == 1) tipo_stampa = TR("Bollettino"); else tipo_stampa = TR("Distinta"); set_row(row++,FR("Dati conto fiscale @20gTitolare conto fiscale @54g@f @60gTipo stampa %s"), FLD(LF_ANAG,"TITCF"), (const char*) tipo_stampa); tipo_stampa = current_cursor()->curr(LF_ANAG).get("UFFCONC"); if (tipo_stampa.empty()) { TString cod = get_field(LF_ANAG, "COMRF"); TString sta; if (cod.empty()) { cod = get_field(LF_ANAG, "COMRES"); sta = get_field(LF_ANAG, "STATORES"); } if (cod.not_empty()) { look_com(cod,sta); tipo_stampa = cc.get("UFFCONC"); } } set_row(row++, FR("@20gConto fiscale %s @s"), (const char*)tipo_stampa, FLD(LF_ANAG,"COFI")); TString16 abicab = get_field(LF_ANAG, "CODABI"); if (abicab.not_empty() && abicab != "00000") { set_row(row++, FR("@20gABI %s@30g%s"), (const char*)abicab, look_tab("%BAN", abicab)); const TString16 cab = get_field(LF_ANAG, "CODCAB"); if (cab.not_empty() && cab != "00000") { abicab << cab; set_row(row++, FR("@20gCAB %s@30g%s"), (const char*)cab, look_tab("%BAN", abicab)); } } set_row(row++,""); set_row(row++, FR("Dati Statistici@20gNon residente@53g@f"), FLD(LF_ANAG,"SOGGNRES")); set_row(row++, FR("@20gEventi naturali eccezionali@53g@s"), FLD(LF_ANAG,"EVECC")); set_row(row++, FR("@20gResidente in zone terremotate@53g@f"), FLD(LF_ANAG,"RESZTERR")); set_row(row++, FR("@20gStato civile@53g@t"), FLD(LF_ANAGFIS,"STATCIV")); set_row(row++, FR("@20gData variazione stato civile@53g@D"), FLD(LF_ANAGFIS,"DVARSCIV")); set_row(row++, FR("@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++,FR("@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++, FR("@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++, FR("@20gSigla stat.3 @7s %s"), FLD(LF_ANAG,"CODSTAT3"), (const char*)a); set_row(row++,""); set_row(row++, FR("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, FR("@bSCHEDA DITTA @r@u@pn@r@20g@bDenominaz. sociale @r@u@s"), FLD(LF_NDITTE,"CODDITTA","@@@@@"), FLD(LF_NDITTE,"RAGSOC")); set_row(2, FR("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, FR("@20gLocalita' %s@55gData @D"), (const char*)a, FLD(LF_NDITTE,"DATAISCRAA")); set_row(4, FR("Attivita'")); a = look_tab("%AIS",current_cursor()-> curr(LF_NDITTE).get("CODATTPREV")); // TBC set_row(5, FR("prevalente@20gCod. @pn Desc. %s"), FLD(LF_NDITTE,"CODATTPREV","@@@@@"), (const char*)a); // set_row(6,"@20gGestione piu' attivita'"); set_row(6, FR("@20gFrequenza versamenti@54g@t"), FLD(LF_NDITTE,"FREQVIVA")); set_row(7, FR("@20gTenuta contabilita' ordinaria@54g@f"), FLD(LF_NDITTE,"CONTORD")); set_row(8, FR("@20gDatore di lavoro@54g@t"), FLD(LF_NDITTE,"DATLAV")); set_row(9, FR("@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_double_spaces(); set_row(10, FR("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_double_spaces(); set_row(11, FR("Rappresentante@20g@s @30g%s"),FLD(LF_NDITTE,"RAPPR"),(const char *)rappr); set_row(12, FR("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, FR("@20gGestione magazzino @f"), FLD(LF_NDITTE,"REGMAG")); set_row(14, FR("@20gNumero unita' locali @n@54gNum.enasarco @s"), FLD(LF_NDITTE,"NULC"), FLD(LF_NDITTE,"NENASARCO")); set_row(15, TR("Banca di appoggio")); TString16 abicab = get_field(LF_NDITTE, "ABIBAN"); if (abicab.not_empty() && abicab != "00000") { set_row(15, FR("@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, FR("@20gCAB %s@40g%s"), (const char*)cab, look_tab("%BAN", abicab)); } } set_row(17, FR("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, FR("@bATTIVITA'@r @s@20g@bDescrizione:@r %s"), FLD(LF_ATTIV,"CODATT","@@@@@"), (const char*)descr); set_row(2, FR("@20gRegime agricolo@67g@f"), FLD(LF_ATTIV,"REGAGR")); set_row(3, FR("@20gRegime speciale agenzie di viaggio (art.74ter)@67g@f"), FLD(LF_ATTIV,"REG74TER")); set_row(4, FR("@20gAttivita' stagionale@67g@f"), FLD(LF_ATTIV,"ATTSTAG")); set_row(5, FR("@20gAttivita' esercitata in piu' luoghi@67g@f"), FLD(LF_ATTIV,"ESLUOGHID")); set_row(6, FR("@20gData inizio attivita'@60g@D"), FLD(LF_ATTIV,"DATAISCIVA")); set_row(7, FR("@20gData variazione attivita'@60g@D"), FLD(LF_ATTIV,"DATAVARIVA")); set_row(8, FR("@20gData cessazione attivita'@60g@D"), FLD(LF_ATTIV,"DCESSATT")); set_row(9, FR("@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"); } const TRectype& cm = look_com(c); af.readat(last); af.setkey(k); set_row(10,FR("Depositario@20gCodice @pn (%s): %s"), FLD(LF_ATTIV,"CODANGRDS"), c == 'F' ? "p.f." : "p.g.", (const char*)b); set_row(11,FR("@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, FR("@20gTenuta scritture parziali@68g@f"), FLD(LF_ATTIV,"TSCRPARZ")); set_row(14, FR("Luogo@20gIndirizzo @s N. @s"), FLD(LF_ATTIV,"INDCS"), FLD(LF_ATTIV,"CIVCS")); look_com(get_field(LF_ATTIV,"COMCS")); a = cm.get("DENCOM"); b = cm.get("PROVCOM"); c = cm.get("CAPCOM"); set_row(15, FR("@20gComune %s@58gProv. %s@68gC.a.p. %s"), (const char*)a, (const char*)b, (const char*)c); set_row(16, FR("@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, FR("@bUNITA' LOCALE@20gCodice @r@u@pn@r"), FLD(LF_UNLOC,"CODULC","@@@")); set_row(2, FR("@20g@bIndirizzo@r@u @s@r@68g@bNumero @r@u@s"), FLD(LF_UNLOC,"INDULC"), FLD(LF_UNLOC,"CIVULC")); const 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, FR("@20g@bComune@r@4j@u%s@r@58g@bProv.@r @u%s@r@68g@bC.a.p.@r @u%s"), (const char*)a, (const char*)b, (const char*)c); set_row(4,""); set_row(5, FR("C.C.I.A.A.@20gNumero@30g@pn"), FLD(LF_UNLOC,"NUMCCIAA","@@@@@@@")); look_com(get_field(LF_UNLOC,"COMCCIAA")); a = cc.get("DENCOM"); set_row(6, FR("@20gComune@30g%s"), (const char*)a); set_row(7, FR("@20gData iscrizione @D@48gData ultima variazione @D"), FLD(LF_UNLOC,"DATAICCIAA"), FLD(LF_UNLOC,"DATAVCCIAA")); set_row(8,""); set_row(9, FR("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, FR("Posizioni@20gINPS n.@30g@s INAIL n. @s"), FLD(LF_UNLOC,"POSINPS"), FLD(LF_UNLOC,"POSINAIL")); set_row(12,""); set_row(13, FR("Numero Registro Imprese@30g@pn"), FLD(LF_UNLOC, "REGIMP", "@@ @@@ @@@@ @@@@@@@@@ @")); zio = get_field(LF_UNLOC,"COMTRIB"); 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, FR("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, TR("Locali destinati")); set_row(17, FR("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(TR("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(); const TRectype& com = look_com(anaf->get("COMNASC")); set_row(1,FR("@bSOCIO@r @s / @pn@20g@bCognome@r %s"), FLD(LF_SOCI,"TIPOASOC"), FLD(LF_SOCI,"CODANAGRSO","@@@@@"), (const char*)ragsoc1); set_row(2,FR("@20g@bNome@r %s@53g@bCod.fisc.@r %s"), (const char*)ragsoc2, (const char*)cofi); set_row(3, FR("@20g@bSocio anno %s@r "), pre_att == 'P' ? TR("precedente") : TR("attuale")); set_row(4,""); b1 = anaf->get_date("DATANASC").string(full); b2 = anaf->get("SESSO"); set_row(5, FR("Nascita@20gData@30g%S@42gSesso %S"), (const char*)b1, (const char*)b2); b1 = com.get("DENCOM"); b2 = com.get("PROVCOM"); set_row(6, FR("@20gComune@30g%S@58gProv. %S"), (const char*)b1, (const char*)b2); rw = 7; codconiuge = TR("Cod.coniuge "); codconiuge << anaf->get("CODCONIUGE"); if (_pr_what == anafis) { anaf->setkey(kk); anaf->readat(rn); } else delete anaf; } else { set_row(1, FR("@bSOCIO@r @S / @pN@20gR.soc. %s"), FLD(LF_SOCI,"TIPOASOC"), FLD(LF_SOCI,"CODANAGRSO","@@@@@"), (const char*)ragsoc); set_row(2, FR("@20gCod.fisc. %s P.IVA %s"), (const char*)cofi, (const char*)paiv); set_row(3, FR("@20g@bSocio anno %s@r "), pre_att == 'P' ? TR("precedente") : TR("attuale")); rw = 4; } set_row(rw,""); const TString cod_com = ana.get("COMRES"); const TString cod_sta = ana.get("STATORES"); const TRectype& com = look_com(cod_com, cod_sta); b1 = com.get("DENCOM"); b2 = com.get("PROVCOM"); b3 = com.get("CAPCOM"); set_row(rw+1, FR("Residenza@20gIndirizzo %S"), (const char*)indres); set_row(rw+2, FR("@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, FR("Carica@20gCod. @pN@30g%s@62gScadenza @lD"), FLD(LF_SOCI,"CODCAR","@@"), (const char*)car, FLD(LF_SOCI,"SCADCAR")); set_row(rw+5, FR("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, FR("@20gTitolo proprieta' @S Emolumento @pN"), FLD(LF_SOCI,"TITPROP"), FLD(LF_SOCI,"EMOLUMENTO","###.###.###.###")); set_row(rw+7, FR("%% 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, FR("Modello 740 @s @57g%s"), FLD(LF_SOCI,"Q740"), (const char*)codconiuge); set_row(rw+9, FR("Attiv. prevalente @f@37gQuadro 750 @s @53gMesi lavorati art.120 c1 @2n"), FLD(LF_SOCI,"ATTPREV"), FLD(LF_SOCI,"QUATTPREV"), FLD(LF_SOCI,"MLAV120C1")); set_row(rw+10, FR("@20gRichiesta qualifica @s@53gMesi lavorati art.120 c2 @2n"), FLD(LF_SOCI,"RICQUAL"), FLD(LF_SOCI,"MLAV120C2")); set_row(rw+11, FR("Note@20g@s"), FLD(LF_SOCI,"NOTE")); set_row(rw+12, FR("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, FR("@32gTel. #-36T"), &_phone); set_row(5,""); if (_pr_what == nditte) { set_row(1,"@b$[v]@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$[v]@pN$[n]@66g@S", FLD(LF_NDITTE,"CODDITTA","@@@@@"), FLD(LF_NDITTE,"RAGSOC")); break; case nditte: set_row(1,"$[v]@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, FR("@bELENCO PERSONE %s@82gStudio@96gData@101g @> @112g Pag. @#"), _pr_what == anafis ? TR("FISICHE") : TR("GIURIDICHE")); set_header(3, FR("@iCodice@58gCodice")); set_header(4, FR("@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, FR("@bELENCO DITTE@82gStudio@96gData@101g @> @112g Pag. @#")); set_header(3, FR("@iCodice@50gT")); set_header(4, FR("@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: set_background("W1l{1 2 132 2}W4l{1 4 132 4}"); set_header(1, FR("@bRUBRICA PERSONE %s@40gStudio@53gData @> pag. @#"), _pr_what == anagiu ? TR("GIURIDICHE") : TR("FISICHE")); set_header(3,FR("@iCodice Cognome e nome")); set_header(5,""); break; case nditte: set_background("W1l{1 2 132 2}W4l{1 4 132 4}"); set_header(1, FR("@bRUBRICA DITTE@40gStudio@53gData @> pag. @#")); set_header(3, FR("@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; int i; for (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); } }