Corretta gestione tipo anagrafiche in invio SISPAC

git-svn-id: svn://10.65.10.50/branches/R_10_00@22860 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-05-06 09:01:51 +00:00
parent a11eef1282
commit 5a65876e44

View File

@ -769,6 +769,7 @@ protected:
bool scod2rc(const TString& cod); bool scod2rc(const TString& cod);
const long cod2ricl(const char* tab, const TString& cod); const long cod2ricl(const char* tab, const TString& cod);
const char* get_tipo_anag(const TRecordset& input) const; const char* get_tipo_anag(const TRecordset& input) const;
const char* get_tipo_anag2(const TRecordset& input) const;
public: public:
TConfig& config() {return *_configfile;}; TConfig& config() {return *_configfile;};
@ -866,7 +867,7 @@ const char* TInvioSispac::get_tipo_anag(const TRecordset& input) const
const char pi = input.get(CLI_PAIV).as_string()[0]; const char pi = input.get(CLI_PAIV).as_string()[0];
if (isalpha(cf)) if (isalpha(cf))
var = isdigit(pi) ? "D" : "F"; var = isdigit(pi) ? "D" : "P";
else else
{ {
if (isdigit(cf)) if (isdigit(cf))
@ -878,6 +879,13 @@ const char* TInvioSispac::get_tipo_anag(const TRecordset& input) const
return var; return var;
} }
const char* TInvioSispac::get_tipo_anag2(const TRecordset& input) const
{
const char ta = *get_tipo_anag(input);
return ta == 'F' ? "2" : "";
}
void TInvioSispac::sispac_cli() void TInvioSispac::sispac_cli()
{ {
TClisisp_set recset; TClisisp_set recset;
@ -1034,11 +1042,11 @@ void TInvioSispac::sispac_reverse_movim(long numreg, TMovim_set & recset, long f
continue; continue;
recset.new_rec(); recset.new_rec();
var = cofi; var = cofi;
recset.set("COFI", var); recset.set(CLI_COFI, var);
var = paiv; var = paiv;
recset.set("PAIV", var); recset.set(CLI_PAIV, var);
var = ragsoc; var = ragsoc;
recset.set("RAGSOC", var); recset.set(CLI_RAGSOC, var);
var = esiva; var = esiva;
recset.set("ESIVA", var); recset.set("ESIVA", var);
var = annoes; var = annoes;
@ -1110,26 +1118,15 @@ void TInvioSispac::sispac_reverse_movim(long numreg, TMovim_set & recset, long f
var = importo.string(13, 0, '0'); var = importo.string(13, 0, '0');
recset.set("IMPORTO", var); recset.set("IMPORTO", var);
const bool dare = input.get(RMV_SEZIONE).as_string() == "D"; const bool dare = input.get(RMV_SEZIONE).as_string() == "D";
const char * s = dare ? "A" : "D"; var = dare ? "A" : "D";
recset.set("SGNCONTIMP", var);
recset.set("SGNCONTIMP", s);
const TDate datadoc(input.get(SLF_MOV "." MOV_DATADOC).as_date()); const TDate datadoc(input.get(SLF_MOV "." MOV_DATADOC).as_date());
var = datadoc.string(brief, '\0', full, full, amg_date); var = datadoc.string(brief, '\0', full, full, amg_date);
recset.set("DATADOC", var); recset.set("DATADOC", var);
recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int()); recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int());
const long codcf = input.get(SLF_MOV "." MOV_CODCF).as_int(); var = get_tipo_anag2(recset);
var = "";
if (codcf > 0L)
{
key = "C" ; key << "|" << codcf;
const TRectype & clifo = cache().get(LF_CLIFO, key);
const int cflen = clifo.get(CLI_COFI).len();
if (cflen > 11)
var = "2";
}
recset.set("TIPOANAG", var); recset.set("TIPOANAG", var);
recset.set("FINEREC", "\r\n"); recset.set("FINEREC", "\r\n");
} }
@ -1165,11 +1162,11 @@ void TInvioSispac::sispac_reverse_giro(long numreg, TMovim_set & recset, long fi
recset.new_rec(); recset.new_rec();
var = cofi; var = cofi;
recset.set("COFI", var); recset.set(CLI_COFI, var);
var = paiv; var = paiv;
recset.set("PAIV", var); recset.set(CLI_PAIV, var);
var = ragsoc; var = ragsoc;
recset.set("RAGSOC", var); recset.set(CLI_RAGSOC, var);
var = esiva; var = esiva;
recset.set("ESIVA", var); recset.set("ESIVA", var);
var = annoes; var = annoes;
@ -1253,19 +1250,9 @@ void TInvioSispac::sispac_reverse_giro(long numreg, TMovim_set & recset, long fi
recset.set("DATADOC", var); recset.set("DATADOC", var);
recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int()); recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int());
const long codcf = input.get(SLF_MOV "." MOV_CODCF).as_int(); var = get_tipo_anag2(recset);
var = "";
if (codcf > 0L)
{
key = "F" ; key << "|" << codcf;
const TRectype & clifo = cache().get(LF_CLIFO, key);
const int cflen = clifo.get(CLI_COFI).len();
if (cflen > 11)
var = "2";
}
recset.set("TIPOANAG", var); recset.set("TIPOANAG", var);
recset.set("FINEREC", "\r\n"); recset.set("FINEREC", "\r\n");
} }
} }
@ -1411,11 +1398,11 @@ void TInvioSispac::sispac_movim()
} }
recset.new_rec(); recset.new_rec();
var = cofi; var = cofi;
recset.set("COFI", var); recset.set(CLI_COFI, var);
var = paiv; var = paiv;
recset.set("PAIV", var); recset.set(CLI_PAIV, var);
var = ragsoc; var = ragsoc;
recset.set("RAGSOC", var); recset.set(CLI_RAGSOC, var);
var = esiva; var = esiva;
recset.set("ESIVA", var); recset.set("ESIVA", var);
var = annoes; var = annoes;
@ -1523,19 +1510,7 @@ void TInvioSispac::sispac_movim()
recset.set("DATADOC", var); recset.set("DATADOC", var);
recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int()); recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int());
const long codcf = input.get(SLF_MOV "." MOV_CODCF).as_int(); var = get_tipo_anag2(recset);
var = "";
if (codcf > 0L)
{
key = tipomov == "A" ? "F" : "C" ; key << "|" << codcf;
const TRectype & clifo = cache().get(LF_CLIFO, key);
const int cflen = clifo.get(CLI_COFI).len();
if (cflen > 11)
var = "2";
}
recset.set("TIPOANAG", var); recset.set("TIPOANAG", var);
recset.set("FINEREC", "\r\n"); recset.set("FINEREC", "\r\n");