diff --git a/m770/77as.frm b/m770/77as.frm new file mode 100755 index 000000000..86527e363 --- /dev/null +++ b/m770/77as.frm @@ -0,0 +1,154 @@ +USE 12 +JOIN 9 INTO CODDITTA=CODDITTA +JOIN 6 INTO TIPOA=TIPOASOC CODANAGR=CODANAGRSO +JOIN 8 TO 6 ALIAS 108 INTO CODANAGR=CODANAGR +JOIN 13 TO 108@ ALIAS 113 INTO COM==COMNASC +END + +DESCRIPTION +BEGIN + 12->* "Soci" + 9->* "Ditte" + 6->* "Anagrafica persone fisiche e giuridiche" + 108@->* "Anagrafica persone fisiche" + 113@->* "Comuni (nascita)" +END + +GENERAL +BEGIN + OFFSET 0 0 + FONT "Courier New" + SIZE 11 + CARATTERE "X" + INIZIO_POS 1 1 + FINE_POS 131 + GRID "+++++++++-|" +END + +SECTION HEADER FIRST 9 + +STRINGA 1 +BEGIN + KEY "INTESTAZIONE 1" + PROMPT 1 1 "MOD. 770/96 DICHIARAZIONE DEL SOSTITUTO D'IMPOSTA: DENOMINAZIONE SOSTITUTO" +END + +STRINGA 2 +BEGIN + KEY "INTESTAZIONE 2" + PROMPT 1 3 " ELENCO NOMINATIVO DEGLI AMMINISTRATORI E DEI COMPONENTI DEL COLLEGIO SINDACALE" +END + +STRINGA 3 +BEGIN + KEY "INTESTAZIONE 3" + PROMPT 1 4 " O DI ALTRO ORGANO DI CONTROLLO DELLA SOCIETA' O ENTE" +END + +STRINGA 4 +BEGIN + KEY "INTESTAZIONE 4" + PROMPT 1 5 " (o, in mancanza, dei soggetti che rispondono personalmente delle obbligazioni della societa' o ente)" +END + +STRINGA 5 +BEGIN + KEY "INTESTAZIONE 5" + PROMPT 1 7 "-----------------------------------------------------------------------------------------------------------------------------------" +END + +STRINGA 6 +BEGIN + KEY "INTESTAZIONE 6" + PROMPT 1 8 "N.ord. Cognome e nome Sesso Comune di nascita Prov. Data Codice fiscale Qual." +// 11111111111111111111111111111111 +// 11111111112222222222333333333344444444445555555555666666666677777777778888888888999999999900000000001111111111222222222233 +// 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 +// 12345 123456789012345678901234567890 123456789012345678901 1 12345678901234567890 12 12/12/123 1234567890123456 1 +END + +STRINGA 7 +BEGIN + KEY "INTESTAZIONE 7" + PROMPT 1 9 "-----------------------------------------------------------------------------------------------------------------------------------" +END + +STRINGA 8 +BEGIN + KEY "RAGIONE SOCIALE" + //PROMPT 31 2 "" + PROMPT 82 1 "" + FIELD 9->RAGSOC + FIELD 9->RAGSOC +END + +END + +SECTION BODY ODD 1 + +NUMERO 1 +BEGIN + KEY "N.ORD" + PROMPT 1 1 "" + PICTURE "#####" +END + +STRINGA 2 +BEGIN + KEY "COGNOME" + PROMPT 9 1 "" + FIELD 6->RAGSOC[1,30] +END + +STRINGA 3 +BEGIN + KEY "NOME" + PROMPT 40 1 "" + FIELD 6->RAGSOC[31,50] +END + +STRINGA 4 +BEGIN + KEY "SESSO" + PROMPT 64 1 "" + FIELD 108@->SESSO +END + +STRINGA 5 +BEGIN + KEY "COMUNE DI NASCITA" + PROMPT 69 1 "" + FIELD 113@->DENCOM[1,20] +END + +STRINGA 6 +BEGIN + KEY "PROV. DI NASCITA" + PROMPT 92 1 "" + FIELD 113@->PROVCOM +END + +STRINGA 7 +BEGIN + KEY "DATA DI NASCITA" + PROMPT 98 1 "" + FIELD 108@->DATANASC +END + +STRINGA 8 +BEGIN + KEY "CODICE FISCALE" + PROMPT 109 1 "" + FIELD 6->COFI +END + +STRINGA 9 +BEGIN + KEY "QUALIFICA" + PROMPT 128 1 "" + FIELD 12->RICQUAL +END + +END + +END diff --git a/m770/77stas.cpp b/m770/77stas.cpp new file mode 100755 index 000000000..d9bf0ac8e --- /dev/null +++ b/m770/77stas.cpp @@ -0,0 +1,99 @@ +// stampa allegato soci +#include "77stba.h" +#include "soci.h" + +bool AlleSoci_filter_function(const TRelation* rel) +{ + TString qual(3); + qual = rel->lfile(LF_SOCI).get(SOCI_RICQUAL); + return (qual=="A" || qual=="B" || qual=="C"); +} + +long TAlleSoci::filtra(const long codditta) +{ + TString filtro(24); + _codditta=codditta; + + TLocalisamfile& fl = cursor()->file(LF_SOCI); + TRectype da(fl.curr()); + TRectype a(fl.curr()); + da.zero(); + a.zero(); + da.put(SOCI_CODDITTA, codditta); + da.put(SOCI_ATTPREC, "A"); + da.put(SOCI_TIPOASOC, "F"); + a.put(SOCI_CODDITTA, codditta); + a.put(SOCI_ATTPREC, "A"); + a.put(SOCI_TIPOASOC, "F"); + cursor()->setregion(da, a); + + cursor()->set_filterfunction(AlleSoci_filter_function); + const long items = cursor()->items(); + return items; +} + +void TAlleSoci::set_testata(TPrinter& pr) +{ + TPrint_section& header = section('H', first_page); + header.update(); + const int header_righe = header.height(); + for (int i = 0; i < header_righe; i++) + pr.setheaderline(i, header.row(i)); +} + +void TAlleSoci::stampa_corpo(TPrinter& pr) +{ + TPrint_section& body = section('B', odd_page); + _nprog++; + TForm_item& item_nprog = body.find_field(1); + TString snprog(5); + snprog << _nprog; + item_nprog.set(snprog); + + body.update(); + const int body_righe = body.height(); + for (int i = 0; i < body_righe; i++) + { + pr.print(body.row(i)); + _RigaCorr++; + } + if (usa_progind()) + progind()->addstatus(1); +} + +bool TAlleSoci::print(const long codditta, const long NumFis, const long NumNoFis) +{ + TCursor* cur = cursor(); + TPrinter& pr = printer(); + + const long numsoci = filtra(codditta); + if (numsoci <= 11) + return FALSE; + + (*cur)=0L; + set_testata(pr); + + _RigaCorr=0; + _nprog=0; + + for ((*cur)=0L; cur->ok(); ++(*cur)) + stampa_corpo(pr); + pr.formfeed(); + close_print(); + return TRUE; +} + +bool TStampaAlleSoci::user_create() +{ + _form = new TAlleSoci("77AS", quadro()); + _form->set_cursor(_form->TForm::cursor()); + _cur = _form->cursor(); + _rel = _form->relation(); + return TRUE; +} + +bool TStampaAlleSoci::user_destroy() +{ + delete _form; + return TRUE; +} \ No newline at end of file diff --git a/m770/77stba.h b/m770/77stba.h index ebb56f878..a32c54989 100755 --- a/m770/77stba.h +++ b/m770/77stba.h @@ -323,5 +323,40 @@ class TStampaQuadroAggN : public TStampaQuadro virtual ~TStampaQuadroAggN() { } }; +class TAlleSoci : public TDicForm +{ + long _codditta; + int _nprog; + protected: + void stampa_corpo(TPrinter& pr); + void set_testata(TPrinter& pr); + virtual long filtra(const long codditta); + public: + virtual bool print(const long codditta, const long NumFis = 0, const long NumNoFis = 0); + TAlleSoci(const char* sNomeForm, const char* quadro) : TDicForm(sNomeForm, quadro) {} + virtual ~TAlleSoci() {} + +}; + +class TStampaAlleSoci : public TStampaQuadro +{ + private: + TAlleSoci* _form; + TRelation* _rel; + TCursor* _cur; + + protected: + virtual bool conta_tipi_per() const { return FALSE; } + + virtual TDicForm* get_form() const { return _form; } + virtual TCursor* get_cursor() const { return _cur; } + + virtual bool user_create(); + virtual bool user_destroy(); + + public: + TStampaAlleSoci(const char* quadro, char liv):TStampaQuadro(quadro, liv) {} + virtual ~TStampaAlleSoci() { } +}; #endif diff --git a/m770/soci.h b/m770/soci.h new file mode 100755 index 000000000..82e4cc102 --- /dev/null +++ b/m770/soci.h @@ -0,0 +1,16 @@ +// campi archivio SOCI + + +#define SOCI_CODDITTA "CODDITTA" +#define SOCI_ATTPREC "ATTPREC" +#define SOCI_TIPOASOC "TIPOASOC" +#define SOCI_CODANAGRSO "CODANAGRSO" +#define SOCI_DATAAGG "DATAAGG" +#define SOCI_CODCAR "CODCAR" +#define SOCI_SCADCAR "SCADCAR" +#define SOCI_NQUOTEAZ "NQUOTEAZ" +#define SOCI_PERCQUAZ "PERCQUAZ" +#define SOCI_PERCAZREDD "PERCAZREDD" +#define SOCI_PERCAZPERD "PERCAZPERD" +// MANCANO DEI CAMPI +#define SOCI_RICQUAL "RICQUAL"