Patch level :10.0
Files correlati :lv0.exe Ricompilazione Demo : [ ] Commento : Calcolo dotazione odierna,consegnato mese e anno su gestione contratti git-svn-id: svn://10.65.10.50/trunk@17220 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
28fb85ee7c
commit
ee72e6bc2f
@ -7,6 +7,7 @@
|
||||
|
||||
#include "lv0400.h"
|
||||
#include "../mg/anamag.h"
|
||||
#include "../mg/mglib.h"
|
||||
|
||||
|
||||
class TContratti_msk: public TAutomask
|
||||
@ -23,7 +24,8 @@ bool TContratti_msk::on_art_select()
|
||||
TSheet_field& ss=sfield(F_RIGHE);
|
||||
TToken_string & row = ss.row(ss.selected());
|
||||
const TString80 codart(row.get(ss.cid2index(S_CODART)));
|
||||
const TRectype & artrec = cache().get(LF_ANAMAG, codart);
|
||||
const TString4 umcont(row.get(ss.cid2index(S_UM)));
|
||||
TArticolo artrec(codart);
|
||||
|
||||
set(F_GRMERC,artrec.get(ANAMAG_GRMERC).sleft(3));
|
||||
set(F_COLORE,artrec.get(ANAMAG_COLORE));
|
||||
@ -46,30 +48,75 @@ bool TContratti_msk::on_art_select()
|
||||
TString query, filter;
|
||||
|
||||
filter << "ANNOES=#ANNOES CODART=#CODART TIPOCF=C CODCF=#CLIENTE";
|
||||
if (indsped > 0)
|
||||
filter << " INDSPED=" << indsped;
|
||||
filter << " INDSPED=" << indsped;
|
||||
|
||||
query << "USE CLIFOGIAC KEY 3\n"
|
||||
<< "FROM " << filter << '\n'
|
||||
<< "TO " << filter << '\n';
|
||||
|
||||
TISAM_recordset recset (query);
|
||||
TISAM_recordset recgiac (query);
|
||||
|
||||
recset.set_var("#CLIENTE",get_long(F_CODCF));
|
||||
recset.set_var("#ANNOES",TVariant((long)oggi.year()));
|
||||
recset.set_var("#CODART",TVariant(codart));
|
||||
recgiac.set_var("#CLIENTE",get_long(F_CODCF));
|
||||
recgiac.set_var("#ANNOES",TVariant((long)oggi.year()));
|
||||
recgiac.set_var("#CODART",TVariant(codart));
|
||||
|
||||
real dotod,consyear;
|
||||
|
||||
for (bool ok=recset.move_first(); ok; ok=recset.move_next())
|
||||
real dotod,consyear,consmonth;
|
||||
if (recgiac.move_first())
|
||||
{
|
||||
dotod+=recset.get("GIAC").as_real();
|
||||
consyear+=recset.get("ACQ").as_real()+recset.get("ENT").as_real();
|
||||
dotod=artrec.convert_to_um(recgiac.get("GIAC").as_real(),umcont);
|
||||
consyear=artrec.convert_to_um(recgiac.get("ACQ").as_real()+recgiac.get("ENT").as_real(),umcont);
|
||||
}
|
||||
|
||||
set(F_DOTOD,dotod);
|
||||
set(F_CONSANNO,consyear);
|
||||
|
||||
TDate imese(oggi);
|
||||
imese.set_day(1);
|
||||
|
||||
query="USE MOVMAG KEY 3\n";
|
||||
query << "SELECT (TIPOCF='C')&&(STR(CODCF=" << get_long(F_CODCF) << "))&&(STR(CODINDSP=" << indsped << "))\n";
|
||||
query << "FROM DATAREG=" << imese << "\n"
|
||||
<< "TO DATAREG=" << oggi << "\n";
|
||||
|
||||
TISAM_recordset recmag(query);
|
||||
|
||||
for (bool ok=recmag.move_first(); ok; ok=recmag.move_next())
|
||||
{
|
||||
const TCausale_magazzino tcaus(recmag.get(MOVMAG_CODCAUS).as_string());
|
||||
|
||||
TString queryrmag="USE RMOVMAG\n";
|
||||
queryrmag << "SELECT CODART='" << codart << "'\n";
|
||||
queryrmag << "FROM NUMREG=" << recmag.get(MOVMAG_NUMREG) << "\n"
|
||||
<< "TO NUMREG=" << recmag.get(MOVMAG_NUMREG) << "\n";
|
||||
|
||||
|
||||
TISAM_recordset recrmag(queryrmag);
|
||||
|
||||
for (bool ok=recrmag.move_first(); ok; ok=recrmag.move_next())
|
||||
{
|
||||
int sgn_acq=tcaus.sgn(s_acq);
|
||||
int sgn_ent=tcaus.sgn(s_ent);
|
||||
const TString& codcaus=recrmag.get(RMOVMAG_CODCAUS).as_string();
|
||||
if (codcaus.full())
|
||||
{
|
||||
const TCausale_magazzino rcaus(codcaus);
|
||||
sgn_acq=rcaus.sgn(s_acq);
|
||||
sgn_ent=rcaus.sgn(s_ent);
|
||||
}
|
||||
if (sgn_acq!=0 || sgn_ent!=0)
|
||||
{
|
||||
const TString4 um=recrmag.get(RMOVMAG_UM).as_string();
|
||||
const real qta=artrec.convert_to_um(recrmag.get(RMOVMAG_QUANT).as_real(),umcont,um);
|
||||
if (sgn_acq!=0)
|
||||
consmonth+=qta*sgn_acq;
|
||||
if (sgn_ent!=0)
|
||||
consmonth+=qta*sgn_ent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set(F_CONSMESE,consmonth);
|
||||
|
||||
const bool varclcons = get_int(F_PPCONF)>0;
|
||||
|
||||
ss.enable_cell(ss.selected(),ss.cid2index(S_CALCCONS));
|
||||
|
Loading…
x
Reference in New Issue
Block a user