Correzione MI3583: aggiunta gestione del codice pagamento

per note di credito (extracontabili e non) da trasferire alla
posizione 113-114.


git-svn-id: svn://10.65.10.50/trunk@4279 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-04-14 09:50:15 +00:00
parent c8efc69326
commit c3ef2f940e
6 changed files with 40 additions and 13 deletions

View File

@ -19,11 +19,12 @@ private:
TTransfer_file _tras_file;
TString _trasf,_control_rec;
long _ditta_tab, _ditta_tras;
long _ditta_tab, _ditta_tras, _ditta_orig;
bool _disable,_ditte_uguali,_salta_hnd,_messaggio;
public:
bool user_create();
virtual bool user_create();
virtual bool user_destroy();
virtual void init_query_mode(TMask&);
virtual void init_modify_mode(TMask&);
virtual void init_insert_mode(TMask&);
@ -153,7 +154,7 @@ bool Tabinv_application::ditta_handler(TMask_field& f, KEY k)
}
}
}
if (k == K_TAB)
if (k == K_TAB && f.focusdirty())
{
TLocalisamfile ditte (LF_NDITTE);
@ -166,6 +167,7 @@ bool Tabinv_application::ditta_handler(TMask_field& f, KEY k)
{
TString ragsoc = ditte.get(NDT_RAGSOC);
f.mask().set(F_RAGSOC, ragsoc);
prefix().set_codditta(ditta);
}
else
f.mask().set(F_RAGSOC, "");
@ -729,10 +731,11 @@ bool Tabinv_application::user_create()
Tab_application::user_create();
_msk = get_mask();
_tabname = get_tabname();
_tabname = get_tabname();
_ditta_orig = -1;
if (_tabname == "%IND")
{
_ditta_orig = prefix().get_codditta();
_msk->set_handler(nascosto_handler);
_msk->set_handler(F_STATO, stato_invio);
_msk->set_handler(F_DITTAINV, ditta_handler);
@ -759,6 +762,13 @@ bool Tabinv_application::user_create()
return TRUE;
}
bool Tabinv_application::user_destroy()
{
Tab_application::user_destroy();
if (_ditta_orig > -1) prefix().set_codditta(_ditta_orig);
return TRUE;
}
cg6500(int argc, char* argv[])
{
Tabinv_application* a = new Tabinv_application;

View File

@ -755,14 +755,16 @@ bool TInv_cont::tabella_ditta()
_flag_bollato = ind.get_bool("B7");
// Compila l'array contenente le causali di corrispondenza per l'invio extracontabile
dep = "";
TString s5(ind.get("S5"));
_tab_cau.destroy();
_tab_cau.add(s5.mid(0,3));
_tab_cau.add(s5.mid(3,3));
_tab_cau.add(s5.mid(6,3));
_tab_cau.add(dep); // corrisponde al tipo dell'abbuono.
_tab_cau.add(s5.mid(9,3));
_tab_cau.add(s5.mid(12,3));
_tab_cau.add(s5.mid(16,3));
_cpg_nc = ind.get("S7"); // condizione pagamento (rimessa diretta) per le note di credito
return TRUE;
}

View File

@ -77,7 +77,7 @@ class TInv_cont : public TApplication
char _scelta;
TString _control_rec, _header, _trasf, _std, _stato, _marker, _nome_simbolico;
TString _files, _codcaus, _numdoc, _reg, _codpag, _tipodoc, _codcausm, _sigle;
TString _files, _codcaus, _numdoc, _reg, _codpag, _tipodoc, _codcausm, _sigle,_cpg_nc;
TString _ocfpi, _ragsococc, _indocc, _capocc, _localocc, _provocc, _codvali, _codval;
bool _esiste_ditta, _esiste_record, _inviato, _flag_bollato;
long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec;

View File

@ -97,15 +97,17 @@ bool TLista_archivi::tabella_ditta()
_files << "B";
// Compila l'array contenente le causali di corrispondenza per l'invio extracontabile
dep = "";
TString s5(ind.get("S5"));
_tab_cau.destroy();
_tab_cau.add(s5.mid(0,3));
_tab_cau.add(s5.mid(3,3));
_tab_cau.add(s5.mid(6,3));
_tab_cau.add(dep); // corrisponde al tipo dell'abbuono.
_tab_cau.add(s5.mid(9,3));
_tab_cau.add(s5.mid(12,3));
_tab_cau.add(s5.mid(16,3));
_cpg_nc = ind.get("S7"); // condizione pagamento (rimessa diretta) per le note di credito
_cpg_nc.trim();
return TRUE;
}
@ -962,6 +964,7 @@ void TLista_archivi::controlla_fatture(char file)
int nriga = _part->get_int (PART_NRIGA);
long nreg = _part->get_long(PART_NREG);
int numrig = _part->get_int (PART_NUMRIG);
int tipomov = _part->get_int (PART_TIPOMOV);
if (nriga == 9999) continue;
@ -973,12 +976,19 @@ void TLista_archivi::controlla_fatture(char file)
else
if (nreg == 0 && codcaus.empty()) // Allora fa parte del saldaconto extracontabile: si controlli la tabella di corrispondenza relativa al tipo mov.
{
if (((TString&) _tab_cau[_part->get_int(PART_TIPOMOV)-1]).trim().empty())
TString& s = (TString&) _tab_cau[tipomov-1];
s.trim();
if (s.empty())
{
errore = TRUE;
stampa.add(" - Rilevato un movimento extracontabile senza causale. Compilare tabella di corrispondenza");
}
}
if (tipomov == 2 && _cpg_nc.empty())
{
errore = TRUE;
stampa.add(" - Rilevata una nota di credito senza codice pagamento. Compilare tabella di corrispondenza");
}
if (numrig > 99)
{
errore = TRUE;

View File

@ -31,7 +31,7 @@ class TLista_archivi : public TApplication
TLocalisamfile* _pagsca;
TArray _tab_cau; // tabella di corrispondenza causali per invio saldaconto extracontabile a sistema
TString _files, _ragsoc;
TString _files, _ragsoc,_cpg_nc;
TDate _datalimite;
long _ditta;
bool _errore_grave;

View File

@ -1655,7 +1655,12 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento)
record.overwrite(str,106); //Data cambio
if (tipomov != 1)
{
{
if (tipomov == 2) // Note di credito sia contabili che extracontabili
{
str.format("%2s",(const char*) _cpg_nc);
record.overwrite(str,112);
}
int tipopag = _tpart->get_int (PART_TIPOPAG);
str.format("%d", tipopag);
record.overwrite(str,114); //Tipo pagamento
@ -1664,7 +1669,7 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento)
str = riconverti(datapag,FALSE);
str.format("%06s", (const char*) str);
record.overwrite(str,140); //Data pagamento
}
}
TString sez = _tpart->get(PART_SEZ);
str.format("%s", (const char*) sez);