Patch level : 10.0 NO PATCH
Files correlati : pd0610 pd061300a.msk Ricompilazione Demo : [ ] Commento : Aggiunto il programma che modifica le condizioni di pagamento sui documenti filtrati in base a numdoc, stato, da cliente a cliente, da data a data - Primo step: mancano alcuni test git-svn-id: svn://10.65.10.50/branches/R_10_00@21354 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
05c5aa97ee
commit
b1b181a918
@ -16,6 +16,7 @@ Stampe articoli e/o linee per regione/provincia Prodest
|
||||
PD0610
|
||||
Gestione tabella Clienti/Articoli per SRM
|
||||
Genera ordini fornitori dagli ordini cliente SRM
|
||||
Modifica Condizioni di Pagamento sui documenti per SRM
|
||||
|
||||
PD0666
|
||||
Esportazione clifo e partite a SAP per MEDICASA
|
||||
|
@ -9,6 +9,7 @@ int main(int argc,char** argv)
|
||||
switch (s)
|
||||
{
|
||||
case 1 : pd0610200(argc, argv); break; // Genera ordini fornitori dagli ordini cliente SRM
|
||||
case 2 : pd0610300(argc, argv); break; // Modifica condizioni di pagamento SRM
|
||||
default: pd0610100(argc, argv); break; // Tabella Clienti/Articoli per SRM
|
||||
}
|
||||
exit(0);
|
||||
|
@ -1,2 +1,3 @@
|
||||
int pd0610100(int argc, char* argv[]);
|
||||
int pd0610200(int argc, char* argv[]);
|
||||
int pd0610200(int argc, char* argv[]);
|
||||
int pd0610300(int argc, char* argv[]);
|
129
ps/pd0610300.cpp
Executable file
129
ps/pd0610300.cpp
Executable file
@ -0,0 +1,129 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <recset.h>
|
||||
#include <relation.h>
|
||||
|
||||
#include "../cg/cglib01.h"
|
||||
|
||||
#include "doc.h"
|
||||
|
||||
#include "pd0610300a.h"
|
||||
|
||||
/////////////////////////////////
|
||||
//// TSOST_CONDPAG_MSK ////
|
||||
/////////////////////////////////
|
||||
|
||||
class TSost_condpag_msk: public TAutomask
|
||||
{
|
||||
protected:
|
||||
void elabora_documenti();
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
public:
|
||||
TSost_condpag_msk();
|
||||
};
|
||||
|
||||
void TSost_condpag_msk::elabora_documenti()
|
||||
{
|
||||
//se non sono settate le date, compilo gli anni dagli esercizi contabili
|
||||
TEsercizi_contabili& esc = esercizi();
|
||||
const TDate dadata = get_date(F_DADATA);
|
||||
const TDate adata = get_date(F_ADATA);
|
||||
const long daanno = dadata.ok() ? dadata.year() : esc.first();
|
||||
const long aanno = adata.ok() ? adata.year() : esc.last();
|
||||
|
||||
TString query;
|
||||
query << "USE DOC\n"
|
||||
<< "SELECT (TIPODOC=\"#TIPODOC\")&&(STATO=\"#STATO\")&&(TIPOCF=\"C\")&&(BETWEEN(CODCF,#DACODCF,#ACODCF))&&(BETWEEN(DATADOC,#DADATA,#ADATA))\n"
|
||||
<< "FROM PROVV=\"D\" ANNO=#DAANNO CODNUM=\"#CODNUM\"\n"
|
||||
<< "TO PROVV=\"D\" ANNO=#AANNO CODNUM=\"#CODNUM\"";
|
||||
|
||||
//instanzio il recordset e gli setto tutte le variabili
|
||||
TISAM_recordset doc(query);
|
||||
doc.set_var("#TIPODOC", get(F_TIPODOC));
|
||||
doc.set_var("#STATO", get(F_STATO));
|
||||
doc.set_var("#DACODCF", get_long(F_DACODCF));
|
||||
doc.set_var("#ACODCF", get_long(F_ACODCF));
|
||||
doc.set_var("#DADATA", dadata);
|
||||
doc.set_var("#ADATA", adata);
|
||||
doc.set_var("#DAANNO", daanno);
|
||||
doc.set_var("#AANNO", aanno);
|
||||
doc.set_var("#CODNUM", get(F_CODNUM));
|
||||
|
||||
TLocalisamfile& documenti = doc.cursor()->file();
|
||||
|
||||
const long codpag = get_long(F_CODPAG);
|
||||
|
||||
//scorro il recordset e aggiorno i documenti che è necessario aggiornare
|
||||
for(bool ok = doc.move_first(); ok; ok = doc.move_next())
|
||||
{
|
||||
TRectype& rec = doc.cursor()->curr();
|
||||
|
||||
if(rec.get_long(DOC_CODPAG) != codpag)
|
||||
{
|
||||
rec.put(DOC_CODPAG, codpag);
|
||||
rec.rewrite(documenti);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool TSost_condpag_msk::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch(o.dlg())
|
||||
{
|
||||
case DLG_OK:
|
||||
if(e == fe_button)
|
||||
{
|
||||
elabora_documenti();
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
/*case DLG_CANCEL:
|
||||
if(e == fe_button)
|
||||
{
|
||||
reset(F_CLIENTE);
|
||||
reset(F_RAGSOC);
|
||||
sfield(F_SHEET).destroy();
|
||||
return false;
|
||||
}
|
||||
break;*/
|
||||
default: break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TSost_condpag_msk::TSost_condpag_msk() : TAutomask("pd0610300a")
|
||||
{
|
||||
}
|
||||
|
||||
/////////////////////////////////
|
||||
//// TSOST_CONDPAG_APP ////
|
||||
/////////////////////////////////
|
||||
|
||||
class TSost_condpag_app: public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual bool check_autorization() const {return false;}
|
||||
virtual const char * extra_modules() const {return "ve";}
|
||||
virtual void main_loop();
|
||||
void elabora();
|
||||
};
|
||||
|
||||
void TSost_condpag_app::elabora()
|
||||
{
|
||||
}
|
||||
|
||||
void TSost_condpag_app::main_loop()
|
||||
{
|
||||
TSost_condpag_msk m;
|
||||
while (m.run() == K_ENTER)
|
||||
{
|
||||
elabora();
|
||||
}
|
||||
}
|
||||
|
||||
int pd0610300(int argc, char* argv[])
|
||||
{
|
||||
TSost_condpag_app app;
|
||||
app.run(argc, argv, TR("Sostituzione Condizioni di Pagamento"));
|
||||
return 0;
|
||||
}
|
15
ps/pd0610300a.h
Executable file
15
ps/pd0610300a.h
Executable file
@ -0,0 +1,15 @@
|
||||
//Definizione campi per maschera pd0610300a
|
||||
#define F_CODNUM 201
|
||||
#define F_DESNUM 202
|
||||
#define F_TIPODOC 203
|
||||
#define F_DESTIPODOC 204
|
||||
#define F_STATO 205
|
||||
#define F_DESSTATO 206
|
||||
#define F_DACODCF 207
|
||||
#define F_DARAGSOC 208
|
||||
#define F_ACODCF 209
|
||||
#define F_ARAGSOC 210
|
||||
#define F_DADATA 211
|
||||
#define F_ADATA 212
|
||||
#define F_CODPAG 213
|
||||
#define F_DESPAG 214
|
178
ps/pd0610300a.uml
Executable file
178
ps/pd0610300a.uml
Executable file
@ -0,0 +1,178 @@
|
||||
#include "pd0610300a.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
#include <elabar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Elaborazione" -1 -1 80 0
|
||||
|
||||
GROUPBOX DLG_NULL 78 8
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bParametri filtro"
|
||||
END
|
||||
|
||||
STRING F_CODNUM 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "Num. doc. "
|
||||
USE %NUM
|
||||
INPUT CODTAB F_CODNUM
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODNUM CODTAB
|
||||
OUTPUT F_DESNUM S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
STRING F_DESNUM 50
|
||||
BEGIN
|
||||
PROMPT 25 2 ""
|
||||
USE %NUM KEY 2
|
||||
INPUT S0 F_DESNUM
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_CODNUM
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_TIPODOC 4
|
||||
BEGIN
|
||||
PROMPT 2 3 "Tipo doc. "
|
||||
USE %TIP
|
||||
INPUT CODTAB F_TIPODOC
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_TIPODOC CODTAB
|
||||
OUTPUT F_DESTIPODOC S0
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
STRING F_DESTIPODOC 50
|
||||
BEGIN
|
||||
PROMPT 25 3 ""
|
||||
HELP "Descrizione tipo documento"
|
||||
USE %TIP KEY 2
|
||||
INPUT S0 F_DESTIPODOC
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_TIPODOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_STATO 1
|
||||
BEGIN
|
||||
PROMPT 2 4 "Stato "
|
||||
USE %STD
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT CODTAB F_STATO
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_STATO CODTAB
|
||||
OUTPUT F_DESSTATO S0
|
||||
FLAGS "U"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESSTATO 50
|
||||
BEGIN
|
||||
PROMPT 25 4 ""
|
||||
USE %STD KEY 2
|
||||
CHECKTYPE REQUIRED
|
||||
INPUT S0 F_DESSTATO
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice" CODTAB
|
||||
COPY OUTPUT F_STATO
|
||||
FLAGS "U"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER F_DACODCF 6
|
||||
BEGIN
|
||||
PROMPT 2 5 "Da cliente "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C" SELECT
|
||||
INPUT CODCF F_DACODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Descrizione@50" RAGSOC
|
||||
OUTPUT F_DACODCF CODCF
|
||||
OUTPUT F_DARAGSOC RAGSOC
|
||||
END
|
||||
|
||||
STRING F_DARAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 25 5 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C" SELECT
|
||||
INPUT RAGSOC F_DARAGSOC
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT F_DACODCF
|
||||
END
|
||||
|
||||
NUMBER F_ACODCF 6
|
||||
BEGIN
|
||||
PROMPT 2 6 "A cliente "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C" SELECT
|
||||
INPUT CODCF F_ACODCF
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Descrizione@50" RAGSOC
|
||||
OUTPUT F_ACODCF CODCF
|
||||
OUTPUT F_ARAGSOC RAGSOC
|
||||
END
|
||||
|
||||
STRING F_ARAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 25 6 ""
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C" SELECT
|
||||
INPUT RAGSOC F_ARAGSOC
|
||||
DISPLAY "Ragione sociale@50" RAGSOC
|
||||
DISPLAY "Codice" CODCF
|
||||
COPY OUTPUT F_ACODCF
|
||||
END
|
||||
|
||||
DATE F_DADATA
|
||||
BEGIN
|
||||
PROMPT 2 7 "Filtra documenti dal "
|
||||
END
|
||||
|
||||
DATE F_ADATA
|
||||
BEGIN
|
||||
PROMPT 37 7 "al "
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 9 "@bNuova Condizione"
|
||||
END
|
||||
|
||||
NUMBER F_CODPAG 4
|
||||
BEGIN
|
||||
PROMPT 2 10 "Codice Pagamento"
|
||||
USE %CPG
|
||||
INPUT CODTAB F_CODPAG
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CODPAG CODTAB
|
||||
OUTPUT F_DESPAG S0
|
||||
HELP "Codice condizione di pagamento concordata"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESPAG 50
|
||||
BEGIN
|
||||
PROMPT 25 10 ""
|
||||
USE %CPG KEY 2
|
||||
INPUT S0 F_DESPAG
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "Codice pagamento" CODTAB
|
||||
COPY OUTPUT F_CODPAG
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user