Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@17490 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cab0ae6f98
commit
dc1e132bed
@ -11,6 +11,7 @@ int main(int argc, char** argv)
|
||||
case 1: lv2200(argc, argv); break; //manipolazione e stampa del planning
|
||||
case 2: lv2300(argc, argv); break; //stampe planning
|
||||
case 3: lv2400(argc, argv); break; //generazione automatica bolle di consegna
|
||||
case 4: lv2600(argc, argv); break; //acquisizione bolle di rientro
|
||||
default: lv2100(argc, argv); break; //generazione automatica del planning
|
||||
}
|
||||
return 0;
|
||||
|
1
lv/lv2.h
1
lv/lv2.h
@ -5,5 +5,6 @@ int lv2100(int argc, char* argv[]);
|
||||
int lv2200(int argc, char* argv[]);
|
||||
int lv2300(int argc, char* argv[]);
|
||||
int lv2400(int argc, char* argv[]);
|
||||
int lv2600(int argc, char* argv[]);
|
||||
|
||||
#endif // __LV2_H
|
196
lv/lv2600.cpp
Executable file
196
lv/lv2600.cpp
Executable file
@ -0,0 +1,196 @@
|
||||
#include <progind.h>
|
||||
#include "../ve/velib.h"
|
||||
#include <doc.h>
|
||||
#include <rdoc.h>
|
||||
#include <automask.h>
|
||||
#include <sheet.h>
|
||||
#include <utility.h>
|
||||
#include <recset.h>
|
||||
#include <textset.h>
|
||||
#include "lv2600a.h"
|
||||
#include <recarray.h>
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAcquisizione_msk
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TAcquisizione_msk: public TAutomask
|
||||
{
|
||||
protected:
|
||||
virtual bool on_field_event(TOperable_field& o,TField_event e,long jolly);
|
||||
public:
|
||||
TAcquisizione_msk();
|
||||
};
|
||||
|
||||
bool TAcquisizione_msk::on_field_event(TOperable_field& f,TField_event e,long jolly)
|
||||
{
|
||||
switch (f.dlg())
|
||||
{
|
||||
//giochetto per avere la lista dei files validi nella directory di trasferimento!
|
||||
case F_NAME:
|
||||
if (e == fe_button)
|
||||
{
|
||||
TArray_sheet as(-1, -1, 72, 20, TR("Selezione file"),
|
||||
HR("File@32"));
|
||||
TFilename path = get(F_PATH);
|
||||
path.add("*.csv"); //files delle testate
|
||||
list_files(path, as.rows_array());
|
||||
TFilename name;
|
||||
FOR_EACH_ARRAY_ROW(as.rows_array(), i, row)
|
||||
{
|
||||
name = *row;
|
||||
*row = name.name();
|
||||
}
|
||||
if (as.run() == K_ENTER)
|
||||
{
|
||||
f.set(as.row(as.selected()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
TAcquisizione_msk::TAcquisizione_msk():TAutomask("lv2600a")
|
||||
{
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAcquisizione_cache
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TAcquisizione_cache : TCache
|
||||
{
|
||||
TString4 _codnum,_tipodoc,_stato;
|
||||
|
||||
|
||||
protected:
|
||||
virtual void discarding(const THash_object* obj);
|
||||
virtual TObject* key2obj(const char* key);
|
||||
|
||||
public:
|
||||
TDocumento& doc(const TDate& gg, const long cc);
|
||||
TAcquisizione_cache();
|
||||
};
|
||||
|
||||
void TAcquisizione_cache::discarding(const THash_object* obj)
|
||||
{
|
||||
TDocumento& doc = (TDocumento&)obj->obj();
|
||||
doc.rewrite();
|
||||
}
|
||||
|
||||
TObject* TAcquisizione_cache::key2obj(const char* key)
|
||||
{
|
||||
TToken_string chiave(key);
|
||||
const TDate datadoc=chiave.get();
|
||||
const long codcf=chiave.get_long();
|
||||
|
||||
TString query;
|
||||
query<< "USE DOC KEY 2 SELECT STATO=#STATO\n";
|
||||
for (int i=0;i<2; i++)
|
||||
{
|
||||
query << (i?"TO":"FROM") << " "
|
||||
<< "TIPOCF=C CODCF=#CODCF ANNO=#ANNO DATADOC=#DATADOC CODNUM=#CODNUM\n";
|
||||
}
|
||||
TISAM_recordset rset(query);
|
||||
rset.set_var("#STATO",TVariant(_stato));
|
||||
rset.set_var("#CODCF",codcf);
|
||||
rset.set_var("#ANNO",long(datadoc.year()));
|
||||
rset.set_var("#DATADOC",datadoc);
|
||||
rset.set_var("#CODNUM",TVariant(_codnum));
|
||||
|
||||
TDocumento* doc=NULL;
|
||||
|
||||
if (rset.move_first())
|
||||
{
|
||||
doc=new TDocumento(rset.cursor()->curr());
|
||||
}
|
||||
else
|
||||
{
|
||||
doc=new TDocumento('D',datadoc.year(),_codnum,0);
|
||||
doc->put(DOC_TIPODOC,_tipodoc);
|
||||
doc->put(DOC_STATO,_stato);
|
||||
doc->put(DOC_DATADOC,datadoc);
|
||||
doc->put(DOC_TIPOCF,"C");
|
||||
doc->put(DOC_CODCF,codcf);
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
TDocumento& TAcquisizione_cache::doc(const TDate& gg, const long cc)
|
||||
{
|
||||
TString16 key;
|
||||
key << gg.date2ansi() << '|' << cc;
|
||||
return *(TDocumento*)objptr(key);
|
||||
}
|
||||
|
||||
TAcquisizione_cache::TAcquisizione_cache() : TCache(17)
|
||||
{
|
||||
TConfig cfg(CONFIG_DITTA,"lv");
|
||||
_codnum=cfg.get("NUM_RIT",NULL,0);
|
||||
_tipodoc=cfg.get("TIPOOC_RIT",NULL,0);
|
||||
_stato=cfg.get("STATO_RIT",NULL,0);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TAcquisizione_lavanderie_app
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
class TAcquisizione_lavanderie_app : public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TAcquisizione_lavanderie_app::main_loop()
|
||||
{
|
||||
TAcquisizione_msk msk;
|
||||
while (msk.run()!=K_QUIT)
|
||||
{
|
||||
TFilename name;
|
||||
name=msk.get(F_PATH);
|
||||
name.add(msk.get(F_NAME));
|
||||
TAcquisizione_cache ca;
|
||||
TCSV_recordset csvbolle(name);
|
||||
for(bool ok=csvbolle.move_first(); ok; ok=csvbolle.move_next())
|
||||
{
|
||||
const long cli = csvbolle.get(0).as_int();
|
||||
const TDate dtdoc = csvbolle.get(1).as_date();
|
||||
const TString80 codart = csvbolle.get(2).as_string();
|
||||
const long qta = csvbolle.get(3).as_int();
|
||||
const TString4 um= csvbolle.get(4).as_string();
|
||||
bool found=false;
|
||||
|
||||
TDocumento& doc = ca.doc(dtdoc,cli);
|
||||
for (int i=1; doc.rows(); i++)
|
||||
{
|
||||
TRiga_documento& rdoc = doc[i];
|
||||
if (rdoc.get(RDOC_CODART)==codart)
|
||||
{
|
||||
long qtardoc = rdoc.get_long(RDOC_QTA);
|
||||
qtardoc+=qta;
|
||||
rdoc.put(RDOC_QTA,qtardoc);
|
||||
found=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (found==false)
|
||||
{
|
||||
TRiga_documento& rdoc = doc.new_row("01");
|
||||
rdoc.put(RDOC_CODART,codart);
|
||||
rdoc.put(RDOC_QTA,qta);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int lv2600(int argc, char *argv[])
|
||||
{
|
||||
TAcquisizione_lavanderie_app a;
|
||||
a.run (argc, argv, "Acquisizione bolle di rientro/ritiro");
|
||||
return TRUE;
|
||||
}
|
2
lv/lv2600a.h
Executable file
2
lv/lv2600a.h
Executable file
@ -0,0 +1,2 @@
|
||||
#define F_PATH 101
|
||||
#define F_NAME 102
|
37
lv/lv2600a.uml
Executable file
37
lv/lv2600a.uml
Executable file
@ -0,0 +1,37 @@
|
||||
#include "lv2600a.h"
|
||||
|
||||
PAGE "Aquisizione" -1 -1 40 5
|
||||
|
||||
GROUPBOX DLG_NULL 76 4
|
||||
BEGIN
|
||||
PROMPT 2 4 "@bSorgente"
|
||||
END
|
||||
|
||||
STRING F_PATH 256 39
|
||||
BEGIN
|
||||
PROMPT 3 5 "Cartella "
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_NAME 18
|
||||
BEGIN
|
||||
PROMPT 3 6 "File "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING DLG_PROFILE 50
|
||||
BEGIN
|
||||
PROMPT 1 -1 "Profilo "
|
||||
SHEET PSELECT
|
||||
FLAGS "H"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
TOOLBAR "" 0 0 0 2
|
||||
#include <elabar.h>
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user