Patch level :10.0
Files correlati :lv2.exe Ricompilazione Demo : [ ] Commento : aggiunta gestione prezzi filtri cliente sulla fatturazione git-svn-id: svn://10.65.10.50/trunk@18659 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c23d8c8a2d
commit
ef0d3f189b
111
lv/lv2500.cpp
111
lv/lv2500.cpp
@ -4,8 +4,11 @@
|
||||
#include "lvlib.h"
|
||||
#include "lv2500a.h"
|
||||
|
||||
#include "cfven.h"
|
||||
#include "lvcondv.h"
|
||||
#include "lvrcondv.h"
|
||||
#include "rdoc.h"
|
||||
|
||||
|
||||
#include "../ve/ve6200.h"
|
||||
#include "../ve/ve6200a.h"
|
||||
@ -107,12 +110,11 @@ void TFatturazione_lavanderie::post_process_output(TLista_documenti& doc_out)
|
||||
for (int id = 0; id < doc_out.items(); id++)
|
||||
{
|
||||
TDocumento& doc = doc_out[id];
|
||||
const int rows = doc.physical_rows();
|
||||
const long clifo = doc.get_long(DOC_CODCF);
|
||||
const int indsped = doc.get_int(DOC_CODINDSP);
|
||||
TLaundry_contract contr(clifo,indsped,_data_elab);
|
||||
|
||||
for (int i = 1; i <= rows; i++)
|
||||
for (int i = 1; i <= doc.physical_rows(); i++)
|
||||
{
|
||||
TRiga_documento& rout = doc[i];
|
||||
const TString80 codart=rout.get(RDOC_CODART);
|
||||
@ -134,16 +136,13 @@ void TFatturazione_lavanderie::post_process_output(TLista_documenti& doc_out)
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
rout.put(RDOC_QTA, UNO);
|
||||
// rout.put(RDOC_QTA, UNO);
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_IMPFISART));
|
||||
// gestione in base codice per valore fisso ??? tolta la scelta dell'articolo o del cliente
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 2:
|
||||
{
|
||||
int tipolist=contr.get_int(LVCONDV_TIPOLIS);
|
||||
|
||||
@ -155,32 +154,46 @@ void TFatturazione_lavanderie::post_process_output(TLista_documenti& doc_out)
|
||||
query << "USE UMART KEY 2 \n"
|
||||
<< "FROM " << "CODART=#CODART UM=#UM \n"
|
||||
<< "TO " << "TCODART=#CODART UM=#UM \n";
|
||||
|
||||
TISAM_recordset recset(query);
|
||||
TISAM_recordset recset(query);
|
||||
recset.set_var("#CODART",clifo);
|
||||
recset.set_var("#UM",rcont.get(LVRCONDV_UM));
|
||||
|
||||
rout.put(RDOC_PREZZO,recset.get(UMART_PREZZO).as_real());
|
||||
}
|
||||
|
||||
rout.put(RDOC_QTA, dot);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 3:
|
||||
{
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
|
||||
const real cicl=rcont.get_real(LVRCONDV_MINCIC)*dot;
|
||||
const real qta=rout.get(RDOC_QTA);
|
||||
rout.put(RDOC_QTA, cicl > qta ? cicl : qta);
|
||||
const real qta=rout.get(RDOC_QTA);
|
||||
const real consumo=qta * rout.get_real(RDOC_PREZZO);
|
||||
const real ciclaggio=dot * rcont.get_real(LVRCONDV_PREZZO) * rcont.get_real(LVRCONDV_MINCIC);
|
||||
if (consumo<ciclaggio)
|
||||
{
|
||||
const bool cicl2rig=contr.get_bool(LVCONDV_CICLAGGIO);
|
||||
const real cicl=rcont.get_real(LVRCONDV_MINCIC)*dot;
|
||||
if (cicl2rig)
|
||||
{
|
||||
TRiga_documento& congrow=doc.insert_row(++i, "01");
|
||||
doc.copy_data(congrow,rout);
|
||||
congrow.put(RDOC_DESCR,"Pareggio minimo fatturabile");
|
||||
rout.put(RDOC_QTA, cicl-qta);
|
||||
congrow.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
|
||||
}
|
||||
else
|
||||
{
|
||||
rout.put(RDOC_QTA, cicl);
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
case 4:
|
||||
{
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_VALCONV));
|
||||
rout.put(RDOC_QTA, dot*rcont.get_real(LVRCONDV_FORFPERCL));
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
case 5:
|
||||
{
|
||||
rout.put(RDOC_PREZZO, rcont.get_real(LVRCONDV_PREZZO));
|
||||
|
||||
@ -196,7 +209,6 @@ void TFatturazione_lavanderie::post_process_output(TLista_documenti& doc_out)
|
||||
}
|
||||
|
||||
|
||||
|
||||
void TFatturazione_lavanderie::add_rows(TRiga_documento & rout, TRiga_documento & rin)
|
||||
{
|
||||
/*const TString8 causale = rin.get(RDOC_CODAGG1);
|
||||
@ -268,7 +280,26 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum
|
||||
const TString80 codart=rin.get(RDOC_CODARTMAG);
|
||||
const real qta=rin.get_real(RDOC_QTA);
|
||||
const real qta1=rin.get_real(RDOC_QTAGG1);
|
||||
const TRectype & rcont=contr.row(codart);
|
||||
const int tipoprezzo=ini_get_int(CONFIG_DITTA, "lv", "TipoPr");
|
||||
real prezzo=rin.get_real(RDOC_PREZZO);
|
||||
|
||||
if (tipoprezzo == 0)
|
||||
{
|
||||
if (rcont.empty())
|
||||
{
|
||||
TArticolo& art=cached_article(codart);
|
||||
const TString& um=rin.get(RDOC_UMQTA);
|
||||
const int index=art.find_um(um);
|
||||
|
||||
if (index>=0)
|
||||
prezzo=art.um()[index].get_real(UMART_PREZZO);
|
||||
|
||||
}
|
||||
else
|
||||
prezzo=rcont.get_real(LVRCONDV_PREZZO);
|
||||
}
|
||||
|
||||
// Guardo se è una causale di rotto e se è abilitato nella testata del contratto la fatturazione dei rotti
|
||||
if (cau.get_bool("B3") && contr.get_int(LVCONDV_ADDCAPROT) && !qta1.is_zero())
|
||||
{
|
||||
@ -276,11 +307,17 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum
|
||||
rd.add(RDOC_QTA, qta1);
|
||||
rd.put(RDOC_PREZZO,contr.row(codart).get_real(LVRCONDV_PREZDAN));
|
||||
}
|
||||
if (cau.get_bool("B0")) // movimenta ritirato
|
||||
|
||||
if (cau.get_bool("B0") && !qta1.is_zero()) // movimenta ritirato
|
||||
{
|
||||
const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1"));
|
||||
TRiga_documento& rr=find_or_create_row(doc_out,rin,'R');
|
||||
rr.add(RDOC_QTA,rit.sgn(s_consmese) * qta1);
|
||||
const real sgnrit = rit.sgn(s_consmese);
|
||||
if (!sgnrit.is_zero())
|
||||
{
|
||||
TRiga_documento& rr=find_or_create_row(doc_out,rin,'C');
|
||||
rr.add(RDOC_QTA,sgnrit * qta1);
|
||||
rr.put(RDOC_PREZZO,prezzo);
|
||||
}
|
||||
}
|
||||
if (cau.get_bool("B1") && !qta.is_zero()) // movimenta consegnato
|
||||
{
|
||||
@ -299,6 +336,7 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum
|
||||
{
|
||||
TRiga_documento& rc=find_or_create_row(doc_out,rin,'I');
|
||||
rc.add(RDOC_QTA,sgndotin * qta);
|
||||
rc.put(RDOC_PREZZO,prezzo);
|
||||
}
|
||||
|
||||
const real sgncons=con.sgn(s_consmese);
|
||||
@ -306,6 +344,7 @@ void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_docum
|
||||
{
|
||||
TRiga_documento& rc=find_or_create_row(doc_out,rin,'C');
|
||||
rc.add(RDOC_QTA,sgncons * qta);
|
||||
rc.put(RDOC_PREZZO,prezzo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -348,13 +387,17 @@ protected:
|
||||
void TFatturazione_lav_app::main_loop()
|
||||
{
|
||||
TFatturazione_msk msk;
|
||||
const TString4 mskzona=msk.get(F_CODZONA);
|
||||
const TString4 mskcat=(F_CODCATC);
|
||||
|
||||
TLocalisamfile doc(LF_DOC);
|
||||
TLocalisamfile rdoc(LF_RIGHEDOC);
|
||||
|
||||
while (msk.run()!=K_QUIT)
|
||||
{
|
||||
TString query;
|
||||
query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&(BETWEEN(DATADOC,#DADATA,#ADATA))&&(STATO==\"2\")&&(TIPODOC==\"B01\")\n"
|
||||
//&&(BETWEEN(DATADOC,#DADATA,#ADATA))&&(STATO==\"2\")&&(TIPODOC==\"B01\")
|
||||
query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")\n"
|
||||
<< "BY TIPOCF CODCF DATADOC\n"
|
||||
<< "FROM " << "DATADOC=#DADATA PROVV=D ANNO=#ANNO\n"
|
||||
<< "TO " << " DATADOC=#ADATA PROVV=D ANNO=#ANNO\n";
|
||||
@ -405,7 +448,27 @@ void TFatturazione_lav_app::main_loop()
|
||||
lastcli = clifo;
|
||||
}
|
||||
|
||||
if (elab.is_document_ok(recset.cursor()->curr()))
|
||||
TToken_string key;
|
||||
key.add('C');
|
||||
key.add(clifo);
|
||||
const TRectype& clienti=cache().get(LF_CFVEN,key);
|
||||
bool cliok=elab.is_document_ok(recset.cursor()->curr());
|
||||
|
||||
if (cliok)
|
||||
{
|
||||
if (mskzona.full())
|
||||
{
|
||||
const TString& codzona=clienti.get(CFV_CODZONA);
|
||||
cliok = (codzona==mskzona);
|
||||
}
|
||||
if (cliok && mskcat.full())
|
||||
{
|
||||
const TString& codcat=clienti.get(CFV_CODCATC);
|
||||
cliok= (codcat==mskcat);
|
||||
}
|
||||
}
|
||||
|
||||
if (cliok)
|
||||
{
|
||||
indsped = recset.get(DOC_CODINDSP).as_int();
|
||||
TLaundry_contract contr(clifo, indsped, datafat);
|
||||
|
@ -10,13 +10,12 @@ 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 "H"
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
DATE F_DATAFAT
|
||||
|
Loading…
x
Reference in New Issue
Block a user