Patch level : no patch per roberto
Files correlati : si0.exe Ricompilazione Demo : [ ] Commento : MOdulo personalizzazioni Ass. Agricoltori di Ravenna git-svn-id: svn://10.65.10.50/trunk@9968 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7a6ba70158
commit
d6ca44f622
18
si/art.ini
Executable file
18
si/art.ini
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
[MAIN]
|
||||||
|
FIELDSEP =
|
||||||
|
RECORDSEP =
|
||||||
|
RECORDSIZE =
|
||||||
|
SKIPLINES =
|
||||||
|
TYPEFIELD = -1
|
||||||
|
|
||||||
|
[RECORD]
|
||||||
|
FIELD(0) = CODART
|
||||||
|
FIELD(1) = DESCR
|
||||||
|
LENGTH(0) = 10
|
||||||
|
LENGTH(1) = 50
|
||||||
|
NAME(0) = Codice Articolo
|
||||||
|
NAME(1) = Descrizione
|
||||||
|
POSITION(0) = 0
|
||||||
|
POSITION(1) = 10
|
||||||
|
USE = 47
|
||||||
|
|
47
si/cli.ini
Executable file
47
si/cli.ini
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
[MAIN]
|
||||||
|
FIELDSEP =
|
||||||
|
RECORDSEP =
|
||||||
|
RECORDSIZE = 0
|
||||||
|
SKIPLINES = 0
|
||||||
|
TYPEFIELD = -1
|
||||||
|
|
||||||
|
[RECORD]
|
||||||
|
FIELD(0) =
|
||||||
|
FIELD(1) = CODCF
|
||||||
|
FIELD(2) = RAGSOC
|
||||||
|
FIELD(3) = INDCF
|
||||||
|
FIELD(4) = CAPCF
|
||||||
|
FIELD(5) =
|
||||||
|
FIELD(6) = COFI
|
||||||
|
FIELD(7) = PAIV
|
||||||
|
FIELD(8) = LOCALITACF
|
||||||
|
LENGTH(0) = 1
|
||||||
|
LENGTH(1) = 6
|
||||||
|
LENGTH(2) = 50
|
||||||
|
LENGTH(3) = 51
|
||||||
|
LENGTH(4) = 5
|
||||||
|
LENGTH(5) = 2
|
||||||
|
LENGTH(6) = 16
|
||||||
|
LENGTH(7) = 11
|
||||||
|
LENGTH(8) = 20
|
||||||
|
NAME(0) =
|
||||||
|
NAME(1) = Codice
|
||||||
|
NAME(2) = Ragione sociale
|
||||||
|
NAME(3) = Indirizzo
|
||||||
|
NAME(4) = CAP
|
||||||
|
NAME(5) =
|
||||||
|
NAME(6) = Codice fiscale
|
||||||
|
NAME(7) = Partita IVA
|
||||||
|
NAME(8) = Loacalita'
|
||||||
|
POSITION(0) = 0
|
||||||
|
POSITION(1) = 1
|
||||||
|
POSITION(2) = 7
|
||||||
|
POSITION(3) = 57
|
||||||
|
POSITION(4) = 108
|
||||||
|
POSITION(5) = 113
|
||||||
|
POSITION(6) = 115
|
||||||
|
POSITION(7) = 131
|
||||||
|
POSITION(8) = 142
|
||||||
|
POSITION(9) = 0
|
||||||
|
USE = 20
|
||||||
|
|
42
si/pag.ini
Executable file
42
si/pag.ini
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
[MAIN]
|
||||||
|
FIELDSEP =
|
||||||
|
RECORDSEP =
|
||||||
|
RECORDSIZE =
|
||||||
|
SKIPLINES =
|
||||||
|
TYPEFIELD = -1
|
||||||
|
|
||||||
|
[RECORD]
|
||||||
|
FIELD(0) =
|
||||||
|
FIELD(1) = NDOC
|
||||||
|
FIELD(2) = CODART
|
||||||
|
FIELD(3) = QTA
|
||||||
|
FIELD(4) = PREZZO
|
||||||
|
FIELD(5) =
|
||||||
|
FIELD(6) =
|
||||||
|
FIELD(7) =
|
||||||
|
LENGTH(0) = 1
|
||||||
|
LENGTH(1) = 6
|
||||||
|
LENGTH(2) = 10
|
||||||
|
LENGTH(3) = 4
|
||||||
|
LENGTH(4) = 13
|
||||||
|
LENGTH(5) = 2
|
||||||
|
LENGTH(6) = 1
|
||||||
|
LENGTH(7) = 1
|
||||||
|
NAME(0) =
|
||||||
|
NAME(1) = N. documento
|
||||||
|
NAME(2) = Codice articolo, codice spesa o codice prestazione
|
||||||
|
NAME(3) = Quantita'
|
||||||
|
NAME(4) = Prezzo o valore
|
||||||
|
NAME(5) =
|
||||||
|
NAME(6) =
|
||||||
|
NAME(7) =
|
||||||
|
POSITION(0) = 0
|
||||||
|
POSITION(1) = 1
|
||||||
|
POSITION(2) = 7
|
||||||
|
POSITION(3) = 17
|
||||||
|
POSITION(4) = 21
|
||||||
|
POSITION(5) = 34
|
||||||
|
POSITION(6) = 36
|
||||||
|
POSITION(7) = 37
|
||||||
|
USE = 34
|
||||||
|
|
24
si/si0.cpp
Executable file
24
si/si0.cpp
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#include <xvt.h>
|
||||||
|
#include "si0.h"
|
||||||
|
|
||||||
|
int main( int argc, char** argv )
|
||||||
|
{
|
||||||
|
int rt = -1;
|
||||||
|
const int r = (argc > 1) ? atoi( &argv[1][1] ) : 1;
|
||||||
|
|
||||||
|
switch (r)
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
rt = si0200( argc, argv ); // Stampe varie
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
rt = si0300( argc, argv ); // per realplast
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
rt = si0100( argc, argv ); // Ricezione dati
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
exit(rt);
|
||||||
|
return rt;
|
||||||
|
}
|
||||||
|
|
9
si/si0.h
Executable file
9
si/si0.h
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#ifndef __SI0_H
|
||||||
|
#define __SI0_H
|
||||||
|
|
||||||
|
int si0100(int argc, char* argv[]); // Ricezione dati
|
||||||
|
int si0200(int argc, char* argv[]); // Stampe varie
|
||||||
|
int si0300(int argc, char* argv[]); // temp
|
||||||
|
|
||||||
|
#endif // __SI0_H
|
||||||
|
|
3
si/si0.url
Executable file
3
si/si0.url
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#include <default.url>
|
||||||
|
|
||||||
|
#include <mainmenu.url>
|
398
si/si0100.cpp
Executable file
398
si/si0100.cpp
Executable file
@ -0,0 +1,398 @@
|
|||||||
|
#include <applicat.h>
|
||||||
|
#include <filetext.h>
|
||||||
|
#include <form.h>
|
||||||
|
#include <mask.h>
|
||||||
|
#include <relation.h>
|
||||||
|
#include <tabutil.h>
|
||||||
|
#include <printer.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <utility.h>
|
||||||
|
#include <lffiles.h>
|
||||||
|
|
||||||
|
#include "..\ve\velib.h"
|
||||||
|
#include "si0100a.h"
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
// Classe TPag_file customizzata dalla TFile_text //
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
class TPag_file: public TFile_text
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TPag_file(const TString& file_name, const TString& config_name);
|
||||||
|
virtual ~TPag_file() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
// gestione dei messaggi estesi nei campi
|
||||||
|
void TPag_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||||
|
{
|
||||||
|
const TString code(s.get(0));
|
||||||
|
TString valore;
|
||||||
|
str = valore;
|
||||||
|
}
|
||||||
|
|
||||||
|
TPag_file::TPag_file(const TString& file_name, const TString& config_name)
|
||||||
|
: TFile_text(file_name, config_name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
// Classe TCli_file customizzata dalla TFile_text //
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
class TCli_file: public TFile_text
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TCli_file(const TString& file_name, const TString& config_name);
|
||||||
|
virtual ~TCli_file() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
// gestione dei messaggi estesi nei campi
|
||||||
|
void TCli_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||||
|
{
|
||||||
|
const TString code(s.get(0));
|
||||||
|
TString valore;
|
||||||
|
str = valore;
|
||||||
|
}
|
||||||
|
|
||||||
|
TCli_file::TCli_file(const TString& file_name, const TString& config_name)
|
||||||
|
: TFile_text(file_name, config_name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
// Classe TArt_file customizzata dalla TFile_text //
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
class TArt_file: public TFile_text
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str);
|
||||||
|
|
||||||
|
public:
|
||||||
|
TArt_file(const TString& file_name, const TString& config_name);
|
||||||
|
virtual ~TArt_file() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
// gestione dei messaggi estesi nei campi
|
||||||
|
void TArt_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str)
|
||||||
|
{
|
||||||
|
const TString code(s.get(0));
|
||||||
|
TString valore;
|
||||||
|
str = valore;
|
||||||
|
}
|
||||||
|
|
||||||
|
TArt_file::TArt_file(const TString& file_name, const TString& config_name)
|
||||||
|
: TFile_text(file_name, config_name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
class TImport: public TSkeleton_application
|
||||||
|
{
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool create(void);
|
||||||
|
virtual void main_loop();
|
||||||
|
virtual bool destroy(void) ;
|
||||||
|
void transfer(void);
|
||||||
|
bool check_seq(TConfig & c);
|
||||||
|
bool localita2comune(const TString & cap, const TString & localita, TString & codice);
|
||||||
|
void update_cli(TCli_file & in, TRecord_text & r, TLocalisamfile & cli);
|
||||||
|
void update_art(TArt_file & in, TRecord_text & r, TLocalisamfile & art, TLocalisamfile & umart);
|
||||||
|
void update_doc(TPag_file & in, TRecord_text & r, TDocumento &doc, const char * codnum, const char * tipodoc,
|
||||||
|
const char * tiporiga, const char * codiva);
|
||||||
|
virtual const char * extra_modules() const { return "BA"; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
TImport() {}
|
||||||
|
virtual ~TImport() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
// restituisce un riferimento all' applicazione
|
||||||
|
inline TImport& app() { return (TImport&) main_app();}
|
||||||
|
|
||||||
|
// creazione dell'applicazione
|
||||||
|
bool TImport::create()
|
||||||
|
{
|
||||||
|
open_files(LF_DOC, LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART,
|
||||||
|
LF_TAB, LF_TABCOM, LF_CLIFO, LF_CFVEN, LF_INDSP, LF_OCCAS, LF_PCON,
|
||||||
|
LF_MOVMAG, LF_RMOVMAG, LF_MAG, LF_SVRIEP, LF_AGENTI, LF_PERCPROV, LF_ATTIV, LF_CAUSALI, 0);
|
||||||
|
|
||||||
|
return TSkeleton_application::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
// distruzione dell'applicazione
|
||||||
|
bool TImport::destroy()
|
||||||
|
{
|
||||||
|
return TSkeleton_application::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
// carica la maschera
|
||||||
|
void TImport::main_loop()
|
||||||
|
{
|
||||||
|
transfer();
|
||||||
|
}
|
||||||
|
|
||||||
|
// trasferimento dati su file per ct bo
|
||||||
|
void TImport::transfer()
|
||||||
|
{
|
||||||
|
TMask msk("si0100a");
|
||||||
|
TConfig c(CONFIG_STUDIO, "sipag");
|
||||||
|
msk.set(F_FILESEQ, c.get("FileSeq"));
|
||||||
|
msk.set(F_FILEPAG, c.get("FilePag"));
|
||||||
|
msk.set(F_FILECLI, c.get("FileCli"));
|
||||||
|
msk.set(F_FILEART, c.get("FileArt"));
|
||||||
|
|
||||||
|
while (msk.run() != K_QUIT)
|
||||||
|
{
|
||||||
|
c.set("FileSeq", msk.get(F_FILESEQ));
|
||||||
|
c.set("FilePag", msk.get(F_FILEPAG));
|
||||||
|
c.set("FileCli", msk.get(F_FILECLI));
|
||||||
|
c.set("FileArt", msk.get(F_FILEART));
|
||||||
|
|
||||||
|
if (check_seq(c))
|
||||||
|
{
|
||||||
|
TRecord_text rec;
|
||||||
|
TProgind p(3L, "Trasferimento da AS/400");
|
||||||
|
TFilename clisrc(msk.get(F_FILECLI));
|
||||||
|
|
||||||
|
if (clisrc.exist())
|
||||||
|
{
|
||||||
|
TCli_file clifile(clisrc, "cli.ini");
|
||||||
|
TLocalisamfile clienti(LF_CLIFO);
|
||||||
|
|
||||||
|
clifile.open(clisrc,'r');
|
||||||
|
while (clifile.read(rec) == NOERR)
|
||||||
|
update_cli(clifile, rec, clienti);
|
||||||
|
clifile.close();
|
||||||
|
}
|
||||||
|
p.addstatus(1L);
|
||||||
|
|
||||||
|
TFilename artsrc(msk.get(F_FILEART));
|
||||||
|
|
||||||
|
if (artsrc.exist())
|
||||||
|
{
|
||||||
|
TArt_file artfile(artsrc, "art.ini");
|
||||||
|
TLocalisamfile articoli(LF_ANAMAG);
|
||||||
|
TLocalisamfile umart(LF_UMART);
|
||||||
|
|
||||||
|
artfile.open(artsrc,'r');
|
||||||
|
while (artfile.read(rec) == NOERR)
|
||||||
|
update_art(artfile, rec, articoli, umart);
|
||||||
|
artfile.close();
|
||||||
|
}
|
||||||
|
p.addstatus(1L);
|
||||||
|
|
||||||
|
TFilename pagsrc(msk.get(F_FILEPAG));
|
||||||
|
|
||||||
|
if (pagsrc.exist())
|
||||||
|
{
|
||||||
|
TPag_file pagfile(pagsrc, "pag.ini");
|
||||||
|
TDocumento doc;
|
||||||
|
TString codnum(c.get("CodNum"));
|
||||||
|
TString tipodoc(c.get("TipoDoc"));
|
||||||
|
TString tiporiga(c.get("TipoRiga"));
|
||||||
|
TString codiva(c.get("CodIva"));
|
||||||
|
|
||||||
|
|
||||||
|
pagfile.open(pagsrc,'r');
|
||||||
|
while (pagfile.read(rec) == NOERR)
|
||||||
|
update_doc(pagfile, rec, doc, codnum, tipodoc, tiporiga, codiva);
|
||||||
|
pagfile.close();
|
||||||
|
}
|
||||||
|
p.addstatus(1L);
|
||||||
|
|
||||||
|
message_box("Operazione terminata");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//inizializza il cursore
|
||||||
|
bool TImport::check_seq(TConfig & c)
|
||||||
|
{
|
||||||
|
TScanner seq(c.get("FileSeq"));
|
||||||
|
const int expected_seq = c.get_int("Seq") + 1;
|
||||||
|
const int seqnum = seq.integer();
|
||||||
|
|
||||||
|
if (expected_seq != seqnum)
|
||||||
|
return error_box("Il numero di sequenza trovato %d\nnon coincide con quello atteso %d", seqnum, expected_seq);
|
||||||
|
c.set("Seq", seqnum);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int si0100(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TImport a ;
|
||||||
|
a.run(argc, argv, "Ricezione da AS/400");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TImport::localita2comune(const TString & caporig, const TString & localita, TString & codice)
|
||||||
|
{
|
||||||
|
TLocalisamfile comuni (LF_COMUNI);
|
||||||
|
TString16 cap = caporig;
|
||||||
|
bool found = FALSE;
|
||||||
|
|
||||||
|
if (cap.mid(2,1) == "1")
|
||||||
|
{
|
||||||
|
cap = cap.left(3);
|
||||||
|
cap << "00";
|
||||||
|
}
|
||||||
|
|
||||||
|
comuni.setkey(3);
|
||||||
|
comuni.zero();
|
||||||
|
comuni.put("CAPCOM", cap);
|
||||||
|
|
||||||
|
TRectype com (comuni.curr());
|
||||||
|
codice = "";
|
||||||
|
|
||||||
|
for (comuni.read(_isgteq); !comuni.eof() && !found; comuni.next())
|
||||||
|
{
|
||||||
|
if (comuni.curr() != com)
|
||||||
|
break;
|
||||||
|
|
||||||
|
found = localita.left(3) == comuni.get("DENCOM").left(3);
|
||||||
|
if (found)
|
||||||
|
codice = comuni.get("COM");
|
||||||
|
}
|
||||||
|
return found;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TImport::update_cli(TCli_file & in, TRecord_text & r, TLocalisamfile & cli)
|
||||||
|
{
|
||||||
|
cli.zero();
|
||||||
|
cli.put("TIPOCF", "C");
|
||||||
|
cli.put("CODCF", in.get_field(r, 1));
|
||||||
|
bool newrec = cli.read() != NOERR;
|
||||||
|
if (newrec)
|
||||||
|
{
|
||||||
|
cli.zero();
|
||||||
|
cli.put("TIPOCF", "C");
|
||||||
|
cli.put("CODCF", in.get_field(r, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
cli.put("RAGSOC", in.get_field(r, 2));
|
||||||
|
TString80 ind(in.get_field(r, 3));
|
||||||
|
TString80 loc;
|
||||||
|
|
||||||
|
int p = ind.find('-');
|
||||||
|
if (p > 0)
|
||||||
|
{
|
||||||
|
loc = ind.mid(p+1);
|
||||||
|
loc.strip("-");
|
||||||
|
loc.trim();
|
||||||
|
ind.cut(p);
|
||||||
|
ind.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
p = ind.rfind(',');
|
||||||
|
if (p > 0)
|
||||||
|
{
|
||||||
|
cli.put("INDCF", ind.left(p));
|
||||||
|
cli.put("CIVCF", ind.mid(p+1));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
cli.put("INDCF", ind.left(35));
|
||||||
|
|
||||||
|
TString16 cap(in.get_field(r, 4));
|
||||||
|
|
||||||
|
cli.put("CAPCF", cap);
|
||||||
|
cli.put("COFI", in.get_field(r, 6));
|
||||||
|
cli.put("PAIV", in.get_field(r, 7));
|
||||||
|
|
||||||
|
TString80 localita(in.get_field(r, 8));
|
||||||
|
TString16 codice;
|
||||||
|
|
||||||
|
if (localita2comune(cap, localita, codice) == TRUE)
|
||||||
|
localita = "";
|
||||||
|
|
||||||
|
localita.insert(loc);
|
||||||
|
cli.put("COMCF", codice);
|
||||||
|
cli.put("LOCALITACF", localita);
|
||||||
|
|
||||||
|
if (newrec)
|
||||||
|
cli.write();
|
||||||
|
else
|
||||||
|
cli.rewrite();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TImport::update_art(TArt_file & in, TRecord_text & r, TLocalisamfile & art, TLocalisamfile & umart)
|
||||||
|
{
|
||||||
|
art.zero();
|
||||||
|
art.put("CODART", in.get_field(r, 0));
|
||||||
|
bool newrec = art.read() != NOERR;
|
||||||
|
if (newrec)
|
||||||
|
{
|
||||||
|
art.zero();
|
||||||
|
art.put("CODART", in.get_field(r, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
art.put("DESCR", in.get_field(r, 1));
|
||||||
|
|
||||||
|
if (newrec)
|
||||||
|
{
|
||||||
|
art.write();
|
||||||
|
umart.zero();
|
||||||
|
umart.put("CODART", in.get_field(r, 0));
|
||||||
|
umart.put("NRIGA", "1");
|
||||||
|
umart.put("UM", "N.");
|
||||||
|
umart.put("FC", "1.00");
|
||||||
|
umart.write();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
art.rewrite();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TImport::update_doc(TPag_file & in, TRecord_text & r, TDocumento &doc, const char * codnum, const char * tipodoc,
|
||||||
|
const char * tiporiga, const char * codiva)
|
||||||
|
{
|
||||||
|
doc.zero();
|
||||||
|
const bool newdoc = doc.read('D', TDate(TODAY).year(), codnum, atol(in.get_field(r, 1))) != NOERR;
|
||||||
|
const TDate oggi(TODAY);
|
||||||
|
|
||||||
|
if (newdoc)
|
||||||
|
{
|
||||||
|
doc.zero();
|
||||||
|
|
||||||
|
TDocumento::set_key(doc, 'D', oggi.year(), codnum, atol(in.get_field(r, 1)));
|
||||||
|
doc.set_tipo(tipodoc);
|
||||||
|
doc.put("TIPOCF", "C");
|
||||||
|
doc.put("CODCF", in.get_field(r, 1));
|
||||||
|
doc.put("DATADOC", oggi);
|
||||||
|
doc.put("DATACONS", oggi);
|
||||||
|
}
|
||||||
|
|
||||||
|
TRiga_documento & riga = doc.new_row(tiporiga);
|
||||||
|
|
||||||
|
const TString & cod = in.get_field(r, 2);
|
||||||
|
riga.put("CODART", cod);
|
||||||
|
riga.put("CODARTMAG", cod);
|
||||||
|
|
||||||
|
TString80 descr = cache().get(LF_ANAMAG, cod, "DESCR");
|
||||||
|
|
||||||
|
riga.put("DESCR", descr);
|
||||||
|
riga.put("CHECKED", "X");
|
||||||
|
doc.put("DATACONS", oggi);
|
||||||
|
|
||||||
|
|
||||||
|
real qta(in.get_field(r, 3));
|
||||||
|
|
||||||
|
if (qta == ZERO)
|
||||||
|
qta = 1.00;
|
||||||
|
|
||||||
|
riga.put("UMQTA", "N.");
|
||||||
|
riga.put("QTA", qta);
|
||||||
|
|
||||||
|
const real prezzo(in.get_field(r, 4));
|
||||||
|
riga.put("PREZZO", prezzo);
|
||||||
|
riga.put("CODIVA", codiva);
|
||||||
|
|
||||||
|
if (newdoc)
|
||||||
|
doc.write();
|
||||||
|
else
|
||||||
|
doc.rewrite();
|
||||||
|
}
|
5
si/si0100a.h
Executable file
5
si/si0100a.h
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#define F_FILESEQ 101
|
||||||
|
#define F_FILEPAG 102
|
||||||
|
#define F_FILECLI 103
|
||||||
|
#define F_FILEART 104
|
||||||
|
|
61
si/si0100a.uml
Executable file
61
si/si0100a.uml
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
#include "si0100a.h"
|
||||||
|
|
||||||
|
TOOLBAR "" 0 20 0 2
|
||||||
|
|
||||||
|
BUTTON DLG_OK 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -12 -11 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
BUTTON DLG_QUIT 9 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT -22 -11 ""
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
PAGE "Ricezione dati da AS/400" -1 -1 78 20
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 77 11
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Selezioni per la ricezione"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FILESEQ 52
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Nome file sequenza "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
VALIDATE FILENAME_FUNC
|
||||||
|
FLAGS "A"
|
||||||
|
WARNING "E' necessario specificare un nome di file"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FILEPAG 52
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 5 "Nome file pagamenti "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
VALIDATE FILENAME_FUNC
|
||||||
|
FLAGS "A"
|
||||||
|
WARNING "E' necessario specificare un nome di file"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FILECLI 52
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 7 "Nome file clienti "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
VALIDATE FILENAME_FUNC
|
||||||
|
FLAGS "A"
|
||||||
|
WARNING "E' necessario specificare un nome di file"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING F_FILEART 52
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 9 "Nome file servizi "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
VALIDATE FILENAME_FUNC
|
||||||
|
FLAGS "A"
|
||||||
|
WARNING "E' necessario specificare un nome di file"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
ENDMASK
|
1543
si/si0200.cpp
Executable file
1543
si/si0200.cpp
Executable file
File diff suppressed because it is too large
Load Diff
29
si/si0200.h
Executable file
29
si/si0200.h
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#define F_CODNUM 101
|
||||||
|
#define F_ANNO 102
|
||||||
|
#define F_PROVV 103
|
||||||
|
#define F_NCOPIE 104
|
||||||
|
|
||||||
|
#define F_DATA_O_NUM 105
|
||||||
|
|
||||||
|
#define F_DA_NDOC 106
|
||||||
|
#define F_A_NDOC 107
|
||||||
|
|
||||||
|
#define F_DA_DATADOC 108
|
||||||
|
#define F_A_DATADOC 109
|
||||||
|
|
||||||
|
#define F_TIPOCF 110
|
||||||
|
#define F_CODFR 111
|
||||||
|
#define F_CODTO 112
|
||||||
|
#define F_SELECTED 113
|
||||||
|
#define BUT_SEL 114
|
||||||
|
#define BUT_ANN 115
|
||||||
|
#define F_SELVAL 116
|
||||||
|
#define F_VALUTA 117
|
||||||
|
#define F_DETTAGLIO 118
|
||||||
|
#define F_DESCR_CLI 119
|
||||||
|
|
||||||
|
#define F_SHEETNUMS 201
|
||||||
|
|
||||||
|
#define GROUP_PRICES 29
|
||||||
|
#define GROUP_QTA 30
|
||||||
|
#define GROUP_IMPORTI 31
|
6
si/si0200a.h
Executable file
6
si/si0200a.h
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
// trasferimento dati a CT Bologna
|
||||||
|
// definizione campi per maschera di selezione
|
||||||
|
|
||||||
|
//#define F_TRASFERIMENTO 101 // trasferimento totale o parziale
|
||||||
|
#define F_DATAINI 101 // data inizio modifiche per trasferimento parziale
|
||||||
|
#define F_FILENAME 102 // nome del file dove scaricare i dati
|
237
si/si0200a.uml
Executable file
237
si/si0200a.uml
Executable file
@ -0,0 +1,237 @@
|
|||||||
|
TO "" 0 -3 0 2
|
||||||
|
ST 30 70 50
|
||||||
|
BE
|
||||||
|
PR 2 -3 "Profilo "
|
||||||
|
PSELECT
|
||||||
|
GR 1
|
||||||
|
EN
|
||||||
|
BU 24 10 2
|
||||||
|
BE
|
||||||
|
PR -12 -1 "~Stampa"
|
||||||
|
ME EXIT,13
|
||||||
|
EN
|
||||||
|
BU 2 10 2
|
||||||
|
BE
|
||||||
|
PR -22 -1 ""
|
||||||
|
EN
|
||||||
|
EN
|
||||||
|
|
||||||
|
PA "Stampe Pagamenti" -1 2 80 20
|
||||||
|
NU 102 4 0
|
||||||
|
BE
|
||||||
|
PR 2 1 "Anno "
|
||||||
|
FLAG "P"
|
||||||
|
CH REQUIRED
|
||||||
|
EN
|
||||||
|
LI 103 12
|
||||||
|
BE
|
||||||
|
PR 25 1 "Tipo numerazione "
|
||||||
|
IT "D|Definitiva"
|
||||||
|
IT "P|Provvisoria"
|
||||||
|
FLAG "P"
|
||||||
|
EN
|
||||||
|
SPREADSHEET 201 78 4
|
||||||
|
BE
|
||||||
|
PR 1 2 ""
|
||||||
|
IT "Cod. num."
|
||||||
|
IT "Stato 1"
|
||||||
|
IT "Stato 2"
|
||||||
|
IT "Stato 3"
|
||||||
|
IT "Stato 4"
|
||||||
|
IT "Stato 5"
|
||||||
|
IT "Stato 6"
|
||||||
|
EN
|
||||||
|
|
||||||
|
LI 110 1 9
|
||||||
|
BE
|
||||||
|
PR 2 7 "Tipo "
|
||||||
|
IT "C|Clienti"
|
||||||
|
IT "F|Fornitori"
|
||||||
|
EN
|
||||||
|
|
||||||
|
NU 111 6
|
||||||
|
BE
|
||||||
|
PR 68 8 ""
|
||||||
|
FL "B"
|
||||||
|
EN
|
||||||
|
NU 112 6
|
||||||
|
BE
|
||||||
|
PR 68 9 ""
|
||||||
|
FL "B"
|
||||||
|
EN
|
||||||
|
|
||||||
|
ST 119 50 50
|
||||||
|
BE
|
||||||
|
PR 2 8 "Dal Cliente "
|
||||||
|
US 20 KE 2
|
||||||
|
IN TIPOCF 110
|
||||||
|
IN RAGSOC 119
|
||||||
|
DI "Ragione Sociale@50" RAGSOC
|
||||||
|
DI "Codice " CODCF
|
||||||
|
OU 111 CODCF
|
||||||
|
OU 119 RAGSOC
|
||||||
|
EN
|
||||||
|
ST 120 50 50
|
||||||
|
BE
|
||||||
|
PR 2 9 "Al Cliente "
|
||||||
|
US 20 KE 2
|
||||||
|
IN TIPOCF 110
|
||||||
|
IN RAGSOC 120
|
||||||
|
DI "Ragione Sociale@50" RAGSOC
|
||||||
|
DI "Codice " CODCF
|
||||||
|
OU 112 CODCF
|
||||||
|
OU 120 RAGSOC
|
||||||
|
EN
|
||||||
|
ST 121 20
|
||||||
|
BE
|
||||||
|
PR 2 10 "Dal Servizio "
|
||||||
|
US 47 KE 1
|
||||||
|
IN CODART 121
|
||||||
|
DI "Codice " CODART
|
||||||
|
DI "Descrizione@50" DESCR
|
||||||
|
OU 121 CODART
|
||||||
|
EN
|
||||||
|
ST 122 20
|
||||||
|
BE
|
||||||
|
PR 2 11 "Al Servizio "
|
||||||
|
US 47 KE 1
|
||||||
|
IN CODART 122
|
||||||
|
DI "Codice " CODART
|
||||||
|
DI "Descrizione@50" DESCR
|
||||||
|
OU 122 CODART
|
||||||
|
EN
|
||||||
|
|
||||||
|
DA 108
|
||||||
|
BE
|
||||||
|
PR 2 12 "Dalla Data "
|
||||||
|
EN
|
||||||
|
DA 109
|
||||||
|
BE
|
||||||
|
PR 27 12 "Alla Data "
|
||||||
|
EN
|
||||||
|
|
||||||
|
|
||||||
|
ST 113 5
|
||||||
|
BE
|
||||||
|
PR 25 16 "Scelte n. "
|
||||||
|
FL "DR"
|
||||||
|
EN
|
||||||
|
|
||||||
|
BU 114 10 2
|
||||||
|
BE
|
||||||
|
PR 45 16 "~Selezione"
|
||||||
|
PI 115
|
||||||
|
EN
|
||||||
|
BU 115 10
|
||||||
|
BE
|
||||||
|
PR 45 18 "A~zzera"
|
||||||
|
EN
|
||||||
|
RA 116 20
|
||||||
|
BE
|
||||||
|
PR 2 15 "Stampa documenti"
|
||||||
|
IT "1|Valuta ditta"
|
||||||
|
ME CLEAR,117
|
||||||
|
IT "2|In valuta"
|
||||||
|
ME ENABLE,117
|
||||||
|
IT "3|Tutti"
|
||||||
|
ME CLEAR,117
|
||||||
|
EN
|
||||||
|
ST 117 3
|
||||||
|
BE
|
||||||
|
PR 25 17 "Cod. val. "
|
||||||
|
FL "U"
|
||||||
|
US %VAL
|
||||||
|
IN CODTAB 117
|
||||||
|
DI "Codice" CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 117 CODTAB
|
||||||
|
CH REQUIRED
|
||||||
|
EN
|
||||||
|
BO 118
|
||||||
|
BE
|
||||||
|
PR 25 18 "Dettaglio righe"
|
||||||
|
EN
|
||||||
|
EN
|
||||||
|
ENDMASK
|
||||||
|
PA "" -1 -1 75 10
|
||||||
|
ST 101 4
|
||||||
|
BE
|
||||||
|
PR 1 1 "Codice numerazione "
|
||||||
|
FLAG "U"
|
||||||
|
US %NUM
|
||||||
|
IN CODTAB 101
|
||||||
|
DI "Cod. Num." CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 101 CODTAB
|
||||||
|
CH NORMAL
|
||||||
|
EN
|
||||||
|
ST 102 1
|
||||||
|
BE
|
||||||
|
PR 1 3 "Stato 1 "
|
||||||
|
US %STD
|
||||||
|
IN CODTAB 102
|
||||||
|
DI "Stato" CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 102 CODTAB
|
||||||
|
CH NORMAL
|
||||||
|
EN
|
||||||
|
ST 103 1
|
||||||
|
BE
|
||||||
|
PR 1 4 "Stato 2 "
|
||||||
|
US %STD
|
||||||
|
IN CODTAB 103
|
||||||
|
DI "Stato" CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 103 CODTAB
|
||||||
|
CH NORMAL
|
||||||
|
EN
|
||||||
|
ST 104 1
|
||||||
|
BE
|
||||||
|
PR 1 5 "Stato 3 "
|
||||||
|
US %STD
|
||||||
|
IN CODTAB 104
|
||||||
|
DI "Stato" CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 104 CODTAB
|
||||||
|
CH NORMAL
|
||||||
|
EN
|
||||||
|
ST 105 1
|
||||||
|
BE
|
||||||
|
PR 1 6 "Stato 4 "
|
||||||
|
US %STD
|
||||||
|
IN CODTAB 105
|
||||||
|
DI "Stato" CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 105 CODTAB
|
||||||
|
CH NORMAL
|
||||||
|
EN
|
||||||
|
ST 106 1
|
||||||
|
BE
|
||||||
|
PR 1 7 "Stato 5 "
|
||||||
|
US %STD
|
||||||
|
IN CODTAB 106
|
||||||
|
DI "Stato" CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 106 CODTAB
|
||||||
|
CH NORMAL
|
||||||
|
EN
|
||||||
|
ST 107 1
|
||||||
|
BE
|
||||||
|
PR 1 8 "Stato 6 "
|
||||||
|
US %STD
|
||||||
|
IN CODTAB 107
|
||||||
|
DI "Stato" CODTAB
|
||||||
|
DI "Descrizione@50" S0
|
||||||
|
OU 107 CODTAB
|
||||||
|
CH NORMAL
|
||||||
|
EN
|
||||||
|
BU 1 9 2
|
||||||
|
BE
|
||||||
|
PR -12 -1 ""
|
||||||
|
EN
|
||||||
|
BU 2 9 2
|
||||||
|
BE
|
||||||
|
PR -22 -1 ""
|
||||||
|
EN
|
||||||
|
EN
|
||||||
|
ENDMASK
|
78
si/si0300.cpp
Executable file
78
si/si0300.cpp
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
//////////////////////////////////////////////////////////////
|
||||||
|
// Stampa documenti
|
||||||
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include <applicat.h>
|
||||||
|
#include <config.h>
|
||||||
|
#include <defmask.h>
|
||||||
|
#include <form.h>
|
||||||
|
#include <msksheet.h>
|
||||||
|
#include <printer.h>
|
||||||
|
#include <progind.h>
|
||||||
|
#include <sheet.h>
|
||||||
|
|
||||||
|
#include "si0200.h"
|
||||||
|
|
||||||
|
class TAggart_application: public TSkeleton_application
|
||||||
|
{
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool create();
|
||||||
|
virtual bool destroy();
|
||||||
|
virtual void main_loop();
|
||||||
|
virtual const char * extra_modules() const { return "BA"; }
|
||||||
|
|
||||||
|
public:
|
||||||
|
TAggart_application() {};
|
||||||
|
virtual ~TAggart_application() {};
|
||||||
|
};
|
||||||
|
|
||||||
|
inline TAggart_application& app() { return (TAggart_application&) main_app(); }
|
||||||
|
|
||||||
|
bool TAggart_application::create()
|
||||||
|
{
|
||||||
|
return TSkeleton_application::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TAggart_application::destroy()
|
||||||
|
{
|
||||||
|
return TApplication::destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TAggart_application::main_loop()
|
||||||
|
{
|
||||||
|
TRelation * r = new TRelation(LF_ANAMAG);
|
||||||
|
TCursor c(r);
|
||||||
|
const long items = c.items();
|
||||||
|
|
||||||
|
for (c = 0L; c.pos() < items; ++c)
|
||||||
|
{
|
||||||
|
TRectype & rec = c.curr();
|
||||||
|
TString descr = rec.get("DESCRAGG");
|
||||||
|
descr.trim();
|
||||||
|
if (descr.not_empty())
|
||||||
|
{
|
||||||
|
const int p= descr.find("ST/");
|
||||||
|
if (p > 0)
|
||||||
|
{
|
||||||
|
TString stampo(descr.mid(p+3));
|
||||||
|
rec.put("USER2", stampo);
|
||||||
|
descr.cut(p);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
rec.put("USER2", "");
|
||||||
|
rec.put("USER1", descr);
|
||||||
|
rec.put("DESCRAGG", "");
|
||||||
|
rec.rewrite(r->lfile());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do all the work!
|
||||||
|
int si0300(int argc, char* argv[])
|
||||||
|
{
|
||||||
|
TAggart_application a;
|
||||||
|
a.run(argc, argv, "modifica descr");
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user