Files correlati : Ricompilazione Demo : [ ] Commento : Rportata la versione 3.2 patch 1314 git-svn-id: svn://10.65.10.50/trunk@18269 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			1459 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			1459 lines
		
	
	
		
			39 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #include "pn0001.h"
 | |
| #include "pn0001100.h"
 | |
| #include <automask.h>
 | |
| #include <progind.h>
 | |
| #include <reprint.h>
 | |
| #include <tabutil.h>
 | |
| 
 | |
| #include "../mg/anamag.h"
 | |
| #include "../mg/mag.h"
 | |
| #include "../mg/codcorr.h"
 | |
| #include "../mg/umart.h"
 | |
| #include "../ve/condv.h"
 | |
| #include "../ve/rcondv.h"
 | |
| #include <clifo.h>
 | |
| #include <cfven.h>
 | |
| 
 | |
| #include <applicat.h>
 | |
| #include <recarray.h>
 | |
| #include <relation.h>
 | |
| #include <reputils.h>
 | |
| #include <textset.h>
 | |
| 
 | |
| #include "../cg/cglib01.h"
 | |
| 
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TDettaglio_mask
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TDettaglio_mask : public TAutomask
 | |
| {
 | |
| 
 | |
| private:
 | |
|   void serialize(bool bSave);
 | |
| 
 | |
| protected:
 | |
|   virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | |
| 
 | |
| public:
 | |
|   TDettaglio_mask();
 | |
|   ~TDettaglio_mask();
 | |
| };
 | |
| 
 | |
| bool TDettaglio_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | |
| {
 | |
|   bool ok = true;
 | |
|   switch (o.dlg())
 | |
|   {
 | |
|   case F_PATH:
 | |
|     break;
 | |
|   default:
 | |
|     break;
 | |
|   }
 | |
|   return ok;
 | |
| }
 | |
| 
 | |
| void TDettaglio_mask::serialize(bool bSave)
 | |
| {
 | |
|   const char* defpar = "tc";
 | |
|   TConfig ini(CONFIG_DITTA, defpar);
 | |
|   for (int i = fields()-1; i >= 0; i--)
 | |
|   {
 | |
|     TMask_field& f = fld(i);
 | |
|     const TFieldref* fr = f.field();
 | |
|     if (fr != NULL)
 | |
|     {
 | |
|       if (bSave)
 | |
|         fr->write(ini, defpar, f.get());
 | |
|       else
 | |
|         f.set(fr->read(ini, defpar));
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| TDettaglio_mask::TDettaglio_mask() 
 | |
|          : TAutomask("pn0001100")
 | |
| {
 | |
|   serialize(false);
 | |
| }
 | |
| 
 | |
| TDettaglio_mask::~TDettaglio_mask()
 | |
| {
 | |
|   serialize(true);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TDettaglio_receiver
 | |
| ///////////////////////////////////////////////////////////
 | |
| class TDettaglio_receiver : public TSkeleton_application
 | |
| {
 | |
| 	int _len;
 | |
| 	
 | |
| protected:
 | |
| 	void load_clifo(const TDettaglio_mask & m);
 | |
| 	void load_classi(const TDettaglio_mask & m);
 | |
| 	void load_marche(const TDettaglio_mask & m);
 | |
| 	void load_articoli(const TDettaglio_mask & m);
 | |
| 	void load_barcode(const TDettaglio_mask & m);
 | |
| 	void load_listino(const TDettaglio_mask & m);
 | |
| 	void load_giacenze(const TDettaglio_mask & m);
 | |
| 	void load_costi(const TDettaglio_mask & m);
 | |
| 	void add_to_tab(const TString & codtab, const TString & cod, const char * desc = "");
 | |
| 	const TString & build_codart(const TString & gruppo, const long codice);
 | |
| 	virtual const char * extra_modules() const {return "vd";}
 | |
| 
 | |
| public:
 | |
| 	virtual bool create();
 | |
|   virtual void main_loop();
 | |
| 	virtual bool destroy();
 | |
|   TDettaglio_receiver() : _len(5) {}
 | |
| };
 | |
| 
 | |
| TDettaglio_receiver& app() { return (TDettaglio_receiver&)main_app(); }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TClifo_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TClifo_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TClifo_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TClifo_textset::add_field(const char* name, int len, 
 | |
| 														char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TClifo_textset::TClifo_textset(const char* query)
 | |
|              :  TAS400_recordset(TString("AS400(1947,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
| 
 | |
| 	add_field("VALICF", 1, an, 1);		//	MFANCF00
 | |
| 	add_field("ATIPCF", 1, an, 2);
 | |
| 	add_field("ACODCF", 22, an, 3);
 | |
| 	add_field("AFIGIU", 1, an, 25);
 | |
| 	add_field("ARAGSO", 40, an, 26);
 | |
| 	add_field("AINDIR", 40, an, 66);
 | |
| 	add_field("ALOCAL", 30, an, 106);
 | |
| 	add_field("ACAP", 5, an, 136);
 | |
| 	add_field("APROVI", 2, an, 141);
 | |
| 	add_field("ANAZIO", 3, an, 143);
 | |
| 	add_field("APOSCN", 6, an, 146);
 | |
| 	add_field("APECOT", 30, an, 152);
 | |
| 	add_field("ACOSPE", 22, an, 182);
 | |
| 	add_field("APARIV", 11, an, 204);
 | |
| 	add_field("ACODFI", 16, an, 215);
 | |
| 	add_field("ANUTE1", 20, an, 231);
 | |
| 	add_field("ANUTE2", 20, an, 251);
 | |
| 	add_field("ANUFAX", 20, an, 271);
 | |
| 	add_field("ACOPAG", 2, an, 291);
 | |
| 	add_field("ACOIVA", 6, an, 293);
 | |
| 	add_field("ACOABI", 22, an, 299);
 | |
| 	add_field("ACOCAB", 22, an, 321);
 | |
| 	add_field("ACODCC", 15, an, 343);
 | |
| 	add_field("ACOPOR", 2, an, 358);
 | |
| 	add_field("ACOSTA", 4, an, 360);
 | |
| 	add_field("ACOST2", 4, an, 364);
 | |
| 	add_field("ACOST3", 4, an, 368);
 | |
| 	add_field("ACOTRA", 3, an, 372);
 | |
| 	add_field("ACOZON", 4, an, 375);
 | |
| 	add_field("ACOITI", 6, an, 379);
 | |
| 	add_field("ACOVAL", 3, an, 385);
 | |
| 	add_field("ATIFAT", 2, an, 388);
 | |
| 	add_field("FIDO", 22, an, 390);
 | |
| 	add_field("ASCOT1", 22, an, 412);
 | |
| 	add_field("ASCOT2", 22, an, 434);
 | |
| 	add_field("ASCOD1", 22, an, 456);
 | |
| 	add_field("ASCOD2", 22, an, 478);
 | |
| 	add_field("ASCOD3", 22, an, 500);
 | |
| 	add_field("ASCOD4", 22, an, 522);
 | |
| 	add_field("ACOAGE", 6, an, 544);
 | |
| 	add_field("ACOISP", 6, an, 550);
 | |
| 	add_field("ARITSC", 6, an, 556);
 | |
| 	add_field("APETRA", 22, an, 562);
 | |
| 	add_field("AAGEIV", 1, an, 584);
 | |
| 	add_field("ARAGBO", 2, an, 585);
 | |
| 	add_field("ACAINC", 1, an, 587);
 | |
| 	add_field("ACABOL", 1, an, 588);
 | |
| 	add_field("AAGPRA", 1, an, 589);
 | |
| 	add_field("ATRASF", 1, an, 590);
 | |
| 	add_field("ATRATE", 1, an, 591);
 | |
| 	add_field("ANOCPR", 1, an, 592);
 | |
| 	add_field("ASTSOL", 1, an, 593);
 | |
| 	add_field("ADATSO", 22, an, 594);
 | |
| 	add_field("ACOVET", 2, an, 616);
 | |
| 	add_field("ADIPRE", 1, an, 618);
 | |
| 	add_field("AGEPRE", 1, an, 619);
 | |
| 	add_field("AINSPE", 22, an, 620);
 | |
| 	add_field("AARBCO", 1, an, 642);
 | |
| 	add_field("AGRUCO", 6, an, 643);
 | |
| 	add_field("ACONTO", 6, an, 649);
 | |
| 	add_field("ASOTCO", 22, an, 655);
 | |
| 	add_field("AGRCON", 6, an, 677);
 | |
| 	add_field("ACOCON", 6, an, 683);
 | |
| 	add_field("AALLEG", 6, an, 689);
 | |
| 	add_field("ADAGI1", 6, an, 695);
 | |
| 	add_field("ADAME1", 6, an, 701);
 | |
| 	add_field("AALGI1", 6, an, 707);
 | |
| 	add_field("AALME1", 6, an, 713);
 | |
| 	add_field("ADAGI2", 6, an, 719);
 | |
| 	add_field("ADAME2", 6, an, 725);
 | |
| 	add_field("AALGI2", 6, an, 731);
 | |
| 	add_field("AALME2", 6, an, 737);
 | |
| 	add_field("ALISCF", 1, an, 743);
 | |
| 	add_field("AGIOCH", 9, an, 744);
 | |
| 	add_field("AORACO", 15, an, 753);
 | |
| 	add_field("ACALPR", 6, an, 768);
 | |
| 	add_field("APERPR", 22, an, 774);
 | |
| 	add_field("APROAR", 6, an, 796);
 | |
| 	add_field("ANULIN", 6, an, 802);
 | |
| 	add_field("ADALIN", 22, an, 808);
 | |
| 	add_field("ADAINL", 22, an, 830);
 | |
| 	add_field("ADAFIL", 22, an, 852);
 | |
| 	add_field("ATABLI", 6, an, 874);
 | |
| 	add_field("ALISIP", 6, an, 880);
 | |
| 	add_field("ALISIS", 6, an, 886);
 | |
| 	add_field("ACODCO", 5, an, 892);
 | |
| 	add_field("ALINGU", 1, an, 897);
 | |
| 	add_field("ACDTAR", 3, an, 898);
 | |
| 	add_field("AKMTRA", 6, an, 901);
 | |
| 	add_field("AMARCA", 6, an, 907);
 | |
| 	add_field("ACOCOM", 4, an, 913);
 | |
| 	add_field("AIMP01", 6, an, 917);
 | |
| 	add_field("AIMP02", 22, an, 923);
 | |
| 	add_field("AIMP03", 22, an, 945);
 | |
| 	add_field("ABLOFO", 1, an, 967);
 | |
| 	add_field("AFLA01", 1, an, 968);
 | |
| 	add_field("AFLA02", 1, an, 969);
 | |
| 	add_field("AFLA03", 1, an, 970);
 | |
| 	add_field("AFLA04", 1, an, 971);
 | |
| 	add_field("AFLA05", 1, an, 972);
 | |
| 	add_field("AFLA06", 1, an, 973);
 | |
| 	add_field("AFLA07", 1, an, 974);
 | |
| 	add_field("AFLA08", 1, an, 975);
 | |
| 	add_field("AFLA09", 1, an, 976);
 | |
| 	add_field("AFLA10", 1, an, 977);
 | |
| 	add_field("ACFTER", 10, an, 978);
 | |
| 	add_field("AUTECR", 2, an, 988);
 | |
| 	add_field("ADATCR", 22, an, 990);
 | |
| 	add_field("AUTEVA", 2, an, 1012);
 | |
| 	add_field("ADATVA", 22, an, 1014);
 | |
| 	add_field("ATAVET", 3, an, 1036);
 | |
| 	add_field("AORDEV", 1, an, 1039);
 | |
| 	add_field("ABLOOR", 1, an, 1040);
 | |
| 	add_field("AGESIN", 1, an, 1041);
 | |
| 	add_field("AORFAX", 1, an, 1042);;
 | |
| 	add_field("ACOREG", 6, an, 1043);
 | |
| 	add_field("ACOSP1", 2, an, 1049);
 | |
| 	add_field("ACOSP2", 2, an, 1051);
 | |
| 	add_field("ACOSP3", 2, an, 1053);
 | |
| 	add_field("FOTO1", 50, an, 1055);
 | |
| 	add_field("FOTO2", 50, an, 1105);
 | |
| 	add_field("WEB", 50, an, 1155);
 | |
| 	add_field("NOTE", 512, an, 1205);
 | |
| 	add_field("KEY_U", 10, an, 1717);
 | |
| 	add_field("APRBAN", 5, an, 1727);
 | |
| 	add_field("ASTEUR", 1, an, 1732);
 | |
| 	add_field("AGERGO", 1, an, 1733);
 | |
| 	add_field("ARITME", 22, an, 1734);
 | |
| 	add_field("ASPIN1", 22, an, 1756);
 | |
| 	add_field("ASPIN2", 22, an, 1778);
 | |
| 	add_field("ASPIN3", 22, an, 1800);
 | |
| 	add_field("ASPIN4", 22, an, 1822);
 | |
| 	add_field("ASPIN5", 22, an, 1844);
 | |
| 	add_field("AINDIR2", 40, an, 1866);
 | |
| 	add_field("AINDIR3", 40, an, 1906);
 | |
| 
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TAnamag_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TAnamag_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TAnamag_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TAnamag_textset::add_field(const char* name, int len, 
 | |
| 														char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TAnamag_textset::TAnamag_textset(const char* query)
 | |
|               :  TAS400_recordset(TString("AS400(2550,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
| 
 | |
| 	add_field("AVALAN", 1, an, 1);		//    MFARTI00
 | |
| 	add_field("AGRUPP", 2, an, 2);
 | |
| 	add_field("ACODAR", 22, an, 4);
 | |
| 	add_field("ADESAR", 40, an, 26);
 | |
| 	add_field("AUNMVE", 2, an, 66);
 | |
| 	add_field("AUNMAC", 2, an, 68);
 | |
| 	add_field("ACOEFF", 22, an, 70);
 | |
| 	add_field("ACODIV", 6, an, 92);
 | |
| 	add_field("AIVAAG", 6, an, 98);
 | |
| 	add_field("ACLASS", 2, an, 104);
 | |
| 	add_field("ACATEG", 2, an, 106);
 | |
| 	add_field("ALINEA", 4, an, 108);
 | |
| 	add_field("ALINAQ", 4, an, 112);
 | |
| 	add_field("ACOMAR", 6, an, 116);
 | |
| 	add_field("ADTVAL", 22, an, 122);
 | |
| 	add_field("ACONFE", 22, an, 144);
 | |
| 	add_field("AQTAIM", 22, an, 166);
 | |
| 	add_field("APESOA", 22, an, 188);
 | |
| 	add_field("APESOC", 22, an, 210);
 | |
| 	add_field("APESOI", 22, an, 232);
 | |
| 	add_field("AVOLUA", 22, an, 254);
 | |
| 	add_field("AVOLUC", 22, an, 276);
 | |
| 	add_field("AVOLUI", 22, an, 298);
 | |
| 	add_field("ACAMPR", 8, an, 320);
 | |
| 	add_field("AFASCO", 2, an, 328);
 | |
| 	add_field("AASPES", 2, an, 330);
 | |
| 	add_field("ACOMPO", 2, an, 332);
 | |
| 	add_field("ACODST", 4, an, 334);
 | |
| 	add_field("ACODSG", 4, an, 338);
 | |
| 	add_field("AGRURA", 2, an, 342);
 | |
| 	add_field("ACODRA", 22, an, 344);
 | |
| 	add_field("APROV1", 22, an, 366);
 | |
| 	add_field("APROV2", 22, an, 388);
 | |
| 	add_field("APROV3", 22, an, 410);
 | |
| 	add_field("APROV4", 22, an, 432);
 | |
| 	add_field("APROV5", 22, an, 454);
 | |
| 	add_field("ATRASR", 1, an, 476);
 | |
| 	add_field("ATRTER", 1, an, 477);
 | |
| 	add_field("ANOLIS", 1, an, 478);
 | |
| 	add_field("ARIDES", 1, an, 479);
 | |
| 	add_field("ATAGCO", 4, an, 480);
 | |
| 	add_field("APOSCU", 1, an, 484);
 | |
| 	add_field("ATIPRO", 1, an, 485);
 | |
| 	add_field("ACDCAL", 1, an, 486);
 | |
| 	add_field("AGESCO", 8, an, 487);
 | |
| 	add_field("ACDREP", 3, an, 495);
 | |
| 	add_field("ACDNOM", 12, an, 498);
 | |
| 	add_field("AUNMAL", 2, an, 510);
 | |
| 	add_field("ACOEFA", 22, an, 512);
 | |
| 	add_field("ANOINV", 1, an, 534);
 | |
| 	add_field("AGEMAT", 1, an, 535);
 | |
| 	add_field("AGEVUO", 1, an, 536);
 | |
| 	add_field("AGECOL", 1, an, 537);
 | |
| 	add_field("AGELOT", 1, an, 538);
 | |
| 	add_field("AFLG01", 1, an, 539);
 | |
| 	add_field("AFLG02", 1, an, 540);
 | |
| 	add_field("AFLG03", 1, an, 541);
 | |
| 	add_field("AFLG04", 1, an, 542);
 | |
| 	add_field("AFLG05", 1, an, 543);
 | |
| 	add_field("AFLG06", 1, an, 544);
 | |
| 	add_field("AFLG07", 1, an, 545);
 | |
| 	add_field("AFLG08", 1, an, 546);
 | |
| 	add_field("AFLG09", 1, an, 547);
 | |
| 	add_field("AFLG10", 1, an, 548);
 | |
| 	add_field("ALISGR", 3, an, 549);
 | |
| 	add_field("ALISSQ", 22, an, 552);
 | |
| 	add_field("AIDTER", 10, an, 574);
 | |
| 	add_field("ARUTCR", 2, an, 584);
 | |
| 	add_field("ARDTCR", 19, an, 586);
 | |
| 	add_field("ARUTVA", 2, an, 605);
 | |
| 	add_field("ARDTVA", 19, an, 607);
 | |
| 	add_field("FOTO", 250, an, 626);
 | |
| 	add_field("KEY_U", 10, an, 876);
 | |
| 	add_field("INVMAG", 8, an, 886);
 | |
| 	add_field("ADTSOS", 19, an, 894);
 | |
| 	add_field("AFLSOS", 1, an, 913);
 | |
| 	add_field("AGEMIS", 1, an, 914);
 | |
| 	add_field("AMISMM", 6, an, 915);
 | |
| 	add_field("AMISMF", 22, an, 921);
 | |
| 	add_field("AECOM1", 5, an, 943);
 | |
| 	add_field("AECOM2", 5, an, 948);
 | |
| 	add_field("AECOM3", 5, an, 953);
 | |
| 	add_field("AECOM4", 5, an, 958);
 | |
| 	add_field("ATRACA", 1, an, 963);
 | |
| 	add_field("ATRACA1", 1, an, 964);
 | |
| 	add_field("AFLG11", 1, an, 965);
 | |
| 	add_field("AFLG12", 1, an, 966);
 | |
| 	add_field("AFLG13", 1, an, 967);
 | |
| 	add_field("AFLG14", 1, an, 968);
 | |
| 	add_field("AFLG15", 1, an, 969);
 | |
| 	add_field("AFLG16", 1, an, 970);
 | |
| 	add_field("AFLG17", 1, an, 971);
 | |
| 	add_field("AFLG18", 1, an, 972);
 | |
| 	add_field("AFLG19", 1, an, 973);
 | |
| 	add_field("AFLG20", 1, an, 974);
 | |
| 	add_field("AANNOP", 6, an, 975);
 | |
| 	add_field("ANUMPA", 6, an, 981);
 | |
| 	add_field("ADESAR2", 40, an, 987);
 | |
| 	add_field("FOTO2", 250, an, 1027);
 | |
| 	add_field("FOTO3", 250, an, 1277);
 | |
| 	add_field("FOTO4", 250, an, 1527);
 | |
| 	add_field("FOTO5", 250, an, 1777);
 | |
| 	add_field("FOTO6", 250, an, 2027);
 | |
| 	add_field("FOTO7", 250, an, 2277);
 | |
| 	add_field("ACODOFF", 22, an, 2527);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TBarcoode_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TBarcode_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TBarcode_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TBarcode_textset::add_field(const char* name, int len, 
 | |
| 														char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TBarcode_textset::TBarcode_textset(const char* query)
 | |
|                 : TAS400_recordset(TString("AS400(320,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
| 
 | |
| 	add_field("BVALAR", 1, an, 1);		//  MFARB00
 | |
| 	add_field("BGRUPP", 2, an, 2);
 | |
| 	add_field("BCODAR", 22, an, 4);
 | |
| 	add_field("BTIPRE", 1, an, 26);
 | |
| 	add_field("BBARCO", 20, an, 27);
 | |
| 	add_field("BTIPCF", 1, an, 47);
 | |
| 	add_field("BCODCL", 22, an, 48);
 | |
| 	add_field("BCOPRI", 1, an, 70);
 | |
| 	add_field("BQTAMO", 22, an, 71);
 | |
| 	add_field("BCONFE", 22, an, 93);
 | |
| 	add_field("BQTAIM", 22, an, 115);
 | |
| 	add_field("BNOT40", 40, an, 137);
 | |
| 	add_field("BBLORI", 1, an, 177);
 | |
| 	add_field("BRIFRI", 6, an, 178);
 | |
| 	add_field("BRIFCO", 6, an, 184);
 | |
| 	add_field("BLISTI", 22, an, 190);
 | |
| 	add_field("BTIPMA", 1, an, 212);
 | |
| 	add_field("BPERMA", 22, an, 213);
 | |
| 	add_field("KEY_U", 40, an, 235);
 | |
| 	add_field("KEYB", 40, an, 275);
 | |
| 	add_field("BPESO", 1, an, 315);
 | |
| 	add_field("BCODBIL", 3, an, 316);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TListino_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TListino_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TListino_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TListino_textset::add_field(const char* name, int len, 
 | |
| 														char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
| 	if (tipo == 'r')
 | |
| 		tipo = _realfld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TListino_textset::TListino_textset(const char* query)
 | |
|                 : TAS400_recordset(TString("AS400(626,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
|   const char r = 'r';
 | |
| 
 | |
| 	add_field("LVALAR", 1, an, 1);	//	MFARLI00
 | |
| 	add_field("LGRUPP", 2, an, 2);
 | |
| 	add_field("LCODAR", 22, an, 4);
 | |
| 	add_field("LCODLI", 6, an, 26);
 | |
| 	add_field("LTIPCF", 1, an, 32);
 | |
| 	add_field("LCFTAB", 6, an, 33);
 | |
| 	add_field("LCOPRI", 1, an, 39);
 | |
| 	add_field("LDESAR", 40, an, 40);
 | |
| 	add_field("LLISTI", 22, r, 80);
 | |
| 	add_field("LCOSTO", 22, r, 102);
 | |
| 	add_field("LLIFVE", 22, an, 124);
 | |
| 	add_field("LDTSCA", 19, an, 146);
 | |
| 	add_field("LSCOD1", 22, an, 165);
 | |
| 	add_field("LSCOD2", 22, an, 187);
 | |
| 	add_field("LSCOD3", 22, an, 209);
 | |
| 	add_field("LSCOD4", 22, an, 231);
 | |
| 	add_field("LPROVV", 22, an, 253);
 | |
| 	add_field("LNOMOD", 1, an, 275);
 | |
| 	add_field("LNOSCO", 1, an, 276);
 | |
| 	add_field("LCOFAM", 5, an, 277);
 | |
| 	add_field("LGGAPR", 6, an, 282);
 | |
| 	add_field("LMAGFO", 22, an, 288);
 | |
| 	add_field("LNOTE", 20, an, 310);
 | |
| 	add_field("LRINOT", 1, an, 330);
 | |
| 	add_field("LLISTG", 22, an, 331);
 | |
| 	add_field("LCOSTG", 22, an, 353);
 | |
| 	add_field("LLIFVG", 22, an, 375);
 | |
| 	add_field("LSCO1G", 22, an, 397);
 | |
| 	add_field("LSCO2G", 22, an, 419);
 | |
| 	add_field("LSCO3G", 22, an, 441);
 | |
| 	add_field("LSCO4G", 22, an, 463);
 | |
| 	add_field("LIDTER", 10, an, 485);
 | |
| 	add_field("LUTECR", 2, an, 495);
 | |
| 	add_field("LDATCR", 19, an, 497);
 | |
| 	add_field("LUTEVA", 2, an, 516);
 | |
| 	add_field("LDATVA", 19, an, 518);
 | |
| 	add_field("KEY_U", 20, an, 537);
 | |
| 	add_field("KEYB", 20, an, 557);
 | |
| 	add_field("KEYFORART", 20, an, 577);
 | |
| 	add_field("KEYART", 20, an, 597);
 | |
| 	add_field("INVMAG", 8, an, 617);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TGiacenze_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TGiacenze_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TGiacenze_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TGiacenze_textset::add_field(const char* name, int len, 
 | |
| 														char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TGiacenze_textset::TGiacenze_textset(const char* query)
 | |
|                  : TAS400_recordset(TString("AS400(1416,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
| 
 | |
| 	add_field("SVALAN", 1, an, 1);     //  MFARSA00
 | |
| 	add_field("SGRUPP", 2, an, 2);
 | |
| 	add_field("SCODAR", 22, an, 4);
 | |
| 	add_field("SCODDE", 6, an, 26);
 | |
| 	add_field("SSCMIN", 22, an, 32);
 | |
| 	add_field("SSCMAX", 22, an, 54);
 | |
| 	add_field("SCODUB", 5, an, 76);
 | |
| 	add_field("SLOTRI", 22, an, 81);
 | |
| 	add_field("SQTAOC", 22, an, 103);
 | |
| 	add_field("SQTAOF", 22, an, 125);
 | |
| 	add_field("SQTAIM", 22, an, 147);
 | |
| 	add_field("SQTPRO", 22, an, 169);
 | |
| 	add_field("SQTAPR", 22, an, 191);
 | |
| 	add_field("SCOSPR", 22, an, 213);
 | |
| 	add_field("SESINI", 22, an, 235);
 | |
| 	add_field("SESIDI", 22, an, 257);
 | |
| 	add_field("SESICO", 22, an, 279);
 | |
| 	add_field("SESVIS", 22, an, 301);
 | |
| 	add_field("SDAULA", 22, an, 323);
 | |
| 	add_field("SDAENT", 19, an, 345);
 | |
| 	add_field("SDAUSC", 19, an, 364);
 | |
| 	add_field("STVACD", 22, an, 383);
 | |
| 	add_field("STVACC", 22, an, 405);
 | |
| 	add_field("STVASD", 22, an, 427);
 | |
| 	add_field("STVASC", 22, an, 449);
 | |
| 	add_field("SQTD01", 22, an, 471);
 | |
| 	add_field("SQTD02", 22, an, 493);
 | |
| 	add_field("SQTD03", 22, an, 515);
 | |
| 	add_field("SQTD04", 22, an, 537);
 | |
| 	add_field("SQTD05", 22, an, 559);
 | |
| 	add_field("SQTD06", 22, an, 581);
 | |
| 	add_field("SQTD07", 22, an, 603);
 | |
| 	add_field("SQTD08", 22, an, 625);
 | |
| 	add_field("SQTD09", 22, an, 647);
 | |
| 	add_field("SQTD10", 22, an, 669);
 | |
| 	add_field("SQTD11", 22, an, 691);
 | |
| 	add_field("SQTD12", 22, an, 713);
 | |
| 	add_field("SQTD13", 22, an, 735);
 | |
| 	add_field("SQTD14", 22, an, 757);
 | |
| 	add_field("SQTD15", 22, an, 779);
 | |
| 	add_field("SQTD16", 22, an, 801);
 | |
| 	add_field("SQTD17", 22, an, 823);
 | |
| 	add_field("SQTD18", 22, an, 845);
 | |
| 	add_field("SQTC01", 22, an, 867);
 | |
| 	add_field("SQTC02", 22, an, 889);
 | |
| 	add_field("SQTC03", 22, an, 911);
 | |
| 	add_field("SQTC04", 22, an, 933);
 | |
| 	add_field("SQTC05", 22, an, 955);
 | |
| 	add_field("SQTC06", 22, an, 977);
 | |
| 	add_field("SQTC07", 22, an, 999);
 | |
| 	add_field("SQTC08", 22, an, 1021);
 | |
| 	add_field("SQTC09", 22, an, 1043);
 | |
| 	add_field("SQTC10", 22, an, 1065);
 | |
| 	add_field("SQTC11", 22, an, 1087);
 | |
| 	add_field("SQTC12", 22, an, 1109);
 | |
| 	add_field("SQTC13", 22, an, 1131);
 | |
| 	add_field("SQTC14", 22, an, 1153);
 | |
| 	add_field("SQTC15", 22, an, 1175);
 | |
| 	add_field("SQTC16", 22, an, 1197);
 | |
| 	add_field("SQTC17", 22, an, 1219);
 | |
| 	add_field("SQTC18", 22, an, 1241);
 | |
| 	add_field("SQTULC", 22, an, 1263);
 | |
| 	add_field("SQTULS", 22, an, 1285);
 | |
| 	add_field("STIPDE", 1, an, 1307);
 | |
| 	add_field("SIDTER", 10, an, 1308);
 | |
| 	add_field("SUTECR", 2, an, 1318);
 | |
| 	add_field("SDATCR", 22, an, 1320);
 | |
| 	add_field("SUTEVA", 2, an, 1342);
 | |
| 	add_field("SDATVA", 22, an, 1344);
 | |
| 	add_field("SDESDE", 30, an, 1366);
 | |
| 	add_field("KEY_U", 10, an, 1396);
 | |
| 	add_field("INVMAG", 8, an, 1406);
 | |
| 	add_field("SINVEN", 1, an, 1414);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TCosti_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TCosti_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TCosti_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TCosti_textset::add_field(const char* name, int len, 
 | |
| 														char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TCosti_textset::TCosti_textset(const char* query)
 | |
|               : TAS400_recordset(TString("AS400(390,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
| 
 | |
| 	add_field("SVALAN", 1, an, 1);		//	MFARC00
 | |
| 	add_field("SGRUPP", 2, an, 2);
 | |
| 	add_field("SCODAR", 22, an, 4);
 | |
| 	add_field("STIPDE", 1, an, 26);
 | |
| 	add_field("SCUFIA", 22, an, 27);
 | |
| 	add_field("SQTACD", 22, an, 49);
 | |
| 	add_field("SVALCD", 22, an, 71);
 | |
| 	add_field("SQTACC", 22, an, 93);
 | |
| 	add_field("SVALCC", 22, an, 115);
 | |
| 	add_field("SCOULD", 22, an, 137);
 | |
| 	add_field("SCOULC", 22, an, 159);
 | |
| 	add_field("SPRULD", 22, an, 181);
 | |
| 	add_field("SPRULC", 22, an, 203);
 | |
| 	add_field("SQTAVD", 22, an, 225);
 | |
| 	add_field("SVAAVD", 22, an, 247);
 | |
| 	add_field("SQTAVC", 22, an, 269);
 | |
| 	add_field("SVAAVC", 22, an, 291);
 | |
| 	add_field("SIDTER", 10, an, 313);
 | |
| 	add_field("SUTECR", 2, an, 323);
 | |
| 	add_field("SDATCR", 22, an, 325);
 | |
| 	add_field("SUTEVA", 2, an, 347);
 | |
| 	add_field("SDATVA", 22, an, 349);
 | |
| 	add_field("KEY_U", 10, an, 371);
 | |
| 	add_field("INVMAG", 8, an, 381);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TClasse_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TClasse_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TClasse_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TClasse_textset::add_field(const char* name, int len, 
 | |
| 														char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TClasse_textset::TClasse_textset(const char* query)
 | |
|                : TAS400_recordset(TString("AS400(47,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
| 
 | |
| 	add_field("CODCLA", 2, an, 1);
 | |
| 	add_field("DESCLA", 20, an, 3);
 | |
| 	add_field("TRASF", 1, an, 23);
 | |
| 	add_field("PERCENT", 22, an, 24);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TMarca_textset
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| class TMarca_textset : public TAS400_recordset
 | |
| {
 | |
| 
 | |
| protected:
 | |
| 
 | |
| protected:
 | |
|   void add_field(const char* name = "Filler", int len = 0, char tipo = 'a', 
 | |
| 								 int from = -1, const char* def = NULL);
 | |
| 
 | |
| public:
 | |
|   TMarca_textset(const char* query = "");
 | |
| };
 | |
| 
 | |
| void TMarca_textset::add_field(const char* name, int len, 
 | |
| 					    								 char tipo, int from, const char* def)
 | |
| {
 | |
| 	const bool required = false;
 | |
|   TString80 fname(name);
 | |
| 
 | |
|   const TFieldtypes t = tipo == 'n' ? _longzerofld : _alfafld;
 | |
|   const int pos = from - 1;
 | |
|   if (def && *def)
 | |
|   {
 | |
|     CHECKS(def == NULL || (int)strlen(def) <= len, "Invalid default value ", def);
 | |
|     TVariant var(def); var.convert_to(t);
 | |
|     create_field(fname, pos, len, t, required, var);
 | |
|   }
 | |
|   else
 | |
|     create_field(fname, pos, len, t, required);
 | |
| }
 | |
| 
 | |
| TMarca_textset::TMarca_textset(const char* query)
 | |
|                : TAS400_recordset(TString("AS400(29,0,0)\n") << query)
 | |
| {
 | |
|   const char an = 'a';
 | |
|   const char n = 'n';
 | |
| 
 | |
| 	add_field("CODMAR", 6, an, 1);
 | |
| 	add_field("DESMAR", 20, an, 7);
 | |
| 	add_field("TRASF", 1, an, 27);
 | |
| }
 | |
| 
 | |
| ///////////////////////////////////////////////////////////
 | |
| // TDettaglio_receiver
 | |
| ///////////////////////////////////////////////////////////
 | |
| 
 | |
| bool TDettaglio_receiver::create()
 | |
| {
 | |
| 	return TSkeleton_application::create();
 | |
| }
 | |
| 
 | |
| bool TDettaglio_receiver::destroy()
 | |
| {
 | |
| 	return TSkeleton_application::destroy();
 | |
| }
 | |
| 
 | |
| const TString & TDettaglio_receiver::build_codart(const TString & gruppo, const long codice)
 | |
| {
 | |
| 	TString & tmp = get_tmp_string(80);
 | |
| 
 | |
| 	tmp.format("%ld", codice);
 | |
| 	tmp.right_just(_len, '0');
 | |
| 	tmp.insert(gruppo);
 | |
| 	return tmp;
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::add_to_tab(const TString & codtab, const TString & cod, const char * desc)
 | |
| {
 | |
| 	if (cod.full())
 | |
| 	{
 | |
| 		TTable tab(codtab);
 | |
| 		TString d(desc);
 | |
| 		tab.put("CODTAB", cod);
 | |
| 		d.trim();
 | |
| 		if (tab.read() != NOERR)
 | |
| 		{
 | |
| 			tab.zero();
 | |
| 			tab.put("CODTAB", cod);
 | |
| 			tab.put("S0", desc);
 | |
| 			tab.write();
 | |
| 		}
 | |
| 		else
 | |
| 			if (d.full())
 | |
| 			{
 | |
| 				tab.put("S0", d);
 | |
| 				tab.rewrite();
 | |
| 			}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_classi(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 
 | |
| 	name.add("tab_cla.txt");
 | |
| 	query << name;
 | |
| 
 | |
| 	TClasse_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("Importazione classi "), true, true);
 | |
|   for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		const TString & cod = inputfile.get("CODCLA").as_string();
 | |
| 
 | |
| 		add_to_tab("GMC", cod, inputfile.get("DESCLA").as_string());
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_marche(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 
 | |
| 	name.add("tab_mar.txt");
 | |
| 	query << name;
 | |
| 
 | |
| 	TMarca_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("Importazione marche "), true, true);
 | |
|   for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		const TString & cod = inputfile.get("CODMAR").as_string();
 | |
| 
 | |
| 		add_to_tab("RFA", cod, inputfile.get("DESMAR").as_string());
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_articoli(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 
 | |
| 	name.add("mfarti00.txt");
 | |
| 	query << name;
 | |
| 
 | |
| 	TAnamag_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("Importazione Articoli "), true, true);
 | |
|   TSystemisamfile anamag(LF_ANAMAG);
 | |
|   TSystemisamfile umart(LF_UMART);
 | |
|   TSystemisamfile deslin(LF_DESLIN);
 | |
| 
 | |
| 	anamag.zap();
 | |
| 	umart.zap();
 | |
| 	deslin.zap();
 | |
| 	anamag.open();
 | |
| 	umart.open();
 | |
| 	deslin.open();
 | |
|   for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		if (inputfile.get("AVALAN").as_string().blank())
 | |
| 		{
 | |
| 			anamag.zero();
 | |
| 			const TString & codart = build_codart (inputfile.get("AGRUPP").as_string(), inputfile.get("ACODAR").as_int());
 | |
| 			anamag.put(ANAMAG_CODART, codart);
 | |
| 
 | |
| 			anamag.put(ANAMAG_DESCR, inputfile.get("ADESAR").as_string());
 | |
| 			anamag.put(ANAMAG_CODIVA, inputfile.get("ACODIV").as_string());
 | |
| 
 | |
| 			const TString & marca = inputfile.get("ACOMAR").as_string();    
 | |
| 			anamag.put(ANAMAG_RAGGFIS, marca);   
 | |
| 			add_to_tab("RFA", marca);
 | |
| 
 | |
| 			const TString & classe = inputfile.get("ACLASS").as_string();
 | |
| 
 | |
| 			anamag.put(ANAMAG_GRMERC, classe);
 | |
| 			add_to_tab("GMC", classe);
 | |
| 
 | |
| 			const TString & categ = inputfile.get("ACATEG").as_string();     
 | |
| 			
 | |
| 			anamag.put(ANAMAG_CLASSEFIS, categ);   
 | |
| 			add_to_tab("ASF", categ);
 | |
| 			
 | |
| 			anamag.put(ANAMAG_PPCONF, inputfile.get("ACONFE").as_string());
 | |
| 			anamag.write();
 | |
| 			
 | |
| 			int nr = 0;
 | |
| 			const TString & umve = inputfile.get("AUNMVE").as_string();
 | |
| 
 | |
| 			if (umve.full())
 | |
| 			{
 | |
| 				umart.zero();
 | |
| 				umart.put(UMART_CODART, codart);
 | |
| 				umart.put(UMART_NRIGA, ++nr);
 | |
| 				umart.put(UMART_UM, umve);
 | |
| 				add_to_tab("%UMS", umve);
 | |
| 				umart.put(UMART_FC, "1.0");
 | |
| 				umart.write();
 | |
| 			}
 | |
| 
 | |
| 			const TString & umacq = inputfile.get("AUNMAC").as_string();
 | |
| 
 | |
| 			if (umacq.full() && umacq != umve)
 | |
| 			{
 | |
| 				umart.zero();
 | |
| 				umart.put(UMART_CODART, codart);
 | |
| 				umart.put(UMART_NRIGA, ++nr);
 | |
| 				umart.put(UMART_UM, umacq);
 | |
| 				add_to_tab("%UMS", umacq);
 | |
| 				umart.put(UMART_FC, "1.0");
 | |
| 				umart.write();
 | |
| 			}
 | |
| 		}
 | |
| 		pi.addstatus(1L);;
 | |
| 		if (pi.iscancelled())
 | |
| 			break;
 | |
| 	}
 | |
| 	anamag.close();
 | |
| 	umart.close();
 | |
| 	deslin.close();
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_barcode(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 
 | |
| 	name.add("mfarbc00.txt");
 | |
| 	query << name;
 | |
| 
 | |
| 	TBarcode_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("Importazione Barcode "), true, true);
 | |
|   TSystemisamfile codcorr(LF_CODCORR);
 | |
|   TLocalisamfile umart(LF_UMART);
 | |
| 
 | |
| 	codcorr.zap();
 | |
| 	codcorr.open();
 | |
|   for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		if (inputfile.get("BVALAR").as_string().blank())
 | |
| 		{
 | |
| 			const TString & codart = build_codart (inputfile.get("BGRUPP").as_string(), inputfile.get("BCODAR").as_int());
 | |
| 
 | |
| 			codcorr.zero();
 | |
| 			codcorr.put(CODCORR_CODART, codart);
 | |
| 
 | |
| 			const TRectype comp(codcorr.curr());
 | |
| 			int nriga = 0;
 | |
| 
 | |
| 			codcorr.put(CODCORR_NRIGA, 999);
 | |
| 			if (codcorr.read(_isgteq) == NOERR)
 | |
| 				codcorr.prev();
 | |
| 			if (codcorr.curr() == comp)
 | |
| 				nriga = codcorr.get_int(CODCORR_NRIGA);
 | |
| 			nriga++;
 | |
| 			codcorr.zero();
 | |
| 			codcorr.put(CODCORR_CODART, codart);
 | |
| 			codcorr.put(CODCORR_NRIGA, nriga);
 | |
| 			codcorr.put(CODCORR_CODART, codart);
 | |
| 			
 | |
| 			const bool barcode = (inputfile.get("BTIPRE").as_string() == "B");
 | |
| 			TString barcodeart(inputfile.get("BBARCO").as_string());
 | |
| 			barcodeart.trim();
 | |
| 			int len = barcodeart.len();
 | |
| 
 | |
| 			if (barcode)
 | |
| 				codcorr.put(CODCORR_TIPO, len == 13 ? "1" : (len == 8 ? "8" : "3"));
 | |
| 			else
 | |
| 				codcorr.put(CODCORR_TIPO, "N");
 | |
| 			codcorr.put(ANAMAG_CODARTALT, barcodeart);
 | |
| 			const real conf =	inputfile.get("BCONFE").as_real();
 | |
| 
 | |
| 			if (conf != UNO && conf != ZERO)
 | |
| 			{
 | |
| 				codcorr.put(CODCORR_UM, "CF");
 | |
| 				umart.zero();
 | |
| 				umart.setkey(2);
 | |
| 				umart.put(UMART_CODART, codart);
 | |
| 				umart.put(UMART_UM, "CF");
 | |
| 				add_to_tab("%UMS", "CF");
 | |
| 
 | |
| 				if (umart.read() == NOERR)
 | |
| 				{
 | |
| 					umart.put(UMART_FC, inputfile.get("BCONFE").as_string());
 | |
| 					umart.rewrite();
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					umart.zero();
 | |
| 					umart.put(UMART_CODART, codart);
 | |
| 					const TRectype compum(codcorr.curr());
 | |
| 					int nriga = 0;
 | |
| 
 | |
| 					umart.put(UMART_NRIGA, 999);
 | |
| 					if (umart.read(_isgteq) == NOERR)
 | |
| 						umart.prev();
 | |
| 					if (umart.curr() == compum)
 | |
| 						nriga = umart.get_int(UMART_NRIGA);
 | |
| 					nriga++;
 | |
| 
 | |
| 					umart.zero();
 | |
| 					umart.put(UMART_CODART, codart);
 | |
| 					umart.put(UMART_NRIGA, nriga);
 | |
| 					umart.put(UMART_UM, "CF");
 | |
| 					umart.put(UMART_FC, inputfile.get("BCONFE").as_real());
 | |
| 					umart.write();
 | |
| 				}
 | |
| 			}
 | |
| 			codcorr.write();
 | |
| 		}
 | |
| 		pi.addstatus(1L);;
 | |
| 		if (pi.iscancelled())
 | |
| 			break;
 | |
| 	}
 | |
| 	codcorr.close();
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_listino(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 
 | |
| 	name.add("mfarli00.txt");
 | |
| 	query << name;
 | |
| 
 | |
| 	TListino_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("Importazione Listino "), true, true);
 | |
|   TSystemisamfile rcondv(LF_RCONDV);
 | |
|   TSystemisamfile condv(LF_CONDV);
 | |
| 	TLocalisamfile anamag(LF_ANAMAG);
 | |
| 	TString4 codlist;
 | |
| 
 | |
| 	condv.zap();
 | |
| 	rcondv.zap();
 | |
| 	condv.open();
 | |
| 	rcondv.open();
 | |
|   for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		if (inputfile.get("LVALAR").as_string().blank())
 | |
| 		{
 | |
| 			const TString80 codart(build_codart(inputfile.get("LGRUPP").as_string(), inputfile.get("LCODAR").as_int()));
 | |
| 			const int tipocf = inputfile.get("LTIPCF").as_int();
 | |
| 			const int list =  inputfile.get("LCODLI").as_int();
 | |
| 
 | |
| 			if (list == 0)
 | |
| 			{
 | |
| 				if (tipocf == 2)
 | |
| 				{
 | |
| 					long codforn = inputfile.get("LCFTAB").as_int();
 | |
| 
 | |
| 					anamag.zero();
 | |
| 					anamag.put(ANAMAG_CODART, codart);
 | |
| 					if (anamag.read() == NOERR)
 | |
| 					{
 | |
| 						anamag.put(ANAMAG_CODFORN, codforn);
 | |
| 						anamag.rewrite();
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				codlist.format("%01d%02d", tipocf, list);
 | |
| 				rcondv.zero();
 | |
| 				rcondv.put(RCONDV_TIPO, "L");
 | |
| 				rcondv.put(RCONDV_COD, codlist);
 | |
| 				rcondv.put(RCONDV_TIPORIGA, "A");
 | |
| 				rcondv.put(RCONDV_CODRIGA, codart);
 | |
| 				real prezzo;
 | |
| 
 | |
| 				if (tipocf == 2)
 | |
| 					prezzo = inputfile.get("LCOSTO").as_real();
 | |
| 				else
 | |
| 					prezzo = inputfile.get("LLISTI").as_real();
 | |
| 				if (prezzo != ZERO)
 | |
| 				{
 | |
| 					rcondv.put(RCONDV_PREZZO, prezzo);
 | |
| 					rcondv.write();
 | |
| 					condv.zero();
 | |
| 					condv.put(CONDV_TIPO, "L");
 | |
| 					condv.put(CONDV_COD, codlist);
 | |
| 
 | |
| 					if (condv.read() != NOERR)
 | |
| 					{
 | |
| 						condv.zero();
 | |
| 						condv.put(CONDV_TIPO, "L");
 | |
| 						condv.put(CONDV_COD, codlist);
 | |
| 						condv.write();
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		pi.addstatus(1L);;
 | |
| 		if (pi.iscancelled())
 | |
| 			break;
 | |
| 	}
 | |
| 	condv.close();
 | |
| 	rcondv.close();
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_giacenze(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 
 | |
| 	name.add("mfarsa00.txt");
 | |
| 
 | |
| 	TEsercizi_contabili es;
 | |
| 	const int codes	 = es.pred(es.last());
 | |
| 
 | |
| 	query << name;
 | |
| 
 | |
| 	TGiacenze_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("Importazione Giacenze"), true, true);
 | |
|   TSystemisamfile mag(LF_MAG);
 | |
| 
 | |
| 	mag.zap();
 | |
| 	mag.open();
 | |
|   for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		if (inputfile.get("SVALAR").as_string().blank())
 | |
| 		{
 | |
| 			const TString & codart = build_codart(inputfile.get("SGRUPP").as_string(), inputfile.get("SCODAR").as_int());
 | |
| 			const TString8 codmag(inputfile.get("SCODDE").as_string());
 | |
| 
 | |
| 			mag.zero();
 | |
| 			mag.put(MAG_ANNOES, codes);
 | |
| 			mag.put(MAG_CODART, codart);
 | |
| 
 | |
| 			const TRectype comp(mag.curr());
 | |
| 			int nriga = 0;
 | |
| 
 | |
| 			mag.put(MAG_NRIGA, 999);
 | |
| 			if (mag.read(_isgteq) == NOERR)
 | |
| 				mag.prev();
 | |
| 			if (mag.curr() == comp)
 | |
| 				nriga = mag.get_int(MAG_NRIGA);
 | |
| 			nriga++;
 | |
| 			mag.zero();
 | |
| 			mag.put(MAG_ANNOES, codes);
 | |
| 			mag.put(MAG_CODART, codart);
 | |
| 			mag.put(MAG_NRIGA, nriga);
 | |
| 
 | |
| 			const real & rim_ini = inputfile.get("SESINI").as_real();
 | |
| 			const real & giac = inputfile.get("SESIDI").as_real();
 | |
| 			if (rim_ini != ZERO || giac != ZERO)
 | |
| 			{
 | |
| 				mag.put(MAG_RIM, rim_ini);
 | |
| 				mag.put(MAG_GIAC, giac);
 | |
| 				if (rim_ini > giac)
 | |
| 					mag.put(MAG_VEN, rim_ini - giac);
 | |
| 				else
 | |
| 					mag.put(MAG_ACQ, giac - rim_ini);
 | |
| 
 | |
| 				mag.write();
 | |
| 			}
 | |
| 		}
 | |
| 		pi.addstatus(1L);;
 | |
| 		if (pi.iscancelled())
 | |
| 			break;
 | |
| 	}
 | |
| 	mag.close();
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_costi(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 	TEsercizi_contabili es;
 | |
| 	const TDate oggi(TODAY);
 | |
| 	const TDate inizio = es.esercizio(es.last()).inizio();
 | |
| 
 | |
| 	name.add("mfarco00.txt");
 | |
| 	query << name;
 | |
| 
 | |
| 	TCosti_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("Importazione Costi "), true, true);
 | |
|   TLocalisamfile anamag(LF_ANAMAG);
 | |
|   
 | |
| 	for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		if (inputfile.get("SVALAR").as_string().blank())
 | |
| 		{
 | |
| 			const real ultcos1 =  inputfile.get("SCOULD").as_real();
 | |
| 			const real ultcos2 = inputfile.get("SCUFIA").as_real();
 | |
| 
 | |
| 			if (ultcos1 != ZERO || ultcos2 != ZERO)
 | |
| 			{
 | |
| 				anamag.zero();
 | |
| 				const TString & codart = build_codart (inputfile.get("SGRUPP").as_string(), inputfile.get("SCODAR").as_int());
 | |
| 				anamag.put(ANAMAG_CODART, codart);
 | |
| 
 | |
| 				if (anamag.read() == NOERR)
 | |
| 				{
 | |
| 					if (ultcos1 != ZERO)
 | |
| 					{
 | |
| 						anamag.put(ANAMAG_ULTCOS1, ultcos1);
 | |
| 						anamag.put(ANAMAG_DULTCOS1, oggi);
 | |
| 					}
 | |
| 					if (ultcos2 != ZERO)
 | |
| 					{
 | |
| 						anamag.put(ANAMAG_ULTCOS2, ultcos2);
 | |
| 						anamag.put(ANAMAG_DULTCOS2, inizio);
 | |
| 					}
 | |
| 					anamag.rewrite();
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 		pi.addstatus(1L);;
 | |
| 		if (pi.iscancelled())
 | |
| 			break;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::load_clifo(const TDettaglio_mask & m)
 | |
| {
 | |
| 	TString query("SELECT * FROM ");
 | |
| 	TFilename name = m.get(F_PATH);
 | |
| 
 | |
| 	name.add("mfancf00.txt");
 | |
| 	query << name;
 | |
| 
 | |
| 	TClifo_textset inputfile(query);
 | |
|   TProgind pi(inputfile.items(), TR("importazione Clienti/Fornitori "), true, true);
 | |
|   TSystemisamfile clifo(LF_CLIFO);
 | |
|   TSystemisamfile cfven(LF_CFVEN);
 | |
| 
 | |
| 	clifo.zap();
 | |
| 	cfven.zap();
 | |
| 	clifo.open();
 | |
| 	cfven.open();
 | |
|   for (bool ok = inputfile.move_first(); ok; ok = inputfile.move_next())
 | |
| 	{
 | |
| 		clifo.zero();
 | |
| 
 | |
| 		if (inputfile.get("VALICF").as_string().blank())
 | |
| 		{
 | |
| 			clifo.put(CLI_TIPOCF, inputfile.get("ATIPCF").as_int() == 1 ? "C" : "F");
 | |
| 			clifo.put(CLI_CODCF, inputfile.get("ACODCF").as_int());
 | |
| 			clifo.put(CLI_TIPOAPER, inputfile.get("AFIGIU").as_int() == 1 ? "G" : "F");
 | |
| 			clifo.put(CLI_RAGSOC, inputfile.get("ARAGSO").as_string());
 | |
| 			clifo.put(CLI_INDCF, inputfile.get("AINDIR").as_string());
 | |
| 
 | |
| 			TString localita(inputfile.get("ALOCAL").as_string());
 | |
| 			TString cap(inputfile.get("ACAP").as_string());
 | |
| 
 | |
| 			localita.trim();
 | |
| 			const TString & com = cap2comune(cap, localita);
 | |
| 
 | |
| 			if (com.full())
 | |
| 				clifo.put(CLI_COMCF, com);
 | |
| 			else
 | |
| 			{
 | |
| 				TString prov(inputfile.get("APROVI").as_string());
 | |
| 
 | |
| 				if (prov.full())
 | |
| 					localita << "(" << prov.upper() << ")";
 | |
| 				clifo.put(CLI_LOCCF, localita);
 | |
| 			}
 | |
| 			clifo.put(CLI_CAPCF, cap);
 | |
| 			clifo.put(CLI_STATOCF, inputfile.get("ANAZIO").as_string());
 | |
| 			clifo.put(CLI_PAIV, inputfile.get("APARIV").as_string());
 | |
| 			clifo.put(CLI_COFI, inputfile.get("ACODFI").as_string());
 | |
| 			
 | |
| 			const TString & codpag = inputfile.get("ACOPAG").as_string();
 | |
| 			
 | |
| 			clifo.put(CLI_CODPAG, codpag);
 | |
| 			add_to_tab("%CPG", codpag);
 | |
| 			clifo.put(CLI_TEL, inputfile.get("ANUTE1").as_string());
 | |
| 			clifo.put(CLI_FAX, inputfile.get("ANUFAX").as_string());
 | |
| 
 | |
| 			TString8 abi;
 | |
| 			TString8 cab;
 | |
| 			
 | |
| 			abi.format("%05ld", inputfile.get("ACOABI").as_int());
 | |
| 
 | |
| 			if (abi != "00000")
 | |
| 			{
 | |
| 				clifo.put(CLI_CODABI, abi);
 | |
| 				add_to_tab("%BAN", abi);
 | |
| 				if (cab != "0000000000")
 | |
| 				{
 | |
| 					cab.format("%s%05ld",(const char *) abi, inputfile.get("ACOCAB").as_int());
 | |
| 					clifo.put(CLI_CODCAB, cab);
 | |
| 					add_to_tab("%BAN", cab);
 | |
| 				}
 | |
| 			}
 | |
| 			clifo.write();
 | |
| 			cfven.zero();
 | |
| 			cfven.put(CFV_TIPOCF, inputfile.get("ATIPCF").as_int() == 1 ? "C" : "F");
 | |
| 			cfven.put(CFV_CODCF, inputfile.get("ACODCF").as_int());
 | |
| 
 | |
| 			const TString & codiva = inputfile.get("ACOIVA").as_string();
 | |
| 			
 | |
| 			cfven.put(CFV_ASSFIS, codiva);
 | |
| 			add_to_tab("%IVA", codiva);
 | |
| 			cfven.write();
 | |
| 		}
 | |
| 		pi.addstatus(1L);;
 | |
| 		if (pi.iscancelled())
 | |
| 			break;
 | |
| 	}
 | |
| 	clifo.close();
 | |
| 	cfven.close();
 | |
| }
 | |
| 
 | |
| void TDettaglio_receiver::main_loop()
 | |
| {
 | |
| 	TDettaglio_mask m;
 | |
|   while (m.run() != K_QUIT)
 | |
|   {
 | |
| 
 | |
| 		_len = m.get_int(F_LEN);
 | |
| 		if (m.get_bool(F_TB))
 | |
| 		{
 | |
| 			load_classi(m);
 | |
| 			load_marche(m);
 | |
| 		}
 | |
| 		if (m.get_bool(F_CF))
 | |
| 			load_clifo(m);
 | |
| 		if (m.get_bool(F_AM))
 | |
| 			load_articoli(m);
 | |
| 		if (m.get_bool(F_BC))
 | |
| 			load_barcode(m);
 | |
| 		if (m.get_bool(F_LI))
 | |
| 			load_listino(m);
 | |
| 		if (m.get_bool(F_GI))
 | |
| 			load_giacenze(m);
 | |
| 		if (m.get_bool(F_CS))
 | |
| 			load_costi(m);
 | |
|   }
 | |
| }
 | |
| 
 | |
| int pn0001100(int argc, char* argv[])
 | |
| {
 | |
|   TDettaglio_receiver a;
 | |
|   a.run(argc, argv, TR("Importazione vendite al dettaglio"));
 | |
|   return 0;
 | |
| }
 | |
| 
 | |
| // Tabella Pagamenti
 | |
| // Tabella UM
 | |
| // Tabella Cat mefc
 | |
| // Tabella raggfis (gruppo)
 | |
| // Tabella classfis (classe)
 |