Correzione MI3465 e MI3466.

git-svn-id: svn://10.65.10.50/trunk@4219 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-03-18 11:54:32 +00:00
parent 0f86adfeae
commit 844bc34d22
5 changed files with 222 additions and 179 deletions

View File

@ -754,6 +754,16 @@ bool TInv_cont::tabella_ditta()
_flag_bollato = ind.get_bool("B7");
// Compila l'array contenente le causali di corrispondenza per l'invio extracontabile
TString s5(ind.get("S5"));
_tab_cau.destroy();
_tab_cau.add(s5.mid(0,2));
_tab_cau.add(s5.mid(3,5));
_tab_cau.add(s5.mid(6,8));
_tab_cau.add(s5.mid(9,11));
_tab_cau.add(s5.mid(12,15));
_tab_cau.add(s5.mid(16,18));
return TRUE;
}
@ -812,8 +822,10 @@ bool TInv_cont::setta_maschera_hnd(TMask_field& f, KEY k)
{
if ( (k == K_TAB || k == K_ENTER) && f.mask().is_running())
{
app()._ditta = f.mask().get_long(F_DITTAINV);
if (!prefix().exist(app()._ditta))
long& d = app()._ditta;
d = f.mask().get_long(F_DITTAINV);
if (d == 0L) return TRUE;
if (!prefix().exist(d))
return error_box("La ditta indicata non e' abilitata alla contabilita'");
if (!app().tabella_ditta())
@ -822,7 +834,7 @@ bool TInv_cont::setta_maschera_hnd(TMask_field& f, KEY k)
if (app()._stato != "")
return error_box("Rilevato STATO DI RIPARTENZA NON RECUPERABILE sulla ditta richiesta");
f.mask().set(F_DITTAINV, app()._ditta);
f.mask().set(F_DITTAINV, d);
app().codifica_ditta(f.mask());
f.mask().set(F_NUMULINV, app()._num);
f.mask().set(F_DATAULIN, app()._data.string());

View File

@ -71,6 +71,8 @@ class TInv_cont : public TApplication
TIsamtempfile* _tpagsca;
TArchive _arc;
TAssoc_array _riga_interna, _ultima_rata;
TArray _tab_cau; // tabella di corrispondenza causali per invio saldaconto extracontabile a sistema
char _scelta;

View File

@ -96,6 +96,16 @@ bool TLista_archivi::tabella_ditta()
if (ind.get_bool("B5"))
_files << "B";
// Compila l'array contenente le causali di corrispondenza per l'invio extracontabile
TString s5(ind.get("S5"));
_tab_cau.destroy();
_tab_cau.add(s5.mid(0,2));
_tab_cau.add(s5.mid(3,5));
_tab_cau.add(s5.mid(6,8));
_tab_cau.add(s5.mid(9,11));
_tab_cau.add(s5.mid(12,15));
_tab_cau.add(s5.mid(16,18));
return TRUE;
}
@ -960,6 +970,15 @@ void TLista_archivi::controlla_fatture(char file)
errore = TRUE;
stampa.add(" - Rilevato un numero di registrazione corrispondente a primanota composto da 7 cifre");
}
else
if (nreg == 0) // 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())
{
errore = TRUE;
stampa.add(" - Rilevato un movimento extracontabile senza causale. Compilare tabella di corrispondenza");
}
}
if (numrig > 99)
{
errore = TRUE;

View File

@ -29,6 +29,7 @@ class TLista_archivi : public TApplication
TLocalisamfile* _part;
TLocalisamfile* _scad;
TLocalisamfile* _pagsca;
TArray _tab_cau; // tabella di corrispondenza causali per invio saldaconto extracontabile a sistema
TString _files, _ragsoc;
TDate _datalimite;

View File

@ -1493,6 +1493,12 @@ long TInv_cont::crea_record_riferimento_PN()
str.format("%c", tipocf);
record.overwrite(str,219); //Flag Cliente / Fornitore
TString codcaus (_tpart->get(PART_CODCAUS));
if (tipocf != ' ' && codcaus.empty())
codcaus = (TString&)_tab_cau[_tpart->get_int(PART_TIPOMOV)-1]; // Causale
str.format("%03s",(const char*)codcaus);
record.overwrite(str,41);
_tras_file.write_control_rec(record,size);
_numrec_pn++;
@ -1510,8 +1516,9 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento)
long nreg = _tpart->get_long(PART_NREG);
int nrig = _tpart->get_int (PART_NUMRIG);
const bool extra = nreg == 0 && nrig == 0;
if (nreg == 0 && nrig == 0) //Se si tratta di extracontabile nreg = 0 e nrig = 0
if (extra) //Se si tratta di extracontabile nreg = 0 e nrig = 0
{ //prendo come nreg l'ultimo che trovo sugli archivi + 1.
if (crea_record_riferimento) //Creo anche un record di riferimento nei mov di PN (Z1).
nreg = crea_record_riferimento_PN(); //In caso di abbuoni o diff.cambio o ritenute non e'
@ -1595,6 +1602,8 @@ void TInv_cont::partita2trasfer(TString& record, bool crea_record_riferimento)
record.overwrite(str,58); //Numero protocollo IVA
TString codcaus (_tpart->get(PART_CODCAUS));
if (extra && tipoAS < 3 && codcaus.empty())
codcaus = (TString&)_tab_cau[tipomov-1]; // Causale da tabella
str.format("%03s", (const char*)codcaus);
record.overwrite(str,63); //Codice causale