Patch level : 4.0 567

Files correlati     : cg7.exe sispac.ini cg7300a.ini
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@14656 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2006-12-19 13:47:29 +00:00
parent f50fc5b443
commit 0aa5e6ac0b
3 changed files with 72 additions and 134 deletions

View File

@ -120,55 +120,15 @@ void TInvioS_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TS
in.trim();
valore = in;
}
else if (code == "_ANNO")
else if (code == "_TIPORIGA")
{
TDate data(str);
int anno = data.year();
valore.format("%ld", anno);
valore = str.empty() ? " " : "S";
}
else if (code == "_MESE")
{
TDate data(str);
int mese = data.month();
valore.format("%ld", mese);
}
else if (code == "_SEZIONE")
{
valore = str;
const char sezione = s.get()[0];
const char sezriga = cur.curr(LF_RMOV).get_char(RMV_SEZIONE);
if (sezione != sezriga)
valore = "";
}
else if (code == "_CAUSALE")
else if (code == "_CODPAG")
{
TFilename configname = "cg7300a.ini";
TConfig configfile(configname);
TToken_string causali = configfile.get("STANDARD", "CAUSALI");
const char sezione = cur.curr(LF_RMOV).get_char(RMV_SEZIONE);
if (sezione == 'D')
valore = causali.get(0);
else
valore = causali.get(1);
}
else if (code == "_NUMFILES")
{
const int nfiles = app().get_nfiles();
valore.format("%ld", nfiles);
}
else if (code == "_NUMRECORDS")
{
const long nrecords = app().get_nrecords();
valore.format("%ld", nrecords);
}
else if (code == "_NUMRECORDSDETTAGLIO")
{
const long nrecords = app().get_nrecsdettaglio();
valore.format("%ld", nrecords);
}
else if (code == "_TIPOFILE")
{
valore = app().get_descrdettaglio();
valore = configfile.get(str, "PAGAMENTI");
}
else if (code == "_OPZIONI")
{
@ -177,36 +137,6 @@ void TInvioS_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TS
TConfig configfile(configname);
valore = configfile.get(in, "OPZIONI");
}
else if (code == "_OGGI")
{
TDate data(TODAY);
valore = data.string(full, '-', full, full, amg_date);
valore.strip("-");
}
else if (code == "_CODIFICA")
{
const char tipocf = str[0];
if (tipocf == 'C')
valore = "P";
else
valore = "R";
}
else if (code == "_NUMDOC")
{
if (cur.file("REG").get("I0") == 1)
valore = cur.curr().get(MOV_NUMDOC);
else
valore = cur.curr().get(MOV_PROTIVA);
}
else if (code == "_SEGNO")
{
TString archivio(s.get());
TString campo(s.get());
const real importo = cur.curr(archivio).get_real(campo);
valore = "+";
if (importo < 0)
valore = "-";
}
else if (code == "_IMPORTO")
{
real importo(str);
@ -215,41 +145,15 @@ void TInvioS_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TS
valore.strip("+");
valore.strip(".");
}
else if (code == "_TIPODOC")
else if (code == "_IMPORTORIGAIVA")
{
const char tipodoc = str[0];
valore = (tipodoc == 'F') ? "1" : "2";
}
else if (code == "_DIVERSI")
{
valore = (app().finemov() ? "X" : " ");
}
else if (code == "_TOTALE")
{
real importo(ZERO);
if (app().totale())
{
importo = cur.curr(LF_MOV).get_real(MOV_TOTDOC);
importo+=cur.curr(LF_MOV).get_real(MOV_RITFIS);
}
valore = importo.string(11,2);
real imponibile = cur.curr(LF_RMOVIVA).get_real(RMI_IMPONIBILE);;
real imposta = cur.curr(LF_RMOVIVA).get_real(RMI_IMPOSTA);;
imponibile += imposta;
valore = imposta.string(0,2);
valore.strip("-");
valore.strip("+");
valore.strip(".");
}
else if (code == "_SEGNOTOTALE")
{
real importo(ZERO);
if (app().totale())
{
importo = cur.curr(LF_MOV).get_real(MOV_TOTDOC);
importo+=cur.curr(LF_MOV).get_real(MOV_RITFIS);
}
valore = importo.string(11,2);
valore.trim();
valore = valore.sub(0,1);
if (valore[0] != '-' && valore[0] != '+')
valore = "+";
}
else if (code == "_INDIR")
{
@ -259,8 +163,16 @@ void TInvioS_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TS
}
else if (code == "_GIUFIS")
{
const char tipopers = cur.curr(LF_CLIFO).get_char(CLI_TIPOPERS);
valore = (tipopers == 'F') ? "S" : "N";
const char c = str[0];
valore = (c == 'F') ? "S" : "N";
}
else if (code == "_TITOLARE")
{
valore = (str.empty() ? "N" : "S");
}
else if (code == "_TIPODET")
{
valore = (str.empty() ? " " : "100");
}
else if (code == "_CONTO")
{
@ -269,10 +181,19 @@ void TInvioS_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TS
long codice = cur.curr(LF_CLIFO).get_int(CLI_CODCF);
valore.format("%03d%03d%06ld", gruppo, conto, codice);
}
else if (code == "_BLACKLIST")
else if (code == "_CONTOMOV")
{
const bool sospeso = cur.curr(LF_CLIFO).get_bool(CLI_SOSPESO);
valore = (sospeso == true) ? "S" : " ";
int gruppo = cur.curr(LF_RMOV).get_int(RMV_GRUPPO);
int conto = cur.curr(LF_RMOV).get_int(RMV_CONTO);
long codice = cur.curr(LF_RMOV).get_int(RMV_SOTTOCONTO);
valore.format("%03d%03d%06ld", gruppo, conto, codice);
}
else if (code == "_CONTOMOVIVA")
{
int gruppo = cur.curr(LF_RMOVIVA).get_int(RMI_GRUPPO);
int conto = cur.curr(LF_RMOVIVA).get_int(RMI_CONTO);
long codice = cur.curr(LF_RMOVIVA).get_int(RMI_SOTTOCONTO);
valore.format("%03d%03d%06ld", gruppo, conto, codice);
}
else NFCHECK("Macro non definita: %s", (const char *)code);
str = valore;
@ -306,7 +227,7 @@ long TInvioS::i_sispac_movcont(const bool invio)
a.put(MOV_DATAREG, _datafin);
TRelation rel(LF_MOV);
rel.add(LF_RMOV, "NUMREG==NUMREG", 1);
//TCursor cur(&rel, "23->PROTIVA == \"\"", 2, &da, &a);
rel.add(LF_CLIFO, "TIPOCF==TIPO|CODCF==CODCF", 1);
TCursor cur(&rel, "", 2, &da, &a);
const long cur_items = cur.items();
@ -328,9 +249,6 @@ long TInvioS::i_sispac_movcont(const bool invio)
TRectype& cur_rec_righe = cur.curr(LF_RMOV);
TRecord_text recrighe;
recrighe.set_type("R");
cur.save_status();
_finemov = !(cur.next_match(LF_RMOV, "NUMREG"));
cur.restore_status();
_trasfile->autoload(recrighe, cur);
_trasfile->write(recrighe);
}
@ -352,6 +270,7 @@ long TInvioS::i_sispac_moviva(const bool invio)
TRelation rel(LF_MOV);
rel.add(LF_RMOVIVA, "NUMREG==NUMREG", 1);
rel.add("REG", "CODTAB[1,4]==ANNOIVA|CODTAB[5,7]==REG", 1);
rel.add(LF_CLIFO, "TIPOCF==TIPO|CODCF==CODCF", 1);
TCursor cur(&rel, "", 2, &da, &a);
const long cur_items = cur.items();
if (cur_items != 0)
@ -373,9 +292,6 @@ long TInvioS::i_sispac_moviva(const bool invio)
TRectype& cur_rec_righe = cur.curr(LF_RMOVIVA);
TRecord_text recrighe;
recrighe.set_type("I");
cur.save_status();
_totale = !(cur.next_match(LF_RMOVIVA, "NUMREG"));
cur.restore_status();
_trasfile->autoload(recrighe, cur);
_trasfile->write(recrighe);
}
@ -391,6 +307,9 @@ long TInvioS::i_sispac_clifor(const bool invio)
{
TInvioS_file* trasfile = apri_file("clifor.txt");
TRelation rel(LF_CLIFO);
rel.add(LF_COMUNI, "STATO==STATOCF|COM==COMCF", 1);
rel.add(LF_ANAGFIS,"CODANAGR==CODANAGPER", 1);
rel.add(LF_ANAG,"TIPOA==TIPOPERS|CODANAGR==CODANAGPER", 1);
TCursor cur(&rel);
const long cur_items = cur.items();
if (cur_items != 0 && invio)
@ -477,7 +396,7 @@ void TInvioS::main_loop()
_dataini = _msk->get_date(F_DATAINI);
_datafin = _msk->get_date(F_DATAFIN);
const char tipoinvio = _msk->get(F_TIPOINVIO)[0];
if (tipoinvio == 'Z')
if (tipoinvio == 'S')
invio_sispac();
}
}

View File

@ -5,4 +5,6 @@ FILEMOVIM = movim.txt
NUMEROINVIO =
PERCORSO = c:\temp\
[PAGAMENTO]
0001=D
0013=B

View File

@ -73,7 +73,7 @@ FIELD(5) = 23->NUMDOC
NAME(6) = CAUSALE
TYPE(6) = STRINGA
LENGTH(6) = 4
FIELD(6) = 23->CAUS
FIELD(6) = 23->CODCAUS
NAME(7) = DESCRIZIONE
TYPE(7) = STRINGA
@ -98,7 +98,7 @@ FIELD(10) = 23->PROTIVA
NAME(11) = CONTO
TYPE(11) = STRINGA
LENGTH(11) = 12
FIELD(11) = _CONTOMOV
MESSAGE(11) = _CONTOMOV
NAME(12) = CONTO COMPETENZA
TYPE(12) = STRINGA
@ -107,7 +107,7 @@ LENGTH(12) = 12
NAME(13) = CODICE CLI/FOR
TYPE(13) = STRINGA
LENGTH(13) = 6
FIELD(13) = _CLIENTE
FIELD(13) = CODCF
NAME(14) = DESCRIZIONE RIGA
TYPE(14) = STRINGA
@ -116,6 +116,7 @@ FIELD(14) = DESCR[1,40]
NAME(15) = IMPORTO RIGA
TYPE(15) = IMPORTO
FIELD(15) = 24->IMPORTO
MESSAGE(15) = _IMPORTO
NAME(16) = IMPONIBILE
@ -164,6 +165,7 @@ LENGTH(27) = 1
NAME(28) = TIPO RIGA
TYPE(28) = STRINGA
LENGTH(28) = 1
FIELD(28) = 24->TIPOC
MESSAGE(28) = _TIPORIGA
NAME(29) = CAUSALE RIGA CONTABILE
@ -186,7 +188,8 @@ TYPE(32) = NUMERO
NAME(33) = TITOLARE PIVA
TYPE(33) = STRINGA
LENGTH(33) = 1
FIELD(33) = _TITOLARE
FIELD(33) = 20->PAIV
MESSAGE(33) = _TITOLARE
[RECORD I]
@ -222,7 +225,7 @@ FIELD(5) = 23->NUMDOC
NAME(6) = CAUSALE
TYPE(6) = STRINGA
LENGTH(6) = 4
FIELD(6) = 23->CAUS
FIELD(6) = 23->CODCAUS
NAME(7) = DESCRIZIONE
TYPE(7) = STRINGA
@ -247,7 +250,7 @@ FIELD(10) = 23->PROTIVA
NAME(11) = CONTO
TYPE(11) = STRINGA
LENGTH(11) = 12
FIELD(11) = _CONTOMOV
MESSAGE(11) = _CONTOMOVIVA
NAME(12) = CONTO COMPETENZA
TYPE(12) = STRINGA
@ -256,7 +259,7 @@ LENGTH(12) = 12
NAME(13) = CODICE CLI/FOR
TYPE(13) = STRINGA
LENGTH(13) = 6
FIELD(13) = _CLIENTE
FIELD(13) = CODCF
NAME(14) = DESCRIZIONE RIGA
TYPE(14) = STRINGA
@ -269,19 +272,22 @@ MESSAGE(15) = _IMPORTORIGAIVA
NAME(16) = IMPONIBILE
TYPE(16) = IMPORTO
MESSAGE(16) = IMPONIBILE
FIELD(16) = 25->IMPONIBILE
MESSAGE(16) = _IMPORTO
NAME(17) = CODICE IVA
TYPE(17) = STRINGA
LENGTH(17) = 3
FIELD(17) = CODIVA
FIELD(17) = 25->CODIVA
NAME(18) = IMPORTO IVA
TYPE(18) = IMPORTO
FIELD(18) = IMPOSTA
FIELD(18) = 25->IMPOSTA
MESSAGE(18) = _IMPORTO
NAME(19) = INDETRAIBILITA
TYPE(19) = NUMERO
FIELD(19) = 25->TIPODET
MESSAGE(19) = _TIPODET
NAME(20) = IMPORTO DIVISA
@ -317,7 +323,7 @@ LENGTH(27) = 1
NAME(28) = TIPO RIGA
TYPE(28) = STRINGA
LENGTH(28) = 1
MESSAGE(28) = _FISSO,I
MESSAGE(28) = _FISSO,!I
NAME(29) = CAUSALE RIGA CONTABILE
TYPE(29) = STRINGA
@ -339,7 +345,8 @@ TYPE(32) = NUMERO
NAME(33) = TITOLARE PIVA
TYPE(33) = STRINGA
LENGTH(33) = 1
FIELD(33) = _TITOLARE
FIELD(33) = 20->PAIV
MESSAGE(33) = _TITOLARE
[RECORD C]
@ -452,6 +459,7 @@ LENGTH(21) = 80
NAME(22) = PERSONA FISICA S/N
TYPE(22) = STRINGA
LENGTH(22) = 1
FIELD(22) = 20->TIPOPERS
MESSAGE(22) = _GIUFIS
NAME(23) = SESSO M/F
@ -555,12 +563,14 @@ LENGTH(43) = 10
NAME(44) = TIPO PAGAMENTO
TYPE(44) = STRINGA
LENGTH(44) = 1
MESSAGE(44) = _TIPOPAG
FIELD(44)= 20->CODPAG
MESSAGE(44) = _CODPAG
NAME(45) = TITOLARE PIVA S/N
TYPE(45) = STRINGA
LENGTH(45) = 1
MESSAGE(45) -TITOLARE
FIELD(45) = 20->PAIV
MESSAGE(45) = _TITOLARE
[RECORD F]
@ -672,26 +682,33 @@ LENGTH(21) = 80
NAME(22) = PERSONA FISICA S/N
TYPE(22) = STRINGA
LENGTH(22) = 1
FIELD(22) = 20->TIPOPERS
MESSAGE(22) = _GIUFIS
NAME(23) = SESSO M/F
TYPE(23) = STRINGA
LENGTH(23) = 1
FIELD(23) = 8->SESSO
NAME(24) = DATA DI NASCITA
TYPE(24) = DATA
LENGTH(24) = 10
FIELD(24)= 8->DATANASC
NAME(25) = CITTA DI NASCITA
TYPE(25) = STRINGA
LENGTH(25) = 30
FIELD(25) = 8->COMNASC
NAME(26) = DENOMINAZIONE (COGNOME)
TYPE(26) = STRINGA
LENGTH(26) = 25
FIELD(26) = 6->RAGSOC[1,25]
NAME(27) = NOME
TYPE(27) = STRINGA
LENGTH(27) = 25
FIELD(27) = 6->RAGSOC[26,25]
NAME(28) = INDIRIZZO SEDE LEGALE
TYPE(28) = STRINGA