Patch level : 10.0 276

Files correlati     : lv2.exe
Ricompilazione Demo : [ ]
Commento            :

Fatturazione lavanderie


git-svn-id: svn://10.65.10.50/trunk@18646 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2009-03-31 16:12:06 +00:00
parent 9c3df44481
commit c5d2a3a80b
2 changed files with 48 additions and 10 deletions

View File

@ -19,12 +19,13 @@ class TFatturazione_lavanderie:public TFatturazione_bolle
TDate _data_elab;
protected:
virtual void add_rows(TRiga_documento & rout, TRiga_documento & rin);
virtual void create_row(TDocumento& doc_out, const TRiga_documento & rin);
virtual void add_rows(TRiga_documento & rout, TRiga_documento & rin);
virtual void create_row(TDocumento& doc_out, const TRiga_documento & rin);
virtual void pre_process_input(TLista_documenti& doc_in) {}
virtual void post_process_input(TLista_documenti& doc_out) {}
virtual void post_process_output(TLista_documenti& doc_out);
virtual bool da_raggruppare(const TRiga_documento & rin);
virtual bool doc_raggruppabili(const TDocumento& doc_in, const TDocumento& doc_out, TToken_string& campi) const ;
virtual bool doc_raggruppabile(const TDocumento & doc) const { return true; }
virtual bool gestione_riferimenti() const { return true; }
virtual bool riferimenti_in_testa() const { return true; }
@ -44,6 +45,29 @@ TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod)
{
}
bool TFatturazione_lavanderie::doc_raggruppabili(const TDocumento& doc_in, const TDocumento& doc_out, TToken_string& campi) const
{
if (doc_in.ha_riga_esenzione() != doc_out.ha_riga_esenzione())
return false;
bool ok = true;
TString campo;
for (const char* c = campi.get(0); c && ok; c = campi.get())
{
if (strncmp(c, "CODABI", 6) == 0 || strncmp(c, "CODCAB", 6) == 0)
{
long cod = doc_in.get_long(c);
ok &= (cod == doc_out.get_long(c));
}
else
{
campo = doc_in.get(c);
ok &= campo == doc_out.get(c);
}
}
return ok;
}
bool TFatturazione_lavanderie::da_raggruppare(const TRiga_documento & rin)
{
/* const long clifo = rin.doc().get_long(DOC_CODCF);
@ -330,18 +354,31 @@ void TFatturazione_lav_app::main_loop()
while (msk.run()!=K_QUIT)
{
TString query;
query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&(BETWEEN(DATADOC,#DADATA,#ADATA))&&(STATO=2)&&(TIPODOC==\"B01\")\n"
<< "BY TIPOCF CODCF DATADOC\n"
query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&(BETWEEN(DATADOC,#DADATA,#ADATA))&&(STATO==\"2\")&&(TIPODOC==\"B01\")\n"
<< "BY TIPOCF CODCF DATADOC\n"
<< "FROM " << "DATADOC=#DADATA PROVV=D ANNO=#ANNO\n"
<< "TO " << " DATADOC=#ADATA PROVV=D ANNO=#ANNO\n";
// query << "USE DOC KEY 2 SELECT BETWEEN(DATADOC,#DADATA,#ADATA)\n"
// query << "USE DOC KEY 2 SELECT BETWEEN(DATADOC,#DADATA,#ADATA)&&STATO==\"2\")&&(TIPODOC==\"B01\")\n"
// << "FROM " << "TIPOCF=C PROVV=D ANNO=#ANNO DATADOC=#DADATA \n"
// << "TO " << "TIPOCF=C PROVV=D ANNO=#ANNO DATADOC=#ADATA \n";
TISAM_recordset recset(query);
recset.set_var("#DADATA",msk.get_date(F_DADATA));
recset.set_var("#ADATA",msk.get_date(F_ADATA));
recset.set_var("#ANNO",long(msk.get_date(F_ADATA).year()));
TDate al = msk.get_date(F_ADATA);
if (!al.ok())
al = msk.get_date(F_DATAFAT);
TDate dal = msk.get_date(F_DADATA);
const long year = al.year();
if (!dal.ok())
{
dal.set_day(1);
dal.set_month(1);
dal.set_year(year);
}
recset.set_var("#DADATA", dal);
recset.set_var("#ADATA", al);
recset.set_var("#ANNO", year);
TFatturazione_lavanderie elab(msk.get(F_COD_ELAB));
TLista_documenti docsin;

View File

@ -10,12 +10,13 @@ PAGE "Fatturazione" -1 -1 40 5
DATE F_DADATA
BEGIN
PROMPT 2 1 "Fattura dal "
FLAGS "H"
END
DATE F_ADATA
BEGIN
PROMPT 45 1 "al "
FLAGS "A"
FLAGS "H"
END
DATE F_DATAFAT
@ -27,7 +28,7 @@ END
STRING F_CODCATC 2
BEGIN
PROMPT 43 3 "Codice Categoria economica "
PROMPT 2 3 "Codice Categoria economica "
FIELD LF_CFVEN->CODCATC
USE CCO
INPUT CODTAB F_CODCATC