Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :aggiunta fase alle ripartizioni git-svn-id: svn://10.65.10.50/trunk@16609 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cb186ad011
commit
abb57ee779
@ -7,6 +7,7 @@
|
||||
#include "calib01.h"
|
||||
|
||||
#include "fasi.h"
|
||||
#include "rip.h"
|
||||
#include "rrip.h"
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -232,7 +233,7 @@ TRiparti_msk::TRiparti_msk() : TAutomask("ca0800a")
|
||||
TConfig& ini = ca_config();
|
||||
|
||||
// Crea gli eventuali campi per commessa e centro di costo
|
||||
|
||||
const TMultilevel_code_info& fasinfo = ca_multilevel_code_info(LF_FASI);
|
||||
int y = 11;
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
@ -246,8 +247,33 @@ TRiparti_msk::TRiparti_msk() : TAutomask("ca0800a")
|
||||
} else
|
||||
if (level == "CMS") // Crea commessa
|
||||
{
|
||||
h = ca_create_fields(*this, 0, LF_COMMESSE, 2, y, F_CODCMS_1, F_DESCMS_1);
|
||||
prompt = TR("@bCommessa");
|
||||
if (fasinfo.parent() == LF_COMMESSE)
|
||||
{
|
||||
h = ca_create_fields(*this, 0, LF_FASI, 2, y, F_CODCMS_1, F_DESCMS_1);
|
||||
prompt = TR("@bCommessa/Fase");
|
||||
|
||||
const TMultilevel_code_info& cmsinfo = ca_multilevel_code_info(LF_COMMESSE);
|
||||
const int cmslevels = cmsinfo.levels();
|
||||
for (int j = 0; j < cmslevels; j++)
|
||||
{
|
||||
TEdit_field& cfld = efield(F_CODCMS_1+j);
|
||||
const TFieldref& fr = cmsinfo.fieldref(j);
|
||||
TString80 str = RIP_CODCMS;
|
||||
if (cmslevels > 1)
|
||||
str.format("%s[%d,%d]", RIP_CODCMS, fr.from()+1, fr.to());
|
||||
cfld.set_field(str);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
h = ca_create_fields(*this, 0, LF_COMMESSE, 2, y, F_CODCMS_1, F_DESCMS_1);
|
||||
prompt = TR("@bCommessa");
|
||||
}
|
||||
} else
|
||||
if (level == "FSC" && fasinfo.parent() <= 0)
|
||||
{
|
||||
h = ca_create_fields(*this, 0, LF_FASI, 2, y, F_CODCMS_1, F_DESCMS_1);
|
||||
prompt = TR("@bFase");
|
||||
}
|
||||
|
||||
if (prompt != NULL) // Crea groupbox
|
||||
|
@ -1,10 +1,11 @@
|
||||
#include "ca0800a.h"
|
||||
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
#include <toolbar.h>
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
#include <relapbar.h>
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Ripartizioni" -1 -1 64 6
|
||||
PAGE "Ripartizioni" 0 0 0 2
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
@ -55,6 +56,7 @@ BEGIN
|
||||
DISPLAY "Codice@8 " CODICE
|
||||
DISPLAY "Costo@20" CODCOSTO
|
||||
DISPLAY "Commessa@20" CODCMS
|
||||
DISPLAY "Fase@10" CODFASE
|
||||
DISPLAY "Descrizione@50" DESCRIZ
|
||||
OUTPUT F_CODICE_B CODICE
|
||||
OUTPUT F_DESCRIZ_B DESCRIZ
|
||||
@ -91,6 +93,7 @@ BEGIN
|
||||
DISPLAY "Codice " CODICE
|
||||
DISPLAY "Costo@20" CODCOSTO
|
||||
DISPLAY "Commessa@20" CODCMS
|
||||
DISPLAY "Fase@10" CODFASE
|
||||
COPY OUTPUT F_CODICE_B
|
||||
FIELD DESCRIZ
|
||||
KEY 2
|
||||
|
@ -1,12 +1,12 @@
|
||||
#include "ca2100a.h"
|
||||
|
||||
TOOLBAR "" 0 -3 0 3
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
#include <toolbar.h>
|
||||
#include <relapbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Testata" -1 -1 80 20
|
||||
PAGE "Testata" 0 0 0 2
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
|
@ -147,8 +147,8 @@ bool TRib_movanal_app::explode_rows(const TRecord_array& input_rows, TRecord_arr
|
||||
const TRectype& rec = input_rows.row(r);
|
||||
TAnal_bill zio(rec);
|
||||
const int rmovana_indbil = zio.indicatore_bilancio();
|
||||
const TAnal_ripartizioni_batch& rrip = _cache_rip.righe(rec.get(RMOVANA_CODCCOSTO),
|
||||
rec.get(RMOVANA_CODCMS), annoes, rmovana_indbil, tipomov);
|
||||
const TAnal_ripartizioni_batch& rrip = _cache_rip.righe(rec.get(RMOVANA_CODCCOSTO), rec.get(RMOVANA_CODCMS),
|
||||
rec.get(RMOVANA_CODFASE), annoes, rmovana_indbil, tipomov);
|
||||
//ci sono righe di ripartizione
|
||||
const int righe_ripartizione = rrip.rows();
|
||||
bool ripartisci = righe_ripartizione > 0;
|
||||
|
@ -1,13 +1,7 @@
|
||||
#include "ca2200a.h"
|
||||
#include "camask.h"
|
||||
|
||||
TOOLBAR "" 0 -3 0 3
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 9 0 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
@ -29,7 +23,17 @@ END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Ripartizione movimenti" 0 0 64 12
|
||||
TOOLBAR "" 0 -2 0 2
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 9 -11 "Profilo "
|
||||
PSELECT
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Ripartizione movimenti" 0 0 0 2
|
||||
|
||||
GROUPBOX DLG_NULL 78 4
|
||||
BEGIN
|
||||
|
@ -22,7 +22,14 @@
|
||||
<field border="1" x="1" y="3" type="Linea" width="169" height="0" pattern="1" />
|
||||
<field x="43" y="2" type="Testo" align="center" width="6" id="3" pattern="1" text="Fase" />
|
||||
<field x="50.5" y="2" type="Testo" align="center" width="6" id="4" pattern="1" text="CdC" />
|
||||
<field x="56" y="2" type="Testo" align="center" width="6" id="5" pattern="1" text="% Av." />
|
||||
<field x="56" y="2" type="Array" align="center" width="7" id="5" pattern="1">
|
||||
<source>TIPOSTIMA</source>
|
||||
<list>
|
||||
<li Value="% Av." Code="T" />
|
||||
<li Value="% Ric." Code="C" />
|
||||
<li Value="% Ric." Code="R" />
|
||||
</list>
|
||||
</field>
|
||||
<field x="61" y="2" type="Testo" align="right" width="13" id="69" pattern="1" text="Testata" />
|
||||
<field x="1" y="2" type="Testo" width="15" id="121" pattern="1" text="Commessa" />
|
||||
<field x="75" y="1" type="Stringa" valign="bottom" align="right" width="13" height="2" id="169" pattern="1">
|
||||
|
@ -1567,48 +1567,49 @@ int TAnal_ripartizioni_batch::read (const char* codice)
|
||||
}
|
||||
|
||||
int TAnal_ripartizioni_batch::read_rip_4(TLocalisamfile& rip, const char* codcosto, const char* commessa,
|
||||
const int annoes, const int indbil, const int classe_mov) const
|
||||
const char* fase, const int annoes, const int indbil, const int classe_mov) const
|
||||
{
|
||||
rip.put(RIP_TIPO, "B"); //solo tipi batch!
|
||||
rip.put(RIP_CODCOSTO, codcosto);
|
||||
rip.put(RIP_CODCMS, commessa);
|
||||
rip.put(RIP_CODFASE, fase);
|
||||
rip.put(RIP_ANNOES, annoes);
|
||||
rip.put(RIP_INDBIL, indbil);
|
||||
rip.put(RIP_CLASSEMOV, classe_mov);
|
||||
return rip.read();
|
||||
}
|
||||
|
||||
int TAnal_ripartizioni_batch::read (const char* codcosto, const char* commessa,
|
||||
int TAnal_ripartizioni_batch::read (const char* codcosto, const char* commessa, const char* fase,
|
||||
const int annoes, const int indbil, const int classe_mov)
|
||||
{
|
||||
CHECKD(classe_mov > 0, "Classe movimento non valida ", classe_mov);
|
||||
TLocalisamfile rip(LF_RIP);
|
||||
rip.setkey(4);
|
||||
|
||||
int err = read_rip_4(rip, codcosto, commessa, annoes, indbil, classe_mov);
|
||||
int err = read_rip_4(rip, codcosto, commessa, fase, annoes, indbil, classe_mov);
|
||||
if (err != NOERR)
|
||||
err = read_rip_4(rip, codcosto, commessa, annoes, indbil, 0);
|
||||
//la put va rifatta la put perche' potrebbe essersi spostato al record successivo!!!
|
||||
err = read_rip_4(rip, codcosto, commessa, fase, annoes, indbil, 0);
|
||||
//la put va rifatta perche' potrebbe essersi spostato al record successivo!!!
|
||||
//se fallisce il primo tentativo prova con lo stesso anno e indbil=0
|
||||
if (err != NOERR && indbil != 0)
|
||||
{
|
||||
err = read_rip_4(rip, codcosto, commessa, annoes, 0, classe_mov);
|
||||
err = read_rip_4(rip, codcosto, commessa, fase, annoes, 0, classe_mov);
|
||||
if (err != NOERR)
|
||||
err = read_rip_4(rip, codcosto, commessa, annoes, 0, 0);
|
||||
err = read_rip_4(rip, codcosto, commessa, fase, annoes, 0, 0);
|
||||
}
|
||||
//se fallisce ancora riprova con anno=0 e lo stesso indbil
|
||||
if (err != NOERR && annoes != 0)
|
||||
{
|
||||
err = read_rip_4(rip, codcosto, commessa, 0, indbil, classe_mov);
|
||||
err = read_rip_4(rip, codcosto, commessa, fase, 0, indbil, classe_mov);
|
||||
if (err != NOERR)
|
||||
err = read_rip_4(rip, codcosto, commessa, 0, indbil, 0);
|
||||
err = read_rip_4(rip, codcosto, commessa, fase, 0, indbil, 0);
|
||||
|
||||
//estremo tentativo con annoes e indbil = 0
|
||||
if (err != NOERR && indbil != 0)
|
||||
{
|
||||
err = read_rip_4(rip, codcosto, commessa, 0, 0, classe_mov);
|
||||
err = read_rip_4(rip, codcosto, commessa, fase, 0, 0, classe_mov);
|
||||
if (err != NOERR)
|
||||
err = read_rip_4(rip, codcosto, commessa, 0, 0, 0);
|
||||
err = read_rip_4(rip, codcosto, commessa, fase, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1700,11 +1701,12 @@ TObject* TCache_ripartizioni::key2obj(const char* key)
|
||||
{
|
||||
const TString80 codcosto = parametro.get(1);
|
||||
const TString80 commessa = parametro.get(2);
|
||||
const int anno = parametro.get_int(3);
|
||||
const int indbil = parametro.get_int(4);
|
||||
const int classe_mov = parametro.get_int(5);
|
||||
const TString16 fase = parametro.get(3);
|
||||
const int anno = parametro.get_int(4);
|
||||
const int indbil = parametro.get_int(5);
|
||||
const int classe_mov = parametro.get_int(6);
|
||||
|
||||
rip->read(codcosto, commessa, anno, indbil, classe_mov);
|
||||
rip->read(codcosto, commessa, fase, anno, indbil, classe_mov);
|
||||
}
|
||||
|
||||
if (rip->head().get_int(RIP_TIPORIP) == 1)
|
||||
@ -1755,7 +1757,7 @@ void TCache_ripartizioni::set_esercizio(const int codes)
|
||||
}
|
||||
}
|
||||
|
||||
const TAnal_ripartizioni_batch& TCache_ripartizioni::righe(const char* costo, const char* commessa,
|
||||
const TAnal_ripartizioni_batch& TCache_ripartizioni::righe(const char* costo, const char* commessa, const char* fase,
|
||||
const int annoes, const int indbil, const char tipomov)
|
||||
{
|
||||
//classi di movimento: se preventivi 2, se normali 1
|
||||
@ -1766,7 +1768,7 @@ const TAnal_ripartizioni_batch& TCache_ripartizioni::righe(const char* costo, co
|
||||
classe_movimento = 1;
|
||||
|
||||
TToken_string parametro;
|
||||
parametro << "4|" << costo << '|' << commessa << '|' << annoes << '|' << indbil << '|' << classe_movimento; //per chiave 4
|
||||
parametro << "4|" << costo << '|' << commessa << '|' << fase << '|' << annoes << '|' << indbil << '|' << classe_movimento; //per chiave 4
|
||||
return *(const TAnal_ripartizioni_batch*)objptr(parametro);
|
||||
}
|
||||
|
||||
|
@ -171,13 +171,13 @@ class TAnal_ripartizioni_batch : public TRecord_array
|
||||
private:
|
||||
int read_rip_3(TLocalisamfile& rip, const int gr, const int co, const long sot,
|
||||
const int annoes, const int indbil, const int classe_mov) const;
|
||||
int read_rip_4(TLocalisamfile& rip, const char* codcosto, const char* commessa,
|
||||
int read_rip_4(TLocalisamfile& rip, const char* codcosto, const char* commessa, const char* fase,
|
||||
const int annoes, const int indbil, const int classe_mov) const;
|
||||
public:
|
||||
const TRectype& head() const { return _rip; }
|
||||
int indbil() const;
|
||||
int read (const char* codice);
|
||||
int read (const char* codcosto, const char* commessa, const int annoes, const int indbil, const int classe_mov);
|
||||
int read (const char* codcosto, const char* commessa, const char* fase, const int annoes, const int indbil, const int classe_mov);
|
||||
int read (const int gr, const int co, const long sot, const int annoes, const int indbil, const int classe_mov);
|
||||
TAnal_ripartizioni_batch();
|
||||
};
|
||||
@ -196,7 +196,7 @@ protected:
|
||||
|
||||
public:
|
||||
void set_esercizio(const int codes);
|
||||
const TAnal_ripartizioni_batch& righe(const char* costo, const char* commessa,
|
||||
const TAnal_ripartizioni_batch& righe(const char* costo, const char* commessa, const char* fase,
|
||||
const int annoes, const int indbil, const char tipomov);
|
||||
const TAnal_ripartizioni_batch& righe(const TBill& bill, const int annoes, const char tipomov);
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
149
|
||||
0
|
||||
$rip|||119|0|Archivio tabelle di ripartizione analitica|||
|
||||
$rip|||129|0|Archivio tabelle di ripartizione analitica|||
|
||||
|
@ -1,5 +1,5 @@
|
||||
149
|
||||
12
|
||||
13
|
||||
TIPO|1|1|0|Tipo Ripartizione (<I>nterattiva, <B>atch)
|
||||
CODICE|1|8|0|Codice ripartizione
|
||||
GRUPPO|2|3|0|Gruppo
|
||||
@ -7,6 +7,7 @@ CONTO|2|3|0|Conto
|
||||
SOTTOCONTO|3|6|0|Sottoconto
|
||||
CODCOSTO|1|20|0|Codice centro di costo
|
||||
CODCMS|1|20|0|Codice commessa
|
||||
CODFASE|1|10|0|Codice fase
|
||||
DESCRIZ|1|50|0|Descrizione
|
||||
TIPORIP|1|1|0|Modalita' ripartizione (percentuale, quote, parti)
|
||||
ANNOES|9|4|0|Codice esercizio
|
||||
@ -16,4 +17,4 @@ CLASSEMOV|2|1|0|Classe movimento (0=tutti,1=normali e temp.,2=preventivi e varia
|
||||
TIPO+CODICE|
|
||||
TIPO+DESCRIZ|X
|
||||
TIPO+GRUPPO+CONTO+SOTTOCONTO+ANNOES+INDBIL+CLASSEMOV|X
|
||||
TIPO+CODCOSTO+CODCMS+ANNOES+INDBIL+CLASSEMOV|X
|
||||
TIPO+CODCOSTO+CODCMS+CODFASE+ANNOES+INDBIL+CLASSEMOV|X
|
||||
|
Loading…
x
Reference in New Issue
Block a user