sc1300 (sc1 -2): gestione archivio storico solleciti
git-svn-id: svn://10.65.10.50/trunk@1160 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
21e797e5e2
commit
0184ad1f8b
@ -11,6 +11,8 @@ int main(int argc,char** argv)
|
||||
{
|
||||
case 1:
|
||||
sc1200(argc,argv); break;
|
||||
case 2:
|
||||
sc1300(argc,argv); break;
|
||||
default:
|
||||
sc1100(argc,argv); break;
|
||||
}
|
||||
|
1
sc/sc1.h
1
sc/sc1.h
@ -1,3 +1,4 @@
|
||||
|
||||
int sc1100(int argc, char** argv);
|
||||
int sc1200(int argc, char** argv);
|
||||
int sc1300(int argc, char** argv);
|
||||
|
@ -8,3 +8,10 @@ MENUBAR MENU_BAR(1)
|
||||
MENU MENU_BAR(1)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
MENUBAR MENU_BAR(2)
|
||||
|
||||
MENU MENU_BAR(2)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
|
||||
|
||||
|
121
sc/sc1300.cpp
Executable file
121
sc/sc1300.cpp
Executable file
@ -0,0 +1,121 @@
|
||||
#include <mask.h>
|
||||
#include <relapp.h>
|
||||
|
||||
#include "sc1.h"
|
||||
#include "sc1300a.h"
|
||||
|
||||
class SollecitiStorici_app : public TRelation_application
|
||||
{
|
||||
TMask* _msk;
|
||||
TRelation* _rel;
|
||||
|
||||
protected:
|
||||
|
||||
virtual TMask* get_mask(int mode) { return _msk;}
|
||||
virtual bool changing_mask(int mode) { return FALSE;}
|
||||
virtual TRelation* get_relation() const { return _rel;}
|
||||
virtual bool user_create() ;
|
||||
virtual bool user_destroy() ;
|
||||
virtual int write(const TMask& m);
|
||||
|
||||
static bool zap_handler(TMask_field& f, KEY k);
|
||||
|
||||
static SollecitiStorici_app& app()
|
||||
{ return (SollecitiStorici_app&)main_app();}
|
||||
|
||||
public:
|
||||
|
||||
void zap_cliente(const char* c);
|
||||
|
||||
SollecitiStorici_app() {}
|
||||
virtual ~SollecitiStorici_app() {}
|
||||
};
|
||||
|
||||
|
||||
bool SollecitiStorici_app::user_create()
|
||||
{
|
||||
_rel = new TRelation(LF_STOSOLL);
|
||||
_msk = new TMask("sc1300a");
|
||||
|
||||
_msk->set_handler(F_ZAP, zap_handler);
|
||||
set_search_field(F_TIPO);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool SollecitiStorici_app::user_destroy()
|
||||
{
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool SollecitiStorici_app::zap_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE && !f.mask().get(F_CODICE).empty())
|
||||
{
|
||||
if (yesno_box("Si desidera azzerare l'archivio solleciti per "
|
||||
"il cliente %s?", (const char*)f.mask().get(F_DESCR)))
|
||||
{
|
||||
app().zap_cliente(f.mask().get(F_CODICE));
|
||||
f.mask().stop_run(K_ESC);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
void SollecitiStorici_app::zap_cliente(const char* cod)
|
||||
{
|
||||
TLocalisamfile& sr = _rel->lfile();
|
||||
sr.zero(); sr.put("CODICE", cod);
|
||||
int err = NOERR;
|
||||
|
||||
for (err = sr.read(_isgteq);
|
||||
err == NOERR && sr.get("CODICE") == cod;
|
||||
err = sr.next())
|
||||
sr.remove();
|
||||
}
|
||||
|
||||
|
||||
int SollecitiStorici_app::write(const TMask& m)
|
||||
{
|
||||
TLocalisamfile& sr = _rel->lfile();
|
||||
_rel->save_status();
|
||||
|
||||
sr.zero(); sr.put("CODICE", m.get(F_CODICE));
|
||||
int err = NOERR;
|
||||
bool ok = TRUE;
|
||||
|
||||
TDate data;
|
||||
TDate dmsk(m.get(F_DATA));
|
||||
|
||||
for (err = sr.read(_isgteq);
|
||||
err == NOERR && sr.get("CODICE") == m.get(F_CODICE);
|
||||
err = sr.next())
|
||||
{
|
||||
int tipo = sr.get_int("TIPO");
|
||||
data = sr.get_date("DATASPED");
|
||||
|
||||
if (tipo >= m.get_int(F_TIPO) && data <= dmsk)
|
||||
{
|
||||
error_box("Sollecito di grado inferiore ad uno precedente (%s, grado %d)",
|
||||
(const char*)data.string(), tipo);
|
||||
ok = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
_rel->restore_status();
|
||||
|
||||
if (ok) return TRelation_application::write(m);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
int sc1300(int argc, char** argv)
|
||||
{
|
||||
SollecitiStorici_app a;
|
||||
a.run(argc, argv, "Archivio Storico Solleciti");
|
||||
return 0;
|
||||
}
|
6
sc/sc1300a.h
Executable file
6
sc/sc1300a.h
Executable file
@ -0,0 +1,6 @@
|
||||
#define F_CODICE 101
|
||||
#define F_DESCR 102
|
||||
#define F_TIPO 103
|
||||
#define F_DATA 104
|
||||
#define F_SALDO 105
|
||||
#define F_ZAP 106
|
126
sc/sc1300a.uml
Executable file
126
sc/sc1300a.uml
Executable file
@ -0,0 +1,126 @@
|
||||
#include "sc1300a.h"
|
||||
|
||||
TOOLBAR "" 0 20 0 2
|
||||
|
||||
// #include <toolbar.h>
|
||||
|
||||
BUTTON DLG_SAVEREC 8 2
|
||||
BEGIN
|
||||
PROMPT -17 -1 "~Registra"
|
||||
MESSAGE EXIT,K_SAVE
|
||||
END
|
||||
|
||||
BUTTON DLG_NEWREC 8 2
|
||||
BEGIN
|
||||
PROMPT -27 -1 "~Nuovo"
|
||||
MESSAGE EXIT,K_INS
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 8 2
|
||||
BEGIN
|
||||
PROMPT -37 -1 "~Elimina"
|
||||
MESSAGE EXIT,K_DEL
|
||||
END
|
||||
|
||||
BUTTON DLG_FINDREC 8 2
|
||||
BEGIN
|
||||
PROMPT -47 -1 "Ri~cerca"
|
||||
MESSAGE EXIT,K_F9
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 8 2
|
||||
BEGIN
|
||||
PROMPT -57 -1 ""
|
||||
MESSAGE EXIT,K_ESC
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 8 2
|
||||
BEGIN
|
||||
PROMPT -67 -1 ""
|
||||
MESSAGE EXIT,K_QUIT
|
||||
END
|
||||
|
||||
BUTTON F_ZAP 10 2
|
||||
BEGIN
|
||||
PROMPT -77 -1 "Canc. Tutti"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Archivio Storico Solleciti" -1 -1 78 8
|
||||
|
||||
STRING F_CODICE 5
|
||||
BEGIN
|
||||
PROMPT 4 2 "Codice "
|
||||
HELP "Codice del cliente"
|
||||
FIELD LF_STOSOLL->CODICE
|
||||
FLAGS "UR"
|
||||
KEY 1
|
||||
USE LF_CLIFO KEY 1
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF F_CODICE
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Ragione sociale @30" RAGSOC[1,30]
|
||||
DISPLAY "Localita @30" LOCALITACF[1,30]
|
||||
OUTPUT F_CODICE CODCF
|
||||
OUTPUT F_DESCR RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_DESCR 50
|
||||
BEGIN
|
||||
PROMPT 4 4 "Ragione sociale "
|
||||
HELP "Ragione sociale del cliente"
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
INPUT RAGSOC F_DESCR
|
||||
DISPLAY "Ragione sociale @30" RAGSOC[1,30]
|
||||
DISPLAY "Codice" CODCF
|
||||
DISPLAY "Localita @30" LOCALITACF[1,30]
|
||||
OUTPUT F_CODICE CODCF
|
||||
OUTPUT F_DESCR RAGSOC
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
NUMBER F_TIPO 2
|
||||
BEGIN
|
||||
PROMPT 4 6 "Grado sollecito "
|
||||
USE LF_STOSOLL
|
||||
INPUT CODICE F_CODICE
|
||||
INPUT TIPO F_TIPO
|
||||
DISPLAY "Codice" CODICE
|
||||
DISPLAY "Grado" TIPO
|
||||
DISPLAY "Data@10" DATASPED
|
||||
DISPLAY "Saldo@15" SALDO
|
||||
OUTPUT F_CODICE CODICE
|
||||
OUTPUT F_DATA DATASPED
|
||||
OUTPUT F_SALDO SALDO
|
||||
OUTPUT F_TIPO TIPO
|
||||
HELP "Numero di solleciti gia' inviati"
|
||||
FIELD TIPO
|
||||
KEY 1
|
||||
CHECKTYPE REQUIRED
|
||||
WARNING "Grado sollecito obbligatorio"
|
||||
FLAGS "U"
|
||||
END
|
||||
|
||||
DATE F_DATA
|
||||
BEGIN
|
||||
PROMPT 4 8 "Data invio sollecito "
|
||||
HELP "Data di spedizione sollecito"
|
||||
FIELD LF_STOSOLL->DATASPED
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
NUMBER F_SALDO 15
|
||||
BEGIN
|
||||
PROMPT 4 10 "Importo totale "
|
||||
HELP "Ammontare del saldo al momento del sollecito"
|
||||
FLAGS "R"
|
||||
PICTURE "."
|
||||
FIELD LF_STOSOLL->SALDO
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user