diff --git a/ve/batbeld.uml b/ve/batbeld.uml index 4d6315246..16cac42f8 100755 --- a/ve/batbeld.uml +++ b/ve/batbeld.uml @@ -184,6 +184,11 @@ BEGIN PROMPT 2 9 "Stato iniziale " FLAGS "U" FIELD S7[1,1] + USE %STD + INPUT CODTAB F_STATO_I_DOC_I_1 + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_I_DOC_I_1 CODTAB CHECKTYPE REQUIRED WARNING "E' necessario specificare uno stato iniziale" END @@ -192,6 +197,12 @@ STRING F_STATO_I_DOC_I_2 1 BEGIN PROMPT 30 9 "" FLAGS "U" + USE %STD + INPUT CODTAB F_STATO_I_DOC_I_2 + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_I_DOC_I_2 CODTAB + CHECKTYPE NORMAL FIELD S7[2,2] END @@ -199,6 +210,12 @@ STRING F_STATO_I_DOC_I_3 1 BEGIN PROMPT 39 9 "" FLAGS "U" + USE %STD + INPUT CODTAB F_STATO_I_DOC_I_3 + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_I_DOC_I_3 CODTAB + CHECKTYPE NORMAL FIELD S7[3,3] END @@ -206,6 +223,12 @@ STRING F_STATO_I_DOC_I_4 1 BEGIN PROMPT 48 9 "" FLAGS "U" + USE %STD + INPUT CODTAB F_STATO_I_DOC_I_4 + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_I_DOC_I_4 CODTAB + CHECKTYPE NORMAL FIELD S7[4,4] END @@ -213,6 +236,12 @@ STRING F_STATO_I_DOC_I_5 1 BEGIN PROMPT 57 9 "" FLAGS "U" + USE %STD + INPUT CODTAB F_STATO_I_DOC_I_5 + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_I_DOC_I_5 CODTAB + CHECKTYPE NORMAL FIELD S7[5,5] END @@ -221,6 +250,11 @@ BEGIN PROMPT 2 10 "Stato finale " FLAGS "U" FIELD S4 + USE %STD + INPUT CODTAB F_STATO_F_DOC_I + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_F_DOC_I CODTAB CHECKTYPE REQUIRED WARNING "E' necessario specificare uno stato finale" END @@ -248,6 +282,11 @@ BEGIN PROMPT 2 14 "Stato finale " FLAGS "U" FIELD S9 + USE %STD + INPUT CODTAB F_STATO_F_DOC_F + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_F_DOC_F CODTAB CHECKTYPE REQUIRED WARNING "E' necessario specificare uno stato finale" END @@ -298,7 +337,7 @@ END STRING F_APPLICAZIONE 20 BEGIN - PROMPT 2 19 "Applicazione esterna" + PROMPT 2 19 "Applicazione " FIELD S3 END diff --git a/ve/batbnum.h b/ve/batbnum.h index 866b7622a..77e664019 100755 --- a/ve/batbnum.h +++ b/ve/batbnum.h @@ -5,7 +5,8 @@ #define F_PREFISSO 105 #define F_SUFFISSO 106 #define F_ULTDATA 107 -#define F_ANNO 108 +#define F_ANNO 108 +#define F_TIPO 109 #define F_TIPODOC1 110 #define F_DESDOC1 111 #define F_TIPODOC2 112 diff --git a/ve/batbnum.uml b/ve/batbnum.uml index 1e96bd4af..22b674025 100755 --- a/ve/batbnum.uml +++ b/ve/batbnum.uml @@ -14,12 +14,6 @@ PAGE "Numerazione documenti" -1 -1 60 14 FLAG "R" END -// GROUPBOX DLG_NULL 84 13 -// BEGIN -// PROMPT 1 5 "" - // FLAG "R" -// END - STRING F_CODTAB 4 BEGIN PROMPT 2 2 "Cod. numerazione " @@ -81,26 +75,30 @@ PAGE "Tipi documento validi" -1 -1 60 14 GROUPBOX DLG_NULL 70 15 BEGIN - PROMPT 1 1 "" - // FLAG "R" + PROMPT 1 1 "Tipi di documento validi per la numerazione" END - TEXT DLG_NULL - BEGIN - PROMPT 2 2 "Tipi di documento validi per la numerazione" - END + LIST F_TIPO 24 + BEGIN + PROMPT 2 2 "Tipo dei documenti " + FIELD I1 + ITEM "0|Altro" + ITEM "1|Bolla" + ITEM "2|Fattura" + ITEM "3|Ordine" + END STRING F_TIPODOC1 4 BEGIN PROMPT 2 4 "" FLAGS "U" - USE %TIP + USE %TIP SELECT I1==#F_TIPO INPUT CODTAB F_TIPODOC1 DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_TIPODOC1 CODTAB OUTPUT F_DESDOC1 S0 - HELP "Tipo di documento 1" + WARNING "Tipo documento errato" FIELD S2[1,4] CHECKTYPE NORMAL END @@ -108,125 +106,255 @@ PAGE "Tipi documento validi" -1 -1 60 14 STRING F_DESDOC1 50 BEGIN PROMPT 12 4 "" - USE %TIP KEY 2 + USE %TIP KEY 2 SELECT I1==#F_TIPO INPUT S0 F_DESDOC1 DISPLAY "Descrizione@50" S0 DISPLAY "Codice" CODTAB - OUTPUT F_TIPODOC1 CODTAB - OUTPUT F_DESDOC1 S0 - HELP "Tipo di documento 1" + COPY OUTPUT F_TIPODOC1 + WARNING "Tipo documento errato" CHECKTYPE NORMAL END STRING F_TIPODOC2 4 BEGIN - PROMPT 2 6 "" + PROMPT 2 5 "" FLAGS "U" - USE %TIP + COPY USE F_TIPODOC1 INPUT CODTAB F_TIPODOC2 DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_TIPODOC2 CODTAB OUTPUT F_DESDOC2 S0 - HELP "Tipo di documento 2" + WARNING "Tipo documento errato" FIELD S2[5,8] CHECKTYPE NORMAL END STRING F_DESDOC2 50 BEGIN - PROMPT 12 6 "" - USE %TIP KEY 2 + PROMPT 12 5 "" + COPY USE F_DESDOC1 INPUT S0 F_DESDOC2 DISPLAY "Descrizione@50" S0 DISPLAY "Codice" CODTAB - OUTPUT F_TIPODOC2 CODTAB - OUTPUT F_DESDOC2 S0 - HELP "Tipo di documento 2" + COPY OUTPUT F_TIPODOC2 + WARNING "Tipo documento errato" CHECKTYPE NORMAL END STRING F_TIPODOC3 4 BEGIN - PROMPT 2 8 "" + PROMPT 2 6 "" FLAGS "U" - USE %TIP + COPY USE F_TIPODOC1 INPUT CODTAB F_TIPODOC3 DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_TIPODOC3 CODTAB OUTPUT F_DESDOC3 S0 - HELP "Tipo di documento 3" + WARNING "Tipo documento errato" FIELD S2[9,12] CHECKTYPE NORMAL END STRING F_DESDOC3 50 BEGIN - PROMPT 12 8 "" - USE %TIP KEY 2 + PROMPT 12 6 "" + COPY USE F_DESDOC1 INPUT S0 F_DESDOC3 DISPLAY "Descrizione@50" S0 DISPLAY "Codice" CODTAB - OUTPUT F_TIPODOC3 CODTAB - OUTPUT F_DESDOC3 S0 - HELP "Tipo di documento 3" + COPY OUTPUT F_TIPODOC3 + WARNING "Tipo documento errato" CHECKTYPE NORMAL END STRING F_TIPODOC4 4 BEGIN - PROMPT 2 10 "" + PROMPT 2 7 "" FLAGS "U" - USE %TIP + COPY USE F_TIPODOC1 INPUT CODTAB F_TIPODOC4 DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_TIPODOC4 CODTAB OUTPUT F_DESDOC4 S0 - HELP "Tipo di documento 4" + WARNING "Tipo documento errato" FIELD S2[13,16] CHECKTYPE NORMAL END STRING F_DESDOC4 50 BEGIN - PROMPT 12 10 "" - USE %TIP KEY 2 + PROMPT 12 7 "" + COPY USE F_DESDOC1 INPUT S0 F_DESDOC4 DISPLAY "Descrizione@50" S0 DISPLAY "Codice" CODTAB - OUTPUT F_TIPODOC4 CODTAB - OUTPUT F_DESDOC4 S0 - HELP "Tipo di documento 4" + COPY OUTPUT F_TIPODOC4 + WARNING "Tipo documento errato" CHECKTYPE NORMAL END STRING F_TIPODOC5 4 BEGIN - PROMPT 2 12 "" + PROMPT 2 8 "" FLAGS "U" - USE %TIP + COPY USE F_TIPODOC1 INPUT CODTAB F_TIPODOC5 DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0 OUTPUT F_TIPODOC5 CODTAB OUTPUT F_DESDOC5 S0 - HELP "Tipo di documento 5" + WARNING "Tipo documento errato" FIELD S2[17,20] CHECKTYPE NORMAL END STRING F_DESDOC5 50 BEGIN - PROMPT 12 12 "" - USE %TIP KEY 2 + PROMPT 12 8 "" + COPY USE F_DESDOC1 INPUT S0 F_DESDOC5 DISPLAY "Descrizione@50" S0 DISPLAY "Codice" CODTAB - OUTPUT F_TIPODOC5 CODTAB - OUTPUT F_DESDOC5 S0 - HELP "Tipo di documento 5" + COPY OUTPUT F_TIPODOC5 + WARNING "Tipo documento errato" + CHECKTYPE NORMAL + END + + STRING F_TIPODOC6 4 + BEGIN + PROMPT 2 9 "" + FLAGS "U" + COPY USE F_TIPODOC1 + INPUT CODTAB F_TIPODOC6 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TIPODOC6 CODTAB + OUTPUT F_DESDOC6 S0 + WARNING "Tipo documento errato" + FIELD S2[21,24] + CHECKTYPE NORMAL + END + + STRING F_DESDOC6 50 + BEGIN + PROMPT 12 9 "" + COPY USE F_DESDOC1 + INPUT S0 F_DESDOC6 + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TIPODOC6 + WARNING "Tipo documento errato" + CHECKTYPE NORMAL + END + + STRING F_TIPODOC7 4 + BEGIN + PROMPT 2 10 "" + FLAGS "U" + COPY USE F_TIPODOC1 + INPUT CODTAB F_TIPODOC7 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TIPODOC7 CODTAB + OUTPUT F_DESDOC7 S0 + WARNING "Tipo documento errato" + FIELD S2[25,28] + CHECKTYPE NORMAL + END + + STRING F_DESDOC7 50 + BEGIN + PROMPT 12 10 "" + COPY USE F_DESDOC1 + INPUT S0 F_DESDOC7 + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TIPODOC7 + WARNING "Tipo documento errato" + CHECKTYPE NORMAL + END + + STRING F_TIPODOC8 4 + BEGIN + PROMPT 2 11 "" + FLAGS "U" + COPY USE F_TIPODOC1 + INPUT CODTAB F_TIPODOC8 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TIPODOC8 CODTAB + OUTPUT F_DESDOC8 S0 + WARNING "Tipo documento errato" + FIELD S2[29,32] + CHECKTYPE NORMAL + END + + STRING F_DESDOC8 50 + BEGIN + PROMPT 12 11 "" + COPY USE F_DESDOC1 + INPUT S0 F_DESDOC8 + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TIPODOC8 + WARNING "Tipo documento errato" + CHECKTYPE NORMAL + END + + STRING F_TIPODOC9 4 + BEGIN + PROMPT 2 12 "" + FLAGS "U" + COPY USE F_TIPODOC1 + INPUT CODTAB F_TIPODOC9 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TIPODOC9 CODTAB + OUTPUT F_DESDOC9 S0 + WARNING "Tipo documento errato" + FIELD S2[33,36] + CHECKTYPE NORMAL + END + + STRING F_DESDOC9 50 + BEGIN + PROMPT 12 12 "" + COPY USE F_DESDOC1 + INPUT S0 F_DESDOC9 + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TIPODOC9 + WARNING "Tipo documento errato" + CHECKTYPE NORMAL + END + + STRING F_TIPODOC10 4 + BEGIN + PROMPT 2 13 "" + FLAGS "U" + COPY USE F_TIPODOC1 + INPUT CODTAB F_TIPODOC10 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_TIPODOC10 CODTAB + OUTPUT F_DESDOC10 S0 + WARNING "Tipo documento errato" + FIELD S2[37,40] + CHECKTYPE NORMAL + END + + STRING F_DESDOC10 50 + BEGIN + PROMPT 12 13 "" + COPY USE F_DESDOC1 + INPUT S0 F_DESDOC10 + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_TIPODOC10 + WARNING "Tipo documento errato" CHECKTYPE NORMAL END diff --git a/ve/batbstd.uml b/ve/batbstd.uml index 15a99b75e..ff1583f82 100755 --- a/ve/batbstd.uml +++ b/ve/batbstd.uml @@ -26,7 +26,7 @@ BEGIN OUTPUT F_CODTAB CODTAB OUTPUT F_DESSTA S0 KEY 1 - FLAG "UZ" + FLAG "U" END STRING F_DESSTA 50 diff --git a/ve/batbtip.h b/ve/batbtip.h index 3c4993c92..4bcfbfba5 100755 --- a/ve/batbtip.h +++ b/ve/batbtip.h @@ -7,4 +7,8 @@ #define F_NCOPIE 107 #define F_RIFERIMENTO 108 #define F_SPESEAUT 109 -#define F_TIPO 110 +#define F_TIPO 110 +#define F_MOVMAG 111 +#define F_STATO_MOV 112 +#define F_CAUS_MAG 113 +#define F_DESCAUS_MAG 114 diff --git a/ve/batbtip.uml b/ve/batbtip.uml index 348efbc3a..51d9f72ec 100755 --- a/ve/batbtip.uml +++ b/ve/batbtip.uml @@ -72,9 +72,19 @@ BEGIN WARNING "Il numero di copie deve essere positivo" END +LIST F_TIPO 24 +BEGIN + PROMPT 2 12 "Tipo del documento " + FIELD I1 + ITEM "0|Altro" MESSAGE ENABLE,2@ + ITEM "1|Bolla" MESSAGE CLEAR,2@ + ITEM "2|Fattura" MESSAGE ENABLE,2@ + ITEM "3|Ordine" MESSAGE CLEAR,2@ +END + STRING F_CODCAUS 3 BEGIN - PROMPT 2 12 "Codice causale " + PROMPT 2 13 "Codice causale contabile " FIELD S6 USE LF_CAUSALI INPUT CODCAUS F_CODCAUS @@ -83,12 +93,12 @@ BEGIN OUTPUT F_CODCAUS CODCAUS OUTPUT F_DESCAUS DESCR CHECKTYPE NORMAL + GROUP 2 END STRING F_DESCAUS 50 BEGIN - PROMPT 2 13 "Descrizione causale " - FLAG "U" + PROMPT 2 14 "Descrizione " USE LF_CAUSALI KEY 2 INPUT DESCR F_DESCAUS DISPLAY "Descrizione@50" DESCR @@ -96,6 +106,7 @@ BEGIN OUTPUT F_DESCAUS DESCR OUTPUT F_CODCAUS CODCAUS CHECKTYPE NORMAL + GROUP 2 END BOOLEAN F_SPESEAUT @@ -104,16 +115,58 @@ BEGIN FIELD B0 END -LIST F_TIPO 10 +BOOLEAN F_MOVMAG BEGIN - PROMPT 2 17 "Tipo del documento " - FIELD I1 - ITEM "0|Altro" - ITEM "1|Fattura" - ITEM "2|Bolla" - ITEM "3|Ordine" + PROMPT 2 16 "Movimenti di magazzino a partire dallo stato " + FIELD B1 + MESSAGE FALSE CLEAR,1@ + MESSAGE TRUE ENABLE,1@ +END + +STRING F_STATO_MOV 1 +BEGIN + PROMPT 50 16 "" + FIELD S7 + USE %STD + INPUT CODTAB F_STATO_MOV + DISPLAY "Stato" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATO_MOV CODTAB + CHECKYTPE NORMAL + FLAGS "U" + GROUP 1 END +STRING F_CAUS_MAG 4 +BEGIN + PROMPT 2 17 "Codice causale magazzino " + FIELD S8 + USE CAU + INPUT CODTAB F_CAUS_MAG + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CAUS_MAG CODTAB + OUTPUT F_DESCAUS_MAG S0 + CHECKYTPE REQUIRED + FLAGS "U" + ADD RUN mg0 -0 CAU + GROUP 1 +END + +STRING F_DESCAUS_MAG 50 +BEGIN + PROMPT 2 18 "Descrizione " + USE CAU KEY 2 + INPUT S0 F_DESCAUS_MAg + DISPLAY "Descrizione@50" S0 + DISPLAY "Codice" CODTAB + COPY OUTPUT F_CAUS_MAG + ADD RUN mg0 -0 CAU + CHECKTYPE NORMAL + GROUP 1 +END + + ENDPAGE ENDMASK diff --git a/ve/bollac.src b/ve/bollac.src index 004afd828..39180ee15 100755 --- a/ve/bollac.src +++ b/ve/bollac.src @@ -180,10 +180,8 @@ UMPNETTO = S_NORMALE //2700 PNETTO = S_NORMALE //2700 DESUMPNETTO = S_NASCOSTO //2700 NCOLLI = S_NORMALE //2800 -CAUSMAG1 = S_NASCOSTO //2900 -DESCRMAG1 = S_NASCOSTO //2900 -CAUSMAG2 = S_NASCOSTO //2900 -DESCRMAG2 = S_NASCOSTO //2900 +CAUSMAG = S_OBBLIGATORIO //2900 +DESCRMAG = S_NORMALE //2900 BLANK = S_DISABILITATO //4000 CODNOTE = S_NORMALE //2500 NOTECLI = S_NORMALE //2500 @@ -194,7 +192,7 @@ NDEFAULTS=1 1=F_CAUSTRASP|VEN [SHEET] -NCOLS=14 +NCOLS=17 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -209,6 +207,9 @@ NCOLS=14 12=FR_SCONTO 13=FR_PERCPROV 14=FR_CODIVA +15=FR_CAUS +16=FR_CODMAGC +17=FR_CODDEPC [RIGHE] NTIPIRIGA=9 @@ -264,7 +265,7 @@ NHANDLER=0 4000 = S_NORMALE [ORDINEGRUPPI] -NGROUPS=29 +NGROUPS=30 1=100 2=200 3=300 @@ -294,4 +295,5 @@ NGROUPS=29 27=1700 28=2500 29=2400 +30=2900 diff --git a/ve/bollaf.src b/ve/bollaf.src index 64050bfff..5f3728c7e 100755 --- a/ve/bollaf.src +++ b/ve/bollaf.src @@ -133,10 +133,8 @@ UMPNETTO = S_NORMALE //2700 PNETTO = S_NORMALE //2700 DESUMPNETTO = S_NASCOSTO //2700 NCOLLI = S_NORMALE //2800 -CAUSMAG1 = S_NASCOSTO //2900 -DESCRMAG1 = S_NASCOSTO //2900 -CAUSMAG2 = S_NASCOSTO //2900 -DESCRMAG2 = S_NASCOSTO //2900 +CAUSMAG = S_OBBLIGATORIO //2900 +DESCRMAG = S_NORMALE //2900 [DEFAULT] @@ -144,7 +142,7 @@ NDEFAULTS=1 1=F_CAUSTRASP|RES [SHEET] -NCOLS=11 +NCOLS=14 1=FR_CODMAG 2=FR_CODDEP 3=FR_CODART @@ -156,6 +154,9 @@ NCOLS=11 9=FR_UMQTA 10=FR_QTA 11=FR_CODIVA +12=FR_CAUS +13=FR_CODMAGC +14=FR_CODDEPC [RIGHE] NTIPIRIGA=1 diff --git a/ve/clifor.h b/ve/clifor.h index a226f4bff..b4d1b7d6a 100755 --- a/ve/clifor.h +++ b/ve/clifor.h @@ -70,7 +70,6 @@ public: virtual int read(TRectype & rec, word op = _isequal, word lockop = _nolock); int read(char tipo, long codice, word op = _isequal, word lockop = _nolock); virtual int remove(TBaseisamfile& f) const; -// int remove() const { return TMultiple_rectype::remove();} TCli_for(char tipo = ' ', long codice = 0L); TCli_for(const TRectype & rec); diff --git a/ve/f33.dir b/ve/f33.dir index 3d6a76ce1..21e897d80 100755 --- a/ve/f33.dir +++ b/ve/f33.dir @@ -1,3 +1,3 @@ 33 0 -$doc|0|0|386|31|Documenti di vendita|NDOC|| +$doc|0|0|391|31|Documenti di vendita|NDOC|| diff --git a/ve/f33.trr b/ve/f33.trr index b8763c914..08ac8542b 100755 --- a/ve/f33.trr +++ b/ve/f33.trr @@ -1,7 +1,7 @@ 33 68 CODNUM|1|4|0|Codice della numerazione -ANNO|2|4|0|Anno/Esercizio +ANNO|2|4|0|Anno PROVV|1|1|0|Tipo numerazione

rovvisorio efinitivo NDOC|3|7|0|Numero documento TIPODOC|1|4|0|Tipo documento @@ -61,8 +61,8 @@ TARA|4|15|2|Tara UMPNETTO|1|2|0|Unità di misura per il peso netto PNETTO|4|15|2|Peso netto NCOLLI|3|7|0|Numero di colli -CAUSMAG1|1|3|0|Causale di magazzino 1 -CAUSMAG2|1|3|0|Causale di magazzino 2 +CAUSMAG|1|4|0|Causale di magazzino +MOVMAG|3|7|0|Numero movimento di magazzino CODNOTE|1|2|0|Codice note cliente NOTE|11|10|0|Note G1|11|10|0|Campo generale 1 diff --git a/ve/f34.dir b/ve/f34.dir index d81bbf6a8..af761e438 100755 --- a/ve/f34.dir +++ b/ve/f34.dir @@ -1,3 +1,3 @@ 34 0 -$rdoc|0|0|278|31|Righe documenti di vendita|NDOC*3|| +$rdoc|0|0|305|31|Righe documenti di vendita|NDOC*3|| diff --git a/ve/f34.trr b/ve/f34.trr index f4eabe497..6ad7f828d 100755 --- a/ve/f34.trr +++ b/ve/f34.trr @@ -1,6 +1,6 @@ 34 -32 -CODNUM|1|4|0| +36 +CODNUM|1|4|0|Codice Numeriazione ANNO|2|4|0|Anno PROVV|1|1|0|Tipo numerazione

rovvisoria efinitiva NDOC|3|7|0|N. documento @@ -10,6 +10,8 @@ TIPORIGA|1|3|0|Tipo riga GENERATA|8|1|0|Riga generata CODMAG|1|5|0|Codice magazzino e deposito CODART|1|20|0|Codice articolo, codice spesa o codice prestazione +CODARTMAG|1|20|0|(=CODART se codice articolo di magazzino, vuoto altrimenti) +CHECKED|8|1|0|CODARTMAG verrificato LIVELLO|1|15|0|Codice di giacenza DESCR|1|50|0|Descrizione DESCLUNGA|8|1|0|Descrizione estesa caricata @@ -30,7 +32,9 @@ IMPFISUN|8|1|0|Flag importo fisso unitario CODIVA|1|4|0|Codice IVA ADDIVA|8|1|0|Addebito IVA ASPBENI|1|2|0|Aspetto dei beni -G1|11|10|0|???? PSPESA|4|5|2|Percentuale di spesa +CAUSMAG|1|4|0|Causale di magazzino +MOVMAG|3|7|0|Numero di movimento id magazzino +CODMAGC|1|5|0|Codice di magazzino per causale collegata 1 CODNUM+ANNO+PROVV+NDOC+NRIGA| diff --git a/ve/fatturaa.src b/ve/fatturaa.src index 026c952b5..dd7a850b9 100755 --- a/ve/fatturaa.src +++ b/ve/fatturaa.src @@ -177,10 +177,6 @@ UMPNETTO = S_NORMALE //2700 PNETTO = S_NORMALE //2700 DESUMPNETTO = S_NASCOSTO //2700 NCOLLI = S_NORMALE //2800 -CAUSMAG1 = S_NASCOSTO //2900 -DESCRMAG1 = S_NASCOSTO //2900 -CAUSMAG2 = S_NASCOSTO //2900 -DESCRMAG2 = S_NASCOSTO //2900 BLANK = S_DISABILITATO //4000 //NOTECLI = S_NORMALE //2500 //RAGGR = S_NORMALE diff --git a/ve/sconti.cpp b/ve/sconti.cpp index 2021cbbb7..8ea5acf06 100755 --- a/ve/sconti.cpp +++ b/ve/sconti.cpp @@ -242,7 +242,7 @@ bool TCond_vendita::cerca( int tiporicerca ) { case 'A': { - const TString codriga = riga().get(FR_CODART); + const TString codriga = riga().get(FR_CODARTMAG); _rcondv.put( "CODRIGA", codriga); if (_rcondv.read() != NOERR && @@ -307,7 +307,7 @@ bool TCond_vendita::cerca( int tiporicerca ) void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only) { TString codart = anamag().get( "CODART" ); - const TString codriga = riga().get( FR_CODART ); + const TString codriga = riga().get( FR_CODARTMAG ); _ivarid = clifo().vendite().get_bool(CFV_IVARID); _load_mask = !load_um_only && !load_scagl_only; @@ -531,14 +531,14 @@ void TCond_vendita::update_omaggi(bool full) TDocumento & doc = testa().doc(); bool update = FALSE; - if (doc[current_doc_row].tipo().tipo() == RIGA_OMAGGI) + if (doc[current_doc_row].is_omaggio()) return; if (current_doc_row < doc.rows()) { TRiga_documento & r = doc[current_doc_row + 1]; - if (r.tipo().tipo() == RIGA_OMAGGI && r.generata()) + if (r.is_omaggio() && r.is_generata()) { doc.destroy_row(current_doc_row + 1, TRUE); sh.destroy(current_doc_row, FALSE); @@ -557,23 +557,17 @@ void TCond_vendita::update_omaggi(bool full) TConfig cnf(CONFIG_STUDIO, "ve"); tipo_riga = cnf.get("TROMAGGI"); } - - if (codart_omaggio.not_empty() && tipo_riga.not_empty()) + qta /= _rcondv.get_real("QBASE"); + qta.floor(); + qta *= _rcondv.get_real("QOM"); + if (codart_omaggio.not_empty() && tipo_riga.not_empty() && qta != ZERO) { TRiga_documento & r = doc.insert_row(current_doc_row + 1, tipo_riga); - r.set_generata(); + r.generata(); TString16 codmag(_riga->get(FR_CODMAG)); codmag << _riga->get(FR_CODDEP); r.put("CODMAG", codmag); r.put("CODART", codart_omaggio); - anamag().setkey(1); - anamag().put("CODART", codart_omaggio); - if (anamag().read() == NOERR) - r.put("DESCR", anamag().get("DESCR")); r.put("UMQTA", _rcondv.get("UMOM")); - - qta /= _rcondv.get_real("QBASE"); - qta.floor(); - qta *= _rcondv.get_real("QOM"); r.put("QTA", qta); r.put("PREZZO", _rcondv.get("PROMAGGIO")); const TString16 codiva_cli(clifo().vendite().get(CFV_ASSFIS)); @@ -585,6 +579,7 @@ void TCond_vendita::update_omaggi(bool full) sh.insert(current_doc_row, FALSE); r.autoload(sh); sh.check_row(current_doc_row); + r.autosave(sh); update = TRUE; } } diff --git a/ve/ve0100.cpp b/ve/ve0100.cpp index 2f9b3e883..dbce8cb5b 100755 --- a/ve/ve0100.cpp +++ b/ve/ve0100.cpp @@ -10,6 +10,10 @@ #include "veini.h" #endif +#ifndef __MODAUT_H +#include +#endif + #ifndef __MGLIB_H #include "..\mg\mglib.h" #endif @@ -153,7 +157,7 @@ bool TMotore_application::ss_handler( TSheet_field& ss, int r, KEY key ) if (r < app()._doc->rows()) { TRiga_documento & riga = (*(app()._doc))[r + 1]; - if (riga.tipo().tipo() == RIGA_OMAGGI && riga.generata()) + if (riga.is_omaggio() && riga.is_generata()) { ss.destroy(r + 1); app()._doc->destroy_row(r + 1, TRUE); @@ -166,7 +170,7 @@ bool TMotore_application::ss_handler( TSheet_field& ss, int r, KEY key ) if (r < app()._doc->rows()) { TRiga_documento & riga = (*(app()._doc))[r + 1]; - if (riga.tipo().tipo() == RIGA_OMAGGI && riga.generata()) + if (riga.is_omaggio() && riga.is_generata()) return FALSE; } TMask & emask = app().edit_mask(); @@ -193,23 +197,21 @@ bool TMotore_application::num_handler( TMask_field& f, KEY key ) // Ottengo la maschera TMask& m = f.mask( ); - if (key == K_TAB && f.focusdirty()) + if (key == K_TAB && f.to_check(key, TRUE)) { TTable & tabnum = ((TTable &) ((TEdit_field &)f).browse()->cursor()->file()); if ( tabnum.good()) - { - // Copio la descrizione della numerazione - m.set( F_DESNUM, tabnum.get( "S0" ) ); - // Copio i tipi di documento validi per la numerazione - const TString tipidocs( tabnum.get( "S2" ) ); - m.set( F_TIPIDOCS, tipidocs ); - TString16 curtipo( m.get( F_TIPODOC ) ); - - // Propone il primo tipo di documento come default - m.set( F_TIPODOC, tipidocs.left( 4 ) ); + { + if (app()._cod_num) + delete app()._cod_num; + app()._cod_num = new TCodice_numerazione(tabnum.curr()); + TCodice_numerazione * c = app()._cod_num; + m.set( F_DESNUM, c->descrizione()); + // Propone il primo tipo di documento come default + m.set( F_TIPODOC, c->tipo_doc(0)); m.send_key( K_TAB, F_TIPODOC ); // Se per questa numerazione h abilitata le numerazione provvisoria - if ( tabnum.get_bool ( "B0" ) ) + if (c->num_provv()) { // Setta di default la numerazione provvisoria m.set( F_PROVV, "P" ); @@ -227,7 +229,6 @@ bool TMotore_application::num_handler( TMask_field& f, KEY key ) else { m.set( F_DESNUM, "" ); - m.set( F_TIPIDOCS, "" ); m.set( F_TIPODOC, "" ); } } @@ -331,36 +332,17 @@ bool TMotore_application::tip_handler( TMask_field& f, KEY key ) TMask& m = f.mask( ); if ( key == K_TAB && m.is_running( ) && m.get(F_TIPODOC).not_empty()) { - TString tipi_consentiti( m.get( F_TIPIDOCS ) ); - TString16 tipo( f.get( ) ); - tipo.trim( ); - bool tipo_valido = FALSE; - for ( int i = 0; i < 10; i ++ ) + const TString16 tipo(f.get()); + TCodice_numerazione * c = app()._cod_num; + int last = c->ntipi_doc(); + for (int i = 0; i < last; i++ ) { - TString16 curtipo( tipi_consentiti.mid( i * 4, 4 ) ); - curtipo.trim( ); - if ( curtipo == tipo ) - { - tipo_valido = TRUE; - break; - } + const TString16 curtipo(c->tipo_doc(i)); + if (curtipo == tipo) + return TRUE; } - if ( ! tipo_valido ) - { - message_box( "Tipo non valido per la numerazione selezionata!" ); - f.set( "" ); - return FALSE; - } + return message_box( "Tipo non valido per la numerazione selezionata!" ); } - if ( key == K_ENTER && m.is_running( ) ) - { TString tipo( f.get( ) ); - if ( tipo.blank( ) ) - { - message_box( "Occorre un tipo documento per inserire un documento!" ); - m.first_focus( F_TIPODOC ); - return FALSE; - } - } return TRUE; } @@ -429,6 +411,8 @@ void TMotore_application::configura_sheet( TSheet_field& sheet, TConfig& config } to_delete.reset(0); to_delete.reset(1); + to_delete.set(sheet.cid2index(FR_CODARTMAG)); + to_delete.set(sheet.cid2index(FR_CHECKED)); const int sconto_col = sheet.cid2index(FR_SCONTO); if (to_delete[sconto_col] == FALSE) @@ -600,7 +584,14 @@ TMask* TMotore_application::get_mask( int mode ) msk1->enable(F_CODAG, gesage); msk1->enable(F_DESAG, gesage); msk1->enable(F_CODAGVIS, gesage); - msk1->enable(F_DESAGVIS, gesage); + msk1->enable(F_DESAGVIS, gesage); + const bool has_movmag = app().has_module(MGAUT, CHK_DONGLE) && _doc->tipo().mov_mag(); + short pos = msk1->id2pos(F_CAUSMAG); + if (pos >= 0) + msk1->fld(pos).show(has_movmag); + pos = msk1->id2pos(F_DESCRMAG); + if (pos >= 0) + msk1->fld(pos).show(has_movmag); } else _sheet = &( TSheet_field& )edit_mask( ).field( F_SHEET ); @@ -623,42 +614,32 @@ const char* TMotore_application::get_next_key( ) { TToken_string key; TMask& m = curr_mask( ); - const TString value = m.get( F_CODNUM ); + const TString16 value = m.get( F_CODNUM ); - if (value.not_empty()) + // Se per questa numerazione h abilitata le numerazione automatica + if( _cod_num->auto_num()) { - TTable tabnum( "%NUM" ); - tabnum.zero( ); - tabnum.put( "CODTAB", value ); - if ( tabnum.read( ) == NOERR && tabnum.get_bool ( "B1" )) - // Se per questa numerazione h abilitata le numerazione automatica - { - TLocalisamfile doc(LF_DOC); - doc.zero(); - doc.put("CODNUM", value); - doc.put("ANNO", m.get(F_ANNO)); - doc.put("PROVV", m.get(F_PROVV)); + TLocalisamfile doc(LF_DOC); + doc.zero(); + doc.put("CODNUM", value); + doc.put("ANNO", m.get(F_ANNO)); + doc.put("PROVV", m.get(F_PROVV)); - TRectype cmp_rec(doc.curr()); // record campione + TRectype cmp_rec(doc.curr()); // record campione - doc.put( "NDOC", 9999999L ); - if (doc.read(_isgreat) == NOERR) - doc.prev(); + doc.put( "NDOC", 9999999L ); + if (doc.read(_isgreat) == NOERR) + doc.prev(); - const long num = ((doc.curr() == cmp_rec) ? doc.get_long( "NDOC" ) : 0) + 1; + const long num = ((doc.curr() == cmp_rec) ? doc.get_long( "NDOC" ) : 0) + 1; - key.format( "%d|%d", F_NDOC, num); - } + key.format( "%d|%d", F_NDOC, num); } return key; } int TMotore_application::read( TMask& m ) { -// const int err = _doc->read(_doc->head()); - -// if ( err == NOERR ) -// { m.autoload(*_rel); _codnum = m.get(F_CODNUM); _tipodoc = m.get(F_TIPODOC); @@ -677,8 +658,6 @@ int TMotore_application::read( TMask& m ) rec.autoload(f); f.check_row(i - 1); } -// } -// return err; return NOERR; } @@ -750,16 +729,20 @@ bool TMotore_application::user_create( ) // Metto in relazione testata e righe _rel = new TRelation( LF_DOC ); open_files(LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART, LF_TAB, LF_TABCOM, LF_CLIFO, - LF_CFVEN, LF_INDSP, LF_OCCAS, 0); + LF_CFVEN, LF_INDSP, LF_OCCAS, LF_MOVMAG, LF_RMOVMAG, 0); _doc = new TDocumento; _rel->lfile().set_curr(_doc); - _doc->set_relation(_rel); + _doc->set_relation(_rel); + _cod_num = NULL; _condv = new TCond_vendita(&doc().clifor(), _config_ditta); _doc->set_condv(_condv); _msk = new TMask("ve0100a"); - query_mask( ).set_handler( F_CODNUM, num_handler ); + set_search_field(F_NDOC); + + query_mask().set_handler( F_CODNUM, num_handler ); + query_mask().set_handler( F_TIPODOC, tip_handler ); _occas_mask = new TMask("ve0100o"); _occas_mask->set_handler( O_CODICE, occas_code_handler ); TConfig utente( CONFIG_USER ); @@ -785,6 +768,8 @@ bool TMotore_application::user_destroy( ) // Distruggo la maschera di modifica if ( _msk != NULL ) delete _msk; + if (_cod_num) + delete _cod_num; // Distruggo la relazione delete _rel; diff --git a/ve/ve0100.h b/ve/ve0100.h index 979536c30..c5b48445b 100755 --- a/ve/ve0100.h +++ b/ve/ve0100.h @@ -69,14 +69,6 @@ #include #endif -#ifndef __VE0100C_H -#include "ve0100c.h" -#endif - -#ifndef __VE0100D_H -#include "ve0100d.h" -#endif - #ifndef __VARMASK_H #include #endif @@ -100,6 +92,7 @@ class TMotore_application : public TRelation_application TArray _file; // Tutti i fiels da usare TDocumento * _doc; + TCodice_numerazione * _cod_num; // Puntatore al profilo del documento caricato TConfig * _pro; diff --git a/ve/ve0100a.uml b/ve/ve0100a.uml index 9c3d3df4f..3176d80da 100755 --- a/ve/ve0100a.uml +++ b/ve/ve0100a.uml @@ -22,7 +22,6 @@ PAGE "Gestione documenti" 1 1 60 14 DISPLAY "Descrizione@50" S0 OUTPUT F_CODNUM CODTAB OUTPUT F_DESNUM S0 - OUTPUT F_TIPIDOCS S2 CHECKTYPE FORCED FLAG "UPA" WARNING "Numerazione assente" @@ -115,12 +114,5 @@ PAGE "Gestione documenti" 1 1 60 14 FLAG "D" END - STRING F_TIPIDOCS 40 - BEGIN - PROMPT 2 10 "" - FLAG "H" - END - ENDPAGE - ENDMASK diff --git a/ve/ve0300.cpp b/ve/ve0300.cpp index c1d812fa7..9d91aa1a1 100755 --- a/ve/ve0300.cpp +++ b/ve/ve0300.cpp @@ -173,6 +173,9 @@ public: // OUTPUT void output( const TString& s ){ outline( s, "OU " ); }; + // copy + void copy( const TString& s ){ outline( s, "CO " ); }; + // Funzioni per la lettura/scrittura di CURPAGE int page( ) { return _curpage; }; void page( const int i ){ _curpage = i; }; @@ -431,6 +434,7 @@ class TField : public TObject int _x, _y; TString _prompt, _flag, _help, _warning, _fieldname; TToken_string _use, _input, _display, _output, _special, _items, _configs; + TToken_string _copy; public: @@ -477,6 +481,7 @@ public: void input( TToken_string& input ){ _input = input; } void display( TToken_string& display ){ _display = display; } void output( TToken_string& output ){ _output = output; } + void copy( TToken_string& copy ){ _copy = copy; } void special( TToken_string& special ){ _special = special; } void items( TToken_string& items ){ _items = items; } void configs( TToken_string& configs ){ _configs = configs; } @@ -484,6 +489,7 @@ public: TToken_string& input( ){ return _input; } TToken_string& display( ){ return _display; } TToken_string& output( ){ return _output; } + TToken_string& copy( ){ return _copy; } TToken_string& special( ){ return _special; } TToken_string& items( ){ return _items; } TToken_string& configs( ){ return _configs; } @@ -619,6 +625,8 @@ TField::TField( TString& campo, TConfig& pro ) : _nome( campo ) _display.separator( '~' ); _output = pro.get( "OUTPUT", campo ); _output.separator( '~' ); + _copy = pro.get( "COPY", campo ); + _copy.separator( '~' ); _special = pro.get( "SPECIAL", campo ); _special.separator( '~' ); _configs = pro.get( "CONFIGS", campo ); @@ -653,6 +661,8 @@ TField::TField( ) _display.separator( '~' ); _output = ""; _output.separator( '~' ); + _copy = ""; + _copy.separator( '~' ); _special = ""; _special.separator( '~' ); _configs = ""; @@ -682,6 +692,7 @@ TObject* TField::dup() const f->_input = _input; f->_display = _display; f->_output = _output; + f->_copy = _copy; f->_special = _special; f->_items = _items; f->_configs = _configs; @@ -804,6 +815,7 @@ void TField::genera( ) if ( !_input.blank( ) ) m.input( _input ); if ( !_display.blank( ) ) m.display( _display ); if ( !_output.blank( ) ) m.output( _output ); + if ( !_copy.blank( ) ) m.copy( _copy ); if ( !_help.blank( ) ) m.help( _help ); if ( !_warning.blank( ) ) m.warning( _warning ); if ( !_special.blank( ) ) m.outline( _special ); @@ -956,6 +968,8 @@ void TMask_generator::carica_dati_campi( const TFilename& fn, TAssoc_array& a ) campo->display( (TToken_string & )value ); else if( key == "OUTPUT" ) campo->output( (TToken_string & )value ); + else if( key == "COPY" ) + campo->copy( (TToken_string & )value ); else if( key == "WARNING" ) campo->warning( value ); else if( key == "HELP" ) @@ -1280,13 +1294,13 @@ void TMask_generator::genera( const TString& profilo ) _m->flag( "DG" ); _m->end( ); - _m->control( T_STRINGA, F_ANNO, 4 ); - _m->begin( ); - _m->prompt( 66, 3, "Es. " ); - _m->field( "ANNO" ); - _m->flag( "GD" ); - _m->message( "CO,9@" ); - _m->end( ); +// _m->control( T_STRINGA, F_ANNO, 4 ); +// _m->begin( ); +// _m->prompt( 66, 3, "Es. " ); +// _m->field( "ANNO" ); +// _m->flag( "GD" ); +// _m->message( "CO,9@" ); +// _m->end( ); _m->control( T_STRINGA, F_CODCF, 6 ); _m->begin( ); diff --git a/ve/ve0300a.src b/ve/ve0300a.src index 5c318e97b..ff7ea3b7e 100755 --- a/ve/ve0300a.src +++ b/ve/ve0300a.src @@ -1513,51 +1513,37 @@ SIZE=0700 WARNING=Numero di colli errato o non presente !!! HELP=Inserisci il numero dei colli -[CAUSMAG1] +[CAUSMAG] GROUP=2900 X=2 Y=0 -FIELDNAME=CAUSMAG1 -MSKID=F_CAUSMAG1 +FIELDNAME=CAUSMAG +MSKID=F_CAUSMAG TYPE=T_STRINGA -PROMPT="Causale mag. 1 " -SIZE=3 +PROMPT="Causale magazzino " +USE=%CAU +INPUT=CODTAB F_CAUSMAG +DISPLAY="Codice" CODTAB~"Descrizione@50" S0 +OUTPUT=F_CAUSMAG CODTAB~F_DESCRMAG S0 +WARNING=Causale di magazzino non trovata +SIZE=4 FLAG=U WARNING=Codice causale non trovato HELP=Inserisci il codice della causale -[DESCRMAG1] +[DESCRMAG] GROUP=2900 -X=24 +X=27 Y=0 -MSKID=F_DESCRMAG1 +MSKID=F_DESCRMAG TYPE=T_STRINGA -PROMPT="Causale di magazzino 1 " +PROMPT="" +USE=%CAU KEY 2 +INPUT=S0 F_DESCRMAG +DISPLAY="Descrizione@50" S0~"Codice" CODTAB +COPY=OU F_CAUSMAG +WARNING=Causale di magazzino non trovata SIZE=50 -FLAG=U - -[CAUSMAG2] -GROUP=2900 -X=2 -Y=1 -FIELDNAME=CAUSMAG2 -MSKID=F_CAUSMAG2 -TYPE=T_STRINGA -PROMPT="Causale mag.2 " -SIZE=3 -FLAG=U -WARNING=Codice causale non trovato -HELP=Inserisci il codice della causale - -[DESCRMAG2] -GROUP=2900 -X=24 -Y=1 -MSKID=F_DESCRMAG2 -TYPE=T_STRINGA -PROMPT="Causale di magazzino 2 " -SIZE=50 -FLAG=U [BLANK] GROUP=4000 diff --git a/ve/ve0300b.dat b/ve/ve0300b.dat index 6bff337d6..8b5aa258e 100755 --- a/ve/ve0300b.dat +++ b/ve/ve0300b.dat @@ -24,3 +24,8 @@ IMPFISSO|3|1802|Importo Fisso|18 CODIVA|2|4|Cod.IVA|4 ADDIVA|4||Addebito IVA|1 ASPBENI|2|3|Aspetto beni|3 +CODCAUS|2|3|Causale Mag.|12 +CODMAGC[1,3]|2|3|Mag.Coll.|9 +CODMAGC[4,5]|2|2|Dep.Coll.|9 +CODARTMAG|2|20|Cod. Art. Mag.|20 +CHECKED|4|10|Controllato|11 diff --git a/ve/ve1100.cpp b/ve/ve1100.cpp index d5f45cb95..29dbf83f8 100755 --- a/ve/ve1100.cpp +++ b/ve/ve1100.cpp @@ -174,8 +174,6 @@ TDocumento_form::TDocumento_form(TRectype&/*TDocumentoEsteso**/ doc, TRelation& read(nomeform); _cli_loaded= FALSE; _is_lista = FALSE; - _condv = new TCond_vendita(_cliente); - _condv = new TCond_vendita(NULL); _doc = new TDocumentoEsteso(doc, _condv); // istanzia TDocumentoEsteso _condv->set_clifo(&_doc->clifor()); diff --git a/ve/ve6100.cpp b/ve/ve6100.cpp index 45a5c4090..98e4a2bfd 100755 --- a/ve/ve6100.cpp +++ b/ve/ve6100.cpp @@ -35,8 +35,8 @@ #include #include #include "../cg/cg2101.h" -#include "../cg/cglib.h" -#include "../cg/saldacon.h" +#include "../cg/cg2103.h" +#include "../cg/cgsaldac.h" #include "velib.h" #include "ve6100a.h" diff --git a/ve/ve6300.cpp b/ve/ve6300.cpp index f59bbc6fc..c8ba0c571 100755 --- a/ve/ve6300.cpp +++ b/ve/ve6300.cpp @@ -34,7 +34,7 @@ #include #include -#include "../cg/saldacon.h" +#include "../cg/cgsaldac.h" #include "../ef/ef0101.h" #include "velib.h" #include "sconti.h" diff --git a/ve/velib.h b/ve/velib.h index a999f8076..9373ca39b 100755 --- a/ve/velib.h +++ b/ve/velib.h @@ -25,8 +25,8 @@ #include "clifor.h" #endif -#ifndef __PAGAMENT_H -#include "../cg/pagament.h" +#ifndef __CGPAGAME_H +#include "../cg/cgpagame.h" #endif #define RIGA_MERCE 'M' @@ -35,6 +35,7 @@ #define RIGA_SCONTI 'C' #define RIGA_OMAGGI 'O' #define RIGA_DESCRIZIONI 'D' +#define MAX_TIPI_DOC 10 class TDocumento; class TRiga_documento; @@ -220,15 +221,18 @@ public: bool is_bolla() const { return tipo() == _bolla; } bool is_ordine() const { return tipo() == _ordine; } - const TString& descrizione() const { return get("S0"); } - const TString& riferimento() const { return get("S1"); } - const TString& imponibile() const { return _imponibile;} - const TString& imposta() const { return _imposta;} - const TString& totale_doc() const { return _totale;} - const TString& totale_netto() const { return _totale_netto; } - const TString& basesconto() const { return _basesconto;} - const TString& spese() const { return _spese;} - + const TString & descrizione() const { return get("S0"); } + const TString & riferimento() const { return get("S1"); } + const TString & imponibile() const { return _imponibile;} + const TString & imposta() const { return _imposta;} + const TString & totale_doc() const { return _totale;} + const TString & totale_netto() const { return _totale_netto; } + const TString & basesconto() const { return _basesconto;} + const TString & spese() const { return _spese;} + bool mov_mag() const { return get_bool("B1"); } + const TString & stato_mov() const {return get("S7"); } + const TString & caus_mov() const {return get("S8"); } + TFormula_documento * first_formula() { return succ_formula(TRUE); } TFormula_documento * succ_formula(bool restart = FALSE); @@ -299,8 +303,18 @@ public: bool doc_dependent() const; int numero() const { return get_int("NRIGA");} void set_numero(int numero) { put("NRIGA", numero);} - bool generata() const { return get_bool("GENERATA");} - void set_generata(bool on = TRUE) { put("GENERATA", on);} + bool is_generata() const { return get_bool("GENERATA");} + void generata(bool on = TRUE) { put("GENERATA", on);} + bool is_merce() const { return tipo().tipo() == 'M';} + bool is_spese() const { return tipo().tipo() == 'S';} + bool is_prestazione() const { return tipo().tipo() == 'P';} + bool is_sconto() const {return tipo().tipo() == 'C';} + bool is_omaggio() const { return tipo().tipo() == 'O';} + bool is_descrizione() const { return tipo().tipo() == 'D';} + bool is_articolo() const; + bool is_checked() const { return get_bool("CHECKED");} + void checked(bool on = TRUE) { put("CHECKED", (bool) on);} + void unchecked() { checked(FALSE);} // @cmember Assegna il documento corrente void set_doc(TDocumento * doc) { _doc = doc; } const TDocumento & doc() const { CHECK(_doc, "Documento nullo"); return *_doc;} @@ -722,7 +736,7 @@ struct dec_parm { imp_val; // add other groups here }; - + class TCodice_numerazione : public TRectype { int _status; @@ -732,15 +746,19 @@ public: public: int read(const char * cod); const TString& codice() const { return get("CODTAB"); } + const TString& descrizione() const { return get("S0"); } const TString& prefisso() const { return get("S6"); } const TString& postfisso() const { return get("S7"); } - const bool manual_num() const { return get_bool("B0"); } +// const bool manual_num() const { return get_bool("B0"); } + const bool num_provv() const { return get_bool("B0"); } const bool auto_num() const { return get_bool("B1"); } - const TString& tipo_doc1() { return get("S2").mid(0,4);} - const TString& tipo_doc2() { return get("S2").mid(4,4);} - const TString& tipo_doc3() { return get("S2").mid(8,4);} - const TString& tipo_doc4() { return get("S2").mid(12,4);} - const TString& tipo_doc5() { return get("S2").mid(16,4);} +// const TString& tipo_doc1() { return get("S2").mid(0,4);} +// const TString& tipo_doc2() { return get("S2").mid(4,4);} +// const TString& tipo_doc3() { return get("S2").mid(8,4);} +// const TString& tipo_doc4() { return get("S2").mid(12,4);} +// const TString& tipo_doc5() { return get("S2").mid(16,4);} + const TString & tipo_doc(int i) const { CHECK(i < MAX_TIPI_DOC, "Impossibbile tipo documento"); return ((TString& ) get("S2").mid(i << 2, 4)).trim();} + int ntipi_doc() const {const int l = get("S2").len(); return l ? (((l - 1) >> 2) + 1) : 0;} const char * complete_num (long num); int status() { return _status; } diff --git a/ve/velib01.cpp b/ve/velib01.cpp index 0c4d35a2a..fe7c463e8 100755 --- a/ve/velib01.cpp +++ b/ve/velib01.cpp @@ -6,6 +6,10 @@ #ifndef __EXPR_H #include #endif + +#ifndef __TABUTIL_H +#include +#endif #ifndef __VERIG_H #include "verig.h" @@ -248,7 +252,7 @@ bool codart_handler( TMask_field& f, KEY key ) } row_mask.field(FR_LIV1).on_hit(); } - if (key == K_TAB && (f.focusdirty() || row_mask.get(FR_DESCR).empty())) + if (key == K_TAB && (f.focusdirty() || row_mask.get(FR_CHECKED).empty())) { TDocumento_mask & mask = (TDocumento_mask &) row_mask.get_sheet()->mask(); TCond_vendita & condv = mask.condv(); @@ -264,7 +268,10 @@ bool codart_handler( TMask_field& f, KEY key ) TString80 codart(f.get()); anamag.setkey(1); anamag.put("CODART", codart); - if (anamag.read() != NOERR) + bool found = anamag.read() == NOERR; + if (found) + row_mask.set(FR_CODARTMAG, codart, TRUE); + else { TLocalisamfile codalt(LF_CODCORR); @@ -275,15 +282,18 @@ bool codart_handler( TMask_field& f, KEY key ) codart = codalt.get("CODART"); anamag.zero(); anamag.put("CODART", codart); - if (anamag.read() == NOERR) - f.set(codart); + found = anamag.read() == NOERR; + if (found) + row_mask.set(FR_CODARTMAG, codart, TRUE); } } - - if (anamag.good()) + row_mask.set(FR_CHECKED, "X"); + if (!found) + row_mask.set(FR_CODARTMAG, "", TRUE); + else { const TString16 lingua = mask.get(F_CODLIN); - const TString codart(row_mask.get(FR_CODART)); + const TString codart(row_mask.get(FR_CODARTMAG)); TString desc(anamag.get("DESCR")); if (lingua.not_empty()) @@ -321,6 +331,28 @@ bool codart_handler( TMask_field& f, KEY key ) iva_handler(row_mask.fld(pos), 0); } return TRUE; +} + +bool codartmag_handler( TMask_field& f, KEY key ) +{ + bool to_check = key == K_TAB && f.focusdirty(); + TMask & m = f.mask(); + + if (!to_check) + { + TSheet_field * s = m.get_sheet(); + + if (s) + to_check = !s->mask().is_running(); + } + if (to_check) + { + const bool artmag = f.get().not_empty(); + + m.show(FR_UMQTA, artmag); + m.show(FR_UMQTA2, !artmag); + } + return TRUE; } bool liv_handler( TMask_field& f, KEY key ) @@ -769,7 +801,7 @@ void TExpr_documento::evaluate_user_func(int index, int nparms, TEval_stack & st real & val = stack.peek_real(); if (_row) { - if (_row->tipo().tipo() == RIGA_SCONTI) + if (_row->is_sconto()) val = -_row->importo(FALSE, FALSE, ndec); else val = _row->importo(FALSE, FALSE, ndec) - _row->importo(TRUE, FALSE, ndec); diff --git a/ve/velib02.cpp b/ve/velib02.cpp index 40b36b463..c56067b15 100755 --- a/ve/velib02.cpp +++ b/ve/velib02.cpp @@ -5,8 +5,8 @@ #include #endif -#ifndef __VE0100C_H -#include "ve0100c.h" +#ifndef __TABUTIL_H +#include #endif #ifndef __VERIG_H @@ -152,6 +152,7 @@ TVariable_mask * TTipo_riga_documento::mask() _mask->set_handler( FR_LIV2, liv_handler ); _mask->set_handler( FR_LIV3, liv_handler ); _mask->set_handler( FR_UMQTA, umart_handler ); + _mask->set_handler( FR_CODARTMAG, codartmag_handler ); _mask->set_handler( FR_DESCR, descr_handler ); _mask->set_handler( FR_QTA, qta_handler ); } @@ -267,7 +268,7 @@ bool TRiga_documento::sola_descrizione() const void TRiga_documento::forza_sola_descrizione() { // In realta' il test serve anche a caricare la lista dei tipi riga! - if (!tipo_valido() || tipo().tipo() != RIGA_DESCRIZIONI) + if (!tipo_valido() || !is_descrizione()) { _tipi.restart(); for (const TObject* o = _tipi.get(); o; o = _tipi.get()) @@ -457,7 +458,7 @@ real TRiga_documento::imponibile() const if (field.not_empty()) { - if (tipo().tipo() == RIGA_OMAGGI && _iva_calc) + if (is_omaggio() && _iva_calc) { TDocumento_variable_field * f = (TDocumento_variable_field *) variable_field(field); CHECKS(f, "Field UNKNOWN : ", field); @@ -519,6 +520,12 @@ void TRiga_documento::put_str(const char* fieldname, const char* val) } } +bool TRiga_documento::is_articolo() const +{ + const char t = tipo().tipo(); + return (t == RIGA_MERCE || t == RIGA_OMAGGI) && get("CODARTMAG").not_empty(); +} + void TRiga_documento::zero(const char * fieldname) { if (strcmp(fieldname, "TIPORIGA") == 0) @@ -593,6 +600,14 @@ void TRiga_documento::autosave(TSheet_field & f) put( "CODIVA", row.get( f.cid2index(FR_CODIVA )) ); put( "ADDIVA", row.get( f.cid2index(FR_ADDIVA )) ); put( "ASPBENI", row.get( f.cid2index(FR_ASPBENI )) ); + put( "CAUSMAG", row.get( f.cid2index(FR_CAUS )) ); + TString16 codmagc(row.get(f.cid2index(FR_CODMAGC))); + + codmagc.left_just(3); + codmagc << row.get( f.cid2index(FR_CODDEPC )); + put( "CODMAGC", codmagc); + put( "CODARTMAG", row.get( f.cid2index(FR_CODARTMAG )) ); + put( "CHECKED", row.get( f.cid2index(FR_CHECKED )) ); } } @@ -659,5 +674,11 @@ void TRiga_documento::autoload(TSheet_field & f) row.add( get( "CODIVA" ), f.cid2index(FR_CODIVA )); row.add( get( "ADDIVA" ), f.cid2index(FR_ADDIVA )); row.add( get( "ASPBENI" ), f.cid2index(FR_ASPBENI )); + row.add( get( "CAUSMAG" ), f.cid2index(FR_CAUS )); + const TString codmagc(get("CODMAGC")); + row.add( codmagc.left(3), f.cid2index(FR_CODMAGC )); + row.add( codmagc.mid(3), f.cid2index(FR_CODDEPC )); + row.add( get( "CODARTMAG" ), f.cid2index(FR_CODARTMAG)); + row.add( get( "CHECKED" ), f.cid2index(FR_CHECKED)); } diff --git a/ve/velib03.cpp b/ve/velib03.cpp index 6f336b4a8..09288fc34 100755 --- a/ve/velib03.cpp +++ b/ve/velib03.cpp @@ -10,6 +10,10 @@ #include "veuml.h" #endif +#ifndef __TABUTIL_H +#include +#endif + #ifndef __UTILITY_H #include #endif @@ -18,15 +22,49 @@ #include "veini.h" #endif -#ifndef __DEFMASK_H -//#include +#ifndef __MGLIB_H +#include "../mg/mglib.h" #endif - #ifndef __SCONTI_H #include "sconti.h" #endif +#ifndef __MODAUT_H +#include +#endif + +/////////////////////////////////////////////////////////// +// Movimento di magazzino +/////////////////////////////////////////////////////////// +class TMov_mag_doc : public TMov_mag +{ + const TDocumento * _doc; + +protected: + virtual const char * codmag_rauto(int r) const; + +public: + TMov_mag_doc(const TDocumento * d) : _doc(d) {} + virtual ~TMov_mag_doc() {} +}; + +const char * TMov_mag_doc::codmag_rauto(int r) const +{ + const int rows = _doc->physical_rows(); + const long num = get_long(MOVMAG_NUMREG); + + for (int i = 1; r > 0 && i <= rows; i++) + if ((*_doc)[i].is_articolo() && num == (*_doc)[i].get_long("MOVMAG")) + r--; + i--; + if (i > rows) + return NULL; + + const TString & codmag = (*_doc)[i].get("CODMAGC"); + + return codmag.empty() ? NULL : (const char *) codmag; +} /////////////////////////////////////////////////////////// // Tipo documento /////////////////////////////////////////////////////////// @@ -608,8 +646,12 @@ void TDocumento::dirty_fields() } int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const -{ - const bool nuovo = _nuovo || numero() <= 0; // E' nuovo di zecca! +{ + const bool nuovo = _nuovo || numero() <= 0; // E' nuovo di zecca! + const bool check_movmag = main_app().has_module(MGAUT, CHK_DONGLE) && tipo().mov_mag(); + const TString16 statomag(tipo().stato_mov()); + const bool do_movmag = get("STATO") >= statomag; + if (nuovo && re) // quindi ... re = FALSE; // ... non fare la rewrite @@ -617,6 +659,136 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const const TString80 occ_code(occas().get(OCC_CFPI)); ((TDocumento *)this)->put("OCFPI", occ_code); + + long num = get_long("MOVMAG"); + const int rows = physical_rows(); + + if (check_movmag) + { + TMov_mag_doc mov(this); + TLocalisamfile m(LF_MOVMAG); + mov.zero(); + if (num == 0 && do_movmag) + { + num = atol(mov.get_next_key()); + mov.put(MOVMAG_NUMREG, num); + while (mov.write(m) == _isreinsert) + { + num++; + mov.put(MOVMAG_NUMREG, num); + } + ((TDocumento *)this)->put("MOVMAG", num); + } + if (num > 0) + { + mov.put(MOVMAG_NUMREG, num); + while (mov.read(m, _isequal, _testandlock) == _islocked) + message_box("Movimento di magazzino in uso da parte di un'altro utente"); + if (do_movmag) + { + TRecord_array & b = mov.body(); + const int mag_rows = mov.rows(); + + for (int i = mag_rows; i > 0; i--) + { + TRectype & r = b[i]; + if (r.get_char(RMOVMAG_TIPORIGA) == riga_dadocumento) + { + b.destroy_row(i); + if (b.exist(i + 1) && + b[i + 1].get_char(RMOVMAG_TIPORIGA) == riga_automatica) + b.destroy_row(i + 1); + } + } + b.pack(); + + TDate d(get("DATADOC")); + mov.put(MOVMAG_ANNOES, mov.codice_esercizio(d)); + mov.put(MOVMAG_DATAREG, d); + mov.put(MOVMAG_DATACOMP, d); + mov.put(MOVMAG_DOCPROVV, get("PROVV")); + mov.put(MOVMAG_ANNODOC, get("ANNO"));; + mov.put(MOVMAG_CODNUM, get("CODNUM")); + const long numdoc = get_long("NDOC"); + mov.put(MOVMAG_NUMDOC, numdoc); + mov.put(MOVMAG_CATVEN, get("CATVEN")); + mov.put(MOVMAG_CODLIST, get("CODLIST")); + mov.put(MOVMAG_CODCONT, get("CODCONT")); + mov.put(MOVMAG_CODCAMP, get("CODCAMP")); + mov.put(MOVMAG_CODCAUS, get("CAUSMAG")); + mov.put(MOVMAG_DESCR, format("%s n.ro %ld del %s", (const char *) tipo().get("S1"), numdoc, (const char *) d.string())); + mov.put(MOVMAG_TIPOCF, get("TIPOCF")); + mov.put(MOVMAG_CODCF, get("CODCF")); + + int j = 1; + + for (i = 1; i <= rows; i++) + { + TRiga_documento & r = ((TDocumento *)this)->row(i); + + if (r.is_articolo()) + { + long r_num = r.get_long("MOVMAG"); + if (r_num == 0) + { + r_num = num; + r.put("MOVMAG", r_num); + } + + if (r_num == num) + { + TRectype & rm = mov.insert_row(j++); + + rm.put(RMOVMAG_CODMAG, r.get("CODMAG")); + rm.put(RMOVMAG_CODART, r.get("CODARTMAG")); + rm.put(RMOVMAG_LIVGIAC, r.get("LIVELLO")); + rm.put(RMOVMAG_UM, r.get("UMQTA")); + rm.put(RMOVMAG_QUANT, r.get("QTA")); + rm.put(RMOVMAG_PREZZO, r.get("PREZZO")); + rm.put(RMOVMAG_CODCAUS, r.get("CAUSMAG")); + rm.put(RMOVMAG_TIPORIGA, (char) riga_dadocumento); + } + } + } + mov.rewrite(m); + } + else + { + mov.remove(m); + for (int i = rows; i > 0; i--) + { + TRiga_documento & r = ((TDocumento *) this)->row(i); + long r_num = r.get_long("MOVMAG"); + if (r_num == num) + r.zero("MOVMAG"); + } + ((TDocumento *)this)->zero("MOVMAG"); + } + } + TLocalisamfile anamag(LF_ANAMAG); + TLocalisamfile codalt(LF_CODCORR); + codalt.setkey(2); + for (int i = rows; i > 0; i--) + { + TRiga_documento & r = ((TDocumento *) this)->row(i); + if (!r.is_checked()) + { + const TString & codart = r.get("CODART"); + anamag.put("CODART", codart); + if (anamag.read() == NOERR) + r.put("CODARTMAG", codart); + else + { + codalt.put("CODARTALT", codart); + if (codalt.read() == NOERR) + r.put("CODARTMAG", codalt.get("CODART")); + } + r.checked(); + } + } + } + + if (re) { err = _rows.write(re); @@ -659,10 +831,10 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const err = _occas.write(o); if (err == _isreinsert) err = _occas.rewrite(o); - } + } return err; } - + // eliminare anche il mov di mag. ?????? int TDocumento::remove(TBaseisamfile& f) const { int err = _rows.remove(); @@ -1020,7 +1192,7 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old, { TRiga_documento & r = row(i); - if (r.tipo().tipo() == RIGA_SPESEDOC && r.generata()) + if (r.tipo().tipo() == RIGA_SPESEDOC && r.is_generata()) { if (preserve_old) return; @@ -1047,7 +1219,7 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old, TRiga_documento & riga = new_row(tipo); riga.put("CODART", s); - riga.set_generata(); + riga.generata(); riga.put("DESCR", sp.descrizione()); switch (sp.tipo()) { diff --git a/ve/velib04.cpp b/ve/velib04.cpp index e72c8051d..a0c9067f8 100755 --- a/ve/velib04.cpp +++ b/ve/velib04.cpp @@ -5,6 +5,10 @@ #include #endif +#ifndef __TABUTIL_H +#include +#endif + /////////////////////////////////////////////////////////// // Lista di documenti /////////////////////////////////////////////////////////// diff --git a/ve/velib05.cpp b/ve/velib05.cpp index 4e69536eb..0ad8f1cce 100755 --- a/ve/velib05.cpp +++ b/ve/velib05.cpp @@ -1,5 +1,9 @@ #include "velib.h" +#ifndef __TABUTIL_H +#include +#endif + ///////////////////////////////////////////////////////////// // TCodice_numerazione ///////////////////////////////////////////////////////////// diff --git a/ve/velib06.cpp b/ve/velib06.cpp index a7bf576a2..a6a611745 100755 --- a/ve/velib06.cpp +++ b/ve/velib06.cpp @@ -13,6 +13,10 @@ #include "veuml1.h" #endif +#ifndef __TABUTIL_H +#include +#endif + #ifndef __UTILITY_H #include #endif diff --git a/ve/vepriv.h b/ve/vepriv.h index d41bbc27b..30a6c2b81 100755 --- a/ve/vepriv.h +++ b/ve/vepriv.h @@ -5,5 +5,11 @@ enum TTipo_calcolo { _nessun_calcolo, _qtaprezzo, _valore, _percentuale, _sconto void row_set_handler( TMask& m, const int field, const int index ); bool liv_handler( TMask_field& f, KEY key ); bool sppr_handler( TMask_field& f, KEY key ); +bool codartmag_handler( TMask_field& f, KEY key ); bool iva_handler( TMask_field& f, KEY key ); void sppr_calc(TRectype & rec, const TString & valuta_doc, const real & cambio, real & prezzo); +void row_set_handler(TMask& m, const int field, const int index); +bool codart_handler(TMask_field& f, KEY key); +bool umart_handler(TMask_field& f, KEY key); +bool descr_handler(TMask_field& f, KEY key); +bool qta_handler(TMask_field& f, KEY key); diff --git a/ve/verig.h b/ve/verig.h index b422f22d4..e7caaa0dd 100755 --- a/ve/verig.h +++ b/ve/verig.h @@ -26,6 +26,8 @@ // UMQTA UMQTASP UMQTAPR alternativi definirne uno solo #define FR_UMQTA 111 #define FR_UMQTASP 111 +// UMQTA2 da non definire +#define FR_UMQTA2 211 // QTA PERCSP alternativi definirne uno solo #define FR_QTA 112 #define FR_PERCSP 112 @@ -46,7 +48,13 @@ #define FR_CODIVA 124 #define FR_ADDIVA 125 #define FR_ASPBENI 126 -#define FR_END 127 +#define FR_CAUS 127 +#define FR_CODMAGC 128 +#define FR_CODDEPC 129 +// CODARTMAG CHECKED da non definire +#define FR_CODARTMAG 130 +#define FR_CHECKED 131 +#define FR_END 132 #define MAX_COLUMNS FR_END-FR_STATORIGA #define FR_DESMAG 150 @@ -54,4 +62,7 @@ #define FR_DESIVA 152 #define FR_DESASP 153 #define FR_DESTIPORIGA 154 +#define FR_DESCRCAUS 155 +#define FR_DESMAGC 156 +#define FR_DESDEPC 157 #endif diff --git a/ve/verig.uml b/ve/verig.uml index 864f2eecd..30a99939c 100755 --- a/ve/verig.uml +++ b/ve/verig.uml @@ -108,7 +108,7 @@ IFDEF(F_CODDEP) STRING FR_CODDEP 2 BEGIN IFDEF(X_CODDEP) - PROMPT X_DESMAG Y_DESMAG PR_DESMAG + PROMPT X_CODDEP Y_CODDEP PR_CODDEP ELSEIF PROMPT 2 4 "Deposito " ENDIF @@ -173,6 +173,20 @@ ENDIF ADD RUN ve2 -3 END +STRING FR_CODARTMAG 20 +BEGIN + PROMPT 50 50 "" + FIELD CODARTMAG + FLAGS "G" +END + +BOOLEAN FR_CHECKED +BEGIN + PROMPT 51 50 "" + FIELD CHECKED + FLAGS "D" +END + STRING FR_LIV1 10 BEGIN IFDEF(X_LIV1) @@ -478,7 +492,7 @@ ELSEIF ENDIF USE LF_UMART KEY 2 JOIN %UMS INTO CODTAB=UM - INPUT CODART FR_CODART SE + INPUT CODART FR_CODARTMAG SE INPUT UM FR_UMQTA DISPLAY "Codice@20" UM DISPLAY "Descrizione@50" %UMS->S0 @@ -491,6 +505,27 @@ ELSEIF CHECKTYPE NORMAL ENDIF END + +STRING FR_UMQTA2 2 +BEGIN +IFDEF(X_UMQTA) + PROMPT X_UMQTA Y_UMQTA PR_UMQTA +ELSEIF + PROMPT 2 9 "U.M. " +ENDIF + USE %UMS + INPUT CODTAB FR_UMQTA2 + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT FR_UMQTA2 CODTAB + FIELD UMQTA + FLAG "U" +IFDEF(CH_UMQTA) + CHECKTYPE CH_UMQTA +ELSEIF + CHECKTYPE NORMAL +ENDIF +END ENDIF IFDEF(F_UMQTASP) @@ -775,6 +810,131 @@ END ENDIF ENDIF +IFDEF(F_CAUS) +STRING FR_CAUS 4 +BEGIN +IFDEF(X_CAUS) + PROMPT X_CAUS Y_CAUS PR_CAUS +ELSEIF + PROMPT 2 18 "Caus.magazz. " +ENDIF + USE %CAU + INPUT CODTAB FR_CAUS + DISPLAY "Codice@20" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT FR_CAUS CODTAB + OUTPUT FR_DESCRCAUS S0 + FLAGS "U" +IFDEF(CH_CAUS) + CHECKTYPE CH_CAUS +ELSEIF + CHECKTYPE NORMAL +ENDIF + FIELD CODCAUS +END + +IFDEF(F_DESCRCAUS) +STRING FR_DESCRCAUS 50 +BEGIN +IFDEF(X_DESCRCAUS) + PROMPT X_DESCRCAUS Y_DESCRCAUS PR_DESCRCAUS +ELSEIF + PROMPT 22 18 "" +ENDIF + FLAGS "D" +END +ENDIF +ENDIF + +IFDEF(F_CODMAGC) +STRING FR_CODMAGC 3 +BEGIN +IFDEF(X_CODMAG) + PROMPT X_CODMAG Y_CODMAG PR_CODMAG +ELSEIF + PROMPT 2 19 "Mag.colleg. " +ENDIF + COPY USE FR_CODMAG + INPUT CODTAB FR_CODMAGC + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT FR_CODMAGC CODTAB + OUTPUT FR_DESMAGC S0 + WARNING "Magazzino assente" + FLAGS "U" +IFDEF(FL_CODMAGC) + FLAGS FL_CODMAGC +ENDIF + KEY 1 +IFDEF(CH_CODMAGC) + CHECKTYPE CH_CODMAGC +ELSEIF + CHECKTYPE NORMAL +ENDIF + FIELD CODMAGC[1,3] +END + +IFDEF(F_DESMAGC) +STRING FR_DESMAGC 50 +BEGIN +IFDEF(X_DESMAGC) + PROMPT X_DESMAGC Y_DESMAGC PR_DESMAGC +ELSEIF + PROMPT 22 19 "" +ENDIF +IFDEF(FL_DESMAGC) + FLAGS FL_DESMAGC +ENDIF + FLAGS "D" +END +ENDIF +ENDIF + +IFDEF(F_CODDEPC) +STRING FR_CODDEPC 2 +BEGIN +IFDEF(X_CODDEPC) + PROMPT X_CODDEPC Y_CODDEPC PR_CODDEPC +ELSEIF + PROMPT 2 20 "Deposito " +ENDIF + COPY USE FR_CODDEP + INPUT CODTAB[1,3] FR_CODMAGC + INPUT CODTAB[4,5] FR_CODDEPC + DISPLAY "Codice mag." CODTAB[1,3] + DISPLAY "Codice dep." CODTAB[4,5] + DISPLAY "Descrizione@50" S0 + OUTPUT FR_CODMAGC CODTAB[1,3] + OUTPUT FR_CODDEPC CODTAB[4,5] + OUTPUT FR_DESDEPC S0 + MESSAGE DIRTY,FR_CODMAGC|K_TAB,FR_CODMAGC +IFDEF(CH_CODDEPC) + CHECKTYPE CH_CODDEPC +ELSEIF + CHECKTYPE NORMAL +ENDIF + WARNING "Deposito assente" +IFDEF(FL_CODDEPC) + FLAGS FL_CODDEPC +ENDIF + FLAGS "U" + KEY 1 + FIELD CODMAGC[4,5] +END + +IFDEF(F_DESDEPC) +STRING FR_DESDEPC 50 +BEGIN +IFDEF(X_DESDEPC) + PROMPT X_DESDEPC Y_DESDEPC PR_DESDEPC +ELSEIF + PROMPT 22 20 "" +ENDIF + FLAGS "D" +END +ENDIF +ENDIF + #ifndef FULL_SCREEN BUTTON DLG_OK 9 2 BEGIN diff --git a/ve/verig00.uml b/ve/verig00.uml index 6d18d827c..027e4520c 100755 --- a/ve/verig00.uml +++ b/ve/verig00.uml @@ -24,6 +24,12 @@ DEFINE_FIELD(DESIVA) DEFINE_FIELD(ADDIVA) DEFINE_FIELD(ASPBENI) DEFINE_FIELD(DESASP) +DEFINE_FIELD(CAUS) +DEFINE_FIELD(DESCRCAUS) +DEFINE_FIELD(CODMAGC) +DEFINE_FIELD(DESMAGC) +DEFINE_FIELD(CODDEPC) +DEFINE_FIELD(DESDEPC) #include "verig.uml" diff --git a/ve/verig01.uml b/ve/verig01.uml index 212306db0..febd785d3 100755 --- a/ve/verig01.uml +++ b/ve/verig01.uml @@ -29,6 +29,13 @@ DEFINE_FIELD(CODIVA) F_POS(CODIVA, 2, 13,"Cod. IVA " ) DEFINE_FIELD(DESIVA) F_POS(DESIVA, 22, 13,"" ) +DEFINE_FIELD(CAUS) +DEFINE_FIELD(DESCRCAUS) +DEFINE_FIELD(CODMAGC) +DEFINE_FIELD(DESMAGC) +DEFINE_FIELD(CODDEPC) +DEFINE_FIELD(DESDEPC) + #include "verig.uml" diff --git a/ve/verig09.uml b/ve/verig09.uml index 51e8b9126..2a7855170 100755 --- a/ve/verig09.uml +++ b/ve/verig09.uml @@ -25,6 +25,12 @@ F_POS(CODIVA, 2, 11,"Cod. IVA " ) DEFINE_FIELD(DESIVA) F_POS(DESIVA, 22, 11,"" ) DEFINE_FIELD(ADDIVA) +DEFINE_FIELD(CAUS) +DEFINE_FIELD(DESCRCAUS) +DEFINE_FIELD(CODMAGC) +DEFINE_FIELD(DESMAGC) +DEFINE_FIELD(CODDEPC) +DEFINE_FIELD(DESDEPC) #include "verig.uml" diff --git a/ve/veuml.h b/ve/veuml.h index bda26b726..8a7f15133 100755 --- a/ve/veuml.h +++ b/ve/veuml.h @@ -59,8 +59,7 @@ #define F_UMPNETTO 161 #define F_PNETTO 162 #define F_NCOLLI 163 -#define F_CAUSMAG1 164 -#define F_CAUSMAG2 165 +#define F_CAUSMAG 164 #define F_NOTE 166 #define F_G1 167 #define F_G2 168 diff --git a/ve/veuml1.h b/ve/veuml1.h index b947f01e8..d9699fde7 100755 --- a/ve/veuml1.h +++ b/ve/veuml1.h @@ -38,8 +38,7 @@ #define F_DESCRBENI2 323 #define F_DESUMTARA 324 #define F_DESUMPNETTO 325 -#define F_DESCRMAG1 326 -#define F_DESCRMAG2 327 +#define F_DESCRMAG 326 #define F_COFI 328 #define F_STATOPAIVA 329 #define F_LOCALITACF 330