diff --git a/co/co0600.cpp b/co/co0600.cpp index 10b38e122..5b6251e2b 100755 --- a/co/co0600.cpp +++ b/co/co0600.cpp @@ -15,12 +15,24 @@ class TCoop_soci_msk : public TAutomask { virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + virtual bool on_key(KEY key); public: void calcola_dati_nascita(const TString& cf, TDate& datanasc, TString8& comnasc); TCoop_soci_msk() : TAutomask("co0600a") {} }; +bool TCoop_soci_msk::on_key(KEY key) +{ + if (key == K_SHIFT + K_F12) + { + TSheet_field & prog = sfield(F_PROGRESSIVI); + + prog.enable(true); + } + return TAutomask::on_key(key); +} + void TCoop_soci_msk::calcola_dati_nascita(const TString& cf, TDate& datanasc, TString8& comnasc) { comnasc = ""; @@ -95,19 +107,64 @@ bool TCoop_soci_msk::on_field_event(TOperable_field& o, TField_event e, long jol else m.reset(F_DATASCALIC); } + break; case F_ANNO: - if (e == fe_init || e == fe_modify) + if (e == fe_init || e == fe_modify || e == fe_close) + { + TSheet_field & prog = sfield(F_PROGRESSIVI); + + prog.disable(); + } + if (e == fe_init || e == fe_modify || e == fe_close) { const long codsocio = get_long(F_CODCF); const int year = atoi(o.get()); + TSheet_field & prog = sfield(F_PROGRESSIVI); + + if (prog.dirty()) + { + if (yesno_box("I progressivi sono stati modificati, li salvo")) + { + TTable psc("PSC"); + for (int month = 1; month <= 12; month++) + { + TToken_string & row = prog.row(month - 1); + psc.zero(); + TString key; + row.add(itom(month), prog.cid2index(F_MESE)); + key.format("%06ld%04d%02d", codsocio, year, month); + psc.put("CODTAB", key); + if (psc.read(_isequal, _lock) == NOERR) + { + psc.put("R0", real(row.get(prog.cid2index(F_CONF)))); + psc.put("R1", real(row.get(prog.cid2index(F_IVA)))); + psc.put("R2", real(row.get(prog.cid2index(F_RIT)))); + psc.put("R3", real(row.get(prog.cid2index(F_ACC8)))); + psc.rewrite(); + } + else + { + psc.unlock(); + psc.zero(); + psc.put("CODTAB", key); + psc.put("R0", row.get(prog.cid2index(F_CONF))); + psc.put("R1", row.get(prog.cid2index(F_IVA))); + psc.put("R2", row.get(prog.cid2index(F_RIT))); + psc.put("R3", row.get(prog.cid2index(F_ACC8))); + psc.write(); + } + } + } + } if (codsocio != 0L && year > 1900) { TTable psc("PSC"); - TSheet_field & prog = sfield(F_PROGRESSIVI); real totconf; real totiva; real totrit; + real totacc8; + prog.destroy(); for (int month = 1; month <= 12; month++) { @@ -123,13 +180,16 @@ bool TCoop_soci_msk::on_field_event(TOperable_field& o, TField_event e, long jol const real conf = psc.get_real("R0"); const real iva = psc.get_real("R1"); const real rit = psc.get_real("R2"); + const real acc8 = psc.get_real("R3"); row.add(conf.string(18,2), prog.cid2index(F_CONF)); row.add(iva.string(18,2), prog.cid2index(F_IVA)); row.add(rit.string(18,2), prog.cid2index(F_RIT)); + row.add(acc8.string(18,2), prog.cid2index(F_ACC8)); totconf += conf; totiva += iva; totrit += rit; + totacc8 += acc8; } } @@ -139,7 +199,10 @@ bool TCoop_soci_msk::on_field_event(TOperable_field& o, TField_event e, long jol row.add(totconf.string(18,2), prog.cid2index(F_CONF)); row.add(totiva.string(18,2), prog.cid2index(F_IVA)); row.add(totrit.string(18,2), prog.cid2index(F_RIT)); + row.add(totacc8.string(18,2), prog.cid2index(F_ACC8)); prog.force_update(); + prog.disable_row(12); + prog.set_dirty(false); } } } diff --git a/co/co0600a.h b/co/co0600a.h index ac9ac6f91..4623bee60 100755 --- a/co/co0600a.h +++ b/co/co0600a.h @@ -66,3 +66,4 @@ #define F_CONF 102 #define F_IVA 103 #define F_RIT 104 +#define F_ACC8 105 diff --git a/co/co0600a.uml b/co/co0600a.uml index db5160296..be200f3c5 100755 --- a/co/co0600a.uml +++ b/co/co0600a.uml @@ -393,11 +393,11 @@ END SPREADSHEET F_PROGRESSIVI 78 13 BEGIN PROMPT 2 7 "Progressivi annuali" - FLAGS "R" - ITEM "Mese" + ITEM "Mese@10" ITEM "Conferimenti@18" ITEM "IVA@18" ITEM "Ritenute@18" + ITEM "Acconto 8%@18" END ENDPAGE @@ -564,7 +564,7 @@ ENDMASK PAGE "Progressivi" -1 -1 75 12 -STRINGA F_MESE 15 +STRINGA F_MESE 10 BEGIN PROMPT 2 2 "Mese " FLAGS "D" @@ -573,19 +573,21 @@ END CURRENCY F_CONF BEGIN PROMPT 2 4 "Conferimenti " - FLAGS "D" END CURRENCY F_IVA BEGIN - PROMPT 2 6 "IVA " - FLAGS "D" + PROMPT 2 6 "IVA " END CURRENCY F_RIT BEGIN PROMPT 2 8 "Ritenute " - FLAGS "D" +END + +CURRENCY F_ACC8 +BEGIN + PROMPT 2 8 "Acconto 8% " END BUTTON DLG_OK 9 2 diff --git a/co/co0700.cpp b/co/co0700.cpp index 85b1fb481..21ce31d50 100755 --- a/co/co0700.cpp +++ b/co/co0700.cpp @@ -89,33 +89,37 @@ bool genera_handler(TMask_field& f, KEY key) TConferimenti_mask& m = (TConferimenti_mask&) f.mask(); TMask select_mask("co0700b"); TDocumento campione(m.doc()); - const TDate datadoc = campione.get_date(DOC_DATADOC); - long codsocio = campione.get_long(DOC_CODCF); - campione.zero(DOC_NDOC); - - if (select_mask.run() == K_ENTER) + if (campione.totale_doc() != ZERO) { - TISAM_recordset recset("USE SOCICOOP\nFROM CODCF=#DASOCIO\nTO CODCF=#ASOCIO"); + const TDate datadoc = campione.get_date(DOC_DATADOC); + long codsocio = campione.get_long(DOC_CODCF); - recset.set_var("#DASOCIO", select_mask.get_long(F_DASOCIO)); - recset.set_var("#ASOCIO", select_mask.get_long(F_ASOCIO)); - for (bool ok = recset.move_first(); ok; ok = recset.move_next()) + campione.zero(DOC_NDOC); + + if (select_mask.run() == K_ENTER) { - const long socio = recset.get(SC_CODCF).as_int(); + TISAM_recordset recset("USE SOCICOOP\nFROM CODCF=#DASOCIO\nTO CODCF=#ASOCIO"); - if (socio != codsocio) + recset.set_var("#DASOCIO", select_mask.get_long(F_DASOCIO)); + recset.set_var("#ASOCIO", select_mask.get_long(F_ASOCIO)); + for (bool ok = recset.move_first(); ok; ok = recset.move_next()) { - const TDate dataass = recset.get(SC_DATAASS).as_date(); - const TDate datarec = recset.get(SC_DATAREC).as_date(); - const bool ok = (!dataass.ok() || dataass <= datadoc) && (!datarec.ok() || datarec >= datadoc); + const long socio = recset.get(SC_CODCF).as_int(); - if (ok) + if (socio != codsocio) { - TDocumento d(campione); + const TDate dataass = recset.get(SC_DATAASS).as_date(); + const TDate datarec = recset.get(SC_DATAREC).as_date(); + const bool ok = (!dataass.ok() || dataass <= datadoc) && (!datarec.ok() || datarec >= datadoc); - d.put(DOC_CODCF, socio); - d.write(); + if (ok) + { + TDocumento d(campione); + + d.put(DOC_CODCF, socio); + d.write(); + } } } } diff --git a/co/co0800.ini b/co/co0800.ini index 3ee6c0adc..e0aa530aa 100755 --- a/co/co0800.ini +++ b/co/co0800.ini @@ -11,8 +11,8 @@ TYPEPOS = -1 [RECORD] LENGTH(0) = 16 LENGTH(1) = 30 -LENGTH(2) = 6 -LENGTH(3) = 4 +LENGTH(2) = 8 +LENGTH(3) = 2 LENGTH(4) = 10 LENGTH(5) = 21 LENGTH(6) = 10 diff --git a/co/co1.cpp b/co/co1.cpp index 3bad6ea87..f3d819e5d 100755 --- a/co/co1.cpp +++ b/co/co1.cpp @@ -15,6 +15,9 @@ int main(int argc, char** argv) case 4: co1500(argc, argv); // Invio mov.coop. a TeamSystem break; + case 8: + co1900(argc, argv); // Stampa progressivi conferimenti + break; default: break; } diff --git a/co/co1.h b/co/co1.h index 6f173863a..5ee328896 100755 --- a/co/co1.h +++ b/co/co1.h @@ -1,3 +1,4 @@ int co1300(int argc, char* argv[]); int co1400(int argc, char* argv[]); int co1500(int argc, char* argv[]); +int co1900(int argc, char* argv[]); diff --git a/co/co1300.cpp b/co/co1300.cpp index ce8262a9e..46be261e6 100755 --- a/co/co1300.cpp +++ b/co/co1300.cpp @@ -79,6 +79,7 @@ class TEstrattoConto_rep : public TDocument_report real _saldocred; real _saldodeb; real _ritenuta; + real _acconto8; TString8 _numrit; TString8 _tiporit; @@ -164,6 +165,7 @@ bool TEstrattoConto_rep::set_usr_val(const TString& name, const TVariant& var) if (name == "#EC_ACC") { incr_field(6, var); + _acconto8 += var.as_real(); return true; } @@ -276,6 +278,7 @@ void TEstrattoConto_rep::chiudi_mese() psc.put("R0", _totconf); psc.put("R1", _iva); psc.put("R2", _ritenuta); + psc.put("R3", _acconto8); psc.rewrite(); } @@ -468,9 +471,10 @@ void TEstrattoConto_rep::chiudi_mese() _saldocred = ZERO; _saldodeb = ZERO; _ritenuta = ZERO; + _acconto8 = ZERO; } -TEstrattoConto_rep::TEstrattoConto_rep(bool genpag, bool chiusura, bool aggiorna) : _genpag(genpag), _chiusura(chiusura), _aggiorna(aggiorna), _saldocred(), _saldodeb(ZERO), _ritenuta(ZERO), _iva(ZERO), _totconf(ZERO) +TEstrattoConto_rep::TEstrattoConto_rep(bool genpag, bool chiusura, bool aggiorna) : _genpag(genpag), _chiusura(chiusura), _aggiorna(aggiorna), _saldocred(), _saldodeb(ZERO), _ritenuta(ZERO), _acconto8(ZERO), _iva(ZERO), _totconf(ZERO) { load("co1300a"); TReport_section& b11 = section('B',11); diff --git a/co/co1300a.rep b/co/co1300a.rep index 8137dbdb2..d6d2a0f00 100755 --- a/co/co1300a.rep +++ b/co/co1300a.rep @@ -1,28 +1,28 @@ - + Stampa Estratto Conto Socio -
- +
+ - + #DATAINI - + - + #DATAFIN - - + + #REPORT.PAGE - - + + 101@.CODCF+' '+TRIM(101@.RAGSOC[1,30])+' '+TRIM(101@.RAGSOC[31,50]) "101@.CODCF" @ @@ -30,66 +30,108 @@ - + 101@.INDCF+" ,"+101@.CIVCF - + 101@.LOCALITACF - + 101@.CAPCF+" "+COMUNI.DENCOM+" ("+COMUNI.PROVCOM+")" - - - - #PARENT.DATADOC - - - - DESCR - - - - #PARENT.NFASTA - - - - Q.ta - - - - 34.PREZZONN - - - - PREZZONS - - - - - - - RITENUTA - - - - IMPCNS - - - - IMPCNS - - - - - - -
MESSAGE RESET,F1.1@
-
+
+ + "logo.jpg" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Q.ta + + + + + + + RITENUTA + + + + IMPCNS + + + + IMPCNS + + + + + + + + + +
@@ -103,7 +145,7 @@ TO CODNUM=#PARENT.CODNUM ANNO=#PARENT.ANNO PROVV=#PARENT.PROVV NDOC=#PARENT.ND #PARENT.DATADOC - + #PARENT.NFASTA @@ -149,7 +191,7 @@ THEN - + 1 "CODNUM" @ @@ -175,7 +217,7 @@ THEN #THIS ! - + 1 #PARENT.SPESMER @@ -188,7 +230,7 @@ DUP #EC_MER ! - + SCONTOR #THIS @ @@ -197,7 +239,7 @@ DUP #EC_ACC ! - + 1 #PARENT.CODNUM @ \ legge il tipodoc @@ -231,7 +273,7 @@ DUP - + 2 #PARENT.CODNUM @ \ legge il tipodoc @@ -265,7 +307,7 @@ DUP -
-
-
- - - - - - - - - - - DESCR - - - - Q.ta - - - - - - - RITENUTA - - - - IMPCNS - - - - IMPCNS - - - - - - - +
+
+ 1 #THIS @ @@ -365,19 +371,19 @@ DUP 1 - + 1 - + 1 - + 1 - + 1 "F1.107" @ \ leggo il contenuto del campo 107 @@ -390,7 +396,7 @@ ELSE THEN ! - + 1 "F1.107" @ \ leggo il contenuto del campo 107 diff --git a/co/co1700a.rep b/co/co1700a.rep index 0a8ce2493..10c595681 100755 --- a/co/co1700a.rep +++ b/co/co1700a.rep @@ -77,7 +77,7 @@ MESSAGE RESET,F3.105 #THIS @ "F3.103" ! - + "DOC.TIPODOC" @ \ leggo il tipo documento "CONF" = IF \ controllo se &#E8; un conferimento "DOC.NETCRED" @ @@ -89,7 +89,7 @@ ELSE \ se non &#E8; un conferimento THEN +! \ lo sommo - + "DOC.TOTRITACC" @ "F3.104" \ lo metto nella coda del gruppo +! \ lo sommo diff --git a/co/co1900.cpp b/co/co1900.cpp new file mode 100755 index 000000000..57ba38546 --- /dev/null +++ b/co/co1900.cpp @@ -0,0 +1,95 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "co1.h" +#include "co1900a.h" + +#include "socicoop.h" + +//////////////////////////////////////////////////////// +// MASCHERA +//////////////////////////////////////////////////////// +class TStampaProgConf_mask : public TAutomask +{ +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TStampaProgConf_mask(); + virtual ~TStampaProgConf_mask() {}; +}; + +TStampaProgConf_mask::TStampaProgConf_mask() :TAutomask ("co1900a") +{ +} + +bool TStampaProgConf_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + return true; +} + +///////////////////////////////////////////////////////////// +// REPORT +///////////////////////////////////////////////////////////// +class TStampaProgConf_report : public TReport +{ +protected: +virtual bool use_mask() { return false; } +public: + TStampaProgConf_report() {} +}; + +//////////////////////////////////////////////////////// +// APPLICAZIONE +//////////////////////////////////////////////////////// + +class TStampaProgConf : public TSkeleton_application +{ +public: + virtual void main_loop(); +}; + +void TStampaProgConf::main_loop() +{ + TStampaProgConf_mask m; + while (m.run() == K_ENTER) + { + TStampaProgConf_report rep; + TReport_book book; + + const int formato = m.get_int(F_FORMATO); + if (rep.load(formato==1 ? "co1900b" : "co1900a")) + { + const int ordinamento = m.get_int(F_ORDINAMENTO); + if (ordinamento == 2) + { + TString use(rep.recordset()->query_text()); + const int pos = use.find("JOIN"); + if ( pos > 0) + use.insert("BY 20.RAGSOC\n", pos); + rep.set_recordset(use); + } + } + rep.recordset()->set_var("#DASOCIO", TVariant(m.get(F_DASOCIO))); + TString to(m.get(F_ASOCIO)); + + to << "999999"; + rep.recordset()->set_var("#ASOCIO", TVariant(to)); + rep.recordset()->set_var("#ANNO", m.get(F_ANNO)); + rep.recordset()->set_var("#MESE", m.get(F_MESE)); + + book.add(rep); + book.print_or_preview(); + } +} + +int co1900(int argc, char* argv[]) +{ + TStampaProgConf a; + a.run(argc, argv, TR("Stampa progressivi conferimenti")); + return 0; +} diff --git a/co/co1900a.h b/co/co1900a.h new file mode 100755 index 000000000..d2067049c --- /dev/null +++ b/co/co1900a.h @@ -0,0 +1,10 @@ +// campi per la maschera co1900a + +#define F_DASOCIO 101 +#define F_ASOCIO 102 +#define F_ANNO 103 +#define F_MESE 104 +#define F_ORDINAMENTO 105 +#define F_FORMATO 106 +#define F_DESDASOCIO 107 +#define F_DESASOCIO 108 diff --git a/co/co1900a.uml b/co/co1900a.uml new file mode 100755 index 000000000..42adb7ded --- /dev/null +++ b/co/co1900a.uml @@ -0,0 +1,105 @@ +#include "co1900a.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +PAGE "Stampa progressivi conferimenti" 0 -1 0 19 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Selezione soci" +END + +STRING F_DASOCIO 6 +BEGIN + PROMPT 2 2 "Da socio " + FIELD DASOCIO + FLAG "Z" + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_DASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_DASOCIO CODCF + OUTPUT F_DESDASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESDASOCIO 50 +BEGIN + PROMPT 25 2 "" + FLAGS "D" +END + +STRING F_ASOCIO 6 +BEGIN + PROMPT 2 3 "A socio " + FLAG "Z" + FIELD ASOCIO + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=="F" CODCF==CODCF + INPUT CODCF F_ASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_ASOCIO CODCF + OUTPUT F_DESASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESASOCIO 50 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 5 "Selezione periodo" +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 2 6 "Fino all'anno/mese " + FLAGS "A" + FIELD ANNO +END + +LIST F_MESE 2 10 +BEGIN + PROMPT 27 6 "" + FLAGS "MZ" + FIELD MESE +END + +RADIOBUTTON F_ORDINAMENTO 25 +BEGIN + PROMPT 2 8 "Ordinamento" + ITEM "1|Per codice" + ITEM "2|Alfabetico" +END + +RADIOBUTTON F_FORMATO 25 +BEGIN + PROMPT 35 8 "Formato" + ITEM "1|Compatto" + ITEM "2|Espanso" +END + + +ENDPAGE + +ENDMASK + diff --git a/co/co1900b.rep b/co/co1900b.rep new file mode 100755 index 000000000..d5e57c837 --- /dev/null +++ b/co/co1900b.rep @@ -0,0 +1,109 @@ + + + Stampa progressivi soci formato B + +
+ + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + #SYSTEM.RAGSOC + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + " " + #ANNO + + + + #ANNO + + +
+
+
+ CODTAB[1,6] + 0 #F2.113 ! + + + + + + CODTAB[1,6] + + + + CLIFO.RAGSOC + +
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ USE PSC +SELECT (CODTAB[7,10] =#ANNO)(CODTAB[11,12]C;=#MESE)(CODTAB[1,6]E;=#DASOCIO)((CODTAB[1,6]C;=#ASOCIO)||(#ASOCIO=0)) +JOIN CLIFO INTO TIPOCF=="F" CODCF=CODTAB[1,6] + + \ No newline at end of file diff --git a/co/co2.cpp b/co/co2.cpp new file mode 100755 index 000000000..762d0aea0 --- /dev/null +++ b/co/co2.cpp @@ -0,0 +1,25 @@ +#include +#include "co2.h" + +int main(int argc, char** argv) +{ + const int n = argc > 1 ? argv[1][1]-'0' : 0; + switch (n) + { + case 0: + co2100(argc, argv); // Stampa anagrafica soci + break; + case 1: + co2200(argc, argv); // Stampa soci per data licenza + break; + case 2: + co2300(argc, argv); // Stampa controllo scadenze + break; + case 3: + co2400(argc, argv); // Stampa registro soci carico/scarico + break; + default: + break; + } + return 0; +} \ No newline at end of file diff --git a/co/co2.h b/co/co2.h new file mode 100755 index 000000000..fb81924c2 --- /dev/null +++ b/co/co2.h @@ -0,0 +1,4 @@ +int co2100(int argc, char* argv[]); +int co2200(int argc, char* argv[]); +int co2300(int argc, char* argv[]); +int co2400(int argc, char* argv[]); diff --git a/co/co2100.cpp b/co/co2100.cpp new file mode 100755 index 000000000..e55fc2d5e --- /dev/null +++ b/co/co2100.cpp @@ -0,0 +1,108 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "co2.h" +#include "co2100a.h" + +#include "socicoop.h" + +//////////////////////////////////////////////////////// +// MASCHERA +//////////////////////////////////////////////////////// +class TStampaAnagSoci_mask : public TAutomask +{ +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TStampaAnagSoci_mask(); + virtual ~TStampaAnagSoci_mask() {}; +}; + +TStampaAnagSoci_mask::TStampaAnagSoci_mask() :TAutomask ("co2100a") +{ +} + +bool TStampaAnagSoci_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + return true; +} + +///////////////////////////////////////////////////////////// +// REPORT +///////////////////////////////////////////////////////////// +class TStampaAnagSoci_report : public TReport +{ +protected: +virtual bool use_mask() { return false; } +public: + TStampaAnagSoci_report() {} +}; + + +//////////////////////////////////////////////////////// +// APPLICAZIONE +//////////////////////////////////////////////////////// + +class TStampaAnagSoci : public TSkeleton_application +{ +public: + virtual void main_loop(); +}; + +void TStampaAnagSoci::main_loop() +{ + TStampaAnagSoci_mask m; + while (m.run() == K_ENTER) + { + TStampaAnagSoci_report rep; + TReport_book book; + + const int formato = m.get_int(F_FORMATO); + + //ATTENZIONE: in caso di formato == 3 il report dovrebbe essere co2100b e non co2100a!!!!!!!!!!!!!!! + if (rep.load(formato==3 ? "co2100b" : "co2100a")) + { + TString use(rep.recordset()->query_text()); + int pos = use.find("JOIN"); + if (pos <= 0) pos = use.len(); + + switch(formato) + { + case 1: use.insert("SELECT BETWEEN(DATAASS, #DADATA, #ADATA)\n", pos); break; + case 2: use.insert("SELECT BETWEEN(DATAREC, #DADATA, #ADATA)\n", pos); break; + case 3: use.insert("SELECT BETWEEN(#DADATA, DATAASS, DATAREC) || BETWEEN(#ADATA, DATAASS, DATAREC)\n", pos); break; + default: break; + } + + + const int ordinamento = m.get_int(F_ORDINAMENTO); + pos = use.find("JOIN"); + if (pos <= 0) pos = use.len(); + if (ordinamento == 2) + use.insert("BY 20.RAGSOC\n", pos); + else + use.insert("BY CODCF\n", pos); + rep.set_recordset(use); + } + + rep.recordset()->set_var("#DASOCIO", TVariant(m.get(F_DASOCIO))); + rep.recordset()->set_var("#ASOCIO", TVariant(m.get(F_ASOCIO))); + rep.recordset()->set_var("#DADATA", TVariant(m.get(F_DADATA))); + rep.recordset()->set_var("#ADATA", TVariant(m.get(F_ADATA))); + + book.add(rep); + book.print_or_preview(); + } +} + +int co2100(int argc, char* argv[]) +{ + TStampaAnagSoci a; + a.run(argc, argv, TR("Stampa anagrafica soci")); + return 0; +} diff --git a/co/co2100a.h b/co/co2100a.h new file mode 100755 index 000000000..17cb90efe --- /dev/null +++ b/co/co2100a.h @@ -0,0 +1,10 @@ +// campi per la maschera co2100a + +#define F_DASOCIO 101 +#define F_ASOCIO 102 +#define F_DADATA 103 +#define F_ADATA 104 +#define F_FORMATO 105 +#define F_ORDINAMENTO 106 +#define F_DESDASOCIO 107 +#define F_DESASOCIO 108 diff --git a/co/co2100a.rep b/co/co2100a.rep new file mode 100755 index 000000000..f77d56988 --- /dev/null +++ b/co/co2100a.rep @@ -0,0 +1,69 @@ + + + Stampa anagrafica soci per data assF;rec + +
+ + + #SYSTEM.RAGSOC + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + + + + #DADATA + + + + #ADATA + + + + + + + +
+
+
+
+ + CLIFO.CODCF + + + TRIM(CLIFO.RAGSOC[1,30])+" "+TRIM(CLIFO.RAGSOC[31,50]) + + + DATAASS + + + DATAREC + +
+
+
+ USE SOCICOOP +JOIN CLIFO INTO TIPOCF=="F" CODCF=CODCF +FROM CODCF=#DASOCIO +TO CODCF=#ASOCIO + + \ No newline at end of file diff --git a/co/co2100a.uml b/co/co2100a.uml new file mode 100755 index 000000000..cdbf6296b --- /dev/null +++ b/co/co2100a.uml @@ -0,0 +1,103 @@ +#include "co2100a.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +PAGE "Stampa anagrafica soci" 0 -1 0 19 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Selezione soci" +END + +NUMBER F_DASOCIO 6 +BEGIN + PROMPT 2 2 "Da socio " + FIELD DASOCIO + //FLAG "Z" + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_DASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_DASOCIO CODCF + OUTPUT F_DESDASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESDASOCIO 50 +BEGIN + PROMPT 25 2 "" + FLAGS "D" +END + +NUMBER F_ASOCIO 6 +BEGIN + PROMPT 2 3 "A socio " + //FLAG "Z" + FIELD ASOCIO + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_ASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_ASOCIO CODCF + OUTPUT F_DESASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESASOCIO 50 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 5 "Selezione periodo" +END + +DATE F_DADATA +BEGIN + PROMPT 2 6 "Da data " + FIELD DADATA +END + +DATE F_ADATA +BEGIN + PROMPT 30 6 "A data " + FIELD ADATA +END + +RADIOBUTTON F_FORMATO 25 +BEGIN + PROMPT 2 8 "Tipo stampa" + ITEM "1|Per data assunzione" + ITEM "2|Per data recessione" + ITEM "3|Elenco soci INAIL" +END + +RADIOBUTTON F_ORDINAMENTO 25 +BEGIN + PROMPT 35 8 "Ordinamento" + ITEM "1|Per codice" + ITEM "2|Alfabetico" +END + +ENDPAGE + +ENDMASK + diff --git a/co/co2100b.rep b/co/co2100b.rep new file mode 100755 index 000000000..3f58c4bcb --- /dev/null +++ b/co/co2100b.rep @@ -0,0 +1,78 @@ + + + Stampa anagrafica soci ai fini I.NA.I.L. + +
+ + + #SYSTEM.RAGSOC + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + + + + #DADATA + + + + #ADATA + + + + + + + +
+
+ MESSAGE RESET,B1.101 +
+
+
+ + TRIM(CLIFO.RAGSOC[1,30])+" "+TRIM(CLIFO.RAGSOC[31,50]) + + + SOCICOOP.TIPOPROP + +
  • +
  • + + + + SOCICOOP.TIPOCOMAPP + +
  • +
  • + + + + MESSAGE INCR,#101 + +
  • +
    +
    + USE SOCICOOP +JOIN CLIFO INTO TIPOCF=="F" CODCF=CODCF +JOIN IMBARCAZIONI INTO CODCF=CODCF +FROM CODCF=#DASOCIO +TO CODCF=#ASOCIO + + \ No newline at end of file diff --git a/co/co2200.cpp b/co/co2200.cpp new file mode 100755 index 000000000..b1cc6c254 --- /dev/null +++ b/co/co2200.cpp @@ -0,0 +1,105 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "co2.h" +#include "co2200a.h" + +#include "socicoop.h" + +//////////////////////////////////////////////////////// +// MASCHERA +//////////////////////////////////////////////////////// +class TStampaSociDataLic_mask : public TAutomask +{ +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TStampaSociDataLic_mask(); + virtual ~TStampaSociDataLic_mask() {}; +}; + +TStampaSociDataLic_mask::TStampaSociDataLic_mask() :TAutomask ("co2200a") +{ +} + +bool TStampaSociDataLic_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + return true; +} + +///////////////////////////////////////////////////////////// +// REPORT +///////////////////////////////////////////////////////////// +class TStampaSociDataLic_report : public TReport +{ +protected: +virtual bool use_mask() { return false; } +public: + TStampaSociDataLic_report() {} +}; + + +//////////////////////////////////////////////////////// +// APPLICAZIONE +//////////////////////////////////////////////////////// + +class TStampaSociDataLic : public TSkeleton_application +{ +public: + virtual void main_loop(); +}; + +void TStampaSociDataLic::main_loop() +{ + TStampaSociDataLic_mask m; + while (m.run() == K_ENTER) + { + TStampaSociDataLic_report rep; + TReport_book book; + + if (rep.load("co2200a")) + { + TString use(rep.recordset()->query_text()); + const int pos = use.find("JOIN"); + const int ordinamento = m.get_int(F_ORDINAMENTO); + if (pos > 0) + { + + switch (ordinamento) + { + case 2: + use.insert("BY 20.RAGSOC\n", pos); + break; + case 3: + use.insert("BY SOCICOOP.DATASCALIC\n", pos); + break; + default: + use.insert("BY 20.CODCF\n", pos); + break; + } + } + rep.set_recordset(use); + } + + rep.recordset()->set_var("#DASOCIO", TVariant(m.get(F_DASOCIO))); + rep.recordset()->set_var("#ASOCIO", TVariant(m.get(F_ASOCIO))); + rep.recordset()->set_var("#DADATA", TVariant(m.get(F_DADATA))); + rep.recordset()->set_var("#ADATA", TVariant(m.get(F_ADATA))); + rep.recordset()->set_var("#MESE", TVariant(m.get(F_ADATA).mid(3,2))); + + book.add(rep); + book.print_or_preview(); + } +} + +int co2200(int argc, char* argv[]) +{ + TStampaSociDataLic a; + a.run(argc, argv, TR("Stampa soci per data licenza")); + return 0; +} diff --git a/co/co2200a.h b/co/co2200a.h new file mode 100755 index 000000000..7a701dcb2 --- /dev/null +++ b/co/co2200a.h @@ -0,0 +1,9 @@ +// campi per la maschera co2200a + +#define F_DASOCIO 101 +#define F_ASOCIO 102 +#define F_DADATA 103 +#define F_ADATA 104 +#define F_ORDINAMENTO 105 +#define F_DESDASOCIO 106 +#define F_DESASOCIO 107 diff --git a/co/co2200a.rep b/co/co2200a.rep new file mode 100755 index 000000000..79bfdd009 --- /dev/null +++ b/co/co2200a.rep @@ -0,0 +1,68 @@ + + + Stampa soci per data licenza + +
    + + + #SYSTEM.RAGSOC + + + + #SYSTEM.DATE + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + + + + #DADATA + + + + #ADATA + + + + #REPORT.PAGE + + + + + + + +
    +
    +
    +
    + + SOCICOOP.DATASCALIC + + + SOCICOOP.LICENZA + + + CLIFO.CODCF + + + TRIM(CLIFO.RAGSOC[1,30])+" "+TRIM(CLIFO.RAGSOC[31,50]) + +
    +
    +
    + USE SOCICOOP +SELECT (DATASCALIC[4,5]==#MESE)(BETWEEN(DATASCALIC,#DADATA,#ADATA)) +JOIN CLIFO INTO TIPOCF=="F" CODCF=CODCF +FROM CODCF=#DASOCIO +TO CODCF=#ASOCIO + + \ No newline at end of file diff --git a/co/co2200a.uml b/co/co2200a.uml new file mode 100755 index 000000000..8b6d68601 --- /dev/null +++ b/co/co2200a.uml @@ -0,0 +1,96 @@ +#include "co2200a.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +PAGE "Stampa soci per data licenza" 0 -1 0 19 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Selezione soci" +END + +NUMBER F_DASOCIO 6 +BEGIN + PROMPT 2 2 "Da socio " + FIELD DASOCIO + //FLAG "Z" + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_DASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_DASOCIO CODCF + OUTPUT F_DESDASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESDASOCIO 50 +BEGIN + PROMPT 25 2 "" + FLAGS "D" +END + +NUMBER F_ASOCIO 6 +BEGIN + PROMPT 2 3 "A socio " + //FLAG "Z" + FIELD ASOCIO + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_ASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_ASOCIO CODCF + OUTPUT F_DESASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESASOCIO 50 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 5 "Scadenza" +END + +DATE F_DADATA +BEGIN + PROMPT 2 6 "Da data " + FIELD DADATA +END + +DATE F_ADATA +BEGIN + PROMPT 30 6 "A data " + FIELD ADATA +END + +RADIOBUTTON F_ORDINAMENTO 25 +BEGIN + PROMPT 2 8 "Ordinamento" + ITEM "1|Codice" + ITEM "2|Alfabetico" + ITEM "3|Data licenza" +END + +ENDPAGE + +ENDMASK + diff --git a/co/co2300.cpp b/co/co2300.cpp new file mode 100755 index 000000000..6beb432f8 --- /dev/null +++ b/co/co2300.cpp @@ -0,0 +1,119 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "co2.h" +#include "co2300a.h" + +#include "socicoop.h" + +//////////////////////////////////////////////////////// +// MASCHERA +//////////////////////////////////////////////////////// +class TStampaCtrlScad_mask : public TAutomask +{ +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TStampaCtrlScad_mask(); + virtual ~TStampaCtrlScad_mask() {}; +}; + +TStampaCtrlScad_mask::TStampaCtrlScad_mask() :TAutomask ("co2300a") +{ +} + +bool TStampaCtrlScad_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + return true; +} + +///////////////////////////////////////////////////////////// +// REPORT +///////////////////////////////////////////////////////////// +class TStampaCtrlScad_report : public TReport +{ +protected: +virtual bool use_mask() { return false; } +public: + TStampaCtrlScad_report() {} +}; + + +//////////////////////////////////////////////////////// +// APPLICAZIONE +//////////////////////////////////////////////////////// + +class TStampaCtrlScad : public TSkeleton_application +{ +public: + virtual void main_loop(); +}; + +void TStampaCtrlScad::main_loop() +{ + TStampaCtrlScad_mask m; + while (m.run() == K_ENTER) + { + const int controlla = m.get_int(F_CONTROLLA); + + TStampaCtrlScad_report rep; + TReport_book book; + + if (rep.load(controlla==1 ? "co2300b" : "co2300a")) + { + TString use(rep.recordset()->query_text()); + int pos = use.find("JOIN"); + if (pos <= 0) pos = use.len(); + switch (controlla) + { + case 4: + use.insert("SELECT SCADCOLL[4,5]==#MESE\n", pos); + break; + case 3: + use.insert("SELECT SCADRUOLEQ[4,5]==#MESE\n", pos); + break; + case 2: + use.insert("SELECT SCADLICPES[4,5]==#MESE\n", pos); + break; + default: + use.insert("SELECT DATASCALIC[4,5]==#MESE\n", pos); + break; + } + pos = use.find("JOIN"); + if (pos <= 0) pos = use.len(); + const int ordinamento = m.get_int(F_ORDINAMENTO); + switch (ordinamento) + { + case 2: + use.insert("BY 20.RAGSOC\n", pos); + break; + default: + use.insert("BY 20.CODCF\n", pos); + break; + } + rep.set_recordset(use); + } + + rep.recordset()->set_var("#DASOCIO", TVariant(m.get(F_DASOCIO))); + rep.recordset()->set_var("#ASOCIO", TVariant(m.get(F_ASOCIO))); + rep.recordset()->set_var("#DAANNO", TVariant(m.get(F_DAANNO))); + rep.recordset()->set_var("#AANNO", TVariant(m.get(F_AANNO))); + rep.recordset()->set_var("#MESE", TVariant(m.get(F_MESE))); + rep.recordset()->set_var("#CONTROLLA", TVariant(m.get_long(F_CONTROLLA))); + + book.add(rep); + book.print_or_preview(); + } +} + +int co2300(int argc, char* argv[]) +{ + TStampaCtrlScad a; + a.run(argc, argv, TR("Stampa soci per data licenza")); + return 0; +} diff --git a/co/co2300a.h b/co/co2300a.h new file mode 100755 index 000000000..d405e2ae2 --- /dev/null +++ b/co/co2300a.h @@ -0,0 +1,11 @@ +// campi per la maschera co2300a + +#define F_DASOCIO 101 +#define F_ASOCIO 102 +#define F_MESE 103 +#define F_DAANNO 104 +#define F_AANNO 105 +#define F_CONTROLLA 106 +#define F_ORDINAMENTO 107 +#define F_DESDASOCIO 108 +#define F_DESASOCIO 109 diff --git a/co/co2300a.rep b/co/co2300a.rep new file mode 100755 index 000000000..0846a8cb6 --- /dev/null +++ b/co/co2300a.rep @@ -0,0 +1,99 @@ + + + Stampa controllo scadenze + +
    + + #SYSTEM.RAGSOC + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + + + + #CONTROLLA + +
  • MESSAGE SHOW,B1.101
  • +
  • MESSAGE SHOW,B1.102
  • +
  • MESSAGE SHOW,B1.103
  • +
  • MESSAGE SHOW,B1.104
  • +
    +
    + + + + + + #MESE + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + + + + + + + + +
  • +
    +
    +
    + + CLIFO.CODCF + + + CLIFO.RAGSOC + + + IMBARCAZIONI.SCADLICNAV + + + IMBARCAZIONI.SCADLICPES + + + IMBARCAZIONI.SCADRUOLEQ + + + IMBARCAZIONI.SCADCOLL + + + IMBARCAZIONI.MOTOBARCA + +
    +
    +
    + USE IMBARCAZIONI +JOIN CLIFO INTO TIPOCF=="F" CODCF=CODCF +JOIN SOCICOOP INTO CODCF=CODCF +FROM CODCF=#DASOCIO +TO CODCF=#ASOCIO + + \ No newline at end of file diff --git a/co/co2300a.uml b/co/co2300a.uml new file mode 100755 index 000000000..5be51c347 --- /dev/null +++ b/co/co2300a.uml @@ -0,0 +1,114 @@ +#include "co2300a.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +PAGE "Stampa controllo scadenze" 0 -1 0 19 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Selezione soci" +END + +NUMBER F_DASOCIO 6 +BEGIN + PROMPT 2 2 "Da socio " + FIELD DASOCIO + //FLAG "Z" + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_DASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_DASOCIO CODCF + OUTPUT F_DESDASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESDASOCIO 50 +BEGIN + PROMPT 25 2 "" + FLAGS "D" +END + +NUMBER F_ASOCIO 6 +BEGIN + PROMPT 2 3 "A socio " + //FLAG "Z" + FIELD ASOCIO + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_ASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_ASOCIO CODCF + OUTPUT F_DESASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESASOCIO 50 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 3 +BEGIN + PROMPT 1 5 "Scadenza" +END + +LIST F_MESE 2 10 +BEGIN + PROMPT 2 6 "Mese " + FLAGS "MZ" + FIELD MESE +END + +NUMBER F_DAANNO 4 +BEGIN + PROMPT 27 6 "da anno " + FLAGS "A" + FIELD DAANNO +END + +NUMBER F_AANNO 4 +BEGIN + PROMPT 47 6 "a anno " + FLAGS "A" + FIELD AANNO +END + +RADIOBUTTON F_CONTROLLA 25 +BEGIN + PROMPT 2 8 "Controlla la data" + ITEM "1|licenza di navigazione" + ITEM "2|licenza di pesca" + ITEM "3|ruolino equipaggio" + ITEM "4|collaudo" + FIELD CONTROLLA +END + +RADIOBUTTON F_ORDINAMENTO 25 +BEGIN + PROMPT 40 8 "Ordinamento" + ITEM "1|Codice" + ITEM "2|Alfabetico" +END + +ENDPAGE + +ENDMASK + diff --git a/co/co2300b.rep b/co/co2300b.rep new file mode 100755 index 000000000..07d544024 --- /dev/null +++ b/co/co2300b.rep @@ -0,0 +1,79 @@ + + + Stampa controllo scadenze licenza + +
    + + #SYSTEM.RAGSOC + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + #SYSTEM.DATE + + + + #REPORT.PAGE + + + + + + + + + + #MESE + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + + + + + + + + +
  • +
    +
    +
    + + CLIFO.CODCF + + + CLIFO.RAGSOC + + + LICENZA + + + DATASCALIC + +
    +
    +
    + USE SOCICOOP +JOIN CLIFO INTO TIPOCF=="F" CODCF=CODCF +FROM CODCF=#DASOCIO +TO CODCF=#ASOCIO + + \ No newline at end of file diff --git a/co/co2400.cpp b/co/co2400.cpp new file mode 100755 index 000000000..5f69c5c50 --- /dev/null +++ b/co/co2400.cpp @@ -0,0 +1,113 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "co2.h" +#include "co2400a.h" + +#include "socicoop.h" + +#include "..\ve\velib.h" +#include "..\ve\velib07.h" + + +//////////////////////////////////////////////////////// +// MASCHERA +//////////////////////////////////////////////////////// +class TRegistroCS_mask : public TAutomask +{ +protected: + bool on_field_event(TOperable_field& o, TField_event e, long jolly); +public: + TRegistroCS_mask(); + virtual ~TRegistroCS_mask() {}; +}; + +TRegistroCS_mask::TRegistroCS_mask() :TAutomask ("co2400a") +{ +} + +bool TRegistroCS_mask::on_field_event(TOperable_field& f, TField_event e, long jolly) +{ + return true; +} + +///////////////////////////////////////////////////////////// +// REPORT +///////////////////////////////////////////////////////////// +class TRegistroCS_report : public TReport +{ +protected: +virtual bool use_mask() { return false; } +public: + TRegistroCS_report() {} +}; + + +//////////////////////////////////////////////////////// +// APPLICAZIONE +//////////////////////////////////////////////////////// + +class TRegistroCS : public TSkeleton_application +{ +public: + virtual void main_loop(); +}; + + + +//////////////////////////////////////////////////////// +// APPLICAZIONE +//////////////////////////////////////////////////////// + +class TEstrattoConto : public TSkeleton_application +{ +public: + virtual void main_loop(); +}; + +void TEstrattoConto::main_loop() +{ + TRegistroCS_mask m; + while (m.run() == K_ENTER) + { + TReport_book book; + TRegistroCS_report rep; + if (rep.load("co2400a")) + { + const TString8 codnum = m.get(F_CODNUM); + const TString8 tipodoc = m.get(F_TIPODOC); + const int anno = m.get_int(F_ANNO); + const int perc = m.get_int(F_PERC); + + // creo recordset dei soci da stampare + TISAM_recordset soci("USE SOCICOOP\nFROM CODCF=#DASOCIO\nTO CODCF=#ASOCIO"); + soci.set_var("#DASOCIO", m.get_long(F_DASOCIO)); + soci.set_var("#ASOCIO", m.get_long(F_ASOCIO)); + + for (bool ok = soci.move_first(); ok; ok = soci.move_next()) + { + TRecordset* r = rep.recordset(); + long codcf = soci.get(SC_CODCF).as_int(); + r->set_var("#SOCIO", soci.get("CODCF")); + r->set_var("#ANNO", TVariant(long(anno))); + r->set_var("#CODNUM", codnum); + r->set_var("#TIPODOC", tipodoc); + r->set_var("#PERC", TVariant(long(perc)), true); + book.add(rep); + } + book.print_or_preview(); + } + } +} + +int co2400(int argc, char* argv[]) +{ + TEstrattoConto a; + a.run(argc, argv, TR("Stampa registro carico e scarico")); + return 0; +} diff --git a/co/co2400a.h b/co/co2400a.h new file mode 100755 index 000000000..bc7ccd634 --- /dev/null +++ b/co/co2400a.h @@ -0,0 +1,12 @@ +// campi per la maschera co2400a + +#define F_DASOCIO 101 +#define F_ASOCIO 102 +#define F_CODNUM 103 +#define F_DESNUM 104 +#define F_TIPODOC 105 +#define F_DESTIP 106 +#define F_ANNO 107 +#define F_PERC 108 +#define F_DESDASOCIO 109 +#define F_DESASOCIO 110 diff --git a/co/co2400a.rep b/co/co2400a.rep new file mode 100755 index 000000000..518178622 --- /dev/null +++ b/co/co2400a.rep @@ -0,0 +1,185 @@ + + + Registro soci carico e scarico + +
    + + + #REPORT.PAGE + + + + + + + + + + + + #ANNO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + MESSAGE RESET,F1 +MESSAGE RESET,B1 + + + CLIFO.RAGSOC[1,30]+' '+TRIM(CLIFO.RAGSOC[31,50]) + "101@.CODCF" @ +#EC_SOCIO ! + + + + + + CLIFO.COFI + "101@.CODCF" @ +#EC_SOCIO ! + + + + + + CLIFO.PAIV + "101@.CODCF" @ +#EC_SOCIO ! + + + +
    +
    +
    + 99 @ +1 + +99 ! + + DOC.DATADOC + + + DOC.NDOC + + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + #201 + + + + #202 + + + + (#301+#302)F;100 + +
    + USE DOC +KEY 2 +SELECT (CODNUM=#CODNUM)(TIPODOC=#TIPODOC)(ANAMAG.USER5!="") +JOIN CLIFO ALIAS 101 INTO TIPOCF==TIPOCF CODCF==CODCF +JOIN RDOC INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC NRIGA==1 +JOIN ANAMAG TO RDOC INTO CODART==CODART +FROM TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO +TO TIPOCF='F' CODCF=#SOCIO PROVV='D' ANNO=#ANNO + + \ No newline at end of file diff --git a/co/co2400a.uml b/co/co2400a.uml new file mode 100755 index 000000000..e20d1bcf9 --- /dev/null +++ b/co/co2400a.uml @@ -0,0 +1,142 @@ +#include "co2400a.h" + +TOOLBAR "" 0 20 0 2 + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + +PAGE "Stampa registro soci carico e scarico" 0 -1 0 19 + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 1 "Selezione soci" +END + +NUMBER F_DASOCIO 6 +BEGIN + PROMPT 2 2 "Da socio " + FIELD DASOCIO + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_DASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_DASOCIO CODCF + OUTPUT F_DESDASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESDASOCIO 50 +BEGIN + PROMPT 25 2 "" + FLAGS "D" +END + +NUMBER F_ASOCIO 6 +BEGIN + PROMPT 2 3 "A socio " + FIELD ASOCIO + USE LF_SOCICOOP KEY 1 + JOIN LF_CLIFO TO LF_SOCICOOP INTO TIPOCF=='F' CODCF==CODCF + INPUT CODCF F_ASOCIO + DISPLAY "Codice" CODCF + DISPLAY "Ragione sociale@50" 20->RAGSOC + DISPLAY "Codice fiscale@16" 20->COFI + OUTPUT F_ASOCIO CODCF + OUTPUT F_DESASOCIO 20->RAGSOC + CHECKTYPE NORMAL +END + +STRING F_DESASOCIO 50 +BEGIN + PROMPT 25 3 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 4 +BEGIN + PROMPT 1 5 "Selezione documenti" +END + +STRING F_CODNUM 4 +BEGIN + PROMPT 2 6 "Numeraz. " + FIELD CODNUM + HELP "Codice numerazione" + USE %NUM + INPUT CODTAB F_CODNUM + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODNUM CODTAB + OUTPUT F_DESNUM S0 + CHECKTYPE FORCED + FLAG "UPA" + WARNING "Numerazione assente" +END + +STRING F_DESNUM 50 +BEGIN + PROMPT 24 6 "" + HELP "Descrizione numerazione" + USE %NUM KEY 2 + INPUT S0 F_DESNUM + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_CODNUM +END + +STRING F_TIPODOC 4 +BEGIN + PROMPT 2 7 "Tipo doc. " + FIELD CODNUM + HELP "Tipo documento" + USE %TIP + INPUT CODTAB F_TIPODOC + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TIPODOC CODTAB + OUTPUT F_DESTIP S0 + CHECKTYPE FORCED + FLAG "UPA" + WARNING "Tipo documento assente" +END + +STRING F_DESTIP 50 +BEGIN + PROMPT 24 7 "" + HELP "Descrizione tipo doc." + USE %TIP KEY 2 + INPUT S0 F_DESTIP + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TIPODOC +END + +NUMBER F_ANNO 4 +BEGIN + PROMPT 2 10 "Anno " + FIELD #ANNO + CHECKTYPE REQUIRED +END + +NUMBER F_PERC 2 +BEGIN + PROMPT 2 11 "Percentuale " + FIELD #PERC + CHECKTYPE REQUIRED +END + +ENDPAGE + +ENDMASK + diff --git a/co/comenu.men b/co/comenu.men index 55eb1132c..5f5f28f1f 100755 --- a/co/comenu.men +++ b/co/comenu.men @@ -37,7 +37,7 @@ Item_01 = "Gestione conferimenti/prestazioni", "co0 -6", "F" Item_02 = "Importazione conferimenti", "co0 -7", "F" Item_03 = "Aggiornamento prezzi", "co0 -8", "F" Item_04 = "Fatturazione conferimenti", "co1 -3", "F" -Item_04 = "Contabilizzazione soci", "co1 -4", "F" +Item_05 = "Contabilizzazione soci", "co1 -4", "F" [COMENU_014] Caption = "Stampe" @@ -46,7 +46,12 @@ Module = 29 Flags = "" Item_01 = "Stampa libro soci", "ba8 -4 co1100a", "F" Item_02 = "Stampa conferimenti", "ve1 -3 co1200a", "F" -Item_02 = "Stampa prestazioni", "ve1 -3 co1800a", "F" +Item_03 = "Stampa prestazioni", "ve1 -3 co1800a", "F" Item_04 = "Stampa estratto conto", "co1 -2", "F" Item_05 = "Stampa saldi estratto conto", "ve1 -3 co1600a", "F" Item_06 = "Stampa saldi estratto conto per banca", "ve1 -3 co1700a", "F" +Item_07 = "Stampa progressivi conferimenti", "co1 -8", "F" +Item_08 = "Stampa anagrafica soci", "co2 -0", "F" +Item_09 = "Stampa soci per data licenza", "co2 -1", "F" +Item_10 = "Stampa controllo scadenze", "co2 -2", "F" +Item_11 = "Stampa registro carico/scarico", "co2 -3", "F"