Patch level : 10.0
Files correlati : lv3 Ricompilazione Demo : [ ] Commento : Corretto salvataggio delle dotazioni odierne e temporanee dalle bolle git-svn-id: svn://10.65.10.50/trunk@18281 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
443a707020
commit
3fa48db8a7
108
lv/lv3100.cpp
108
lv/lv3100.cpp
@ -11,6 +11,43 @@
|
||||
#include "lvrconsplan.h"
|
||||
#include "../mg/clifogiac.h"
|
||||
|
||||
#define FOR_EACH_DOC_ROW_BACK(d, r, row) const TRiga_documento* row = NULL; for (int r = d.rows(); r > 0 && (row = &d[r]) != NULL; r--)
|
||||
|
||||
//////////////////////////////////////////
|
||||
//// CLASSE TGESTIONE_BOLLE_MSK ////
|
||||
//////////////////////////////////////////
|
||||
|
||||
//Definizione della classe della maschera
|
||||
class TGestione_bolle_msk : public TDocumento_mask
|
||||
{
|
||||
long _stcodcf;
|
||||
long _stcodcont;
|
||||
|
||||
protected:
|
||||
static void arrotonda(const TMask& msk, real& quantita);
|
||||
//hanlder di documento:
|
||||
static bool lv_bolla_handler(TMask_field& f, KEY k);
|
||||
//handler di riga:
|
||||
static bool lv_ritirato_handler(TMask_field& f, KEY k);
|
||||
static bool lv_consegnato_handler(TMask_field& f, KEY k);
|
||||
static bool lv_codart_handler(TMask_field& f, KEY k);
|
||||
static bool lv_causale_handler(TMask_field& f, KEY k);
|
||||
|
||||
static bool ss_notify(TSheet_field& ss, int r, KEY key);
|
||||
|
||||
virtual void on_idle();
|
||||
|
||||
|
||||
public:
|
||||
virtual void user_set_handler( short fieldid, int index);
|
||||
virtual void user_set_row_handler(TMask& rm, short field, int index);
|
||||
void reset_var_mask() {_stcodcf = 0; _stcodcont = 0;}
|
||||
TGestione_bolle_msk(const char* tipodoc);
|
||||
|
||||
int _autoselect;
|
||||
|
||||
};
|
||||
|
||||
////////////////////////////////////
|
||||
//// CLASSE TGIAC_PER_CLI ////
|
||||
////////////////////////////////////
|
||||
@ -35,6 +72,7 @@ public:
|
||||
bool reset(const TDocumento& doc); //svuota i TAssoc_array e carica cli e cont
|
||||
bool load_row(const TRiga_documento& rdoc); //popola i TAssoc_array
|
||||
real giac_att(TRiga_documento& rdoc, bool odierna); //restituisce le quantità attuali di dotazione
|
||||
int write_giac(const TMask& m); //scrive i valori corretti sul file 166
|
||||
TGiac_per_cli(); //costruttore
|
||||
};
|
||||
|
||||
@ -185,6 +223,31 @@ real TGiac_per_cli::giac_att(TRiga_documento& rdoc, bool odierna)
|
||||
return giac;
|
||||
}
|
||||
|
||||
int TGiac_per_cli::write_giac(const TMask& m)
|
||||
{
|
||||
int err = NOERR;
|
||||
|
||||
TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m;
|
||||
TDocumento& d = mask.doc();
|
||||
|
||||
TLocalisamfile magcli(LF_CLIFOGIAC);
|
||||
FOR_EACH_DOC_ROW_BACK(d, r, row)
|
||||
{
|
||||
if (row->is_articolo())
|
||||
{
|
||||
magcli.put(CLIFOGIAC_ANNOES, _year);
|
||||
magcli.put(CLIFOGIAC_TIPOCF, 'C');
|
||||
magcli.put(CLIFOGIAC_CODCF, _clifo);
|
||||
magcli.put(CLIFOGIAC_INDSPED, _indsped);
|
||||
magcli.put(CLIFOGIAC_CODART, row->get(RDOC_CODART));
|
||||
magcli.put (CLIFOGIAC_DOTOD, row->get_real("DOTOD"));
|
||||
magcli.put (CLIFOGIAC_DOTTM, row->get_real("DOTMP"));
|
||||
err = magcli.rewrite_write();
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
//costruttore
|
||||
TGiac_per_cli::TGiac_per_cli()
|
||||
{
|
||||
@ -222,37 +285,6 @@ inline TGestione_bolle_app& gbapp() { return (TGestione_bolle_app &)main_app();
|
||||
//// CLASSE TGESTIONE_BOLLE_MSK ////
|
||||
//////////////////////////////////////////
|
||||
|
||||
//Definizione della classe della maschera
|
||||
class TGestione_bolle_msk : public TDocumento_mask
|
||||
{
|
||||
long _stcodcf;
|
||||
long _stcodcont;
|
||||
|
||||
protected:
|
||||
static void arrotonda(const TMask& msk, real& quantita);
|
||||
//hanlder di documento:
|
||||
static bool lv_bolla_handler(TMask_field& f, KEY k);
|
||||
//handler di riga:
|
||||
static bool lv_ritirato_handler(TMask_field& f, KEY k);
|
||||
static bool lv_consegnato_handler(TMask_field& f, KEY k);
|
||||
static bool lv_codart_handler(TMask_field& f, KEY k);
|
||||
static bool lv_causale_handler(TMask_field& f, KEY k);
|
||||
|
||||
static bool ss_notify(TSheet_field& ss, int r, KEY key);
|
||||
|
||||
virtual void on_idle();
|
||||
|
||||
|
||||
public:
|
||||
virtual void user_set_handler( short fieldid, int index);
|
||||
virtual void user_set_row_handler(TMask& rm, short field, int index);
|
||||
void reset_var_mask() {_stcodcf = 0; _stcodcont = 0;}
|
||||
TGestione_bolle_msk(const char* tipodoc);
|
||||
|
||||
int _autoselect;
|
||||
|
||||
};
|
||||
|
||||
//ARROTONDA: metodo che arrotonda la quantità che gli passo se è previsto sul contratto
|
||||
void TGestione_bolle_msk::arrotonda(const TMask& msk, real& quantita)
|
||||
{
|
||||
@ -800,8 +832,6 @@ TMask* TGestione_bolle_app::get_mask( int mode )
|
||||
return TMotore_application::get_mask(mode);
|
||||
}
|
||||
|
||||
#define FOR_EACH_DOC_ROW_BACK(d, r, row) const TRiga_documento* row = NULL; for (int r = d.rows(); r > 0 && (row = &d[r]) != NULL; r--)
|
||||
|
||||
void TGestione_bolle_app::elimina_vuote( const TMask& m)
|
||||
{
|
||||
TDocumento_mask& mask = (TDocumento_mask&) m;
|
||||
@ -822,6 +852,12 @@ void TGestione_bolle_app::elimina_vuote( const TMask& m)
|
||||
int TGestione_bolle_app::write( const TMask& m )
|
||||
{
|
||||
elimina_vuote(m);
|
||||
|
||||
TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m;
|
||||
TDocumento& d = mask.doc();
|
||||
_giac.reset(d);
|
||||
|
||||
_giac.write_giac(m);
|
||||
return TMotore_application::write(m);
|
||||
}
|
||||
|
||||
@ -829,6 +865,12 @@ int TGestione_bolle_app::write( const TMask& m )
|
||||
int TGestione_bolle_app::rewrite( const TMask& m )
|
||||
{
|
||||
elimina_vuote(m);
|
||||
|
||||
TGestione_bolle_msk& mask = (TGestione_bolle_msk&) m;
|
||||
TDocumento& d = mask.doc();
|
||||
_giac.reset(d);
|
||||
|
||||
_giac.write_giac(m);
|
||||
return TMotore_application::rewrite(m);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user