Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@22223 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5ea1fa9367
commit
9fb2626891
@ -56,7 +56,7 @@ bool THA_table_app::get_next_key(TToken_string& key)
|
|||||||
const TString& codart = curr_mask().get(F_CODART);
|
const TString& codart = curr_mask().get(F_CODART);
|
||||||
if (codart.full())
|
if (codart.full())
|
||||||
{
|
{
|
||||||
const TString& codtab = get_next_att_key(codart);
|
const TString& codtab = hd_get_next_att_key(codart);
|
||||||
|
|
||||||
//riempie la token_string con i dati richiesti
|
//riempie la token_string con i dati richiesti
|
||||||
key.add(F_CODART);
|
key.add(F_CODART);
|
||||||
|
12
ha/ha0200a.h
12
ha/ha0200a.h
@ -30,11 +30,13 @@
|
|||||||
//==============================
|
//==============================
|
||||||
//pagina 2
|
//pagina 2
|
||||||
//esportazione dati
|
//esportazione dati
|
||||||
#define F_OUTPUT_PATH 250
|
#define F_OUTPUT_PATH 250
|
||||||
#define F_OU_CARDOC_NUM 251
|
#define F_CONCENTRATORE_PATH 251
|
||||||
#define F_OU_CARDOC_TIP 252
|
#define F_TRANSACTION_PATH 252
|
||||||
#define F_OU_CARDOC_STA 253
|
#define F_OU_CARDOC_NUM 253
|
||||||
#define F_OU_BARCODE_TIP 254
|
#define F_OU_CARDOC_TIP 254
|
||||||
|
#define F_OU_CARDOC_STA 255
|
||||||
|
#define F_OU_BARCODE_TIP 256
|
||||||
|
|
||||||
//importazione dati
|
//importazione dati
|
||||||
#define F_INPUT_PATH 260
|
#define F_INPUT_PATH 260
|
||||||
|
@ -327,12 +327,12 @@ PAGE "Trasferimenti" 0 2 0 0
|
|||||||
|
|
||||||
GROUPBOX DLG_NULL 76 7
|
GROUPBOX DLG_NULL 76 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "@bEsportazione"
|
PROMPT 1 0 "@bEsportazione"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_OUTPUT_PATH 255 39
|
STRING F_OUTPUT_PATH 255 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Percorso files .txt da esportare "
|
PROMPT 2 1 "Server: percorso files .txt "
|
||||||
DSELECT
|
DSELECT
|
||||||
FLAGS "M"
|
FLAGS "M"
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
@ -340,14 +340,34 @@ BEGIN
|
|||||||
FIELD OutputPath
|
FIELD OutputPath
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 74 3
|
STRING F_CONCENTRATORE_PATH 255 40
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "@bDocumenti di carico"
|
PROMPT 2 2 "Server: Percorso concentratore "
|
||||||
|
DSELECT
|
||||||
|
FLAGS "M"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Selezionare una cartella valida!"
|
||||||
|
FIELD ConcentratorePath
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TRANSACTION_PATH 255 40
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Client: Percorso .ini transaz. "
|
||||||
|
DSELECT
|
||||||
|
FLAGS "M"
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
WARNING "Selezionare una cartella valida!"
|
||||||
|
FIELD TransactionPath
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 44 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 4 "@bDocumenti di carico"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_OU_CARDOC_NUM 4
|
STRING F_OU_CARDOC_NUM 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 3 4 "Numerazione "
|
PROMPT 3 5 "Numerazione "
|
||||||
USE %NUM
|
USE %NUM
|
||||||
INPUT CODTAB F_OU_CARDOC_NUM
|
INPUT CODTAB F_OU_CARDOC_NUM
|
||||||
DISPLAY "Codice@8" CODTAB
|
DISPLAY "Codice@8" CODTAB
|
||||||
@ -359,7 +379,7 @@ END
|
|||||||
|
|
||||||
STRING F_OU_CARDOC_TIP 4
|
STRING F_OU_CARDOC_TIP 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 23 4 "Tipo "
|
PROMPT 23 5 "Tipo "
|
||||||
USE %TIP
|
USE %TIP
|
||||||
INPUT CODTAB F_OU_CARDOC_TIP
|
INPUT CODTAB F_OU_CARDOC_TIP
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
@ -372,7 +392,7 @@ END
|
|||||||
|
|
||||||
STRING F_OU_CARDOC_STA 1
|
STRING F_OU_CARDOC_STA 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 36 4 "Stato "
|
PROMPT 36 5 "Stato "
|
||||||
USE %STD
|
USE %STD
|
||||||
INPUT CODTAB F_OU_CARDOC_STA
|
INPUT CODTAB F_OU_CARDOC_STA
|
||||||
DISPLAY "Codice" CODTAB
|
DISPLAY "Codice" CODTAB
|
||||||
@ -385,7 +405,7 @@ END
|
|||||||
|
|
||||||
LISTBOX F_OU_BARCODE_TIP 10
|
LISTBOX F_OU_BARCODE_TIP 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Tipo di barcode "
|
PROMPT 47 5 "Tipo di barcode "
|
||||||
ITEM "N|Normale"
|
ITEM "N|Normale"
|
||||||
ITEM "8|EAN8 "
|
ITEM "8|EAN8 "
|
||||||
ITEM "1|EA13 "
|
ITEM "1|EA13 "
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include <applicat.h>
|
#include <applicat.h>
|
||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
|
#include <execp.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
|
|
||||||
#include <comuni.h>
|
#include <comuni.h>
|
||||||
@ -8,7 +9,7 @@
|
|||||||
#include "../ve/condv.h"
|
#include "../ve/condv.h"
|
||||||
|
|
||||||
#include "halib.h"
|
#include "halib.h"
|
||||||
|
#include "ha1250.h"
|
||||||
#include "ha1200a.h"
|
#include "ha1200a.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -59,20 +60,18 @@ bool TFile2Txt_mask::on_field_event(TOperable_field& o, TField_event e, long jol
|
|||||||
|
|
||||||
TFile2Txt_mask::TFile2Txt_mask() : TAutomask ("ha1200a")
|
TFile2Txt_mask::TFile2Txt_mask() : TAutomask ("ha1200a")
|
||||||
{
|
{
|
||||||
TConfig config(CONFIG_DITTA, "ha");
|
|
||||||
const TString& path = config.get("OutputPath");
|
|
||||||
set(F_PATH, path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
// TSkeleton_application
|
// TSkeleton_application
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
class TFile2Txt : public TSkeleton_application
|
class TFile2Txt : public THardy_transaction
|
||||||
{
|
{
|
||||||
TFilename _output_dir;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void elabora(const TMask& mask);
|
virtual void elabora(const TMask& mask);
|
||||||
|
virtual TMask* create_mask() const;
|
||||||
|
virtual const char* fake_trans_file() const;
|
||||||
|
|
||||||
bool genera_agenti_txt();
|
bool genera_agenti_txt();
|
||||||
bool genera_clienti_txt(const long da_codcli);
|
bool genera_clienti_txt(const long da_codcli);
|
||||||
@ -93,15 +92,14 @@ protected:
|
|||||||
TFilename genera_path(const TString& prefisso);
|
TFilename genera_path(const TString& prefisso);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void main_loop();
|
|
||||||
virtual bool create();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
TFilename TFile2Txt::genera_path(const TString& prefisso)
|
TFilename TFile2Txt::genera_path(const TString& prefisso)
|
||||||
{
|
{
|
||||||
TFilename output_path;
|
TFilename output_path;
|
||||||
output_path = _output_dir;
|
output_path = _output_path;
|
||||||
output_path.add(prefisso);
|
output_path.add(prefisso);
|
||||||
output_path.ext(".txt");
|
output_path.ext(".txt");
|
||||||
return output_path;
|
return output_path;
|
||||||
@ -858,6 +856,11 @@ bool TFile2Txt::genera_ripristino_txt(const TMask& mask)
|
|||||||
//metodo di alto livello per la gestione delle chiamate
|
//metodo di alto livello per la gestione delle chiamate
|
||||||
void TFile2Txt::elabora(const TMask& mask)
|
void TFile2Txt::elabora(const TMask& mask)
|
||||||
{
|
{
|
||||||
|
// a) stoppa il concentratore
|
||||||
|
chiudi_concentratore();
|
||||||
|
|
||||||
|
//b) esegue le vere elaborazioni
|
||||||
|
//------------------------------
|
||||||
bool go_on = true;
|
bool go_on = true;
|
||||||
|
|
||||||
if (mask.get_bool(F_AGENTI))
|
if (mask.get_bool(F_AGENTI))
|
||||||
@ -904,26 +907,31 @@ void TFile2Txt::elabora(const TMask& mask)
|
|||||||
|
|
||||||
if (mask.get_bool(F_INIMAG) && go_on)
|
if (mask.get_bool(F_INIMAG) && go_on)
|
||||||
go_on = genera_ripristino_txt(mask);
|
go_on = genera_ripristino_txt(mask);
|
||||||
|
|
||||||
|
//c) lancia il concentratore in modalità di carico
|
||||||
|
carica_concentratore();
|
||||||
|
|
||||||
|
//d) rilancia il concentratore in modalità di trasmissione
|
||||||
|
trasmetti_concentratore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TFile2Txt::main_loop()
|
TMask* TFile2Txt::create_mask() const
|
||||||
{
|
{
|
||||||
TFile2Txt_mask mask;
|
TMask* mask = new TFile2Txt_mask;
|
||||||
_output_dir = mask.get(F_PATH);
|
mask->set(F_OUTPUT_PATH, _output_path);
|
||||||
if (!_output_dir.exist())
|
mask->set(F_CONC_PATH, _conc_path);
|
||||||
error_box("Non esiste la cartella di destinazione indicata!");
|
mask->set(F_TRANS_PATH, _trans_path);
|
||||||
while (mask.run() == K_ENTER)
|
return mask;
|
||||||
{
|
|
||||||
elabora(mask);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TFile2Txt::create()
|
|
||||||
|
const char* TFile2Txt::fake_trans_file() const
|
||||||
{
|
{
|
||||||
return TSkeleton_application::create();
|
return "157";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int ha1200(int argc, char* argv[])
|
int ha1200(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
TFile2Txt a;
|
TFile2Txt a;
|
||||||
|
52
ha/ha1200a.h
52
ha/ha1200a.h
@ -1,26 +1,28 @@
|
|||||||
#define F_PATH 200
|
#define F_OUTPUT_PATH 200
|
||||||
#define F_AGENTI 201
|
#define F_CONC_PATH 201
|
||||||
#define F_CLIENTI 202
|
#define F_TRANS_PATH 202
|
||||||
#define F_SOSPESI 203
|
#define F_AGENTI 212
|
||||||
#define F_LISTINI 204
|
#define F_CLIENTI 213
|
||||||
#define F_CONTRATTI 205
|
#define F_SOSPESI 214
|
||||||
#define F_PROMOZIONI 206
|
#define F_LISTINI 215
|
||||||
#define F_PRODOTTI 207
|
#define F_CONTRATTI 216
|
||||||
#define F_LINEE 208
|
#define F_PROMOZIONI 217
|
||||||
#define F_BARCODE 209
|
#define F_PRODOTTI 218
|
||||||
#define F_DECODART 210
|
#define F_LINEE 219
|
||||||
#define F_ATTREZZA 211
|
#define F_BARCODE 220
|
||||||
#define F_TABPAG 212
|
#define F_DECODART 221
|
||||||
#define F_CARICO 213
|
#define F_ATTREZZA 222
|
||||||
#define F_INIMAG 214
|
#define F_TABPAG 223
|
||||||
|
#define F_CARICO 224
|
||||||
|
#define F_INIMAG 225
|
||||||
|
|
||||||
#define F_DA_CODCLI 220
|
#define F_DA_CODCLI 230
|
||||||
#define F_DA_SOSP_CODCLI 221
|
#define F_DA_SOSP_CODCLI 231
|
||||||
#define F_CODNUM 222
|
#define F_CODNUM 232
|
||||||
#define F_ANNO 223
|
#define F_ANNO 233
|
||||||
#define F_PROVV 224
|
#define F_PROVV 234
|
||||||
#define F_STATO 225
|
#define F_STATO 235
|
||||||
#define F_DA_CARDOC 226
|
#define F_DA_CARDOC 236
|
||||||
#define F_A_CARDOC 227
|
#define F_A_CARDOC 237
|
||||||
#define F_ANNOES 230
|
#define F_ANNOES 240
|
||||||
#define F_CODMAG 231
|
#define F_CODMAG 241
|
@ -1,31 +1,45 @@
|
|||||||
#include "ha1200a.h"
|
#include "ha1200a.h"
|
||||||
|
|
||||||
PAGE "Esportazione archivi in formato .txt" -1 -1 78 13
|
PAGE "Esportazione archivi in formato .txt" -1 -1 78 15
|
||||||
|
|
||||||
STRING F_PATH 256 50
|
STRING F_OUTPUT_PATH 256 49
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Cartella creazione files "
|
PROMPT 1 0 "Cartella creazione files "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_CONC_PATH 256 49
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Cartella concentratore "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TRANS_PATH 256 49
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Cartella file transazione "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 76 11
|
GROUPBOX DLG_NULL 76 11
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "@bArchivi da trasferire"
|
PROMPT 1 3 "@bArchivi da trasferire"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_AGENTI
|
BOOLEAN F_AGENTI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 3 "Agenti"
|
PROMPT 2 4 "Agenti"
|
||||||
|
FIELD Agenti
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_CLIENTI
|
BOOLEAN F_CLIENTI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Clienti"
|
PROMPT 2 5 "Clienti"
|
||||||
|
FIELD Clienti
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_DA_CODCLI 6
|
NUMBER F_DA_CODCLI 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 12 4 "Dal cli: "
|
PROMPT 12 5 "Dal cli: "
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF F_DA_CODCLI
|
INPUT CODCF F_DA_CODCLI
|
||||||
@ -33,16 +47,18 @@ BEGIN
|
|||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
OUTPUT F_DA_CODCLI CODCF
|
OUTPUT F_DA_CODCLI CODCF
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
|
FIELD Dacliente
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_SOSPESI
|
BOOLEAN F_SOSPESI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 5 "Sospesi"
|
PROMPT 2 6 "Sospesi"
|
||||||
|
FIELD Sospesi
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_DA_SOSP_CODCLI 6
|
NUMBER F_DA_SOSP_CODCLI 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 12 5 "Dal cli: "
|
PROMPT 12 6 "Dal cli: "
|
||||||
USE LF_CLIFO
|
USE LF_CLIFO
|
||||||
INPUT TIPOCF "C"
|
INPUT TIPOCF "C"
|
||||||
INPUT CODCF F_DA_SOSP_CODCLI
|
INPUT CODCF F_DA_SOSP_CODCLI
|
||||||
@ -50,63 +66,74 @@ BEGIN
|
|||||||
DISPLAY "Ragione Sociale@50" RAGSOC
|
DISPLAY "Ragione Sociale@50" RAGSOC
|
||||||
OUTPUT F_DA_SOSP_CODCLI CODCF
|
OUTPUT F_DA_SOSP_CODCLI CODCF
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
|
FIELD Dasospeso
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_LISTINI
|
BOOLEAN F_LISTINI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 6 "Listini"
|
PROMPT 2 7 "Listini"
|
||||||
|
FIELD Listini
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_CONTRATTI
|
BOOLEAN F_CONTRATTI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 7 "Contratti"
|
PROMPT 2 8 "Contratti"
|
||||||
|
FIELD Contratti
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PROMOZIONI
|
BOOLEAN F_PROMOZIONI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Promozioni"
|
PROMPT 2 9 "Promozioni"
|
||||||
|
FIELD Promozioni
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_DECODART
|
BOOLEAN F_DECODART
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Codici articolo alternativi"
|
PROMPT 2 10 "Codici articolo alternativi"
|
||||||
|
FIELD Codartalt
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_PRODOTTI
|
BOOLEAN F_PRODOTTI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 3 "Prodotti"
|
PROMPT 32 4 "Prodotti"
|
||||||
|
FIELD Prodotti
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_LINEE
|
BOOLEAN F_LINEE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 4 "Linee"
|
PROMPT 32 5 "Linee"
|
||||||
|
FIELD Linee
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_BARCODE
|
BOOLEAN F_BARCODE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 32 5 "Barcode"
|
PROMPT 32 6 "Barcode"
|
||||||
|
FIELD Barcode
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_ATTREZZA
|
BOOLEAN F_ATTREZZA
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 3 "Attrezzature"
|
PROMPT 53 4 "Attrezzature"
|
||||||
|
FIELD Attrezzature
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_TABPAG
|
BOOLEAN F_TABPAG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 4 "Condizioni pagamento"
|
PROMPT 53 5 "Condizioni pagamento"
|
||||||
|
FIELD Condpag
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_CARICO
|
BOOLEAN F_CARICO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 5 "Documenti di carico"
|
PROMPT 53 6 "Documenti di carico"
|
||||||
MESSAGE FALSE HIDE,2@
|
MESSAGE FALSE HIDE,2@
|
||||||
MESSAGE TRUE SHOW,2@
|
MESSAGE TRUE SHOW,2@
|
||||||
|
FIELD Carico
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_DA_CARDOC 7
|
NUMBER F_DA_CARDOC 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 6 "Dal doc. n. "
|
PROMPT 53 7 "Dal doc. n. "
|
||||||
USE DOC SELECT (STATO=#F_STATO)
|
USE DOC SELECT (STATO=#F_STATO)
|
||||||
INPUT PROVV "D"
|
INPUT PROVV "D"
|
||||||
INPUT ANNO F_ANNO SELECT
|
INPUT ANNO F_ANNO SELECT
|
||||||
@ -122,11 +149,12 @@ BEGIN
|
|||||||
OUTPUT F_DA_CARDOC NDOC
|
OUTPUT F_DA_CARDOC NDOC
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
GROUP 2
|
GROUP 2
|
||||||
|
FIELD Dacardoc
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_A_CARDOC 7
|
NUMBER F_A_CARDOC 7
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 7 "Al doc n. "
|
PROMPT 53 8 "Al doc n. "
|
||||||
COPY USE F_DA_CARDOC
|
COPY USE F_DA_CARDOC
|
||||||
INPUT PROVV "D"
|
INPUT PROVV "D"
|
||||||
INPUT ANNO F_ANNO SELECT
|
INPUT ANNO F_ANNO SELECT
|
||||||
@ -138,40 +166,43 @@ BEGIN
|
|||||||
NUM_EXPR (#F_A_CARDOC>=#F_DA_CARDOC)||(#F_A_CARDOC==0)
|
NUM_EXPR (#F_A_CARDOC>=#F_DA_CARDOC)||(#F_A_CARDOC==0)
|
||||||
WARNING "Il numero documento finale deve essere > di quello iniziale oppure lasciato vuoto"
|
WARNING "Il numero documento finale deve essere > di quello iniziale oppure lasciato vuoto"
|
||||||
GROUP 2
|
GROUP 2
|
||||||
|
FIELD Acardoc
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODNUM 4
|
STRING F_CODNUM 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 8 "Num. "
|
PROMPT 53 9 "Num. "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNO 4
|
NUMBER F_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 63 8 "Anno "
|
PROMPT 63 9 "Anno "
|
||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
MESSAGE K_SPACE,F_CARICO
|
MESSAGE K_SPACE,F_CARICO
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 2
|
GROUP 2
|
||||||
|
FIELD Anno
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_STATO 1
|
STRING F_STATO 1
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 77 8 ""
|
PROMPT 77 9 ""
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_INIMAG
|
BOOLEAN F_INIMAG
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 9 "Ripristina magazzino"
|
PROMPT 53 10 "Ripristina magazzino"
|
||||||
MESSAGE FALSE HIDE,3@
|
MESSAGE FALSE HIDE,3@
|
||||||
MESSAGE TRUE SHOW,3@
|
MESSAGE TRUE SHOW,3@
|
||||||
|
FIELD Ripmag
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODMAG 3
|
STRING F_CODMAG 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 53 10 "Mag. "
|
PROMPT 53 11 "Mag. "
|
||||||
USE MAG SELECT CODTAB[4,5]==""
|
USE MAG SELECT CODTAB[4,5]==""
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
INPUT CODTAB F_CODMAG
|
INPUT CODTAB F_CODMAG
|
||||||
@ -180,15 +211,17 @@ BEGIN
|
|||||||
OUTPUT F_CODMAG CODTAB[1,3]
|
OUTPUT F_CODMAG CODTAB[1,3]
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 3
|
GROUP 3
|
||||||
|
FIELD Codmag
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_ANNOES 4
|
NUMBER F_ANNOES 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 64 10 "Anno "
|
PROMPT 64 11 "Anno "
|
||||||
FLAGS "A"
|
FLAGS "A"
|
||||||
MESSAGE K_SPACE,F_INIMAG
|
MESSAGE K_SPACE,F_INIMAG
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
GROUP 3
|
GROUP 3
|
||||||
|
FIELD Annomag
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
110
ha/ha1250.cpp
110
ha/ha1250.cpp
@ -1,6 +1,8 @@
|
|||||||
#include <automask.h>
|
#include <automask.h>
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
#include <execp.h>
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
|
#include <utility.h>
|
||||||
|
|
||||||
#include "ha1250.h"
|
#include "ha1250.h"
|
||||||
|
|
||||||
@ -19,6 +21,68 @@ bool THardy_transaction::is_server() const
|
|||||||
return i_am_server;
|
return i_am_server;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool THardy_transaction::is_by_postino() const
|
||||||
|
{
|
||||||
|
TFilename trans = argv(2);
|
||||||
|
return (trans.starts_with("/i") || trans.starts_with("-i"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void THardy_transaction::chiudi_concentratore()
|
||||||
|
{
|
||||||
|
TFilename bat_chiudi = _conc_path;
|
||||||
|
bat_chiudi.add("chiudi.bat");
|
||||||
|
TExternal_app app_chiudi(bat_chiudi);
|
||||||
|
app_chiudi.run();
|
||||||
|
//sara' meglio aspettare qualche secondo
|
||||||
|
xvt_sys_sleep(3000);
|
||||||
|
}
|
||||||
|
|
||||||
|
void THardy_transaction::carica_concentratore()
|
||||||
|
{
|
||||||
|
TFilename bat_carica = _conc_path;
|
||||||
|
bat_carica.add("car.bat");
|
||||||
|
TExternal_app app_carica(bat_carica);
|
||||||
|
app_carica.run();
|
||||||
|
//sara' meglio aspettare qualche secondo
|
||||||
|
xvt_sys_sleep(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool THardy_transaction::scarica_concentratore()
|
||||||
|
{
|
||||||
|
TFilename bat_scarica = _conc_path;
|
||||||
|
bat_scarica.add("descar.bat");
|
||||||
|
TExternal_app app_scarica(bat_scarica);
|
||||||
|
app_scarica.run();
|
||||||
|
//deve assicurarsi che il file upload.d sia completato; usa un test sulle dimensioni
|
||||||
|
//aspetta qualche secondo per permettere al concentratore di iniziare a generare il file
|
||||||
|
TFilename upload = _input_path;
|
||||||
|
upload.add("upload.d");
|
||||||
|
//se trova il file upload.d comincia a fare i test
|
||||||
|
|
||||||
|
long last_size = 0L;
|
||||||
|
for (int s = 0; s < 60; s++)
|
||||||
|
{
|
||||||
|
xvt_sys_sleep(3000);
|
||||||
|
long size = fsize(upload);
|
||||||
|
if (size == last_size && size > 0)
|
||||||
|
break;
|
||||||
|
last_size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (last_size == 0L)
|
||||||
|
return cantread_box(upload);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void THardy_transaction::trasmetti_concentratore()
|
||||||
|
{
|
||||||
|
TFilename bat_trasm = _conc_path;
|
||||||
|
bat_trasm.add("trasmissione.bat");
|
||||||
|
TExternal_app app_trasm(bat_trasm);
|
||||||
|
app_trasm.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void THardy_transaction::main_loop()
|
void THardy_transaction::main_loop()
|
||||||
{
|
{
|
||||||
@ -27,13 +91,14 @@ void THardy_transaction::main_loop()
|
|||||||
//sono il server?
|
//sono il server?
|
||||||
bool i_am_server = is_server();
|
bool i_am_server = is_server();
|
||||||
|
|
||||||
TFilename trans = argv(2);
|
//sono lanciato dal postino?
|
||||||
if (trans.starts_with("/i") || trans.starts_with("-i"))
|
if (is_by_postino())
|
||||||
{
|
{
|
||||||
//se sono il server eseguo subito l'elaborazione
|
//se sono il server eseguo subito l'elaborazione
|
||||||
if (i_am_server)
|
if (i_am_server)
|
||||||
{
|
{
|
||||||
//legge i files da trasferire
|
//legge i files da trasferire
|
||||||
|
TFilename trans = argv(2);
|
||||||
trans.ltrim(2);
|
trans.ltrim(2);
|
||||||
TConfig ini(trans, fake_trans_file());
|
TConfig ini(trans, fake_trans_file());
|
||||||
FOR_EACH_MASK_FIELD(*mask, i, f)
|
FOR_EACH_MASK_FIELD(*mask, i, f)
|
||||||
@ -59,30 +124,33 @@ void THardy_transaction::main_loop()
|
|||||||
else
|
else
|
||||||
error_box(TR("Le transazioni possono essere eseguite solo dal server!"));
|
error_box(TR("Le transazioni possono essere eseguite solo dal server!"));
|
||||||
}
|
}
|
||||||
|
else //sono lanciato in modo interattivo
|
||||||
while (mask->run() == K_ENTER)
|
|
||||||
{
|
{
|
||||||
//se è il server -> esegue le operazioni di elaborazione
|
while (mask->run() == K_ENTER)
|
||||||
if (i_am_server)
|
|
||||||
elabora(*mask);
|
|
||||||
else //senno' prepara il .ini per l'elaborazione postinica
|
|
||||||
{
|
{
|
||||||
TFilename lista_files = _trans_path;
|
//se è il server -> esegue le operazioni di elaborazione
|
||||||
lista_files.add(name());
|
if (i_am_server)
|
||||||
lista_files.ext("ini");
|
elabora(*mask);
|
||||||
TConfig ini(lista_files, "Transaction");
|
else //senno' prepara il .ini per l'elaborazione postinica
|
||||||
ini.set("Action", "RUN");
|
|
||||||
ini.set("Mode", "AUTO");
|
|
||||||
ini.set_paragraph(fake_trans_file());
|
|
||||||
FOR_EACH_MASK_FIELD(*mask, i, f)
|
|
||||||
{
|
{
|
||||||
const TFieldref* field = f->field();
|
TFilename lista_files = _trans_path;
|
||||||
if (field != NULL && f->active())
|
lista_files.add(name());
|
||||||
field->write(ini, fake_trans_file(), f->get());
|
lista_files.ext("ini");
|
||||||
|
TConfig ini(lista_files, "Transaction");
|
||||||
|
ini.set("Action", "RUN");
|
||||||
|
ini.set("Mode", "AUTO");
|
||||||
|
ini.set_paragraph(fake_trans_file());
|
||||||
|
FOR_EACH_MASK_FIELD(*mask, i, f)
|
||||||
|
{
|
||||||
|
const TFieldref* field = f->field();
|
||||||
|
if (field != NULL && f->active())
|
||||||
|
field->write(ini, fake_trans_file(), f->get());
|
||||||
|
}
|
||||||
|
message_box(TR("Transazione di scarico inviata al server"));
|
||||||
}
|
}
|
||||||
message_box(TR("Transazione di scarico inviata al server"));
|
|
||||||
}
|
}
|
||||||
}
|
} //if(by_postino(...
|
||||||
|
|
||||||
delete mask;
|
delete mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,12 @@ protected:
|
|||||||
virtual void elabora(const TMask& mask) pure;
|
virtual void elabora(const TMask& mask) pure;
|
||||||
virtual TMask* create_mask() const pure;
|
virtual TMask* create_mask() const pure;
|
||||||
bool is_server() const;
|
bool is_server() const;
|
||||||
|
bool is_by_postino() const;
|
||||||
virtual const char* fake_trans_file() const pure;
|
virtual const char* fake_trans_file() const pure;
|
||||||
|
void chiudi_concentratore();
|
||||||
|
void carica_concentratore();
|
||||||
|
bool scarica_concentratore();
|
||||||
|
void trasmetti_concentratore();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
|
248
ha/ha1300.cpp
248
ha/ha1300.cpp
@ -11,10 +11,10 @@
|
|||||||
#include "../mg/rmovmag.h"
|
#include "../mg/rmovmag.h"
|
||||||
|
|
||||||
#include "halib.h"
|
#include "halib.h"
|
||||||
|
#include "ha1250.h"
|
||||||
#include "ha1300a.h"
|
#include "ha1300a.h"
|
||||||
#include "ha1301a.h"
|
#include "ha1301a.h"
|
||||||
|
|
||||||
|
|
||||||
//funzione di ordinamento del file di upload una volta caricato in memoria
|
//funzione di ordinamento del file di upload una volta caricato in memoria
|
||||||
|
|
||||||
static TToken_string tipi_record("SU|VC|TF|RF|SI|BR|RC");
|
static TToken_string tipi_record("SU|VC|TF|RF|SI|BR|RC");
|
||||||
@ -252,11 +252,6 @@ bool TUpload2Campo_mask::on_field_event(TOperable_field& o, TField_event e, long
|
|||||||
|
|
||||||
TUpload2Campo_mask::TUpload2Campo_mask() : TAutomask ("ha1300a")
|
TUpload2Campo_mask::TUpload2Campo_mask() : TAutomask ("ha1300a")
|
||||||
{
|
{
|
||||||
TConfig config(CONFIG_DITTA, "ha");
|
|
||||||
const TString& input_path = config.get("InputPath");
|
|
||||||
set(F_INPUT_PATH, input_path);
|
|
||||||
const TString& archive_path = config.get("ArchivePath");
|
|
||||||
set(F_ARCHIVE_PATH, archive_path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -284,12 +279,16 @@ TUpload2Campo_newcli_mask::TUpload2Campo_newcli_mask() : TAutomask ("ha1301a")
|
|||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
// TSkeleton_application
|
// TSkeleton_application
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
class TUpload2Campo : public TSkeleton_application
|
class TUpload2Campo : public THardy_transaction
|
||||||
{
|
{
|
||||||
bool _can_write;
|
bool _can_write;
|
||||||
TAssoc_array _nuovi_clienti;
|
TAssoc_array _nuovi_clienti;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
virtual void elabora(const TMask& mask);
|
||||||
|
virtual TMask* create_mask() const;
|
||||||
|
const char* fake_trans_file() const;
|
||||||
|
|
||||||
//metodi di basso livello
|
//metodi di basso livello
|
||||||
const TString& check_agente(TString& codice_terminale, TLog_report& log);
|
const TString& check_agente(TString& codice_terminale, TLog_report& log);
|
||||||
const TString& check_articolo(TString& codart, TLog_report& log);
|
const TString& check_articolo(TString& codart, TLog_report& log);
|
||||||
@ -307,11 +306,8 @@ protected:
|
|||||||
void elabora_SI(THardy_upload_recordset& recset, TLog_report& log);
|
void elabora_SI(THardy_upload_recordset& recset, TLog_report& log);
|
||||||
void elabora_RC(THardy_upload_recordset& recset, TLog_report& log);
|
void elabora_RC(THardy_upload_recordset& recset, TLog_report& log);
|
||||||
|
|
||||||
void elabora(const TMask& mask);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual void main_loop();
|
|
||||||
virtual bool create();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -1321,140 +1317,152 @@ void TUpload2Campo::elabora_RC(THardy_upload_recordset& recset, TLog_report& log
|
|||||||
|
|
||||||
void TUpload2Campo::elabora(const TMask& mask)
|
void TUpload2Campo::elabora(const TMask& mask)
|
||||||
{
|
{
|
||||||
//prende la directory di archiviazione
|
// a) stoppa il concentratore
|
||||||
const TString archive_path = mask.get(F_ARCHIVE_PATH);
|
chiudi_concentratore();
|
||||||
|
|
||||||
//creazione del filename dei files da importare
|
// b) scarica il concentratore per generare il file upload.d
|
||||||
TFilename src_files = mask.get(F_INPUT_PATH);
|
bool carica = scarica_concentratore();
|
||||||
//una volta si importavano tutti i files di tipo upload*.d; poi si è passati ad importare solo upload.d e basta!
|
|
||||||
//src_files.add("upload*.d");
|
|
||||||
src_files.add("upload.d");
|
|
||||||
TString_array src_files_list;
|
|
||||||
const int n_files_d = list_files(src_files, src_files_list);
|
|
||||||
|
|
||||||
TProgind pi(n_files_d, TR("Acquisizione files in corso..."), true, true);
|
// c) rilancia il concentratore in modalità trasmissione
|
||||||
TLog_report log("Segnalazioni su acquisizione");
|
trasmetti_concentratore();
|
||||||
log.kill_duplicates();
|
|
||||||
log.log(0, "");
|
|
||||||
|
|
||||||
//scandisce i files uno ad uno
|
// d) esegue le elaborazioni
|
||||||
for (int i = 0; i < n_files_d; i++)
|
if (carica)
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
//creazione del filename dei files da importare
|
||||||
break;
|
TFilename src_files = _input_path;
|
||||||
//file corrente in fase di elaborazione
|
//una volta si importavano tutti i files di tipo upload*.d; poi si è passati ad importare solo upload.d e basta!
|
||||||
const TFilename curr_fname = src_files_list.row(i);
|
//src_files.add("upload*.d");
|
||||||
|
src_files.add("upload.d");
|
||||||
|
TString_array src_files_list;
|
||||||
|
const int n_files_d = list_files(src_files, src_files_list);
|
||||||
|
|
||||||
THardy_upload_recordset recset(curr_fname);
|
TProgind pi(n_files_d, TR("Acquisizione files in corso..."), true, true);
|
||||||
const long items = recset.items();
|
TLog_report log("Segnalazioni su acquisizione");
|
||||||
//ordinamento del file in memoria secondo l'ordine stabilito nella tipi_record "SU|VC|TF|RF|SI|BR|RC";
|
log.kill_duplicates();
|
||||||
recset.sort(ordina_upload);
|
|
||||||
|
|
||||||
TString msg;
|
|
||||||
#ifdef DBG
|
|
||||||
msg << "D:/dati/hardy/" << "cazzone_" << curr_fname.name_only() << ".txt";
|
|
||||||
recset.save_as(msg);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//creazione progind e log
|
|
||||||
msg.cut(0);
|
|
||||||
msg << "Elaborazione file " << curr_fname << " in corso...";
|
|
||||||
TProgind pi(items, msg, true, true);
|
|
||||||
|
|
||||||
msg.cut(0);
|
|
||||||
msg << "File " << curr_fname.name_only();
|
|
||||||
log.log(0, "");
|
log.log(0, "");
|
||||||
log.log(0, msg);
|
|
||||||
log.log(0, "");
|
|
||||||
//parametro di controllo; solo se resta true fino alla fine il documento viene writato
|
|
||||||
//solo in caso di elaborazione definitiva può diventare true; vale per ogni upload*.d, in modo da archiviare..
|
|
||||||
//..quelli buoni
|
|
||||||
_can_write = false;
|
|
||||||
if (mask.get_bool(F_DEFINITIVO))
|
|
||||||
_can_write = true;
|
|
||||||
|
|
||||||
//codice terminalino; viene preso dal tipo record SU (è comunque presente in ogni tipo record) ed usato per l'archiviazione..
|
//scandisce i files uno ad uno
|
||||||
//..del file se correttamente importato
|
for (int i = 0; i < n_files_d; i++)
|
||||||
TString4 terminalino;
|
|
||||||
|
|
||||||
//giro su tutti i record del terribile recordset per l'acquisizione dei dati
|
|
||||||
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
if (!pi.addstatus(1))
|
||||||
break;
|
break;
|
||||||
|
//file corrente in fase di elaborazione
|
||||||
|
const TFilename curr_fname = src_files_list.row(i);
|
||||||
|
|
||||||
//acquisizione tipo record da riga corrente del file di input
|
THardy_upload_recordset recset(curr_fname);
|
||||||
TString4 tipo_record = recset.rec_type();
|
const long items = recset.items();
|
||||||
tipo_record.trim();
|
//ordinamento del file in memoria secondo l'ordine stabilito nella tipi_record "SU|VC|TF|RF|SI|BR|RC";
|
||||||
|
recset.sort(ordina_upload);
|
||||||
|
|
||||||
//Sequenza di ordinamento dei record "SU|VC|TF|RF|SI|BR|RC": NON ATTENTATEVI A CAMBIARLA O NON FUNZIONA PIU' UN CAZZO!!
|
TString msg;
|
||||||
const int pos = tipi_record.get_pos(tipo_record);
|
#ifdef DBG
|
||||||
|
msg << "D:/dati/hardy/" << "cazzone_" << curr_fname.name_only() << ".txt";
|
||||||
|
recset.save_as(msg);
|
||||||
|
#endif
|
||||||
|
|
||||||
//trattazione dei vari tracciati record
|
//creazione progind e log
|
||||||
switch (pos)
|
msg.cut(0);
|
||||||
|
msg << "Elaborazione file " << curr_fname << " in corso...";
|
||||||
|
TProgind pi(items, msg, true, true);
|
||||||
|
|
||||||
|
msg.cut(0);
|
||||||
|
msg << "File " << curr_fname.name_only();
|
||||||
|
log.log(0, "");
|
||||||
|
log.log(0, msg);
|
||||||
|
log.log(0, "");
|
||||||
|
//parametro di controllo; solo se resta true fino alla fine il documento viene writato
|
||||||
|
//solo in caso di elaborazione definitiva può diventare true; vale per ogni upload*.d, in modo da archiviare..
|
||||||
|
//..quelli buoni
|
||||||
|
_can_write = false;
|
||||||
|
if (mask.get_bool(F_DEFINITIVO))
|
||||||
|
_can_write = true;
|
||||||
|
|
||||||
|
//codice terminalino; viene preso dal tipo record SU (è comunque presente in ogni tipo record) ed usato per l'archiviazione..
|
||||||
|
//..del file se correttamente importato
|
||||||
|
TString4 terminalino;
|
||||||
|
|
||||||
|
//giro su tutti i record del terribile recordset per l'acquisizione dei dati
|
||||||
|
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||||
{
|
{
|
||||||
case 0: //tipo record: SU (SetUp...ovvero agente)
|
if (!pi.addstatus(1))
|
||||||
terminalino = elabora_SU(recset, log); //non serve a una cippa!
|
break;
|
||||||
break;
|
|
||||||
case 1: //tipo record: VC (nuovi clienti e Variazioni Cliente)
|
//acquisizione tipo record da riga corrente del file di input
|
||||||
elabora_VC(recset, log);
|
TString4 tipo_record = recset.rec_type();
|
||||||
break;
|
tipo_record.trim();
|
||||||
case 2: //tipo record: TF (Testata Fattura)
|
|
||||||
elabora_TF(recset, log);
|
//Sequenza di ordinamento dei record "SU|VC|TF|RF|SI|BR|RC": NON ATTENTATEVI A CAMBIARLA O NON FUNZIONA PIU' UN CAZZO!!
|
||||||
break;
|
const int pos = tipi_record.get_pos(tipo_record);
|
||||||
case 3: //tipo record: RF (Riga Fattura)
|
|
||||||
//elabora_RF(recset, log); //non serve! lo fa l'elaborazione di testata
|
//trattazione dei vari tracciati record
|
||||||
break;
|
switch (pos)
|
||||||
case 4: //tipo record: SI (incasso documenti)
|
|
||||||
elabora_SI(recset, log);
|
|
||||||
break;
|
|
||||||
case 5: //tipo record: BR (righe movimenti magazzino)
|
|
||||||
elabora_BR(recset, log);
|
|
||||||
break;
|
|
||||||
case 6: //tipo record: RC (Richiesta Carico)
|
|
||||||
elabora_RC(recset, log);
|
|
||||||
break;
|
|
||||||
default: //se il tipo record non esiste nella lista dei tipi record si incazza e lo scrive!
|
|
||||||
{
|
{
|
||||||
TString msg;
|
case 0: //tipo record: SU (SetUp...ovvero agente)
|
||||||
msg << "Tipo record non riconosciuto '" << tipo_record << "' alla riga " << (recset.current_row() + 1);
|
terminalino = elabora_SU(recset, log); //non serve a una cippa!
|
||||||
log.log(2, msg);
|
break;
|
||||||
}
|
case 1: //tipo record: VC (nuovi clienti e Variazioni Cliente)
|
||||||
break;
|
elabora_VC(recset, log);
|
||||||
} //switch(pos)..
|
break;
|
||||||
|
case 2: //tipo record: TF (Testata Fattura)
|
||||||
|
elabora_TF(recset, log);
|
||||||
|
break;
|
||||||
|
case 3: //tipo record: RF (Riga Fattura)
|
||||||
|
//elabora_RF(recset, log); //non serve! lo fa l'elaborazione di testata
|
||||||
|
break;
|
||||||
|
case 4: //tipo record: SI (incasso documenti)
|
||||||
|
elabora_SI(recset, log);
|
||||||
|
break;
|
||||||
|
case 5: //tipo record: BR (righe movimenti magazzino)
|
||||||
|
elabora_BR(recset, log);
|
||||||
|
break;
|
||||||
|
case 6: //tipo record: RC (Richiesta Carico)
|
||||||
|
elabora_RC(recset, log);
|
||||||
|
break;
|
||||||
|
default: //se il tipo record non esiste nella lista dei tipi record si incazza e lo scrive!
|
||||||
|
{
|
||||||
|
TString msg;
|
||||||
|
msg << "Tipo record non riconosciuto '" << tipo_record << "' alla riga " << (recset.current_row() + 1);
|
||||||
|
log.log(2, msg);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
} //switch(pos)..
|
||||||
|
|
||||||
} //for (bool ok... (acquisizione di un file)
|
} //for (bool ok... (acquisizione di un file)
|
||||||
log.log(0, "");
|
log.log(0, "");
|
||||||
|
|
||||||
//sequenza di archiviazione del file di upload se elaborato con successo in via definitiva
|
//sequenza di archiviazione del file di upload se elaborato con successo in via definitiva
|
||||||
if (_can_write)
|
if (_can_write)
|
||||||
{
|
|
||||||
if (archivia_file_importato(archive_path, curr_fname, terminalino, log))
|
|
||||||
{
|
{
|
||||||
msg.cut(0);
|
if (archivia_file_importato(_archive_path, curr_fname, terminalino, log))
|
||||||
msg << "Archiviato file " << curr_fname.name_only();
|
{
|
||||||
log.log(0, msg);
|
msg.cut(0);
|
||||||
|
msg << "Archiviato file " << curr_fname.name_only();
|
||||||
|
log.log(0, msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
} //for (int i = 0; i < n_files_d;... (giro su tutti i files tipo upload*.d)
|
} //for (int i = 0; i < n_files_d;... (giro su tutti i files tipo upload*.d)
|
||||||
|
|
||||||
log.preview();
|
log.preview();
|
||||||
|
|
||||||
|
} //if (carica)
|
||||||
|
}
|
||||||
|
|
||||||
|
TMask* TUpload2Campo::create_mask() const
|
||||||
|
{
|
||||||
|
TMask* mask = new TUpload2Campo_mask;
|
||||||
|
mask->set(F_INPUT_PATH, _input_path);
|
||||||
|
mask->set(F_ARCHIVE_PATH, _archive_path);
|
||||||
|
mask->set(F_CONC_PATH, _conc_path);
|
||||||
|
mask->set(F_TRANS_PATH, _trans_path);
|
||||||
|
return mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TUpload2Campo::main_loop()
|
const char* TUpload2Campo::fake_trans_file() const
|
||||||
{
|
{
|
||||||
TUpload2Campo_mask mask;
|
return "164";
|
||||||
while (mask.run() == K_ENTER)
|
|
||||||
{
|
|
||||||
elabora(mask);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TUpload2Campo::create()
|
|
||||||
{
|
|
||||||
return TSkeleton_application::create();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ha1300(int argc, char* argv[])
|
int ha1300(int argc, char* argv[])
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
#define F_INPUT_PATH 201
|
#define F_INPUT_PATH 201
|
||||||
#define F_ARCHIVE_PATH 202
|
#define F_ARCHIVE_PATH 202
|
||||||
#define F_DEFINITIVO 203
|
#define F_CONC_PATH 203
|
||||||
|
#define F_TRANS_PATH 204
|
||||||
|
#define F_DEFINITIVO 205
|
@ -1,6 +1,6 @@
|
|||||||
#include "ha1300a.h"
|
#include "ha1300a.h"
|
||||||
|
|
||||||
PAGE "Importazione dati da file upload" -1 -1 78 6
|
PAGE "Importazione dati da file upload" -1 -1 78 7
|
||||||
|
|
||||||
STRING F_INPUT_PATH 256 45
|
STRING F_INPUT_PATH 256 45
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -14,9 +14,22 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_CONC_PATH 256 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Cartella concentratore "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_TRANS_PATH 256 45
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Cartella file transazione "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
BOOLEAN F_DEFINITIVO
|
BOOLEAN F_DEFINITIVO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "Elaborazione definitiva (scrittura sul database)"
|
PROMPT 1 6 "Elaborazione definitiva (scrittura sul database)"
|
||||||
|
FIELD Definitiva
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
@ -164,7 +164,7 @@ void TInserimento_storico::elabora(const TMask& mask)
|
|||||||
//..per quanto riguarda il progressivo)
|
//..per quanto riguarda il progressivo)
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
{
|
{
|
||||||
codtab = get_next_att_key(codart);
|
codtab = hd_get_next_att_key(codart);
|
||||||
tab_att.put("CODTAB", codtab);
|
tab_att.put("CODTAB", codtab);
|
||||||
tab_att.put("S0", str_s0);
|
tab_att.put("S0", str_s0);
|
||||||
}
|
}
|
||||||
|
@ -516,7 +516,7 @@ void hd_key2conto(const TString& key, int& gr, int& co, long& so)
|
|||||||
so = atoi(key.mid(5,3));
|
so = atoi(key.mid(5,3));
|
||||||
}
|
}
|
||||||
|
|
||||||
const TString& get_next_att_key(const TString& codart)
|
const TString& hd_get_next_att_key(const TString& codart)
|
||||||
{
|
{
|
||||||
if (codart.full())
|
if (codart.full())
|
||||||
{
|
{
|
||||||
|
@ -244,4 +244,4 @@ const TDate upload_format_date6(const TString& str_data);
|
|||||||
long hd_key2cli(const TString& key);
|
long hd_key2cli(const TString& key);
|
||||||
long hd_key2forn(const TString& key);
|
long hd_key2forn(const TString& key);
|
||||||
void hd_key2conto(const TString& key, int& gr, int& co, long& so);
|
void hd_key2conto(const TString& key, int& gr, int& co, long& so);
|
||||||
const TString& get_next_att_key(const TString& codart);
|
const TString& hd_get_next_att_key(const TString& codart);
|
Loading…
x
Reference in New Issue
Block a user