Patch level :10.0 256

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


Primo commit della fatturazioine


git-svn-id: svn://10.65.10.50/trunk@18489 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
rajitgill 2009-03-10 17:56:23 +00:00
parent cadf5145fb
commit 7f79dffe43
2 changed files with 107 additions and 114 deletions

View File

@ -11,7 +11,8 @@ int main(int argc, char** argv)
case 1: lv2200(argc, argv); break; //manipolazione e stampa del planning case 1: lv2200(argc, argv); break; //manipolazione e stampa del planning
case 2: lv2300(argc, argv); break; //Stampa Giri Giornaliero/Settimanale case 2: lv2300(argc, argv); break; //Stampa Giri Giornaliero/Settimanale
case 3: lv2400(argc, argv); break; //generazione automatica bolle di consegna case 3: lv2400(argc, argv); break; //generazione automatica bolle di consegna
case 4: lv2600(argc, argv); break; //acquisizione bolle di rientro case 4: lv2500(argc, argv); break;
case 5: lv2600(argc, argv); break; //acquisizione bolle di rientro
case 6: lv2700(argc, argv); break; //Riepilogo Bolle di Lavanderie case 6: lv2700(argc, argv); break; //Riepilogo Bolle di Lavanderie
case 7: lv2800(argc, argv); break; //Venduto Per Cliente nei 12 Mesi case 7: lv2800(argc, argv); break; //Venduto Per Cliente nei 12 Mesi
default: lv2100(argc, argv); break; //generazione automatica del planning default: lv2100(argc, argv); break; //generazione automatica del planning

View File

@ -17,10 +17,13 @@
class TFatturazione_lavanderie:public TFatturazione_bolle class TFatturazione_lavanderie:public TFatturazione_bolle
{ {
TDate _data_elab;
protected: protected:
virtual void add_rows(TRiga_documento & rout, 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 create_row(TDocumento& doc_out, const TRiga_documento & rin);
// void fat_lav(TRiga_documento & rin, int& qta, real& prezzo); real fat_lav_pre(TRiga_documento & rin, const real& qta);
virtual void post_process(TDocumento & doc);
public: public:
TFatturazione_lavanderie(const char* cod); TFatturazione_lavanderie(const char* cod);
@ -35,40 +38,33 @@ TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod)
} }
/* void TFatturazione_lavanderie::fat_lav_pre(TRiga_documento & rin, int& qta) real TFatturazione_lavanderie::fat_lav_pre(TRiga_documento & rin, const real& qta)
{ {
const TString80 codart=rin.get(RDOC_CODART); const TString80 codart=rin.get(RDOC_CODART);
const long clifo=rin.get_long(RDOC_CLIFO); const long clifo=rin.doc().get_long(DOC_CODCF);
const int indsped=rin.get_int(RDOC_CODINDSP); const int indsped=rin.doc().get_int(DOC_CODINDSP);
const TString8 causale=rin.get(RDOC_CODAGG1);
real new_qta;
const TRectype& cau = cache().get("&CAU", causale); const TRectype& cau = cache().get("&CAU", causale);
//movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale //movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale
int sgn_con = 0;
if (cau.get_bool("B0")) /* if (cau.get_bool("B0"))
{ {
const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1")); const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1"));
if (codmagcoll.blank() && rit.has_default_mag()) int sgn_rit = rit.sgn(s_consmese);
{
codmagcoll = rit.default_mag(); }*/
coddepcoll = rit.default_dep();
}
sgn_rit = rit.sgn(s_consmese);
}
if (cau.get_bool("B1")) if (cau.get_bool("B1"))
{ {
const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2")); const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2"));
if (codmag.blank() && con.has_default_mag()) int sgn_con = con.sgn(s_consmese);
{ new_qta=sgn_con*qta;
codmag = con.default_mag();
coddep = con.default_dep();
}
sgn_con = con.sgn(s_consmese);
} }
TFatturazione_msk msk; TLaundry_contract contr(clifo,indsped,_data_elab);
TDate datafat=msk.get_date(F_DATAFAT);
TLaundry_contract contr(clifo,indsped,datafat);
const TRectype & rcont=contr.row(codart); const TRectype & rcont=contr.row(codart);
const TString4 tipodot=rcont.get(LVRCONDV_NOLCIC); const TString4 tipodot=rcont.get(LVRCONDV_NOLCIC);
@ -77,62 +73,55 @@ TFatturazione_lavanderie::TFatturazione_lavanderie(const char* cod)
TArticolo_lavanderie artlav(codart,'C',clifo,indsped); TArticolo_lavanderie artlav(codart,'C',clifo,indsped);
} return new_qta;
} }
void TFatturazione_lavanderie::fat_lav_post(TRiga_documento & rin, t& qta) void TFatturazione_lavanderie::post_process(TDocumento & doc)
{ {
const TString80 codart=rin.get(RDOC_CODART); const int rows = doc.physical_rows();
const long clifo=rin.get_long(RDOC_CLIFO); for (int i = 1; i <= rows; i++)
const int indsped=rin.get_int(RDOC_CODINDSP); {
TRiga_documento& rout = doc[i];
const TString80 codart=rout.get(RDOC_CODART);
const long clifo=rout.doc().get_long(DOC_CODCF);
const int indsped=rout.doc().get_int(DOC_CODINDSP);
TFatturazione_msk msk; TLaundry_contract contr(clifo,indsped,_data_elab);
TDate datafat=msk.get_date(F_DATAFAT);
TLaundry_contract contr(clifo,indsped,datafat);
const TRectype & rcont=contr.row(codart); const TRectype & rcont=contr.row(codart);
const TString4 tipodot=rcont.get(LVRCONDV_NOLCIC); const TString4 tipodot=rcont.get(LVRCONDV_NOLCIC);
const TString4 artcli=rcont.get(LVRCONDV_VCARTCLI); const TString4 artcli=rcont.get(LVRCONDV_VCARTCLI);
const real dot; real dot;
TArticolo_lavanderie artlav(codart,'C',clifo,indsped);
if (tipodot=="I") if (tipodot=="I")
dot=artlav.get('DOTIN'); dot=artlav.get_real("DOTIN");
else else
dot=artlav.get('DOTOD'); dot=artlav.get_real("DOTOD");
TArticolo_lavanderie artlav(codart,'C',clifo,indsped);
int tipoforf=rcont.get_int(LVRCONDV_TIPOFORF); int tipoforf=rcont.get_int(LVRCONDV_TIPOFORF);
switch (tipoforf) switch (tipoforf)
{ {
case 0: case 0:
{
qta=rin.get_int(RDOC_QTA);
prezzo=rin.get_real(RODC_PREZZO);
}
break; break;
case 1: case 1:
{ rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
qta=rin.get_int(RDOC_QTA);
prezzo=rcont.get_real(LVRCONDV_PREZZO);
}
break; break;
case 2: case 2:
{ {
qta=1; rout.put(RDOC_QTA, UNO);
prezzo=rcont.get_real(LVRCONDV_IMPFISART); rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_IMPFISART));
// gestione in base codice per valore fisso ??? tolta la scelta dell'articolo o del cliente // gestione in base codice per valore fisso ??? tolta la scelta dell'articolo o del cliente
} }
break; break;
case 3: case 3:
{ {
int tipolist=contr.get_int(LVCONDV_TIPOLIST); int tipolist=contr.get_int(LVCONDV_TIPOLIS);
if (tipolist==0) if (tipolist==0)
prezzo=rcont.get_real(LVRCONDV_PREZZO); rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
else else
{ {
TString query; TString query;
@ -144,43 +133,45 @@ void TFatturazione_lavanderie::fat_lav_post(TRiga_documento & rin, t& qta)
recset.set_var("#CODART",clifo); recset.set_var("#CODART",clifo);
recset.set_var("#UM",rcont.get(LVRCONDV_UM)); recset.set_var("#UM",rcont.get(LVRCONDV_UM));
prezzo=recset.get(UMART_PREZZO).as_real(); rout.put(RDOC_PREZZO,recset.get(UMART_PREZZO).as_real());
} }
qta=dot; rout.put(RDOC_QTA, dot);
} }
break; break;
case 4: case 4:
{ {
prezzo=rcont.get_real(LVRCONDV_PREZZO); rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
const real cicl=rcont.get_real(LVRCONDV_MINCIC)*dot;
const real mincic=rcont.get_real(LVRCONDV_MINCIC); const real qta=rout.get(RDOC_QTA);
rout.put(RDOC_QTA, cicl > qta ? cicl : qta);
} }
break; break;
case 5: case 5:
{ {
prezzo=rcont.get_real(LVRCONDV_VALCONV); rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_VALCONV));
rout.put(RDOC_QTA, dot*rcont.get_real(LVRCONDV_FORFPERCL));
qta=dot*prezzo;
} }
break; break;
case 6: case 6:
{ {
prezzo=rcont.get_real(LVRCONDV_VALCONV); rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
qta=dot*; rout.put(RDOC_QTA, dot);
} }
break; break;
default: default:
break; break;
} }
}
} */ }
void TFatturazione_lavanderie::add_rows(TRiga_documento & rout, TRiga_documento & rin) void TFatturazione_lavanderie::add_rows(TRiga_documento & rout, TRiga_documento & rin)
{ {
rout.add(RDOC_QTA, rin.get_real(RDOC_QTA)); const real qta=rin.get_real(RDOC_QTA);
rout.add(RDOC_QTA, fat_lav_pre(rin,qta) );
} }
void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_documento & rin) void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_documento & rin)
@ -191,6 +182,7 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum
bool TFatturazione_lavanderie::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out, bool TFatturazione_lavanderie::elabora(TLista_documenti& doc_in, TLista_documenti& doc_out,
const TDate& data_elab, bool interattivo) const TDate& data_elab, bool interattivo)
{ {
_data_elab=data_elab;
bool ok=TFatturazione_bolle::elabora(doc_in, doc_out, data_elab, interattivo); bool ok=TFatturazione_bolle::elabora(doc_in, doc_out, data_elab, interattivo);
return ok; return ok;
} }