Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : Aggiunta importazione record anagrafiche di magazzino git-svn-id: svn://10.65.10.50/trunk@6952 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7e6e33cc8f
commit
f4c915ae99
@ -14,6 +14,9 @@
|
||||
#include <cfven.h>
|
||||
#include <clifo.h>
|
||||
|
||||
#define CENTO 100.0
|
||||
#define CMILA 100000.0
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TMask36 Maschera principale di selezione
|
||||
///////////////////////////////////////////////////////////
|
||||
@ -94,6 +97,7 @@ public:
|
||||
void machedata(TFile_text& file, TRecord_text& curr, const char* field);
|
||||
void import_tables(const TFilename& name, TBrowsefile_field& bf);
|
||||
void import_clifo(const TFilename& name, TBrowsefile_field& bf);
|
||||
void import_anaart(const TFilename& name, TBrowsefile_field& bf);
|
||||
};
|
||||
|
||||
const TString& TTrasfer36::cap2com(const TString& cap, const TString& name) const
|
||||
@ -518,7 +522,6 @@ void TTrasfer36::import_clifo(const TFilename& name, TBrowsefile_field& bf)
|
||||
}
|
||||
break;
|
||||
default: break;// Ignored
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -529,6 +532,111 @@ void TTrasfer36::import_clifo(const TFilename& name, TBrowsefile_field& bf)
|
||||
bf.add_line("");
|
||||
}
|
||||
|
||||
void TTrasfer36::import_anaart(const TFilename& name, TBrowsefile_field& bf)
|
||||
{
|
||||
TString msg, des, codart, um;
|
||||
real r;
|
||||
msg = "Importazione Anagrafica articoli";
|
||||
TProgind pi(::fsize(name), msg, TRUE, TRUE);
|
||||
TFile_text file(name, "ibm36art.ini");
|
||||
long valid = 0;
|
||||
|
||||
msg.insert("@b", 0);
|
||||
bf.add_line(msg);
|
||||
bf.add_line("");
|
||||
TRelation rel(LF_ANAMAG);
|
||||
rel.add(LF_UMART,"CODART=CODART");
|
||||
|
||||
TRecord_text curr;
|
||||
while (file.read(curr) == NOERR)
|
||||
{
|
||||
pi.setstatus(file.read_file()->tellg());
|
||||
if (pi.iscancelled())
|
||||
break;
|
||||
|
||||
const int tipo_record = curr.type()[0] - '0';
|
||||
if (tipo_record == 0)
|
||||
{
|
||||
const char stato_record = file.get_field(curr, "ANNULLATO")[0];
|
||||
if (stato_record == 'A')
|
||||
continue;
|
||||
|
||||
des = file.get_field(curr, "DESCRIZIONE ARTICOLO");
|
||||
des << " ";
|
||||
des << file.get_field(curr, "ESTENSIONE DESCRIZIONE");
|
||||
des.strip_d_spaces();
|
||||
file.add_field(curr, "DESCRIZIONE ARTICOLO", des);
|
||||
|
||||
r = real(file.get_field(curr, "COSTO STANDARD")) / CENTO;
|
||||
file.add_field(curr, "COSTO STANDARD", r.string());
|
||||
|
||||
r = real(file.get_field(curr, "TARA")) / CENTO;
|
||||
file.add_field(curr, "TARA", r.string());
|
||||
|
||||
r = real(file.get_field(curr, "PESO")) / CENTO;
|
||||
file.add_field(curr, "PESO", r.string());
|
||||
|
||||
r = real(file.get_field(curr, "PERCENTUALE PROVVIGIONE")) / CENTO;
|
||||
file.add_field(curr, "PERCENTUALE PROVVIGIONE", r.string());
|
||||
|
||||
r = real(file.get_field(curr, "PERCENTUALE SCONTO")) / CENTO;
|
||||
file.add_field(curr, "PERCENTUALE SCONTO", r.string());
|
||||
|
||||
int err = file.autosave(rel, curr);
|
||||
if (err != NOERR)
|
||||
{
|
||||
msg = "! Errore di scrittura sul file LF_ANAMAG: ";
|
||||
msg << err;
|
||||
bf.add_line(msg);
|
||||
}
|
||||
else
|
||||
valid++;
|
||||
codart = file.get_field(curr, "CODICE PRIMARIO");
|
||||
TLocalisamfile& umart = rel.lfile(LF_UMART);
|
||||
|
||||
for (int nriga = 1; nriga <=3; nriga++)
|
||||
{
|
||||
umart.put("CODART",codart);
|
||||
umart.put("NRIGA",nriga);
|
||||
if (nriga == 1)
|
||||
{
|
||||
umart.put("FC", "1.00");
|
||||
um = file.get_field(curr,"UNITA DI MISURA");
|
||||
r = real(file.get_field(curr,"PREZZO VENDITA")) / CENTO;
|
||||
umart.put("PREZZO", r);
|
||||
}
|
||||
else
|
||||
if (nriga == 2)
|
||||
{
|
||||
r = real(file.get_field(curr, "COEFFICIENTE CONVERSIONE 2")) / CMILA;
|
||||
umart.put("FC", r);
|
||||
um = file.get_field(curr,"SECONDA UNITA DI MISURA");
|
||||
}
|
||||
else
|
||||
{
|
||||
r = real(file.get_field(curr, "COEFFICIENTE CONVERSIONE 3")) / CMILA;
|
||||
umart.put("FC", r);
|
||||
um = file.get_field(curr,"TERZA UNITA DI MISURA");
|
||||
}
|
||||
umart.put("UM", um);
|
||||
if (umart.write() != NOERR)
|
||||
err = umart.rewrite();
|
||||
if (err != NOERR)
|
||||
{
|
||||
msg.format("! Errore di scrittura sul file LF_UMART, articolo %s, UM %s: %d", (const char*) codart, (const char*) um, err);
|
||||
bf.add_line(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Messaggio finale di elaborazione
|
||||
msg = "Record importati: ";
|
||||
msg << valid;
|
||||
bf.add_line(msg);
|
||||
bf.add_line("");
|
||||
}
|
||||
|
||||
void TTrasfer36::main_loop()
|
||||
{
|
||||
TMask36 m;
|
||||
@ -550,6 +658,10 @@ void TTrasfer36::main_loop()
|
||||
if (name.not_empty())
|
||||
import_clifo(name, bf);
|
||||
|
||||
name = m.get(103);
|
||||
if (name.not_empty())
|
||||
import_anaart(name, bf);
|
||||
|
||||
vw.goto_top();
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,12 @@ BEGIN
|
||||
FSELECT ""
|
||||
END
|
||||
|
||||
STRING 103 50
|
||||
BEGIN
|
||||
PROMPT 1 3 "Ana.Art "
|
||||
FSELECT ""
|
||||
END
|
||||
|
||||
BROWSEFILE 201 -3 -1
|
||||
BEGIN
|
||||
PROMPT 0 4 ""
|
||||
|
178
ibm36/ibm36art.ini
Executable file
178
ibm36/ibm36art.ini
Executable file
@ -0,0 +1,178 @@
|
||||
[MAIN]
|
||||
TYPEPOS = 1
|
||||
TYPELEN = 1
|
||||
|
||||
[RECORD 0]
|
||||
LENGTH(0) = 1
|
||||
LENGTH(1) = 1
|
||||
LENGTH(2) = 19
|
||||
LENGTH(3) = 1
|
||||
LENGTH(4) = 19
|
||||
LENGTH(5) = 1
|
||||
LENGTH(6) = 19
|
||||
LENGTH(7) = 3
|
||||
LENGTH(8) = 2
|
||||
LENGTH(9) = 1
|
||||
LENGTH(10) = 1
|
||||
LENGTH(11) = 35
|
||||
LENGTH(12) = 35
|
||||
LENGTH(13) = 5
|
||||
LENGTH(14) = 19
|
||||
LENGTH(15) = 2
|
||||
LENGTH(16) = 2
|
||||
LENGTH(17) = 9
|
||||
LENGTH(18) = 2
|
||||
LENGTH(19) = 9
|
||||
LENGTH(20) = 2
|
||||
LENGTH(21) = 3
|
||||
LENGTH(22) = 3
|
||||
LENGTH(23) = 5
|
||||
LENGTH(24) = 5
|
||||
LENGTH(25) = 1
|
||||
LENGTH(26) = 1
|
||||
LENGTH(27) = 1
|
||||
LENGTH(28) = 1
|
||||
LENGTH(29) = 2
|
||||
LENGTH(30) = 11
|
||||
LENGTH(31) = 1
|
||||
LENGTH(32) = 1
|
||||
LENGTH(33) = 1
|
||||
LENGTH(34) = 2
|
||||
LENGTH(35) = 1
|
||||
LENGTH(36) = 6
|
||||
LENGTH(37) = 11
|
||||
LENGTH(38) = 1
|
||||
LENGTH(39) = 2
|
||||
LENGTH(40) = 7
|
||||
LENGTH(41) = 7
|
||||
LENGTH(42) = 2
|
||||
LENGTH(43) = 2
|
||||
LENGTH(44) = 11
|
||||
LENGTH(45) = 9
|
||||
LENGTH(46) = 5
|
||||
LENGTH(47) = 5
|
||||
LENGTH(48) = 1
|
||||
|
||||
NAME(0) = ANNULLATO
|
||||
NAME(1) = TIPO RECORD
|
||||
NAME(2) = CODICE PRIMARIO
|
||||
NAME(3) = SECONDO TIPO RECORD
|
||||
NAME(4) = CODICE ALTERNATIVO
|
||||
NAME(5) = TERZO TIPO RECORD
|
||||
NAME(6) = SECONDO CODICE ALTERNATIVO
|
||||
NAME(7) = CODICE LINEA
|
||||
NAME(8) = CODICE CATEGORIA
|
||||
NAME(9) = ARTICOLO DI PRODUZIONE
|
||||
NAME(10) = CLASSE FISCALE
|
||||
NAME(11) = DESCRIZIONE ARTICOLO
|
||||
NAME(12) = ESTENSIONE DESCRIZIONE
|
||||
NAME(13) = CODICE RAGGRUPPAMENTO FISCALE
|
||||
NAME(14) = CODICE GRUPPO ARTICOLI ALERNATIVI
|
||||
NAME(15) = UNITA DI MISURA
|
||||
NAME(16) = SECONDA UNITA DI MISURA
|
||||
NAME(17) = COEFFICIENTE CONVERSIONE 2
|
||||
NAME(18) = TERZA UNITA DI MISURA
|
||||
NAME(19) = COEFFICIENTE CONVERSIONE 3
|
||||
NAME(20) = CODICE IVA
|
||||
NAME(21) = CODICE CATEGORIA CONTABILE VENDITE
|
||||
NAME(22) = CODICE CATEGORIA CONTABILE ACQUISTI
|
||||
NAME(23) = PEZZI PER CONFEZIONE
|
||||
NAME(24) = PEZZI PER COLLO
|
||||
NAME(25) = ARTICOLO FISCALE
|
||||
NAME(26) = TIPO RIORDINO
|
||||
NAME(27) = AGGIORNAMENTO LISTINO
|
||||
NAME(28) = GESTIONE LOTTI
|
||||
NAME(29) = GRUPPO TAGLIE
|
||||
NAME(30) = COSTO STANDARD
|
||||
NAME(31) = FATTORE QTA UM1
|
||||
NAME(32) = FATTORE QTA UM2
|
||||
NAME(33) = FATTORE QTA UM3
|
||||
NAME(34) = CODICE UTENTE
|
||||
NAME(35) = STAMPA SUL LISTINO
|
||||
NAME(36) = FORNITORE PREFERENZIALE
|
||||
NAME(37) = PREZZO VENDITA NETTO
|
||||
NAME(38) = INDICATORE UM VENDITE
|
||||
NAME(39) = CODICE IVA RIDOTTA
|
||||
NAME(40) = TARA
|
||||
NAME(41) = PESO
|
||||
NAME(42) = ASPETTO BENI
|
||||
NAME(43) = GRUPPO ARTICOLO
|
||||
NAME(44) = PREZZO VENDITA
|
||||
NAME(45) = SEZIONE RAME
|
||||
NAME(46) = PERCENTUALE PROVVIGIONE
|
||||
NAME(47) = PERCENTUALE SCONTO
|
||||
NAME(48) = ARTICOLO IMPEGNATO
|
||||
|
||||
POSITION(0) = 0
|
||||
POSITION(1) = 1
|
||||
POSITION(2) = 2
|
||||
POSITION(3) = 21
|
||||
POSITION(4) = 22
|
||||
POSITION(5) = 41
|
||||
POSITION(6) = 42
|
||||
POSITION(7) = 61
|
||||
POSITION(8) = 64
|
||||
POSITION(9) = 66
|
||||
POSITION(10) = 67
|
||||
POSITION(11) = 68
|
||||
POSITION(12) = 103
|
||||
POSITION(13) = 138
|
||||
POSITION(14) = 143
|
||||
POSITION(15) = 162
|
||||
POSITION(16) = 164
|
||||
POSITION(17) = 166
|
||||
POSITION(18) = 175
|
||||
POSITION(19) = 177
|
||||
POSITION(20) = 186
|
||||
POSITION(21) = 188
|
||||
POSITION(22) = 191
|
||||
POSITION(23) = 194
|
||||
POSITION(24) = 199
|
||||
POSITION(25) = 204
|
||||
POSITION(26) = 205
|
||||
POSITION(27) = 206
|
||||
POSITION(28) = 207
|
||||
POSITION(29) = 208
|
||||
POSITION(30) = 210
|
||||
POSITION(31) = 221
|
||||
POSITION(32) = 222
|
||||
POSITION(33) = 223
|
||||
POSITION(34) = 224
|
||||
POSITION(35) = 226
|
||||
POSITION(36) = 227
|
||||
POSITION(37) = 233
|
||||
POSITION(38) = 244
|
||||
POSITION(39) = 245
|
||||
POSITION(40) = 247
|
||||
POSITION(41) = 254
|
||||
POSITION(42) = 261
|
||||
POSITION(43) = 263
|
||||
POSITION(44) = 265
|
||||
POSITION(45) = 276
|
||||
POSITION(46) = 285
|
||||
POSITION(47) = 290
|
||||
POSITION(48) = 295
|
||||
|
||||
FIELD(2) = CODART
|
||||
FIELD(4) = CODARTALT
|
||||
FIELD(7) = GRMERC[1,3]
|
||||
FIELD(8) = GRMERC[4,5]
|
||||
FIELD(9) = ARTPROD
|
||||
FIELD(10) = CLASSEFIS
|
||||
FIELD(11) = DESCR
|
||||
FIELD(13) = RAGGFIS
|
||||
FIELD(20) = CODIVA
|
||||
FIELD(21) = CATCONV
|
||||
FIELD(22) = CATCONA
|
||||
FIELD(23) = PPCONF
|
||||
FIELD(24) = PPCOLLO
|
||||
FIELD(25) = ARTFIS
|
||||
FIELD(26) = RIORDINO
|
||||
FIELD(30) = COSTSTD
|
||||
FIELD(36) = CODFORN
|
||||
FIELD(39) = CODIVAR
|
||||
FIELD(40) = TARA
|
||||
FIELD(41) = PESO
|
||||
FIELD(46) = PERCPROVV
|
||||
FIELD(47) = SCONTO
|
||||
|
Loading…
x
Reference in New Issue
Block a user