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
0
$doc|0|0|687|0|Documenti di vendita|||
$doc|0|0|723|0|Documenti di vendita|||

View File

@ -1,5 +1,5 @@
33
95
97
CODNUM|1|4|0|Codice della numerazione
ANNO|2|4|0|Anno
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
G1|11|10|0|Campo generale 1
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
DOCEVASO|8|1|0|Ordine evaso
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
MODPAG|1|1|0|Tipo contratto P.A.
CONTRATTO|1|20|0|Contratto fattura P.A.
CONTSEP|1|6|0|Contabilita' separata
NOLEGGIO|1|1|0|Tipo noleggio (Spesometro)
CONTSEP|1|6|0|Contabilità separata
NOLEGGIO|1|1|0|Tipo noleggio (pe)
COMMPREL|1|20|0|Commessa di prelievo (ci)
FASEPREL|1|10|0|Fase di prelievo (ci)
5
PROVV+ANNO+CODNUM+NDOC|
TIPOCF+CODCF+PROVV+ANNO+DATADOC+CODNUM+NDOC|X

View File

@ -1,3 +1,3 @@
47
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
USER17|1|20|0|Campo libero 17
USER18|1|20|0|Campo libero 18
USER19|1|20|0|Campo libero 19
USER20|1|20|0|Campo libero 20
DATAAGG|5|8|0|
UTENTE|1|16|0|
3
CODART|
UPPER(DESCR)|X

View File

@ -1,3 +1,3 @@
53
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
25
27
TIPO|1|1|0|Tipo (<L>istino,<C>ontratto,<O>fferta)
CATVEN|1|2|0|Categoria di vendita (L)
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
PRZSTO|4|18|5|Prezzo storico
DATAPRZSTO|5|8|0|Data prezzo storico
DATAAGG|5|8|0|
UTENTE|1|16|0|
1
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;
}
TToken_string tipi, stati;
el->tipi_stati_iniziali(tipi, stati);
if (stati.find(doc.stato()) >= 0)
if (el != NULL && el->is_document_ok(doc))
{
TLista_documenti in; in.add(doc);
TLista_documenti out;
TDocumento newdoc(doc.get_char(DOC_PROVV), doc.get_int(DOC_ANNO), el->codice_numerazione_finale(), 0L);
if (when == 0)
{
TDocumento::copy_data(newdoc.head(), doc.head());
newdoc.put(DOC_TIPODOC, el->tipo_finale());
newdoc.put(DOC_STATO, el->stato_finale());
if (newdoc.tipo().mov_mag())
newdoc.put(DOC_CAUSMAG, newdoc.tipo().caus_mov());
TDocumento* newdoc = new TDocumento(doc.get_char(DOC_PROVV), doc.get_int(DOC_ANNO), el->codice_numerazione_finale(), 0L);
TDocumento::copy_data(newdoc->head(), doc.head());
newdoc->put(DOC_TIPODOC, el->tipo_finale());
newdoc->put(DOC_STATO, el->stato_finale());
if (newdoc->tipo().mov_mag())
newdoc->put(DOC_CAUSMAG, newdoc->tipo().caus_mov());
else
newdoc.zero(DOC_CAUSMAG);
newdoc->zero(DOC_CAUSMAG);
out.add(newdoc);
}
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();
if (when < 2 && in.items() && in[0] != doc)
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 int last = cod_num.ntipi_doc();
for (int i = 0; i < last; i++ )
if (tipodoc_ok(cod_num.tipo_doc(i)))
for (int i = 0; i < last; i++)
{
if (is_tipodoc_ok(cod_num.tipo_doc(i)))
return true;
}
return false;
}

View File

@ -6,6 +6,11 @@ ENDPAGE
PAGE "Distinta Base" 0 0 0 0
GROUPBOX DLG_NULL 78 9
BEGIN
PROMPT 1 1 "@bParametri esplosione ditinte"
END
BOOLEAN F_EXPLODEDB
BEGIN
PROMPT 2 2 "Esplosione distinte"
@ -14,14 +19,9 @@ BEGIN
FIELD EXPLODEDB
END
GROUPBOX DLG_NULL 78 14
BEGIN
PROMPT 1 4 "Parametri esplosione"
END
LISTBOX F_VALCOMP 15
BEGIN
PROMPT 2 6 "Calcolo valore su "
PROMPT 2 3 "Calcolo valore su "
ITEM " |Prodotto finito"
ITEM "X|Componenti"
FIELD VALCOMP
@ -30,7 +30,7 @@ END
LISTBOX F_TIPOESPL 20
BEGIN
PROMPT 2 8 "Tipo esplosione "
PROMPT 2 4 "Tipo esplosione "
ITEM " |Scalare"
ITEM "X|Materiali di base"
FIELD TIPOESPL
@ -39,7 +39,7 @@ END
LIST F_RAGGART 34
BEGIN
PROMPT 2 10 "Raggruppo articoli "
PROMPT 2 5 "Raggrupp. articoli "
ITEM "0|Nessun raggruppamento"
ITEM "1|Converti nell'unita' principale"
ITEM "1|Converti nell'unita' di distinta"
@ -52,14 +52,14 @@ END
NUMBER F_LIVELLO 3
BEGIN
PROMPT 2 12 "Livello esplosione "
PROMPT 2 6 "Livello esplosione "
FIELD LIVESPL
GROUP 8
END
NUMBER F_ORDDB 3
BEGIN
PROMPT 2 14 "Ordinamento distinta "
PROMPT 2 7 "Ordinamento distinta "
USE ORD
INPUT CODTAB F_ORDDB
DISPLAY "Codice" CODTAB
@ -73,17 +73,76 @@ END
STRING F_DESORDDB 47
BEGIN
PROMPT 30 14 ""
PROMPT 30 7 ""
FLAGS "D"
END
BOOLEAN F_ELRORIG
BEGIN
PROMPT 2 16 "Elimino la riga originale"
PROMPT 2 8 "Eliminare la riga originale"
FIELD ELRORIG
GROUP 8
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
PAGE "Articoli 1" 1 1 60 14
@ -982,159 +1041,6 @@ BEGIN
GROUP 28
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
ENDMASK

View File

@ -267,7 +267,7 @@ void TContabilizzazione_analitica_app::contabilize()
//E finalmente fa l'agognata elaborazione!!!!!
TString16 elaborazione = _msk->get(F_CODICE_ELAB);
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)
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_06 = "Conti per categoria e gruppo", "ve0 -6 &CVM", "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_10 = "Fido cliente", "ve0 -2 -8", "F"
@ -221,7 +220,7 @@ Module = 0
Flags = ""
Item_01 = "Modifica valori", "ve4 -0", "F"
Item_02 = "Aggiornamento Codici IVA", "ve4 -1", "FP"
Item_03 = "Invio", [ACQVEN_025]
Item_03 = "Invio", [ACQVEN_025]
Item_04 = "Ricezione", [ACQVEN_026]
@ -230,9 +229,10 @@ Caption = "Configurazione magazzino"
Picture = <ba04>
Module = 0
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_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]
Caption = "Archivi contabili"
@ -287,4 +287,5 @@ Caption = "Verticalizzazioni"
Picture = <ve01>
Module = 0
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_finale() const {return get_char("S8"); }
const char stato_provvigioni() const {return get("S3")[0]; }
const TString & elaborazione() const {return get("S3").mid(4,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() const {return get("S3").mid(4,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_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_anticipo() const {return get("S10"); }
const TString & tipi_iva_validi() const {return get("S11"); }
@ -318,7 +320,7 @@ public:
bool mail_print_profile(TFilename& report) const;
bool is_costo() 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* succ_formula(bool restart = false);
@ -1018,6 +1020,7 @@ public:
static bool codval_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 movint_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_handler(TMask_field& f, KEY key);

View File

@ -3008,6 +3008,10 @@ void TDocumento::update_conai()
bool TDocumento::is_evaso() const
{
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++)
{
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;
if (field.file() == LF_DOC)
{
switch (field.file())
{
case LF_CLIFO:
case LF_CFVEN:
if (doc.get_long(DOC_CODCF) > 0)
{
TString8 key; key << doc.get(DOC_TIPOCF) << '|' << doc.get(DOC_CODCF);
const TRectype& rec = cache().get(field.file(), key);
val = field.read(rec);
}
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);
rif.insert(val, p);
break;
}
else
{
TString8 key(doc.get(DOC_TIPOCF));
key << '|' << doc.get(DOC_CODCF);
const TRectype& rec = cache().get(field.file(), key);
val = field.read(rec);
rif.insert(val, p);
}
rif.insert(val, p);
switch (conn)
{
@ -449,6 +457,17 @@ void TTipo_documento::read_formule()
_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
{
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");
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");
TFilename name; name.temp("ext");
TDocumento& d = doc_in[0];
TFilename name; name.temp("ext");
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("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);
TDocumento& d = doc_in[0];
const int doc_fields = d.items();
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);
d.destroy_rows();
int r = 1 ;
par.format("%d,%d", LF_RIGHEDOC, r);
while (p.find(par) >= 0)
{
const TString& tiporiga = c.get(RDOC_TIPORIGA, par);
for (int r = 1; ; r++)
{
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);
for (int i = row.items()-1; i >= 0; i--)
{
const char* fname = row.fieldname(i);
const TFieldref f(fname, LF_RIGHEDOC);
const TString& val = f.read(c, par);
if (val.not_empty())
if (val.full())
row.put(fname, val);
}
par.format("%d,%d", LF_RIGHEDOC, ++r);
}
const char final = stato_finale_doc_iniziale()[0];
if (d.stato() != final)
if (final > '0' && d.stato() != final)
d.stato(final);
return true;
@ -635,11 +642,13 @@ bool TElaborazione_esterna::elabora(TLista_documenti& doc_in, TLista_documenti&
{
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();
return true;
}
}
}
return false;
}

View File

@ -642,7 +642,7 @@ protected:
const TCausale& rdoc2caus(const TRiga_documento& rdoc);
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:
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;
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);
s.destroy();
const int rows = indoc.physical_rows();
int rowno = 0;
for (int i = 0; i < rows; i++)
{
const TRiga_documento& rec = indoc[i+1];
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;
if (rec.is_descrizione())
show_line = !_ignora_descrizioni;
@ -355,15 +358,13 @@ bool TConsegna_ordini::aggiorna_ncolli_tara_pnetto(TRiga_documento& r) const
TArticolo& articolo = cached_article(codart);
const real qta = articolo.convert_to_um(r.quantita(), NULL, r.get(RDOC_UMQTA));
real ncolli, tara, pnetto;
const bool ok = calcola_ncolli_tara_pnetto(codart, qta, ncolli, tara, pnetto);
if (ok)
{
r.put(RDOC_NCOLLI, ncolli);
r.put(RDOC_TARA, tara);
r.put(RDOC_TARA, tara);
r.put(RDOC_PNETTO, pnetto);
}
return ok;
}
@ -400,7 +401,6 @@ bool TConsegna_ordini::genera_righe_riferimento(const TDocumento& indoc, TDocume
}
const TString4 numrif = num_riferimenti_in();
if (numrif.full())
{
TAssoc_array doc_rows;
@ -425,8 +425,7 @@ bool TConsegna_ordini::genera_righe_riferimento(const TDocumento& indoc, TDocume
query << "\nFROM " << select;
query << "\nTO " << select;
TISAM_recordset recset(query);
TISAM_recordset recset(query);
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
{
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
TRiga_documento& outrec = outdoc.insert_row(i+1, tiporiga);
TString descr;
descr << TR("Scarto") << ' ' << codart;
TString descr; descr << TR("Scarto ") << codart;
outrec.put(RDOC_DESCR, descr);
TToken_string& ska = *(TToken_string*)obj;
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)
{
TRiga_documento& inrec = *rdoc;
const int nrow = inrec.get_int(RDOC_NRIGA);
if (inrec.is_evasa())
indoc.destroy_row(i, true);
else
@ -855,7 +851,6 @@ bool TConsegna_ordini::elabora(TLista_documenti& doc_in, TLista_documenti& doc_o
const real evaso = inrec.qtaevasa();
const char* fq = inrec.field_qta();
const char* fqe = inrec.field_qtaevasa();
inrec.add(fq, -evaso); // nuovo modo di incrementare
inrec.zero(fqe);
}

View File

@ -41,7 +41,7 @@ const TCausale& TCache_causali::causale(const TDocumento& doc, const TString & f
if (!fld_cms.blank())
{
const TString & cms = doc.commessa_principale();
const TString& cms = doc.commessa_principale();
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())
{
TString80 key(rdoc->get(RDOC_CODNUM));
TString80 key = rdoc->get(RDOC_CODNUM);
const TCodice_numerazione& num = cached_numerazione(key);
if (num.fattura_emettere_ricevere())
@ -334,11 +334,12 @@ bool TContabilizzazione_analitica::search_costo_ricavo(const TRiga_documento& r,
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 TString80 riga_cms = riga.codice_commessa();
const TString16 riga_fsc = riga.fase_commessa();
const TCodice_cdc riga_cos = riga.codice_costo();
const TCodice_cms riga_cms = riga.codice_commessa();
const TCodice_fas riga_fsc = riga.fase_commessa();
TToken_string conto;
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;
const char tipocf = riga.doc().get_char(DOC_TIPOCF);
TString80 contanal;
TCodice_con contanal;
TToken_string conto;
TBill bill; // Cerco il conto contabile
@ -442,9 +443,9 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
return true;
}
const TString80 riga_cos = riga.codice_costo();
const TString80 riga_cms = riga.codice_commessa();
const TString16 riga_fsc = riga.fase_commessa();
const TCodice_cdc riga_cos = riga.codice_costo();
const TCodice_cms riga_cms = riga.codice_commessa();
const TCodice_fas riga_fsc = riga.fase_commessa();
if (contanal.full()) // Non ho trovato il conto in anagrafica ...
{
@ -469,18 +470,16 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
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);
const TString & commessa = rigarip.get(RRIP_CODCMS);
const TString& commessa = rigarip.get(RRIP_CODCMS);
conto.add(commessa.full() ? commessa : riga_cms, 2);
const TString & fase = rigarip.get(RRIP_CODFASE);
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);
}
}
@ -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);
datacomp = doc.get_date(DOC_DATACOMP);
@ -512,7 +511,7 @@ void TContabilizzazione_analitica::calcola_date_comp(const TDocumento& doc, TDat
if (!datafcomp.ok())
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,
@ -573,7 +572,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
}
else
{
calcola_date_comp(doc, datacomp, datafcomp, annoes);
annoes = calcola_date_comp(doc, datacomp, datafcomp);
datareg = datadoc;
doc.riferimento(descr);
@ -620,7 +619,7 @@ bool TContabilizzazione_analitica::elabora(TDocumento& doc, long numreg_cg, TVis
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_DATACOMP, datacomp);
@ -872,7 +871,9 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
p.links().add("Movimento Analitico |r|w", 0);
p.setlinkhandler(link_handler_ana);
pre_process_input(doc_in);
v.open_modal();
if (interattivo)
v.open_modal();
for (int i = 0; i < doc_in.items(); i++)
{
TAnal_mov mov;
@ -897,7 +898,8 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
break;
}
v.close_print();
v.close_modal();
if (interattivo)
v.close_modal();
if (_total_docs > 0)
{
@ -905,8 +907,11 @@ bool TContabilizzazione_analitica::elabora(TLista_documenti& doc_in, TLista_docu
post_process(doc_out, doc_in);
}
if (v.run() == K_CTRL+'S') // Ho premuto Stampa
p.print_txt(v.text());
if (interattivo || _total_docs < doc_in.items())
{
if (v.run() == K_CTRL+'S') // Ho premuto Stampa
p.print_txt(v.text());
}
return true;
}

File diff suppressed because it is too large Load Diff

View File

@ -610,7 +610,7 @@ bool iva_handler( TMask_field& f, KEY key )
bool addiva = false;
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() ||
(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 required = pf && !(qe && !qf);
if (required)
return f.error_box("Il codice IVA e' obbligatorio.");
return f.error_box(TR("Il codice IVA è obbligatorio."));
}
}
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);
m.fld(pos).set(peso.string());
}
}
bool pricerange_handler(TMask_field& f, KEY key )
{
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)
: 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),
_fld(f)
HR("Num.|Data@10|Codice articolo@20|Descrizione@40|Quantità@15P|Prezzo@18P|Sconto@10|Numerazione@18|Tipo Documento@18"), 0, 1),
_fld(f)
{
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));
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))
{
const TRectype & rdoc = r.row(i);
const TString & codart = rdoc.get(RDOC_CODART);
const TRectype& rdoc = r.row(i);
const TString& codart = rdoc.get(RDOC_CODART);
if (codart.full())
{
TToken_string row;
@ -1437,15 +1432,14 @@ TObject* TCache_documenti::rec2obj(const TRectype& curr) const
return new TDocumento(curr);
}
TDocumento & TCache_documenti::doc(const char* key)
TDocumento& TCache_documenti::doc(const char* key)
{
return (TDocumento &)query(key);
}
TDocumento & cached_doc(const char* key)
TDocumento& cached_doc(const char* key)
{
static TCache_documenti * _cache_docs = NULL;
if (_cache_docs == NULL)
_cache_docs = new TCache_documenti();
return _cache_docs->doc(key);
@ -1454,12 +1448,11 @@ TDocumento & cached_doc(const char* key)
class TLink_riga_documento : public TRiga_documento
{
protected:
const TDocumento_mask * _mask;
const TDocumento_mask* _mask;
virtual const TString& get_str(const char* fieldname) const;
public:
virtual const TDocumento & doc() const;
virtual const TDocumento& doc() const;
void set_mask(const TDocumento_mask * m) { _mask = m;}
virtual real qtaresidua() const;
@ -1471,8 +1464,7 @@ const TString& TLink_riga_documento::get_str(const char* fieldname) const
{
if (strcmp(fieldname, "RESIDUO") == 0)
{
TString & value = get_tmp_string(80);
TString& value = get_tmp_string();
value = qtaresidua().string();
return value;
}
@ -1480,17 +1472,17 @@ const TString& TLink_riga_documento::get_str(const char* fieldname) const
return TRiga_documento::get_str(fieldname);
}
const TDocumento & TLink_riga_documento::doc() const
const TDocumento& TLink_riga_documento::doc() const
{
if (has_doc())
return TRiga_documento::doc();
TToken_string key;
TToken_string key;
key.add(get_char(RDOC_PROVV));
key.add(get_int(RDOC_ANNO));
key.add(get(RDOC_CODNUM));
key.add(get_long(RDOC_NDOC));
return cached_doc(key);;
return cached_doc(key);
}
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)
: 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 )
@ -2164,10 +2156,10 @@ bool um_handler( TMask_field& f, KEY key )
if ( key == K_TAB && f.focusdirty())
{
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());
real fc(1.0);
const TString4 um = f.get();
real fc = UNO;
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)
{
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");
if (um == umsrif0)
fc = fc0;
@ -2185,15 +2177,14 @@ bool um_handler( TMask_field& f, KEY key )
if (ums.read() == NOERR)
{
const real fc1 = ums.get_real("R10");
const TString16 umsrif1(ums.get("S7"));
if (fc1 > ZERO)
{
const TString& umsrif1 = ums.get("S7");
if (curr_um == umsrif1)
fc = 1 / fc1;
fc = UNO / fc1;
else
if (umsrif0 == ums.get("S7"))
fc = fc0 / ums.get_real("R10");
if (umsrif0 == umsrif1)
fc = fc0 / fc1;
}
}
}
@ -3241,12 +3232,12 @@ bool sottocat_conai_handler(TMask_field& f, KEY key )
return true;
}
bool peso_conai_handler(TMask_field& f, KEY key )
bool peso_conai_handler(TMask_field& f, KEY key)
{
if (key == K_F8)
{
const TString & codart = f.mask().get(FR_CODARTMAG);
TArticolo & articolo = cached_article(codart);
const TString& codart = f.mask().get(FR_CODARTMAG);
const TArticolo& articolo = cached_article(codart);
const TCONAI_class type = conai_id2class(f.dlg());
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)
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 TEsercizi_contabili es_doc;
int anno_doc = es_doc.date2esc(datadoc);
const TEsercizi_contabili esc;
const int anno_doc = esc.date2esc(datadoc);
const TDate datacomp = f.get();
const TEsercizi_contabili es_comp;
int anno_comp = es_comp.date2esc(datacomp);
const int anno_comp = esc.date2esc(datacomp);
if (anno_doc != anno_comp)
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)
{
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 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 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);
short conai_peso_id(TCONAI_class cc);

View File

@ -51,6 +51,13 @@
#define RSS_MATRICOLA 172
#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
#include "vetbanal.h"
#endif

View File

@ -1,470 +1,517 @@
#include "vetbrss.h"
TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Risorse" 0 0 0 0
GROUPBOX DLG_NULL 75 8
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
STRING RSS_CODICE 16
BEGIN
PROMPT 2 1 "Codice "
FIELD CODTAB
KEY 1
USE RSS
FLAGS "U"
INPUT CODTAB RSS_CODICE
DISPLAY "Codice@16" CODTAB
DISPLAY "Denominazione@50" S0
OUTPUT RSS_CODICE CODTAB
OUTPUT RSS_RAGSOC S0
CHECKTYPE REQUIRED
MESSAGE COPY,10@
END
STRING RSS_RAGSOC 50
BEGIN
PROMPT 9 2 ""
FIELD S0
KEY 2
USE RSS KEY 2
INPUT S0 RSS_RAGSOC
DISPLAY "Denominazione@50" S0
DISPLAY "Codice@16" CODTAB
COPY OUTPUT RSS_CODICE
CHECKTYPE REQUIRED
MESSAGE COPY,20@
END
LIST RSS_COLLAB 1 10
BEGIN
PROMPT 2 3 "Tipo "
ITEM "|Nessuno"
MESSAGE HIDE,1@|HIDE,2@|ENABLE,RSS_RAGSOC
ITEM "D|Dipendente"
MESSAGE HIDE,1@|SHOW,2@|DISABLE,RSS_RAGSOC
ITEM "F|Fornitore"
MESSAGE SHOW,1@|HIDE,2@|DISABLE,RSS_RAGSOC
FIELD B0
END
NUMBER RSS_CODFORN 6
BEGIN
PROMPT 32 3 ""
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF RSS_CODFORN
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT RSS_CODFORN CODCF
OUTPUT RSS_RAGSOC RAGSOC
OUTPUT RSS_ADDRESS_F INDCF
OUTPUT RSS_CIVICO_F CIVCF
OUTPUT RSS_STATO_F STATOCF
OUTPUT RSS_COMUNE_F COMCF
CHECKTYPE REQUIRED
FIELD I6
WARNING "Codice fornitore inesistente"
ADD RUN CG0 -1
GROUP 1
END
NUMBER RSS_CODFIS 6
BEGIN
PROMPT 32 3 ""
USE LF_ANAG
INPUT TIPOA "F"
INPUT CODANAGR RSS_CODFIS
DISPLAY "Codice" CODANAGR
DISPLAY "Cognome@30" RAGSOC[1,30]
DISPLAY "Nome@20" RAGSOC[31,50]
OUTPUT RSS_CODFIS CODANAGR
OUTPUT RSS_RAGSOC RAGSOC
OUTPUT RSS_ADDRESS_C INDRES
OUTPUT RSS_CIVICO_C CIVRES
OUTPUT RSS_STATO_C STATORES
OUTPUT RSS_COMUNE_C COMRES
CHECKTYPE REQUIRED
WARNING "Codice persona inesistente"
FIELD I6
ADD RUN BA4 -1
GROUP 2
END
STRING RSS_ADDRESS_F 35
BEGIN
PROMPT 2 4 "Indirizzo "
FLAGS "D"
GROUP 1
END
STRING RSS_CIVICO_F 5
BEGIN
PROMPT 65 4 "N. "
FLAGS "D"
GROUP 1
END
NUMBER RSS_STATO_F 3
BEGIN
PROMPT 2 5 "Comune: Stato "
FLAGS "DZ"
USE %STA
INPUT CODTAB RSS_STATO_F
OUTPUT RSS_DESTATO_F S0
CHECKTYPE NORMAL
GROUP 1
END
STRING RSS_DESTATO_F 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
GROUP 1
END
STRING RSS_COMUNE_F 4
BEGIN
PROMPT 8 6 ":Codice "
FLAGS "DU"
USE LF_COMUNI
INPUT STATO RSS_STATO_F
INPUT COM RSS_COMUNE_F
OUTPUT RSS_DENCOM_F DENCOM
CHECKTYPE NORMAL
GROUP 1
END
STRING RSS_DENCOM_F 50
BEGIN
PROMPT 23 6 ""
FLAGS "D"
GROUP 1
END
STRING RSS_ADDRESS_C 35
BEGIN
PROMPT 2 4 "Indirizzo "
FLAGS "D"
GROUP 2
END
STRING RSS_CIVICO_C 5
BEGIN
PROMPT 65 4 "N. "
FLAGS "D"
GROUP 2
END
NUMBER RSS_STATO_C 3
BEGIN
PROMPT 2 5 "Comune: Stato "
FLAGS "DZ"
USE %STA
INPUT CODTAB RSS_STATO_C
OUTPUT RSS_DESTATO_C S0
CHECKTYPE NORMAL
GROUP 2
END
STRING RSS_DESTATO_C 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
GROUP 2
END
STRING RSS_COMUNE_C 4
BEGIN
PROMPT 8 6 ":Codice "
FLAGS "DU"
USE LF_COMUNI
INPUT STATO RSS_STATO_C
INPUT COM RSS_COMUNE_C
OUTPUT RSS_DENCOM_C DENCOM
CHECKTYPE NORMAL
GROUP 2
END
STRING RSS_DENCOM_C 50
BEGIN
PROMPT 23 6 ""
FLAGS "D"
GROUP 2
END
STRING RSS_TIPORIGA 4
BEGIN
PROMPT 1 8 "Tipo riga "
FIELD S8
FLAGS "U"
USE %TRI SELECT S7=="R"
INPUT CODTAB RSS_TIPORIGA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_TIPORIGA CODTAB
OUTPUT RSS_DESCRRIGA S0
CHECKTYPE REQUIRED
END
STRING RSS_DESCRRIGA 50
BEGIN
PROMPT 24 8 ""
USE %TRI KEY 2 SELECT S7=="R"
INPUT S0 RSS_DESCRRIGA
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT RSS_TIPORIGA
END
STRING RSS_CODIVA 4
BEGIN
PROMPT 1 9 "Codice IVA "
FIELD S3[1,4]
FLAGS "U"
USE %IVA
INPUT CODTAB RSS_CODIVA
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_CODIVA CODTAB
OUTPUT RSS_DESIVA S0
CHECKTYPE NORMAL
END
STRING RSS_DESIVA 50
BEGIN
PROMPT 24 9 ""
USE %IVA KEY 2
INPUT S0 RSS_DESIVA
DISPLAY "Descrizione@50" S0
DISPLAY "Codice " CODTAB
COPY OUTPUT RSS_CODIVA
CHECKTYPE NORMAL
END
STRING RSS_CODVAL 4
BEGIN
PROMPT 1 10 "Codice valuta "
FIELD S4
FLAGS "U"
USE %VAL
INPUT CODTAB RSS_CODVAL
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_CODVAL CODTAB
OUTPUT RSS_DESVAL S0
CHECKTYPE NORMAL
END
STRING RSS_DESVAL 50
BEGIN
PROMPT 24 10 ""
USE %VAL KEY 2
INPUT S0 RSS_DESVAL
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT RSS_CODVAL
CHECKTYPE NORMAL
END
STRING RSS_CODART 20
BEGIN
PROMPT 1 11 "Articolo (CI) "
USE LF_ANAMAG
INPUT CODART RSS_CODART
DISPLAY "Codice@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT RSS_CODART CODART
OUTPUT RSS_DESCART DESCR
CHECKTYPE NORMAL
FLAGS "U"
FIELD S2
END
STRING RSS_DESCART 50 34
BEGIN
PROMPT 40 11 ""
USE LF_ANAMAG KEY 2
INPUT DESCR RSS_DESCART
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice@20" CODART
COPY OUTPUT RSS_CODART
CHECKTYPE NORMAL
FLAGS "U"
END
LISTBOX RSS_CAMPI 15
BEGIN
PROMPT 1 12 "Campo default "
FIELD S6
ITEM "Q|Qta prezzo "
FLAGS "H"
END
CURRENCY RSS_PREZZO 15
BEGIN
PROMPT 1 12 "Prezzo "
FIELD R10
FLAGS "U"
END
NUMBER RSS_QTA 13 5
BEGIN
PROMPT 38 12 "Quantita' "
FIELD R1
END
STRING RSS_UM 2
BEGIN
PROMPT 67 12 "U.M. "
FIELD S7
FLAGS "U"
USE %UMS
INPUT CODTAB RSS_UM
DISPLAY "U.M." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_UM CODTAB
CHECKTYPE NORMAL
END
STRING RSS_PRESTAZ 8
BEGIN
PROMPT 1 13 "Prestazione per fatturazione "
USE PRS
INPUT CODTAB RSS_PRESTAZ
DISPLAY "Codice@8" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_PRESTAZ CODTAB
CHECKTYPE NORMAL
FIELD S5
END
BOOLEAN RSS_MRP_ATTIVO
BEGIN
PROMPT 1 14 "@bCollegamento M.R.P.:"
MESSAGE FALSE CLEAR,9@
MESSAGE TRUE ENABLE,9@
END
STRING RSS_IMPIANTO 5
BEGIN
PROMPT 25 14 "Impianto "
FIELD S3[5,9]
USE IMP
INPUT CODTAB RSS_IMPIANTO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_IMPIANTO CODTAB
GROUP 9
END
STRING RSS_LINEA 5
BEGIN
PROMPT 45 14 "Linea "
FIELD S3[10,14]
USE LNP
INPUT CODTAB RSS_LINEA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_LINEA CODTAB
GROUP 9
END
NUMBER RSS_GRUPPOA 3
BEGIN
PROMPT 2 15 "Conto acquisti "
FIELD I3
END
NUMBER RSS_CONTOA 3
BEGIN
PROMPT 22 15 ""
FIELD I4
END
NUMBER RSS_SOTTOA 6
BEGIN
PROMPT 28 15 ""
FIELD I5
USE LF_PCON SELECT SOTTOCONTO!=""
INPUT GRUPPO RSS_GRUPPOA
INPUT CONTO RSS_CONTOA
INPUT SOTTOCONTO RSS_SOTTOA
DISPLAY "Gruppo@3" GRUPPO
DISPLAY "Conto@3" CONTO
DISPLAY "Sottoconto@6" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT RSS_GRUPPOA GRUPPO
OUTPUT RSS_CONTOA CONTO
OUTPUT RSS_SOTTOA SOTTOCONTO
OUTPUT RSS_DESCRCONTOA DESCR
CHECKTYPE NORMAL
WARNING "Sottoconto errato"
ADD RUN CG0 -0
END
STRING RSS_DESCRCONTOA 50 35
BEGIN
PROMPT 39 15 ""
FLAG "U"
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR RSS_DESCRCONTOA
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo@3" GRUPPO
DISPLAY "Conto@3" CONTO
DISPLAY "Sottoconto@6" SOTTOCONTO
COPY OUTPUT RSS_SOTTOA
CHECKTYPE NORMAL
WARNING "Il conto deve essere un ricavo"
ADD RUN CG0 -0
END
STRING RSS_MATRICOLA 20
BEGIN
PROMPT 2 20 "Matricola "
FIELD S3[21,40]
END
STRING RSS_QUALIFICA 20
BEGIN
PROMPT 2 21 "Qualifica "
FIELD S3[41,60]
END
ENDPAGE
PAGE "Analitica" 11 60 14
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
STRING DLG_NULL 8
BEGIN
PROMPT 2 1 "Codice "
GROUP 10
FLAGS "D"
END
STRING DLG_NULL 50
BEGIN
PROMPT 2 2 "Descrizione "
GROUP 20
FLAGS "D"
END
ENDPAGE
ENDMASK
#include "vetbrss.h"
TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Risorse" 0 0 0 0
GROUPBOX DLG_NULL 75 8
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
STRING RSS_CODICE 16
BEGIN
PROMPT 2 1 "Codice "
FIELD CODTAB
KEY 1
USE RSS
FLAGS "U"
INPUT CODTAB RSS_CODICE
DISPLAY "Codice@16" CODTAB
DISPLAY "Denominazione@50" S0
OUTPUT RSS_CODICE CODTAB
OUTPUT RSS_RAGSOC S0
CHECKTYPE REQUIRED
MESSAGE COPY,10@
END
STRING RSS_RAGSOC 50
BEGIN
PROMPT 2 2 "Nome "
FIELD S0
KEY 2
USE RSS KEY 2
INPUT S0 RSS_RAGSOC
DISPLAY "Denominazione@50" S0
DISPLAY "Codice@16" CODTAB
COPY OUTPUT RSS_CODICE
CHECKTYPE REQUIRED
MESSAGE COPY,20@
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
BEGIN
PROMPT 2 3 "Tipo "
ITEM "|Nessuno"
MESSAGE HIDE,1@|HIDE,2@|ENABLE,RSS_RAGSOC
ITEM "D|Dipendente"
MESSAGE HIDE,1@|SHOW,2@|DISABLE,RSS_RAGSOC
ITEM "F|Fornitore"
MESSAGE SHOW,1@|HIDE,2@|DISABLE,RSS_RAGSOC
FIELD B0
END
NUMBER RSS_CODFORN 6
BEGIN
PROMPT 30 3 ""
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF RSS_CODFORN
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT RSS_CODFORN CODCF
OUTPUT RSS_RAGSOC RAGSOC
OUTPUT RSS_ADDRESS_F INDCF
OUTPUT RSS_CIVICO_F CIVCF
OUTPUT RSS_STATO_F STATOCF
OUTPUT RSS_COMUNE_F COMCF
CHECKTYPE REQUIRED
FIELD I6
WARNING "Codice fornitore inesistente"
ADD RUN CG0 -1
GROUP 1
END
NUMBER RSS_CODFIS 6
BEGIN
PROMPT 30 3 ""
USE LF_ANAG
INPUT TIPOA "F"
INPUT CODANAGR RSS_CODFIS
DISPLAY "Codice" CODANAGR
DISPLAY "Cognome@30" RAGSOC[1,30]
DISPLAY "Nome@20" RAGSOC[31,50]
OUTPUT RSS_CODFIS CODANAGR
OUTPUT RSS_RAGSOC RAGSOC
OUTPUT RSS_ADDRESS_C INDRES
OUTPUT RSS_CIVICO_C CIVRES
OUTPUT RSS_STATO_C STATORES
OUTPUT RSS_COMUNE_C COMRES
CHECKTYPE REQUIRED
WARNING "Codice persona inesistente"
FIELD I6
ADD RUN BA4 -1
GROUP 2
END
STRING RSS_ADDRESS_F 35
BEGIN
PROMPT 2 4 "Indirizzo "
FLAGS "D"
GROUP 1
END
STRING RSS_CIVICO_F 5
BEGIN
PROMPT 65 4 "N. "
FLAGS "D"
GROUP 1
END
NUMBER RSS_STATO_F 3
BEGIN
PROMPT 2 5 "Comune: Stato "
FLAGS "DZ"
USE %STA
INPUT CODTAB RSS_STATO_F
OUTPUT RSS_DESTATO_F S0
CHECKTYPE NORMAL
GROUP 1
END
STRING RSS_DESTATO_F 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
GROUP 1
END
STRING RSS_COMUNE_F 4
BEGIN
PROMPT 8 6 ":Codice "
FLAGS "DU"
USE LF_COMUNI
INPUT STATO RSS_STATO_F
INPUT COM RSS_COMUNE_F
OUTPUT RSS_DENCOM_F DENCOM
CHECKTYPE NORMAL
GROUP 1
END
STRING RSS_DENCOM_F 50
BEGIN
PROMPT 23 6 ""
FLAGS "D"
GROUP 1
END
STRING RSS_ADDRESS_C 35
BEGIN
PROMPT 2 4 "Indirizzo "
FLAGS "D"
GROUP 2
END
STRING RSS_CIVICO_C 5
BEGIN
PROMPT 65 4 "N. "
FLAGS "D"
GROUP 2
END
NUMBER RSS_STATO_C 3
BEGIN
PROMPT 2 5 "Comune: Stato "
FLAGS "DZ"
USE %STA
INPUT CODTAB RSS_STATO_C
OUTPUT RSS_DESTATO_C S0
CHECKTYPE NORMAL
GROUP 2
END
STRING RSS_DESTATO_C 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
GROUP 2
END
STRING RSS_COMUNE_C 4
BEGIN
PROMPT 8 6 ":Codice "
FLAGS "DU"
USE LF_COMUNI
INPUT STATO RSS_STATO_C
INPUT COM RSS_COMUNE_C
OUTPUT RSS_DENCOM_C DENCOM
CHECKTYPE NORMAL
GROUP 2
END
STRING RSS_DENCOM_C 50
BEGIN
PROMPT 23 6 ""
FLAGS "D"
GROUP 2
END
STRING RSS_TIPORIGA 4
BEGIN
PROMPT 1 8 "Tipo riga "
FIELD S8
FLAGS "U"
USE %TRI SELECT S7=="R"
INPUT CODTAB RSS_TIPORIGA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_TIPORIGA CODTAB
OUTPUT RSS_DESCRRIGA S0
CHECKTYPE REQUIRED
END
STRING RSS_DESCRRIGA 50
BEGIN
PROMPT 24 8 ""
USE %TRI KEY 2 SELECT S7=="R"
INPUT S0 RSS_DESCRRIGA
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT RSS_TIPORIGA
END
STRING RSS_CODIVA 4
BEGIN
PROMPT 1 9 "Codice IVA "
FIELD S3[1,4]
FLAGS "U"
USE %IVA
INPUT CODTAB RSS_CODIVA
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_CODIVA CODTAB
OUTPUT RSS_DESIVA S0
CHECKTYPE NORMAL
END
STRING RSS_DESIVA 50
BEGIN
PROMPT 24 9 ""
USE %IVA KEY 2
INPUT S0 RSS_DESIVA
DISPLAY "Descrizione@50" S0
DISPLAY "Codice " CODTAB
COPY OUTPUT RSS_CODIVA
CHECKTYPE NORMAL
END
STRING RSS_CODVAL 4
BEGIN
PROMPT 1 10 "Codice valuta "
FIELD S4
FLAGS "U"
USE %VAL
INPUT CODTAB RSS_CODVAL
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_CODVAL CODTAB
OUTPUT RSS_DESVAL S0
CHECKTYPE NORMAL
END
STRING RSS_DESVAL 50
BEGIN
PROMPT 24 10 ""
USE %VAL KEY 2
INPUT S0 RSS_DESVAL
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT RSS_CODVAL
CHECKTYPE NORMAL
END
STRING RSS_CODART 20
BEGIN
PROMPT 1 11 "Articolo (CI) "
USE LF_ANAMAG
INPUT CODART RSS_CODART
DISPLAY "Codice@20" CODART
DISPLAY "Descrizione@50" DESCR
OUTPUT RSS_CODART CODART
OUTPUT RSS_DESCART DESCR
CHECKTYPE NORMAL
FLAGS "U"
FIELD S2
END
STRING RSS_DESCART 50 34
BEGIN
PROMPT 40 11 ""
USE LF_ANAMAG KEY 2
INPUT DESCR RSS_DESCART
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice@20" CODART
COPY OUTPUT RSS_CODART
CHECKTYPE NORMAL
FLAGS "U"
END
LISTBOX RSS_CAMPI 15
BEGIN
PROMPT 1 12 "Campo default "
FIELD S6
ITEM "Q|Qta prezzo "
FLAGS "H"
END
CURRENCY RSS_PREZZO 15
BEGIN
PROMPT 1 12 "Prezzo "
FIELD R10
FLAGS "U"
END
NUMBER RSS_QTA 13 5
BEGIN
PROMPT 38 12 "Quantita' "
FIELD R1
END
STRING RSS_UM 2
BEGIN
PROMPT 67 12 "U.M. "
FIELD S7
FLAGS "U"
USE %UMS
INPUT CODTAB RSS_UM
DISPLAY "U.M." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_UM CODTAB
CHECKTYPE NORMAL
END
STRING RSS_PRESTAZ 8
BEGIN
PROMPT 1 13 "Prestazione per fatturazione "
USE PRS
INPUT CODTAB RSS_PRESTAZ
DISPLAY "Codice@8" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_PRESTAZ CODTAB
CHECKTYPE NORMAL
FIELD S5
END
BOOLEAN RSS_MRP_ATTIVO
BEGIN
PROMPT 1 14 "@bCollegamento M.R.P.:"
MESSAGE FALSE CLEAR,9@
MESSAGE TRUE ENABLE,9@
END
STRING RSS_IMPIANTO 5
BEGIN
PROMPT 25 14 "Impianto "
FIELD S3[5,9]
USE IMP
INPUT CODTAB RSS_IMPIANTO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_IMPIANTO CODTAB
GROUP 9
END
STRING RSS_LINEA 5
BEGIN
PROMPT 45 14 "Linea "
FIELD S3[10,14]
USE LNP
INPUT CODTAB RSS_LINEA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_LINEA CODTAB
GROUP 9
END
NUMBER RSS_GRUPPOA 3
BEGIN
PROMPT 2 15 "Conto acquisti "
FIELD I3
END
NUMBER RSS_CONTOA 3
BEGIN
PROMPT 22 15 ""
FIELD I4
END
NUMBER RSS_SOTTOA 6
BEGIN
PROMPT 28 15 ""
FIELD I5
USE LF_PCON SELECT SOTTOCONTO!=""
INPUT GRUPPO RSS_GRUPPOA
INPUT CONTO RSS_CONTOA
INPUT SOTTOCONTO RSS_SOTTOA
DISPLAY "Gruppo@3" GRUPPO
DISPLAY "Conto@3" CONTO
DISPLAY "Sottoconto@6" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT RSS_GRUPPOA GRUPPO
OUTPUT RSS_CONTOA CONTO
OUTPUT RSS_SOTTOA SOTTOCONTO
OUTPUT RSS_DESCRCONTOA DESCR
CHECKTYPE NORMAL
WARNING "Sottoconto errato"
ADD RUN CG0 -0
END
STRING RSS_DESCRCONTOA 50 35
BEGIN
PROMPT 39 15 ""
FLAG "U"
USE LF_PCON KEY 2 SELECT SOTTOCONTO!=""
INPUT DESCR RSS_DESCRCONTOA
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo@3" GRUPPO
DISPLAY "Conto@3" CONTO
DISPLAY "Sottoconto@6" SOTTOCONTO
COPY OUTPUT RSS_SOTTOA
CHECKTYPE NORMAL
WARNING "Il conto deve essere un ricavo"
ADD RUN CG0 -0
END
STRING RSS_TIPOSTRA1 2
BEGIN
PROMPT 1 17 "Tipo ora straordinaria 1 "
USE &CIORE
INPUT CODTAB RSS_TIPOSTRA1
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT RSS_TIPOSTRA1 CODTAB
CHECKTYPE NORMAL
FIELD S9
END
NUMBER RSS_DOPOSTRA1 2
BEGIN
PROMPT 41 17 "dopo ore "
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
ENDPAGE
PAGE "Analitica" 11 60 14
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 0 ""
FLAGS "R"
END
STRING DLG_NULL 8
BEGIN
PROMPT 2 1 "Codice "
GROUP 10
FLAGS "D"
END
STRING DLG_NULL 50
BEGIN
PROMPT 2 2 "Descrizione "
GROUP 20
FLAGS "D"
END
ENDPAGE
ENDMASK

View File

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

View File

@ -209,7 +209,7 @@ END
BOOLEAN F_MOVMAG
BEGIN
PROMPT 2 14 "Mov. mag. a partire dallo stato "
PROMPT 2 14 "Mov. magazzino"
FIELD B1
MESSAGE FALSE CLEAR,1@
MESSAGE TRUE ENABLE,1@
@ -219,7 +219,7 @@ END
STRING F_STATO_MOV_I 1
BEGIN
PROMPT 38 14 ""
PROMPT 24 14 "dallo stato "
FIELD S7
USE %STD
INPUT CODTAB F_STATO_MOV_I
@ -1222,14 +1222,14 @@ BEGIN
FIELD S11[5,5]
END
GROUPBOX DLG_NULL 42 3
GROUPBOX DLG_NULL 45 3
BEGIN
PROMPT 41 1 "@bIntra"
PROMPT 38 1 "@bIntra"
END
STRING F_NATURA 1
BEGIN
PROMPT 42 2 "Natura transazione "
PROMPT 39 2 "Natura transazione "
FLAGS "U"
USE %INT
INPUT CODTAB F_NATURA
@ -1256,7 +1256,7 @@ BEGIN
FIELD B11
END
GROUPBOX DLG_NULL 78 5
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 12 "@bElaborazioni automatiche"
END
@ -1336,6 +1336,29 @@ BEGIN
CHECKTYPE NORMAL
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

View File

@ -6,7 +6,7 @@ TOOLBAR "Toolbar" 0 0 0 2
ENDPAGE
PAGE "Unita' di misura " 0 0 0 0
PAGE "Unità di misura " 0 0 0 0
GROUPBOX DLG_NULL 75 7
BEGIN
@ -16,7 +16,7 @@ END
STRING F_UM 2
BEGIN
PROMPT 2 2 "Unita' di misura "
PROMPT 2 2 "Unità di misura "
FIELD CODTAB
KEY 1
FLAG "U"
@ -44,7 +44,7 @@ END
STRING F_UMR 2
BEGIN
PROMPT 2 8 "Unita' di riferimento "
PROMPT 2 8 "Unità di riferimento "
FIELD S7
FLAG "U"
USE %UMS
@ -60,7 +60,7 @@ BEGIN
PROMPT 2 10 "Fatt.conversione al riferim."
FIELD R10
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
BOOLEAN F_ROUND
@ -78,6 +78,21 @@ BEGIN
FIELD I0
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
ENDMASK