campo-sirio/ba/ba4300.cpp
guy 6343b36040 Patch level : 2.0 430
Files correlati     : ba0.exe ba1.exe ba4.exe batbcam.msk
Ricompilazione Demo : [ ]
Commento            :

EP20013
Anagrafiche di base\Ditte  il collegamento alla posta non funziona

EP20014
Ha senso avere la possibilità di caricare i dati dimostrativi se l'installazione non è  CAMPO DEMO?

EP20015
Entrando in Anagrafiche di base\Stampa tabelle\Comdizioni di pagamento: il pulsante stampa sostituisce il pulsante conferma

EP20016
Lavorando col mouse: Entro in Anagrafiche di base\Persone fisiche, clicco sul bottone posta si apre la finestra di outlook e la chiudo. Clicco sul bottone oggetti esterni e viene visualizzato errore fatale: impossibile leggere il file 'bagn006.msk' clicco su ok e viene visualizzato errore di Microsoft VisulaC++ Run Time Library Runtime Error! ProgramC:\……\ba4.exe abnormal program termination

EP20017
Entro in Manutenzione\Archivi e confermo la selezione ditta: nella finestra gestione files un solo clic del mause sulle freccine alle estremità delle barre di scorrimento non fa scorrere la videata.

EP20018
Entro in Anagrafiche di base\Persone fisiche vedo solo la pagina 1 fino a che non inserisco il codice nel group box persone fisiche e mi sposto col mouse su di un altro campo.

EP20019
Entro in Anagrafiche di base\Persone fisiche clicco sul bottone ricerca e seleziono un'anagrafica già inserita.Compaiono tutte le pagine ed i campi vengono compilati.Clicco sul bottone Annulla: non vedo più le pagine successive alla 1 e i campi di quest'ultima non vengono svuotati

EP20020
Lavorando col mouse: Etro in Anagrafiche di base\Ditte: a pagina uno mi sposto sul campo "codice" del group box "anagrafica" entro nella tabella anagrafica persone fisiche e giuridiche associata al campo e clicco sul bottone "nuovo" ( o sul bottone "collega") errore fatale: impossibile Impossibile ridimensionare una stringa fissa da 16 a 75 caratteri:'1|' clicco su ok e viene visualizzato errore di Microsoft VisulaC++ Run Time Library Runtime Error! ProgramC:\……\ba4.exe abnormal program termination

EP20021
Entro in Anagrafiche di base\Persone fisiche clicco sul bottone ricerca e seleziono un'anagrafica già inserita.Compaiono tutte le pagine ed i campi vengono compilati.Clicco sul bottone Elimina e confermo l'eliminazione: non vedo più le pagine successive alla 1,  i campi di quest'ultima non vengono svuotati anche se cliccando sul bottone ricerca verifico che l'anagrafica è stata eliminata.

EP20022
Entro in Anagrafiche di base\Tabelle ministeriali\Regioni clicco sul bottone ricerca e seleziono un comune inserito.I campi vengono compilati.Clicco sul bottone Annulla: i campi non vengono svuotati.Clicco sul bottone Nuovo visualizza messaggio "attenzione elemento già presente".

EP20023
Entrando in Amministrazione\Contabilità generale\stampa tabelle studio\Codici attività il  pulsante stampa sostituisce il pulsante conferma. vedi errore EP20015

EP20024
Amministrazione\Contabilità generale\Scelta contabilità\registri: richiamo uno dei registri e clicco su configurazione stampante metto spunta su visualizzazione e registro.Clicco su configurazione stampante, la spunta è tornata su stampante.


git-svn-id: svn://10.65.10.50/trunk@10937 c028cbd2-c16b-5b4b-a496-9718f37d4682
2003-03-20 11:39:42 +00:00

406 lines
9.7 KiB
C++
Executable File
Raw Blame History

#include <execp.h>
#include <golem.h>
#include <mailbox.h>
#include <prefix.h>
#include <recarray.h>
#include <relapp.h>
#include <tabutil.h>
#include <modaut.h>
#include <defmask.h>
#include "ba4.h"
#include "ba4300.h"
#define FLD_UL1_CODDITTA 133
#define FLD_UL1_CODDITTA_NDITTE_RAGSOC 100
#define FLD_AT1_CODDITTA 102
#define FLD_AT1_CODATTH 199
#define FLD_AT1_PROGD_NDITTE_RAGSOC 105
#define FLD_SC1_CODDITTA 143
#define FLD_SC1_CODANAGRSOH 147
#define FLD_SC1_CODDITTA_NDITTE_RAGSOC 144
#define FLD_UL1_CODULC 125
#define F_CODDITTA 142
#define F_ANNO 132
const char* CODDITTA = "CODDITTA";
const char* CODATTPREV = "CODATTPREV";
const char* TIPOA = "TIPOA";
const char* CODANAGR = "CODANAGR";
const char* CODATT = "CODATT";
const char* COMRF = "COMRF";
const char* INDRF = "INDRF";
const char* CIVRF = "CIVRF";
const char* CAPRF = "CAPRF";
const char* COMRES = "COMRES";
const char* INDRES = "INDRES";
const char* CIVRES = "CIVRES";
const char* CAPRES = "CAPRES";
const char* CODULC = "CODULC";
const char* COMULC = "COMULC";
const char* INDULC = "INDULC";
const char* CIVULC = "CIVULC";
const char* CAPULC = "CAPULC";
const char* COMCCIAA = "COMCCIAA";
const char* COMTRIB = "COMTRIB";
#define TABATT "%ais"
#define CODTAB "CODTAB"
#define S0 "S0"
#define DESCR "DESCR"
class TDitte_application : public TRelation_application
{
TMask* _msk;
TRelation *_rel;
TString16 _oldattprev;
bool _cespiti;
protected:
bool user_create() ;
bool user_destroy() ;
virtual TMask* get_mask(int) { return _msk;}
virtual bool changing_mask(int) { return FALSE;}
virtual void init_query_mode(TMask& m) ;
virtual void init_insert_mode(TMask& m) ;
void enable_reg(TMask& m) ;
virtual void init_modify_mode(TMask& m) ;
virtual bool protected_record(TRectype& rec) { return prefix().exist(rec.get_long("CODDITTA")); }
void set_att_prev(const TMask& m);
// static bool fax_handler(TMask_field& f, KEY k);
static bool email_handler(TMask_field& f, KEY k);
public:
TDitte_application();
virtual TRelation* get_relation() const { return _rel;}
virtual int rewrite(const TMask& m);
virtual int write(const TMask& m);
virtual bool remove();
virtual ~TDitte_application() {}
};
bool ba4300_handler(TMask& m, KEY k)
{
TDitte_application& app = (TDitte_application&)main_app();
if (k == (K_SHIFT+K_F12) && m.mode() == MODE_MOD)
{
m.enable(FLD_GD1_TIPOA);
m.enable(FLD_GD1_CODANAGR);
m.enable(FLD_GD1_CODANAGR_ANAGR_RAGSOC);
return TRUE;
}
if (k == (K_SHIFT+K_F7) && m.mode() == MODE_MOD)
{
m.enable(FLD_GD1_VALUTA);
return TRUE;
}
if (k != K_F5 && k != K_F6 && k != K_F7 && k != K_F8 && k != K_F3)
return TRUE;
if (m.mode() == MODE_MOD || m.mode() == MODE_INS)
{
if (m.mode() == MODE_INS)
{
if (!m.check_fields()) return FALSE;
if (app.write(m) != NOERR) return TRUE;
m.stop_run(K_ESC);
}
TString appname;
int fld = 0, fld1 = 0, fldbrowse = 0;
if (k == K_F5)
{
appname = "ba4 -3";
fld = FLD_UL1_CODDITTA;
fld1 = FLD_UL1_CODDITTA_NDITTE_RAGSOC;
fldbrowse = FLD_UL1_CODULC;
}
if (k == K_F6)
{
appname = "ba4 -4";
fld = FLD_AT1_CODDITTA;
fld1 = FLD_AT1_PROGD_NDITTE_RAGSOC;
fldbrowse = FLD_AT1_CODATTH;
}
if (k == K_F7)
{
appname = "ba4 -5";
fld = FLD_SC1_CODDITTA;
fld1 = FLD_SC1_CODDITTA_NDITTE_RAGSOC;
fldbrowse = FLD_SC1_CODANAGRSOH;
}
if (k == K_F8) { appname = "ba3 -0 reg"; fld = 0;fldbrowse = 0;}
if (k == K_F3) { appname = "ba5 -1"; fld = F_CODDITTA;fldbrowse = F_ANNO;}
if (appname.not_empty())
{
TString body(16);
if (fldbrowse)
body << fldbrowse << "|";
if (fld)
body << fld << "=" << m.get(FLD_GD1_CODDITTA) ;
if (fld1)
body << "|" << fld1 << "=" ;
if (fldbrowse || fld)
{
TMessage msg(appname, MSG_FS, body);
TMailbox mb;
mb.send(msg);
}
TExternal_app a(appname);
const long oldditta = main_app().get_firm();
if (k == K_F8) main_app().set_firm(m.get_long(FLD_GD1_CODDITTA));
a.run();
if (k == K_F8) main_app().set_firm(oldditta);
m.set_focus();
return FALSE;
}
}
return TRUE;
}
TDitte_application::TDitte_application() : _cespiti(FALSE)
{}
bool TDitte_application::email_handler(TMask_field& f, KEY k)
{
if (k == K_SPACE)
{
TMail_message msg(f.mask().get(F_MAIL));
msg.send();
}
return TRUE;
}
bool TDitte_application::user_create() // initvar e arrmask
{
open_files(LF_NDITTE, LF_ANAG, LF_UNLOC, LF_ATTIV, LF_TABCOM, 0);
_rel = new TRelation(LF_NDITTE);
_cespiti = has_module(CEAUT);
_msk = new TMask("ba4300a") ;
_msk->set_handler(ba4300_handler);
_msk->set_handler(DLG_EMAIL, email_handler);
set_search_field(FLD_GD1_CODDITTA);
return TRUE;
}
bool TDitte_application::user_destroy() // releasev e arrmask
{
delete _msk;
delete _rel;
return TRUE;
}
void TDitte_application::set_att_prev(const TMask& m)
{
const TString16 attprev(m.get(FLD_GD1_CODATTPREV));
if (_oldattprev == attprev)
return;
TRectype& ditte=_rel->curr();
TString codditta(ditte.get(CODDITTA)) ;
TLocalisamfile attiv(LF_ATTIV);
if (_oldattprev.not_empty())
{
attiv.put(CODDITTA, codditta) ;
attiv.put(CODATT, _oldattprev);
if (attiv.read(_isequal, _lock) == NOERR)
{
attiv.put("ATTPREV", bool(FALSE));
if (attiv.rewrite() != NOERR)
error_box(FR("Non posso aggiornare l'attivita' prevalente precedente : errore n. %d"), attiv.status());
}
}
attiv.zero() ;
attiv.put(CODDITTA, codditta) ;
attiv.put(CODATT, attprev) ;
const bool itwas = attiv.read(_isequal, _lock) == NOERR;
if (!itwas)
{
attiv.zero() ;
attiv.put(CODDITTA, codditta) ;
attiv.put(CODATT, attprev) ;
const TRectype& tabatt = cache().get(TABATT, ditte.get(CODATTPREV));
attiv.put(DESCR, tabatt.get(S0)) ;
}
attiv.put("ATTPREV", bool(TRUE)) ;
if (itwas)
{
if (attiv.rewrite() != NOERR)
error_box(FR("Impossibile aggiornare l'attivita' prevalente : errore n. %d"), attiv.status());
}
else
{
if (attiv.write() != NOERR)
error_box(FR("Impossibile creare l'attivita' prevalente : errore n. %d"), attiv.status());
}
}
int TDitte_application::write(const TMask& m)
{
const int err = TRelation_application::write(m);
if (err == NOERR)
{
set_att_prev(m);
TLocalisamfile anag(LF_ANAG);
const TRectype& ditte = _rel->curr();
anag.zero() ;
anag.put(TIPOA, ditte.get(TIPOA));
anag.put(CODANAGR, ditte.get(CODANAGR));
if (anag.read() == NOERR)
{
TLocalisamfile unloc(LF_UNLOC);
unloc.put(CODDITTA, ditte.get(CODDITTA)) ;
unloc.put(CODULC, 1);
unloc.put(COMULC, anag.get(COMRES));
unloc.put(INDULC, anag.get(INDRES));
unloc.put(CIVULC, anag.get(CIVRES));
unloc.put(CAPULC, anag.get(CAPRES));
unloc.put(COMCCIAA, anag.get(COMRES));
unloc.put(COMTRIB, anag.get(COMRES));
unloc.write();
}
}
return err;
}
int TDitte_application::rewrite(const TMask& m)
{
const int err = TRelation_application::rewrite(m);
if (err == NOERR)
set_att_prev(m);
return err;
}
bool TDitte_application::remove()
{
// Removes all activities
const long firm = _msk->get_long(FLD_GD1_CODDITTA);
TLocalisamfile attiv(LF_ATTIV);
TRecfield att_firm(attiv.curr(),"CODDITTA");
att_firm = firm;
for (attiv.read(_isgteq); attiv.good() && firm == (long)att_firm; attiv.next())
attiv.remove();
// Removes firm
return TRelation_application::remove();
}
void TDitte_application::init_query_mode(TMask& m)
{
if (filtered())
{
m.show(FLD_GD1_CODDITTAH);
m.show(FLD_GD1_RAGSOCH);
m.hide(FLD_GD1_CODDITTA);
m.hide(FLD_GD1_RAGSOC);
}
else
{
m.show(FLD_GD1_CODDITTA);
m.show(FLD_GD1_RAGSOC);
m.hide(FLD_GD1_CODDITTAH);
m.hide(FLD_GD1_RAGSOCH);
}
init_insert_mode(m);
}
void TDitte_application::init_insert_mode(TMask& m)
{
if (!filtered())
{
m.enable(FLD_GD1_TIPOA);
m.enable(FLD_GD1_CODANAGR);
m.enable(FLD_GD1_CODANAGR_ANAGR_RAGSOC);
m.show(FLD_GD1_CODDITTA);
m.show(FLD_GD1_RAGSOC);
m.hide(FLD_GD1_CODDITTAH);
m.hide(FLD_GD1_RAGSOCH);
}
else
{
m.show(FLD_GD1_CODDITTAH);
m.show(FLD_GD1_RAGSOCH);
m.hide(FLD_GD1_CODDITTA);
m.hide(FLD_GD1_RAGSOC);
}
m.disable(DLG_ATT);
m.disable(DLG_ULC);
m.disable(DLG_SOC);
m.disable(DLG_REG);
m.disable(DLG_REG1);
_oldattprev = "";
// La valuta si decide gi<67> in creazione: la valuta della prima ditta memorizzata
TEdit_field& val = m.efield(FLD_GD1_VALUTA);
TLocalisamfile& ditte = get_relation()->lfile();
if (ditte.first() == NOERR)
{
val.set(ditte.get("VALUTA"));
val.disable();
}
else
val.enable();
}
void TDitte_application::enable_reg(TMask& m)
{
const long codditta = m.get_long(FLD_GD1_CODDITTA);
m.enable(DLG_REG, codditta > 0 && prefix().exist(codditta));
}
void TDitte_application::init_modify_mode(TMask& m)
{
m.disable(FLD_GD1_TIPOA);
m.disable(FLD_GD1_CODANAGR);
m.disable(FLD_GD1_CODANAGR_ANAGR_RAGSOC);
m.disable(FLD_GD1_VALUTA); // La valuta si decide solo in creazione
if (filtered())
{
m.show(FLD_GD1_CODDITTAH);
m.show(FLD_GD1_RAGSOCH);
m.hide(FLD_GD1_RAGSOC);
m.hide(FLD_GD1_CODDITTA);
}
else
{
m.show(FLD_GD1_CODDITTA);
m.show(FLD_GD1_RAGSOC);
m.hide(FLD_GD1_CODDITTAH);
m.hide(FLD_GD1_RAGSOCH);
}
m.enable(DLG_ATT);
m.enable(DLG_ULC);
m.enable(DLG_SOC);
m.enable(DLG_REG1, _cespiti);
enable_reg(m);
_oldattprev = m.get(FLD_GD1_CODATTPREV);
}
int ba4300(int argc, char* argv[])
{
TDitte_application a ;
a.run(argc, argv, TR("Anagrafica Ditte"));
return 0;
}