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

@ -769,6 +769,7 @@ protected:
bool scod2rc(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_anag2(const TRecordset& input) const;
public:
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];
if (isalpha(cf))
var = isdigit(pi) ? "D" : "F";
var = isdigit(pi) ? "D" : "P";
else
{
if (isdigit(cf))
@ -878,6 +879,13 @@ const char* TInvioSispac::get_tipo_anag(const TRecordset& input) const
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()
{
TClisisp_set recset;
@ -1034,11 +1042,11 @@ void TInvioSispac::sispac_reverse_movim(long numreg, TMovim_set & recset, long f
continue;
recset.new_rec();
var = cofi;
recset.set("COFI", var);
recset.set(CLI_COFI, var);
var = paiv;
recset.set("PAIV", var);
recset.set(CLI_PAIV, var);
var = ragsoc;
recset.set("RAGSOC", var);
recset.set(CLI_RAGSOC, var);
var = esiva;
recset.set("ESIVA", var);
var = annoes;
@ -1110,26 +1118,15 @@ void TInvioSispac::sispac_reverse_movim(long numreg, TMovim_set & recset, long f
var = importo.string(13, 0, '0');
recset.set("IMPORTO", var);
const bool dare = input.get(RMV_SEZIONE).as_string() == "D";
const char * s = dare ? "A" : "D";
recset.set("SGNCONTIMP", s);
const TDate datadoc(input.get(SLF_MOV "." MOV_DATADOC).as_date());
var = dare ? "A" : "D";
recset.set("SGNCONTIMP", var);
const TDate datadoc(input.get(SLF_MOV "." MOV_DATADOC).as_date());
var = datadoc.string(brief, '\0', full, full, amg_date);
recset.set("DATADOC", var);
recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int());
const long codcf = input.get(SLF_MOV "." MOV_CODCF).as_int();
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";
}
var = get_tipo_anag2(recset);
recset.set("TIPOANAG", var);
recset.set("FINEREC", "\r\n");
}
@ -1165,11 +1162,11 @@ void TInvioSispac::sispac_reverse_giro(long numreg, TMovim_set & recset, long fi
recset.new_rec();
var = cofi;
recset.set("COFI", var);
recset.set(CLI_COFI, var);
var = paiv;
recset.set("PAIV", var);
recset.set(CLI_PAIV, var);
var = ragsoc;
recset.set("RAGSOC", var);
recset.set(CLI_RAGSOC, var);
var = esiva;
recset.set("ESIVA", var);
var = annoes;
@ -1253,20 +1250,10 @@ void TInvioSispac::sispac_reverse_giro(long numreg, TMovim_set & recset, long fi
recset.set("DATADOC", var);
recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int());
const long codcf = input.get(SLF_MOV "." MOV_CODCF).as_int();
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";
}
var = get_tipo_anag2(recset);
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();
var = cofi;
recset.set("COFI", var);
recset.set(CLI_COFI, var);
var = paiv;
recset.set("PAIV", var);
recset.set(CLI_PAIV, var);
var = ragsoc;
recset.set("RAGSOC", var);
recset.set(CLI_RAGSOC, var);
var = esiva;
recset.set("ESIVA", var);
var = annoes;
@ -1523,19 +1510,7 @@ void TInvioSispac::sispac_movim()
recset.set("DATADOC", var);
recset.set("NUMDOC", input.get(SLF_MOV "." MOV_NUMDOC).as_int());
const long codcf = input.get(SLF_MOV "." MOV_CODCF).as_int();
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";
}
var = get_tipo_anag2(recset);
recset.set("TIPOANAG", var);
recset.set("FINEREC", "\r\n");