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

View File

@ -755,14 +755,16 @@ bool TInv_cont::tabella_ditta()
_flag_bollato = ind.get_bool("B7"); _flag_bollato = ind.get_bool("B7");
// Compila l'array contenente le causali di corrispondenza per l'invio extracontabile // Compila l'array contenente le causali di corrispondenza per l'invio extracontabile
dep = "";
TString s5(ind.get("S5")); TString s5(ind.get("S5"));
_tab_cau.destroy(); _tab_cau.destroy();
_tab_cau.add(s5.mid(0,3)); _tab_cau.add(s5.mid(0,3));
_tab_cau.add(s5.mid(3,3)); _tab_cau.add(s5.mid(3,3));
_tab_cau.add(s5.mid(6,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(9,3));
_tab_cau.add(s5.mid(12,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; return TRUE;
} }

View File

@ -77,7 +77,7 @@ class TInv_cont : public TApplication
char _scelta; char _scelta;
TString _control_rec, _header, _trasf, _std, _stato, _marker, _nome_simbolico; 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; TString _ocfpi, _ragsococc, _indocc, _capocc, _localocc, _provocc, _codvali, _codval;
bool _esiste_ditta, _esiste_record, _inviato, _flag_bollato; bool _esiste_ditta, _esiste_record, _inviato, _flag_bollato;
long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec; long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec;

View File

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

View File

@ -31,7 +31,7 @@ class TLista_archivi : public TApplication
TLocalisamfile* _pagsca; TLocalisamfile* _pagsca;
TArray _tab_cau; // tabella di corrispondenza causali per invio saldaconto extracontabile a sistema TArray _tab_cau; // tabella di corrispondenza causali per invio saldaconto extracontabile a sistema
TString _files, _ragsoc; TString _files, _ragsoc,_cpg_nc;
TDate _datalimite; TDate _datalimite;
long _ditta; long _ditta;
bool _errore_grave; 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 record.overwrite(str,106); //Data cambio
if (tipomov != 1) 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); int tipopag = _tpart->get_int (PART_TIPOPAG);
str.format("%d", tipopag); str.format("%d", tipopag);
record.overwrite(str,114); //Tipo pagamento 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 = riconverti(datapag,FALSE);
str.format("%06s", (const char*) str); str.format("%06s", (const char*) str);
record.overwrite(str,140); //Data pagamento record.overwrite(str,140); //Data pagamento
} }
TString sez = _tpart->get(PART_SEZ); TString sez = _tpart->get(PART_SEZ);
str.format("%s", (const char*) sez); str.format("%s", (const char*) sez);