Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Aggiunta importazione dati per condizioni di
vendita: Listini/Contratti/Offerte (o Campagne)


git-svn-id: svn://10.65.10.50/trunk@6994 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1998-08-26 13:47:50 +00:00
parent 08cc30d1dd
commit 11f8358b10
4 changed files with 812 additions and 18 deletions

View File

@ -126,6 +126,7 @@ public:
void import_tables(const TFilename& name, TBrowsefile_field& bf);
void import_clifor(const TFilename& name, TBrowsefile_field& bf);
void import_anaart(const TFilename& name, TBrowsefile_field& bf);
void import_condv(const TFilename& name, TBrowsefile_field& bf);
void import_movmag(const TFilename& name, TBrowsefile_field& bf);
void import_rigmag(const TFilename& name, TBrowsefile_field& bf);
};
@ -234,7 +235,7 @@ void TTrasfer36::import_tables(const TFilename& name, TBrowsefile_field& bf)
break;
const TString& type = curr.type();
if (type == "A26")
if (type == "A26") // Tabella banche
{
const TString& ann = file.get_field(curr, "ANNULLATO");
if (ann != "A")
@ -327,6 +328,29 @@ void TTrasfer36::import_tables(const TFilename& name, TBrowsefile_field& bf)
}
}
}
else
if (type == "A11") // File testate listini
{
const TString& ann = file.get_field(curr, "ANNULLATO");
if (ann != "A")
{
file.add_field(curr, "TIPO", "L");
mettilavirgola(file, curr, "CAMBIO", 11, 5);
machedata(file, curr, "INIZIO VALIDITA");
machedata(file, curr, "FINE VALIDITA");
machedata(file, curr, "DATA CAMBIO");
// TBI: traduzione campo SEQRIC per la sequenza di ricerca
const int err = file.autosave(curr);
if (err != NOERR)
{
msg = "! Errore di scrittura sul file LF_CONDV: ";
msg << err;
bf.add_line(msg);
}
else
valid++;
}
}
}
_bankitalia.update();
@ -597,20 +621,11 @@ void TTrasfer36::import_anaart(const TFilename& name, TBrowsefile_field& bf)
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());
mettilavirgola(file, curr, "COSTO STANDARD", 11, 2);
mettilavirgola(file, curr, "TARA", 7, 2);
mettilavirgola(file, curr, "PESO", 7, 2);
mettilavirgola(file, curr, "PERCENTUALE PROVVIGIONE", 5, 2);
mettilavirgola(file, curr, "PERCENTUALE SCONTO", 5, 2);
int err = file.autosave(rel, curr);
if (err != NOERR)
@ -667,6 +682,245 @@ void TTrasfer36::import_anaart(const TFilename& name, TBrowsefile_field& bf)
bf.add_line("");
}
void TTrasfer36::import_condv(const TFilename& name, TBrowsefile_field& bf)
{
TString msg,des,cod;
msg = "Importazione Condizioni di vendita";
TProgind pi(::fsize(name), msg, TRUE, TRUE);
TFile_text file(name, "ibm36cvn.ini");
long valid = 0;
msg.insert("@b", 0);
bf.add_line(msg);
bf.add_line("");
TRelation rel(LF_RCONDV);
rel.add(LF_CONDV,"TIPO==TIPO|CATVEN==CATVEN|TIPOCF==TIPOCF|CODCF==CODCF|COD==COD");
TLocalisamfile& rcondv = rel.lfile();
TLocalisamfile& condv= rel.lfile(LF_CONDV);
TRecord_text curr;
while (file.read(curr) == NOERR)
{
pi.setstatus(file.read_file()->tellg());
if (pi.iscancelled())
break;
const char stato_record = file.get_field(curr, "ANNULLATO")[0];
if (stato_record == 'A') // ANNULLATO is always defined ;-)
continue;
const char tipo_record = curr.type()[0];
int err = NOERR;
file.add_field(curr, "TIPO ARCHIVIO", "A"); // E' sempre tipo <A>rticolo ??? waiting for Morena's call...
switch (tipo_record)
{
case 'A': // Righe listini. Non necessitano di scrittura testata
case 'B':
file.add_field(curr, "TIPO", "L"); // Sostituisce
if (tipo_record == 'A')
{
mettilavirgola(file, curr, "QTA LIMITE SCAGLIONE", 11, 3);
mettilavirgola(file, curr, "PREZZO VENDITA", 11, 2);
mettilavirgola(file, curr, "PERCENTUALE SCONTO", 5, 2);
mettilavirgola(file, curr, "PERCENTUALE PROVVIGIONE", 5, 2);
mettilavirgola(file, curr, "QTA MERCE SCONTATA", 9, 3);
// Scrive o aggiorna tranquillamente i record di tipo "A", se vi sono
// record omaggio vengono dopo, (cfr FLAG PRESENZA ARTICOLO OMAGGIO)
err = file.autosave(rel, curr);
}
else
{
mettilavirgola(file, curr, "PREZZO ARTICOLO OMAGGIO IN LIRE", 11, 2);
// Uff... in sto caso dobbiamo prima leggere il record corrispondente
// e se esiste assegnare solo i campi da aggiornare:
// CODARTOM CODLOTTO ADDIVA UMOM PROMAGGIO
rcondv.put("TIPO", "L");
rcondv.put("CATVEN", file.get_field(curr,"CATEGORIA VENDITE"));
rcondv.put("COD", file.get_field(curr,"CODICE LISTINO"));
rcondv.put("TIPORIGA", "A"); // See above... waiting for Morena's call ??
rcondv.put("CODRIGA", file.get_field(curr,"CHIAVE RIGA"));
rcondv.put("UM", file.get_field(curr,"UNITA MISURA"));
rcondv.put("NSCAGL", file.get_field(curr,"NUMERO SCAGLIONE"));
if (rcondv.read() == NOERR) // Se esiste il record lo aggiorna...
{
rcondv.put("CODARTOM", file.get_field(curr,"CODICE ARTICOLO OMAGGIO"));
rcondv.put("CODLOTTO", file.get_field(curr,"CODICE LOTTO"));
rcondv.put("ADDIVA", file.get_field(curr,"ADDEBITO IVA OMAGGIO"));
rcondv.put("UMOM", file.get_field(curr,"UM QTA IN OMAGGIO"));
rcondv.put("PROMAGGIO", file.get_field(curr,"PREZZO ARTICOLO OMAGGIO IN LIRE"));
rcondv.rewrite();
}
else
err = file.autosave(rel, curr); // Se non esiste lo scrive cosi' com'e'
}
if (err != NOERR)
{
msg = "! Errore di scrittura righe listini sul file LF_RCONDV: ";
msg << err;
bf.add_line(msg);
}
else
valid++;
break;
case 'C': // Righe campagne (offerte nel nostro caso)
case 'D':
file.add_field(curr, "TIPO", "O"); // Sostituisce
cod = file.get_field(curr,"CODICE");
if (tipo_record == 'C')
{
mettilavirgola(file, curr, "QTA LIMITE SCAGLIONE", 11, 3);
mettilavirgola(file, curr, "PREZZO NETTO", 11, 2);
mettilavirgola(file, curr, "PERCENTUALE SCONTO", 5, 2);
mettilavirgola(file, curr, "PERCENTUALE PROVVIGIONE", 5, 2);
mettilavirgola(file, curr, "QTA MERCE SCONTATA", 9, 3);
// Scrive o aggiorna tranquillamente i record di tipo "A": se vi sono
// record omaggio vengono dopo, (cfr FLAG PRESENZA ARTICOLO OMAGGIO)
err = file.autosave(rel, curr);
// Scrive la testata... ma solo se non esiste:
if (err == NOERR)
{
if (!rel.is_first_match(LF_CONDV)) // ... non esiste la testata?
{
des = "Offerta ";
des << cod;
condv.put("TIPO","O");
condv.put("CATVEN","");
condv.put("TIPOCF","");
condv.put("CODCF", "");
condv.put("COD",cod);
condv.put("DESCR", des);
condv.put("VALIN",file.get_field(curr,"VALIDITA INIZIALE"));
condv.put("VALFIN",file.get_field(curr,"VALIDITA FINALE"));
if (condv.write() != NOERR) // Allora la scrive...
{
msg.format("! Errore %d di scrittura testata offerte sul file LF_CONDV: %s", condv.status(), (const char*) cod);
bf.add_line(msg);
}
}
}
}
else
{
mettilavirgola(file, curr, "PREZZO ARTICOLO OMAGGIO IN LIRE", 11, 2);
rcondv.put("TIPO", "O");
rcondv.put("CATVEN", "");
rcondv.put("COD", cod);
rcondv.put("TIPORIGA", "A"); // See above... waiting for Morena's call ??
rcondv.put("CODRIGA", file.get_field(curr,"CHIAVE RIGA"));
rcondv.put("UM", file.get_field(curr,"UNITA MISURA"));
rcondv.put("NSCAGL", file.get_field(curr,"NUMERO SCAGLIONE"));
if (rcondv.read() == NOERR) // Se esiste il record lo aggiorna...
{
rcondv.put("CODARTOM", file.get_field(curr,"CODICE ARTICOLO OMAGGIO"));
rcondv.put("CODLOTTO", file.get_field(curr,"CODICE LOTTO"));
rcondv.put("ADDIVA", file.get_field(curr,"ADDEBITO IVA OMAGGIO"));
rcondv.put("UMOM", file.get_field(curr,"UM QTA IN OMAGGIO"));
rcondv.put("PROMAGGIO", file.get_field(curr,"PREZZO ARTICOLO OMAGGIO IN LIRE"));
rcondv.rewrite();
}
else
err = file.autosave(rel, curr); // Se non esiste lo scrive cosi' com'e'
}
if (err != NOERR)
{
msg = "! Errore di scrittura righe offerte sul file LF_RCONDV: ";
msg << err;
bf.add_line(msg);
}
else
valid++;
break;
case 'E': // Righe contratti
case 'F':
{
file.add_field(curr, "TIPO", "C"); // Sostituisce
const char* tipocf = (atol(file.get_field(curr,"TIPO ANAGRAFICA")) & 0x1) ? "C" : "F";
const long codcf = atol(file.get_field(curr, "CODICE CLIENTE"));
cod = file.get_field(curr,"NUMERO CONTRATTO");
file.add_field(curr, "TIPO ANAGRAFICA", tipocf);
if (tipo_record == 'E')
{
mettilavirgola(file, curr, "QTA LIMITE SCAGLIONE", 11, 3);
mettilavirgola(file, curr, "PREZZO VENDITA", 11, 2);
mettilavirgola(file, curr, "PERCENTUALE SCONTO", 5, 2);
mettilavirgola(file, curr, "PERCENTUALE PROVVIGIONE", 5, 2);
mettilavirgola(file, curr, "QTA MERCE SCONTATA", 9, 3);
// Scrive o aggiorna tranquillamente i record di tipo "A": se vi sono
// record omaggio vengono dopo, (cfr FLAG PRESENZA ARTICOLO OMAGGIO)
err = file.autosave(rel, curr);
// Scrive la testata... ma solo se non esiste:
if (err == NOERR)
{
if (!rel.is_first_match(LF_CONDV)) // ... non esiste la testata?
{
des = "Contratto ";
des << cod;
condv.put("TIPO","C");
condv.put("CATVEN","");
condv.put("TIPOCF",tipocf);
condv.put("CODCF", codcf);
condv.put("COD",cod);
condv.put("DESCR", des);
if (condv.write() != NOERR) // Allora la scrive...
{
msg.format("! Errore %d di scrittura testata contratti sul file LF_CONDV: %s", condv.status(), (const char*) cod);
bf.add_line(msg);
}
}
}
}
else
{
mettilavirgola(file, curr, "PREZZO ARTICOLO OMAGGIO IN LIRE", 11, 2);
rcondv.put("TIPO", "C");
rcondv.put("TIPOCF", tipocf);
rcondv.put("CODCF", codcf);
rcondv.put("CATVEN", "");
rcondv.put("COD", cod);
rcondv.put("TIPORIGA", "A"); // See above... waiting for Morena's call ??
rcondv.put("CODRIGA", file.get_field(curr,"CHIAVE RIGA"));
rcondv.put("UM", file.get_field(curr,"UNITA MISURA"));
rcondv.put("NSCAGL", file.get_field(curr,"NUMERO SCAGLIONE"));
if (rcondv.read() == NOERR) // Se esiste il record lo aggiorna...
{
rcondv.put("CODARTOM", file.get_field(curr,"CODICE ARTICOLO OMAGGIO"));
rcondv.put("CODLOTTO", file.get_field(curr,"CODICE LOTTO"));
rcondv.put("ADDIVA", file.get_field(curr,"ADDEBITO IVA OMAGGIO"));
rcondv.put("UMOM", file.get_field(curr,"UM QTA IN OMAGGIO"));
rcondv.put("PROMAGGIO", file.get_field(curr,"PREZZO ARTICOLO OMAGGIO IN LIRE"));
rcondv.rewrite();
}
else
err = file.autosave(rel, curr); // Se non esiste lo scrive cosi' com'e'
}
if (err != NOERR)
{
msg = "! Errore di scrittura righe contratti sul file LF_RCONDV: ";
msg << err;
bf.add_line(msg);
}
else
valid++;
break;
}
default:
break;
}
}
// Messaggio finale di elaborazione
msg = "Record importati: ";
msg << valid;
bf.add_line(msg);
bf.add_line("");
}
void TTrasfer36::import_movmag(const TFilename& name, TBrowsefile_field& bf)
{
TString msg, str;
@ -849,9 +1103,8 @@ void TTrasfer36::main_loop()
while (m.run() == K_ENTER)
{
vw.destroy_lines();
const TFilename dir = m.get(100);
for (short id = 101; id <= 105; id++)
for (short id = 101; id <= 106; id++)
{
const TMask_field& fld = m.field(id);
if (fld.enabled() && !fld.empty())
@ -865,6 +1118,7 @@ void TTrasfer36::main_loop()
case 103: import_anaart(name, bf); break;
case 104: import_movmag(name, bf); break;
case 105: import_rigmag(name, bf); break;
case 106: import_condv(name, bf); break;
default : break;
}
}

View File

@ -80,9 +80,21 @@ BEGIN
PROMPT 47 4 ""
END
BOOLEAN 206
BEGIN
PROMPT 1 5 "Cond. v."
MESSAGE FALSE DISABLE,106
MESSAGE TRUE ENABLE,106
END
STRING 106 16
BEGIN
PROMPT 13 5 ""
END
BROWSEFILE 300 -3 -1
BEGIN
PROMPT 0 5 ""
PROMPT 0 6 ""
FLAGS "R"
END

455
ibm36/ibm36cvn.ini Executable file
View File

@ -0,0 +1,455 @@
[MAIN]
TYPEPOS = 1
TYPELEN = 1
[RECORD A]
LENGTH(0) = 1
LENGTH(1) = 1
LENGTH(2) = 2
LENGTH(3) = 2
LENGTH(4) = 1
LENGTH(5) = 19
LENGTH(6) = 6
LENGTH(7) = 2
LENGTH(8) = 1
LENGTH(9) = 5
LENGTH(10) = 11
LENGTH(11) = 11
LENGTH(12) = 5
LENGTH(13) = 5
LENGTH(14) = 9
LENGTH(15) = 7
LENGTH(16) = 1
LENGTH(17) = 11
LENGTH(18) = 7
NAME(0) = ANNULLATO
NAME(1) = TIPO
NAME(2) = CATEGORIA VENDITE
NAME(3) = CODICE LISTINO
NAME(4) = TIPO ARCHIVIO
NAME(5) = CHIAVE RIGA
NAME(6) = CODICE LOTTO
NAME(7) = UNITA MISURA
NAME(8) = NUMERO SCAGLIONE
NAME(9) = FILLER
NAME(10) = QTA LIMITE SCAGLIONE
NAME(11) = PREZZO VENDITA
NAME(12) = PERCENTUALE SCONTO
NAME(13) = PERCENTUALE PROVVIGIONE
NAME(14) = QTA MERCE SCONTATA
NAME(15) = QTA BASE PER SCONTO
NAME(16) = FLAG PRESENZA ARTICOLO OMAGGIO
NAME(17) = PREZZO NETTO DA VALUTA
NAME(18) = ULTIMO AGGIORNAMENTO
POSITION(0) = 0
POSITION(1) = 1
POSITION(2) = 2
POSITION(3) = 4
POSITION(4) = 6
POSITION(5) = 7
POSITION(6) = 26
POSITION(7) = 32
POSITION(8) = 34
POSITION(9) = 35
POSITION(10) = 40
POSITION(11) = 51
POSITION(12) = 62
POSITION(13) = 72
POSITION(14) = 77
POSITION(15) = 86
POSITION(16) = 93
POSITION(17) = 94
POSITION(18) = 105
FIELD(1) = TIPO
FIELD(2) = CATVEN
FIELD(3) = COD
FIELD(4) = TIPORIGA
FIELD(5) = CODRIGA
FIELD(6) = CODLOTTO
FIELD(7) = UM
FIELD(8) = NSCAGL
FIELD(10) = QLIM
FIELD(11) = PREZZO
FIELD(12) = SCONTO
FIELD(13) = PERCPROVV
FIELD(14) = QOM
FIELD(15) = QBASE
[RECORD B]
LENGTH(0) = 1
LENGTH(1) = 1
LENGTH(2) = 2
LENGTH(3) = 2
LENGTH(4) = 1
LENGTH(5) = 19
LENGTH(6) = 6
LENGTH(7) = 2
LENGTH(8) = 1
LENGTH(9) = 5
LENGTH(10) = 19
LENGTH(11) = 6
LENGTH(12) = 2
LENGTH(13) = 1
LENGTH(14) = 2
LENGTH(15) = 11
LENGTH(16) = 11
NAME(0) = ANNULLATO
NAME(1) = TIPO
NAME(2) = CATEGORIA VENDITE
NAME(3) = CODICE LISTINO
NAME(4) = TIPO ARCHIVIO
NAME(5) = CHIAVE RIGA
NAME(6) = CODICE LOTTO
NAME(7) = UNITA MISURA
NAME(8) = NUMERO SCAGLIONE
NAME(9) = FILLER
NAME(10) = CODICE ARTICOLO OMAGGIO
NAME(11) = CODICE LOTTO TAGLIA
NAME(12) = CODICE ASS FISCALE
NAME(13) = ADDEBITO IVA OMAGGIO
NAME(14) = UM QTA IN OMAGGIO
NAME(15) = PREZZO ARTICOLO OMAGGIO IN LIRE
NAME(16) = PREZZO ARTICOLO OMAGGIO IN VALUTA
POSITION(0) = 0
POSITION(1) = 1
POSITION(2) = 2
POSITION(3) = 4
POSITION(4) = 6
POSITION(5) = 7
POSITION(6) = 26
POSITION(7) = 32
POSITION(8) = 34
POSITION(9) = 35
POSITION(10) = 40
POSITION(11) = 59
POSITION(12) = 65
POSITION(13) = 67
POSITION(14) = 68
POSITION(15) = 70
POSITION(16) = 82
FIELD(1) = TIPO
FIELD(2) = CATVEN
FIELD(3) = COD
FIELD(4) = TIPORIGA
FIELD(5) = CODRIGA
FIELD(6) = CODLOTTO
FIELD(7) = UM
FIELD(8) = NSCAGL
FIELD(10) = CODARTOM
FIELD(13) = ADDIVA
FIELD(14) = UMOM
FIELD(15) = PROMAGGIO
[RECORD C]
LENGTH(0) = 1
LENGTH(1) = 1
LENGTH(2) = 3
LENGTH(3) = 1
LENGTH(4) = 19
LENGTH(5) = 6
LENGTH(6) = 2
LENGTH(7) = 1
LENGTH(8) = 6
LENGTH(9) = 11
LENGTH(10) = 11
LENGTH(11) = 11
LENGTH(12) = 5
LENGTH(13) = 5
LENGTH(14) = 9
LENGTH(15) = 7
LENGTH(16) = 1
LENGTH(17) = 6
LENGTH(18) = 6
LENGTH(19) = 1
LENGTH(20) = 1
LENGTH(21) = 1
LENGTH(22) = 1
LENGTH(23) = 7
LENGTH(24) = 11
NAME(0) = ANNULLATO
NAME(1) = TIPO
NAME(2) = CODICE
NAME(3) = TIPO ARCHIVIO
NAME(4) = CHIAVE RIGA
NAME(5) = CODICE LOTTO
NAME(6) = UNITA MISURA
NAME(7) = NUMERO SCAGLIONE
NAME(8) = FILLER
NAME(9) = QTA LIMITE SCAGLIONE
NAME(10) = PREZZO NETTO
NAME(11) = PREZZO LORDO
NAME(12) = PERCENTUALE SCONTO
NAME(13) = PERCENTUALE PROVVIGIONE
NAME(14) = QTA MERCE SCONTATA
NAME(15) = QTA BASE PER SCONTO
NAME(16) = FLAG PRESENZA ARTICOLO OMAGGIO
NAME(17) = VALIDITA INIZIALE
NAME(18) = VALIDITA FINALE
NAME(19) = APPLICAZIONE PREZZO
NAME(20) = APPLICAZIONE SCONTO
NAME(21) = APPLICAZIONE PROVVIGIONE
NAME(22) = ARTICOLO IN ESAURIMENTO
NAME(23) = ULTIMO AGGIORNAMENTO
NAME(24) = PREZZO NETTO DA VALUTA
POSITION(0) = 0
POSITION(1) = 1
POSITION(2) = 2
POSITION(3) = 5
POSITION(4) = 6
POSITION(5) = 25
POSITION(6) = 31
POSITION(7) = 33
POSITION(8) = 34
POSITION(9) = 40
POSITION(10) = 51
POSITION(11) = 62
POSITION(12) = 73
POSITION(13) = 83
POSITION(14) = 88
POSITION(15) = 97
POSITION(16) = 104
POSITION(17) = 105
POSITION(18) = 111
POSITION(19) = 117
POSITION(20) = 118
POSITION(21) = 119
POSITION(22) = 120
POSITION(23) = 127
POSITION(24) = 138
FIELD(1) = TIPO
FIELD(2) = COD
FIELD(3) = TIPORIGA
FIELD(4) = CODRIGA
FIELD(5) = CODLOTTO
FIELD(6) = UM
FIELD(7) = NSCAGL
FIELD(9) = QLIM
FIELD(10) = PREZZO
FIELD(12) = SCONTO
FIELD(13) = PERCPROVV
FIELD(14) = QOM
FIELD(15) = QBASE
FIELD(22) = ARTES
[RECORD D]
LENGTH(0) = 1
LENGTH(1) = 1
LENGTH(2) = 3
LENGTH(3) = 1
LENGTH(4) = 19
LENGTH(5) = 6
LENGTH(6) = 2
LENGTH(7) = 1
LENGTH(8) = 6
LENGTH(9) = 19
LENGTH(10) = 6
LENGTH(11) = 2
LENGTH(12) = 1
LENGTH(13) = 2
LENGTH(14) = 11
LENGTH(15) = 11
NAME(0) = ANNULLATO
NAME(1) = TIPO
NAME(2) = CODICE
NAME(3) = TIPO ARCHIVIO
NAME(4) = CHIAVE RIGA
NAME(5) = CODICE LOTTO
NAME(6) = UNITA MISURA
NAME(7) = NUMERO SCAGLIONE
NAME(8) = FILLER
NAME(9) = CODICE ARTICOLO OMAGGIO
NAME(10) = CODICE LOTTO TAGLIA
NAME(11) = CODICE ASS FISCALE
NAME(12) = ADDEBITO IVA OMAGGIO
NAME(13) = UM QTA IN OMAGGIO
NAME(14) = PREZZO ARTICOLO OMAGGIO IN LIRE
NAME(15) = PREZZO ARTICOLO OMAGGIO IN VALUTA
POSITION(0) = 0
POSITION(1) = 1
POSITION(2) = 2
POSITION(3) = 5
POSITION(4) = 6
POSITION(5) = 25
POSITION(6) = 31
POSITION(7) = 33
POSITION(8) = 34
POSITION(9) = 40
POSITION(10) = 59
POSITION(11) = 65
POSITION(12) = 67
POSITION(13) = 68
POSITION(14) = 70
POSITION(15) = 81
FIELD(1) = TIPO
FIELD(2) = COD
FIELD(3) = TIPORIGA
FIELD(4) = CODRIGA
FIELD(5) = CODLOTTO
FIELD(6) = UM
FIELD(7) = NSCAGL
FIELD(9) = CODARTOM
FIELD(12) = ADDIVA
FIELD(13) = UMOM
FIELD(14) = PROMAGGIO
[RECORD E]
LENGTH(0) = 1
LENGTH(1) = 1
LENGTH(2) = 1
LENGTH(3) = 6
LENGTH(4) = 2
LENGTH(5) = 1
LENGTH(6) = 19
LENGTH(7) = 6
LENGTH(8) = 2
LENGTH(9) = 1
LENGTH(10) = 11
LENGTH(11) = 11
LENGTH(12) = 5
LENGTH(13) = 5
LENGTH(14) = 9
LENGTH(15) = 7
LENGTH(16) = 1
LENGTH(17) = 11
LENGTH(18) = 20
LENGTH(19) = 7
NAME(0) = ANNULLATO
NAME(1) = TIPO
NAME(2) = TIPO ANAGRAFICA
NAME(3) = CODICE CLIENTE
NAME(4) = NUMERO CONTRATTO
NAME(5) = TIPO ARCHIVIO
NAME(6) = CHIAVE RIGA
NAME(7) = CODICE LOTTO
NAME(8) = UNITA DI MISURA
NAME(9) = NUMERO SCAGLIONE
NAME(10) = QTA LIMITE SCAGLIONE
NAME(11) = PREZZO VENDITA
NAME(12) = PERCENTUALE SCONTO
NAME(13) = PERCENTUALE PROVVIGIONE
NAME(14) = QTA MERCE SCONTATA
NAME(15) = QTA BASE PER SCONTO
NAME(16) = FLAG PRESENZA ARTICOLO OMAGGIO
NAME(17) = PREZZO VENDITA IN VALUTA
NAME(18) = CODICE ARTICOLO CLIENTE
NAME(19) = ULTIMO AGGIORNAMENTO
POSITION(0) = 0
POSITION(1) = 1
POSITION(2) = 2
POSITION(3) = 3
POSITION(4) = 9
POSITION(5) = 11
POSITION(6) = 12
POSITION(7) = 31
POSITION(8) = 37
POSITION(9) = 39
POSITION(10) = 40
POSITION(11) = 51
POSITION(12) = 62
POSITION(13) = 72
POSITION(14) = 77
POSITION(15) = 86
POSITION(16) = 93
POSITION(17) = 94
POSITION(18) = 105
POSITION(19) = 125
FIELD(1) = TIPO
FIELD(2) = TIPOCF
FIELD(3) = CODCF
FIELD(4) = COD
FIELD(5) = TIPORIGA
FIELD(6) = CODRIGA
FIELD(7) = CODLOTTO
FIELD(8) = UM
FIELD(9) = NSCAGL
FIELD(10) = QLIM
FIELD(11) = PREZZO
FIELD(12) = SCONTO
FIELD(13) = PERCPROVV
FIELD(14) = QOM
FIELD(15) = QBASE
[RECORD F]
LENGTH(0) = 1
LENGTH(1) = 1
LENGTH(2) = 1
LENGTH(3) = 6
LENGTH(4) = 2
LENGTH(5) = 1
LENGTH(6) = 19
LENGTH(7) = 6
LENGTH(8) = 2
LENGTH(9) = 1
LENGTH(10) = 19
LENGTH(11) = 6
LENGTH(12) = 2
LENGTH(13) = 1
LENGTH(14) = 2
LENGTH(15) = 11
LENGTH(16) = 11
NAME(0) = ANNULLATO
NAME(1) = TIPO
NAME(2) = TIPO ANAGRAFICA
NAME(3) = CODICE CLIENTE
NAME(4) = NUMERO CONTRATTO
NAME(5) = TIPO ARCHIVIO
NAME(6) = CHIAVE RIGA
NAME(7) = CODICE LOTTO
NAME(8) = UNITA DI MISURA
NAME(9) = NUMERO SCAGLIONE
NAME(10) = CODICE ARTICOLO OMAGGIO
NAME(11) = CODICE LOTTO TAGLIA
NAME(12) = CODICE ASS FISCALE
NAME(13) = ADDEBITO IVA OMAGGIO
NAME(14) = UM QTA IN OMAGGIO
NAME(15) = PREZZO ARTICOLO OMAGGIO IN LIRE
NAME(16) = PREZZO ARTICOLO OMAGGIO IN VALUTA
POSITION(0) = 0
POSITION(1) = 1
POSITION(2) = 2
POSITION(3) = 3
POSITION(4) = 9
POSITION(5) = 11
POSITION(6) = 12
POSITION(7) = 31
POSITION(8) = 37
POSITION(9) = 39
POSITION(10) = 40
POSITION(11) = 59
POSITION(12) = 65
POSITION(13) = 67
POSITION(14) = 68
POSITION(15) = 70
POSITION(16) = 81
FIELD(1) = TIPO
FIELD(2) = TIPOCF
FIELD(3) = CODCF
FIELD(4) = COD
FIELD(5) = TIPORIGA
FIELD(6) = CODRIGA
FIELD(7) = CODLOTTO
FIELD(8) = UM
FIELD(9) = NSCAGL
FIELD(10) = CODARTOM
FIELD(13) = ADDIVA
FIELD(14) = UMOM
FIELD(15) = PROMAGGIO

View File

@ -44,3 +44,76 @@ POSITION(9) = 129
POSITION(10) = 134
USE = %BAN
[RECORD A11]
LENGTH(0) = 1
LENGTH(1) = 3
LENGTH(2) = 2
LENGTH(3) = 2
LENGTH(4) = 9
LENGTH(5) = 30
LENGTH(6) = 3
LENGTH(7) = 11
LENGTH(8) = 6
LENGTH(9) = 6
LENGTH(10) = 2
LENGTH(11) = 1
LENGTH(12) = 4
LENGTH(13) = 1
LENGTH(14) = 1
LENGTH(15) = 1
LENGTH(16) = 1
LENGTH(17) = 6
NAME(0) = ANNULLATO
NAME(1) = TIPO
NAME(2) = CATEGORIA VENDITA
NAME(3) = CODICE LISTINO
NAME(4) = FILLER
NAME(5) = DESCRIZIONE
NAME(6) = CODICE DIVISA
NAME(7) = CAMBIO
NAME(8) = INIZIO VALIDITA
NAME(9) = FINE VALIDITA
NAME(10) = LISTINO SUCCESSIVO
NAME(11) = FLAG LORDO
NAME(12) = SEQUENZA RICERCA
NAME(13) = GESTIONE UM
NAME(14) = GESTIONE SCAGLIONI
NAME(15) = GESTIONE SCONTI
NAME(16) = TIPO GESTIONE
NAME(17) = DATA CAMBIO
POSITION(0) = 0
POSITION(1) = 1
POSITION(2) = 4
POSITION(3) = 6
POSITION(4) = 8
POSITION(5) = 17
POSITION(6) = 47
POSITION(7) = 50
POSITION(8) = 61
POSITION(9) = 67
POSITION(10) = 73
POSITION(11) = 75
POSITION(12) = 76
POSITION(13) = 80
POSITION(14) = 81
POSITION(15) = 82
POSITION(16) = 83
POSITION(17) = 84
FIELD(1) = TIPO
FIELD(2) = CATVEN
FIELD(3) = COD
FIELD(5) = DESCR
FIELD(6) = CODVAL
FIELD(7) = CAMBIO
FIELD(8) = VALIN
FIELD(9) = VALFIN
FIELD(10) = CODLISSUCC
FIELD(12) = SEQRIC
FIELD(13) = GESTUM
FIELD(14) = GESTSCAGL
FIELD(15) = GESTSCO
FIELD(17) = DATACAM
USE = 52