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:
villa 1995-03-24 11:02:15 +00:00
parent 21e797e5e2
commit 0184ad1f8b
6 changed files with 263 additions and 0 deletions

View File

@ -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;
}

View File

@ -1,3 +1,4 @@
int sc1100(int argc, char** argv);
int sc1200(int argc, char** argv);
int sc1300(int argc, char** argv);

View File

@ -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
View 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
View 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
View 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