diff --git a/ci/ci0400.cpp b/ci/ci0400.cpp index cc881c681..0f00de1a8 100755 --- a/ci/ci0400.cpp +++ b/ci/ci0400.cpp @@ -132,9 +132,9 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date) date = curr_almanac().selected_date(); const int currpage = curr_page(); - const TString & doctype = filters().row(currpage); + const TString & codnum = filters().row(currpage); TString filter; - filter << "(ANSI(DATADOC)==\"" << date.string(ANSI) << "\")" << "&&" << "(CODNUM==\"" << doctype << "\")"; + filter << "(ANSI(DATADOC)==\"" << date.string(ANSI) << "\")" << "&&" << "(CODNUM==\"" << codnum << "\")"; TRelation relation(LF_DOC); relation.add(LF_CLIFO, "TIPOCF==TIPOCF|CODCF==CODCF"); @@ -146,20 +146,43 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date) "ANNO|CODNUM|TIPODOC|NUMDOCRIF|STATO|DATADOCRIF|NDOC|20->RAGSOC", TR("Selezione documenti"), HR("Anno|Num.|Tipo|Docum.Rif.|Stato|Data@10|Documento|Ragione Sociale@50"), - almanac().can_insert(date) ? 0x02|0x04 : 0x04); + almanac().can_insert(date) ? 0x02|0x04 : 0x04, 3); + + TList_field& fl = sheet.add_list(101, 0, "Tipo documento ", 1, -3, 50); + TToken_string codes; + TToken_string values; + + + TCodice_numerazione c(codnum); + const int items = c.ntipi_doc(); + + for (int i = 0; i < items; i++) + { + const TString16 codtipo(c.tipo_doc(i)); + const TTipo_documento t(codtipo); + + codes.add(codtipo); + values.add(t.descrizione()); + } + fl.replace_items(codes, values); + fl.enable(items > 1); KEY exitval = sheet.run(); switch(exitval) { case K_ENTER: - call_ve0(exitval, relation, date, doctype); + call_ve0(exitval, relation, date, codnum); break; case K_DEL: - call_ve0(exitval, relation, date, doctype); + call_ve0(exitval, relation, date, codnum); break; case K_INS: - call_ve0(exitval, relation, date, doctype); + { + const TString16 tipo(sheet.get(101)); + + call_ve0(exitval, relation, date, codnum, tipo); + } break; case K_ESC: break; @@ -185,7 +208,7 @@ void TImmissioneDocumenti_mask::open_day_mask(TDate date) } } -void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate& date, const TString& doctype) +void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate& date, const TString& codnum, const TString& doctype) { TFilename tempfile; tempfile.tempdir(); @@ -212,9 +235,10 @@ void TImmissioneDocumenti_mask::call_ve0(int exitval, TRelation& relation, TDate break; } - configfile.set("PROVV", "D", "33"); - configfile.set("ANNO", date.year(), "33"); - configfile.set("CODNUM", doctype, "33"); + configfile.set(DOC_PROVV, "D", "33"); + configfile.set(DOC_ANNO, date.year(), "33"); + configfile.set(DOC_CODNUM, codnum, "33"); + configfile.set(DOC_TIPODOC, doctype, "33"); } TString commandline; diff --git a/ci/ci0400.h b/ci/ci0400.h index 90811f18a..95782b2c0 100755 --- a/ci/ci0400.h +++ b/ci/ci0400.h @@ -30,7 +30,7 @@ public: private: // chiamata del programma ve0 - void call_ve0(int exitval, TRelation& relation, TDate& date, const TString& doctype); + void call_ve0(int exitval, TRelation& relation, TDate& date, const TString& codnum, const TString& doctype = EMPTY_STRING); public: // Costruttore