Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@17111 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
rajitgill 2008-08-27 15:21:44 +00:00
parent a8c4b15523
commit ce7776b80d
5 changed files with 175 additions and 41 deletions

View File

@ -1,5 +1,5 @@
168 168
41 42
CODCONT|3|6|0|Codice Contratto CODCONT|3|6|0|Codice Contratto
STATUS|1|2|0|Stato del contratto, <CH>chiuso, <CO>confermato, <DC>da confermare STATUS|1|2|0|Stato del contratto, <CH>chiuso, <CO>confermato, <DC>da confermare
CODCF|3|6|0|Codice cliente CODCF|3|6|0|Codice cliente
@ -26,8 +26,8 @@ SSCONS|8|1|0|Spese di spedizione alla consegna
TIPOSTPRZ|2|1|0|Tipo di stamapa prezzo TIPOSTPRZ|2|1|0|Tipo di stamapa prezzo
CAUSMAG|1|4|0|Causale di magazzino CAUSMAG|1|4|0|Causale di magazzino
DTLASTFAT|5|8|0|Data ultima fattura DTLASTFAT|5|8|0|Data ultima fattura
ATTFATTNODT|8|1|0|Attiva fatturazione indipendentemente dalla data ATTFATNODT|8|1|0|Attiva fatturazione indipendentemente dalla data
RIFBOLINFAT|8|1|0|Riferimenti bolle in fattura RIFBOLFAT|8|1|0|Riferimenti bolle in fattura
STDICITURA|8|1|0|Stampa dicitura STDICITURA|8|1|0|Stampa dicitura
PROFORME|8|1|0|Proforme PROFORME|8|1|0|Proforme
CICLAGGIO|8|1|0|Ciclaggio su due righe CICLAGGIO|8|1|0|Ciclaggio su due righe
@ -36,10 +36,10 @@ STETITS|8|1|0|Stampa etichette con Touch Screen
STDDTPTS|8|1|0|Stampa DDT da pulito con Touch Screen STDDTPTS|8|1|0|Stampa DDT da pulito con Touch Screen
IMPMINFAT|4|18|3|Importo minimo fatturabile IMPMINFAT|4|18|3|Importo minimo fatturabile
PERCNOCONT|4|6|2|Percentuale aumento per mancato conteggio PERCNOCONT|4|6|2|Percentuale aumento per mancato conteggio
PERCTOLLPES|4|6|2|Percentuale tolleranza peso teorico/effettivo PERCTOLPES|4|6|2|Percentuale tolleranza peso teorico/effettivo
NUMUT|2|5|0|Numero utente NUMUT|2|5|0|Numero utente
NUMETI|2|5|0|Numero etichette NUMETI|2|5|0|Numero etichette
RITAUTDTTMP|8|1|0|Ritiro automatico dotazione temporanea RITAUDTTMP|8|1|0|Ritiro automatico dotazione temporanea
DTFIXDDT|5|8|0|Data fissa per creazione DDT da sporco DTFIXDDT|5|8|0|Data fissa per creazione DDT da sporco
COMMENTI|11|10|0|Commenti e note COMMENTI|11|10|0|Commenti e note
1 1

View File

@ -1,8 +1,8 @@
169 169
10 28
CODCF|3|6|0|Codice cliente CODCF|3|6|0|Codice cliente
CODCONT|3|6|0|Codice contratto CODCONT|3|6|0|Codice contratto
ARTICOLO|1|2|0|Codice articolo CODART|1|2|0|Codice articolo
PREZZO|4|18|3|Prezzo in vigore PREZZO|4|18|3|Prezzo in vigore
PREZRIN|4|18|3|Prezzo di rinnovo PREZRIN|4|18|3|Prezzo di rinnovo
QTACONG|4|15|5|Quantità conguaglio QTACONG|4|15|5|Quantità conguaglio
@ -18,7 +18,7 @@ CONSANNO|4|15|5|Consegnato anno
UM|1|2|0|Unità di misura UM|1|2|0|Unità di misura
PREZDAN|4|18|3|Prezzo danneggiati PREZDAN|4|18|3|Prezzo danneggiati
TIPOFORF|2|1|0|Tipo forfait TIPOFORF|2|1|0|Tipo forfait
RITAUTDTTMP|8|1|0|Ritiro automatico dotazione temporanea RITAUDTTMP|8|1|0|Ritiro automatico dotazione temporanea
ARROT|8|1|0|Arrotondamento ARROT|8|1|0|Arrotondamento
CAUSMAG|1|4|0|Causale di magazzino CAUSMAG|1|4|0|Causale di magazzino
VALCONV|4|18|3|Valore convenzionale VALCONV|4|18|3|Valore convenzionale
@ -30,6 +30,6 @@ CALCCONS|2|1|0|Calcolo consegnato
TIPONOL|2|1|0|Tipo noleggio TIPONOL|2|1|0|Tipo noleggio
COLORE|1|20|0|Colore COLORE|1|20|0|Colore
1 1
| CODCF+CODCONT+CODART|

View File

@ -1,3 +1,4 @@
#include <msksheet.h>
#include <relapp.h> #include <relapp.h>
#include <recset.h> #include <recset.h>
@ -10,6 +11,11 @@ class TContratti_app: public TRelation_application
TRelation* _rel; TRelation* _rel;
bool _unicont; bool _unicont;
private:
void save_rows(const TMask& m);
void build_query(const TMask& m,TString& query) const;
int find_art(TSheet_field& s,const TString& art) const;
protected: protected:
virtual bool changing_mask (int mode) { return true;} virtual bool changing_mask (int mode) { return true;}
virtual TMask* get_mask (int mode) {return mode==MODE_QUERY?_amsk:_bmsk; } virtual TMask* get_mask (int mode) {return mode==MODE_QUERY?_amsk:_bmsk; }
@ -19,6 +25,11 @@ protected:
virtual bool user_destroy(); virtual bool user_destroy();
virtual void on_config_change(); virtual void on_config_change();
virtual bool get_next_key(TToken_string& key); virtual bool get_next_key(TToken_string& key);
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
}; };
bool TContratti_app:: user_create() bool TContratti_app:: user_create()
@ -80,6 +91,121 @@ bool TContratti_app:: get_next_key(TToken_string& key)
return true; return true;
} }
void TContratti_app:: build_query(const TMask& m,TString& query) const
{
query="";
query << "USE LVCONDV\n"
<< "FROM CODCF="<<m.get(F_CODCF)<<" CODCONT="<<m.get(F_CODCONT)<<"\n"
<< "TO CODCF="<<m.get(F_CODCF)<<" CODCONT="<<m.get(F_CODCONT);
}
int TContratti_app:: read(TMask& m)
{
int err=TRelation_application::read(m);
if(err==NOERR)
{
TString query;
build_query(m,query);
TISAM_recordset righeset(query);
const TRectype& rec=righeset.cursor()->curr();
TSheet_field& righe=m.sfield(F_RIGHE);
TMask& msk=righe.sheet_mask();
righe.destroy();
for (bool ok=righeset.move_first(); ok; ok=righeset.move_next())
{
TToken_string& row=righe.row(-1);
FOR_EACH_MASK_FIELD(msk,i,f)
{
const TFieldref*fr=f->field();
if (fr!= NULL)
row.add(fr->read(rec),righe.cid2index(f->dlg()));
}
righe.check_row(righe.items()-1,3);
}
righe.force_update();
}
return err;
}
int TContratti_app::find_art(TSheet_field& s,const TString& art) const
{
int r=-1;
for (r=s.items()-1;r>=0;r--)
{
const char* codart= s.row(r).get(0);
if (art==codart)
break;
}
return r;
}
void TContratti_app::save_rows(const TMask& m)
{
TString query;
TSheet_field& righe=m.sfield(F_RIGHE);
build_query(m,query);
TISAM_recordset righeset(query);
TLocalisamfile& file=righeset.cursor()->file();
for (bool ok=righeset.move_first(); ok; ok=righeset.move_next())
{
const TString& art=righeset.get("CODART").as_string();
if (find_art(righe,art)<0)
file.remove();
}
TMask& msk=righe.sheet_mask();
FOR_EACH_SHEET_ROW(righe,r,row)
{
file.zero();
file.put("CODCF",m.get(F_CODCF));
file.put("CODCONT",m.get(F_CODCONT));
FOR_EACH_MASK_FIELD(msk,i,f)
{
const TFieldref*fr=f->field();
if (fr!= NULL)
{
const int pos=righe.cid2index(f->dlg());
fr->write(row->get(pos),file.curr());
}
}
file.rewrite_write();
}
}
int TContratti_app::write(const TMask& m)
{
int err=TRelation_application::write(m);
if(err==NOERR) save_rows(m);
return err;
}
int TContratti_app::rewrite(const TMask& m)
{
int err=TRelation_application::rewrite(m);
if(err==NOERR) save_rows(m);
return err;
}
bool TContratti_app::remove()
{
bool ok=TRelation_application::remove();
if(ok)
{
TString query;
build_query(*_bmsk,query);
TISAM_recordset righeset(query);
TLocalisamfile& file=righeset.cursor()->file();
for (bool ok=righeset.move_first(); ok; ok=righeset.move_next())
{
file.remove();
}
}
return ok;
}
int lv0400(int argc, char* argv[]) int lv0400(int argc, char* argv[])
{ {
TContratti_app app; TContratti_app app;

View File

@ -3,12 +3,12 @@
#define F_CODCONT 203 #define F_CODCONT 203
#define F_DATAIN 204 #define F_DATAIN 204
#define F_DATASC 205 #define F_DATASC 205
#define F_SHEET_ATTIV 206 #define F_RIGHE 206
#define F_PERFAT 207 #define F_PERFAT 207
#define F_TIPOCAN 208 #define F_TIPOCAN 208
#define F_INPERFAT 209 #define F_INPERFAT 209
#define F_DTLASTFAT 210 #define F_DTLASTFAT 210
#define F_ATTFATTNODT 211 #define F_ATTFATNODT 211
#define F_FORFNOCONS 212 #define F_FORFNOCONS 212
#define F_TIPOSTPRZ 213 #define F_TIPOSTPRZ 213
#define F_TIPOLIS 214 #define F_TIPOLIS 214
@ -17,7 +17,7 @@
#define F_CAUSMAGDESC 217 #define F_CAUSMAGDESC 217
#define F_CONTSPOR 218 #define F_CONTSPOR 218
#define F_SSCONS 219 #define F_SSCONS 219
#define F_RIFBOLINFAT 220 #define F_RIFBOLFAT 220
#define F_ADDCAPROT 221 #define F_ADDCAPROT 221
#define F_PROFORME 222 #define F_PROFORME 222
#define F_STRCONS 223 #define F_STRCONS 223
@ -30,10 +30,11 @@
#define F_STDDTPTS 230 #define F_STDDTPTS 230
#define F_IMPMINFAT 231 #define F_IMPMINFAT 231
#define F_PERCNOCONT 232 #define F_PERCNOCONT 232
#define F_PERCTOLLPES 233 #define F_PERCTOLPES 233
#define F_NUMUT 234 #define F_NUMUT 234
#define F_NUMETI 235 #define F_NUMETI 235
#define S_ARTICOLO 101 #define F_RITAUDTTMP 236
#define S_CODART 101
#define S_DESCR 102 #define S_DESCR 102
#define S_UM 103 #define S_UM 103
#define S_CONG 104 #define S_CONG 104
@ -57,6 +58,6 @@
#define S_FORFPERCL 122 #define S_FORFPERCL 122
#define S_CAUSMAG 123 #define S_CAUSMAG 123
#define S_TIPONOL 124 #define S_TIPONOL 124
#define S_RITAUTDTTMP 125 #define S_RITAUDTTMP 125
#define S_FATTKG 126 #define S_FATTKG 126
#define S_ARROT 127 #define S_ARROT 127

View File

@ -56,7 +56,7 @@ BEGIN
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
SPREADSHEET F_SHEET_ATTIV 0 -6 SPREADSHEET F_RIGHE 0 -6
BEGIN BEGIN
PROMPT 0 5 "Righe contratto" PROMPT 0 5 "Righe contratto"
ITEM "Articolo@20" ITEM "Articolo@20"
@ -184,10 +184,10 @@ BEGIN
FIELD PERCNOCONT FIELD PERCNOCONT
END END
NUMBER F_PERCTOLLPES 6 2 NUMBER F_PERCTOLPES 6 2
BEGIN BEGIN
PROMPT 1 17 "Percentuale tolleranza peso teorico/effettivo" PROMPT 1 17 "Percentuale tolleranza peso teorico/effettivo"
FIELD PERCTOLLPES FIELD PERCTOLPES
END END
NUMBER F_NUMUT 5 NUMBER F_NUMUT 5
@ -246,10 +246,10 @@ BEGIN
PROMPT 15 2 "" PROMPT 15 2 ""
END END
BOOLEAN F_ATTFATTNODT BOOLEAN F_ATTFATNODT
BEGIN BEGIN
PROMPT 16 3 "Attiva fatturazione indipendentemente dalla data" PROMPT 16 3 "Attiva fatturazione indipendentemente dalla data"
FIELD ATTFATTNODT FIELD ATTFATNODT
END END
BOOLEAN F_FORFNOCONS BOOLEAN F_FORFNOCONS
@ -264,10 +264,10 @@ BEGIN
FIELD SSCONS FIELD SSCONS
END END
BOOLEAN F_RIFBOLINFAT BOOLEAN F_RIFBOLFAT
BEGIN BEGIN
PROMPT 16 6 "Riferimenti bolle in fattura" PROMPT 16 6 "Riferimenti bolle in fattura"
FIELD RIFBOLINFAT FIELD RIFBOLFAT
END END
BOOLEAN F_ADDCAPROT BOOLEAN F_ADDCAPROT
@ -324,6 +324,12 @@ BEGIN
FIELD STDICITURA FIELD STDICITURA
END END
BOOLEAN F_RITAUDTTMP
BEGIN
PROMPT 16 16 "Ritiro automatico dotazione temporanea"
FIELD RITAUDTTMP
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
@ -337,27 +343,28 @@ END
STRING S_ARTICOLO 20 STRING S_ARTICOLO 20
BEGIN BEGIN
PROMPT 1 2 "" PROMPT 1 2 ""
FLAGS "U" FLAGS "U"
USE LF_ANAMAG USE LF_ANAMAG
INPUT CODART S_ARTICOLO INPUT CODART S_ARTICOLO
DISPLAY "Articolo" CODART DISPLAY "Articolo" CODART
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT S_ARTICOLO CODART OUTPUT S_ARTICOLO CODART
OUTPUT S_DESCR DESCR OUTPUT S_DESCR DESCR
OUTPUT S_PREZZOST COSTSTD OUTPUT S_PREZZOST COSTSTD
CHECKTYPE REQUIRED FIELD ARTICOLO
CHECKTYPE REQUIRED
END END
STRING S_DESCR 50 STRING S_DESCR 50
BEGIN BEGIN
PROMPT 26 2 "" PROMPT 26 2 ""
USE LF_ANAMAG KEY 2 USE LF_ANAMAG KEY 2
INPUT DESCR S_DESCR INPUT DESCR S_DESCR
DISPLAY "Descrizone@50" DESCR DISPLAY "Descrizone@50" DESCR
DISPLAY "Articolo" CODART DISPLAY "Articolo" CODART
COPY OUTPUT S_ARTICOLO COPY OUTPUT S_ARTICOLO
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
CURRENCY S_PREZZOST 15 CURRENCY S_PREZZOST 15
@ -523,10 +530,10 @@ BEGIN
FLAGS "D" FLAGS "D"
END END
BOOLEAN S_RITAUTDTTMP BOOLEAN S_RITAUDTTMP
BEGIN BEGIN
PROMPT 40 16 "Ritiro automatico dotazione temporanea" PROMPT 40 16 "Ritiro automatico dotazione temporanea"
FIELD RITAUTDTTMP FIELD RITAUDTTMP
END END
BOOLEAN S_FATTKG BOOLEAN S_FATTKG