Patch level :2.2 182
Files correlati :cacnv.exe Ricompilazione Demo : [ ] Commento : prima stesura funzionante del programma di conversione alla contabilita' anal-itica (da tabelle cms e fsc ai files 147 148) git-svn-id: svn://10.65.10.50/trunk@12542 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
c65b49d76e
commit
f42f0d3dea
157
ca/cacnv.cpp
Executable file
157
ca/cacnv.cpp
Executable file
@ -0,0 +1,157 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <relation.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <utility.h>
|
||||||
|
|
||||||
|
#define usage "Errore - uso : cacnv [1|2] ditta"
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------
|
||||||
|
// APPLICAZIONE
|
||||||
|
//----------------------------------------------------------
|
||||||
|
|
||||||
|
class TConversione_cm2ca : public TSkeleton_application
|
||||||
|
{
|
||||||
|
|
||||||
|
int _nconv;
|
||||||
|
long _codditta;
|
||||||
|
long _oldditta;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void main_loop();
|
||||||
|
|
||||||
|
public:
|
||||||
|
bool convert_clerks();
|
||||||
|
bool convert_phases();
|
||||||
|
|
||||||
|
TConversione_cm2ca() : _oldditta(0), _codditta(0) {}
|
||||||
|
~TConversione_cm2ca() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
//gestione del menu (vari tipi di conversione)
|
||||||
|
void TConversione_cm2ca::main_loop()
|
||||||
|
{
|
||||||
|
_nconv = 0;
|
||||||
|
if (argc() > 2)
|
||||||
|
{
|
||||||
|
_nconv = abs(atoi(argv(1)));
|
||||||
|
if (_nconv > 0) //se ha una chiamata valida di menu...
|
||||||
|
{
|
||||||
|
_oldditta = get_firm();
|
||||||
|
_codditta = atol(argv(2));
|
||||||
|
if (_codditta != _oldditta)
|
||||||
|
{
|
||||||
|
if (_codditta == 0)
|
||||||
|
error_box(TR("Selezionare una ditta"));
|
||||||
|
else
|
||||||
|
set_firm(_codditta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (_nconv)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
if (_codditta > 0)
|
||||||
|
convert_clerks(); //da tabella cms a commesse
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
if (_codditta > 0)
|
||||||
|
convert_phases(); //da tabella fsc a fasi
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_nconv > 1 && _codditta != _oldditta)
|
||||||
|
{
|
||||||
|
if (_oldditta == 0)
|
||||||
|
prefix().set("com");
|
||||||
|
else
|
||||||
|
set_firm(_oldditta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TConversione_cm2ca::convert_clerks()
|
||||||
|
{
|
||||||
|
TLocalisamfile commesse(LF_COMMESSE); //la conversione blocca in automatico gli altri utenti
|
||||||
|
//non e' necessario un TSystemisamfile con _excllock
|
||||||
|
const long items = commesse.items();
|
||||||
|
//trasferimento dati possibile solo se il file di destinazione e' vuoto
|
||||||
|
if (items > 0)
|
||||||
|
return error_box(TR("File delle commesse non vuoto!"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TRelation relcms("CMS");
|
||||||
|
TCursor curcms(&relcms);
|
||||||
|
const TRectype& cms = relcms.curr();
|
||||||
|
const long nrectab = curcms.items();
|
||||||
|
curcms.freeze();
|
||||||
|
TRectype& commesse_rec = commesse.curr();
|
||||||
|
TProgind pi(nrectab, "Conversione tabella commesse");
|
||||||
|
for (curcms = 0; curcms.pos() < nrectab; ++curcms)
|
||||||
|
{
|
||||||
|
pi.addstatus(1);
|
||||||
|
commesse_rec.zero(); //azzerare il record prima di cominciare...
|
||||||
|
commesse_rec.put("CODCMS", cms.get("CODTAB"));
|
||||||
|
commesse_rec.put("DESCRIZ", cms.get("S0"));
|
||||||
|
commesse_rec.put("CODCF", cms.get("I0"));
|
||||||
|
commesse_rec.put("REGIVA", cms.get("S7"));
|
||||||
|
commesse_rec.put("PRORATA", cms.get("B4"));
|
||||||
|
commesse_rec.put("PUBBLICA", cms.get("B0"));
|
||||||
|
commesse_rec.put("RENDIC", cms.get("B1"));
|
||||||
|
commesse_rec.put("DATAINIZIO", cms.get("D0"));
|
||||||
|
commesse_rec.put("DATAFINE", cms.get("D1"));
|
||||||
|
commesse_rec.put("CHIUSA", cms.get("B3"));
|
||||||
|
commesse_rec.put("PROROGA", cms.get("B2"));
|
||||||
|
commesse_rec.put("CODRESP", cms.get("S4"));
|
||||||
|
|
||||||
|
commesse.write();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TConversione_cm2ca::convert_phases()
|
||||||
|
{
|
||||||
|
TLocalisamfile fasi(LF_FASI);
|
||||||
|
const long items = fasi.items();
|
||||||
|
if (items > 0)
|
||||||
|
return error_box(TR("File delle fasi non vuoto!"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TRelation relfsc("FSC");
|
||||||
|
TCursor curfsc(&relfsc);
|
||||||
|
const TRectype& fsc = relfsc.curr();
|
||||||
|
const long nrectab = curfsc.items();
|
||||||
|
curfsc.freeze();
|
||||||
|
TRectype& fasi_rec = fasi.curr();
|
||||||
|
TProgind pi(nrectab, "Conversione tabella fasi");
|
||||||
|
for (curfsc = 0; curfsc.pos() < nrectab; ++curfsc)
|
||||||
|
{
|
||||||
|
pi.addstatus(1);
|
||||||
|
fasi_rec.zero();
|
||||||
|
fasi_rec.put("CODFASE", fsc.get("CODTAB"));
|
||||||
|
fasi_rec.put("DESCRIZ", fsc.get("S0"));
|
||||||
|
fasi.write();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// Programma di conversione da CM a CA
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
int main(int argc,char** argv)
|
||||||
|
{
|
||||||
|
TConversione_cm2ca a;
|
||||||
|
a.run(argc,argv, "Trasferimento dati tabelle CM");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
151
|
151
|
||||||
5
|
5
|
||||||
TIPO|1|3|0|<CDC> Coento di costo, <CMS> Commessa
|
TIPO|1|3|0|<CDC> Centro di costo, <CMS> Commessa
|
||||||
COD|1|20|0|Centro di costo/commessa
|
COD|1|20|0|Centro di costo/commessa
|
||||||
NRIGA|1|3|0|Numero riga
|
NRIGA|1|3|0|Numero riga
|
||||||
CODRIP|1|4|0|Codice Ripartizione
|
CODRIP|1|4|0|Codice Ripartizione
|
||||||
|
Loading…
x
Reference in New Issue
Block a user