Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : prima stesura programma di conversione CONAI; da provare completamente git-svn-id: svn://10.65.10.50/trunk@19335 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
be364c121f
commit
2d0815469f
69
ba/bacnv.cpp
69
ba/bacnv.cpp
@ -1,4 +1,5 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
|
#include <extcdecl.h>
|
||||||
#include <mailbox.h>
|
#include <mailbox.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
@ -7,16 +8,18 @@
|
|||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
#include <extcdecl.h>
|
#include <varrec.h>
|
||||||
|
|
||||||
#include <causali.h>
|
#include <causali.h>
|
||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
#include <pconti.h>
|
#include <pconti.h>
|
||||||
|
#include <rdoc.h>
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
#include <saldi.h>
|
#include <saldi.h>
|
||||||
|
|
||||||
#include "..\cg\cglib02.h"
|
#include "..\cg\cglib02.h"
|
||||||
|
#include "..\ve\velib.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -192,7 +195,7 @@ public:
|
|||||||
void convert_clifo_privati();
|
void convert_clifo_privati();
|
||||||
void convert_pcon_ivd();
|
void convert_pcon_ivd();
|
||||||
void convert_profile(const char * profile_name);
|
void convert_profile(const char * profile_name);
|
||||||
|
void convert_conai_righe();
|
||||||
|
|
||||||
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {}
|
||||||
};
|
};
|
||||||
@ -359,10 +362,13 @@ bool TConversione_archivi::menu(MENU_TAG)
|
|||||||
case 23:
|
case 23:
|
||||||
convert_profile(argv(2));
|
convert_profile(argv(2));
|
||||||
break;
|
break;
|
||||||
|
case 24:
|
||||||
|
convert_conai_righe();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -2176,6 +2182,63 @@ void TConversione_archivi::convert_profile(const char* profile_name)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Converte le righe documento in modo da riassegnare i campi CONAI
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void TConversione_archivi::convert_conai_righe()
|
||||||
|
{
|
||||||
|
//deve considerare tutte le righe documento che abbiano almeno uno tra codagg1 e codagg2 compilato
|
||||||
|
TString query;
|
||||||
|
query << "USE RDOC\n";
|
||||||
|
query << "SELECT (CODAGG1?=\"??\")||(CODAGG2?=\"????\")";
|
||||||
|
TISAM_recordset righedoc(query);
|
||||||
|
const long righedoc_items = righedoc.items();
|
||||||
|
|
||||||
|
TProgind pi(righedoc_items, "Ricostruzione righe CONAI...", false);
|
||||||
|
|
||||||
|
//ci vuole un TVariable_rectype perchè il TRectype non ha campi virtuali!
|
||||||
|
TVariable_rectype rdoc(LF_RIGHEDOC);
|
||||||
|
rdoc.set_memo_fld(RDOC_RG1);
|
||||||
|
for (bool ok = righedoc.move_first(); ok; ok = righedoc.move_next())
|
||||||
|
{
|
||||||
|
//deve prendere dalla riga il valore di codagg2 e confrontarlo con una delle nuove sottocategorie conai
|
||||||
|
pi.addstatus(1);
|
||||||
|
rdoc = righedoc.cursor()->curr();
|
||||||
|
TString4 codagg2 = rdoc.get(RDOC_CODAGG2);
|
||||||
|
TString4 codagg1 = rdoc.get(RDOC_CODAGG1);
|
||||||
|
//se codagg2 non è 4 caratteri o è cazzato (<4) oppure non c'entra un cavolo (>4); quindi deve considerare..
|
||||||
|
//..codagg1; se codagg1 è lungo 2 va bene lui
|
||||||
|
if (codagg2.len() < 4 && codagg1.len() == 2)
|
||||||
|
{
|
||||||
|
codagg2 = codagg1;
|
||||||
|
codagg2 << "99";
|
||||||
|
}
|
||||||
|
//per prima cosa sistema i codici categoria
|
||||||
|
//quale è la classe conai? (plastica,carta,vetro,ecc.??)
|
||||||
|
const TCONAI_class cc = conai_str2class(codagg2);
|
||||||
|
//come si chiama il campo virtuale su rdoc in cui anrà inserito il codice categoria?
|
||||||
|
const char* csn = conai_sottocat_name(cc);
|
||||||
|
//noto il campo di destinazione ci mette il codice corretto
|
||||||
|
rdoc.put(csn, codagg2);
|
||||||
|
rdoc.zero(RDOC_CODAGG1);
|
||||||
|
rdoc.zero(RDOC_CODAGG2);
|
||||||
|
|
||||||
|
//adesso tocca ai pesi conai
|
||||||
|
real qtagg1 = rdoc.get_real(RDOC_QTAGG1);
|
||||||
|
//la classe è sempre quella di prima;il campo virtuale no
|
||||||
|
const char* cpn = conai_peso_name(cc);
|
||||||
|
//noto il campo di destinazione ci mette il peso conai
|
||||||
|
rdoc.put(cpn, qtagg1);
|
||||||
|
rdoc.zero(RDOC_QTAGG1);
|
||||||
|
|
||||||
|
//scrittura finale del record
|
||||||
|
TLocalisamfile f(LF_RIGHEDOC);
|
||||||
|
int err = rdoc.rewrite(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Programma di conversione archivi speciale
|
// Programma di conversione archivi speciale
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user