Gestione movimenti di magazzino trasitori
git-svn-id: svn://10.65.10.50/trunk@4971 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
28dcf49723
commit
1450aca822
@ -9,6 +9,7 @@
|
|||||||
#define F_SPESEAUT 109
|
#define F_SPESEAUT 109
|
||||||
#define F_TIPO 110
|
#define F_TIPO 110
|
||||||
#define F_MOVMAG 111
|
#define F_MOVMAG 111
|
||||||
#define F_STATO_MOV 112
|
#define F_STATO_MOV_I 112
|
||||||
#define F_CAUS_MAG 113
|
#define F_STATO_MOV_F 113
|
||||||
#define F_DESCAUS_MAG 114
|
#define F_CAUS_MAG 114
|
||||||
|
#define F_DESCAUS_MAG 115
|
||||||
|
@ -123,24 +123,40 @@ BEGIN
|
|||||||
MESSAGE TRUE ENABLE,1@
|
MESSAGE TRUE ENABLE,1@
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_STATO_MOV 1
|
STRING F_STATO_MOV_I 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 50 16 ""
|
PROMPT 50 16 ""
|
||||||
FIELD S7
|
FIELD S7
|
||||||
USE %STD
|
USE %STD
|
||||||
INPUT CODTAB F_STATO_MOV
|
INPUT CODTAB F_STATO_MOV_I
|
||||||
DISPLAY "Stato" CODTAB
|
DISPLAY "Stato" CODTAB
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
OUTPUT F_STATO_MOV CODTAB
|
OUTPUT F_STATO_MOV_I CODTAB
|
||||||
CHECKYTPE NORMAL
|
CHECKYTPE NORMAL
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
|
WARNING "Stato finale impossibile"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_STATO_MOV_F 1
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 16 "allo stato "
|
||||||
|
FIELD S8
|
||||||
|
COPY USE F_STATO_MOV_I
|
||||||
|
INPUT CODTAB F_STATO_MOV_F
|
||||||
|
COPY DISPLAY F_STATO_MOV_I
|
||||||
|
OUTPUT F_STATO_MOV_F CODTAB
|
||||||
|
CHECKYTPE NORMAL
|
||||||
|
FLAGS "U"
|
||||||
|
GROUP 1
|
||||||
|
STR_EXPR {(#THIS_FIELD=="") || (#THIS_FIELD >= #F_STATO_MOV_I)}
|
||||||
|
WARNING "Stato finale impossibile"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CAUS_MAG 4
|
STRING F_CAUS_MAG 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 17 "Codice causale magazzino "
|
PROMPT 2 17 "Codice causale magazzino "
|
||||||
FIELD S8
|
FIELD S9
|
||||||
USE CAU
|
USE CAU
|
||||||
INPUT CODTAB F_CAUS_MAG
|
INPUT CODTAB F_CAUS_MAG
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
@ -157,7 +173,7 @@ STRING F_DESCAUS_MAG 50
|
|||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 18 "Descrizione "
|
PROMPT 2 18 "Descrizione "
|
||||||
USE CAU KEY 2
|
USE CAU KEY 2
|
||||||
INPUT S0 F_DESCAUS_MAg
|
INPUT S0 F_DESCAUS_MAG
|
||||||
DISPLAY "Descrizione@50" S0
|
DISPLAY "Descrizione@50" S0
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
COPY OUTPUT F_CAUS_MAG
|
COPY OUTPUT F_CAUS_MAG
|
||||||
|
@ -120,12 +120,10 @@ bool TCond_vendita::set_sconto( const char * exp, bool signal )
|
|||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCond_vendita::set_prezzo(const real & prezzo, const char * val_rif)
|
real TCond_vendita::normalize_valuta(const real & val, const char * val_rif)
|
||||||
|
{
|
||||||
{
|
real normalized = val;
|
||||||
_prezzo = prezzo;
|
if (normalized != ZERO)
|
||||||
|
|
||||||
if (_prezzo != ZERO)
|
|
||||||
{
|
{
|
||||||
TString16 valuta(_testa->get(F_CODVAL));
|
TString16 valuta(_testa->get(F_CODVAL));
|
||||||
TString16 valuta_rif(val_rif);
|
TString16 valuta_rif(val_rif);
|
||||||
@ -135,16 +133,24 @@ void TCond_vendita::set_prezzo(const real & prezzo, const char * val_rif)
|
|||||||
if (valuta != valuta_rif)
|
if (valuta != valuta_rif)
|
||||||
{
|
{
|
||||||
if (valuta_rif.not_empty())
|
if (valuta_rif.not_empty())
|
||||||
_prezzo *= _condv.get_real("CAMBIO");
|
normalized *= _condv.get_real("CAMBIO");
|
||||||
|
|
||||||
real cambio(_testa->get(F_CAMBIO));
|
real cambio(_testa->get(F_CAMBIO));
|
||||||
|
|
||||||
if (cambio == ZERO)
|
if (cambio == ZERO)
|
||||||
cambio = 1.0;
|
cambio = 1.0;
|
||||||
_prezzo /= cambio;
|
normalized /= cambio;
|
||||||
_prezzo.round(cambio == 1.0 ? 0 : 3);
|
normalized.round(cambio == 1.0 ? 0 : 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return normalized;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TCond_vendita::set_prezzo(const real & prezzo, const char * val_rif)
|
||||||
|
|
||||||
|
{
|
||||||
|
_prezzo = normalize_valuta(prezzo, val_rif);
|
||||||
|
|
||||||
if (_load_mask && _riga && _riga->id2pos(FR_PREZZO) >= 0 && _riga->field(FR_PREZZO).active())
|
if (_load_mask && _riga && _riga->id2pos(FR_PREZZO) >= 0 && _riga->field(FR_PREZZO).active())
|
||||||
_riga->set(FR_PREZZO, _prezzo);
|
_riga->set(FR_PREZZO, _prezzo);
|
||||||
}
|
}
|
||||||
@ -581,12 +587,8 @@ void TCond_vendita::update_omaggi(bool full)
|
|||||||
sh.check_row(current_doc_row);
|
sh.check_row(current_doc_row);
|
||||||
r.autosave(sh);
|
r.autosave(sh);
|
||||||
|
|
||||||
const real prezzo = _prezzo;
|
const real prezzo_omaggio = normalize_valuta(_rcondv.get_real("PROMAGGIO"), _condv.get("CODVAL"));
|
||||||
|
r.put("PREZZO", prezzo_omaggio);
|
||||||
set_prezzo(_rcondv.get_real("PROMAGGIO"));
|
|
||||||
r.put("PREZZO", _prezzo);
|
|
||||||
r.autoload(sh);
|
|
||||||
_prezzo = prezzo;
|
|
||||||
update = TRUE;
|
update = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,8 +38,10 @@ class TCond_vendita : public TObject
|
|||||||
|
|
||||||
bool cerca(int tiporicerca);
|
bool cerca(int tiporicerca);
|
||||||
|
|
||||||
|
real normalize_valuta(const real & val, const char * val_rif = "");
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void set_prezzo(const real & prezzo,const char * val_rif = "");
|
void set_prezzo(const real & prezzo, const char * val_rif = "");
|
||||||
void set_provv(const real & provv);
|
void set_provv(const real & provv);
|
||||||
void set_iva(const TString & codiva);
|
void set_iva(const TString & codiva);
|
||||||
void update_omaggi(bool full);
|
void update_omaggi(bool full);
|
||||||
|
@ -489,7 +489,7 @@ TMask* TMotore_application::get_mask( int mode )
|
|||||||
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
user_set_handler( riga.get_int( 0 ), riga.get_int( 1 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
TMag_livelli l("FCG");
|
TCodgiac_livelli l;
|
||||||
|
|
||||||
for ( i = MAX_GIAC_LEVEL; i > 0; i--)
|
for ( i = MAX_GIAC_LEVEL; i > 0; i--)
|
||||||
{
|
{
|
||||||
|
@ -230,8 +230,10 @@ public:
|
|||||||
const TString & basesconto() const { return _basesconto;}
|
const TString & basesconto() const { return _basesconto;}
|
||||||
const TString & spese() const { return _spese;}
|
const TString & spese() const { return _spese;}
|
||||||
bool mov_mag() const { return get_bool("B1"); }
|
bool mov_mag() const { return get_bool("B1"); }
|
||||||
const TString & stato_mov() const {return get("S7"); }
|
const TString & stato_mov_iniziale() const {return get("S7"); }
|
||||||
const TString & caus_mov() const {return get("S8"); }
|
const TString & stato_mov_finale() const {return get("S8"); }
|
||||||
|
const TString & caus_mov() const {return get("S9"); }
|
||||||
|
bool stato_with_mov_mag(const TString & stato) const;
|
||||||
|
|
||||||
TFormula_documento * first_formula() { return succ_formula(TRUE); }
|
TFormula_documento * first_formula() { return succ_formula(TRUE); }
|
||||||
TFormula_documento * succ_formula(bool restart = FALSE);
|
TFormula_documento * succ_formula(bool restart = FALSE);
|
||||||
|
@ -153,6 +153,17 @@ void TTipo_documento::read_formule()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TTipo_documento::stato_with_mov_mag(const TString & stato) const
|
||||||
|
{
|
||||||
|
if (!mov_mag())
|
||||||
|
return FALSE;
|
||||||
|
const TString16 stato_finale(stato_mov_finale());
|
||||||
|
if (stato_finale.not_empty() && stato > stato_finale)
|
||||||
|
return FALSE;
|
||||||
|
const TString16 stato_iniziale(stato_mov_iniziale());
|
||||||
|
return stato >= stato_iniziale;
|
||||||
|
}
|
||||||
|
|
||||||
TFormula_documento * TTipo_documento::succ_formula(bool restart)
|
TFormula_documento * TTipo_documento::succ_formula(bool restart)
|
||||||
{
|
{
|
||||||
if (restart)
|
if (restart)
|
||||||
@ -650,8 +661,8 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
|||||||
{
|
{
|
||||||
const bool nuovo = _nuovo || numero() <= 0; // E' nuovo di zecca!
|
const bool nuovo = _nuovo || numero() <= 0; // E' nuovo di zecca!
|
||||||
const bool check_movmag = main_app().has_module(MGAUT, CHK_DONGLE) && tipo().mov_mag();
|
const bool check_movmag = main_app().has_module(MGAUT, CHK_DONGLE) && tipo().mov_mag();
|
||||||
const TString16 statomag(tipo().stato_mov());
|
const TString16 stato_doc(get("STATO"));
|
||||||
const bool do_movmag = get("STATO") >= statomag;
|
const bool do_movmag = tipo().stato_with_mov_mag(stato_doc);
|
||||||
|
|
||||||
if (nuovo && re) // quindi ...
|
if (nuovo && re) // quindi ...
|
||||||
re = FALSE; // ... non fare la rewrite
|
re = FALSE; // ... non fare la rewrite
|
||||||
|
Loading…
x
Reference in New Issue
Block a user