Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
trasferimenti da e per terminalini


git-svn-id: svn://10.65.10.50/branches/R_10_00@21515 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2011-01-26 13:31:15 +00:00
parent f9944d332f
commit a0b3256f45
2 changed files with 39 additions and 14 deletions

View File

@ -206,7 +206,8 @@ void TFile2Txt::genera_clienti_txt(const long da_codcli)
codage = codage.right(3); codage = codage.right(3);
clienti.set("CodiceTerminale", codage); clienti.set("CodiceTerminale", codage);
clienti.set("CodiceCliente", archivio_clienti.get(CLI_CODCF)); const long codcf = archivio_clienti.get(CLI_CODCF).as_int();
clienti.set("CodiceCliente", codcf);
//riempie l'anagrafica del cliente principale //riempie l'anagrafica del cliente principale
fill_anagrafica_cliente(archivio_clienti, clienti, false); fill_anagrafica_cliente(archivio_clienti, clienti, false);
@ -231,7 +232,8 @@ void TFile2Txt::genera_clienti_txt(const long da_codcli)
TString4 codpag = archivio_clienti.get(CLI_CODPAG).as_string(); TString4 codpag = archivio_clienti.get(CLI_CODPAG).as_string();
clienti.set("CodicePagamento", codpag.right(2)); clienti.set("CodicePagamento", codpag.right(2));
TString query; //prima moda: nel campo CodiceListino ci va il codice Campo del Contratto del cliente (listino cliente per Hardy)
/*TString query;
query << "USE CONDV"; query << "USE CONDV";
query << "\nFROM TIPO=C TIPOCF=C CODCF=#CODCF"; query << "\nFROM TIPO=C TIPOCF=C CODCF=#CODCF";
query << "\nTO TIPO=C TIPOCF=C CODCF=#CODCF"; query << "\nTO TIPO=C TIPOCF=C CODCF=#CODCF";
@ -242,8 +244,14 @@ void TFile2Txt::genera_clienti_txt(const long da_codcli)
{ {
const TString& cod_contr = contratti.get(CONDV_COD).as_string(); const TString& cod_contr = contratti.get(CONDV_COD).as_string();
clienti.set("CodiceListino", cod_contr); clienti.set("CodiceListino", cod_contr);
} }*/
//seconda moda: nel campo CodiceListino ci va il codice del Listino Campo associato al cliente in cfven
TToken_string key_cfven;
key_cfven.add("C");
key_cfven.add(codcf);
const TRectype& rec_cfven = cache().get(LF_CFVEN, key_cfven);
const TString& listino_cliente = rec_cfven.get(CFV_CODLIST);
const TString& str_sconto = archivio_clienti.get(CFV_SCONTO).as_string(); const TString& str_sconto = archivio_clienti.get(CFV_SCONTO).as_string();
clienti.set("ScontoFineFattura", hd_find_sconto(str_sconto)); clienti.set("ScontoFineFattura", hd_find_sconto(str_sconto));
@ -268,7 +276,7 @@ void TFile2Txt::genera_clienti_txt(const long da_codcli)
s='S'; s='S';
clienti.set("NoConsegna", TVariant(s));*/ clienti.set("NoConsegna", TVariant(s));*/
} } //for (bool ok = archivio_clienti.move_first()...
TFilename output_path = genera_path("clienti"); TFilename output_path = genera_path("clienti");
clienti.save_as(output_path, fmt_text); clienti.save_as(output_path, fmt_text);

View File

@ -307,7 +307,11 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
codice_terminale.right_just(3, '0'); codice_terminale.right_just(3, '0');
TString8 codice_agente = codice_terminale; TString8 codice_agente = codice_terminale;
codice_agente.right_just(5, '0'); codice_agente.right_just(5, '0');
const TString& codage = cache().get(LF_AGENTI, codice_agente, AGE_CODAGE);
const TRectype& rec_age = cache().get(LF_AGENTI, codice_agente);
const TString& codage = rec_age.get(AGE_CODAGE);
const TString8 codmag = rec_age.get(AGE_CODMAG); //magazzino collegato all'agente (serve nelle righe)
if (codage != codice_agente) if (codage != codice_agente)
{ {
_can_write = false; _can_write = false;
@ -325,16 +329,16 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
const int giorno = atoi(str_datadoc.left(2)); const int giorno = atoi(str_datadoc.left(2));
const char rec_tipodoc = recset.get(DOC_TIPODOC).as_string()[0]; char rec_tipodoc = recset.get(DOC_TIPODOC).as_string()[0];
//2a) tipo documento //2a) tipo documento
TString4 tipodoc; TString4 tipodoc;
TConfig hardy(CONFIG_DITTA, "ha"); TConfig hardy(CONFIG_DITTA, "ha");
switch (rec_tipodoc) switch (rec_tipodoc)
{ {
case 'F': tipodoc = hardy.get("InpFatTip"); break; case 'F': tipodoc = hardy.get("InpFatTip"); break; //Fatture
case 'B': tipodoc = hardy.get("InpBolTip"); break; case 'B': tipodoc = hardy.get("InpBolTip"); break; //Bolle
case 'V': tipodoc = hardy.get("InpValTip"); break; case 'V': tipodoc = hardy.get("InpValTip"); break; //bolle Valorizzate: attenzione!! devono essere trasformate in 'B'olle alla creazione della numerazione di Campo
case 'O': tipodoc = hardy.get("InpOrdTip"); break; case 'O': tipodoc = hardy.get("InpOrdTip"); break; //Ordini
default: default:
{ {
_can_write = false; _can_write = false;
@ -347,6 +351,9 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
//2b) numerazione documento //2b) numerazione documento
//il codnum dipende dal tipo documento del terminale (F,B,O...) e dal codice del terminale //il codnum dipende dal tipo documento del terminale (F,B,O...) e dal codice del terminale
TString4 codnum; TString4 codnum;
if (rec_tipodoc == 'V')
rec_tipodoc = 'B';
codnum << rec_tipodoc << codice_terminale; codnum << rec_tipodoc << codice_terminale;
const TString& numerazione = cache().get("%NUM", codnum, "CODTAB"); const TString& numerazione = cache().get("%NUM", codnum, "CODTAB");
if (numerazione != codnum) if (numerazione != codnum)
@ -361,12 +368,17 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
TDocumento doc('D', anno, codnum, ndoc); TDocumento doc('D', anno, codnum, ndoc);
//2c) tipo documento e data documento
doc.put(DOC_TIPODOC, tipodoc); doc.put(DOC_TIPODOC, tipodoc);
TTipo_documento td(tipodoc);
const TString& caus_movmag = td.caus_mov();
doc.put(DOC_CAUSMAG, caus_movmag);
TDate datadoc(giorno, mese, anno); TDate datadoc(giorno, mese, anno);
doc.put(DOC_DATADOC, datadoc); doc.put(DOC_DATADOC, datadoc);
//2d) cliente e campi collegati via cli2doc()
doc.put(DOC_TIPOCF, "C"); doc.put(DOC_TIPOCF, "C");
//2c) cliente
const long codcf = recset.get(DOC_CODCF).as_int(); const long codcf = recset.get(DOC_CODCF).as_int();
TToken_string key_clifo; TToken_string key_clifo;
key_clifo.add("C"); key_clifo.add("C");
@ -379,6 +391,7 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
msg << "Codice cliente " << codcf << " sconosciuto"; msg << "Codice cliente " << codcf << " sconosciuto";
log.log(2, msg); log.log(2, msg);
} }
doc.put(DOC_CODCF, codcf); doc.put(DOC_CODCF, codcf);
doc.put(DOC_CODCFFATT, recset.get(DOC_CODCFFATT).as_int()); doc.put(DOC_CODCFFATT, recset.get(DOC_CODCFFATT).as_int());
//sconto in fattura, sconto totale, incasso ecc.... che cazzo sono? //sconto in fattura, sconto totale, incasso ecc.... che cazzo sono?
@ -386,6 +399,10 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
doc.put(DOC_CODPAG, recset.get(DOC_CODPAG).as_string()); doc.put(DOC_CODPAG, recset.get(DOC_CODPAG).as_string());
//data spedizione...datapart o datacons? (solo per ordini) //data spedizione...datapart o datacons? (solo per ordini)
//usa la cli2doc per riempire tutti i campi legati al cliente
TCli_for clifor('C', codcf);
clifor.cli2doc(doc);
//al simpatico documento appiccia tutte le righe RF che seguono il record TF.. //al simpatico documento appiccia tutte le righe RF che seguono il record TF..
//..dopo il magico ordinamento iniziale del recordset //..dopo il magico ordinamento iniziale del recordset
//intanto azzera le righe eventualmente già presenti (riscrittura) //intanto azzera le righe eventualmente già presenti (riscrittura)
@ -487,6 +504,8 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
rigadoc.put(RDOC_CODIVA, codiva); rigadoc.put(RDOC_CODIVA, codiva);
rigadoc.put(RDOC_LIVELLO, recset.get("CodiceLotto").as_string()); rigadoc.put(RDOC_LIVELLO, recset.get("CodiceLotto").as_string());
rigadoc.put(RDOC_CODMAG, codmag); //questo viene dall'agente ed è stato preso all'inizio del metodo
} }
//incredibilmente arriva in fondo //incredibilmente arriva in fondo
@ -588,8 +607,6 @@ void TUpload2Campo::elabora(const TMask& mask)
break; break;
} //switch(pos).. } //switch(pos)..
} //for (bool ok... } //for (bool ok...
log.preview(); log.preview();