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:
parent
2ba7d017b9
commit
e5f198e5a0
266
cg/cg4700.cpp
266
cg/cg4700.cpp
@ -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;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user