diff --git a/crpa/crpa1.cpp b/crpa/crpa1.cpp index 84a477e6b..aabad43c0 100755 --- a/crpa/crpa1.cpp +++ b/crpa/crpa1.cpp @@ -120,7 +120,6 @@ class TBudget_Import : public TSkeleton_application TBudget_Import_file* _trasfile; TConfig* _configfile; TRelation* _relmovana; - TRelation* _relrmovana; TCursor* _cur; TProgind* _prog; TString _lastfile; @@ -131,10 +130,9 @@ protected: void mask2ini(); void ini2mask(); bool transfer(); - void transfer_testata(const TRecord_text& curr); //, TError_log& log); + void transfer_movimento(const TRecord_text& curr); //, TError_log& log); long get_next_key(); - const char sezione(const TString& codconto); public: virtual bool create(); @@ -167,26 +165,7 @@ long TBudget_Import::get_next_key() } -const char TBudget_Import::sezione(const TString& codconto) -{ - TConfig& cfg = ca_config(); - TString tmp; - TString key; - long len; - for (int i = 0; i < 4; i++) - { - key.format("Pdc(%d)", i); - tmp << cfg.get(key); - len += tmp.len(); - } - - //TLocalisamfile& pconana(LF_PCONANA); - - const char tipo = 'q'; - return tipo; -} - -void TBudget_Import::transfer_testata(const TRecord_text& curr) //, TError_log& log) +void TBudget_Import::transfer_movimento(const TRecord_text& curr) //, TError_log& log) { const TString codcms = curr.get(1); const TString codconto = curr.get(2); @@ -210,6 +189,7 @@ void TBudget_Import::transfer_testata(const TRecord_text& curr) //, TError_log& //cerca il primo posto libero in movana long numreg = get_next_key(); + //TESTATA //crea il movimento di prima nota da aggiungere a movana TAnal_mov movana(numreg); movana.zero(); //azzera per sicurezza @@ -237,9 +217,32 @@ void TBudget_Import::transfer_testata(const TRecord_text& curr) //, TError_log& warning_box(TR("Esiste piu' di un sottoconto %s!"),codconto); pconana.move_last(); //si posiziona sul record corretto + const TString contone = pconana.get(PCONANA_CODCONTO).as_string(); + const TString4 sezione = pconana.get(PCONANA_SEZSALDI).as_string(); + //mette quella bastarda di sezione nel record + movana.put(MOVANA_SEZIONE, sezione); + //RIGA + //la riga sara' solo 1 per testata, almeno secondo l'attuale modalita' di import/export del CRPA + TRectype& rec_rmovana = movana.new_row(); - //***alla fine movana.write(); + rec_rmovana.put(RMOVANA_ANNOES, annoes); + rec_rmovana.put(RMOVANA_NUMREG ,numreg); + rec_rmovana.put(RMOVANA_NUMRIG ,1); + rec_rmovana.put(RMOVANA_SEZIONE ,sezione); + rec_rmovana.put(RMOVANA_DATACOMP ,dataini); + rec_rmovana.put(RMOVANA_CODCMS ,codcms); + rec_rmovana.put(RMOVANA_CODCONTO, contone); + rec_rmovana.put(RMOVANA_DESCR, "Riga movimento di budget importato"); + rec_rmovana.put(RMOVANA_IMPORTO, soldini); + + //scrive testata e riga + TLocalisamfile testate(LF_MOVANA); + if (movana.write(testate) == NOERR) + { + TLocalisamfile righe(LF_RMOVANA); + rec_rmovana.write(righe); + } } @@ -266,7 +269,7 @@ bool TBudget_Import::transfer() while (_trasfile->read(curr) == NOERR && !pi.iscancelled() && err == NOERR) { pi.setstatus(_trasfile->read_file()->tellg()); - transfer_testata(curr); //, log); + transfer_movimento(curr); //, log); } _trasfile->close(); delete _trasfile; @@ -304,7 +307,6 @@ bool TBudget_Import::create() _msk = new TBudget_Import_mask(); open_files(LF_MOVANA, LF_RMOVANA, LF_PCONANA, 0); _relmovana = new TRelation(LF_MOVANA); - _relrmovana = new TRelation(LF_RMOVANA); return TSkeleton_application::create(); }