Patch level : 10.0 0040

Files correlati     : cg0
Ricompilazione Demo : [ ]
Commento           :

Aggiunto pulsante di creazione percipiente


git-svn-id: svn://10.65.10.50/trunk@16543 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2008-04-24 15:12:13 +00:00
parent 2980a95395
commit 9f452e8acf
3 changed files with 112 additions and 25 deletions

View File

@ -11,6 +11,7 @@
#include <anagr.h> #include <anagr.h>
#include <anafis.h> #include <anafis.h>
#include <anagiu.h>
#include <cfven.h> #include <cfven.h>
#include <clifo.h> #include <clifo.h>
#include <comuni.h> #include <comuni.h>
@ -65,6 +66,7 @@ protected:
static bool tipocf_handler(TMask_field& f, KEY key); static bool tipocf_handler(TMask_field& f, KEY key);
static bool tipo_handler(TMask_field& f, KEY key); static bool tipo_handler(TMask_field& f, KEY key);
static bool crea_percipienti(TMask_field& f, KEY key);
static bool percip_handler(TMask_field& f, KEY key); static bool percip_handler(TMask_field& f, KEY key);
static bool email_handler(TMask_field& f, KEY k); static bool email_handler(TMask_field& f, KEY k);
static bool rsoc_handler(TMask_field& f, KEY k); static bool rsoc_handler(TMask_field& f, KEY k);
@ -284,20 +286,104 @@ bool TClifo_application::tipo_handler(TMask_field& f, KEY key)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
const bool fis = f.get() == "F"; const bool fis = f.get() == "F";
m.show(-5, app()._lbcn && fis); m.show(-5, fis);
return true; return true;
} }
bool TClifo_application::crea_percipienti(TMask_field& f, KEY key)
{
if (key == K_SPACE)
{
TMask& m = f.mask();
TLocalisamfile anag(LF_ANAG);
TToken_string k;
long percip = m.get_long(F_CODANAGPER);
const char tipo = m.get(F_TIPOAPER)[0];
if (percip == 0)
{
percip = m.get_long(F_CODCF);
k.add(tipo);
k.add(percip);
const TRectype & rec = cache().get(LF_ANAG, k);
if (!rec.empty())
return error_box("Esiste gia' una anagrafica con codice uguale del fornitore");
m.set(F_CODANAGPER, percip);
}
else
{
k.add(m.get(F_TIPOAPER));
k.add(percip);
const TRectype & rec = cache().get(LF_ANAG, k);
if (!rec.empty())
return true;
}
anag.put(ANA_TIPOA, tipo);
anag.put(ANA_CODANAGR, percip);
anag.put(ANA_COFI, m.get(F_COFI));
anag.put(ANA_PAIV, m.get(F_PAIV));
anag.put(ANA_RAGSOC, m.get(F_RAGSOC));
anag.put(ANA_STATORES, m.get(F_STATOCF));
anag.put(ANA_COMRES, m.get(F_COMCF));
anag.put(ANA_INDRES, m.get(F_INDCF));
anag.put(ANA_CIVRES, m.get(F_CIVCF));
anag.put(ANA_CAPRES, m.get(F_CAPCF));
int err = anag.write();
if (err == NOERR)
{
if (tipo == 'F')
{
TLocalisamfile anafis(LF_ANAGFIS);
anafis.put(ANF_CODANAGR, percip);
anafis.put(ANF_DATANASC, m.get(F_DATANASC));
anafis.put(ANF_SESSO, atoi(m.get(F_COFI).mid(9, 2)) > 31 ? 'F' : 'M');
anafis.put(ANF_COMNASC, m.get(F_COMNASC));
err = anafis.write();
if (err != NOERR)
return message_box("Scrittura anagrafica persona fisica Errore %d", err);
}
else
{
TLocalisamfile anagiu(LF_ANAGGIU);
anagiu.put(ANG_CODANAGR, percip);
err = anagiu.write();
if (err != NOERR)
return message_box("Scrittura anagrafica persona fisica Errore %d", err);
}
}
else
return message_box("Scrittura anagrafica Errore %d", err);
}
return true;
}
bool TClifo_application::percip_handler(TMask_field& f, KEY key) bool TClifo_application::percip_handler(TMask_field& f, KEY key)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
if (f.to_check(key) && !m.field(F_CODANAGPER).empty()) if (f.to_check(key) && !m.field(F_CODANAGPER).empty())
{ {
const TRectype& anag = m.efield(F_CODANAGPER).browse()->cursor()->file().curr(); long percip = m.get_long(F_CODANAGPER);
const char tipo = m.get(F_TIPOAPER)[0];
TToken_string k;
k.add(tipo);
k.add(percip);
const TRectype & anag = cache().get(LF_ANAG, k);
const TString& c = m.get(F_COFI), p = m.get(F_PAIV); const TString& c = m.get(F_COFI), p = m.get(F_PAIV);
if (key == K_TAB && anag.empty())
return true;
if ((c.full() && c != anag.get(ANA_COFI)) || if ((c.full() && c != anag.get(ANA_COFI)) ||
(p.full() && p != anag.get(ANA_PAIV))) (p.full() && p != anag.get(ANA_PAIV)))
return error_box(TR("Percipiente non corretto: codice fiscale o partita IVA diversa")); return error_box(TR("Percipiente non corretto: codice fiscale o partita IVA diversa"));
@ -322,21 +408,17 @@ bool TClifo_application::percip_handler(TMask_field& f, KEY key)
if (p.empty()) m.set(F_PAIV, anag.get(ANA_PAIV)); if (p.empty()) m.set(F_PAIV, anag.get(ANA_PAIV));
if (m.get(F_TIPOAPER) == "F") if (m.get(F_TIPOAPER) == "F")
{ {
m.show(-5, app()._lbcn); const TRectype & fis = cache().get(LF_ANAGFIS, anag.get(ANA_CODANAGR));
if (app()._lbcn)
if (!fis.empty())
{ {
const TRectype & fis = cache().get(LF_ANAGFIS, anag.get(ANA_CODANAGR)); if (m.get(F_DATANASC).empty()) m.set(F_DATANASC, fis.get(ANF_DATANASC));
if (m.get(F_COMNASC).empty())
if (!fis.empty())
{ {
if (m.get(F_DATANASC).empty()) m.set(F_DATANASC, fis.get(ANF_DATANASC)); m.set(F_STATONASC, fis.get(ANF_STATONASC), true);
if (m.get(F_COMNASC).empty()) m.set(F_COMNASC, fis.get(ANF_COMNASC), true);
{ }
m.set(F_STATONASC, fis.get(ANF_STATONASC), true); }
m.set(F_COMNASC, fis.get(ANF_COMNASC), true);
}
}
}
} }
} }
return true; return true;
@ -861,6 +943,7 @@ bool TClifo_application::user_create() // initvar e arrmask
_msk->set_handler(F_PAIV, paiv_handler); _msk->set_handler(F_PAIV, paiv_handler);
_msk->set_handler(F_CODANAGPER, percip_handler); _msk->set_handler(F_CODANAGPER, percip_handler);
_msk->set_handler(F_TIPOPERS, tipo_handler); _msk->set_handler(F_TIPOPERS, tipo_handler);
_msk->set_handler(DLG_ANAG, crea_percipienti);
_msk->set_handler(F_ALLEG, alleg_handler); _msk->set_handler(F_ALLEG, alleg_handler);
_msk->set_handler(F_CODALLEG, codalleg_handler); _msk->set_handler(F_CODALLEG, codalleg_handler);
_msk->set_handler(DLG_EMAIL, email_handler); _msk->set_handler(DLG_EMAIL, email_handler);

View File

@ -166,6 +166,7 @@
#define F_DIRTY 305 #define F_DIRTY 305
#define F_BYMAIL 306 #define F_BYMAIL 306
#define F_DOCMAIL 307 #define F_DOCMAIL 307
#define DLG_ANAG 308
////////////////////////////////////// //////////////////////////////////////

View File

@ -1,28 +1,25 @@
#include "cg0200.h" #include "cg0200.h"
TOOLBAR "topbar" 0 0 0 2 TOOLBAR "" 0 18 0 4
#include <relapbar.h>
ENDPAGE
TOOLBAR "" 0 -2 0 2
BUTTON DLG_EMAIL 10 2 BUTTON DLG_EMAIL 10 2
BEGIN BEGIN
PROMPT -13 -11 "~Posta" PROMPT -56 -3 "~Posta"
PICTURE BMP_EMAIL PICTURE BMP_EMAIL
END END
GOLEM DLG_OGGETTI 10 2 GOLEM DLG_OGGETTI 10 2
BEGIN BEGIN
PROMPT -33 -11 "" PROMPT -66 -3 ""
FIELD OGGETTI FIELD OGGETTI
FLAGS "M" FLAGS "M"
END END
#include <toolbar.h>
ENDPAGE ENDPAGE
PAGE "Pag.1" 0 0 0 -4 PAGE "Pag.1" -1 -1 78 19
GROUPBOX DLG_NULL 76 4 GROUPBOX DLG_NULL 76 4
BEGIN BEGIN
@ -523,6 +520,12 @@ BEGIN
ITEM "G|Giuridica" ITEM "G|Giuridica"
END END
BUTTON DLG_ANAG 10 1
BEGIN
PROMPT 45 15 "Crea percipiente"
GROUP 4
END
NUMBER F_CODANAGPER 5 NUMBER F_CODANAGPER 5
BEGIN BEGIN
PROMPT 59 15 "Codice " PROMPT 59 15 "Codice "
@ -538,7 +541,7 @@ BEGIN
OUTPUT F_CODANAGPER CODANAGR OUTPUT F_CODANAGPER CODANAGR
OUTPUT F_RAGSOC1 RAGSOC OUTPUT F_RAGSOC1 RAGSOC
HELP "Codice anagrafico percepiente per la compilazione Mod. 770" HELP "Codice anagrafico percepiente per la compilazione Mod. 770"
CHECKTYPE NORMAL CHECKTYPE SEARCH
WARNING "Percipiente assente" WARNING "Percipiente assente"
ADD RUN ba4 -1 #F_TIPOAPER ADD RUN ba4 -1 #F_TIPOAPER
END END