Migliorato supporto per elaborazioni esterne

git-svn-id: svn://10.65.10.50/branches/R_10_00@23027 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2014-12-10 16:19:08 +00:00
parent 07a1b81dad
commit d4f58ea1ec
26 changed files with 5716 additions and 5348 deletions

View File

@ -1,3 +1,3 @@
33 33
0 0
$doc|0|0|687|0|Documenti di vendita||| $doc|0|0|723|0|Documenti di vendita|||

View File

@ -1,5 +1,5 @@
33 33
95 97
CODNUM|1|4|0|Codice della numerazione CODNUM|1|4|0|Codice della numerazione
ANNO|2|4|0|Anno ANNO|2|4|0|Anno
PROVV|1|1|0|Tipo numerazione <P>rovvisorio <D>efinitivo PROVV|1|1|0|Tipo numerazione <P>rovvisorio <D>efinitivo
@ -74,7 +74,7 @@ CODNOTE|1|2|0|Codice note cliente
NOTE|11|10|0|Note NOTE|11|10|0|Note
G1|11|10|0|Campo generale 1 G1|11|10|0|Campo generale 1
DATAAGG|5|8|0|Data ultimo aggiornamento DATAAGG|5|8|0|Data ultimo aggiornamento
UTENTE|1|10|0|Utente ultimo aggiornamento UTENTE|1|16|0|Utente ultimo aggiornamento
COLL_GOLEM|11|10|0|Collegamento lista di GOLEM COLL_GOLEM|11|10|0|Collegamento lista di GOLEM
DOCEVASO|8|1|0|Ordine evaso DOCEVASO|8|1|0|Ordine evaso
CODCMS|1|20|0|Codice Commessa CODCMS|1|20|0|Codice Commessa
@ -93,8 +93,10 @@ CUP|1|15|0|Codice Unico di Progetto
CIG|1|10|0|Codice Identificativo di Gara CIG|1|10|0|Codice Identificativo di Gara
MODPAG|1|1|0|Tipo contratto P.A. MODPAG|1|1|0|Tipo contratto P.A.
CONTRATTO|1|20|0|Contratto fattura P.A. CONTRATTO|1|20|0|Contratto fattura P.A.
CONTSEP|1|6|0|Contabilita' separata CONTSEP|1|6|0|Contabilità separata
NOLEGGIO|1|1|0|Tipo noleggio (Spesometro) NOLEGGIO|1|1|0|Tipo noleggio (pe)
COMMPREL|1|20|0|Commessa di prelievo (ci)
FASEPREL|1|10|0|Fase di prelievo (ci)
5 5
PROVV+ANNO+CODNUM+NDOC| PROVV+ANNO+CODNUM+NDOC|
TIPOCF+CODCF+PROVV+ANNO+DATADOC+CODNUM+NDOC|X TIPOCF+CODCF+PROVV+ANNO+DATADOC+CODNUM+NDOC|X

View File

@ -1,3 +1,3 @@
47 47
0 0
$anamag|0|0|1137|0|Anagrafica di magazzino|NART|| $anamag|0|0|1121|0|Anagrafica di magazzino|NART||

View File

@ -96,8 +96,8 @@ USER15|1|20|0|Campo libero 15
USER16|1|20|0|Campo libero 16 USER16|1|20|0|Campo libero 16
USER17|1|20|0|Campo libero 17 USER17|1|20|0|Campo libero 17
USER18|1|20|0|Campo libero 18 USER18|1|20|0|Campo libero 18
USER19|1|20|0|Campo libero 19 DATAAGG|5|8|0|
USER20|1|20|0|Campo libero 20 UTENTE|1|16|0|
3 3
CODART| CODART|
UPPER(DESCR)|X UPPER(DESCR)|X

View File

@ -1,3 +1,3 @@
53 53
0 0
$rcondv|0|0|217|0|Righe condizioni di vendita||| $rcondv|0|0|233|0|Righe condizioni di vendita|||

View File

@ -1,5 +1,5 @@
53 53
25 27
TIPO|1|1|0|Tipo (<L>istino,<C>ontratto,<O>fferta) TIPO|1|1|0|Tipo (<L>istino,<C>ontratto,<O>fferta)
CATVEN|1|2|0|Categoria di vendita (L) CATVEN|1|2|0|Categoria di vendita (L)
TIPOCF|1|1|0|<C>liente o <F>ornitore (C) TIPOCF|1|1|0|<C>liente o <F>ornitore (C)
@ -25,5 +25,7 @@ ARTES|8|1|0|Articolo in esaurimento (O)
DATAULTAUM|5|8|0|Data ultimo aumento DATAULTAUM|5|8|0|Data ultimo aumento
PRZSTO|4|18|5|Prezzo storico PRZSTO|4|18|5|Prezzo storico
DATAPRZSTO|5|8|0|Data prezzo storico DATAPRZSTO|5|8|0|Data prezzo storico
DATAAGG|5|8|0|
UTENTE|1|16|0|
1 1
TIPO+CATVEN+TIPOCF+CODCF+COD+TIPORIGA+CODRIGA+UM+NSCAGL| TIPO+CATVEN+TIPOCF+CODCF+COD+TIPORIGA+CODRIGA+UM+NSCAGL|

280
ve/movint.src Normal file
View File

@ -0,0 +1,280 @@
#include "veini.h"
#include "veuml.h"
#include "verig.h"
[MAIN]
TYPE=Movimento interno
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESIMB|SPESTRA|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
CALCOLI=*
TOTPROVV=
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=C
//modulo di riferimento
MODULE=
Title(1)=Cliente
Title(2)=Spedizione
Title(3)=Trasporto
Title(4)=Righe
Title(5)=Totali
[PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
// 1|Prompt|Help|Warning
// TIPOCF = S_NORMALE
// CODCF = S_OBBLIGATORIO
// RAGSOC = S_NORMALE
OCCASEDIT = S_NORMALE
OCFPI = S_DISABILITATO
COFI = S_NORMALE
STATOPAIV = S_NORMALE
PAIVA = S_NORMALE
LIQDIFF = S_NASCOSTO
IVAXCASSA = S_NASCOSTO
GOLEM = S_NASCOSTO
GRRECAPITO = S_NORMALE
INDCF = S_DISABILITATO
CIVCF = S_DISABILITATO
LOCALITACF = S_DISABILITATO
CAPCF = S_DISABILITATO
PROVCOM = S_DISABILITATO
COMCF = S_DISABILITATO
DENCOM = S_DISABILITATO
STATOCF = S_DISABILITATO
DESSTATOCF = S_DISABILITATO
PACONTRATTO = S_NASCOSTO
PATIPOCON = S_NASCOSTO
CONTSEP = S_NASCOSTO
CODVAL1 = S_NORMALE
CODVAL2 = S_NORMALE
NOME_VAL1 = S_NORMALE
NOME_VAL2 = S_NORMALE
// CONTROEURO = S_NORMALE
CAMBIO = S_NORMALE
DATA_CAMBIO1 = S_NORMALE
DATA_CAMBIO2 = S_NORMALE
CODLIN = S_NORMALE
DESLIN = S_NORMALE
CODPAG = S_OBBLIGATORIO
DESCODPAG = S_NORMALE
GRSCADENZE = S_NORMALE
DATAINSC = S_NORMALE
DATASCAD1 = S_DISABILITATO
DATASCAD2 = S_DISABILITATO
DATASCAD3 = S_DISABILITATO
DATASCAD4 = S_DISABILITATO
DATASCAD5 = S_DISABILITATO
CODABIA = S_OBBLIGATORIO
CODCABA = S_OBBLIGATORIO
CODABIA1 = S_NORMALE
CODCABA1 = S_NORMALE
DESBANAPP = S_NOCHECK
DESBANAPP1 = S_NOCHECK
IBAN = S_NORMALE
IBAN_STATO = S_NORMALE
IBAN_CHECK = S_NORMALE
BBAN = S_NORMALE
BBAN_CIN = S_NORMALE
BBAN_ABI = S_NORMALE
BBAN_CAB = S_NORMALE
BBAN_CONTO = S_NORMALE
CODABIP = S_NORMALE
CODCABP = S_NORMALE
CODABIP1 = S_NORMALE
CODCABP1 = S_NORMALE
DESBANPRE = S_NOCHECK
DESBANPRE1 = S_NOCHECK
PROGBNP = S_NOCHECK
PROGBNP1 = S_NORMALE
CATVEN = S_NORMALE
DESCATVEN = S_DISABILITATO
CODLIST = S_NORMALE
DESLIST = S_NORMALE
CODCONT = S_NORMALE
DESCONT = S_NORMALE
CODCAMP = S_NORMALE
DESCAMP = S_NORMALE
SCONTOPERC = S_NORMALE
GRINDSPED = S_NORMALE
CODINDSP = S_NORMALE
RAGSOCSP = S_DISABILITATO
INDSP = S_DISABILITATO
CIVSP = S_DISABILITATO
LOCALITASP = S_DISABILITATO
CAPSP = S_DISABILITATO
COMSP = S_DISABILITATO
DENCOMSP = S_DISABILITATO
PROVCOMSP = S_DISABILITATO
STATOSP = S_DISABILITATO
DESSTATOSP = S_DISABILITATO
DATADOCRIF = S_NORMALE
NUMDOCRIF = S_NOCHECK
CODAG = S_NORMALE
DESAG = S_NORMALE
CODAGVIS = S_NORMALE
DESAGVIS = S_NORMALE
CODZON = S_NORMALE
DESZON = S_NORMALE
CODSPMEZZO = S_OBBLIGATORIO
DESSPMEZZO = S_NORMALE
CODPORTO = S_NORMALE
DESPORTO = S_NORMALE
CODNOTESP1 = S_NORMALE
DESNOTESP1 = S_NORMALE
CODNOTESP2 = S_NORMALE
DESNOTESP2 = S_NORMALE
CAUSTRASP = S_OBBLIGATORIO
DENCAUSTRASP = S_NORMALE
CODVETT1 = S_NORMALE
CODVETT2 = S_NORMALE
CODVETT3 = S_NORMALE
NOMEVETT1 = S_NORMALE
NOMEVETT2 = S_NORMALE
NOMEVETT3 = S_NORMALE
NCOPIE = S_NASCOSTO
GRPARTENZA = S_NORMALE
DATAPART = S_NORMALE
ORAPART = S_NORMALE
IMPPAGATO = S_NASCOSTO
ACCSALDO = S_NASCOSTO
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
DATACONS = S_OBBLIGATORIO
ASPBENI1 = S_OBBLIGATORIO
DESCRBENI1 = S_NORMALE
ASPBENI2 = S_NASCOSTO
DESCRBENI2 = S_NASCOSTO
IMPNETTI = S_NASCOSTO
RAGGR = S_NORMALE
RAGGREFF = S_NORMALE
SPESEINC = S_NORMALE
ADDBOLLI = S_NORMALE
UMTARA = S_NORMALE
TARA = S_NORMALE
DESUMTARA = S_NASCOSTO
UMPNETTO = S_NORMALE
PNETTO = S_NORMALE
DESUMPNETTO = S_NASCOSTO
NCOLLI = S_NORMALE
CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO
BLANK = S_DISABILITATO
CODNOTE = S_NORMALE
NOTECLI = S_NOCHECK
CUP = S_NORMALE
DESCRCUP = S_NORMALE
CIG = S_NORMALE
DESCRCIG = S_NORMALE
CMSH = S_NORMALE
[DEFAULT]
Default(0)=F_CAUSTRASP|VEN
[SHEET]
Col(0)=FR_CODMAG
Col(1)=FR_CODDEP
Col(2)=FR_CODART
Col(3)=FR_LIV1
Col(4)=FR_LIV2
Col(5)=FR_LIV3
Col(6)=FR_LIV4
Col(7)=FR_DESCR
Col(8)=FR_UMQTA
Col(9)=FR_QTA
Col(10)=FR_PREZZO
Col(11)=FR_SCONTO
Col(12)=FR_PERCPROV
Col(13)=FR_IMPFISUN
Col(14)=FR_IMPFISSO
Col(15)=FR_PERCPROV1
Col(16)=FR_CODIVA
Col(17)=FR_ADDIVA
Col(18)=FR_NCOLLI
Col(19)=FR_PNETTO
Col(20)=FR_TARA
Col(21)=FR_CAUS
Col(22)=FR_CODMAGC
Col(23)=FR_CODDEPC
Col(24)=FR_TIPORIGA
[RIGHE]
[HANDLERS]
// Handler(0) = F_ORAPART|1
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
400 = S_NASCOSTO
500 = S_NASCOSTO
600 = S_NASCOSTO
700 = S_NASCOSTO
800 = S_NASCOSTO
810 = S_NASCOSTO
820 = S_NASCOSTO
830 = S_NASCOSTO
900 = S_NORMALE
1000 = S_NASCOSTO
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
1300 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NASCOSTO
1700 = S_NORMALE
1800 = S_NORMALE
1900 = S_NORMALE
2000 = S_NORMALE
2100 = S_NORMALE
2200 = S_NASCOSTO
2300 = S_NASCOSTO
2400 = S_NASCOSTO
2500 = S_NORMALE
2700 = S_NORMALE
2710 = S_NORMALE
2800 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
4000 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=30
1=100
2=2000
3=2500
4=200
5=300
6=400
7=500
8=600
9=700
10=2400
11=800
12=810
13=820
14=830
15=900
16=1100
17=1200
18=1500
19=1210
20=1300
21=1400
22=2100
23=2800
24=2700
25=2710
26=1700
27=1800
28=1000
29=2900
30=3000

View File

@ -456,29 +456,27 @@ void TMotore_application::do_elab( TDocumento& doc, int when) // C 90
break; break;
} }
TToken_string tipi, stati; if (el != NULL && el->is_document_ok(doc))
el->tipi_stati_iniziali(tipi, stati);
if (stati.find(doc.stato()) >= 0)
{ {
TLista_documenti in; in.add(doc); TLista_documenti in; in.add(doc);
TLista_documenti out; TLista_documenti out;
TDocumento newdoc(doc.get_char(DOC_PROVV), doc.get_int(DOC_ANNO), el->codice_numerazione_finale(), 0L);
if (when == 0) if (when == 0)
{ {
TDocumento::copy_data(newdoc.head(), doc.head()); TDocumento* newdoc = new TDocumento(doc.get_char(DOC_PROVV), doc.get_int(DOC_ANNO), el->codice_numerazione_finale(), 0L);
newdoc.put(DOC_TIPODOC, el->tipo_finale()); TDocumento::copy_data(newdoc->head(), doc.head());
newdoc.put(DOC_STATO, el->stato_finale()); newdoc->put(DOC_TIPODOC, el->tipo_finale());
if (newdoc.tipo().mov_mag()) newdoc->put(DOC_STATO, el->stato_finale());
newdoc.put(DOC_CAUSMAG, newdoc.tipo().caus_mov()); if (newdoc->tipo().mov_mag())
newdoc->put(DOC_CAUSMAG, newdoc->tipo().caus_mov());
else else
newdoc.zero(DOC_CAUSMAG); newdoc->zero(DOC_CAUSMAG);
out.add(newdoc); out.add(newdoc);
} }
if (el->elabora(in, out, TDate(TODAY), true)) if (el->elabora(in, out, TDate(TODAY), true))
{ {
if (when == 0 && out.items() && out[0] != newdoc) if (when == 0 && out.items() && out[0].numero() > 0L)
out.rewrite(); out.rewrite();
if (when < 2 && in.items() && in[0] != doc) if (when < 2 && in.items() && in[0] != doc)
doc = in[0]; doc = in[0];
@ -621,9 +619,11 @@ static bool num_filter(const TRelation* r)
{ {
const TCodice_numerazione& cod_num = cached_numerazione(r->curr().get("CODTAB")); const TCodice_numerazione& cod_num = cached_numerazione(r->curr().get("CODTAB"));
const int last = cod_num.ntipi_doc(); const int last = cod_num.ntipi_doc();
for (int i = 0; i < last; i++ ) for (int i = 0; i < last; i++)
if (tipodoc_ok(cod_num.tipo_doc(i))) {
if (is_tipodoc_ok(cod_num.tipo_doc(i)))
return true; return true;
}
return false; return false;
} }

View File

@ -6,6 +6,11 @@ ENDPAGE
PAGE "Distinta Base" 0 0 0 0 PAGE "Distinta Base" 0 0 0 0
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 1 1 "@bParametri esplosione ditinte"
END
BOOLEAN F_EXPLODEDB BOOLEAN F_EXPLODEDB
BEGIN BEGIN
PROMPT 2 2 "Esplosione distinte" PROMPT 2 2 "Esplosione distinte"
@ -14,14 +19,9 @@ BEGIN
FIELD EXPLODEDB FIELD EXPLODEDB
END END
GROUPBOX DLG_NULL 78 14
BEGIN
PROMPT 1 4 "Parametri esplosione"
END
LISTBOX F_VALCOMP 15 LISTBOX F_VALCOMP 15
BEGIN BEGIN
PROMPT 2 6 "Calcolo valore su " PROMPT 2 3 "Calcolo valore su "
ITEM " |Prodotto finito" ITEM " |Prodotto finito"
ITEM "X|Componenti" ITEM "X|Componenti"
FIELD VALCOMP FIELD VALCOMP
@ -30,7 +30,7 @@ END
LISTBOX F_TIPOESPL 20 LISTBOX F_TIPOESPL 20
BEGIN BEGIN
PROMPT 2 8 "Tipo esplosione " PROMPT 2 4 "Tipo esplosione "
ITEM " |Scalare" ITEM " |Scalare"
ITEM "X|Materiali di base" ITEM "X|Materiali di base"
FIELD TIPOESPL FIELD TIPOESPL
@ -39,7 +39,7 @@ END
LIST F_RAGGART 34 LIST F_RAGGART 34
BEGIN BEGIN
PROMPT 2 10 "Raggruppo articoli " PROMPT 2 5 "Raggrupp. articoli "
ITEM "0|Nessun raggruppamento" ITEM "0|Nessun raggruppamento"
ITEM "1|Converti nell'unita' principale" ITEM "1|Converti nell'unita' principale"
ITEM "1|Converti nell'unita' di distinta" ITEM "1|Converti nell'unita' di distinta"
@ -52,14 +52,14 @@ END
NUMBER F_LIVELLO 3 NUMBER F_LIVELLO 3
BEGIN BEGIN
PROMPT 2 12 "Livello esplosione " PROMPT 2 6 "Livello esplosione "
FIELD LIVESPL FIELD LIVESPL
GROUP 8 GROUP 8
END END
NUMBER F_ORDDB 3 NUMBER F_ORDDB 3
BEGIN BEGIN
PROMPT 2 14 "Ordinamento distinta " PROMPT 2 7 "Ordinamento distinta "
USE ORD USE ORD
INPUT CODTAB F_ORDDB INPUT CODTAB F_ORDDB
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
@ -73,17 +73,76 @@ END
STRING F_DESORDDB 47 STRING F_DESORDDB 47
BEGIN BEGIN
PROMPT 30 14 "" PROMPT 30 7 ""
FLAGS "D" FLAGS "D"
END END
BOOLEAN F_ELRORIG BOOLEAN F_ELRORIG
BEGIN BEGIN
PROMPT 2 16 "Elimino la riga originale" PROMPT 2 8 "Eliminare la riga originale"
FIELD ELRORIG FIELD ELRORIG
GROUP 8 GROUP 8
END END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 10 "@bParametri articoli"
END
BOOLEAN F_IVA_OBBL
BEGIN
PROMPT 2 11 "Codice IVA obbligatorio sugli articoli"
FIELD IVA_OBBL
END
GROUPBOX DLG_NULL 56 4
BEGIN
PROMPT 2 12 "@bGenerazione automatica codici"
END
LIST F_GEN_EAN 2 6
BEGIN
PROMPT 3 13 "Codice articolo "
ITEM " |Nulla"
ITEM "08|EAN 8"
ITEM "13|EAN 13"
FIELD GEN_EAN
END
LIST F_ALT_EAN 2 6
BEGIN
PROMPT 3 14 "Codice alternativo "
ITEM " |Nulla"
ITEM "08|EAN 8"
ITEM "13|EAN 13"
FIELD ALT_EAN
END
GROUPBOX DLG_NULL 20 4
BEGIN
PROMPT 57 12 "@bPrefissi"
END
NUMBER F_EAN8 4
BEGIN
PROMPT 61 13 "EAN 8 "
FIELD EAN8
FLAGS "Z"
END
BOOLEAN F_EAN8CIN
BEGIN
PROMPT 36 13 "Genera CIN EAN8"
FIELD EAN8CIN
END
NUMBER F_EAN13 6
BEGIN
PROMPT 61 14 "EAN 13 "
FIELD EAN13
FLAGS "Z"
END
ENDPAGE ENDPAGE
PAGE "Articoli 1" 1 1 60 14 PAGE "Articoli 1" 1 1 60 14
@ -982,159 +1041,6 @@ BEGIN
GROUP 28 GROUP 28
END END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 11 ""
END
BOOLEAN F_CHK_USER19
BEGIN
PROMPT 2 11 "Campo libero 19"
MESSAGE FALSE CLEAR,29@
MESSAGE TRUE ENABLE,29@
FIELD CHK_USER[19]
END
STRING F_PROMPT_USER19 18
BEGIN
PROMPT 2 12 "Prompt "
FIELD PROMPT_USER[19]
GROUP 29
END
LISTBOX F_TYPE_USER19 7
BEGIN
PROMPT 30 12 "Tipo "
ITEM "S|Stringa" MESSAGE ENABLE,F_LEN_USER19|CLEAR,F_DEC_USER19
ITEM "N|Numero" MESSAGE ENABLE,F_LEN_USER19|ENABLE,F_DEC_USER19
ITEM "I|Importo" MESSAGE ENABLE,F_LEN_USER19|CLEAR,F_DEC_USER19
ITEM "D|Data" MESSAGE CLEAR,F_LEN_USER19|CLEAR,F_DEC_USER19
ITEM "X|Si/no" MESSAGE CLEAR,F_LEN_USER19|CLEAR,F_DEC_USER19
FIELD TYPE_USER[19]
GROUP 29
END
NUMBER F_LEN_USER19 2
BEGIN
PROMPT 45 12 "Lunghezza "
FIELD LEN_USER[19]
GROUP 29
FLAGS "U"
NUM_EXPR (#THIS_FIELD>0)&&(#THIS_FIELD<=20)
WARNING "La lunghezza del campo deve essere maggiore di 0 e non puo' superare 20 caratteri"
END
STRING F_DEC_USER19 2
BEGIN
PROMPT 58 12 "Decimali "
FIELD DEC_USER[19]
GROUP 29
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 14 ""
END
BOOLEAN F_CHK_USER20
BEGIN
PROMPT 2 14 "Campo libero 20"
MESSAGE FALSE CLEAR,30@
MESSAGE TRUE ENABLE,30@
FIELD CHK_USER[20]
END
STRING F_PROMPT_USER20 18
BEGIN
PROMPT 2 15 "Prompt "
FIELD PROMPT_USER[20]
GROUP 30
END
LISTBOX F_TYPE_USER20 7
BEGIN
PROMPT 30 15 "Tipo "
ITEM "S|Stringa" MESSAGE ENABLE,F_LEN_USER20|CLEAR,F_DEC_USER20
ITEM "N|Numero" MESSAGE ENABLE,F_LEN_USER20|ENABLE,F_DEC_USER20
ITEM "I|Importo" MESSAGE ENABLE,F_LEN_USER20|CLEAR,F_DEC_USER20
ITEM "D|Data" MESSAGE CLEAR,F_LEN_USER20|CLEAR,F_DEC_USER20
ITEM "X|Si/no" MESSAGE CLEAR,F_LEN_USER20|CLEAR,F_DEC_USER20
FIELD TYPE_USER[20]
GROUP 30
END
NUMBER F_LEN_USER20 2
BEGIN
PROMPT 45 15 "Lunghezza "
FIELD LEN_USER[20]
GROUP 30
FLAGS "U"
NUM_EXPR (#THIS_FIELD>0)&&(#THIS_FIELD<=20)
WARNING "La lunghezza del campo deve essere maggiore di 0 e non puo' superare 20 caratteri"
END
STRING F_DEC_USER20 2
BEGIN
PROMPT 58 15 "Decimali "
FIELD DEC_USER[20]
GROUP 30
END
BOOLEAN F_IVA_OBBL
BEGIN
PROMPT 2 17 "Codice IVA obbligatorio sugli articoli"
FIELD IVA_OBBL
END
GROUPBOX DLG_NULL 56 4
BEGIN
PROMPT 1 18 "@bGenerazione automatica codici"
END
LIST F_GEN_EAN 2 6
BEGIN
PROMPT 2 19 "Codice articolo "
ITEM " |Nulla"
ITEM "08|EAN 8"
ITEM "13|EAN 13"
FIELD GEN_EAN
END
LIST F_ALT_EAN 2 6
BEGIN
PROMPT 2 20 "Codice alternativo "
ITEM " |Nulla"
ITEM "08|EAN 8"
ITEM "13|EAN 13"
FIELD ALT_EAN
END
GROUPBOX DLG_NULL 20 4
BEGIN
PROMPT 59 18 "@bPrefissi"
END
NUMBER F_EAN8 4
BEGIN
PROMPT 62 19 "EAN 8 "
FIELD EAN8
FLAGS "Z"
END
BOOLEAN F_EAN8CIN
BEGIN
PROMPT 37 19 "Genera CIN EAN8"
FIELD EAN8CIN
END
NUMBER F_EAN13 6
BEGIN
PROMPT 62 20 "EAN 13 "
FIELD EAN13
FLAGS "Z"
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -267,7 +267,7 @@ void TContabilizzazione_analitica_app::contabilize()
//E finalmente fa l'agognata elaborazione!!!!! //E finalmente fa l'agognata elaborazione!!!!!
TString16 elaborazione = _msk->get(F_CODICE_ELAB); TString16 elaborazione = _msk->get(F_CODICE_ELAB);
TContabilizzazione_analitica contanal(elaborazione); TContabilizzazione_analitica contanal(elaborazione);
contanal.elabora(lista_in, lista_out, data_reg); contanal.elabora(lista_in, lista_out, data_reg, true);
if (contanal.processed_docs() > 0L) if (contanal.processed_docs() > 0L)
message_box(FR("Totale documenti contabilizzati: %ld"), contanal.processed_docs()); message_box(FR("Totale documenti contabilizzati: %ld"), contanal.processed_docs());

View File

@ -210,7 +210,6 @@ Item_04 = "Contabilizzazione spese e bolli", "ve0 -2 -4", "F"
Item_05 = "Contabilizzazione", "ve0 -2 -5", "F" Item_05 = "Contabilizzazione", "ve0 -2 -5", "F"
Item_06 = "Conti per categoria e gruppo", "ve0 -6 &CVM", "F" Item_06 = "Conti per categoria e gruppo", "ve0 -6 &CVM", "F"
Item_07 = "Gestione spese e bolli", "ve0 -2 -6", "F" Item_07 = "Gestione spese e bolli", "ve0 -2 -6", "F"
Item_08 = "Articoli e Distinte", "ve0 -2 -7", "F"
Item_09 = "Configurazione contabilità", "cg5 -1", "F" Item_09 = "Configurazione contabilità", "cg5 -1", "F"
Item_10 = "Fido cliente", "ve0 -2 -8", "F" Item_10 = "Fido cliente", "ve0 -2 -8", "F"
@ -233,6 +232,7 @@ Flags = ""
Item_01 = "Parametri di magazzino", "mg0 -2 -1", "F" Item_01 = "Parametri di magazzino", "mg0 -2 -1", "F"
Item_02 = "Formato codice articoli", "mg0 -0 FCA", "F" Item_02 = "Formato codice articoli", "mg0 -0 FCA", "F"
Item_03 = "Formato codice giacenze", "mg0 -0 FCG", "F" Item_03 = "Formato codice giacenze", "mg0 -0 FCG", "F"
Item_04 = "Articoli e Distinte", "ve0 -2 -7", "F"
[ACQVEN_023] [ACQVEN_023]
Caption = "Archivi contabili" Caption = "Archivi contabili"
@ -287,4 +287,5 @@ Caption = "Verticalizzazioni"
Picture = <ve01> Picture = <ve01>
Module = 0 Module = 0
Flags = "" Flags = ""
Item_01 = "Caffè Hardy", <hamenu.men>, "", 10232 Item_01 = "Bee Store", <bsmenu.men>, "", 9015
Item_02 = "Caffè Hardy", <hamenu.men>, "", 10232

View File

@ -296,9 +296,11 @@ public:
const char stato_mov_iniziale() const {return get_char("S7"); } const char stato_mov_iniziale() const {return get_char("S7"); }
const char stato_mov_finale() const {return get_char("S8"); } const char stato_mov_finale() const {return get_char("S8"); }
const char stato_provvigioni() const {return get("S3")[0]; } const char stato_provvigioni() const {return get("S3")[0]; }
const TString & elaborazione() const {return get("S3").mid(4,8); } const TString& elaborazione() const {return get("S3").mid(4,8); }
const TString & elaborazione_stampa() const {return get("S3").mid(12,8); } const TString& elaborazione_stampa() const {return get("S3").mid(12,8); }
const TString & elaborazione_definitiva() const {return get("S3").mid(20,8); } const TString& elaborazione_definitiva() const {return get("S3").mid(20,8); }
const TString& elaborazione_speciale() const {return get("S3").mid(28,8); }
bool movimento_interno() const;
const TString & caus_mov() const {return get("S9"); } // Causale di magazzino const TString & caus_mov() const {return get("S9"); } // Causale di magazzino
const TString & caus_anticipo() const {return get("S10"); } const TString & caus_anticipo() const {return get("S10"); }
const TString & tipi_iva_validi() const {return get("S11"); } const TString & tipi_iva_validi() const {return get("S11"); }
@ -318,7 +320,7 @@ public:
bool mail_print_profile(TFilename& report) const; bool mail_print_profile(TFilename& report) const;
bool is_costo() const ; bool is_costo() const ;
bool is_ricavo() const ; bool is_ricavo() const ;
const TString & module() const { return _module; } const TString& module() const { return _module; }
TFormula_documento* first_formula() { return succ_formula(true); } TFormula_documento* first_formula() { return succ_formula(true); }
TFormula_documento* succ_formula(bool restart = false); TFormula_documento* succ_formula(bool restart = false);
@ -1018,6 +1020,7 @@ public:
static bool codval_handler( TMask_field& f, KEY key ); static bool codval_handler( TMask_field& f, KEY key );
static bool confirm_handler( TMask_field& f, KEY key ); static bool confirm_handler( TMask_field& f, KEY key );
static bool barcode_handler( TMask_field& f, KEY key ); static bool barcode_handler( TMask_field& f, KEY key );
static bool movint_handler( TMask_field& f, KEY key );
static bool sort_row_handler( TMask_field& f, KEY key ); static bool sort_row_handler( TMask_field& f, KEY key );
static bool ss_notify(TSheet_field& ss, int r, KEY key); static bool ss_notify(TSheet_field& ss, int r, KEY key);
static bool ss_handler(TMask_field& f, KEY key); static bool ss_handler(TMask_field& f, KEY key);

View File

@ -3008,6 +3008,10 @@ void TDocumento::update_conai()
bool TDocumento::is_evaso() const bool TDocumento::is_evaso() const
{ {
bool ok = is_ordine() || is_bolla() || is_generic(); bool ok = is_ordine() || is_bolla() || is_generic();
if (ok && tipo().is_ordine_quadro())
return false;
for (int r = 1; ok && r <= physical_rows(); r++) for (int r = 1; ok && r <= physical_rows(); r++)
{ {
const TRiga_documento& riga = physical_row(r); const TRiga_documento& riga = physical_row(r);

View File

@ -171,21 +171,29 @@ const TString& TTipo_documento::riferimento(const TDocumento & doc, TString& rif
} }
TString val; TString val;
switch (field.file())
if (field.file() == LF_DOC)
{ {
val = field.read(doc); case LF_CLIFO:
rif.insert(val, p); case LF_CFVEN:
} if (doc.get_long(DOC_CODCF) > 0)
else
{ {
TString8 key(doc.get(DOC_TIPOCF)); TString8 key; key << doc.get(DOC_TIPOCF) << '|' << doc.get(DOC_CODCF);
key << '|' << doc.get(DOC_CODCF);
const TRectype& rec = cache().get(field.file(), key); const TRectype& rec = cache().get(field.file(), key);
val = field.read(rec); val = field.read(rec);
rif.insert(val, p);
} }
break;
case LF_OCCAS:
if (doc.get_char(DOC_TIPOCF) == 'C' && doc.get(DOC_OCFPI).full())
{
const TRectype& rec = cache().get(LF_OCCAS, doc.get(DOC_OCFPI));
val = field.read(rec);
}
break;
default:
val = field.read(doc);
break;
}
rif.insert(val, p);
switch (conn) switch (conn)
{ {
@ -449,6 +457,17 @@ void TTipo_documento::read_formule()
_check_double_art = prof.get_bool("CHECK_DOUBLE_ART"); _check_double_art = prof.get_bool("CHECK_DOUBLE_ART");
} }
bool TTipo_documento::movimento_interno() const
{
const TString& elab = elaborazione();
if (elab.full())
{
const TString& app = cache().get("%ELD", elab, "S3");
return app.starts_with("ci1 -4", true);
}
return false;
}
bool TTipo_documento::stato_with_mov_mag(const char stato) const bool TTipo_documento::stato_with_mov_mag(const char stato) const
{ {
if (!mov_mag()) if (!mov_mag())

View File

@ -537,8 +537,9 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
return error_box("Non è stato specificato il nome del'applicazione esterna"); return error_box("Non è stato specificato il nome del'applicazione esterna");
CHECK(doc_in.items() == 1, "Si deve specificare un solo documento in entrata"); CHECK(doc_in.items() == 1, "Si deve specificare un solo documento in entrata");
CHECK(doc_out.items() <= 1, "Si deve specificare un solo documento in uscita"); CHECK(doc_out.items() <= 1, "Si deve specificare un solo documento in uscita");
TFilename name; name.temp("ext"); TDocumento& d = doc_in[0];
TFilename name; name.temp("ext");
TString16 par; TString16 par;
{ {
@ -554,10 +555,16 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
c.set("CodNumOut", doc_out[0].get(DOC_CODNUM)); c.set("CodNumOut", doc_out[0].get(DOC_CODNUM));
c.set("NDocOut", doc_out[0].get(DOC_NDOC)); c.set("NDocOut", doc_out[0].get(DOC_NDOC));
} }
else if (codice_numerazione_finale().full())
{
c.set("ProvvOut", d.get(DOC_PROVV));
c.set("AnnoOut", d.get(DOC_ANNO));
c.set("CodNumOut", codice_numerazione_finale());
c.set("NDocOut", 0L);
}
par.format("%d", LF_DOC); par.format("%d", LF_DOC);
TDocumento& d = doc_in[0];
const int doc_fields = d.items(); const int doc_fields = d.items();
for (int i = 0; i < doc_fields; i++) for (int i = 0; i < doc_fields; i++)
{ {
@ -608,25 +615,25 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
c.list_paragraphs(p); c.list_paragraphs(p);
d.destroy_rows(); d.destroy_rows();
int r = 1 ; for (int r = 1; ; r++)
par.format("%d,%d", LF_RIGHEDOC, r);
while (p.find(par) >= 0)
{ {
const TString& tiporiga = c.get(RDOC_TIPORIGA, par); par.format("%d,%d", LF_RIGHEDOC, r);
if (p.find(par) < 0)
break;
const TString& tiporiga = c.get(RDOC_TIPORIGA, par, -1, "01");
TRiga_documento& row = d.new_row(tiporiga); TRiga_documento& row = d.new_row(tiporiga);
for (int i = row.items()-1; i >= 0; i--) for (int i = row.items()-1; i >= 0; i--)
{ {
const char* fname = row.fieldname(i); const char* fname = row.fieldname(i);
const TFieldref f(fname, LF_RIGHEDOC); const TFieldref f(fname, LF_RIGHEDOC);
const TString& val = f.read(c, par); const TString& val = f.read(c, par);
if (val.not_empty()) if (val.full())
row.put(fname, val); row.put(fname, val);
} }
par.format("%d,%d", LF_RIGHEDOC, ++r);
} }
const char final = stato_finale_doc_iniziale()[0]; const char final = stato_finale_doc_iniziale()[0];
if (d.stato() != final) if (final > '0' && d.stato() != final)
d.stato(final); d.stato(final);
return true; return true;
@ -635,11 +642,13 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
{ {
if (doc_out.items()) if (doc_out.items())
{ {
const TString& ndoc = c.get("NDocOut", "Transaction");
if (ndoc != doc_out[0].get(DOC_NDOC))
doc_out[0].put(DOC_NDOC, ndoc);
doc_out[0].read(); doc_out[0].read();
return true; return true;
} }
} }
} }
return false; return false;
} }

View File

@ -642,7 +642,7 @@ protected:
const TCausale& rdoc2caus(const TRiga_documento& rdoc); const TCausale& rdoc2caus(const TRiga_documento& rdoc);
void init_distrib(TString_array& conti, TGeneric_distrib& distrib, bool pareggio); void init_distrib(TString_array& conti, TGeneric_distrib& distrib, bool pareggio);
void calcola_date_comp(const TDocumento& doc, TDate& datacomp, TDate& datafcomp, int annoes); int calcola_date_comp(const TDocumento& doc, TDate& datacomp, TDate& datafcomp) const;
public: public:
bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto, bool riclassifica_fdr_fde); bool search_costo_ricavo(const TRiga_documento& riga, TBill& conto, bool riclassifica_fdr_fde);

View File

@ -220,17 +220,20 @@ void TConsegna_mask::doc2mask(const TDocumento& indoc, const TDocumento& outdoc,
TEsercizi_contabili esc; TEsercizi_contabili esc;
const int codes = esc.date2esc(oggi); const int codes = esc.date2esc(oggi);
const bool show_evaded = indoc.tipo().mostra_righe_evase_in_elaborazione(); const TTipo_documento& tip = indoc.tipo();
const bool ordine_quadro = tip.is_ordine_quadro();
const bool show_evaded = ordine_quadro || tip.mostra_righe_evase_in_elaborazione();
TSheet_field& s = sfield(F_ROWS); TSheet_field& s = sfield(F_ROWS);
s.destroy(); s.destroy();
const int rows = indoc.physical_rows(); const int rows = indoc.physical_rows();
int rowno = 0; int rowno = 0;
for (int i = 0; i < rows; i++) for (int i = 0; i < rows; i++)
{ {
const TRiga_documento& rec = indoc[i+1]; const TRiga_documento& rec = indoc[i+1];
const real residuo = rec.qtaresidua(); const real residuo = rec.qtaresidua();
const bool evasa = residuo.is_zero(); const bool evasa = residuo.is_zero() && !ordine_quadro;
bool show_line = show_evaded || !evasa; bool show_line = show_evaded || !evasa;
if (rec.is_descrizione()) if (rec.is_descrizione())
show_line = !_ignora_descrizioni; show_line = !_ignora_descrizioni;
@ -355,7 +358,6 @@ bool TConsegna_ordini::aggiorna_ncolli_tara_pnetto(TRiga_documento& r) const
TArticolo& articolo = cached_article(codart); TArticolo& articolo = cached_article(codart);
const real qta = articolo.convert_to_um(r.quantita(), NULL, r.get(RDOC_UMQTA)); const real qta = articolo.convert_to_um(r.quantita(), NULL, r.get(RDOC_UMQTA));
real ncolli, tara, pnetto; real ncolli, tara, pnetto;
const bool ok = calcola_ncolli_tara_pnetto(codart, qta, ncolli, tara, pnetto); const bool ok = calcola_ncolli_tara_pnetto(codart, qta, ncolli, tara, pnetto);
if (ok) if (ok)
{ {
@ -363,7 +365,6 @@ bool TConsegna_ordini::aggiorna_ncolli_tara_pnetto(TRiga_documento& r) const
r.put(RDOC_TARA, tara); r.put(RDOC_TARA, tara);
r.put(RDOC_PNETTO, pnetto); r.put(RDOC_PNETTO, pnetto);
} }
return ok; return ok;
} }
@ -400,7 +401,6 @@ bool TConsegna_ordini::genera_righe_riferimento(const TDocumento& indoc, TDocume
} }
const TString4 numrif = num_riferimenti_in(); const TString4 numrif = num_riferimenti_in();
if (numrif.full()) if (numrif.full())
{ {
TAssoc_array doc_rows; TAssoc_array doc_rows;
@ -426,7 +426,6 @@ bool TConsegna_ordini::genera_righe_riferimento(const TDocumento& indoc, TDocume
query << "\nTO " << select; query << "\nTO " << select;
TISAM_recordset recset(query); TISAM_recordset recset(query);
for (bool ok = recset.move_first(); ok; ok = recset.move_next()) for (bool ok = recset.move_first(); ok; ok = recset.move_next())
{ {
const char provv = recset.get(RDOC_PROVV).as_string()[0]; const char provv = recset.get(RDOC_PROVV).as_string()[0];
@ -820,8 +819,7 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
} }
// Crea una nuova riga merce senza articolo e con sola descrizione, qta ed um // Crea una nuova riga merce senza articolo e con sola descrizione, qta ed um
TRiga_documento& outrec = outdoc.insert_row(i+1, tiporiga); TRiga_documento& outrec = outdoc.insert_row(i+1, tiporiga);
TString descr; TString descr; descr << TR("Scarto ") << codart;
descr << TR("Scarto") << ' ' << codart;
outrec.put(RDOC_DESCR, descr); outrec.put(RDOC_DESCR, descr);
TToken_string& ska = *(TToken_string*)obj; TToken_string& ska = *(TToken_string*)obj;
outrec.put(RDOC_UMQTA, ska.get(0)); outrec.put(RDOC_UMQTA, ska.get(0));
@ -846,8 +844,6 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
FOR_EACH_PHYSICAL_RDOC_BACK(indoc, i, rdoc) FOR_EACH_PHYSICAL_RDOC_BACK(indoc, i, rdoc)
{ {
TRiga_documento& inrec = *rdoc; TRiga_documento& inrec = *rdoc;
const int nrow = inrec.get_int(RDOC_NRIGA);
if (inrec.is_evasa()) if (inrec.is_evasa())
indoc.destroy_row(i, true); indoc.destroy_row(i, true);
else else
@ -855,7 +851,6 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
const real evaso = inrec.qtaevasa(); const real evaso = inrec.qtaevasa();
const char* fq = inrec.field_qta(); const char* fq = inrec.field_qta();
const char* fqe = inrec.field_qtaevasa(); const char* fqe = inrec.field_qtaevasa();
inrec.add(fq, -evaso); // nuovo modo di incrementare inrec.add(fq, -evaso); // nuovo modo di incrementare
inrec.zero(fqe); inrec.zero(fqe);
} }

View File

@ -41,7 +41,7 @@ const TCausale& TCache_causali::causale(const TDocumento& doc, const TString & f
if (!fld_cms.blank()) if (!fld_cms.blank())
{ {
const TString & cms = doc.commessa_principale(); const TString& cms = doc.commessa_principale();
if (!cms.blank()) if (!cms.blank())
{ {
@ -302,7 +302,7 @@ bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r,
if (rdoc != NULL && rdoc->get(RDOC_PROVV).not_empty()) if (rdoc != NULL && rdoc->get(RDOC_PROVV).not_empty())
{ {
TString80 key(rdoc->get(RDOC_CODNUM)); TString80 key = rdoc->get(RDOC_CODNUM);
const TCodice_numerazione& num = cached_numerazione(key); const TCodice_numerazione& num = cached_numerazione(key);
if (num.fattura_emettere_ricevere()) if (num.fattura_emettere_ricevere())
@ -334,11 +334,12 @@ bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r,
return conto.ok() && conto.find(); return conto.ok() && conto.find();
} }
bool TContabilizzazione_analitica::find_conti_iva_indetraibile(const TRiga_documento& riga, const TBill & bill, TString_array& conti, int annoes, const char tipomov, bool & pareggio) bool TContabilizzazione_analitica::find_conti_iva_indetraibile(const TRiga_documento& riga, const TBill& bill,
TString_array& conti, int annoes, const char tipomov, bool& pareggio)
{ {
const TString80 riga_cos = riga.codice_costo(); const TCodice_cdc riga_cos = riga.codice_costo();
const TString80 riga_cms = riga.codice_commessa(); const TCodice_cms riga_cms = riga.codice_commessa();
const TString16 riga_fsc = riga.fase_commessa(); const TCodice_fas riga_fsc = riga.fase_commessa();
TToken_string conto; TToken_string conto;
conto = bill.string(0x8); // format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto()); conto = bill.string(0x8); // format("%03d%03d%06ld", bill.gruppo(), bill.conto(), bill.sottoconto());
@ -381,7 +382,7 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
bool bArcticleFound = false; bool bArcticleFound = false;
const char tipocf = riga.doc().get_char(DOC_TIPOCF); const char tipocf = riga.doc().get_char(DOC_TIPOCF);
TString80 contanal; TCodice_con contanal;
TToken_string conto; TToken_string conto;
TBill bill; // Cerco il conto contabile TBill bill; // Cerco il conto contabile
@ -442,9 +443,9 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
return true; return true;
} }
const TString80 riga_cos = riga.codice_costo(); const TCodice_cdc riga_cos = riga.codice_costo();
const TString80 riga_cms = riga.codice_commessa(); const TCodice_cms riga_cms = riga.codice_commessa();
const TString16 riga_fsc = riga.fase_commessa(); const TCodice_fas riga_fsc = riga.fase_commessa();
if (contanal.full()) // Non ho trovato il conto in anagrafica ... if (contanal.full()) // Non ho trovato il conto in anagrafica ...
{ {
@ -469,17 +470,15 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
conto = rigarip.get(RRIP_CODCONTO).full() ? rigarip.get(RRIP_CODCONTO) : contanal; conto = rigarip.get(RRIP_CODCONTO).full() ? rigarip.get(RRIP_CODCONTO) : contanal;
const TString costo = rigarip.get(RRIP_CODCOSTO); const TString& costo = rigarip.get(RRIP_CODCOSTO);
conto.add(costo.full() ? costo : riga_cos, 1); conto.add(costo.full() ? costo : riga_cos, 1);
const TString & commessa = rigarip.get(RRIP_CODCMS); const TString& commessa = rigarip.get(RRIP_CODCMS);
conto.add(commessa.full() ? commessa : riga_cms, 2); conto.add(commessa.full() ? commessa : riga_cms, 2);
const TString & fase = rigarip.get(RRIP_CODFASE); const TString & fase = rigarip.get(RRIP_CODFASE);
conto.add(fase.full() ? fase: riga_fsc, 3); conto.add(fase.full() ? fase: riga_fsc, 3);
conto.add(rigarip.get(RRIP_RIPARTO), 4); conto.add(rigarip.get(RRIP_RIPARTO), 4);
conti.add(conto); conti.add(conto);
} }
@ -502,7 +501,7 @@ void TContabilizzazione_analitica::init_distrib(TString_array& conti, TGeneric_d
} }
} }
void TContabilizzazione_analitica::calcola_date_comp(const TDocumento& doc, TDate& datacomp, TDate& datafcomp, int annoes) int TContabilizzazione_analitica::calcola_date_comp(const TDocumento& doc, TDate& datacomp, TDate& datafcomp) const
{ {
const TDate datadoc = doc.get_date(DOC_DATADOC); const TDate datadoc = doc.get_date(DOC_DATADOC);
datacomp = doc.get_date(DOC_DATACOMP); datacomp = doc.get_date(DOC_DATACOMP);
@ -512,7 +511,7 @@ void TContabilizzazione_analitica::calcola_date_comp(const TDocumento& doc, TDat
if (!datafcomp.ok()) if (!datafcomp.ok())
datafcomp = datacomp; datafcomp = datacomp;
annoes = esercizi().date2esc(datacomp); //ci potrebbe andare datacomp? All'analisi l'ardua sentenza return esercizi().date2esc(datacomp); //ci potrebbe andare datacomp? All'analisi l'ardua sentenza
} }
void TContabilizzazione_analitica::split_sp_amount(TAnal_mov & mov, bool pareggio, const TImporto & totdoc, void TContabilizzazione_analitica::split_sp_amount(TAnal_mov & mov, bool pareggio, const TImporto & totdoc,
@ -573,7 +572,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
} }
else else
{ {
calcola_date_comp(doc, datacomp, datafcomp, annoes); annoes = calcola_date_comp(doc, datacomp, datafcomp);
datareg = datadoc; datareg = datadoc;
doc.riferimento(descr); doc.riferimento(descr);
@ -620,7 +619,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
mov.put(MOVANA_NUMREG, numreg_ca = 0); mov.put(MOVANA_NUMREG, numreg_ca = 0);
} }
calcola_date_comp(doc, datacomp, datafcomp, annoes); annoes = calcola_date_comp(doc, datacomp, datafcomp);
mov.put(MOVANA_DATAREG, datareg); mov.put(MOVANA_DATAREG, datareg);
mov.put(MOVANA_DATACOMP, datacomp); mov.put(MOVANA_DATACOMP, datacomp);
@ -872,6 +871,8 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
p.links().add("Movimento Analitico |r|w", 0); p.links().add("Movimento Analitico |r|w", 0);
p.setlinkhandler(link_handler_ana); p.setlinkhandler(link_handler_ana);
pre_process_input(doc_in); pre_process_input(doc_in);
if (interattivo)
v.open_modal(); v.open_modal();
for (int i = 0; i < doc_in.items(); i++) for (int i = 0; i < doc_in.items(); i++)
{ {
@ -897,6 +898,7 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
break; break;
} }
v.close_print(); v.close_print();
if (interattivo)
v.close_modal(); v.close_modal();
if (_total_docs > 0) if (_total_docs > 0)
@ -905,8 +907,11 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
post_process(doc_out, doc_in); post_process(doc_out, doc_in);
} }
if (interattivo || _total_docs < doc_in.items())
{
if (v.run() == K_CTRL+'S') // Ho premuto Stampa if (v.run() == K_CTRL+'S') // Ho premuto Stampa
p.print_txt(v.text()); p.print_txt(v.text());
}
return true; return true;
} }

View File

@ -540,8 +540,7 @@ int TDocumento_mask::insert_anal_fields(TMask& m, int page, int lf, int& y,
sm.efield(colid).set_field(str); // Ricopia il campo nella maschera di riga per poterlo salvare! sm.efield(colid).set_field(str); // Ricopia il campo nella maschera di riga per poterlo salvare!
} }
} }
y += h;
y += h+1;
dlg += h; dlgd += h; dlg += h; dlgd += h;
return h; return h;
} }
@ -567,8 +566,6 @@ void TDocumento_mask::insert_anal_page()
add_number(DLG_NULL, newpage, TR("Cliente "), 2, 4, 6, "D").set_group(10); add_number(DLG_NULL, newpage, TR("Cliente "), 2, 4, 6, "D").set_group(10);
add_string(DLG_NULL, newpage, "", 24, 4, 50, "D").set_group(11); add_string(DLG_NULL, newpage, "", 24, 4, 50, "D").set_group(11);
add_groupbox(DLG_NULL, newpage, TR("Contabilità Analitica"), 1, 6, 78, 14);
const TMultilevel_code_info& fasinfo = ca_multilevel_code_info(LF_FASI); const TMultilevel_code_info& fasinfo = ca_multilevel_code_info(LF_FASI);
const bool use_fsc = fasinfo.levels() > 0; const bool use_fsc = fasinfo.levels() > 0;
TConfig& ini = ca_config(); TConfig& ini = ca_config();
@ -608,18 +605,51 @@ void TDocumento_mask::insert_anal_page()
set_field_handler(_cms_end, codcms_handler); set_field_handler(_cms_end, codcms_handler);
} }
} }
if (use_fsc && fasinfo.parent() <= 0) if (use_fsc && fasinfo.parent() <= 0)
insert_anal_fields(*this, newpage, LF_FASI, y, dlg, dlgd, fsc_req && doc().tipo().head_ca_required()); insert_anal_fields(*this, newpage, LF_FASI, y, dlg, dlgd, fsc_req && doc().tipo().head_ca_required());
//aggiunge campi per date di competenza (inizio e fine) //aggiunge campi per date di competenza (inizio e fine)
add_groupbox(DLG_NULL, newpage, TR("Date di competenza"), 1, 20, 78, 3); add_static(DLG_NULL, newpage, TR("@bDate di competenza"), 2, y);
const TFixed_string f_datacomp = DOC_DATACOMP; const TFixed_string f_datacomp = DOC_DATACOMP;
add_date(F_DATACOMP, newpage, "Inizio ", 2, 21).set_field(f_datacomp); add_date(F_DATACOMP, newpage, "Inizio ", 30, y).set_field(f_datacomp);
const TFixed_string f_datafcomp = DOC_DATAFCOMP; const TFixed_string f_datafcomp = DOC_DATAFCOMP;
add_date(F_DATAFCOMP, newpage, "Fine ", 25, 21).set_field(f_datafcomp); add_date(F_DATAFCOMP, newpage, "Fine ", 59, y).set_field(f_datafcomp);
set_field_handler(F_DATACOMP, datacomp_handler); //gestore del campo inizio competenza.. set_field_handler(F_DATACOMP, datacomp_handler); //gestore del campo inizio competenza..
set_field_handler(F_DATAFCOMP, datafcomp_handler); //..e della fine competenza set_field_handler(F_DATAFCOMP, datafcomp_handler); //..e della fine competenza
add_groupbox(DLG_NULL, newpage, TR("@bContabilità Analitica"), 1, 6, 78, y-4);
const bool movimento_interno = main_app().has_module(CIAUT) && _doc.tipo().movimento_interno();
if (movimento_interno)
{
fld(fields()-1).set_prompt(TR("@bCantiere di destinazione"));
y+=2;
const int ystart = y++;
const int cms_prel_start = dlg;
if (use_fsc && fasinfo.parent() == LF_COMMESSE)
insert_anal_fields(*this, newpage, LF_FASI, y, dlg, dlgd, true);
else
insert_anal_fields(*this, newpage, LF_COMMESSE, y, dlg, dlgd, true);
if (use_fsc && fasinfo.parent() <= 0)
insert_anal_fields(*this, newpage, LF_FASI, y, dlg, dlgd, false);
add_button(dlg+1, newpage, TR("Generazione righe consegnate"), 2, y++, 32);
set_field_handler(dlg+1, movint_handler);
add_groupbox(DLG_NULL, newpage, TR("@bCantiere di prelievo"), 1, ystart, 78, y-ystart+1);
for (short id = cms_prel_start; id < dlg; id++)
{
TEdit_field& f = efield(id);
const TFieldref* fld = f.field();
if (fld)
{
if (fld->name() == DOC_CODCMS)
((TFieldref*)fld)->set_name(DOC_COMMPREL);
if (fld->name() == DOC_FASCMS)
((TFieldref*)fld)->set_name(DOC_FASEPREL);
}
}
}
} }
void TDocumento_mask::configura_sheet(TSheet_field& sheet) void TDocumento_mask::configura_sheet(TSheet_field& sheet)
@ -1126,7 +1156,7 @@ void TDocumento_mask::cli2mask(bool force_load)
{ {
hide(-GR_PRESENTCLI); hide(-GR_PRESENTCLI);
show(-GR_PRESENT); show(-GR_PRESENT);
if (cfbanpr.empty() || id2pos(F_CODABIP1) < 0) if (cfbanpr.empty()/* || id2pos(F_CODABIP1) < 0*/)
{ {
set(F_CODABIP, ven_rec.get(CFV_CODABIPR), 0x3); set(F_CODABIP, ven_rec.get(CFV_CODABIPR), 0x3);
set(F_CODCABP, ven_rec.get(CFV_CODCABPR), 0x3); set(F_CODCABP, ven_rec.get(CFV_CODCABPR), 0x3);
@ -1829,11 +1859,12 @@ void TDocumento_mask::update_giacenza()
} }
TString4 annoes = get(F_ANNO); TString4 annoes = get(F_ANNO);
const TDate datadoc = get(F_DATADOC); //const TDate data_giac = get(F_DATADOC); // Porta a comportamenti strani a cavallo di chiusura esercizio
if (datadoc.ok()) const TDate data_giac(TODAY);
if (data_giac.ok())
{ {
TEsercizi_contabili esc; TEsercizi_contabili esc;
annoes.format("%04d", esc.date2esc(datadoc)); annoes.format("%04d", esc.date2esc(data_giac));
} }
TArticolo_giacenza& art = cached_article_balances(codart); TArticolo_giacenza& art = cached_article_balances(codart);
@ -3887,32 +3918,29 @@ bool TDocumento_mask::anno_handler( TMask_field& f, KEY key)
return true; return true;
} }
static TString4 __codnum; bool is_tipodoc_ok(const TString& tipodoc)
bool tipodoc_ok(const TString & tipodoc)
{ {
const TString4 module(main_app().name().left(2)); const TString4 module = main_app().name().left(2);
const TTipo_documento& tipo = cached_tipodoc(tipodoc); const TTipo_documento& tipo = cached_tipodoc(tipodoc);
const TString & tipomod = tipo.module(); const TString& tipomod = tipo.module();
if (module == "ve" && (tipomod.blank() || tipomod == "*"))
if (module == "ve" && tipomod.blank())
return true; return true;
return tipomod == module; return tipomod == module;
} }
static TString4 __codnum;
bool tip_filter(const TRelation* r) bool tip_filter(const TRelation* r)
{ {
if (__codnum.blank()) if (__codnum.blank())
return true; return true;
const TCodice_numerazione & cod_num = cached_numerazione(__codnum); const TCodice_numerazione & cod_num = cached_numerazione(__codnum);
const TString4 tipo = r->curr().get("CODTAB"); const TString4 tipo = r->curr().get("CODTAB");
const int last = cod_num.ntipi_doc();
int last = cod_num.ntipi_doc();
for (int i = 0; i < last; i++ ) for (int i = 0; i < last; i++ )
{ {
const TString & curtipo = cod_num.tipo_doc(i); const TString& curtipo = cod_num.tipo_doc(i);
if (curtipo == tipo && is_tipodoc_ok(curtipo))
if (curtipo == tipo && tipodoc_ok(curtipo))
return true; return true;
} }
return false; return false;
@ -4567,9 +4595,40 @@ bool TDocumento_mask::barcode_handler(TMask_field& f, KEY k)
TSheet_field& s = mask.sheet(); TSheet_field& s = mask.sheet();
if (mask.curr_win() != s.parent()) if (mask.curr_win() != s.parent())
s.set_focus(); s.set_focus();
TBarcode_mask bcm(mask); TBarcode_mask bcm(mask);
bcm.run(); bcm.run();
} }
return true; return true;
} }
bool TDocumento_mask::movint_handler(TMask_field& f, KEY key)
{
if (key == K_SPACE)
{
TDocumento_mask& m = (TDocumento_mask&)f.mask();
const TDocumento& doc = m.doc();
if (doc.get(DOC_COMMPREL).full())
{
TElaborazione_esterna movint_selector("_MOVINT");
if (movint_selector.applicazione_esterna().empty())
movint_selector.put("S3", "ci1 -5");
TLista_documenti doc_in, doc_out;
doc_in.add(doc);
if (movint_selector.elabora(doc_in, doc_out, m.get_date(F_DATADOC), false))
{
const TDocumento& din = doc_in[0];
TDocumento& dout = m.doc();
for (int r = dout.rows()+1; r <= din.rows(); r++)
{
const TRiga_documento& rin = din[r];
TRiga_documento& rout = dout.new_row(rin.get(RDOC_TIPORIGA));
dout.copy_data(rout, rin); rout.reset_original_rdoc_key();
}
m.doc2mask(false);
}
}
else
return error_box(TR("Specificare la commessa di prelievo"));
}
return true;
}

View File

@ -610,7 +610,7 @@ bool iva_handler( TMask_field& f, KEY key )
bool addiva = false; bool addiva = false;
if (pos_ai >= 0) if (pos_ai >= 0)
addiva = row_mask.fld(pos_ai).get() == "X"; // Controlla le righe Omaggio solo se e' settato l'addebito IVA addiva = row_mask.fld(pos_ai).get() == "X"; // Controlla le righe Omaggio solo se è settato l'addebito IVA
const bool check = riga.is_merce() || riga.is_spese() || riga.is_prestazione() || const bool check = riga.is_merce() || riga.is_spese() || riga.is_prestazione() ||
(riga.is_omaggio() && addiva); (riga.is_omaggio() && addiva);
@ -625,7 +625,7 @@ bool iva_handler( TMask_field& f, KEY key )
const bool qf = qe && row_mask.fld(pos_q).get().not_empty(); const bool qf = qe && row_mask.fld(pos_q).get().not_empty();
const bool required = pf && !(qe && !qf); const bool required = pf && !(qe && !qf);
if (required) if (required)
return f.error_box("Il codice IVA e' obbligatorio."); return f.error_box(TR("Il codice IVA è obbligatorio."));
} }
} }
return true; return true;
@ -892,11 +892,8 @@ void upd_colli_peso_tara(TMask& m, const TString & codart)
const real peso = qta * articolo.get_real(ANAMAG_PESO); const real peso = qta * articolo.get_real(ANAMAG_PESO);
m.fld(pos).set(peso.string()); m.fld(pos).set(peso.string());
} }
} }
bool pricerange_handler(TMask_field& f, KEY key ) bool pricerange_handler(TMask_field& f, KEY key )
{ {
if (key == K_TAB && f.focusdirty()) if (key == K_TAB && f.focusdirty())
@ -1040,8 +1037,8 @@ bool TPrice_sheet::get_ini_paragraph(const TEdit_field& field, TString& parag) c
TPrice_sheet::TPrice_sheet(TEdit_field& f) TPrice_sheet::TPrice_sheet(TEdit_field& f)
: TArray_sheet(0, 3, -1, 16, TR("Ricerca Prezzi"), : TArray_sheet(0, 3, -1, 16, TR("Ricerca Prezzi"),
HR("Num.|Data@10|Codice articolo@20|Descrizione@40|Quantità@15P|Prezzo@18P|Sconto@10|Numerazione@18|Tipo Documento@18"), 0, 1), HR("Num.|Data@10|Codice articolo@20|Descrizione@40|Quantità@15P|Prezzo@18P|Sconto@10|Numerazione@18|Tipo Documento@18"), 0, 1),
_fld(f) _fld(f)
{ {
load_columns_order(_fld); load_columns_order(_fld);
} }
@ -1114,13 +1111,11 @@ static void search_price(TEdit_field& f, KEY key )
rec.put(RDOC_NDOC, cur.curr().get(DOC_NDOC)); rec.put(RDOC_NDOC, cur.curr().get(DOC_NDOC));
r.read(rec); r.read(rec);
int last_row = r.last_row(); const int last_row = r.last_row();
for (int i = r.first_row(); i <= last_row; i = r.succ_row(i)) for (int i = r.first_row(); i <= last_row; i = r.succ_row(i))
{ {
const TRectype & rdoc = r.row(i); const TRectype& rdoc = r.row(i);
const TString & codart = rdoc.get(RDOC_CODART); const TString& codart = rdoc.get(RDOC_CODART);
if (codart.full()) if (codart.full())
{ {
TToken_string row; TToken_string row;
@ -1437,15 +1432,14 @@ TObject* TCache_documenti::rec2obj(const TRectype& curr) const
return new TDocumento(curr); return new TDocumento(curr);
} }
TDocumento & TCache_documenti::doc(const char* key) TDocumento& TCache_documenti::doc(const char* key)
{ {
return (TDocumento &)query(key); return (TDocumento &)query(key);
} }
TDocumento & cached_doc(const char* key) TDocumento& cached_doc(const char* key)
{ {
static TCache_documenti * _cache_docs = NULL; static TCache_documenti * _cache_docs = NULL;
if (_cache_docs == NULL) if (_cache_docs == NULL)
_cache_docs = new TCache_documenti(); _cache_docs = new TCache_documenti();
return _cache_docs->doc(key); return _cache_docs->doc(key);
@ -1454,12 +1448,11 @@ TDocumento & cached_doc(const char* key)
class TLink_riga_documento : public TRiga_documento class TLink_riga_documento : public TRiga_documento
{ {
protected: protected:
const TDocumento_mask* _mask;
const TDocumento_mask * _mask;
virtual const TString& get_str(const char* fieldname) const; virtual const TString& get_str(const char* fieldname) const;
public: public:
virtual const TDocumento & doc() const; virtual const TDocumento& doc() const;
void set_mask(const TDocumento_mask * m) { _mask = m;} void set_mask(const TDocumento_mask * m) { _mask = m;}
virtual real qtaresidua() const; virtual real qtaresidua() const;
@ -1471,8 +1464,7 @@ const TString& TLink_riga_documento::get_str(const char* fieldname) const
{ {
if (strcmp(fieldname, "RESIDUO") == 0) if (strcmp(fieldname, "RESIDUO") == 0)
{ {
TString & value = get_tmp_string(80); TString& value = get_tmp_string();
value = qtaresidua().string(); value = qtaresidua().string();
return value; return value;
} }
@ -1480,17 +1472,17 @@ const TString& TLink_riga_documento::get_str(const char* fieldname) const
return TRiga_documento::get_str(fieldname); return TRiga_documento::get_str(fieldname);
} }
const TDocumento & TLink_riga_documento::doc() const const TDocumento& TLink_riga_documento::doc() const
{ {
if (has_doc()) if (has_doc())
return TRiga_documento::doc(); return TRiga_documento::doc();
TToken_string key;
TToken_string key;
key.add(get_char(RDOC_PROVV)); key.add(get_char(RDOC_PROVV));
key.add(get_int(RDOC_ANNO)); key.add(get_int(RDOC_ANNO));
key.add(get(RDOC_CODNUM)); key.add(get(RDOC_CODNUM));
key.add(get_long(RDOC_NDOC)); key.add(get_long(RDOC_NDOC));
return cached_doc(key);; return cached_doc(key);
} }
real TLink_riga_documento::qtaresidua() const real TLink_riga_documento::qtaresidua() const
@ -1551,7 +1543,7 @@ bool TLink_article_sheet::get_ini_paragraph(const TEdit_field& field, TString& p
TLink_article_sheet::TLink_article_sheet(TCursor& cur, TEdit_field& f, const char * fieldlist, const char * headers) TLink_article_sheet::TLink_article_sheet(TCursor& cur, TEdit_field& f, const char * fieldlist, const char * headers)
: TBrowse_sheet(&cur, fieldlist, TR("Evasione"), headers, 0, f, TToken_string()) : TBrowse_sheet(&cur, fieldlist, TR("Evasione"), headers, 0, f, TToken_string())
{ } { }
bool link_row_handler(TMask_field& f, KEY key ) bool link_row_handler(TMask_field& f, KEY key )
@ -2164,10 +2156,10 @@ bool um_handler( TMask_field& f, KEY key )
if ( key == K_TAB && f.focusdirty()) if ( key == K_TAB && f.focusdirty())
{ {
TMask& row_mask = f.mask( ); TMask& row_mask = f.mask( );
TTable & ums = (TTable &) ((TEdit_field &) f).browse()->cursor()->file(); TTable& ums = (TTable&)((TEdit_field&)f).browse()->cursor()->file();
const TString16 um(f.get()); const TString4 um = f.get();
real fc(1.0); real fc = UNO;
if (um.not_empty() && curr_um.not_empty() && um != curr_um) if (um.not_empty() && curr_um.not_empty() && um != curr_um)
{ {
@ -2175,7 +2167,7 @@ bool um_handler( TMask_field& f, KEY key )
if (ums.read() == NOERR) if (ums.read() == NOERR)
{ {
real qta(row_mask.get_real(FR_QTA)); real qta(row_mask.get_real(FR_QTA));
const TString16 umsrif0(ums.get("S7")); const TString4 umsrif0 = ums.get("S7");
const real fc0 = ums.get_real("R10"); const real fc0 = ums.get_real("R10");
if (um == umsrif0) if (um == umsrif0)
fc = fc0; fc = fc0;
@ -2185,15 +2177,14 @@ bool um_handler( TMask_field& f, KEY key )
if (ums.read() == NOERR) if (ums.read() == NOERR)
{ {
const real fc1 = ums.get_real("R10"); const real fc1 = ums.get_real("R10");
const TString16 umsrif1(ums.get("S7"));
if (fc1 > ZERO) if (fc1 > ZERO)
{ {
const TString& umsrif1 = ums.get("S7");
if (curr_um == umsrif1) if (curr_um == umsrif1)
fc = 1 / fc1; fc = UNO / fc1;
else else
if (umsrif0 == ums.get("S7")) if (umsrif0 == umsrif1)
fc = fc0 / ums.get_real("R10"); fc = fc0 / fc1;
} }
} }
} }
@ -3241,12 +3232,12 @@ bool sottocat_conai_handler(TMask_field& f, KEY key )
return true; return true;
} }
bool peso_conai_handler(TMask_field& f, KEY key ) bool peso_conai_handler(TMask_field& f, KEY key)
{ {
if (key == K_F8) if (key == K_F8)
{ {
const TString & codart = f.mask().get(FR_CODARTMAG); const TString& codart = f.mask().get(FR_CODARTMAG);
TArticolo & articolo = cached_article(codart); const TArticolo& articolo = cached_article(codart);
const TCONAI_class type = conai_id2class(f.dlg()); const TCONAI_class type = conai_id2class(f.dlg());
f.set(articolo.get(conai_peso_name(type, LF_ANAMAG))); f.set(articolo.get(conai_peso_name(type, LF_ANAMAG)));
} }
@ -3258,16 +3249,14 @@ bool datacomp_handler(TMask_field& f, KEY key)
if (key == K_F8) if (key == K_F8)
f.set(f.mask().get(F_DATADOC)); f.set(f.mask().get(F_DATADOC));
if (f.to_check(key, false)) if (f.to_check(key, false) && !f.empty())
{ {
const TDate datadoc = f.mask().get_date(F_DATADOC); const TDate datadoc = f.mask().get_date(F_DATADOC);
const TEsercizi_contabili es_doc; const TEsercizi_contabili esc;
int anno_doc = es_doc.date2esc(datadoc); const int anno_doc = esc.date2esc(datadoc);
const TDate datacomp = f.get(); const TDate datacomp = f.get();
const TEsercizi_contabili es_comp; const int anno_comp = esc.date2esc(datacomp);
int anno_comp = es_comp.date2esc(datacomp);
if (anno_doc != anno_comp) if (anno_doc != anno_comp)
return error_box("La data inizio competenza deve appartenere all'esercizio del documento!"); return error_box("La data inizio competenza deve appartenere all'esercizio del documento!");
} }
@ -3276,7 +3265,7 @@ bool datacomp_handler(TMask_field& f, KEY key)
bool datafcomp_handler(TMask_field& f, KEY key) bool datafcomp_handler(TMask_field& f, KEY key)
{ {
if (f.to_check(key, false)) if (f.to_check(key, false) && !f.empty())
{ {
const TDate datacomp = f.mask().get_date(F_DATACOMP); const TDate datacomp = f.mask().get_date(F_DATACOMP);
const TDate datafcomp = f.get(); const TDate datafcomp = f.get();

View File

@ -48,7 +48,7 @@ bool nar_handler(TMask_field& f, KEY key);
bool subappalto_hndl(TMask_field& f, KEY key); bool subappalto_hndl(TMask_field& f, KEY key);
bool reportba8_hndl(TMask_field& f, KEY key); bool reportba8_hndl(TMask_field& f, KEY key);
bool tipodoc_ok(const TString & tipodoc); bool is_tipodoc_ok(const TString & tipodoc);
TCONAI_class conai_id2class(short id); TCONAI_class conai_id2class(short id);
short conai_peso_id(TCONAI_class cc); short conai_peso_id(TCONAI_class cc);

View File

@ -51,6 +51,13 @@
#define RSS_MATRICOLA 172 #define RSS_MATRICOLA 172
#define RSS_QUALIFICA 173 #define RSS_QUALIFICA 173
#define RSS_TIPOSTRA1 180
#define RSS_DOPOSTRA1 181
#define RSS_COSTOSTRA1 182
#define RSS_TIPOSTRA2 183
#define RSS_DOPOSTRA2 184
#define RSS_COSTOSTRA2 185
#ifndef __VETBANAL_H #ifndef __VETBANAL_H
#include "vetbanal.h" #include "vetbanal.h"
#endif #endif

View File

@ -32,7 +32,7 @@ END
STRING RSS_RAGSOC 50 STRING RSS_RAGSOC 50
BEGIN BEGIN
PROMPT 9 2 "" PROMPT 2 2 "Nome "
FIELD S0 FIELD S0
KEY 2 KEY 2
USE RSS KEY 2 USE RSS KEY 2
@ -44,6 +44,18 @@ BEGIN
MESSAGE COPY,20@ MESSAGE COPY,20@
END END
STRING RSS_MATRICOLA 20
BEGIN
PROMPT 42 1 "Matricola "
FIELD S3[21,40]
END
STRING RSS_QUALIFICA 20
BEGIN
PROMPT 42 3 "Qualifica "
FIELD S3[41,60]
END
LIST RSS_COLLAB 1 10 LIST RSS_COLLAB 1 10
BEGIN BEGIN
PROMPT 2 3 "Tipo " PROMPT 2 3 "Tipo "
@ -58,7 +70,7 @@ END
NUMBER RSS_CODFORN 6 NUMBER RSS_CODFORN 6
BEGIN BEGIN
PROMPT 32 3 "" PROMPT 30 3 ""
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "F" INPUT TIPOCF "F"
INPUT CODCF RSS_CODFORN INPUT CODCF RSS_CODFORN
@ -79,7 +91,7 @@ END
NUMBER RSS_CODFIS 6 NUMBER RSS_CODFIS 6
BEGIN BEGIN
PROMPT 32 3 "" PROMPT 30 3 ""
USE LF_ANAG USE LF_ANAG
INPUT TIPOA "F" INPUT TIPOA "F"
INPUT CODANAGR RSS_CODFIS INPUT CODANAGR RSS_CODFIS
@ -429,16 +441,51 @@ BEGIN
ADD RUN CG0 -0 ADD RUN CG0 -0
END END
STRING RSS_MATRICOLA 20 STRING RSS_TIPOSTRA1 2
BEGIN BEGIN
PROMPT 2 20 "Matricola " PROMPT 1 17 "Tipo ora straordinaria 1 "
FIELD S3[21,40] USE &CIORE
INPUT CODTAB RSS_TIPOSTRA1
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_TIPOSTRA1 CODTAB
CHECKTYPE NORMAL
FIELD S9
END END
STRING RSS_QUALIFICA 20 NUMBER RSS_DOPOSTRA1 2
BEGIN BEGIN
PROMPT 2 21 "Qualifica " PROMPT 41 17 "dopo ore "
FIELD S3[41,60] FIELD R5
END
CURRENCY RSS_COSTOSTRA1 9
BEGIN
PROMPT 59 17 "Costo "
FIELD R6
END
STRING RSS_TIPOSTRA2 2
BEGIN
PROMPT 1 18 "Tipo ora straordinaria 2 "
COPY USE RSS_TIPOSTRA1
INPUT CODTAB RSS_TIPOSTRA2
COPY DISPLAY RSS_TIPOSTRA1
OUTPUT RSS_TIPOSTRA2 CODTAB
CHECKTYPE NORMAL
FIELD S10
END
NUMBER RSS_DOPOSTRA2 2
BEGIN
PROMPT 41 18 "dopo ore "
FIELD R7
END
CURRENCY RSS_COSTOSTRA2 9
BEGIN
PROMPT 59 18 "Costo "
FIELD R8
END END
ENDPAGE ENDPAGE

View File

@ -40,6 +40,8 @@
#define F_DESCELABS 157 #define F_DESCELABS 157
#define F_CODELABD 158 #define F_CODELABD 158
#define F_DESCELABD 159 #define F_DESCELABD 159
#define F_CODELABK 160
#define F_DESCELABK 161
#define F_STATOI_MOD_1 201 #define F_STATOI_MOD_1 201
#define F_STATOI_MOD_2 202 #define F_STATOI_MOD_2 202

View File

@ -209,7 +209,7 @@ END
BOOLEAN F_MOVMAG BOOLEAN F_MOVMAG
BEGIN BEGIN
PROMPT 2 14 "Mov. mag. a partire dallo stato " PROMPT 2 14 "Mov. magazzino"
FIELD B1 FIELD B1
MESSAGE FALSE CLEAR,1@ MESSAGE FALSE CLEAR,1@
MESSAGE TRUE ENABLE,1@ MESSAGE TRUE ENABLE,1@
@ -219,7 +219,7 @@ END
STRING F_STATO_MOV_I 1 STRING F_STATO_MOV_I 1
BEGIN BEGIN
PROMPT 38 14 "" PROMPT 24 14 "dallo stato "
FIELD S7 FIELD S7
USE %STD USE %STD
INPUT CODTAB F_STATO_MOV_I INPUT CODTAB F_STATO_MOV_I
@ -1222,14 +1222,14 @@ BEGIN
FIELD S11[5,5] FIELD S11[5,5]
END END
GROUPBOX DLG_NULL 42 3 GROUPBOX DLG_NULL 45 3
BEGIN BEGIN
PROMPT 41 1 "@bIntra" PROMPT 38 1 "@bIntra"
END END
STRING F_NATURA 1 STRING F_NATURA 1
BEGIN BEGIN
PROMPT 42 2 "Natura transazione " PROMPT 39 2 "Natura transazione "
FLAGS "U" FLAGS "U"
USE %INT USE %INT
INPUT CODTAB F_NATURA INPUT CODTAB F_NATURA
@ -1256,7 +1256,7 @@ BEGIN
FIELD B11 FIELD B11
END END
GROUPBOX DLG_NULL 78 5 GROUPBOX DLG_NULL 78 6
BEGIN BEGIN
PROMPT 1 12 "@bElaborazioni automatiche" PROMPT 1 12 "@bElaborazioni automatiche"
END END
@ -1336,6 +1336,29 @@ BEGIN
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_CODELABK 8
BEGIN
PROMPT 2 16 "Speciale "
FLAG "U"
FIELD S3[29,36]
CHECKTYPE NORMAL
COPY USE F_CODELAB
INPUT CODTAB F_CODELABD
COPY DISPLAY F_CODELAB
OUTPUT F_CODELABK CODTAB
OUTPUT F_DESCELABK S0
HELP "Codice dell'elaborazione differita da eseguire"
END
STRING F_DESCELABK 50
BEGIN
PROMPT 26 16 ""
COPY USE F_DESCELAB
INPUT S0 F_DESCELABD
COPY DISPLAY F_DESCELAB
COPY OUTPUT F_CODELABK
CHECKTYPE NORMAL
END
ENDPAGE ENDPAGE

View File

@ -6,7 +6,7 @@ TOOLBAR "Toolbar" 0 0 0 2
ENDPAGE ENDPAGE
PAGE "Unita' di misura " 0 0 0 0 PAGE "Unità di misura " 0 0 0 0
GROUPBOX DLG_NULL 75 7 GROUPBOX DLG_NULL 75 7
BEGIN BEGIN
@ -16,7 +16,7 @@ END
STRING F_UM 2 STRING F_UM 2
BEGIN BEGIN
PROMPT 2 2 "Unita' di misura " PROMPT 2 2 "Unità di misura "
FIELD CODTAB FIELD CODTAB
KEY 1 KEY 1
FLAG "U" FLAG "U"
@ -44,7 +44,7 @@ END
STRING F_UMR 2 STRING F_UMR 2
BEGIN BEGIN
PROMPT 2 8 "Unita' di riferimento " PROMPT 2 8 "Unità di riferimento "
FIELD S7 FIELD S7
FLAG "U" FLAG "U"
USE %UMS USE %UMS
@ -60,7 +60,7 @@ BEGIN
PROMPT 2 10 "Fatt.conversione al riferim." PROMPT 2 10 "Fatt.conversione al riferim."
FIELD R10 FIELD R10
VALIDATE REQIF_FUNC 1 F_UMR VALIDATE REQIF_FUNC 1 F_UMR
WARNING "Fattore di conversione obbligatorio se specificata l'unita' di misura di riferimento" WARNING "Fattore di conversione obbligatorio se specificata l'unità di misura di riferimento"
END END
BOOLEAN F_ROUND BOOLEAN F_ROUND
@ -78,6 +78,21 @@ BEGIN
FIELD I0 FIELD I0
END END
DATE DLG_NULL
BEGIN
PROMPT 1 -1 "Ultimo aggiornamento "
FIELD DATAAGG
FLAGS "D"
END
STRING DLG_NULL 16
BEGIN
PROMPT 41 -1 "Ultimo utente "
FIELD UTENTE
FLAGS "D"
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK