Patch level : 12.00 1376

Files correlati     : cg0.exe cg0700a.msk recdesc/dir13.xml recdesc/trc13.xml  recdesc/dir18.xml recdesc/trc18.xml ba4100a.msk
Bug                 :

Commento:
Aggiunti campi TIPOPERS ALLEG PADESTIN PFAX FAX agli occasionali
Nel file ini dei clienti i campi impostati CODISTATCF CODISTATNASC decodificano il codice comune cliente e il codice comune di nascita
Nel file ini dei clienti occasionali i campi impostati CODISTAT CODISTATNASC decodificano il codice comune cliente  e il codice comune di nascita
Campo codice istat zerofilled e aggiunta relativa chiave
This commit is contained in:
Alessandro Bonazzi 2025-01-17 00:38:40 +01:00
parent 22f594b2cb
commit 4880af2699
4 changed files with 185 additions and 74 deletions

View File

@ -65,7 +65,7 @@ protected:
virtual void ini2mask(TConfig& ini, TMask&m, bool query);
virtual void mask2ini(const TMask& m, TConfig& ini);
TSheet_field& indsp_sheet() const;
TSheet_field& indsp_sheet() const;
TString_array& field_sheet(short id) const;
void reset_sheet();
void indsp_pack();
@ -213,7 +213,7 @@ HIDDEN bool no_dup_iva(TMask_field& f, KEY key)
const bool only_one_paiv = ini_get_bool(CONFIG_DITTA, "cg", "OnlyOnePaIV");
TRectype from(LF_CLIFO);
TString8 stato = m.get(F_STATOPAIV);
if (stato.blank())
stato = "IT";
from.put(CLI_TIPOCF, m.get(F_TIPOCF));
@ -332,7 +332,7 @@ HIDDEN bool paiv_handler(TMask_field& f, KEY key)
const TMask& m = f.mask();
if (!m.query_mode() && f.final_check(key))
return f.validate(key) && no_dup_iva(f, key) && almeno_cf_o_pi(f);
return f.validate(key) && no_dup_iva(f, key) && almeno_cf_o_pi(f);
return true;
}
@ -1000,7 +1000,7 @@ int TClifo_application::read(TMask& m)
row = contact.get("SECOND");
row << "|||" << contact.get("DATA");
s.check_row(c);
}
}
}
TToken_string key;
@ -1037,7 +1037,27 @@ int TClifo_application::read(TMask& m)
void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
{
TRelation_application::ini2mask(ini, m, query);
TString istat = ini.get_int("CODISTATCF");
if (istat.full())
{
const TRectype & com = cache().get(LF_COMUNI, istat);
ini.set(CLI_STATOCF, com.get(COM_STATO));
ini.set(CLI_COMCF, com.get(COM_COM));
}
istat = ini.get_int("CODISTATNASC");
if (istat.full())
{
const TRectype & com = cache().get(LF_COMUNI, istat);
ini.set(CLI_STATONASC, com.get(COM_STATO));
ini.set(CLI_COMNASC, com.get(COM_COM));
}
TRelation_application::ini2mask(ini, m, query);
int i;
if (!query)
@ -1054,7 +1074,7 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
if (_gesven)
{
TToken_string riga(240);
TString16 para;
TString16 para;
for (i = 0; ; i++)
{
para.format("%d,%d", LF_INDSP, i+1);
@ -1077,29 +1097,29 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
riga.add(ini.get(IND_FAX));
riga.add(ini.get(IND_IVARID));
TString16 key;
key << ini.get(IND_STATO);
key << '|' << ini.get(IND_COM);
const TRectype & com = cache().get(LF_COMUNI, key);
TString16 key;
key << ini.get(IND_STATO);
key << '|' << ini.get(IND_COM);
const TRectype & com = cache().get(LF_COMUNI, key);
riga.add(com.get(COM_DENCOM));
riga.add(ini.get(IND_INDIR2));
riga.add(ini.get(IND_CODIND));
indsp_sheet().row(i)=riga;
// Load the sheets of CODINDDOC, CODINDSP, CODINDEFF.
riga.cut(0);
riga.add(ini.get(IND_CODIND));
riga.add(ini.get(IND_RAGSOC));
riga.add(ini.get(IND_INDIR));
riga.add(ini.get(IND_CIV));
riga.add(ini.get(IND_LOCALITA));
field_sheet(F_CODINDDOC).add(riga);
field_sheet(F_CODINDSP).add(riga);
field_sheet(F_CODINDEFF).add(riga);
// Load the sheets of CODINDDOC, CODINDSP, CODINDEFF.
riga.cut(0);
riga.add(ini.get(IND_CODIND));
riga.add(ini.get(IND_RAGSOC));
riga.add(ini.get(IND_INDIR));
riga.add(ini.get(IND_CIV));
riga.add(ini.get(IND_LOCALITA));
field_sheet(F_CODINDDOC).add(riga);
field_sheet(F_CODINDSP).add(riga);
field_sheet(F_CODINDEFF).add(riga);
}
}
}
TString p;
TString p;
p << LF_CFBAN << ",V";
TSheet_field & ns_sh = m.sfield(F_BANA);
@ -1294,7 +1314,7 @@ TString_array& TClifo_application::field_sheet(short id) const
TSheet_field& TClifo_application::indsp_sheet() const
{
TSheet_field& o_sheet=_msk->sfield(F_SHEET_G_VEN);
return o_sheet;
return o_sheet;
}
void TClifo_application::reset_sheet()
@ -1366,13 +1386,13 @@ void TClifo_application::common_f(const TMask& m)
const char tipocf = m.get(F_TIPOCF)[0];
const long codcf = m.get_long(F_CODCF);
_rel->destroy_rows();
indsp_pack();
_rel->destroy_rows();
indsp_pack();
TArray& rows=indsp_sheet().rows_array();
int n_items = rows.items();
for (int i = 0; i < n_items; i++)
{
{
TToken_string& row=(TToken_string&)rows[i];
TRectype& rec=_rel->indirizzo(i);
row.restart();
@ -1413,14 +1433,14 @@ void TClifo_application::common_f(const TMask& m)
data.cut(0);
const char* d = NULL;
while ((d = row->get()))
{
{
if (*d > ' ')
data.add(d);
}
}
rec.put("DATA", data);
}
}
}
TToken_string key;
key.add(m.get(F_TIPOCF));
key.add(m.get(F_CODCF));
@ -1614,8 +1634,8 @@ bool TClifo_application::user_create() // initvar e arrmask
_msk->set_handler(LST_TIPO_RFSO, rfso_handler);
_msk->set_handler(F_STATOCF, stato_handler);
_msk->set_handler(F_PADESTIN, coddest_handler);
TSheet_field & ns_sh = _msk->sfield(F_BANA);
TSheet_field & ns_sh = _msk->sfield(F_BANA);
ns_sh.set_notify(ban_notify);
@ -1630,7 +1650,7 @@ bool TClifo_application::user_create() // initvar e arrmask
pnae.set_notify(effetti_notify);
_savenew = !ini_get_bool(CONFIG_STUDIO, "cg", "Cg02SN");
_savenew = !ini_get_bool(CONFIG_STUDIO, "cg", "Cg02SN");
return true;
}

View File

@ -4,6 +4,8 @@
#include "cg0.h"
#include "cg0700a.h"
#include <comuni.h>
#include <occas.h>
#include <pconti.h>
#include <saldi.h>
#include <automask.h>
@ -70,6 +72,7 @@ class TOccasionali_app : public TRelation_application
bool user_destroy();
virtual TMask* _get_mask(int mode) {return _msk;}
virtual bool changing_mask(int mode) {return FALSE;}
void ini2mask(TConfig& ini, TMask& m, bool query);
public:
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
@ -96,6 +99,32 @@ bool TOccasionali_app::user_destroy()
return true;
}
void TOccasionali_app::ini2mask(TConfig& ini, TMask& m, bool query)
{
TString istat = ini.get_int(COM_CODISTAT);
if (istat.full())
{
const TRectype & com = cache().get(LF_COMUNI, istat);
ini.set(OCC_STATO, com.get(COM_STATO));
ini.set(OCC_COM, com.get(COM_COM));
}
istat = ini.get_int("CODISTATNASC");
if (istat.full())
{
const TRectype & com = cache().get(LF_COMUNI, istat);
ini.set(OCC_STATONASC, com.get(COM_STATO));
ini.set(OCC_COMNASC, com.get(COM_COM));
}
TRelation_application::ini2mask(ini, m, query);
}
int cg0700(int argc, char* argv[])
{
TOccasionali_app a ;

View File

@ -28,3 +28,10 @@
#define O_TEL2 125
#define O_PTEL3 126
#define O_TEL3 127
#define O_TIPOPERS 128
#define O_ALLEG 129
#define O_PADESTIN 130
#define O_PFAX 131
#define O_FAX 132
#include <occas.h>

View File

@ -24,7 +24,7 @@ BEGIN
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT O_CODICE CFPI
OUTPUT O_RAGSOC RAGSOC
FIELD CFPI
FIELD OCC_CFPI
VALIDATE NOT_EMPTY_FUNC
KEY 1
END
@ -32,7 +32,7 @@ END
STRING O_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FIELD RAGSOC
FIELD OCC_RAGSOC
USE LF_OCCAS KEY 2
INPUT RAGSOC O_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
@ -46,7 +46,7 @@ END
STRING O_COFI 16
BEGIN
PROMPT 2 3 "Codice fiscale "
FIELD COFI
FIELD OCC_COFI
FLAGS "U"
VALIDATE XTZCF_FUNC O_STATONAS O_SESSO O_DATANAS O_COMUNENAS
END
@ -54,7 +54,7 @@ END
STRING O_STATOPAIV 2
BEGIN
PROMPT 37 3 "Partita IVA "
FIELD STATOPAIV
FIELD OCC_STATOPAIV
HELP "Codice ISO dello stato"
FLAGS "U"
USE %SCE
@ -68,7 +68,7 @@ END
STRING O_PAIV 12
BEGIN
PROMPT 56 3 ""
FIELD PAIV
FIELD OCC_PAIV
VALIDATE PI_FUNC O_STATOPAIV
END
@ -80,20 +80,20 @@ END
STRING O_INDIRIZZO 40
BEGIN
PROMPT 2 6 "Indirizzo "
FIELD INDIR
FIELD OCC_INDIR
END
STRING O_NUMERO 6
BEGIN
PROMPT 55 6 "Numero "
FIELD CIV
FIELD OCC_CIV
END
STRING O_STATO 3
BEGIN
PROMPT 2 7 "Stato "
HELP "Stato di residenza della persona"
FIELD STATO
FIELD OCC_STATO
FLAGS "U"
USE %STA
INPUT CODTAB O_STATO
@ -106,7 +106,7 @@ END
STRING O_COMUNE 4
BEGIN
PROMPT 15 7 "Comune "
FIELD COM
FIELD OCC_COM
FLAGS "U"
USE LF_COMUNI
INPUT STATO O_STATO
@ -140,7 +140,7 @@ END
STRING O_LOCALITA 35
BEGIN
PROMPT 2 8 "Localita' "
FIELD LOCALITA
FIELD OCC_LOCALITA
HELP "Localita' del recapito"
END
@ -148,7 +148,7 @@ NUMBER O_CAP 5
BEGIN
PROMPT 56 8 "C.A.P. "
HELP "CAP della residenza della persona"
FIELD CAP
FIELD OCC_CAP
FLAGS "ZF"
END
@ -162,19 +162,19 @@ BEGIN
PROMPT 2 11 "Sesso "
ITEM "M|Maschio"
ITEM "F|Femmina"
FIELD SESSO
FIELD OCC_SESSO
END
DATE O_DATANAS
BEGIN
PROMPT 23 11 "Data "
FIELD DNASC
FIELD OCC_DNASC
END
STRING O_STATONAS 3
BEGIN
PROMPT 41 11 "Stato "
FIELD STATONASC
FIELD OCC_STATONASC
FLAGS "U"
COPY USE O_STATO
INPUT CODTAB O_STATONAS
@ -186,7 +186,7 @@ END
STRING O_COMUNENAS 4
BEGIN
PROMPT 57 11 "Comune "
FIELD COMNASC
FIELD OCC_COMNASC
FLAGS "U"
COPY USE O_COMUNE
INPUT STATO O_STATONAS
@ -209,97 +209,152 @@ END
STRING O_REFERENTE 50
BEGIN
PROMPT 2 14 "Referente "
FIELD REFERENTE
PROMPT 2 14 "Referente "
FIELD OCC_REFERENTE
END
LIST O_TIPOPERS 1 12
BEGIN
PROMPT 2 15 "Tipo persona "
FIELD OCC_TIPOPERS
HELP "Tipo anagrafico del cliente/fornitore"
ITEM "F|Fisica"
ITEM "G|Giuridica"
END
STRING O_ALLEG 1
BEGIN
PROMPT 30 15 "Tipo "
FIELD OCC_ALLEG
SHEET "Codice|Descrizione@50"
HELP "Codice per l'inserimento negli allegati IVA"
INPUT O_ALLEG
ITEM " |Valido per allegato IVA"
ITEM "1|Non valido per allegato IVA"
ITEM "2|Occasionale"
ITEM "3|Documenti riepilogativi"
ITEM "4|Codice fiscale già inserito"
ITEM "5|Estero CEE"
ITEM "6|Privato"
ITEM "7|Ente pubblico"
ITEM "8|Fallimento/proc.concorsuale"
ITEM "9|Estero NON CEE"
ITEM "C|Scheda carburante"
ITEM "G|Gruppo IVA"
OUTPUT O_ALLEG
END
STRING O_PADESTIN 7
BEGIN
PROMPT 40 15 "Destinatario "
MODULES PA,FP
HELP "Codice ufficio dell destinatario della fattura elettronica"
FIELD OCC_PADESTIN
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "E-Mail"
PROMPT 2 16 "E-Mail"
END
STRING O_MAIL 50 25
BEGIN
PROMPT 2 16 "Normale "
FIELD MAIL
PROMPT 2 17 "Normale "
FIELD OCC_MAIL
END
BOOLEAN O_BYMAIL
BEGIN
PROMPT 40 16 "Consenso spedizione doc tramite email"
FIELD BYMAIL
PROMPT 40 17 "Consenso spedizione doc tramite email"
FIELD OCC_BYMAIL
MESSAGE FALSE CLEAR,O_DOCMAIL
MESSAGE TRUE ENABLE,O_DOCMAIL
END
STRING O_DOCMAIL 50 25
BEGIN
PROMPT 2 17 "Documenti "
FIELD DOCMAIL
PROMPT 2 18 "Documenti "
FIELD OCC_DOCMAIL
CHECKTYPE REQUIRED
END
STRING O_PEC 80 45
BEGIN
PROMPT 2 18 "Pec "
FIELD PEC
PROMPT 2 19 "Pec "
FIELD OCC_PEC
END
STRING O_PTEL 5
BEGIN
PROMPT 2 19 "Telefono "
FIELD PTEL
PROMPT 2 20 "Telefono "
FIELD OCC_PTEL
HELP "Prefisso telefonico primo recapito"
END
STRING O_TEL 20 15
BEGIN
PROMPT 18 19 "/"
FIELD TEL
PROMPT 18 20 "/"
FIELD OCC_TEL
HELP "Numero telefonico primo recapito"
END
STRING O_PTEL2 5
BEGIN
PROMPT 11 20 " "
FIELD PTEL2
PROMPT 11 21 " "
FIELD OCC_PTEL2
HELP "Prefisso telefonico secondo recapito"
END
STRING O_TEL2 20 15
BEGIN
PROMPT 18 20 "/"
FIELD TEL2
PROMPT 18 21 "/"
FIELD OCC_TEL2
HELP "Numero telefonico secondo recapito"
END
STRING O_PTEL3 5
BEGIN
PROMPT 11 21 " "
FIELD PTEL3
PROMPT 11 22 " "
FIELD OCC_PTEL3
HELP "Prefisso telefonico terzo recapito"
END
STRING O_TEL3 20 15
BEGIN
PROMPT 18 21 "/"
FIELD TEL3
PROMPT 18 22 "/"
FIELD OCC_TEL3
HELP "Numero telefonico terzo recapito"
END
STRING O_PFAX 5
BEGIN
PROMPT 2 23 "FAX "
FIELD OCC_PFAX
HELP "Prefisso telefonico fax"
END
STRING O_FAX 23 15
BEGIN
PROMPT 18 23 "/"
FIELD OCC_FAX
HELP "Numero telefonico fax"
END
STRING DLG_NULL 50 32
BEGIN
PROMPT 1 -1 "Ultimo aggiornamento "
FLAGS "D"
FIELD UTENTE
FIELD OCC_UTENTE
END
DATE DLG_NULL
BEGIN
PROMPT 60 -1 ""
FLAGS "D"
FIELD DATAAGG
FIELD OCC_DATAAGG
END
ENDPAGE
ENDMASK