Anzitutto ho tolto i dannatissimi ^M, poi ho modificato il programma

in modo che utilizzasse la tabella %VER.


git-svn-id: svn://10.65.10.50/trunk@2770 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-04-24 16:59:10 +00:00
parent 2ba7d017b9
commit e5f198e5a0

View File

@ -1,130 +1,136 @@
//Gestione acconti: questo assurdo prg viene usato solo se ho un acconto da versare //Gestione acconti: questo assurdo prg viene usato solo se ho un acconto da versare
//(cosa stabilita dal prg di calcolo acconti) e serve per versare meno, cioe' //(cosa stabilita dal prg di calcolo acconti) e serve per versare meno, cioe'
//per frodare il fisco. //per frodare il fisco.
#include <relapp.h> #include <relapp.h>
#include <config.h> #include <config.h>
#include <msksheet.h> #include <msksheet.h>
#include <tabutil.h> #include <tabutil.h>
#include "cg4700.h" #ifndef __CGLIB03_H
#include "cglib03.h"
#define ACCONTO_MENO_CREDITO real(200000.0) #endif
#include "cg4700.h"
class GesAcc_app : public TRelation_application
{
TRelation* _rel; class GesAcc_app : public TRelation_application
TMask* _mask; {
TTable* _lim; TRelation* _rel;
TMask* _mask;
private: TTable* _lim;
static bool msk_credito(TMask_field&, KEY);
static bool msk_acconto(TMask_field&, KEY); private:
static bool msk_credito(TMask_field&, KEY);
protected: static bool msk_acconto(TMask_field&, KEY);
virtual bool user_create();
virtual bool user_destroy(); protected:
virtual TRelation* get_relation() const { return _rel; } virtual bool user_create();
virtual TMask* get_mask(int mode); virtual bool user_destroy();
virtual bool changing_mask(int mode) {return FALSE; } virtual TRelation* get_relation() const { return _rel; }
//virtual int rewrite(const TMask&); virtual TMask* get_mask(int mode);
//virtual void init_query_mode (TMask&); virtual bool changing_mask(int mode) {return FALSE; }
//virtual void init_query_insert_mode (TMask&); //virtual int rewrite(const TMask&);
}; //virtual void init_query_mode (TMask&);
//virtual void init_query_insert_mode (TMask&);
inline GesAcc_app& app() };
{
return (GesAcc_app&) main_app(); inline GesAcc_app& app()
} {
return (GesAcc_app&) main_app();
bool GesAcc_app::user_create() }
{
_lim = new TTable("LIM"); bool GesAcc_app::user_create()
_rel = new TRelation("%LIA"); {
_lim = new TTable("LIM");
_mask = new TMask("cg4700a"); _rel = new TRelation("%LIA");
_mask->set_handler(F_ACCONTO, msk_acconto);
_mask->set_handler(F_CREDITO, msk_credito); _mask = new TMask("cg4700a");
_mask->set_handler(F_ACCONTO, msk_acconto);
set_search_field(F_CODDITTA); _mask->set_handler(F_CREDITO, msk_credito);
return TRUE; set_search_field(F_CODDITTA);
}
return TRUE;
bool GesAcc_app::user_destroy() }
{
delete _mask; bool GesAcc_app::user_destroy()
delete _lim; {
delete _rel; delete _mask;
delete _lim;
return TRUE; delete _rel;
}
return TRUE;
bool GesAcc_app::msk_credito(TMask_field& f, KEY k) }
{
if (k == K_ENTER) bool GesAcc_app::msk_credito(TMask_field& f, KEY k)
{ {
real credito (f.get()); if (k == K_ENTER)
real acconto (f.mask().get(F_ACCONTO)); {
if (credito.sign() < 0) real credito (f.get());
return f.error_box("Introdurre un valore non negativo"); real acconto (f.mask().get(F_ACCONTO));
if (credito > acconto) if (credito.sign() < 0)
return f.error_box("Il credito non puo' essere superiore all'acconto"); return f.error_box("Introdurre un valore non negativo");
if (acconto.is_zero()) if (credito > acconto)
if (!credito.is_zero()) return f.error_box("Il credito non puo' essere superiore all'acconto");
return f.error_box("Non e' possibile indicare il credito se l'acconto e' nullo"); if (acconto.is_zero())
} if (!credito.is_zero())
return TRUE; return f.error_box("Non e' possibile indicare il credito se l'acconto e' nullo");
} }
return TRUE;
bool GesAcc_app::msk_acconto(TMask_field& f, KEY k) }
{
if (k == K_ENTER) bool GesAcc_app::msk_acconto(TMask_field& f, KEY k)
{ {
real credito (f.mask().get(F_CREDITO)); if (k == K_ENTER)
real acconto (f.get()); {
if (!acconto.is_zero()) real credito (f.mask().get(F_CREDITO));
{ real acconto (f.get());
if (acconto.sign() < 0) TInteressi_IVA_table ver;
return f.error_box("Introdurre un valore non negativo"); if (ver.read(f.mask().get_int(F_ANNO),12)!=NOERR)
if (acconto - credito < ACCONTO_MENO_CREDITO) warning_box("Errore %d in lettura tabella versamenti ed interessi.",ver.status());
return f.error_box("La differenza tra acconto e credito deve essere superiore a lire %s", ACCONTO_MENO_CREDITO.string(".")); real acconto_meno_credito = ver.get(I_ACCONTOIVA);
} if (!acconto.is_zero())
} {
return TRUE; if (acconto.sign() < 0)
} return f.error_box("Introdurre un valore non negativo");
if (acconto - credito < acconto_meno_credito)
/*** Deve farlo il programma di stampa versamenti! return f.error_box("La differenza tra acconto e credito deve essere superiore a lire %s", acconto_meno_credito.string("."));
int GesAcc_app::rewrite(const TMask& m) }
{ }
TString16 chiave; return TRUE;
int anno = m.get_int(F_ANNO); }
chiave << anno << 12; /*** Deve farlo il programma di stampa versamenti!
int GesAcc_app::rewrite(const TMask& m)
TTable lim ("LIM"); {
lim.put("CODTAB", chiave); TString16 chiave;
if (lim.read() == NOERR) int anno = m.get_int(F_ANNO);
{
real new_acc (m.get(F_ACCONTO)); chiave << anno << 12;
real new_cred = lim.get_real("R12") - lim.get_real("R11") + new_acc;
lim.put("R11", new_acc); TTable lim ("LIM");
lim.put("R12", new_cred); lim.put("CODTAB", chiave);
lim.put("R0", lim.get_real("R13")- new_cred); if (lim.read() == NOERR)
lim.rewrite(); {
} real new_acc (m.get(F_ACCONTO));
real new_cred = lim.get_real("R12") - lim.get_real("R11") + new_acc;
m.autosave(_rel); lim.put("R11", new_acc);
return _rel->rewrite(); lim.put("R12", new_cred);
} lim.put("R0", lim.get_real("R13")- new_cred);
***/ lim.rewrite();
}
TMask* GesAcc_app::get_mask(int mode)
{ m.autosave(_rel);
return _mask; return _rel->rewrite();
} }
***/
int cg4700(int argc, char* argv[])
{ TMask* GesAcc_app::get_mask(int mode)
GesAcc_app app; {
app.run(argc, argv, "Gestione acconti"); return _mask;
return 0; }
}
int cg4700(int argc, char* argv[])
{
GesAcc_app app;
app.run(argc, argv, "Gestione acconti");
return 0;
}