Patch level : 10.0

Files correlati     : lv0.exe, lvtbcau.msk
Ricompilazione Demo : [ ]
Commento            :
Aggiunta la gestione delle causali di magazzino (solo campi di lavanderia) nelle causali di lavanderia


git-svn-id: svn://10.65.10.50/trunk@18208 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-02-06 12:28:21 +00:00
parent e3a9259d18
commit 978a74842d
3 changed files with 217 additions and 19 deletions

View File

@ -2,6 +2,9 @@
#include <automask.h>
#include <modtbapp.h>
#include <tabutil.h>
#include "lvtbcau.h"
///////////////////////////////////////////////////////////
// Maschera generica di gestione tabelle lavanderie
@ -18,7 +21,7 @@ public:
bool TLV_table_mask::on_field_event(TOperable_field &o, TField_event e, long jolly)
{
return true;
return true;
}
///////////////////////////////////////////////////////////
@ -30,7 +33,11 @@ class TLV_table_app : public TTable_module_application
{
protected: // TRelation_application
virtual TMask* user_create_mask();
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool get_next_key(TToken_string& key);
void cambia_segni(const TMask& m, const bool ritirato);
public:
};
@ -46,6 +53,81 @@ TMask* TLV_table_app::user_create_mask()
return TTable_module_application::user_create_mask();
}
void TLV_table_app::cambia_segni(const TMask& m, const bool ritirato)
{
//instanzio una TTable sulla ytabella delle causali di magazzino
TTable cau("%CAU");
const TString16 causale = m.get(ritirato ? F_CAUSALE_RITIRO : F_CAUSALE_CONSEGNA);
cau.put("CODTAB", causale);
//se trovo la causale
if (cau.read(_isequal, _lock) == NOERR)
{
TString s2 = cau.get("S2");
TString16 sgn = "";
int min = ritirato ? F_SGNDOTIN_R : F_SGNDOTIN_C;
int max = ritirato ? F_SGNCONMN_R : F_SGNCONMN_C;
//mi costruisco la stringa dei segni delle movimentazioni riportata in maschera
for (short i = min; i <= max; i++)
{
TString4 tmp;
switch (m.get_int(i))
{
case 0: tmp << "0 "; break;
case 1: tmp << "+1"; break;
case -1: tmp << "-1"; break;
default: break;
}
sgn << tmp;
}
//estraggo la sottostringa che mi interessa dalla tabella delle causali e la porto a lunghezza 10
TString16 str = s2.mid(28,10);
if(str.len() < 10)
str << " ";
//chiedo se volglio proprio modificare i segni della movimentazione di magazzino
if (str != sgn && yesno_box(TR("Si desidera veramente modificare i segni delle causali?")))
{
s2.overwrite(sgn,28,10);
cau.put("S2", s2);
cau.rewrite();
}
}
else
cau.unlock();
}
// Ridefinizione del metodo write
int TLV_table_app::write(const TMask& m)
{
const TString4 name = get_relation()->file(0).name();
if (name == "CAU")
{
if(m.get_bool(F_RITIRATO))
cambia_segni(m, true);
if(m.get_bool(F_CONSEGNATO))
cambia_segni(m, false);
}
return TTable_module_application::write(m);
}
// Ridefinizione del metodo rewrite
int TLV_table_app::rewrite(const TMask& m)
{
const TString4 name = get_relation()->file(0).name();
if (name == "CAU")
{
if(m.get_bool(F_RITIRATO))
cambia_segni(m, true);
if(m.get_bool(F_CONSEGNATO))
cambia_segni(m, false);
}
return TTable_module_application::rewrite(m);
}
// Cerca di generare automaticamente la prossima chiave numerica di una tabella
bool TLV_table_app::get_next_key(TToken_string& key)
{

View File

@ -5,10 +5,21 @@
#define F_RITIRATO 104
#define F_CAUSALE_RITIRO 105
#define F_DES_CAUSALE_RITIRO 106
#define F_CONSEGNATO 107
#define F_CAUSALE_CONSEGNA 108
#define F_DES_CAUSALE_CONSEGNA 109
#define F_CAUSALE_RESO 110
#define F_STAMPA_BOLLA 111
#define F_CALC_IMPORTO 112
#define F_CONTR_DOTAZIONE 113
#define F_SGNDOTIN_R 107
#define F_SGNDOTOD_R 108
#define F_SGNDOTTM_R 109
#define F_SGNCONYR_R 110
#define F_SGNCONMN_R 111
#define F_CONSEGNATO 112
#define F_CAUSALE_CONSEGNA 113
#define F_DES_CAUSALE_CONSEGNA 114
#define F_SGNDOTIN_C 115
#define F_SGNDOTOD_C 116
#define F_SGNDOTTM_C 117
#define F_SGNCONYR_C 118
#define F_SGNCONMN_C 119
#define F_CAUSALE_RESO 120
#define F_CAUSALE_ROTTO 121
//#define F_STAMPA_BOLLA 117
//#define F_CALC_IMPORTO 118
//#define F_CONTR_DOTAZIONE 119

View File

@ -4,9 +4,9 @@ TOOLBAR "" 0 0 0 2
#include "relapbar.h"
ENDPAGE
PAGE "Causali Lavanderie" -1 -1 78 10
PAGE "Causali Lavanderie" -1 -1 80 10
GROUPBOX DLG_NULL 76 4
GROUPBOX DLG_NULL 80 4
BEGIN
PROMPT 1 1 "@bDati Causale"
END
@ -61,7 +61,7 @@ BEGIN
KEY 2
END
GROUPBOX DLG_NULL 90 4
GROUPBOX DLG_NULL 80 5
BEGIN
PROMPT 1 5 "@b Ritiro"
END
@ -76,13 +76,18 @@ END
STRING F_CAUSALE_RITIRO 5
BEGIN
PROMPT 2 7 "Causale di magazzino"
PROMPT 2 7 "Causale di mag. "
USE %CAU KEY 1
INPUT CODTAB F_CAUSALE_RITIRO
DISPLAY "Codice@8" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CAUSALE_RITIRO CODTAB
OUTPUT F_DES_CAUSALE_RITIRO S0
OUTPUT F_SGNDOTIN_R S2[29,30]
OUTPUT F_SGNDOTOD_R S2[31,32]
OUTPUT F_SGNDOTTM_R S2[33,34]
OUTPUT F_SGNCONYR_R S2[35,36]
OUTPUT F_SGNCONMN_R S2[37,38]
CHECKTYPE REQUIRED
WARNING "Causale ritirato obbligatoria"
GROUP 1
@ -92,7 +97,7 @@ END
STRING F_DES_CAUSALE_RITIRO 50
BEGIN
PROMPT 30 7 " "
PROMPT 27 7 ""
USE %CAU KEY 2
INPUT S0 F_DES_CAUSALE_RITIRO
DISPLAY "Codice" CODTAB
@ -102,7 +107,52 @@ BEGIN
FLAGS "D"
END
GROUPBOX DLG_NULL 90 4
LISTBOX F_SGNDOTIN_R 1
BEGIN
PROMPT 2 8 "Dot. In."
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 1
END
LISTBOX F_SGNDOTOD_R 1
BEGIN
PROMPT 18 8 "Dot. Od."
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 1
END
LISTBOX F_SGNDOTTM_R 1
BEGIN
PROMPT 33 8 "Dot. Temp."
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 1
END
LISTBOX F_SGNCONYR_R 1
BEGIN
PROMPT 50 8 "Cons. Anno"
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 1
END
LISTBOX F_SGNCONMN_R 1
BEGIN
PROMPT 66 8 "Cons. Mese"
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 1
END
GROUPBOX DLG_NULL 80 5
BEGIN
PROMPT 1 10 "@b Consegna"
END
@ -117,13 +167,18 @@ END
STRING F_CAUSALE_CONSEGNA 5
BEGIN
PROMPT 2 12 "Causale di magazzino"
PROMPT 2 12 "Causale di mag. "
USE %CAU KEY 1
INPUT CODTAB F_CAUSALE_CONSEGNA
DISPLAY "Codice@8" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CAUSALE_CONSEGNA CODTAB
OUTPUT F_DES_CAUSALE_CONSEGNA S0
OUTPUT F_SGNDOTIN_C S2[29,30]
OUTPUT F_SGNDOTOD_C S2[31,32]
OUTPUT F_SGNDOTTM_C S2[33,34]
OUTPUT F_SGNCONYR_C S2[35,36]
OUTPUT F_SGNCONMN_C S2[37,38]
FIELD S2
CHECKTYPE REQUIRED
WARNING "Causale consegnato obbligatoria"
@ -133,7 +188,7 @@ END
STRING F_DES_CAUSALE_CONSEGNA 50
BEGIN
PROMPT 30 12 " "
PROMPT 27 12 ""
USE %CAU KEY 2
INPUT S0 F_DES_CAUSALE_CONSEGNA
DISPLAY "Codice" CODTAB
@ -143,17 +198,67 @@ BEGIN
GROUP 2
END
GROUPBOX DLG_NULL 90 4
LISTBOX F_SGNDOTIN_C 1
BEGIN
PROMPT 2 13 "Dot. In."
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 2
END
LISTBOX F_SGNDOTOD_C 1
BEGIN
PROMPT 18 13 "Dot. Od."
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 2
END
LISTBOX F_SGNDOTTM_C 1
BEGIN
PROMPT 33 13 "Dot. Temp."
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 2
END
LISTBOX F_SGNCONYR_C 1
BEGIN
PROMPT 49 13 "Cons. Anno"
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 2
END
LISTBOX F_SGNCONMN_C 1
BEGIN
PROMPT 66 13 "Cons. Mese"
ITEM "0| "
ITEM "+1|+"
ITEM "-1|-"
GROUP 2
END
GROUPBOX DLG_NULL 80 4
BEGIN
PROMPT 1 14 ""
PROMPT 1 15 "@bTipo Causale"
END
BOOLEAN F_CAUSALE_RESO
BEGIN
FIELD B2
PROMPT 2 15 "Causale di reso"
PROMPT 2 16 "Causale di reso"
END
BOOLEAN F_CAUSALE_ROTTO
BEGIN
FIELD B3
PROMPT 25 16 "Causale di rotto"
END
ENDPAGE