Aggiunta gestione Codice articolo in analitica per facilitare collegamento ad industriale

git-svn-id: svn://10.65.10.50/branches/R_10_00@22876 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-06-20 13:27:21 +00:00
parent 2674c09263
commit ecde331bed
12 changed files with 113 additions and 30 deletions

View File

@ -8,7 +8,7 @@ int main(int argc, char** argv)
switch (r)
{
// case 1: ca0200(argc,argv); break; // stampa tabelle
case 2: ca0300(argc,argv); break; // parametri configurazione Contabilita' Analitica
case 2: ca0300(argc,argv); break; // parametri configurazione Contabilità Analitica
case 3: ca0400(argc,argv); break; // immissione piano dei conti
case 4: ca0500(argc,argv); break; // gestione centri di costo
case 5: ca0600(argc,argv); break; // gestione commesse

View File

@ -414,11 +414,11 @@ void TRiparti_app::write_rows()
if (mf.field() != NULL)
{
const int idx = sheet.cid2index(mf.dlg());
if (idx < 17)
if (idx >= 0 && idx <= 17)
mf.field()->write(row->get(idx), rec);
}
}
if ( has_tot)
if (has_tot)
diff -= rec.get_real(RRIP_RIPARTO);
}
if (has_tot && !_msk->get_real(F_DIFFERENZA).is_zero())
@ -454,7 +454,7 @@ void TRiparti_app::read_rows()
if (mf.field() != NULL)
{
const int idx = sheet.cid2index(mf.dlg());
if (idx < 17)
if (idx >= 0 && idx <= 17)
row.add(mf.field()->read(rec), idx);
}
}

View File

@ -213,13 +213,13 @@ END
NUMBER F_SOMMA 15 5
BEGIN
PROMPT 26 3 "Somma "
PROMPT 27 3 "Somma "
FLAGS "D"
END
NUMBER F_DIFFERENZA 15 5
BEGIN
PROMPT 48 3 "Differenza "
PROMPT 51 3 "Differenza "
FLAGS "D"
END
@ -243,11 +243,12 @@ BEGIN
ITEM "Con2"
ITEM "Con3"
ITEM "Con4"
ITEM "Articolo@20"
END
BUTTON F_GENFASI 40 2
BUTTON F_GENFASI 60 2
BEGIN
PROMPT 0 -1 "Ripartisci la commessa di origine tra le sue fasi"
PROMPT -11 -1 "Ripartire la commessa d'origine tra le sue fasi"
END
ENDPAGE
@ -384,6 +385,20 @@ BEGIN
GROUP 1
END
STRING 118 20
BEGIN
PROMPT 1 16 "Articolo "
USE LF_ANAMAG
INPUT CODART 118
DISPLAY "Codice@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT 118 CODART
CHECKTYPE NORMAL
ADD RUN ve2 -3
FIELD CODART
END
ENDPAGE
TOOLBAR "topbar" 0 0 0 2

View File

@ -1,4 +1,6 @@
#include <defmask.h>
#include <execp.h>
#include <modaut.h>
#include <postman.h>
#include <recset.h>
@ -8,16 +10,17 @@
#include "../cg/cglib01.h"
#include <causali.h>
#include <mov.h>
#include <rmov.h>
#include "cdc.h"
#include "commesse.h"
#include "fasi.h"
#include "movana.h"
#include "rmovana.h"
#include "rrip.h"
#include "saldana.h"
#include "cdc.h"
#include "commesse.h"
#include "fasi.h"
class TMovanal_msk : public TAutomask
@ -31,7 +34,6 @@ class TMovanal_msk : public TAutomask
short _pcon_start;
short _pcon_end;
TCache_ripartizioni _cache_rip;
protected:
@ -144,15 +146,18 @@ void TMovanal_msk::show_locked_buttons()
TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip)
{
TSheet_field& sheet = sfield(F_RIGHE);
const bool ci = app().has_module(CIAUT);
TToken_string keyrip;
keyrip.add(rrip.get(RRIP_CODCOSTO));
keyrip.add(rrip.get(RRIP_CODCMS));
keyrip.add(rrip.get(RRIP_CODFASE));
keyrip.add(rrip.get(RRIP_CODCONTO));
if (ci)
keyrip.add(rrip.get(RRIP_CODART));
TRectype rmov(LF_RMOVANA);
TSheet_field& sheet = sfield(F_RIGHE);
const int totrows = sheet.items();
if (totrows > 0)
{
@ -165,6 +170,8 @@ TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip)
keyrow.add(rmov.get(RMOVANA_CODCMS));
keyrow.add(rmov.get(RMOVANA_CODFASE));
keyrow.add(rmov.get(RMOVANA_CODCONTO));
if (ci)
keyrow.add(rmov.get(RMOVANA_CODART));
if (keyrow == keyrip)
return sheet.row(i); // Ho trovato una riga compatibile
}
@ -176,6 +183,8 @@ TToken_string& TMovanal_msk::get_rip_row(const TRectype& rrip)
rmov.put(RMOVANA_CODCMS, keyrip.get());
rmov.put(RMOVANA_CODFASE, keyrip.get());
rmov.put(RMOVANA_CODCONTO, keyrip.get());
if (ci)
rmov.put(RMOVANA_CODART, keyrip.get());
TToken_string& row = rec2row(rmov, -1);
return row;
}
@ -186,15 +195,14 @@ void TMovanal_msk::split_cg_row(const TRectype& row, const TAnal_ripartizioni_ba
TGeneric_distrib distrib(row.get_real(RMV_IMPORTO), TCurrency::get_firm_dec());
// Calcolo tutte le percentuali da ripartire
int i;
for (i = 1; i <= rrip.rows(); i++)
for (int i = 1; i <= rrip.rows(); i++)
{
const real quota = rrip[i].get_real(RRIP_RIPARTO);
distrib.add(quota);
}
TString80 desc; // Variabile di appoggio per descrizione riga
for (i = 1; i <= rrip.rows(); i++)
for (int i = 1; i <= rrip.rows(); i++)
{
TToken_string& riga = get_rip_row(rrip[i]); // Cerca o crea la riga cui sommare la quota
TImporto impriga; row2imp(riga, impriga); // Legge l'importo della riga
@ -984,7 +992,7 @@ void TMovanal_msk::create_sheet()
TConfig& ini = ca_config();
const bool fsc_req = ini.get_bool("FscRequired");
int y = 3;
int y = 4;
short dlg = S_CDC1+100; // id del primo campo da generare
_cdc_start = _cdc_end = -1;
_cms_start = _cms_end = -1;
@ -1044,6 +1052,14 @@ void TMovanal_msk::create_sheet()
sf.delete_column(id);
}
}
if (!main_app().has_module(CIAUT))
{
hide(S_CODART);
hide(S_DESCART);
sf.delete_column(S_CODART);
sf.delete_column(S_DESCART);
}
}
@ -1091,8 +1107,25 @@ void TMovanal_app::write_rows(const TMask& m)
TRectype& rec = mov.new_row(); // Crea una riga nuova
_msk->row2rec(i, rec);
} //FOR_EACH_SHEET...
if (has_module(CIAUT))
{
const TRectype& caus = cache().get(LF_CAUSALI, m.get(F_CODCAUS));
if (caus.get_bool(CAU_MOVCGIND))
{
TFilename n; n.tempdir(); n.add("mov_caci.ini");
n.fremove();
if (n.full()) // dummy test
{
TConfig cini(n, "105");
mask2ini(m, cini);
}
TString cmd; cmd << "ci0 -6 -i" << n;
TExternal_app ci0(cmd);
ci0.run();
}
}
}
void TMovanal_app::read_rows(const TMask& m)

View File

@ -47,7 +47,9 @@
#define S_CON2 117
#define S_CON3 118
#define S_CON4 119
#define S_CDC_ORI 120
#define S_CMS_ORI 121
#define S_FAS_ORI 122
#define S_CON_ORI 123
#define S_CODART 120
#define S_DESCART 121
#define S_CDC_ORI 122
#define S_CMS_ORI 123
#define S_FAS_ORI 124
#define S_CON_ORI 125

View File

@ -44,6 +44,7 @@ BEGIN
DISPLAY "Data comp.@10" DATACOMP
DISPLAY "Eser." ANNOES
DISPLAY "P. nota" NUMREGCG
DISPLAY "Caus." CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_NUMREG NUMREG
CHECKTYPE REQUIRED
@ -103,6 +104,7 @@ BEGIN
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Industriale@C" MOVCGIND
OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCAUS DESCR
CHECKTYPE REQUIRED
@ -118,6 +120,7 @@ BEGIN
INPUT DESCR F_DESCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS
DISPLAY "Industriale@C" MOVCGIND
COPY OUTPUT F_CODCAUS
CHECKTYPE REQUIRED
GROUP 5
@ -281,6 +284,8 @@ BEGIN
ITEM "Con 2"
ITEM "Con 3"
ITEM "Con 4"
ITEM "Articolo@20"
ITEM "Descrizione@30"
ITEM "Cdc.Orig."
ITEM "Cms.Orig."
ITEM "Fase Orig."
@ -306,7 +311,7 @@ END
BUTTON DLG_USER 10 2
BEGIN
PROMPT -24 -1 "Ripartisce"
PROMPT -24 -1 "Ripartizione"
PICTURE TOOL_MULTISEL
END
@ -326,20 +331,44 @@ PAGE "Riga" 0 2 0 0
CURRENCY S_DARE 15
BEGIN
PROMPT 1 1 "Dare "
PROMPT 8 0 "Dare "
END
CURRENCY S_AVERE 15
BEGIN
PROMPT 31 1 "Avere "
PROMPT 42 0 "Avere "
END
STRING S_DESCR 50
BEGIN
PROMPT 1 2 "Descrizione "
PROMPT 1 1 "Descrizione "
FIELD DESCR
END
STRING S_CODART 20
BEGIN
PROMPT 1 2 "Articolo "
USE LF_ANAMAG
INPUT CODART S_CODART
DISPLAY "Codice@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT S_CODART CODART
OUTPUT S_DESCART DESCR
CHECKTYPE NORMAL
FIELD CODART
END
STRING S_DESCART 50 35
BEGIN
PROMPT 38 2 ""
USE LF_ANAMAG KEY 2
INPUT DESCR S_DESCART
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice@20" CODART
COPY OUTPUT S_CODART
CHECKTYPE NORMAL
END
STRING S_CDC1 20
BEGIN
PROMPT 1 4 "Cdc 1"

View File

@ -1,3 +1,3 @@
108
0
$rmovana|0|0|233|0|Righe Movimenti di Analitica|||
$rmovana|0|0|253|0|Righe Movimenti di Analitica|||

View File

@ -1,5 +1,5 @@
108
16
17
ANNOES|9|4|0|Anno di Esercizio
NUMREG|3|7|0|Numero di Registrazione
NUMRIG|2|3|0|Numero riga
@ -9,6 +9,7 @@ CODCCOSTO|1|20|0|Codice centro di costo
CODCMS|1|20|0|Codice commessa
CODFASE|1|10|0|Codice fase
CODCONTO|1|20|0|Codice Conto Analitica
CODART|1|20|0|Codice Articolo Industriale
DESCR|1|50|0|Descrizione
IMPORTO|4|18|3|Importo della riga
ROWTYPE|1|1|0|Tipo Riga

View File

@ -1,3 +1,3 @@
150
0
$rrip|0|0|98|0|Archivio righe di ripartizione analitica|||
$rrip|0|0|118|0|Archivio righe di ripartizione analitica|||

View File

@ -1,5 +1,5 @@
150
8
9
TIPO|1|1|0|Tipo Ripartizione (<I>nterattiva, <B>atch)
CODICE|1|8|0|Codice ripartizione
NRIGA|2|3|0|Numero riga
@ -8,5 +8,6 @@ CODCMS|1|20|0|Codice commessa
CODFASE|1|10|0|Codice fase
CODCONTO|1|20|0|Codice Conto analitica
RIPARTO|4|15|5|Ripartizione
CODART|1|20|0|Codice articolo (industriale)
1
TIPO+CODICE+NRIGA|

View File

@ -10,6 +10,7 @@
#define RMOVANA_CODCMS "CODCMS"
#define RMOVANA_CODFASE "CODFASE"
#define RMOVANA_CODCONTO "CODCONTO"
#define RMOVANA_CODART "CODART"
#define RMOVANA_DESCR "DESCR"
#define RMOVANA_IMPORTO "IMPORTO"
#define RMOVANA_ROWTYPE "ROWTYPE"

View File

@ -8,6 +8,7 @@
#define RRIP_CODCMS "CODCMS"
#define RRIP_CODFASE "CODFASE"
#define RRIP_CODCONTO "CODCONTO"
#define RRIP_CODART "CODART"
#define RRIP_RIPARTO "RIPARTO"
#endif