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:
|
case 1:
|
||||||
sc1200(argc,argv); break;
|
sc1200(argc,argv); break;
|
||||||
|
case 2:
|
||||||
|
sc1300(argc,argv); break;
|
||||||
default:
|
default:
|
||||||
sc1100(argc,argv); break;
|
sc1100(argc,argv); break;
|
||||||
}
|
}
|
||||||
|
1
sc/sc1.h
1
sc/sc1.h
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
int sc1100(int argc, char** argv);
|
int sc1100(int argc, char** argv);
|
||||||
int sc1200(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)
|
MENU MENU_BAR(1)
|
||||||
SUBMENU MENU_FILE "~File"
|
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