Patch level : 10.0 patch ???
Files correlati : lv3 Ricompilazione Demo : [ ] Commento : Aggiunto invio contapezzi skema git-svn-id: svn://10.65.10.50/branches/R_10_00@21703 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a5ec636333
commit
6927627369
@ -14,6 +14,7 @@ int main(int argc, char** argv)
|
||||
case 4: lv3500(argc, argv); break; // sitauzione a mag. di un art. lv3500
|
||||
case 5: lv3600(argc, argv); break; // invio dati a contapezzi Montanari lv3600
|
||||
case 6: lv3700(argc, argv); break; // inventario da terminale lv3700
|
||||
case 7: lv3800(argc, argv); break; // invio dati a contapezzi Skema lv3800
|
||||
default: lv3100(argc, argv); break; // gestione manuale bolle lv3100
|
||||
}
|
||||
return 0;
|
||||
|
1
lv/lv3.h
1
lv/lv3.h
@ -8,5 +8,6 @@ int lv3400(int argc, char* argv[]);
|
||||
int lv3500(int argc, char* argv[]);
|
||||
int lv3600(int argc, char* argv[]);
|
||||
int lv3700(int argc, char* argv[]);
|
||||
int lv3800(int argc, char* argv[]);
|
||||
|
||||
#endif // __LV3_H
|
||||
|
260
lv/lv3800.cpp
Executable file
260
lv/lv3800.cpp
Executable file
@ -0,0 +1,260 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <defmask.h>
|
||||
#include <progind.h>
|
||||
#include <textset.h>
|
||||
|
||||
#include "../ve/velib.h"
|
||||
|
||||
#include "comuni.h"
|
||||
#include "../mg/anamag.h"
|
||||
#include "lvcondv.h"
|
||||
#include "lvrcondv.h"
|
||||
|
||||
#include "lv3800a.h"
|
||||
|
||||
////////////////////////////////////
|
||||
//// TINVIA_CLIENTI_SKEMA ////
|
||||
////////////////////////////////////
|
||||
|
||||
//Classe TInvia_clienti_skema
|
||||
class TInvia_clienti_skema: public TAS400_recordset
|
||||
{
|
||||
public:
|
||||
void aggiungi_riga(const long codcf);
|
||||
TInvia_clienti_skema();
|
||||
};
|
||||
|
||||
void TInvia_clienti_skema::aggiungi_riga(const long codcf)
|
||||
{
|
||||
//preparo la cache su clifo
|
||||
TToken_string clifokey;
|
||||
clifokey.add('C');
|
||||
clifokey.add(codcf);
|
||||
const TRectype& clifo = cache().get(LF_CLIFO, clifokey);
|
||||
|
||||
const TString80 ragsoc = clifo.get(CLI_RAGSOC);
|
||||
|
||||
TString80 localita = clifo.get(CLI_LOCCF);
|
||||
if(localita.empty())
|
||||
{
|
||||
TToken_string comunikey;
|
||||
comunikey.add("");
|
||||
comunikey.add(cap2comune(clifo.get(CLI_CAPCF), localita));
|
||||
localita = cache().get(LF_COMUNI, comunikey, COM_DENCOM);
|
||||
}
|
||||
|
||||
new_rec("");
|
||||
set("CODCF", TVariant(codcf));
|
||||
set("RAGSOC", ragsoc);
|
||||
set("CITTA", localita);
|
||||
}
|
||||
|
||||
TInvia_clienti_skema::TInvia_clienti_skema()
|
||||
: TAS400_recordset("AS400(122)")
|
||||
{
|
||||
create_field("CODCF", -1, 20, _longzerofld, true); //codice cliente
|
||||
create_field("RAGSOC", -1, 50, _alfafld, true); //ragione sociale
|
||||
create_field("CITTA", -1, 50, _alfafld, true); //città
|
||||
}
|
||||
|
||||
/////////////////////////////////////
|
||||
//// TINVIA_ARTICOLI_SKEMA ////
|
||||
/////////////////////////////////////
|
||||
|
||||
//Classe TInvia_articoli_skema
|
||||
class TInvia_articoli_skema: public TAS400_recordset
|
||||
{
|
||||
public:
|
||||
void aggiungi_riga(const TString& codart);
|
||||
TInvia_articoli_skema();
|
||||
};
|
||||
|
||||
void TInvia_articoli_skema::aggiungi_riga(const TString& codart)
|
||||
{
|
||||
//preparo la cache su anamag
|
||||
const TRectype& anamag = cache().get(LF_ANAMAG, codart);
|
||||
|
||||
const TString80 desart = anamag.get(ANAMAG_DESCR);
|
||||
const TString80 tpart = anamag.get(ANAMAG_TIPOPARTE);
|
||||
TString4 codlav; codlav.format("%05d", anamag.get(ANAMAG_CODLAV1));
|
||||
TString16 peso; peso.format("%010d", anamag.get(ANAMAG_PESO));
|
||||
|
||||
new_rec("");
|
||||
set("CODART", codart);
|
||||
set("DESART", desart);
|
||||
set("CODLAV", codlav);
|
||||
set("TPART", tpart);
|
||||
set("PESO", peso);
|
||||
}
|
||||
|
||||
TInvia_articoli_skema::TInvia_articoli_skema()
|
||||
: TAS400_recordset("AS400(117)")
|
||||
{
|
||||
create_field("CODART", -1, 20, _alfafld, true); //codice articolo
|
||||
create_field("DESART", -1, 50, _alfafld, true); //descrizione
|
||||
create_field("CODALV", -1, 5, _intzerofld, true); //codice lavaggio
|
||||
create_field("TPART", -1, 20, _alfafld, true); //tipo articolo
|
||||
create_field("PESO", -1, 20, _alfafld, true); //peso
|
||||
}
|
||||
|
||||
//////////////////////////////////////
|
||||
//// TINVIA_DOTAZIONI_SKEMA ////
|
||||
//////////////////////////////////////
|
||||
|
||||
//Classe TInvia_dotazioni_skema
|
||||
class TInvia_dotazioni_skema: public TAS400_recordset
|
||||
{
|
||||
public:
|
||||
void aggiungi_riga(const long codcf, const long codcont);
|
||||
TInvia_dotazioni_skema();
|
||||
};
|
||||
|
||||
void TInvia_dotazioni_skema::aggiungi_riga(const long codcf, const long codcont)
|
||||
{
|
||||
//preparo il recodset delle righe contratto
|
||||
TString query;
|
||||
query << "USE LVRCONDV\n"
|
||||
<< "FROM CODCF=" << codcf << " CODCONT=" << codcont << "\n"
|
||||
<< "TO CODCF=" << codcf << " CODCONT=" << codcont;
|
||||
|
||||
TISAM_recordset rcont(query);
|
||||
|
||||
for(bool ok = rcont.move_first(); ok; ok = rcont.move_next())
|
||||
{
|
||||
const TString80 codart = rcont.get(LVRCONDV_CODART).as_string();
|
||||
|
||||
new_rec("");
|
||||
set("CODCF", TVariant(codcf));
|
||||
set("CODART", codart);
|
||||
}
|
||||
}
|
||||
|
||||
TInvia_dotazioni_skema::TInvia_dotazioni_skema()
|
||||
: TAS400_recordset("AS400(122)")
|
||||
{
|
||||
create_field("CODCF", -1, 20, _longzerofld, true); //codice cliente
|
||||
create_field("RAGSOC", -1, 50, _alfafld, true); //ragione sociale
|
||||
create_field("CITTA", -1, 50, _alfafld, true); //città
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
///////////////////////////
|
||||
//// TInvcon_skema_msk ////
|
||||
///////////////////////////
|
||||
|
||||
//classe TInvcon_skema_msk
|
||||
class TInvcon_skema_msk: public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
void esporta() const;
|
||||
TInvcon_skema_msk();
|
||||
};
|
||||
|
||||
//ESPORTA: metodo che crea il file di output nel percorso desiderato
|
||||
void TInvcon_skema_msk::esporta() const
|
||||
{
|
||||
//recupero i dati di interesse dalla maschera
|
||||
const TDate datasc = get_date(F_SCAD);
|
||||
|
||||
//prendo il path dalla maschera
|
||||
const TString& path = get(F_PATH);
|
||||
TFilename file_cli = path; file_cli.add("clienti.txt");
|
||||
TFilename file_art = path; file_art.add("articoli.txt");
|
||||
TFilename file_dot = path; file_dot.add("dotazione.txt");
|
||||
|
||||
//preparo il recodset che contiene tutti i contratti validi
|
||||
TString query;
|
||||
query << "USE LVCONDV\n"
|
||||
<< "SELECT (BETWEEN(DATAIN,\"\",#DATA))&&((NUM(ANSI(DATASC))>=" << datasc.date2ansi() << ")||(DATASC=\"\"))&&(CONTSPOR>0)\n"
|
||||
<< "BY CODCF";
|
||||
|
||||
TISAM_recordset contratti(query);
|
||||
contratti.set_var("#DATA", datasc);
|
||||
|
||||
if(contratti.items() > 0)
|
||||
{
|
||||
TInvia_clienti_skema* recset_clienti = new TInvia_clienti_skema();
|
||||
TInvia_articoli_skema* recset_articoli = new TInvia_articoli_skema();
|
||||
TInvia_dotazioni_skema* recset_dotazioni = new TInvia_dotazioni_skema();
|
||||
|
||||
TAssoc_array presenti;
|
||||
|
||||
contratti.move_first();
|
||||
long oldcodcf = contratti.get(LVCONDV_CODCF).as_int();
|
||||
|
||||
TProgind pi(contratti.items(), "Esportazione in corso...", true, true);
|
||||
|
||||
for(bool ok = contratti.move_first(); ok; ok = contratti.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
const long codcf = contratti.get(LVCONDV_CODCF).as_int();
|
||||
const long codcon = contratti.get(LVCONDV_CODCONT).as_int();
|
||||
|
||||
if(oldcodcf != codcf)
|
||||
{
|
||||
presenti.destroy();
|
||||
oldcodcf = codcf;
|
||||
}
|
||||
|
||||
recset_clienti->aggiungi_riga(codcf);
|
||||
recset_dotazioni->aggiungi_riga(codcf, codcon);
|
||||
}
|
||||
recset_clienti->save_as(file_cli);
|
||||
recset_articoli->save_as(file_art);
|
||||
|
||||
TISAM_recordset anamag(TR("USE ANAMAG"));
|
||||
|
||||
for(bool ok1 = anamag.move_first(); ok1; ok1 = anamag.move_next())
|
||||
{
|
||||
const TString80 codart = anamag.get(ANAMAG_CODART).as_string();
|
||||
recset_articoli->aggiungi_riga(codart);
|
||||
}
|
||||
recset_dotazioni->save_as(file_dot);
|
||||
message_box(TR("Esportazione terminata"));
|
||||
}
|
||||
else
|
||||
warning_box(TR("Non ci sono contratti in essere rispetto alla data specificata"));
|
||||
}
|
||||
|
||||
|
||||
//ON_FIELD_EVENT: metodo che gestisce gli eventi sui campi della maschera
|
||||
bool TInvcon_skema_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
//metodo costruttore che precarica i campi di interesse sulla maschera
|
||||
TInvcon_skema_msk::TInvcon_skema_msk() : TAutomask("lv3800a") {}
|
||||
|
||||
///////////////////////////
|
||||
//// TInvcon_skema_app ////
|
||||
///////////////////////////
|
||||
|
||||
//classe TInvcon_skema_app
|
||||
class TInvcon_skema_app : public TSkeleton_application
|
||||
{
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TInvcon_skema_app::main_loop()
|
||||
{
|
||||
TInvcon_skema_msk msk;
|
||||
while (msk.run() != K_QUIT)
|
||||
msk.esporta();
|
||||
}
|
||||
|
||||
int lv3800(int argc, char *argv[])
|
||||
{
|
||||
TInvcon_skema_app a;
|
||||
a.run (argc, argv, TR("Invio a contapezzi"));
|
||||
return TRUE;
|
||||
}
|
4
lv/lv3800a.h
Executable file
4
lv/lv3800a.h
Executable file
@ -0,0 +1,4 @@
|
||||
//Inivio a contapezzi
|
||||
//Campi Maschera lv3800a
|
||||
#define F_PATH 201
|
||||
#define F_SCAD 202
|
48
lv/lv3800a.uml
Executable file
48
lv/lv3800a.uml
Executable file
@ -0,0 +1,48 @@
|
||||
#include "lv3800a.h"
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Esporta"
|
||||
PICTURE TOOL_ELABORA
|
||||
END
|
||||
|
||||
#include <helpbar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Esportazione a contapezzi" 0 0 0 0
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
PSELECT
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 1 "@bParametri file di output"
|
||||
END
|
||||
|
||||
STRING F_PATH 256 50
|
||||
BEGIN
|
||||
PROMPT 2 2 "Cartella "
|
||||
DSELECT
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 78 3
|
||||
BEGIN
|
||||
PROMPT 1 4 "@bFiltri"
|
||||
END
|
||||
|
||||
DATE F_SCAD
|
||||
BEGIN
|
||||
PROMPT 2 5 "Considera i contratti validi fino al "
|
||||
FLAGS "A"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user