Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : riporto da 11 importazione documenti terminata (per quanto riguarda i campi noti); per gli ignoti si vedra'! git-svn-id: svn://10.65.10.50/branches/R_10_00@21083 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cbb9055e06
commit
a519f17133
@ -183,6 +183,7 @@ real THardy_tied_mask::find_costo(const TString& codart, const TString& um) cons
|
||||
if (costo <= ZERO)
|
||||
{
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
umart.setkey(2);
|
||||
umart.put(UMART_CODART, codart);
|
||||
umart.put(UMART_UM, um);
|
||||
const int err_umart = umart.read();
|
||||
|
@ -255,6 +255,7 @@ protected:
|
||||
void elabora_BR(THardy_upload_recordset& recset, TLog_report& log);
|
||||
void elabora_VC(THardy_upload_recordset& recset, TLog_report& log);
|
||||
void elabora_TF(THardy_upload_recordset& recset, TLog_report& log);
|
||||
void elabora_SI(THardy_upload_recordset& recset, TLog_report& log);
|
||||
|
||||
void elabora(const TMask& mask);
|
||||
|
||||
@ -295,24 +296,34 @@ void TUpload2Campo::elabora_VC(THardy_upload_recordset& recset, TLog_report& log
|
||||
}
|
||||
|
||||
|
||||
void TUpload2Campo::elabora_SI(THardy_upload_recordset& recset, TLog_report& log)
|
||||
{
|
||||
}
|
||||
|
||||
void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log)
|
||||
{
|
||||
//1) codice terminale
|
||||
//1) codice terminale (lungo 3) e codice agente (lungo 5)
|
||||
const TString4 codice_terminale = recset.get("CodiceTerminale").as_string();
|
||||
const TString& codage = cache().get(LF_AGENTI, codice_terminale, AGE_CODAGE);
|
||||
if (codage != codice_terminale)
|
||||
TString8 codice_agente = codice_terminale;
|
||||
codice_agente.right_just(5, '0');
|
||||
const TString& codage = cache().get(LF_AGENTI, codice_agente, AGE_CODAGE);
|
||||
if (codage != codice_agente)
|
||||
{
|
||||
_can_write = false;
|
||||
TString msg;
|
||||
msg << "Codice terminale " << codice_terminale << "- codice agente" << codage << " non corrispondenti";
|
||||
msg << "Codice agente " << codice_agente << " da terminale: sconosciuto";
|
||||
log.log(2, msg);
|
||||
}
|
||||
|
||||
|
||||
//2) Testata documento
|
||||
//genera una simpatico documento di cui raccatta la chiave
|
||||
const TString& rec_anno = recset.get(DOC_DATADOC).as_string().right(2);
|
||||
int anno = 2000 + atoi(rec_anno);
|
||||
const TString& str_datadoc = recset.get(DOC_DATADOC).as_string();
|
||||
int anno = 2000 + atoi(str_datadoc.right(2));
|
||||
const int mese = atoi(str_datadoc.mid(2,2));
|
||||
const int giorno = atoi(str_datadoc.left(2));
|
||||
|
||||
|
||||
const char rec_tipodoc = recset.get(DOC_TIPODOC).as_string()[0];
|
||||
//2a) tipo documento
|
||||
TString4 tipodoc;
|
||||
@ -350,6 +361,8 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
||||
TDocumento doc('D', anno, codnum, ndoc);
|
||||
|
||||
doc.put(DOC_TIPODOC, tipodoc);
|
||||
TDate datadoc(giorno, mese, anno);
|
||||
doc.put(DOC_DATADOC, datadoc);
|
||||
doc.put(DOC_TIPOCF, "C");
|
||||
|
||||
//2c) cliente
|
||||
@ -393,8 +406,10 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
||||
|
||||
//serie delle put sulla riga documento; ricordiamo che la chiave della riga viene riempita dalla new_row
|
||||
//3a) articolo
|
||||
const TString& codart = recset.get(RDOC_CODART).as_string();
|
||||
const TString& articolo = cache().get(LF_ANAMAG, codart, ANAMAG_CODART);
|
||||
TString8 codart = recset.get(RDOC_CODART).as_string();
|
||||
codart.trim();
|
||||
const TRectype& rec_anamag = cache().get(LF_ANAMAG, codart);
|
||||
const TString& articolo = rec_anamag.get(ANAMAG_CODART);
|
||||
if (articolo != codart)
|
||||
{
|
||||
_can_write = false;
|
||||
@ -406,13 +421,16 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
||||
rigadoc.put(RDOC_CODART, codart);
|
||||
rigadoc.put(RDOC_CODARTMAG, codart);
|
||||
rigadoc.put(RDOC_CHECKED, "X");
|
||||
rigadoc.put(RDOC_DESCR, rec_anamag.get(ANAMAG_DESCR));
|
||||
|
||||
//3b) umart
|
||||
const TString& umqta = recset.get(RDOC_UMQTA).as_string();
|
||||
TToken_string key_um;
|
||||
key_um.add(codart);
|
||||
key_um.add(umqta);
|
||||
const TString& umart = cache().get(LF_UMART, key_um, UMART_UM);
|
||||
if (umart != umqta)
|
||||
TLocalisamfile file_umart(LF_UMART);
|
||||
file_umart.setkey(2);
|
||||
file_umart.put(UMART_CODART, codart);
|
||||
file_umart.put(UMART_UM, umqta);
|
||||
const int err_umart = file_umart.read();
|
||||
if (err_umart != NOERR)
|
||||
{
|
||||
_can_write = false;
|
||||
TString msg;
|
||||
@ -430,9 +448,9 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
||||
TString str_sconto;
|
||||
real sconto[4];
|
||||
sconto[0] = recset.get("Sconto1").as_real();
|
||||
sconto[1] = recset.get("Sconto2").as_real() / CENTO;
|
||||
sconto[2] = recset.get("Sconto3").as_real() / CENTO;
|
||||
sconto[3] = recset.get("ScontoLibero").as_real() / CENTO;
|
||||
sconto[1] = recset.get("Sconto2").as_real();
|
||||
sconto[2] = recset.get("Sconto3").as_real();
|
||||
sconto[3] = recset.get("ScontoLibero").as_real();
|
||||
for (int s = 0; s < 4; s++)
|
||||
{
|
||||
if (!sconto[s].is_zero())
|
||||
@ -445,8 +463,7 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
||||
|
||||
real prezzo_lordo = recset.get(RDOC_PREZZO).as_real();
|
||||
prezzo_lordo /= 1000;
|
||||
rigadoc.put(RDOC_PREZZO, "");
|
||||
rigadoc.put(RDOC_PREZZOL, prezzo_lordo);
|
||||
rigadoc.put(RDOC_PREZZO, prezzo_lordo);
|
||||
|
||||
//3x) iva
|
||||
const int aliquota_iva = recset.get("AliquotaIva").as_int();
|
||||
@ -479,6 +496,8 @@ void TUpload2Campo::elabora_TF(THardy_upload_recordset& recset, TLog_report& log
|
||||
msg.insert("Controllato documento: ", 0);
|
||||
log.log(0, msg);
|
||||
}
|
||||
|
||||
log.log(0, "");
|
||||
}
|
||||
|
||||
void TUpload2Campo::elabora(const TMask& mask)
|
||||
@ -502,6 +521,8 @@ void TUpload2Campo::elabora(const TMask& mask)
|
||||
TProgind pi(items, TR("Acquisizione dati in corso..."), true, true);
|
||||
TLog_report log("Segnalazioni su acquisizione");
|
||||
log.kill_duplicates();
|
||||
log.log(0, "");
|
||||
|
||||
//parametro di controllo; solo se resta true fino alla fine il documento viene writato
|
||||
//solo in caso di elaborazione definitiva può diventare true
|
||||
_can_write = false;
|
||||
@ -524,22 +545,22 @@ void TUpload2Campo::elabora(const TMask& mask)
|
||||
switch (pos)
|
||||
{
|
||||
case 0: //tipo record: SU (SetUp...ovvero agente)
|
||||
elabora_SU(recset, log);
|
||||
//elabora_SU(recset, log); //non serve a una cippa!
|
||||
break;
|
||||
case 1: //tipo record: TF (Testata Fattura)
|
||||
elabora_TF(recset, log);
|
||||
break;
|
||||
case 2: //tipo record: RF (Riga Fattura) //non serve! lo fa l'elaborazione di testata
|
||||
//elabora_RF(recset, log);
|
||||
case 2: //tipo record: RF (Riga Fattura)
|
||||
//elabora_RF(recset, log); //non serve! lo fa l'elaborazione di testata
|
||||
break;
|
||||
case 3: //tipo record: SI (incasso documenti)
|
||||
//elabora_SI(recset, log);
|
||||
elabora_SI(recset, log);
|
||||
break;
|
||||
case 4: //tipo record: BR (movimenti magazzino)
|
||||
elabora_BR(recset, log);
|
||||
//elabora_BR(recset, log); //non li importiamo perchè vengono eseguiti alla scrittura dei documenti importati su archivi
|
||||
break;
|
||||
case 5: //tipo record: VC (Variazioni Cliente)
|
||||
//elabora_VC(recset, log);
|
||||
//elabora_VC(recset, log); //non serve! gli agenti non possono immettere clienti da terminale!
|
||||
break;
|
||||
default: //se il tipo record non esiste nella lista dei tipi record si incazza e lo scrive!
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user