Patch level : 12.00

Files correlati     :

Bug                 :
Collegamento a fepa
This commit is contained in:
Alessandro Bonazzi 2025-04-27 09:56:40 +02:00
parent 4f27905281
commit 0b300350ac
520 changed files with 135335 additions and 0 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
src/ve01/PersDocVendite.DOC Normal file

Binary file not shown.

266
src/ve01/bolacq.src Normal file
View File

@ -0,0 +1,266 @@
#include "veini.h"
#include "veuml.h"
#include "verig.h"
// Esempio di profilo documento : Profilo Bolla Vendita
[MAIN]
// Descrizione a caratteri del documento
TYPE=Bolla di vendita
// Dove sono le risorse per il documento
MSKFILE=BOLACQ
FRMFILE=VEBOL.FRM
// modifica
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESIMB|SPESTRA|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI
CALCOLI=*
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=F
PREZZO=ULTCOS1
//modulo di riferimento
MODULE=ve
Title(1)=Fornitore
Title(2)=Pagamenti
Title(3)=CUP
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_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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_NORMALE
PATIPOCON = S_NORMALE
CONTSEP = S_NORMALE
CODVAL1 = S_NORMALE
CODVAL2 = S_NORMALE
NOME_VAL1 = S_NORMALE
NOME_VAL2 = S_NORMALE
CAMBIO = S_NORMALE
DATA_CAMBIO1 = S_NORMALE
DATA_CAMBIO2 = S_NORMALE
CODLIN = S_NASCOSTO
DESLIN = S_NASCOSTO
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_NASCOSTO
CODINDSP = S_NASCOSTO
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
CODAGVIS = S_NASCOSTO
DESAGVIS = S_NASCOSTO
CODAG = S_NASCOSTO
DESAG = S_NASCOSTO
CODZON = S_NASCOSTO
DESZON = S_NASCOSTO
CODSPMEZZO = S_NASCOSTO
DESSPMEZZO = S_NASCOSTO
CODPORTO = S_NASCOSTO
DESPORTO = S_NASCOSTO
CODNOTESP1 = S_NASCOSTO
DESNOTESP1 = S_NASCOSTO
CODNOTESP2 = S_NASCOSTO
DESNOTESP2 = S_NASCOSTO
CAUSTRASP = S_NASCOSTO
DENCAUSTRASP = S_NASCOSTO
CODVETT1 = S_NASCOSTO
CODVETT2 = S_NASCOSTO
CODVETT3 = S_NASCOSTO
NOMEVETT1 = S_NASCOSTO
NOMEVETT2 = S_NASCOSTO
NOMEVETT3 = S_NASCOSTO
NCOPIE = S_NASCOSTO
GRPARTENZA = S_NASCOSTO
DATAPART = S_NASCOSTO
ORAPART = S_NASCOSTO
IMPPAGATO = S_NASCOSTO
ACCSALDO = S_NASCOSTO
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
DATACONS = S_NASCOSTO
ASPBENI1 = S_NASCOSTO
DESCRBENI1 = S_NASCOSTO
ASPBENI2 = S_NASCOSTO
DESCRBENI2 = S_NASCOSTO
IMPNETTI = S_NASCOSTO
RAGGR = S_NORMALE
RAGGREFF = S_NORMALE
SPESEINC = S_NORMALE
ADDBOLLI = S_NORMALE
UMTARA = S_NASCOSTO
TARA = S_NASCOSTO
DESUMTARA = S_NASCOSTO
UMPNETTO = S_NASCOSTO
PNETTO = S_NASCOSTO
DESUMPNETTO = S_NASCOSTO
NCOLLI = S_NASCOSTO
CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO
BLANK = S_DISABILITATO
CODNOTE = S_NASCOSTO
NOTECLI = S_NASCOSTO
CUP = S_NORMALE
DESCRCUP = S_NORMALE
CIG = S_NORMALE
DESCRCIG = S_NORMALE
CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT]
[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_CAUS
Col(19)=FR_CODMAGC
Col(20)=FR_CODDEPC
Col(21)=FR_TIPORIGA
[RIGHE]
[HANDLERS]
// Handler(0)=F_ORAPART|1
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NASCOSTO
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NASCOSTO
900 = S_NASCOSTO
1000 = S_NORMALE
1100 = S_NASCOSTO
1200 = S_NASCOSTO
1210 = S_NASCOSTO
1300 = S_NASCOSTO
1400 = S_NASCOSTO
1500 = S_NASCOSTO
1600 = S_NASCOSTO
1700 = S_NASCOSTO
1800 = S_NASCOSTO
1900 = S_NASCOSTO
2000 = S_NASCOSTO
2100 = S_NASCOSTO
2200 = S_NASCOSTO
2300 = S_NORMALE
2400 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
4000 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=15
1=100
2=200
3=400
4=500
5=600
6=700
7=800
8=810
9=820
10=1000
11=2300
12=2400
13=2900
14=3000
15=3100

BIN
src/ve01/bolla.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

290
src/ve01/bollac.src Normal file
View File

@ -0,0 +1,290 @@
#include "veini.h"
#include "veuml.h"
#include "verig.h"
// Esempio di profilo documento : Profilo Bolla Vendita
[MAIN]
// Descrizione a caratteri del documento
TYPE=Bolla di vendita
// Dove sono le risorse per il documento
// modifica
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=ve
Title(1)=Cliente
Title(2)=Pagamenti
Title(3)=Ind.Spedizione
Title(4)=Spedizione
Title(5)=Fatturazione elettronica
Title(6)=Righe
Title(7)=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_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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_NORMALE
PATIPOCON = S_NORMALE
CONTSEP = S_NORMALE
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_NORMALE
ACCSALDO = S_NASCOSTO
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
DATACONS = S_NASCOSTO
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
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = 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_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
1000 = S_NORMALE
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_NASCOSTO
2100 = S_NORMALE
2200 = S_NASCOSTO
2300 = S_NORMALE
2400 = S_NORMALE
2500 = S_NORMALE
2700 = S_NORMALE
2710 = S_NORMALE
2800 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
4000 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=31
1=100
2=2500
3=200
4=300
5=400
6=500
7=600
8=700
9=2400
10=2300
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
31=3100

210
src/ve01/bollaf.src Normal file
View File

@ -0,0 +1,210 @@
#include "veini.h"
#include "veuml.h"
#include "verig.h"
// Esempio di profilo documento : Profilo Bolla Fornitore
[MAIN]
// Descrizione a caratteri del documento
TYPE=Bolla a fornitore
// Dove sono le risorse per il documento
MSKFILE=BOLLAF
FRMFILE=BOLLAF.FRM
// modifica
CAMPICALC=TOTMER
CALCOLI=*
TOTALE=
BASESCONTO=
SPESE=
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=F
//modulo di riferimento
MODULE=ve
Title(1)=Fornitore
Title(2)=Spedizione
Title(3)=Magazzino
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_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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
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
CATVEN = S_NORMALE
DESCATVEN = S_DISABILITATO
CODLIST = S_NORMALE
DESLIST = S_NORMALE
CODCONT = S_NORMALE
DESCONT = S_NORMALE
CODCAMP = S_NORMALE
DESCAMP = 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_NASCOSTO
NUMDOCRIF = S_NASCOSTO
CODSPMEZZO = S_OBBLIGATORIO
DESSPMEZZO = S_DISABILITATO
CODPORTO = S_OBBLIGATORIO
DESPORTO = S_DISABILITATO
CODNOTESP1 = S_NORMALE
DESNOTESP1 = S_DISABILITATO
CODNOTESP2 = S_NASCOSTO
DESNOTESP2 = S_NASCOSTO
CAUSTRASP = S_OBBLIGATORIO
DENCAUSTRASP = S_DISABILITATO
CODVETT1 = S_OBBLIGATORIO
CODVETT2 = S_NASCOSTO
CODVETT3 = S_NASCOSTO
NOMEVETT1 = S_DISABILITATO
NOMEVETT2 = S_NASCOSTO
NOMEVETT3 = S_NASCOSTO
NCOPIE = S_OBBLIGATORIO
GRPARTENZA = S_NORMALE
DATAPART = S_NORMALE
ORAPART = S_NORMALE
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
DATACONS = S_NASCOSTO
ASPBENI1 = S_OBBLIGATORIO
DESCRBENI1 = S_DISABILITATO
ASPBENI2 = S_NASCOSTO
DESCRBENI2 = S_NASCOSTO
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
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT]
Default(0)=F_CAUSTRASP|RES
[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_LORDO
Col(11) = FR_PREZZO
Col(12) = FR_CODIVA
Col(13)= FR_NCOLLI
Col(14)= FR_PNETTO
Col(15)= FR_TARA
Col(16) = FR_CAUS
Col(17) = FR_CODMAGC
Col(18) = FR_CODDEPC
Col(19) = FR_TIPORIGA
[RIGHE]
[HANDLERS]
// Handler(0) = F_ORAPART|1
[PROFILOGRUPPO]
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
900 = S_NORMALE
1000 = S_NASCOSTO
1200 = S_NORMALE
1210 = S_NORMALE
1300 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NORMALE
1700 = S_NORMALE
1900 = S_NORMALE
2000 = S_NASCOSTO
2100 = S_NORMALE
2700 = S_NORMALE
2710 = S_NORMALE
2800 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=24
1=100
2=200
3=300
4=800
5=810
6=820
7=900
8=1000
9=1200
10=1210
11=1300
12=1400
13=1700
14=1900
15=2000
16=2100
17=2700
18=2710
19=2800
20=2900
21=1500
22=1600
23=3000
24=3100

31
src/ve01/clifor.cpp Normal file
View File

@ -0,0 +1,31 @@
#include <applicat.h>
#include <modaut.h>
#include "velib.h"
#include "condv.h"
#include "../li/letint.h"
#include "../cg/cfban.h"
TOccasionale::TOccasionale() : TRectype(LF_OCCAS)
{ }
TOccasionale::TOccasionale(const TRectype& r) : TRectype(r)
{ }
TOccasionale::TOccasionale(const TOccasionale& r) : TRectype(r)
{ }
TRectype& TOccasionale::operator=(const TRectype& r)
{
return TRectype::operator=(r);
}
TOccasionale& TOccasionale::operator=(const TOccasionale& r)
{
TRectype::operator=(r);
return *this;
}
TOccasionale::~TOccasionale()
{ }

78
src/ve01/clifor.h Normal file
View File

@ -0,0 +1,78 @@
#ifndef __CLIFOR_H
#define __CLIFOR_H
#ifndef __MULTIREC_H
#include <multirec.h>
#endif
#ifndef __CLIFO_H
#include <clifo.h>
#endif
#ifndef __CFVEN_H
#include <cfven.h>
#endif
#ifndef __INDSP_H
#include <indsp.h>
#endif
#ifndef __OCCAS_H
#include <occas.h>
#endif
class TDocumento;
class TOccasionale : public TRectype
{
public:
const TString& codice() const { return get(OCC_CFPI); }
TRectype& operator = (const TRectype& r);
TOccasionale& operator = (const TOccasionale& r);
TOccasionale();
TOccasionale(const TRectype& r);
TOccasionale(const TOccasionale& r);
virtual ~TOccasionale();
};
class TCli_for : public TMultiple_rectype
{
TRectype _ven_rec;
TRectype _letint;
TDate _last_data;
bool _use_lettere;
bool _extended;
bool _lettera_found;
protected:
virtual int write_rewrite(TBaseisamfile& f, bool re = FALSE) const;
void init();
public:
bool read_lettera(const TDate & data, bool extended = false);
bool occasionale() const { return get_bool(CLI_OCCAS); }
TRectype& vendite() const;
bool use_lettere() const { return _use_lettere;}
const TRectype & lettera() const { return _letint;}
char tipo() const { return get_char(CLI_TIPOCF); }
long codice() const { return get_long(CLI_CODCF); }
bool ok() const { return !empty(); }
virtual int read(const TRectype& rec, word op = _isequal, word lockop = _nolock);
int read(char tipo, long codice, word op = _isequal, word lockop = _nolock);
virtual int remove(TBaseisamfile& f) const;
void cli2doc(TDocumento& doc);
const TString& find_listino_al(const TDate& datadoc) const;
const TString & get_iban();
TToken_string & get_ban_pres(int nprog = 1);
TCli_for(char tipo = ' ', long codice = 0L);
TCli_for(const TRectype & rec);
TCli_for(const TCli_for & c);
virtual ~TCli_for();
};
#endif

28
src/ve01/condv.h Normal file
View File

@ -0,0 +1,28 @@
#ifndef __CONDV_H
#define __CONDV_H
#define CONDV_TIPO "TIPO"
#define CONDV_CATVEN "CATVEN"
#define CONDV_TIPOCF "TIPOCF"
#define CONDV_CODCF "CODCF"
#define CONDV_COD "COD"
#define CONDV_DESCR "DESCR"
#define CONDV_CODVAL "CODVAL"
#define CONDV_CAMBIO "CAMBIO"
#define CONDV_CONTROEURO "CONTROEURO"
#define CONDV_DATACAM "DATACAM"
#define CONDV_VALIN "VALIN"
#define CONDV_VALFIN "VALFIN"
#define CONDV_IMPLORDI "IMPLORDI"
#define CONDV_GESTUM "GESTUM"
#define CONDV_GESTSCAGL "GESTSCAGL"
#define CONDV_GESTSCO "GESTSCO"
#define CONDV_OBBLIG "OBBLIG"
#define CONDV_CODLISSUCC "CODLISSUCC"
#define CONDV_SEQRIC "SEQRIC"
#define CONDV_DECIMALI "DECIMALI"
#define CONDV_FATHCATVEN "FATHCATVEN"
#define CONDV_FATHCOD "FATHCOD"
#define CONDV_ARROTONDA "ARROTONDA"
#endif

135
src/ve01/dynarel.cpp Normal file
View File

@ -0,0 +1,135 @@
#ifndef __LFFILES_H
#include "lffiles.h"
#endif
#ifndef __DYNAREL_H
#include "dynarel.h"
#endif
TField_array::TField_array( const TRectype& rec )
{
int last = rec.items( );
for( int i = 0; i < last; i ++ )
{
add( rec.fieldname( i ), rec.get( rec.fieldname( i ) ) );
}
}
const TString& TField_array::get( const TString& nome_campo )
{
return ( TString& )(*this)[ nome_campo ];
}
int TField_array::get_int( const TString& nome_campo )
{
return atoi( get( nome_campo ) );
}
long TField_array::get_long( const TString& nome_campo )
{
return atoi( get( nome_campo ) );
}
bool TField_array::get_bool( const TString& nome_campo )
{
TString p( get( nome_campo ) );
char fc = toupper( p[ 0 ] );
return ( fc == 'T' || fc == 'Y' || fc == 'S' || fc == 'X' );
}
real TField_array::get_real( const TString& nome_campo )
{
real r( get( nome_campo ) );
return r;
}
TDyna_rel::TDyna_rel( const int main_file_index )
{
_main_file = main_file_index;
load_file( main_file_index );
};
bool TDyna_rel::file_added( const int file_index )
{
return ( &_rules[ file_index ] != NULL );
}
bool TDyna_rel::file_loaded( const int file_index )
{
return ( &_file_array[ file_index ] != NULL );
}
void TDyna_rel::load_file( const int file_index )
{
CHECK( file_loaded( file_index ), "Utilizzo di un file non aggiunto alla dyna_rel!" );
TToken_string rule( ( ( TString& ) _rules[ file_index ] ) );
// Il file principale è già caricato
TLocalisamfile to( file_index );
to.setkey( _keys[ file_index ] );
to.curr( ).zero( );
int last = rule.items( );
// Carico i valori per la ricerca
for( int i = 0; i < last; i += 3 )
to.curr( ).put( rule.get( i ), get( ( rule.get_int( i + 1 ) == 0 ? rule.get_int( i + 1 ) : _main_file ), rule.get( i + 2 ) ) );
to.read ( _isequal );
// Se il posizionamento riesce ...
if( !to.bad( ) )
{
// Carica tutti i campi
_file_array.add( new TField_array( to.curr( ) ), file_index );
}
}
void TDyna_rel::add_file( const int file_index, const TToken_string rule, const int key )
{
_rules[ file_index ] = rule;
_keys[ file_index ] = key;
};
const TString& TDyna_rel::get( const int file_index, const TString16 nome_campo )
{
CHECK( file_loaded( file_index ), "Tentativo di accesso ad un campo di un file non caricato!" );
return ( file( file_index ).get( nome_campo ) );
};
int TDyna_rel::get_int( const int file_index, const TString16 nome_campo )
{
CHECK( file_loaded( file_index ), "Tentativo di accesso ad un campo di un file non caricato!" );
return ( file( file_index ).get_int( nome_campo ) );
};
long TDyna_rel::get_long( const int file_index, const TString16 nome_campo )
{
CHECK( file_loaded( file_index ), "Tentativo di accesso ad un campo di un file non caricato!" );
return ( file( file_index ).get_long( nome_campo ) );
};
bool TDyna_rel::get_bool( const int file_index, const TString16 nome_campo )
{
CHECK( file_loaded( file_index ), "Tentativo di accesso ad un campo di un file non caricato!" );
return ( file( file_index ).get_bool( nome_campo ) );
};
real TDyna_rel::get_real( const int file_index, const TString16 nome_campo )
{
CHECK( file_loaded( file_index ), "Tentativo di accesso ad un campo di un file non caricato!" );
return ( file( file_index ).get_real( nome_campo ) );
};
class TCF : public TDyna_rel
{
public:
TCF( );
};
TCF::TCF( ) : TDyna_rel( LF_CLIFO )
{
add_file( LF_CFVEN, "", 1 );
}

63
src/ve01/dynarel.h Normal file
View File

@ -0,0 +1,63 @@
#ifndef __DYNAREL_H
#define __DYNAREL_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __ASSOC_H
#include <assoc.h>
#endif
#ifndef __UTILITY_H
#include <utility.h>
#endif
#include <stdlib.h>
#define MAX_FILES 100
class TField_array : public TAssoc_array
{
public:
const TString& get( const TString& nome_campo );
int get_int( const TString& nome_campo );
long get_long( const TString& nome_campo );
bool get_bool( const TString& nome_campo );
real get_real( const TString& nome_campo );
TField_array( const TRectype& rec );
};
class TDyna_rel : public TObject
{
private:
int _main_file;
TArray _file_array;
TString_array _rules;
int _keys[ MAX_FILES ];
protected:
bool file_added( const int file_index );
bool file_loaded( const int file_index );
void load_file( const int file_index );
public:
TDyna_rel( const int main_file_index );
void add_file( const int file_index, const TToken_string rule, const int key );
TField_array& file( const int file_index ){ return ( TField_array& )_file_array[ file_index ]; };
const TString& get( const int file_index, const TString16 nome_campo );
int get_int( const int file_index, const TString16 nome_campo );
long get_long( const int file_index, const TString16 nome_campo );
bool get_bool( const int file_index, const TString16 nome_campo );
real get_real( const int file_index, const TString16 nome_campo );
};
#endif

329
src/ve01/excluded.fld Normal file
View File

@ -0,0 +1,329 @@
// Campi messi da parte per una gestione futura degli agenti/provvigioni in magazzino
BOOLEAN F_GESARCHPROV
BEGIN
PROMPT 2 4 "Gestione archivio provvigioni "
FIELD AGEARCPROVV
GROUP 1
END
STRING F_ARCHPROV1 4
BEGIN
PROMPT 2 5 "Chiavi archivio provvigioni "
FIELD AGEKEYPROVV[1]
GROUP 1
END
STRING F_ARCHPROV2 4
BEGIN
PROMPT 2 6 " "
FIELD AGEKEYPROVV[2]
GROUP 1
END
STRING F_ARCHPROV3 4
BEGIN
PROMPT 2 7 " "
FIELD AGEKEYPROVV[3]
GROUP 1
END
STRING F_ARCHPROV4 4
BEGIN
PROMPT 2 8 " "
FIELD AGEKEYPROVV[4]
GROUP 1
END
LIST F_TIPOLIQPROV 41
BEGIN
PROMPT 2 9 "Tipo liquidazione provvigione "
ITEM "F|Liquidate sul valore del fatturato "
ITEM "M|Liq. sul valore fatt. e sul valore merce "
FIELD AGELIQPROVV
GROUP 1
END
////////////////////////////////////////////////////////
// campi messi da parte per futura gestione magazzino
////////////////////////////////////////////////////////
GROUPBOX DLG_NULL 78 18
BEGIN
PROMPT 0 0 "Personalizzazione procedura"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 1 "Descr. Cod. "
END
TEXT DLG_NULL
BEGIN
PROMPT 14 1 "Descrizione "
END
TEXT DLG_NULL
BEGIN
PROMPT 48 1 "Lungh. campi "
END
TEXT DLG_NULL
BEGIN
PROMPT 63 1 "Tipo campi "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 2 "Cod. art. "
END
STRING DLG_NULL 30
BEGIN
PROMPT 14 2 ""
FIELD CODARTDES
END
STRING DLG_NULL 2
BEGIN
PROMPT 48 2 ""
FIELD CODARTLUN[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 52 2 ""
FIELD CODARTLUN[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 56 2 ""
FIELD CODARTLUN[3]
END
STRING DLG_NULL 2
BEGIN
PROMPT 63 2 ""
FIELD CODARTPIC[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 67 2 ""
FIELD CODARTPIC[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 71 2 ""
FIELD CODARTPIC[3]
END
TEXT DLG_NULL
BEGIN
PROMPT 2 3 "I° indice "
END
STRING DLG_NULL 30
BEGIN
PROMPT 14 3 ""
FIELD INDARTDES[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 48 3 ""
FIELD INDARTLUN[1]
END
STRING DLG_NULL 2
BEGIN
PROMPT 63 3 ""
FIELD INDARTPIC[1]
END
TEXT DLG_NULL
BEGIN
PROMPT 2 4 "II° indice "
END
STRING DLG_NULL 30
BEGIN
PROMPT 14 4 ""
FIELD INDARTDES[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 48 4 ""
FIELD INDARTLUN[2]
END
STRING DLG_NULL 2
BEGIN
PROMPT 63 4 ""
FIELD INDARTPIC[2]
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Gestione articoli in lingua "
FIELD ARTGESLIN
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 7 "Codice lingua n.1 "
FIELD ARTCODLIN[1]
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 8 "Codice lingua n.2 "
FIELD ARTCODLIN[2]
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 9 "Codice lingua n.3 "
FIELD ARTCODLIN[3]
END
NUMBER DLG_NULL 1
BEGIN
PROMPT 5 10 "Codice lingua n.4 "
FIELD ARTCODLIN[4]
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 11 "Gestione più magazzini "
FIELD ARTGESMAG
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 12 "Gestione depositi "
FIELD ARTGESDEP
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 13 "Gestione commesse "
FIELD ARTGESCOMM
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 14 "Gestione quantita' in decimali "
FIELD ARTGESQDEC
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 15 "Gestione valuta "
FIELD ARTGESVAL
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 16 "Ripetizione primo indice "
FIELD ARTRIPIND
END
GROUPBOX DLG_NULL 78 18
BEGIN
PROMPT 0 0 "Gestione archivio articoli"
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 1 "Gestione descrizioni estese "
FIELD ARTGESDESCEST
END
LIST DLG_NULL 35
BEGIN
PROMPT 2 2 "Gestione art. per lotti "
ITEM "N|Non gestire"
ITEM "D|Gestiti con lotto data "
ITEM "Q|Gestiti con lotto descr. qualità "
FIELD ARTGESLOTTI
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 3 "Gestione articoli per taglia "
FIELD ARTGESTAGLIA
END
STRING DLG_NULL 10
BEGIN
PROMPT 2 4 "Descrizione campi chiave "
FIELD ARTDESCHI[1]
END
STRING DLG_NULL 10
BEGIN
PROMPT 2 5 "Descrizione campi chiave "
FIELD ARTDESCHI[2]
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 6 "Gestione piu' unita' di misura "
FIELD ARTGESUM
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 7 "Gestione secondo codice iva "
FIELD ARTGESCODIVA
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 8 "Gestione campi peso lordo/netto "
FIELD ARTGESPLN
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 9 "Gestione campo aspetto dei beni "
FIELD ARTGESASPBEN
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 10 "Gestione campo codice gruppo articolo "
FIELD ARTGESCODGR
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 11 "Gestione campo distinta base "
FIELD ARTGESDB
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 12 "Gestione campo categorie vendite "
FIELD ARTGESCATVEN
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 13 "Gestione campo categorie acquisti "
FIELD ARTGESCATACQ
END
BOOLEAN DLG_NULL
BEGIN
PROMPT 2 14 "Gestione codice fornitore "
FIELD ARTGESCODFOR
END

237
src/ve01/fatacq.src Normal file
View File

@ -0,0 +1,237 @@
#include "veini.h"
#include "veuml.h"
#include "verig.h"
[MAIN]
// Descrizione a caratteri del documento
TYPE=Fattura di aquisto
// Dove sono le risorse per il documento
MSKFILE=fatacq
FRMFILE=VEFAT.FRM
// modifica
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|SPESIMB|SPESTRA|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|PROVVD
CALCOLI=*
TOTPROVV =
// modifica
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=F
PREZZO=ULTCOS1
SHEET_LINE=9
//modulo di riferimento
MODULE=ve
Title(1)=Fornitore
Title(2)=Pagamenti
Title(3)=C.U.P.
Title(4)=Righe
Title(5)=Totali
[PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
// 1|Prompt|Help|Warning
OCCASEDIT = S_NORMALE
OCFPI = S_DISABILITATO
COFI = S_NORMALE
STATOPAIV = S_NORMALE
PAIVA = S_NORMALE
LIQDIFF = S_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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_NORMALE
PATIPOCON = S_NORMALE
CONTSEP = S_NORMALE
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
DATADOCRIFN = S_NORMALE
CODNUMRIFN = S_NORMALE
ANNORIFN = S_NORMALE
NUMDOCRIFN = S_NORMALE
CODAGVIS = S_NORMALE
DESAGVIS = S_NORMALE
CODAG = S_NORMALE
DESAG = S_NORMALE
CODZON = S_NORMALE
DESZON = S_NORMALE
CODPORTO = S_NORMALE
DESPORTO = S_NORMALE
CAUSTRASP = S_NORMALE
DENCAUSTRASP = S_NORMALE
CODVETT1 = S_NORMALE
CODVETT2 = S_NASCOSTO
CODVETT3 = S_NASCOSTO
NOMEVETT1 = S_NORMALE
NOMEVETT2 = S_NASCOSTO
NOMEVETT3 = S_NASCOSTO
NCOPIE = S_NASCOSTO
IMPPAGATO = S_NORMALE
ACCSALDO = S_NORMALE
SCONTOFATT = S_NORMALE
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
IMPNETTI = S_NASCOSTO
RAGGREFF = S_NORMALE
SPESEINC = S_NORMALE
ADDBOLLI = S_NORMALE
BLANK = S_DISABILITATO
CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO
CUP = S_NORMALE
DESCRCUP = S_NORMALE
CIG = S_NORMALE
DESCRCIG = S_NORMALE
CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
GRDATERIF = S_NORMALE
DATA_INIRIF = S_NORMALE
DATA_FINRIF = S_NORMALE
[DEFAULT]
[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_REVCHARGE
Col(19) = FR_TIPODET
Col(20) = FR_CAUS
Col(21) = FR_CODMAGC
Col(22) = FR_CODDEPC
Col(23) = FR_TIPORIGA
Col(24) = FR_JOLLY1|Gruppo
Col(25) = FR_JOLLY2|Conto
Col(26) = FR_JOLLY3|Sottoconto
Col(27) = FR_JOLLY4|Descrizione
[RIGHE]
[HANDLERS]
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
1010 = S_NORMALE
1100 = S_NORMALE
1210 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NASCOSTO
1800 = S_NORMALE
1900 = S_NORMALE
2200 = S_NASCOSTO
2300 = S_NORMALE
2400 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
3500 = S_NORMALE
4000 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=17
1=1010
2=100
3=200
4=400
5=500
6=600
7=700
8=800
9=810
10=820
11=830
12=1400
13=1900
14=2900
15=3000
16=3100
17=3500

88
src/ve01/fatacqb.dat Normal file
View File

@ -0,0 +1,88 @@
LORDO|4||Lordo|5
TIPORIGA|2|2|Tipo riga|2
CODMAG[1,3]|2|3|Mag. |3
CODMAG[4,5]|2|2|Dep.|2
CODART|2|20|Codice Articolo|20
CODG1|2|9|Codice\nLivello 1|9
CODG2|2|9|Codice\nLivello 2|9
CODG3|2|9|Codice\nLivello 3|9
CODG4|2|9|Codice\nLivello 4|9
DESCR|2|50|Descrizione|50
UMQTA|2|2|UM|2
QTA|3|1305|Quantita'|11
PREZZO|3|1802|Prezzo|18
QTAEVASA|3|1305|Quantita'\nEvasa|11
RIGAEVASA|5||Evasa|1
TARA|3|1502|Tara|15
PNETTO|3|1502|Peso Netto|15
NCOLLI|3|7|N.Colli|7
DAEVADERE|4||Da evadere|1
SCONTO|2|25|Sconto|25
PERCPROV|3|502|Perc.\nProvv.|5
IMPFISUN|4||Imp.Fisso unitario|1
IMPFISSO|3|1802|Importo Fisso|18
CODIVA|2|4|Codice\nIVA|4
ADDIVA|4||Addebito IVA|1
ASPBENI|2|3|Aspetto beni|3
CODCAUS|2|3|Causale\nMagazzino|12
CODMAGC[1,3]|2|3|Magazzino\nCollegato|9
CODMAGC[4,5]|2|2|Deposito\nCollegato|9
DATACONS|4|10|Data\nconsegna|10
CODARTMAG|2|20|Cod. Art. Mag.|20
CHECKED|4|10|Controllato|11
QTAGG1|3|1305|Quantita'\nagg. 1|13
QTAGG2|3|1305|Quantita'\nagg. 2|13
QTAGG3|3|1305|Quantita'\nagg. 3|13
QTAGG4|3|1305|Quantita'\nagg. 4|13
QTAGG5|3|1305|Quantita'\nagg. 5|13
IMPIANTO|2|5|Impianto|8
LINEA|2|5|Linea|5
CDC1|2|20|CDC 1|20
CDC2|2|20|CDC 1|20
CDC3|2|20|CDC 1|20
CDC4|2|20|CDC 1|20
CDC5|2|20|CDC 1|20
CDC6|2|20|CDC 1|20
CDC7|2|20|CDC 1|20
CDC8|2|20|CDC 1|20
CDC9|2|20|CDC 1|20
CDC10|2|20|CDC 1|20
CDC11|2|20|CDC 1|20
CDC12|2|20|CDC 1|20
CODAGG1|2|20|Codice aggiuntivo 1|20
CODAGG2|2|20|Codice aggiuntivo 2|20
DETR|2|1|Detraibilità|12
GRUPPO|1|3|Gruppo|6
CONTO|1|3|Conto|5
SOTTOCONTO|1|6|Sottoconto|9
JOLLY4|2|20|Jolly|20
JOLLY5|2|20|Jolly|20
JOLLY6|2|20|Jolly|20
JOLLY7|2|20|Jolly|20
JOLLY8|2|20|Jolly|20
JOLLY9|2|20|Jolly|20
JOLLY10|2|20|Jolly|20
RIDPREZZO|3|18|Riduzione prezzo|18
PERCPROV|3|502|2a Perc.\nProvv.|5
CCON(1)|2|4|CONAI\nSottoc.1|4
PCON(1)|3|1305|CONAI\nPeso un.1|13
CCON(2)|2|4|CONAI\nSottoc.2|4
PCON(2)|3|1305|CONAI\nPeso un.2|13
CCON(3)|2|4|CONAI\nSottoc.3|4
PCON(3)|3|1305|CONAI\nPeso un.3|13
CCON(4)|2|4|CONAI\nSottoc.4|4
PCON(4)|3|1305|CONAI\nPeso un.4|13
CCON(5)|2|4|CONAI\nSottoc.5|4
PCON(5)|3|1305|CONAI\nPeso un.5|13
CCON(6)|2|4|CONAI\nSottoc.6|4
PCON(6)|3|1305|CONAI\nPeso un.6|13
CCON(6)|2|4|CONAI\nSottoc.7|4
PCON(7)|3|1305|CONAI\nPeso un.7|13
CCON(7)|2|4|CONAI\nSottoc.8|4
PCON(8)|3|1305|CONAI\nPeso un.8|13
CCON(8)|2|4|CONAI\nSottoc.9|4
PCON(9)|3|1305|CONAI\nPeso un.9|13
CCON(10)|2|4|CONAI\nSottoc.10|4
PCON(10)|3|1305|CONAI\nPeso un.10|13
REVCHARGE|4||Reverse charge|14

BIN
src/ve01/fattacc.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
src/ve01/fattura.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

297
src/ve01/fatturaa.src Normal file
View File

@ -0,0 +1,297 @@
#include "veini.h"
#include "verig.h"
#include "veuml.h"
// Esempio di profilo documento : Profilo Fattura Accompagnatoria
[MAIN]
// Descrizione a caratteri del documento
TYPE=Fattura accompagnatoria
// modifica
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|SPESIMB|SPESTRA|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
CALCOLI=*
TOTPROVV =
// modifica
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=C
//modulo di riferimento
MODULE=ve
Title(1)=Cliente
Title(2)=Pagamenti
Title(3)=Ind.Spedizione
Title(4)=Spedizione
Title(5)=Fatt.Elettronica
Title(6)=Righe
Title(7)=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_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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_NORMALE
PATIPOCON = S_NORMALE
CONTSEP = S_NORMALE
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
DATADOCRIFN = S_NORMALE
CODNUMRIFN = S_NORMALE
ANNORIFN = S_NORMALE
NUMDOCRIFN = S_NORMALE
CODAGVIS = S_NORMALE
DESAGVIS = S_NORMALE
CODAG = S_NORMALE
DESAG = 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_NASCOST
DESNOTESP2 = S_NASCOSTO
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_NASCOST
GRPARTENZA = S_NORMALE
DATAPART = S_NORMALE
ORAPART = S_NORMALE
IMPPAGATO = S_NORMALE
ACCSALDO = S_NORMALE
SCONTOFATT = S_NORMALE
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
DATACONS = S_NASCOSTO
ASPBENI1 = S_OBBLIGATORIO
DESCRBENI1 = S_NORMALE
ASPBENI2 = S_NASCOSTO
DESCRBENI2 = S_NASCOSTO
IMPNETTI = S_NASCOSTO
RAGGREFF = S_NORMALE
SPESEINC = S_NORMALE
ADDBOLLI = S_NORMALE
UMTARA = S_NORMALE
TARA = S_NORMALE
DESUMTARA = S_NASCOST
UMPNETTO = S_NORMALE
PNETTO = S_NORMALE
DESUMPNETTO = S_NASCOSTO
NCOLLI = S_NORMALE
BLANK = S_DISABILITATO
CODNOTE = S_NORMALE
NOTECLI = S_NOCHECK
CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO
CUP = S_NORMALE
DESCRCUP = S_NORMALE
CIG = S_NORMALE
DESCRCIG = S_NORMALE
CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
NON_INVIO_XML = S_NORMALE
GRDATERIF = S_NORMALE
DATA_INIRIF = S_NORMALE
DATA_FINRIF = 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_LORDO
Col(11) = FR_PREZZO
Col(12) = FR_SCONTO
Col(13) = FR_PERCPROV
Col(14) = FR_IMPFISUN
Col(15) = FR_IMPFISSO
Col(16) = FR_PERCPROV1
Col(17) = FR_CODIVA
Col(18) = FR_ADDIVA
Col(19) = FR_NCOLLI
Col(20) = FR_PNETTO
Col(21) = FR_TARA
Col(22) = FR_CAUS
Col(23) = FR_CODMAGC
Col(24) = FR_CODDEPC
Col(25) = FR_TIPORIGA
[RIGHE]
[HANDLERS]
// Handler(0)=F_ORAPART|1
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
1010 = S_NORMALE
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
1300 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NORMALE
1700 = S_NORMALE
1800 = S_NORMALE
1900 = S_NASCOSTO
2000 = S_NASCOSTO
2100 = S_NORMALE
2200 = S_NASCOSTO
2300 = S_NORMALE
2400 = S_NORMALE
2500 = S_NORMALE
2700 = S_NORMALE
2710 = S_NORMALE
2800 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
3500 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=32
1=100
2=2500
3=200
4=300
5=400
6=500
7=600
8=700
9=2400
10=2300
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=1010
29=2900
30=3000
31=3100
32=3500

260
src/ve01/fatturac.src Normal file
View File

@ -0,0 +1,260 @@
#include "veini.h"
#include "veuml.h"
#include "verig.h"
[MAIN]
// Descrizione a caratteri del documento
TYPE=Fattura di vendita
// modifica
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESINC|SPESIMB|SPESTRA|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
CALCOLI=*
TOTPROVV =
// modifica
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=C
//modulo di riferimento
MODULE=ve
Title(1)=Cliente
Title(2)=Pagamenti
Title(3)=Spedizione
Title(4)=Magazzino
Title(5)=Righe
Title(6)=Totali
[PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
// 1|Prompt|Help|Warning
OCCASEDIT = S_NORMALE
OCFPI = S_DISABILITATO
COFI = S_NORMALE
STATOPAIV = S_NORMALE
PAIVA = S_NORMALE
LIQDIFF = S_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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
PATIPOCON = S_NORMALE
PACONTRATTO = S_NORMALE
CONTSEP = S_NORMALE
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
MANDATO = 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
DATADOCRIFN = S_NORMALE
CODNUMRIFN = S_NORMALE
ANNORIFN = S_NORMALE
NUMDOCRIFN = S_NORMALE
CODAGVIS = S_NORMALE
DESAGVIS = S_NORMALE
CODAG = S_NORMALE
DESAG = S_NORMALE
CODZON = S_NORMALE
DESZON = S_NORMALE
CODSPMEZZO = S_NORMALE
DESSPMEZZO = S_NORMALE
CODPORTO = S_NORMALE
DESPORTO = S_NORMALE
CODNOTESP1 = S_NORMALE
DESNOTESP1 = S_NORMALE
CODNOTESP2 = S_NORMALE
DESNOTESP2 = S_NORMALE
CAUSTRASP = S_NORMALE
DENCAUSTRASP = S_NORMALE
CODVETT1 = S_NORMALE
CODVETT2 = S_NORMALE
CODVETT3 = S_NORMALE
NOMEVETT1 = S_NORMALE
NOMEVETT2 = S_NORMALE
NOMEVETT3 = S_NORMALE
NCOPIE = S_NASCOSTO
IMPPAGATO = S_NORMALE
ACCSALDO = S_NORMALE
SCONTOFATT = S_NORMALE
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
IMPNETTI = S_NASCOSTO
RAGGREFF = S_NORMALE
SPESEINC = S_NORMALE
ADDBOLLI = S_NORMALE
CODNOTE = S_NORMALE
NOTECLI = S_NOCHECK
CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO
CUP = S_NORMALE
DESCRCUP = S_NORMALE
CIG = S_NORMALE
DESCRCIG = S_NORMALE
CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
NON_INVIO_XML = S_NORMALE
GRDATERIF = S_NORMALE
DATA_INIRIF = S_NORMALE
DATA_FINRIF = S_NORMALE
[DEFAULT]
[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_CAUS
Col(19)=FR_CODMAGC
Col(20)=FR_CODDEPC
Col(21)=FR_TIPORIGA
[RIGHE]
[HANDLERS]
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
1010 = S_NORMALE
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
1300 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NASCOSTO
1800 = S_NORMALE
1900 = S_NORMALE
2200 = S_NASCOSTO
2300 = S_NORMALE
2400 = S_NORMALE
2500 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
3500 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=27
1=100
2=2500
3=200
4=300
5=400
6=500
7=600
8=700
9=2400
10=2300
11=800
12=810
13=820
14=830
15=900
16=1100
17=1200
18=1210
19=1300
20=1400
21=1800
22=1900
23=1010
24=2900
25=3000
26=3100
27=3500

3330
src/ve01/fatturapa_v1.2.xsl Normal file

File diff suppressed because it is too large Load Diff

22
src/ve01/jbi_rdoc.trr Normal file
View File

@ -0,0 +1,22 @@
1001
18
CODDITTA|3|5|0|CODICE DITTA
TIPO|1|1|0|TIPOLOGIA DOCUMENTO F fattura/R nota di credito/O ordine
DATADOC|1|10|0|DATA DOCUMENTO
CODDEP|1|5|0|CODICE DEPOSITO
CODMAG|1|3|0|CODICE MAGAZZINO
GRUPPO|1|5|0|GRUPPO
SOTTOGR|1|3|0|SOTTOGRUPPO
ZONA|1|3|0|ZONA
REGIONE|1|2|0|REGIONE
PROV|1|2|0|PTOVINCIA
CATMERCLI|1|2|0|CATEGORIA MERCEOLOGICA CLIENTE
CODCLI|3|6|0|CODICE CLIENTE
CODAG|1|5|0|CODICE AGENTE
CODART|1|20|0|CODICE ARTICOLO
TIPODOC|1|4|0|TIPO DOCUMENTO
QTA|4|15|5|QUANTITA
IMPORTO|4|18|5|IMPORTO
SCONTATO|4|18|5|IMPORTO SCONTATO
1
TIPODOC+CODDEP+CODMAG+CODART|X

7
src/ve01/jbi_tab.trr Normal file
View File

@ -0,0 +1,7 @@
1002
3
TIPO|1|3|0|TIPO TABELLA
CODICE|1|25|0|CODICE
DESCRI|1|70|0|DESCRIZIONE
1
TIPO+CODICE|

91
src/ve01/jolly.uml Normal file
View File

@ -0,0 +1,91 @@
PAGE "Pag.4" -1 -1 MASK_WIDTH MASK_HEIGHT
STRING FR_JOLLY1 20
BEGIN
PROMPT 2 1 "1 "
FLAGS "B"
END
STRING FR_JOLLY2 20
BEGIN
PROMPT 2 2 "2 "
FLAGS "B"
END
STRING FR_JOLLY3 20
BEGIN
PROMPT 2 3 "3 "
FLAGS "B"
END
STRING FR_JOLLY4 20
BEGIN
PROMPT 2 4 "4 "
FLAGS "B"
END
STRING FR_JOLLY5 20
BEGIN
PROMPT 2 5 "5 "
FLAGS "B"
END
STRING FR_JOLLY6 20
BEGIN
PROMPT 2 6 "6 "
FLAGS "B"
END
STRING FR_JOLLY7 20
BEGIN
PROMPT 2 7 "7 "
FLAGS "B"
END
STRING FR_JOLLY8 20
BEGIN
PROMPT 2 8 "8 "
FLAGS "B"
END
STRING FR_JOLLY9 20
BEGIN
PROMPT 2 9 "9 "
FLAGS "B"
END
STRING FR_JOLLY10 20
BEGIN
PROMPT 2 10 "10 "
FLAGS "B"
END
#ifndef FULL_SCREEN
BUTTON DLG_OK 10 2
BEGIN
PROMPT -14 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -24 -1 ""
END
#ifndef PAGE_1
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -34 -1 "Elimina"
MESSAGE EXIT,K_DEL
END
BUTTON DLG_USER 10 2
BEGIN
PROMPT -44 -1 "~Collega"
PICTURE BMP_LINK
END
#endif
#endif
ENDPAGE

669
src/ve01/listadoc.frm Normal file
View File

@ -0,0 +1,669 @@
// Form di stampa lista documenti
USE LF_DOC
JOIN LF_RIGHEDOC TO LF_DOC INTO CODNUM==CODNUM ANNO==ANNO PROVV==PROVV NDOC==NDOC
JOIN LF_AGENTI TO LF_DOC INTO CODAGE==CODAG
JOIN %TIP TO LF_DOC ALIAS 201 INTO CODTAB==TIPODOC
JOIN %CPG TO LF_DOC ALIAS 202 INTO CODTAB==CODPAG
JOIN %BAN TO LF_DOC ALIAS 203 INTO CODTAB==CODABIA+CODCABA
END
DESCRIPTION
BEGIN
33->* "Documenti di vendita"
20->* "Clienti/Fornitori"
%TIP->* "Tabella tipi documento"
END
GENERAL
BEGIN
OFFSET 0 0
END
SECTION GRAPHICS ODD 4
FIGURA 1 1 1
BEGIN
PROMPT 1 1 ""
END
END
SECTION HEADER ODD 6
STRINGA 1 40 1
BEGIN
KEY "nome ditta"
PROMPT 1 1 "Ditta "
MESSAGE _DITTA, !RAGSOC
END
STRINGA 2 10
BEGIN
KEY "Data"
PROMPT 120 1 "Data "
MESSAGE _TODAY
END
NUMERO 3 7
BEGIN
KEY "Nr. pagina"
PROMPT 140 1 "Pagina "
MESSAGE _PAGENO
END
STRINGA 4 25
BEGIN
KEY "Intestazione stampa"
PROMPT 50 2 "Stampa lista documenti"
END
STRINGA 5 157
BEGIN
KEY "Separatore"
PROMPT 1 3 ""
MESSAGE _SEPARATOR,157
END
STRINGA 6 12
BEGIN
KEY "Intestazione 1"
PROMPT 1 4 "Cod.num/Tipo"
END
STRINGA 7 10
BEGIN
KEY "Intestazione 2"
PROMPT 14 4 "Data doc."
END
STRINGA 8 8
BEGIN
KEY "Intestazione 3"
PROMPT 25 4 "Nr. doc."
END
STRINGA 9 5
BEGIN
KET "Intestazione 4"
PROMPT 34 4 "Stato"
END
STRINGA 10 8
BEGIN
KEY "Intestazione 5"
PROMPT 40 4 "Cod. C/F"
END
STRINGA 11 30
BEGIN
KEY "Intestazione 6"
PROMPT 49 4 "Ragione sociale"
END
STRINGA 12 15
BEGIN
KEY "Intestazione 7"
PROMPT 80 4 "% Sconto"
END
STRINGA 13 30
BEGIN
KEY "Intestazione 8"
PROMPT 96 4 "Cod. Agente"
END
STRINGA 14 30
BEGIN
KEY "Intestazione 9"
PROMPT 127 4 "Cod. Pagamento"
END
STRINGA 11 157
BEGIN
KEY "Separatore"
PROMPT 1 5 ""
MESSAGE _SEPARATOR,157
END
END // HEADER
SECTION BODY ODD 6
STRINGA 1 4
BEGIN
KEY "Estremi cod. num."
PROMPT 1 1 "@B"
FIELD LF_DOC->CODNUM
END
STRINGA 2
BEGIN
KEY "Estremi tipo doc."
PROMPT 5 1 "/"
FIELD LF_DOC->TIPODOC
END
DATA 3 10
BEGIN
KEY "Data documento"
PROMPT 14 1 ""
FIELD 33->DATADOC
END
NUMERO 4 8
BEGIN
SPECIAL STRINGA INTESTAZIONE "Num.doc." "Numero documento"
SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
KEY "Numero documento"
PROMPT 25 1 ""
FIELD 33->NDOC
PICTURE "#######"
END
STRINGA 5 15
BEGIN
KEY "Stato documento"
PROMPT 36 1 "@R"
FIELD 33->STATO
END
NUMERO 6 7
BEGIN
KEY "Codice C/F"
PROMPT 41 1 ""
PICTURE "#######"
FIELD 33->CODCF
END
STRINGA 7 30
BEGIN
KEY "Ragione sociale"
PROMPT 49 1 ""
MESSAGE _CLIENTE,!RAGSOC
END
STRINGA 8 15
BEGIN
KEY "Sconto"
PROMPT 80 1 ""
FIELD 33->SCONTOPERC
END
STRINGA 9 30
BEGIN
KEY "Agente"
PROMPT 96 1 ""
MESSAGE _STREXPR,33->CODAG+" "+LF_AGENTI->RAGSOC
END
STRINGA 10 30
BEGIN
KEY "Cod. pagamento"
PROMPT 127 1 ""
MESSAGE _STREXPR,33->CODPAG+" "+202@->S0
END
STRINGA 11 15
BEGIN
KEY "Valuta"
PROMPT 14 2 "Cod. Valuta "
FIELD 33->CODVAL
MESSAGE _EDITPICTURE,22,24,25,27,28,29,31,32,34
END
NUMERO 12 18
BEGIN
KEY "Cambio"
PROMPT 30 2 "Cambio "
FIELD 33->CAMBIO
PICTURE "###.###,@@@@@@"
END
STRINGA 13 80
BEGIN
KEY "Banca d'appoggio"
PROMPT 49 2 ""
MESSAGE _STREXPR,"Banca App. "+33->CODABIA+"/"+33->CODCABA+" "+203@->S0
END
VALUTA 14 15
BEGIN
PROMPT 120 2 ""
FLAGS "H"
DRIVENBY 11
FIELD TOTDOC
MESSAGE COPY,36|COPY,28
END
VALUTA 15 15
BEGIN
PROMPT 120 2 ""
FLAGS "H"
DRIVENBY 11
MESSAGE _TOTIMPONIBILI,0
MESSAGE COPY,37
END
STRINGA 16 20
BEGIN
KEY "Liquidazione differita"
PROMPT 140 2 ""
MESSAGE _STREXPR,IF(33->LIQDIFF=="X","Liquidazione differita","")
END
STRINGA 17 20
BEGIN
KEY "IVA per cassa"
PROMPT 140 2 ""
MESSAGE _STREXPR,IF(33->IVAXCASSA=="X","IVA per cassa","")
END
SECTION H_RIGHE 3 0 2 GROUP
FLAGS "D"
STRINGA 1 20
BEGIN
PROMPT 1 1 "Codice articolo"
END
STRINGA 2 35
BEGIN
PROMPT 23 1 "Descrizione"
END
STRINGA 3 4
BEGIN
PROMPT 59 1 "UM"
END
STRINGA 4 15
BEGIN
PROMPT 71 1 "Quantita"
END
STRINGA 5 15
BEGIN
PROMPT 89 1 "Prezzo"
END
STRINGA 16 15
BEGIN
PROMPT 104 1 "Importo"
END
STRINGA 17 15
BEGIN
PROMPT 115 1 "% Sconto"
END
STRINGA 18 7
BEGIN
PROMPT 130 1 "% Prov"
END
STRINGA 19 20
BEGIN
PROMPT 137 1 "Val. provvigioni"
END
STRINGA 20 157
BEGIN
KEY "Separatore"
PROMPT 1 2 ""
MESSAGE _SEPARATOR,157
END
END
SECTION RIGHE 3 1 1 FILE LF_RIGHEDOC
FLAGS "D"
STRINGA 1 20
BEGIN
PROMPT 1 1 ""
FIELD LF_RIGHEDOC->CODART
MESSAGE _EDITPICTURE,5,6,9
END
STRINGA 2 35
BEGIN
PROMPT 23 1 ""
FIELD LF_RIGHEDOC->DESCR
END
STRINGA 3 4
BEGIN
PROMPT 59 1 ""
FIELD LF_RIGHEDOC->UMQTA
END
NUMERO 4 15
BEGIN
PROMPT 64 1 ""
FIELD LF_RIGHEDOC->QTA
PICTURE "#########,@@@@@"
END
VALUTA 5 15
BEGIN
PROMPT 84 1 ""
FIELD LF_RIGHEDOC->PREZZO
DRIVENBY 11
FLAGS "U"
END
VALUTA 6 15
BEGIN
PROMPT 100 1 ""
FIELD LF_RIGHEDOC->IMPNN
DRIVENBY 11
END
STRINGA 7 15
BEGIN
PROMPT 115 1 ""
FIELD LF_RIGHEDOC->SCONTO
END
NUMERO 8 6
BEGIN
PROMPT 130 1 ""
FIELD LF_RIGHEDOC->PERCPROV
PICTURE "###,@@"
END
VALUTA 9 15
BEGIN
PROMPT 142 1 ""
FIELD LF_RIGHEDOC->PROVVR
DRIVENBY 11
END
END // SECTION RIGHE
STRINGA 16 113
BEGIN
KEY "Separatore Totale documento"
PROMPT 23 3 ""
MESSAGE _SEPARATOR,113
END
STRINGA 17 18
BEGIN
KEY "Intestazione Imponibile IVA (1 colonna)"
PROMPT 23 4 "Imponibile IVA"
END
STRINGA 18 18
BEGIN
KEY "Intestazione Imposta (1 colonna)"
PROMPT 53 4 "Imposta"
END
STRINGA 19 18
BEGIN
KEY "Intestazione Imponibile IVA (2 colonna)"
PROMPT 75 4 "Imponibile IVA"
END
STRINGA 20 18
BEGIN
KEY "Intestazione Imposta (2 colonna)"
PROMPT 106 4 "Imposta"
END
STRINGA 21 18
BEGIN
KEY "Intestazione Totale documento"
PROMPT 122 4 "@BTot. documento"
END
// Tabella riepilogativa imponibili per codice IVA
VALUTA 22 18
BEGIN
KEY "Imponibile 1"
PROMPT 22 5 ""
DRIVENBY 11
MESSAGE _RIEPILOGOIVA,31,IMP,0
END
STRING 23 4
BEGIN
KEY "Codice iva 1"
PROMPT 42 5 ""
MESSAGE _RIEPILOGOIVA,31,COD,0
END
VALUTA 24 18
BEGIN
KEY "Imposta 1"
PROMPT 45 5 ""
MESSAGE _RIEPILOGOIVA,31,IVA,1
DRIVENBY 11
END
VALUTA 25 18
BEGIN
KEY "Imponibile 2"
PROMPT 74 5 ""
MESSAGE _RIEPILOGOIVA,31,IMP,0
DRIVENBY 11
END
STRING 26 4
BEGIN
KEY "Codice iva 2"
PROMPT 94 5 ""
MESSAGE _RIEPILOGOIVA,31,COD,0
END
VALUTA 27 18
BEGIN
KEY "Imposta 2"
PROMPT 98 5 ""
MESSAGE _RIEPILOGOIVA,31,IVA,1
DRIVENBY 11
END
VALUTA 28 18
BEGIN
KEY "Totale documento"
PROMPT 121 5 "@B"
DRIVENBY 11
END
VALUTA 29 18
BEGIN
KEY "Imponibile 3"
PROMPT 25 6 ""
MESSAGE _RIEPILOGOIVA,31,IMP,0
DRIVENBY 11
END
STRING 30 4
BEGIN
KEY "Codice iva 3"
PROMPT 44 6 ""
MESSAGE _RIEPILOGOIVA,31,COD,0
END
VALUTA 31 18
BEGIN
KEY "Imposta 3"
PROMPT 49 6 ""
MESSAGE _RIEPILOGOIVA,31,IVA,1
DRIVENBY 11
END
VALUTA 32 18
BEGIN
KEY "Imponibile 4"
PROMPT 78 6 ""
MESSAGE _RIEPILOGOIVA,31,IMP,0
DRIVENBY 11
END
STRING 33 4
BEGIN
KEY "Codice iva 4"
PROMPT 97 6 ""
MESSAGE _RIEPILOGOIVA,31,COD,0
END
VALUTA 34 18
BEGIN
KEY "Imposta 4"
PROMPT 102 6 ""
MESSAGE _RIEPILOGOIVA,31,IVA,1
DRIVENBY 11
END
NUMERO 35 1
BEGIN
KEY "Flag per Calcolo totali in Lire (moltiplica per il cambio)"
PROMPT 1 7 ""
FLAGS "H"
END
VALUTA 36 15
BEGIN
KEY "Campo nascosto per il calcolo Totale documenti"
PROMPT 1 7 ""
MESSAGE _NUMEXPR,IF(((#12!=0)&&(#35==1));#36*#12;#36)
MESSAGE _LISTADOC,STORE,#1
MESSAGE _LISTADOC,ADDTOT,FL->16
FLAGS "H"
DRIVENBY 11
END
VALUTA 37 15
BEGIN
KEY "Campo nascosto per il calcolo Totale imponibili"
PROMPT 40 7 ""
MESSAGE _NUMEXPR,IF(((#12!=0)&&(#35==1));#37*#12;#37)
MESSAGE _LISTADOC,ADDTOT,FL->17
FLAGS "H"
DRIVENBY 11
END
END //BODY
SECTION FOOTER ODD 3
END
SECTION FOOTER LAST 11
STRINGA 1 130
BEGIN
KEY "Separatore Totali"
PROMPT 1 1 ""
MESSAGE _SEPARATOR,130
END
STRINGA 2 25
BEGIN
KEY "TOTALI"
PROMPT 1 2 "TOTALI"
END
STRINGA 3 20
BEGIN
KEY "Cod numerazione"
PROMPT 25 2 "COD. NUMERAZIONE"
END
STRINGA 4 18
BEGIN
KEY "Totale Documenti"
PROMPT 64 2 "TOTALE DOCUMENTI"
END
STRING 5 4
BEGIN
KEY "Cod. numerazione 1"
PROMPT 25 3 ""
MESSAGE _LISTADOC,CODICE,1
END
VALUTA 6 18
BEGIN
KEY "Tot. Cod. numerazione 1"
PROMPT 65 3 ""
MESSAGE _LISTADOC,TOTALE,1
END
STRING 7 4
BEGIN
KEY "Cod. numerazione 2"
PROMPT 25 4 ""
MESSAGE _LISTADOC,CODICE,2
END
VALUTA 8 18
BEGIN
KEY "Tot. Cod. numerazione 2"
PROMPT 65 4 ""
MESSAGE _LISTADOC,TOTALE,2
END
STRING 9 4
BEGIN
KEY "Cod. numerazione 3"
PROMPT 25 5 ""
MESSAGE _LISTADOC,CODICE,3
END
VALUTA 10 18
BEGIN
KEY "Tot. Cod. numerazione 3"
PROMPT 65 5 ""
MESSAGE _LISTADOC,TOTALE,3
END
STRING 11 4
BEGIN
KEY "Cod. numerazione 4"
PROMPT 25 6 ""
MESSAGE _LISTADOC,CODICE,4
END
VALUTA 12 18
BEGIN
KEY "Tot. Cod. numerazione 4"
PROMPT 65 7 ""
MESSAGE _LISTADOC,TOTALE,4
END
STRINGA 13 55
BEGIN
KEY "Separatore Totali Generali"
PROMPT 25 8 ""
MESSAGE _SEPARATOR,55
END
STRINGA 14 20
BEGIN
KEY "TOTALE GENERALE"
PROMPT 25 9 "@BTOTALE GENERALE"
END
STRINGA 15 22
BEGIN
KEY "TOTALE IMPONIBILI"
PROMPT 25 10 "@BTOTALE IMPONIBILI"
END
VALUTA 16 18
BEGIN
KEY "Totale Generale"
PROMPT 65 9 ""
END
VALUTA 17 18
BEGIN
KEY "Totale Imponibili"
PROMPT 65 10 ""
END
END // FOOTER

280
src/ve01/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

21
src/ve01/opticpen.ini Normal file
View File

@ -0,0 +1,21 @@
[MAIN]
DECSEP =
FIELDSEP =
RECORDSEP =
RECORDSIZE = 22
SKIPLINES = 0
TYPEFIELD = -1
TYPELEN = 0
TYPEPOS = -1
[RECORD]
LENGTH(0) = 13
LENGTH(1) = 2
LENGTH(2) = 5
POSITION(0) = 0
POSITION(1) = 13
POSITION(2) = 15
NAME(0) = CODART
NAME(2) = QTA

267
src/ve01/ordbon.src Normal file
View File

@ -0,0 +1,267 @@
#include "veini.h"
#include "veuml.h"
#include "verig.h"
// Esempio di profilo documento : Profilo Ordine di Bonifico
[MAIN]
// Descrizione a caratteri del documento
TYPE=Bolla di vendita
// Dove sono le risorse per il documento
MSKFILE=ORDBON
FRMFILE=ORDBON.FRM
// modifica
CAMPICALC=
CALCOLI=*
TOTPROVV=
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=F
//modulo di riferimento
MODULE=ve
Title(1)=Fornitore
Title(2)=Pagamenti
Title(3)=Ind.Spedizione
Title(4)=Spedizione
Title(5)=Righe
Title(6)=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
GOLEM = S_NORMALE
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
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_NOCHECK
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_NASCOSTO
NUMDOCRIF = S_NASCOSTO
CODAGVIS = S_NORMALE
DESAGVIS = S_NORMALE
CODAG = S_NORMALE
DESAG = 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_NASCOSTO
DESNOTESP2 = S_NASCOSTO
CAUSTRASP = S_OBBLIGATORIO
DENCAUSTRASP = S_NORMALE
CODVETT1 = S_NORMALE
CODVETT2 = S_NASCOSTO
CODVETT3 = S_NASCOSTO
NOMEVETT1 = S_NORMALE
NOMEVETT2 = S_NASCOSTO
NOMEVETT3 = S_NASCOSTO
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_NASCOSTO
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
CODNOTE = S_NORMALE
NOTECLI = S_NOCHECK
CUP = S_NORMALE0
DESCRCUP = S_NORMALE0
CIG = S_NORMALE0
DESCRCIG = S_NORMALE0
CMSH = S_NORMALE0
[DEFAULT]
[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_CAUS
Col(19) = FR_CODMAGC
Col(20) = FR_CODDEPC
Col(21) = FR_TIPORIGA
[RIGHE]
[HANDLERS]
// Handler(0)=F_ORAPART|1
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
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_NASCOSTO
2100 = S_NORMALE
2200 = S_NASCOSTO
2300 = S_NORMALE
2400 = S_NORMALE
2500 = S_NORMALE
2700 = S_NORMALE
2710 = S_NORMALE
2800 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=30
1=100
2=200
3=300
4=400
5=500
6=600
7=700
8=800
9=810
10=820
11=830
12=900
13=1100
14=1200
15=1500
16=1210
17=1300
18=1400
19=1800
20=1900
21=2100
22=2300
23=2800
24=2700
25=2710
26=1700
27=2500
28=2400
29=2900
30=3000

276
src/ve01/ordinec.src Normal file
View File

@ -0,0 +1,276 @@
#include "veini.h"
#include "verig.h"
#include "veuml.h"
// Esempio di profilo documento : Profilo ordine cliente
[MAIN]
// Descrizione a caratteri del documento
TYPE=Ordine Cliente
// modifica
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESIMB|SPESTRA|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI|TOTPROVV
CALCOLI=*
TOTPROVV =
// modifica
// Procedure utente da chiamare per il documento ( preprocessarle? )
NUOVO=
MODIFICA=
CANCELLA=
STAMPA=
RAGGRUPPA=
USER=
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=C
//modulo di riferimento
MODULE=ve
Title(1)=Cliente
Title(2)=Pagamenti
Title(3)=Ind.Spedizione
Title(4)=Spedizione
Title(5)=Righe
Title(6)=Totali
[PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
// 1|Prompt|Help|Warning
OCCASEDIT = S_NORMALE
OCFPI = S_DISABILITATO
COFI = S_NORMALE
STATOPAIV = S_NORMALE
PAIVA = S_NORMALE
LIQDIFF = S_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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_NORMALE
PATIPOCON = S_NORMALE
CONTSEP = S_NORMALE
CODVAL1 = S_NORMALE
CODVAL2 = S_NORMALE
NOME_VAL1 = S_NORMALE
NOME_VAL2 = 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_NOCHECK
DESBANPRE = S_NORMALE
DESBANPRE1 = S_NORMALE
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
CODAGVIS = S_NORMALE
DESAGVIS = S_NORMALE
CODAG = S_NORMALE
DESAG = 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_NASCOSTO
DESNOTESP2 = S_NASCOSTO
CAUSTRASP = S_NORMALE
DENCAUSTRASP = S_NORMALE
CODVETT1 = S_NORMALE
CODVETT2 = S_NORMALE
CODVETT3 = S_NORMALE
NOMEVETT1 = S_NORMALE
NOMEVETT2 = S_NORMALE
NOMEVETT3 = S_NORMALE
NCOPIE = S_NASCOSTO
IMPPAGATO = S_NORMALE
ACCSALDO = S_NASCOSTO
SCONTOFATT = S_NORMALE
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
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
CODNOTE = S_NORMALE
NOTECLI = S_NOCHECK
CAUSMAG = S_OBBLIGATORIO
CAUSMAGC = S_DISABILITATO
DESCRMAG = S_NORMALE
DESCRMAGC = S_DISABILITATO
DATACONS = S_NORMALE
CUP = S_NORMALE
DESCRCUP = S_NORMALE
CIG = S_NORMALE
DESCRCIG = S_NORMALE
CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[DEFAULT]
[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_LORDO
Col(11) = FR_QTAEVASA
Col(12) = FR_RIGAEVASA
Col(13) = FR_DATACONS
Col(14) = FR_PREZZO
Col(15) = FR_SCONTO
Col(16) = FR_PERCPROV
Col(17) = FR_IMPFISUN
Col(18) = FR_IMPFISSO
Col(19) = FR_PERCPROV1
Col(20) = FR_CODIVA
Col(21) = FR_ADDIVA
Col(22) = FR_CAUS
Col(23) = FR_CODMAGC
Col(24) = FR_CODDEPC
Col(25) = FR_TIPORIGA
[RIGHE]
[HANDLERS]
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
1000 = S_NORMALE
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
1300 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NASCOSTO
1800 = S_NORMALE
1900 = S_NORMALE
2000 = S_NORMALE
2100 = S_NASCOSTO
2200 = S_NORMALE
2300 = S_NORMALE
2400 = S_NORMALE
2500 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=28
1=100
2=2500
3=200
4=300
5=400
6=500
7=600
8=700
9=2400
10=2300
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=1800
24=1000
25=2900
26=2000
27=3000
28=3100

293
src/ve01/ordinef.src Normal file
View File

@ -0,0 +1,293 @@
#include "veini.h"
#include "verig.h"
#include "veuml.h"
// Esempio di profilo documento : Profilo Ordine Fornitore
[MAIN]
// Descrizione a caratteri del documento
TYPE=Ordine Fornitore
CAMPICALC=TOTMER|TOTPRE|SPESE|SPESIMB|SPESTRA|SPESINC|BOLLI|IMPONIBILI|IMPOSTE|TOTDOC|SCONTOD|SCONTOT|OMAGGI
CALCOLI=*
// Dove sono le risorse per il documento
NUOVO=
MODIFICA=
CANCELLA=
STAMPA=
RAGGRUPPA=
USER=
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=F
PREZZO=ULTCOS1
//modulo di riferimento
MODULE=ve
Title(1)=Fornitore
Title(2)=Pagamenti
Title(3)=Ind.Spedizione
Title(4)=Spedizione
Title(5)=C.U.P.
Title(6)=Righe
Title(7)=Totali
[PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
// 1|Prompt|Help|Warning
OCCASEDIT = S_NORMALE
OCFPI = S_DISABILITATO
COFI = S_NORMALE
STATOPAIV = S_NORMALE
PAIVA = S_NORMALE
LIQDIFF = S_NORMALE
IVAXCASSA = S_NORMALE
GOLEM = S_NORMALE
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_NORMALE
PATIPOCON = S_NORMALE
CONTSEP = S_NORMALE
CODVAL1 = S_NORMALE
CODVAL2 = S_NORMALE
NOME_VAL1 = S_NORMALE
NOME_VAL2 = 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
CODAGVIS = S_NORMALE
DESAGVIS = S_NORMALE
CODAG = S_NORMALE
DESAG = S_NORMALE
CODSPMEZZO = S_OBBLIGATORIO
DESSPMEZZO = S_NORMALE
CODPORTO = S_NORMALE
DESPORTO = S_NORMALE
CODNOTESP1 = S_NORMALE
DESNOTESP1 = S_NORMALE
CODNOTESP2 = S_NASCOSTO
DESNOTESP2 = S_NASCOSTO
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_NORMALE
ACCSALDO = S_NORMALE
SCONTOFATT = S_NORMALE
DOC1 = S_NASCOSTO
DOC2 = S_NASCOSTO
DOC3 = S_NASCOSTO
DATACONS = S_NORMALE
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_NORMALE
DESCRMAG = S_DISABILITATO
CAUSMAGC = S_DISABILITATO
DESCRMAGC = S_DISABILITATO
CUP = S_NORMALE
DESCRCUP = S_NORMALE
CIG = S_NORMALE
DESCRCIG = S_NORMALE
CMSH = S_NORMALE
TIPO_SDI = S_NORMALE
INVIO_FP = S_NORMALE
REG_FISCF = S_NORMALE
[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_QTAEVASA
Col(11) = FR_RIGAEVASA
Col(12) = FR_DATACONS
Col(13) = FR_PREZZO
Col(14) = FR_SCONTO
Col(15) = FR_PERCPROV
Col(16) = FR_IMPFISUN
Col(17) = FR_IMPFISSO
Col(18) = FR_PERCPROV1
Col(19) = FR_CODIVA
Col(20) = FR_ADDIVA
Col(21) = FR_CAUS
Col(22) = FR_CODMAGC
Col(23) = FR_CODDEPC
Col(24) = FR_TIPORIGA
[DEFAULT]
[RIGHE]
[DEFAULT]
[HANDLERS]
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NORMALE
300 = S_NORMALE
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NORMALE
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
1000 = S_NORMALE
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
1300 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NORMALE
1700 = S_NORMALE
1800 = S_NORMALE
1900 = S_NASCOSTO
2000 = S_NORMALE
2100 = S_NORMALE
2200 = S_NASCOSTO
2300 = S_NORMALE
2400 = S_NORMALE
2500 = S_NORMALE
2700 = S_NORMALE
2710 = S_NORMALE
2800 = S_NORMALE
2900 = S_NORMALE
3000 = S_NORMALE
3100 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=36
1=100
2=200
3=300
4=400
5=500
6=600
7=700
8=800
9=810
10=820
11=830
12=900
13=1100
14=1200
15=1210
16=1300
17=1400
18=1700
19=2100
20=2700
21=2710
22=2800
23=1500
24=1800
25=1000
26=2300
27=2400
28=3200
29=2500
30=3400
31=1600
32=2000
33=2900
34=3000
35=3100

239
src/ve01/ordp.src Normal file
View File

@ -0,0 +1,239 @@
#include "veini.h"
#include "verig.h"
#include "veuml.h"
// Esempio di profilo documento : Profilo ordine cliente
[MAIN]
// Descrizione a caratteri del documento
TYPE=Ordine Cliente
// modifica
CAMPICALC=
CALCOLI=
TOTPROVV =
// modifica
// Procedure utente da chiamare per il documento ( preprocessarle? )
NUOVO=
MODIFICA=
CANCELLA=
STAMPA=
RAGGRUPPA=
USER=
// Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=C
[PROFILO]
// Si possono indicare, dopo il numero, PROMPT, HELP, WARNING cosi:
// 1|Prompt|Help|Warning
OCCASEDIT = S_NORMALE //100
OCFPI = S_DISABILITATO //100
COFI = S_NORMALE //100
STATOPAIV = S_NORMALE //100
PAIVA = S_NORMALE //100
GOLEM = S_NORMALE
GRRECAPITO = S_NORMALE //100
INDCF = S_DISABILITATO //100
CIVCF = S_DISABILITATO //100
LOCALITACF = S_DISABILITATO //100
CAPCF = S_DISABILITATO //100
PROVCOM = S_DISABILITATO //100
COMCF = S_DISABILITATO //100
DENCOM = S_DISABILITATO //100
STATOCF = S_DISABILITATO //100
DESSTATOCF = S_DISABILITATO //100
CODVAL1 = S_NORMALE //200
CODVAL2 = S_NORMALE //200
NOME_VAL1 = S_NORMALE //200
NOME_VAL2 = S_NORMALE //200
CONTROEURO = S_NORMALE //200
CAMBIO = S_NORMALE //200
DATA_CAMBIO1 = S_NORMALE //200
DATA_CAMBIO2 = S_NORMALE //200
CODLIN = S_NORMALE //300
DESLIN = S_NORMALE //300
CODPAG = S_NASCOSTO //400
DESCODPAG = S_NASCOSTO //400
GRSCADENZE = S_NASCOSTO //500
DATAINSC = S_NASCOSTO //500
DATASCAD1 = S_NASCOSTO //500
DATASCAD2 = S_NASCOSTO //500
DATASCAD3 = S_NASCOSTO //500
DATASCAD4 = S_NASCOSTO //500
DATASCAD5 = S_NASCOSTO //500
CODABIA = S_NASCOSTO //600
CODCABA = S_NASCOSTO //600
DESBANAPP = S_NASCOSTO //600
CODABIP = S_NASCOSTO //700
CODCABP = S_NASCOSTO //700
DESBANPRE = S_NASCOSTO //700
CATVEN = S_NASCOSTO //800
DESCATVEN = S_NASCOSTO //800
CODLIST1 = S_NASCOSTO //800
CODLIST2 = S_NASCOSTO //800
DESLIST = S_NASCOSTO //800
CODCONT1 = S_NASCOSTO //810
CODCONT2 = S_NASCOSTO //810
DESCONT = S_NASCOSTO //810
CODCAMP = S_NASCOSTO //820
DESCAMP = S_NASCOSTO //820
SCONTOPERC = S_NASCOSTO //830
GRINDSPED = S_NORMALE //900
CODINDSP = S_NORMALE //900
RAGSOCSP = S_DISABILITATO //900
INDSP = S_DISABILITATO //900
CIVSP = S_DISABILITATO //900
LOCALITASP = S_DISABILITATO //900
CAPSP = S_DISABILITATO //900
COMSP = S_DISABILITATO //900
DENCOMSP = S_DISABILITATO //900
PROVCOMSP = S_DISABILITATO //900
STATOSP = S_DISABILITATO //900
DESSTATOSP = S_DISABILITATO //900
DATADOCRIF = S_NORMALE //1000
NUMDOCRIF = S_NOCHECK //1000
CODAG = S_NASCOSTO //1100
DESAG = S_NASCOSTO //1100
CODZON = S_NASCOSTO //1100
DESZON = S_NASCOSTO //1100
CODSPMEZZO = S_OBBLIGATORIO //1200
DESSPMEZZO = S_NORMALE //1200
CODPORTO = S_NORMALE //1210
DESPORTO = S_NORMALE //1210
CODNOTESP1 = S_NORMALE //1300
DESNOTESP1 = S_NORMALE //1300
CODNOTESP2 = S_NASCOSTO //1300
DESNOTESP2 = S_NASCOSTO //1300
CAUSTRASP = S_NORMALE //1400
DENCAUSTRASP = S_NORMALE //1400
CODVETT1 = S_NORMALE //1500
CODVETT2 = S_NASCOSTO //1500
CODVETT3 = S_NASCOSTO //1500
NOMEVETT1 = S_NORMALE //1500
NOMEVETT2 = S_NASCOSTO //1500
NOMEVETT3 = S_NASCOSTO //1500
NCOPIE = S_NASCOSTO //1600
IMPPAGATO = S_NASCOSTO //1800
ACCSALDO = S_NASCOSTO //1800
DOC1 = S_NASCOSTO //1900
DOC2 = S_NASCOSTO //1900
DOC3 = S_NASCOSTO //1900
ASPBENI1 = S_NASCOSTO //2100
DESCRBENI1 = S_NASCOSTO //2100
ASPBENI2 = S_NASCOSTO //2100
DESCRBENI2 = S_NASCOSTO //2100
IMPNETTI = S_NASCOSTO //2200
RAGGR = S_NASCOSTO //2300
RAGGREFF = S_NASCOSTO //2300
SPESEINC = S_NASCOSTO //2400
ADDBOLLI = S_NASCOSTO //2400
CODNOTE = S_NORMALE //2500
NOTECLI = S_NORMALE //2500
CAUSMAG = S_OBBLIGATORIO //2900
CAUSMAGC = S_DISABILITATO //2900
DESCRMAG = S_NORMALE //2900
DESCRMAGC = S_DISABILITATO //2900
DATACONS = S_NORMALE //2000
BLANK = S_DISABILITATO //4000
[DEFAULT]
[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_LORDO
Col(11) = FR_QTAEVASA
Col(12) = FR_RIGAEVASA
Col(13) = FR_DATACONS
Col(14) = FR_CAUS
Col(15) = FR_CODMAGC
Col(16) = FR_CODDEPC
Col(17) = FR_IMPIANTO
Col(18) = FR_LINEA
[RIGHE]
Tipo(0) = 01
Tipo(1) = 02
Tipo(2) = 03
Tipo(3) = 04
Tipo(4) = 05
Tipo(5) = 06
Tipo(6) = 07
Tipo(7) = 08
Tipo(8) = 09
[HANDLERS]
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
200 = S_NASCOSTO
300 = S_NORMALE
400 = S_NORMALE
500 = S_NORMALE
600 = S_NORMALE
700 = S_NORMALE
800 = S_NASCOSTO
810 = S_NORMALE
820 = S_NORMALE
830 = S_NORMALE
900 = S_NORMALE
1000 = S_NORMALE
1100 = S_NORMALE
1200 = S_NORMALE
1210 = S_NORMALE
1300 = S_NORMALE
1400 = S_NORMALE
1500 = S_NORMALE
1600 = S_NASCOSTO
1800 = S_NORMALE
1900 = S_NORMALE
2000 = S_NORMALE
2100 = S_NORMALE
2200 = S_NORMALE
2300 = S_NORMALE
2400 = S_NORMALE
2500 = S_NORMALE
2900 = S_NORMALE
4000 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=27
1=100
2=2500
3=200
4=300
5=400
6=500
7=600
8=700
9=2400
10=2300
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=1800
24=2200
25=1000
26=2900
27=2000

21
src/ve01/pacchi.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef __PACCHI_H
#define __PACCHI_H
#define PACCHI_CODPACCO "CODPACCO"
#define PACCHI_CODRIGA "CODRIGA"
#define PACCHI_DESCR "DESCR"
#define PACCHI_CODART "CODART"
#define PACCHI_QTA "QTA"
#define PACCHI_UM "UM"
#define PACCHI_DATA "DATA"
#define PACCHI_CODCF "CODCF"
#define PACCHI_DATABO "DATABO"
#define PACCHI_ANNULLATO "ANNULLATO"
#define PACCHI_PROVV "PROVV"
#define PACCHI_ANNO "ANNO"
#define PACCHI_CODNUM "CODNUM"
#define PACCHI_NDOC "NDOC"
#define PACCHI_IDRIGA "IDRIGA"
#define PACCHI_MGNUMREG "MGNUMREG"
#endif

26
src/ve01/packlist.h Normal file
View File

@ -0,0 +1,26 @@
#define PACKLIST_TIPOCONT "TIPOCONT"
#define PACKLIST_CODICE "CODICE"
#define PACKLIST_NRIGA "NRIGA"
#define PACKLIST_DESCR "DESCR"
#define PACKLIST_DATA "DATA"
#define PACKLIST_CODMAG "CODMAG"
#define PACKLIST_CODART "CODART"
#define PACKLIST_LIVELLO "LIVELLO"
#define PACKLIST_TIPOCF "TIPOCF"
#define PACKLIST_CODCF "CODCF"
#define PACKLIST_UMQTA "UMQTA"
#define PACKLIST_QTA "QTA"
#define PACKLIST_CONF "CONF"
#define PACKLIST_PERCOCC "PERCOCC"
#define PACKLIST_TIPOCONTP "TIPOCONTP"
#define PACKLIST_CODICEP "CODICEP"
#define PACKLIST_NRIGAP "NRIGAP"
#define PACKLIST_CODNUM "CODNUM"
#define PACKLIST_ANNO "ANNO"
#define PACKLIST_PROVV "PROVV"
#define PACKLIST_NDOC "NDOC"
#define PACKLIST_IDRIGA "IDRIGA"
#define PACKLIST_NRIGADOC "NRIGADOC"
#define PACKLIST_DATADOC "DATADOC"
#define PACKLIST_ANNULLATO "ANNULLATO"
#define PACKLIST_MGNUMREG "MGNUMREG"

30
src/ve01/rcondv.h Normal file
View File

@ -0,0 +1,30 @@
#ifndef __RCONDV_H
#define __RCONDV_H
#define RCONDV_TIPO "TIPO"
#define RCONDV_CATVEN "CATVEN"
#define RCONDV_TIPOCF "TIPOCF"
#define RCONDV_CODCF "CODCF"
#define RCONDV_COD "COD"
#define RCONDV_TIPORIGA "TIPORIGA"
#define RCONDV_CODRIGA "CODRIGA"
#define RCONDV_UM "UM"
#define RCONDV_NSCAGL "NSCAGL"
#define RCONDV_QLIM "QLIM"
#define RCONDV_PREZZO "PREZZO"
#define RCONDV_SCONTO "SCONTO"
#define RCONDV_ADDIVA "ADDIVA"
#define RCONDV_CODIVA "CODIVA"
#define RCONDV_PERCPROVV "PERCPROVV"
#define RCONDV_QOM "QOM"
#define RCONDV_QBASE "QBASE"
#define RCONDV_CODARTOM "CODARTOM"
#define RCONDV_PROMAGGIO "PROMAGGIO"
#define RCONDV_UMOM "UMOM"
#define RCONDV_CODLOTTO "CODLOTTO"
#define RCONDV_ARTES "ARTES"
#define RCONDV_DATAULTAUM "DATAULTAUM"
#define RCONDV_PRZSTO "PRZSTO"
#define RCONDV_DATAPRZSTO "DATAPRZSTO"
#endif

64
src/ve01/riga2.uml Normal file
View File

@ -0,0 +1,64 @@
TOOLBAR "" 0 20 60 2
BUTTON 1 10 2
BEGIN
PROMPT -13 -1 ""
MESSAGE EXIT,312
END
BUTTON 17 8 2
BEGIN
PROMPT -23 -1 "~Elimina"
MESSAGE EXIT,127
END
BUTTON 2 10 2
BEGIN
PROMPT -33 -1 ""
MESSAGE EXIT,27
END
END
PAGE "Riga base" 1 1 60 14
STRING FS_TIPORIGA 2
BEGIN
PROMPT 2 2 "Tipo riga "
END
STRING FS_CODMAG 3
BEGIN
PROMPT 2 4 "Cod. Art. "
END
STRING FS_CODART 30
BEGIN
PROMPT 2 4 "Cod. Art. "
END
STRING FS_DESCR 50
BEGIN
PROMPT 2 6 "Descrizione "
END
STRING FS_UMQTA 2
BEGIN
PROMPT 2 8 "UM "
END
NUMBER FS_QTA 11 03
BEGIN
PROMPT 2 10 "Qt… "
END
NUMBER FS_TARA 15 02
BEGIN
PROMPT 2 12 "Prezzo "
END
STRING FS_CODIVA 4
BEGIN
PROMPT 2 14 "Cod.IVA "
END
BOOLEAN FS_ADDIVA
BEGIN
PROMPT 2 16 "Addebito IVA "
END
STRING FS_SCONTO 25
BEGIN
PROMPT 2 18 "Sconto "
END
NUMBER FS_PERCPROV 5 02
BEGIN
PROMPT 40 18 "Perc.Provv. "
END
END
ENDMASK

778
src/ve01/sconti.cpp Normal file
View File

@ -0,0 +1,778 @@
#include <config.h>
#include <diction.h>
#include <utility.h>
#include "velib.h"
#include "condv.h"
#include "rcondv.h"
#include "sconti.h"
#include "veconf.h"
#include "veini.h"
#include "verig.h"
#include "veuml.h"
#include "../mg/anamag.h"
#include "../pr/agenti.h"
#include "../pr/percprov.h"
bool TCond_vendita::set_sconto(const char* exp, bool signal)
{
bool valid = scontoexpr2perc(exp, signal, _sconto, _molt_sconto);
if (_load_mask && _riga && _riga->id2pos(FR_SCONTO) >= 0 && _riga->field(FR_SCONTO).active())
_riga->set(FR_SCONTO, _sconto);
return valid;
}
real TCond_vendita::normalize_valuta(const real & val, const char * val_rif)
{
if (val.is_zero())
return ZERO;
const TString& valuta = _testa->get(F_CODVAL);
if (same_values(val_rif, valuta))
return val;
const real cambio = _condv.get_real(CONDV_CAMBIO);
TPrice normalized(val, val_rif, cambio);
const real cambio_dest = _testa->get_real(F_CAMBIO);
normalized.change_value(valuta, cambio_dest);
return normalized.get_num();
}
void TCond_vendita::set_prezzo(const real & prezzo, const char * val_rif)
{
_prezzo = normalize_valuta(prezzo, val_rif);
if (_load_mask && _riga && _riga->id2pos(FR_PREZZO) >= 0)
_riga->set(FR_PREZZO, _prezzo);
}
void TCond_vendita::set_provv(const real & provv)
{
_provv = provv;
if (_load_mask && _riga && _riga->id2pos(FR_PERCPROV) >= 0 && _riga->field(FR_PERCPROV).active())
_riga->set(FR_PERCPROV, _provv);
}
void TCond_vendita::set_provv1(const real & provv)
{
_provv1 = provv;
if (_load_mask && _riga && _riga->id2pos(FR_PERCPROV1) >= 0 && _riga->field(FR_PERCPROV1).active())
_riga->set(FR_PERCPROV1, _provv1);
}
void TCond_vendita::set_iva(const TString & codiva)
{
_codiva = codiva;
if (_load_mask && _riga && _riga->id2pos(FR_CODIVA) >= 0 && _riga->field(FR_CODIVA).active())
_riga->set(FR_CODIVA, _codiva);
}
bool TCond_vendita::cerca( int tiporicerca )
{
TConfig config_ditta(CONFIG_DITTA, "ve");
if( config_ditta.get_bool( "GES", "ve", tiporicerca ) )
{
// Se h attiva la gestione contratti ...
_condv.setkey( 1 );
_condv.zero( );
switch( tiporicerca )
{
case A_CONTRATTI:
{
const TString16 codcont = testa().get(F_CODCONT);
if (codcont.blank())
return false;
_condv.put(CONDV_TIPO, "C");
if (config_ditta.get_bool("GESCONCC", "ve"))
{
_condv.put(CONDV_TIPOCF, clifo().tipo());
_condv.put(CONDV_CODCF, clifo().codice());
}
_condv.put(CONDV_COD, codcont);
}
break;
case A_LISTINI:
{
const TString16 codlist = testa().get(F_CODLIST);
if (codlist.blank())
return false;
_condv.put(CONDV_TIPO, "L");
// Se in ditta h abilitata la gestione della categoria di vendita in chiave
// al listino, la carico con gioia
if( config_ditta.get_bool("GESLISCV", "ve"))
_condv.put("CATVEN", testa().get(F_CATVEN));
_condv.put("COD", codlist);
}
break;
case A_OFFERTE:
{
const TString16 codcamp(testa().get(F_CODCAMP));
if (codcamp.blank())
return false;
_condv.put(CONDV_TIPO, "O");
_condv.put(CONDV_COD, codcamp);
}
break;
}
if( _condv.read( ) == NOERR )
{
// _rcondv.setkey( 2 );
const bool gest_scagl = _condv.get_bool(CONDV_GESTSCAGL);
const TString16 seqricrighe( _condv.get(CONDV_SEQRIC));
bool found = FALSE;
for( int i = 0; !found && i < seqricrighe.len( ); i ++ )
{
_rcondv.zero( );
_rcondv.put( "TIPO", _condv.get( "TIPO"));
_rcondv.put( "CATVEN", _condv.get( "CATVEN"));
_rcondv.put( "TIPOCF", _condv.get( "TIPOCF"));
_rcondv.put( "CODCF", _condv.get( "CODCF"));
_rcondv.put("COD", _condv.get("COD"));
if( _condv.get_bool( "GESTUM" ) )
_rcondv.put( "UM", riga().get(FR_UMQTA));
if (gest_scagl)
_rcondv.put("NSCAGL", 1);
char ricerca = seqricrighe[ i ];
_rcondv.put( "TIPORIGA", ricerca );
switch( ricerca )
{
case 'A':
{
const TString codriga = riga().get(FR_CODARTMAG);
_rcondv.put( "CODRIGA", codriga);
if (_rcondv.read() != NOERR &&
_rcondv.prev() == NOERR &&
_rcondv.get("TIPORIGA")[0] == 'A')
{
const TString cod_found(_rcondv.get("CODRIGA"));
return cod_found == codriga;
}
}
break;
case 'R':
_rcondv.put("CODRIGA", _anamag.get( "RAGGFIS"));
_rcondv.read();
break;
case 'S':
{
_rcondv.put( "CODRIGA", _anamag.get("GRMERC"));
_rcondv.read( );
}
break;
case 'G':
{
_rcondv.put( "CODRIGA", _anamag.get("GRMERC").left(3));
_rcondv.read( );
}
break;
default:
break;
}
found = _rcondv.good();
}
if (found && gest_scagl)
{
TRectype rec(_rcondv.curr());
int last_scagl = 0;
int scagl = _rcondv.get_int("NSCAGL");
const real qta(_riga->get_real(FR_QTA));
real qta_lim(_rcondv.get_real("QLIM"));
while (_rcondv.good() && scagl > last_scagl && qta_lim > ZERO && qta > qta_lim)
{
if (_rcondv.next() == NOERR)
{
last_scagl = scagl;
scagl = _rcondv.get_int("NSCAGL");
qta_lim =_rcondv.get_real("QLIM");
rec = _rcondv.curr();
}
}
_rcondv.read(rec);
}
return found;
}
}
// Ricerca fallita
return FALSE;
}
real TCond_vendita::get_percprovv(char tipoprovv, const TString & codpr, bool first, const TRectype & age) const
{
real val = ZERO;
switch (tipoprovv)
{
case 'A':
val = age.get_real(AGE_PERCPROVV);
break;
case 'M':
val = _anamag.get_real(ANAMAG_PERCPROVV);
break;
case 'C':
val = clifo().vendite().get_real(first ? CFV_PERCPROVV : CFV_PERCPROVV1);
break;
case 'V':
{
const TString16 catven = testa().get(F_CATVEN);
if (catven.not_empty())
val = real(cache().get("CVE", catven, "R0"));
}
break;
case 'O':
val = _rcondv.get_real("PERCPROVV");
break;
case '1':
case '2':
case '3':
case '4':
{
const TString16 ord = cache().get("APR", codpr, "S3");
int len = ord.len();
TString key;
TString80 campo;
for (int i = 0; i < len; i++)
{
switch (ord[i])
{
case 'C':
campo = clifo().get(CLI_CODCF);
campo.lpad(clifo().length(CLI_CODCF));
break;
case 'V':
campo = testa().get(F_CATVEN);
campo.rpad(testa().field(F_CATVEN).size());
break;
case 'A':
campo = testa().get(F_CODAG);
campo.rpad(testa().field(F_CODAG).size());
break;
case 'P':
campo = testa().get(F_CODPAG);
campo.rpad(testa().field(F_CODPAG).size());
break;
case 'S':
campo = clifo().vendite().get(CFV_CODSCC);
campo.rpad(clifo().length(CFV_CODSCC));
break;
case 'Z':
campo = testa().get(F_CODZON);
campo.rpad(testa().field(F_CODZON).size());
break;
case 'M':
campo = riga().get( FR_CODARTMAG );
campo.rpad(riga().field(FR_CODARTMAG).size());
break;
case 'E':
campo = _anamag.get(ANAMAG_GRMERC);
campo.rpad(_anamag.curr().length(ANAMAG_GRMERC));
campo.cut(3);
break;
case 'R':
campo = _anamag.get(ANAMAG_GRMERC);
campo.rpad(_anamag.curr().length(ANAMAG_GRMERC));
break;
case 'F':
campo = _anamag.get(ANAMAG_RAGGFIS);
campo.rpad(_anamag.curr().length(ANAMAG_RAGGFIS));
break;
default:
campo.cut(0);
break;
}
key << campo;
}
TLocalisamfile perc(LF_PERCPROV);
perc.put(PER_CODPR, codpr);
perc.put(PER_KEYORD, key);
if (perc.read() == NOERR)
val= perc.get_real(PER_PERCPROVV);
}
break;
default:
break;
}
return val;
}
bool TCond_vendita::try_sconto(char gestione, bool found_condv, bool load_um_only, bool load_scagl_only)
{
TString80 sconto;
switch (gestione)
{
case 'L':
// Percentuale su contratti/offerte/listini/anagrafica
if (found_condv)
{
const bool cv_scagl = _condv.get_bool("GESTSCAGL");
const bool cv_um = _condv.get_bool("GESTUM");
_load_mask |= load_scagl_only && cv_scagl;
_load_mask |= load_um_only && cv_um;
sconto = _rcondv.get("SCONTO");
_load_mask = !load_um_only && !load_scagl_only;
}
else
sconto = _anamag.get("SCONTO");
break;
case 'A':
{
TConfig config_ditta(CONFIG_DITTA, "ve");
const bool sco_scagl = config_ditta.get_bool("GESSCOSCA");
const bool sco_um_gest = config_ditta.get_bool("GESSCORIGAUM");
const char rigakey = config_ditta.get_char( "SCORIGAKEY");
// Posiziono l'anagrafica
_sconti.setkey(1);
_sconti.put("TIPO", "R");
if( config_ditta.get_bool("GESSCORIGACV"))
_sconti.put("CODCAT", testa().get(F_CATVEN));
if (sco_um_gest)
_sconti.put("UM", riga().get( FR_UMQTA));
_sconti.put("TIPORIGA", rigakey);
if (sco_scagl)
_sconti.put("NSCAGL", 1);
switch (rigakey)
{
case 'A':
{
const TString& codriga = riga().get(FR_CODARTMAG);
_sconti.put("CODART", codriga);
_sconti.read();
}
break;
case 'R':
_sconti.put("CODART", _anamag.get("RAGGFIS"));
_sconti.read();
break;
case 'C':
{
_sconti.put( "CODART", _anamag.get("GRMERC"));
_sconti.read( );
}
break;
case 'L':
{
_sconti.put("CODART", _anamag.get("GRMERC").left(3));
_sconti.read();
}
break;
default:
{
const TString& codriga = riga().get(FR_CODARTMAG);
_sconti.put("CODART", codriga);
_sconti.read();
}
break;
}
const bool found = _sconti.good();
if (found && sco_scagl)
{
TRectype rec(_sconti.curr());
int last_scagl = 0;
int scagl = _sconti.get_int("NSCAGL");
const real qta(_riga->get_real(FR_QTA));
real qta_lim(_sconti.get_real("QLIM"));
while (_sconti.good() && scagl > last_scagl && qta_lim > ZERO && qta > qta_lim)
{
if (_sconti.next() == NOERR)
{
last_scagl = scagl;
scagl = _sconti.get_int("NSCAGL");
qta_lim =_sconti.get_real("QLIM");
rec = _sconti.curr();
}
}
_rcondv.read(rec);
}
if (!found)
_sconti.zero();
_load_mask |= load_scagl_only && sco_scagl;
_load_mask |= load_scagl_only && sco_um_gest;
sconto = _sconti.get("SCONTO");
_load_mask = !load_um_only && !load_scagl_only;
}
break;
case 'C':
sconto = clifo().vendite().get(CFV_SCONTO);
break;
default:
sconto.cut(0);
break;
}
return set_sconto(sconto) && sconto.full();
}
void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
{
const TString80 codriga = riga().get( FR_CODARTMAG );
const bool doc_al_lordo = testa().doc().calcolo_lordo();
_ivarid = clifo().vendite().get_bool(CFV_IVARID);
_load_mask = !load_um_only && !load_scagl_only;
_anamag.setkey(1);
_anamag.put("CODART", codriga);
if (codriga.empty() || _anamag.read() != NOERR)
{
set_prezzo(ZERO);
set_sconto("");
set_iva("");
set_provv(ZERO);
_prov.cut(0);
return;
}
real prezzo;
bool found_prezzo = false;
const TArticolo_giacenza & art = cached_article_balances(codriga);
const TTipo_riga_documento tiporiga(riga().get(FR_TIPORIGA));;
if (tiporiga.tipo() == RIGA_OMAGGI)
{
const int annoes = esercizi().date2esc(testa().get_date(F_DATADOC));
const TString4 codmag = riga().get(FR_CODMAG);
const TString80 livello = riga().get(MAG_LIVELLO);
found_prezzo = true;
const TTipo_valorizz tvo = TTipo_valorizz(ini_get_int(CONFIG_DITTA, "ve", "PriceOmaggi") - 1);
switch (tvo)
{
case valorizz_ultcos:
prezzo = art.ultimo_costo(annoes);
break;
case valorizz_mediacos:
prezzo = art.media_costi(annoes);
break;
case valorizz_przlist:
{
const TString catven = testa().get(F_CATVEN);
const TString codlist = testa().get(F_CODLIST);
prezzo = CENTO / (CENTO + art.get_real(ANAMAG_PERCRIC)) * art.prezzo_listino(annoes, catven, codlist);
}
break;
case valorizz_coststd:
prezzo = art.costo_standard(annoes);
break;
case valorizz_costmediopond:
prezzo = art.costo_mediopond(annoes,codmag,livello);
break;
case valorizz_costmedio:
prezzo = art.costo_medio(annoes,codmag,livello);
break;
case valorizz_LIFO:
prezzo = art.LIFO(annoes,codmag,livello, false);
break;
case valorizz_FIFO:
prezzo = art.FIFO(annoes,codmag,livello, false);
break;
case valorizz_LIFOa:
prezzo = art.LIFO_annuale(annoes,codmag,livello, false);
break;
case valorizz_FIFOa:
prezzo = art.FIFO_annuale(annoes,codmag,livello, false);
break;
default :
found_prezzo = false;
break;
}
}
const TString4 umriga(riga().get(FR_UMQTA));
if (umriga.full())
{
_umart.setkey(2);
_umart.put("CODART", codriga);
_umart.put("UM", umriga);
if (_umart.read() != NOERR)
_umart.zero();
}
bool prezzo_lordo = false;
TString4 valuta;
bool found_condv = false;
const bool cv_scagl = _condv.get_bool("GESTSCAGL");
const bool cv_um = _condv.get_bool("GESTUM");
if (!found_prezzo)
{
found_condv = cerca(A_CONTRATTI) || cerca(A_OFFERTE) || cerca(A_LISTINI);
if (found_condv)
{
_load_mask |= load_scagl_only && cv_scagl;
_load_mask |= load_um_only && cv_um;
prezzo = _rcondv.get_real("PREZZO");
valuta = _condv.get("CODVAL");
prezzo_lordo = _condv.get_bool("IMPLORDI");
_prov = _condv.get(CONDV_TIPO);
}
else
{
TString16 field_prezzo = testa().doc().tipo().field_prezzo();
if (field_prezzo.blank())
prezzo = _umart.get_real("PREZZO");
else
prezzo = _anamag.get_real(field_prezzo);
_load_mask |= load_um_only;
_prov = "A";
}
}
if (doc_al_lordo)
{
if (!prezzo_lordo)
{
const TCodiceIVA iva(_anamag.get("CODIVA"));
prezzo = iva.lordo(prezzo, AUTO_PRICES_DECIMALS, valuta);
}
}
else
{
if (prezzo_lordo)
{
const TCodiceIVA iva(_anamag.get("CODIVA"));
iva.scorpora(prezzo, AUTO_PRICES_DECIMALS, valuta);
}
}
set_prezzo(prezzo, valuta);
TString codiva = _anamag.get(_ivarid ? ANAMAG_CODIVAR : ANAMAG_CODIVA);
if (_testa != nullptr)
{
TString cod = _testa->condv().clifo().vendite().get(CFV_ASSFIS);
if (cod.blank())
cod =_testa->doc().codesiva();
if (cod.full())
codiva = cod;
}
set_iva(codiva);
// Gestione sconti di riga
const char gestione1 = ini_get_string(CONFIG_DITTA, "ve", "GESSCORIGA")[0];
if (!try_sconto(gestione1, found_condv, load_um_only, load_scagl_only) && gestione1 > ' ')
{
const char gestione2 = ini_get_string(CONFIG_DITTA, "ve", "GESSCORIGA2")[0];
if (gestione2 != gestione1 && (gestione2 == 'A' || gestione2 == 'C' || gestione2 == 'L'))
try_sconto(gestione2, found_condv, load_um_only, load_scagl_only);
}
if (_riga && _riga->id2pos(FR_PERCPROV) >= 0 && _riga->field(FR_PERCPROV).active())
{
const TString& codage = _testa->get(F_CODAG);
if (codage.full())
{
const TRectype& age = cache().get(LF_AGENTI, codage);
if (!age.empty())
{
TString16 seqric(age.get(AGE_SEQRIC));
real percprovv;
if (seqric[0] == '-')
seqric = ini_get_string(CONFIG_DITTA, "ve", "AGETIPOPERC");
int len = seqric.len();
int i;
_load_mask |= load_scagl_only && cv_scagl;
_load_mask |= load_scagl_only && cv_um;
for (i = 0; percprovv.is_zero() && seqric[i] != '\0' && seqric[i] != '-'; i++)
{
TString16 codric;
if (isdigit(seqric[i]))
codric = age.get(format("CODRICPR%d", i+1));
percprovv = get_percprovv(seqric[i], codric, true, age);
}
real percalt;
seqric = age.get(AGE_SEQALT);
for (i = 0; percalt.is_zero() && seqric[i] != '\0' && seqric[i] != '-'; i++)
{
TString16 codric;
if (isdigit(seqric[i]))
codric = age.get(format("CODALTPR%d", i+1));
percalt = get_percprovv(seqric[i], codric, true, age);
}
percprovv += percalt;
set_provv(percprovv);
}
}
}
if (_riga && _riga->id2pos(FR_PERCPROV1) >= 0 && _riga->field(FR_PERCPROV1).active())
{
const TString & codage = _testa->get(F_CODAGVIS);
if (codage.full())
{
const TRectype & age = cache().get(LF_AGENTI, codage);
if (!age.empty())
{
TString16 seqric = age.get(AGE_SEQRIC);
if (seqric[0] == '-')
seqric = ini_get_string(CONFIG_DITTA, "ve", "AGETIPOPERC");
_load_mask |= load_scagl_only && cv_scagl;
_load_mask |= load_scagl_only && cv_um;
real percprovv;
for (int i = 0; percprovv.is_zero() && seqric[i] != '\0' && seqric[i] != '-'; i++)
{
TString16 codric;
if (isdigit(seqric[i]))
codric = age.get(format("CODRICPR%d", i+1));
percprovv = get_percprovv(seqric[i], codric, false, age);
}
real percalt;
seqric = age.get(AGE_SEQALT);
for (int i = 0; percalt.is_zero() && seqric[i] != '\0' && seqric[i] != '-'; i++)
{
TString16 codric;
if (isdigit(seqric[i]))
codric = age.get(format("CODALTPR%d", i+1));
percalt = get_percprovv(seqric[i], codric, false, age);
}
percprovv += percalt;
set_provv1(percprovv);
}
}
}
if (found_condv && _testa->is_running())
update_omaggi(load_scagl_only);
}
void TCond_vendita::update_omaggi(bool full)
{
static TString16 tipo_riga("_");
TSheet_field & sh = (TSheet_field &) testa().field(F_SHEET);
int current_doc_row = sh.selected() + 1;
TDocumento & doc = testa().doc();
if (doc[current_doc_row].is_omaggio())
return;
if (current_doc_row < doc.rows())
{
TRiga_documento & r = doc[current_doc_row + 1];
if (r.is_omaggio() && r.is_generata())
{
sh.update_row(current_doc_row - 1);
doc.destroy_row(current_doc_row + 1, true);
sh.destroy(current_doc_row, true);
}
}
real qta = _riga->get(FR_QTA);
bool creata = FALSE;
if (full || qta != ZERO)
{
const TString80 codart_omaggio(_rcondv.get(RCONDV_CODARTOM));
if (tipo_riga[0] == '_')
{
TConfig cnf(CONFIG_STUDIO, "ve");
tipo_riga = cnf.get("TROMAGGI");
if (tipo_riga.empty())
{
tipo_riga = "09";
cnf.set("TROMAGGI", tipo_riga);
warning_box(FR("Il tipo riga omaggi non risultava impostato.\nL'applicazione userà automaticamente il tipo %s"),
(const char*) tipo_riga);
}
}
const real qbase = _rcondv.get_real("QBASE");
if (qbase.is_zero())
qta = ZERO;
else
{
qta /= _rcondv.get_real(RCONDV_QBASE);
qta.floor();
qta *= _rcondv.get_real(RCONDV_QOM);
}
creata = codart_omaggio.not_empty() && tipo_riga.not_empty() && !qta.is_zero();
if (creata)
{
TRiga_documento & curr_row = doc[current_doc_row];
TToken_string & rw = sh.row(current_doc_row - 1);
sh.update_row(current_doc_row - 1);
curr_row.autosave(sh);
TRiga_documento & r = doc.insert_row(current_doc_row + 1, tipo_riga);
r.generata();
TString8 codmag(_riga->get(FR_CODMAG)); codmag << _riga->get(FR_CODDEP);
r.put(RDOC_CODMAG, codmag);
r.put(RDOC_CODART, codart_omaggio);
r.put(RDOC_UMQTA, _rcondv.get(RCONDV_UMOM));
r.put(RDOC_QTA, qta);
real prezzo(_rcondv.get(RCONDV_PROMAGGIO));
const TString4 codval(_condv.get(CONDV_CODVAL));
const TString4 codiva_cli(doc.codesiva());
if (codiva_cli.not_empty())
r.put(RDOC_CODIVA, codiva_cli);
else
r.put(RDOC_CODIVA, _rcondv.get(RCONDV_CODIVA));
r.put(RDOC_ADDIVA, _rcondv.get(RCONDV_ADDIVA));
sh.insert(current_doc_row, false);
r.autoload(sh);
sh.check_row(current_doc_row);
r.autosave(sh);
prezzo = normalize_valuta(prezzo, codval);
r.put(RDOC_PREZZO, prezzo);
r.autoload(sh);
if (!testa().is_omaggio_enabled())
{
sh.disable_row(current_doc_row);
sh.check_row(current_doc_row);
}
sh.force_update();
}
}
}
TCond_vendita::TCond_vendita(TDocumento_mask * testa, TMask * riga)
: _testa(testa), _riga(riga),
_condv( LF_CONDV ), _rcondv( LF_RCONDV ), _sconti( LF_SCONTI ),
_anamag(LF_ANAMAG), _umart(LF_UMART),
_ivarid(FALSE), _load_mask(FALSE)
{
}

71
src/ve01/sconti.h Normal file
View File

@ -0,0 +1,71 @@
#ifndef __SCONTI_H
#define __SCONTI_H
#ifndef __VELIB_H
#include "velib.h"
#endif
#ifndef __CONFIG_H
#include <config.h>;
#endif
class TCond_vendita : public TObject
{
TString80 _sconto;
TString4 _codiva;
TString4 _prov;
real _prezzo;
real _provv;
real _provv1;
real _molt_sconto;
TDocumento_mask* _testa;
TMask* _riga;
TLocalisamfile _condv;
TLocalisamfile _rcondv;
TLocalisamfile _sconti;
TLocalisamfile _anamag;
TLocalisamfile _umart;
bool _ivarid;
bool _load_mask;
bool cerca(int tiporicerca);
real normalize_valuta(const real & val, const char * val_rif = "");
protected:
void set_prezzo(const real & prezzo, const char * val_rif = "");
void set_provv(const real & provv);
void set_provv1(const real & provv);
void set_iva(const TString & codiva);
void update_omaggi(bool full);
TDocumento_mask & testa() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _testa; }
TMask & riga() const { CHECK(_riga, "Maschera riga non inizializzata"); return * _riga; }
bool try_sconto(char gestione, bool found_condv, bool load_um_only, bool load_scagl_only);
public:
TCli_for & clifo() const { return _testa->doc().clifor(); }
bool set_sconto( const char* exp, bool signal = false);
const TString& get_sconto() const { return _sconto; }
real sconto_val() const { return _molt_sconto;}
real get_prezzo() const { return _prezzo; }
real get_provv() const { return _provv; }
real get_percprovv(char tipoprovv, const TString & codpr, bool first, const TRectype & age) const;
const TString & get_iva() const { return _codiva; }
// void set_clifo( TCli_for * clifo) { _clifo = clifo; }
// void set_config( TConfig * ditta) { _config_ditta = ditta; }
void set_testa( TDocumento_mask * testa ){ _testa = testa; }
void set_riga( TMask * riga ){ _riga = riga; }
void ricerca(bool load_um_only = FALSE, bool load_scagl_only = FALSE);
bool gestum() const { return _condv.get_bool("GESTUM"); }
const char * get_prov() const { return _prov; }
TCond_vendita(TDocumento_mask* testa, TMask* riga);
virtual ~TCond_vendita() {}
};
#endif

110
src/ve01/scontid.frm Normal file
View File

@ -0,0 +1,110 @@
// Form per la stampa degli sconti di documento
USE 35
END
DESCRIPTION
BEGIN
35->* "Archivio Sconti"
END
GENERAL
BEGIN
OFFSET 0 0
END
SECTION GRAPHICS FIRST 66
LINEA 1 1 1
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
END
SECTION HEADER ODD 6
STRINGA 1 40
BEGIN
KEY "nome ditta"
PROMPT 1 1 "Ditta "
END
DATA 2 10
BEGIN
KEY "Data"
PROMPT 55 1 "Data "
END
NUMERO 3 7
BEGIN
KEY "Nr. pagina"
PROMPT 72 1 "Pagina "
END
STRINGA 9 23
BEGIN
KEY "titolo"
PROMPT 28 2 "Stampa sconti documento"
END
STRINGA 4 80
BEGIN
KEY "Separatore (iniziale)"
PROMPT 1 3 "--------------------------------------------------------------------------------"
END
STRINGA 5 10
BEGIN
KEY "Intestazione (Categoria vendite)"
PROMPT 1 4 "Categoria"
END
STRINGA 6 12
BEGIN
KEY "Intestazione (Descrizione)"
PROMPT 14 4 "Descrizione"
END
STRINGA 7 7
BEGIN
KEY "Intestazione (Sconto)"
PROMPT 66 4 "Sconto"
END
STRINGA 8 80
BEGIN
KEY "Separatore (finale)"
PROMPT 1 5 "--------------------------------------------------------------------------------"
END
END
SECTION BODY ODD 2
STRINGA 1 2
BEGIN
KEY "Categoria di vendita"
PROMPT 1 1 ""
FIELD 35->CODCAT
END
STRINGA 2 50
BEGIN
KEY "Descrizione"
PROMPT 14 1 ""
FIELD 35->DESCR
END
STRINGA 7 25
BEGIN
KEY "Sconto"
PROMPT 66 1 ""
FIELD 35->SCONTO
END
END
END

173
src/ve01/scontii.frm Normal file
View File

@ -0,0 +1,173 @@
// Form per la stampa degli sconti incondizionati.
USE 35
JOIN CVE TO 35 ALIAS 201 INTO CODTAB==CODCAT
JOIN %ZON TO 35 ALIAS 202 INTO CODTAB==CODART[3,4]
JOIN %CPG TO 35 ALIAS 203 INTO CODTAB==CODART[5,8]
JOIN 35 TO 35 ALIAS 204 INTO TIPO=="D" CODCAT==CODART[1,2]
END
DESCRIPTION
BEGIN
35->* "Archivio Sconti"
201@->* "Tabella categorie di vendita"
202@->* "Tabella zone"
203@->* "Tabella codizioni di pagamento"
204@->* "Archivio sconti(documento)"
END
GENERAL
BEGIN
OFFSET 0 0
END
SECTION GRAPHICS FIRST 66
LINEA 1 1 1
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
END
SECTION HEADER ODD 6
STRINGA 1 40
BEGIN
KEY "nome ditta"
PROMPT 1 1 "Ditta "
END
DATA 2 10
BEGIN
KEY "Data"
PROMPT 55 1 "Data "
END
NUMERO 3 7
BEGIN
KEY "Nr. pagina"
PROMPT 72 1 "Pagina "
END
STRINGA 11 28
BEGIN
KEY "titolo"
PROMPT 26 2 "Stampa sconti incondizionati"
END
STRINGA 4 80
BEGIN
KEY "Separatore (iniziale)"
PROMPT 1 3 "--------------------------------------------------------------------------------"
END
STRINGA 5 10
BEGIN
KEY "Intestazione (Categoria vendite)"
PROMPT 1 4 "Categoria"
END
STRINGA 6 12
BEGIN
KEY "Intestazione (Sconto cliente)"
PROMPT 14 4 "Sc. cliente"
END
STRINGA 7 5
BEGIN
KEY "Intestazione (Zona)"
PROMPT 28 4 "Zona"
END
STRINGA 8 11
BEGIN
KEY "Intestazione (Cond. pag.)"
PROMPT 35 4 "Cond. pag."
END
STRINGA 9 7
BEGIN
KEY "Intestazione (Sconto)"
PROMPT 46 4 "Sconto"
END
STRINGA 10 80
BEGIN
KEY "Separatore (finale)"
PROMPT 1 5 "--------------------------------------------------------------------------------"
END
END
SECTION BODY ODD 6
STRINGA 1 50
BEGIN
KEY "Descrizione categoria"
PROMPT 1 1 "Categoria vendite: "
FIELD 201@->S0
END
STRINGA 2 50
BEGIN
KEY "Descrizione sconto cliente"
PROMPT 1 2 "Sconto cliente: "
FIELD 204@->DESCR
END
STRINGA 3 50
BEGIN
KEY "Descrizione zona"
PROMPT 1 3 "Zona: "
FIELD 202@->S0
END
STRINGA 4 50
BEGIN
KEY "Descrizione condizione di pagamento"
PROMPT 1 4 "Cond. di pag.: "
FIELD 203@->S0
END
STRINGA 5 2
BEGIN
KEY "Categoria di vendita"
PROMPT 1 5 ""
FIELD 35->CODCAT
END
STRINGA 6 2
BEGIN
KEY "Sconto cliente"
PROMPT 14 5 ""
FIELD 35->CODART[1,2]
END
STRINGA 7 2
BEGIN
KEY "Zona"
PROMPT 28 5 ""
FIELD 35->CODART[3,4]
END
STRINGA 8 25
BEGIN
KEY "Condizione di pagamento"
PROMPT 35 5 ""
FIELD 35->CODART[5,8]
END
STRINGA 9 25
BEGIN
KEY "Sconto"
PROMPT 46 5 ""
FIELD 35->SCONTO
END
END
END

150
src/ve01/scontir.frm Normal file
View File

@ -0,0 +1,150 @@
// Form per la stampa degli sconti di riga.
USE 35
JOIN 47 INTO CODART==CODART
JOIN %UMS TO 35 ALIAS 201 INTO CODTAB==UM
JOIN CVE TO 35 ALIAS 202 INTO CODTAB==CODCAT
END
DESCRIPTION
BEGIN
35->* "Archivio Sconti"
47->* "Anagrafica magazzino"
201@->* "Tabella unita' di misura"
202@->* "Tabella categorie di vendita"
END
GENERAL
BEGIN
OFFSET 0 0
END
SECTION GRAPHICS FIRST 66
LINEA 1 1 1
BEGIN
PROMPT 1 1 ""
FLAGS "D"
END
END
SECTION HEADER ODD 6
STRINGA 1 40
BEGIN
KEY "nome ditta"
PROMPT 1 1 "Ditta "
END
DATA 2 10
BEGIN
KEY "Data"
PROMPT 55 1 "Data "
END
NUMERO 3 7
BEGIN
KEY "Nr. pagina"
PROMPT 72 1 "Pagina "
END
STRINGA 9 21
BEGIN
KEY "titolo"
PROMPT 30 2 "Stampa sconti di riga"
END
STRINGA 4 80
BEGIN
KEY "Separatore (iniziale)"
PROMPT 1 3 "--------------------------------------------------------------------------------"
END
STRINGA 5 10
BEGIN
KEY "Intestazione (Categoria vendite)"
PROMPT 1 4 "Categoria"
END
STRINGA 6 14
BEGIN
KEY "Intestazione (Cod. Articolo)"
PROMPT 14 4 "Cod. Articolo"
END
STRINGA 7 3
BEGIN
KEY "Intestazione (Unita' di misura)"
PROMPT 36 4 "UM"
END
STRINGA 8 7
BEGIN
KEY "Intestazione (Sconto)"
PROMPT 39 4 "Sconto"
END
STRINGA 9 80
BEGIN
KEY "Separatore (finale)"
PROMPT 1 5 "--------------------------------------------------------------------------------"
END
END
SECTION BODY ODD 5
STRINGA 1 50
BEGIN
KEY "Descrizione categoria"
PROMPT 1 1 "Categoria vendite: "
FIELD 202@->S0
END
STRINGA 2 50
BEGIN
KEY "Descrizione articolo"
PROMPT 1 2 "Articolo: "
FIELD 47->DESCR
END
STRINGA 3 50
BEGIN
KEY "Descrizione unita' di misura"
PROMPT 1 3 "Unita' di misura: "
FIELD 201@->S0
END
STRINGA 4 2
BEGIN
KEY "Categoria di vendita"
PROMPT 1 4 ""
FIELD 35->CODCAT
END
STRINGA 5 20
BEGIN
KEY "Codice articolo"
PROMPT 14 4 ""
FIELD 35->CODART
END
STRINGA 6 2
BEGIN
KEY "Unita' di misura"
PROMPT 36 4 ""
FIELD 35->UM
END
STRINGA 7 25
BEGIN
KEY "Sconto"
PROMPT 39 4 ""
FIELD 35->SCONTO
END
END
END

33
src/ve01/smartcard.ini Normal file
View File

@ -0,0 +1,33 @@
[ve0100]
Type=1
FieldsOnCard = 3
InputFld(0) = 108
InputFld(1) = 400
InputFld(2) = 402
InputFld(3) = -1
InputFld(4) = -1
InputFld(5) = -1
InputFld(6) = -1
InputFld(7) = 403
OutputFld(0) = 108
OutputFld(1) = 401
OutputFld(2) = 411
OutputFld(3) = 102
OutputFld(4) = 101
OutputFld(5) = 103
OutputFld(6) = 104
OutputFld(7) = 403
ProgFld(1) = 710
Password = 883
TabFld(0) = CODTAB
TabFld(1) = R0
TabFld(2) = R1
TabFld(3) = I0
TabFld(4) = S6
TabFld(5) = S7
TabFld(6) = I1
TabFld(7) = R2
AnnoField = 3
NDocField = 6
CheckField = 482

42
src/ve01/tabcomfrd.txt Normal file
View File

@ -0,0 +1,42 @@
[Header]
Version=199518
File=4
Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,25|S5,25|S6,5|S7,5
Fields=S8,5|S9,5|S10,5|S11,5|S12,5|S13,70|S14,5|I0,7|I1,7|I2,7
Fields=I3,7|I4,7|I5,7|I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7
Fields=I13,7|I14,7|R0,18|R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18
Fields=R8,18|R9,18|R10,18|R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18
Fields=R18,18|R19,18|R20,18|R21,18|R22,18|R23,18|R24,18|R25,18|R26,18|R27,18
Fields=R28,18|R29,18|R30,18|R31,18|R32,18|R33,18|R34,18|D0,10|D1,10|D2,10
Fields=D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1|B6,1|B7,1
Fields=B8,1|B9,1|B10,1|B11,1|B12,1|B13,1|B14,1|B15,1|B16,1|DATAAGG,10
Fields=UTENTE,16|FPC,1
[Data]
FRD|BASESCONTO|Importo di riferimento per gli sconti|SOMMA("IMPNS","(TIPO()!='S') && (TIPO()!='C')")||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|BOLLI|Spese bolli|BOLLI(_TOTDOC, 1, 0)||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|CASSAPREV|Cassa previdenza|SOMMA("IMPONIBILE()","TIPORIT()='S")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X||||||X|||||||||||10-02-2024|LISA:AGargiulo
FRD|IMP50PERC|imponibile al 50%|TOTPRE/2
FRD|IMPCAS|Imponibile per cassa previdenza|TOTPRE+TOTMER|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X||||||X|||||||||||12-02-2024|CRI:ccosentino
FRD|IMPONIBILI|Totale imponibili|IMPONIBILI(1)|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X||||||X
FRD|IMPOSTE|Totale imposte|IMPOSTE()||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|IMPRIT|Imponibile per ritenute|TOTMER+TOTPRE|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|||||||||||||||||12-02-2024|ADMIN@SRVTS01
FRD|NETTOAPAG|Netto a Pagare|TOTDOC-TOTRIT||||||||||||||18|||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X
FRD|OMAGGI|Valore omaggi|SOMMA("PREZZONS*QTA","TIPO()=='O'")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X||||||X
FRD|PROVVD|Totale provvigioni|SOMMA("PROVVR")||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|SCONTOD|Totale sconti|SOMMA("SCONTOR")||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|SCONTOT|Totale sconti di testa|-SOMMA("IMPONIBILE()","TIPO()=='C'")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X||||||X
FRD|SPESE|Totale spese da addebitare|SOMMA("IMPONIBILE()","(TIPO()=='S')")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X
FRD|SPESGEN|Spese generali in %|SOMMA("IMPONIBILE()","TIPORIGA=='04'")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X
FRD|SPESIMB|Spese a quantita' e prezzo|SOMMA("IMPONIBILE()","TIPORIGA=='03'")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X
FRD|SPESINC|Spese incasso|SPESEINC(_TOTDOC,1,0)||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|SPESTRA|Spese a valore|SOMMA("IMPONIBILE()","TIPORIGA=='02'")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X||||||X
FRD|TOTDOC|Totale fattura|IMPONIBILI()+IMPOSTE()||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|TOTMER|Totale importi netti merce non scontati|SOMMA("IMPNN","TIPO()=='M'")||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|TOTNS|Totale importi netti scontati|SOMMA("IMPNS")||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|TOTPRE|Totale prestazioni|SOMMA("IMPNN","TIPO()=='P'")||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X
FRD|TOTPROVV|Totale provvigioni||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X|X||||||X
FRD|TOTRIT|Totale Ritenute|SOMMA("RITENUTA")|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X||||||X
FRD|TOTRITFIS|Totale ritenute fiscali|SOMMA("RITENUTA","TIPORIT()=='F'")
FRD|TOTRITSOC|totale ritenute sociali|SOMMA("RITENUTA","TIPORIT()=='S'")
FRD|TOTSPE|Totale spese da addebitare|SOMMA("IMPNN",'TIPO()=="S"')||###.###.###.##@,@@@|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||X

30
src/ve01/tabcomfrr.txt Normal file
View File

@ -0,0 +1,30 @@
[Header]
Version=199518
File=4
Fields=COD,3|CODTAB,25|S0,70|S1,70|S2,70|S3,70|S4,25|S5,25|S6,5|S7,5
Fields=S8,5|S9,5|S10,5|S11,5|S12,5|S13,70|S14,5|I0,7|I1,7|I2,7
Fields=I3,7|I4,7|I5,7|I6,7|I7,7|I8,7|I9,7|I10,7|I11,7|I12,7
Fields=I13,7|I14,7|R0,18|R1,18|R2,18|R3,18|R4,18|R5,18|R6,18|R7,18
Fields=R8,18|R9,18|R10,18|R11,18|R12,18|R13,18|R14,18|R15,18|R16,18|R17,18
Fields=R18,18|R19,18|R20,18|R21,18|R22,18|R23,18|R24,18|R25,18|R26,18|R27,18
Fields=R28,18|R29,18|R30,18|R31,18|R32,18|R33,18|R34,18|D0,10|D1,10|D2,10
Fields=D3,10|D4,10|B0,1|B1,1|B2,1|B3,1|B4,1|B5,1|B6,1|B7,1
Fields=B8,1|B9,1|B10,1|B11,1|B12,1|B13,1|B14,1|B15,1|B16,1|DATAAGG,10
Fields=UTENTE,16|FPC,1
[Data]
FRR|IMPLN|Importo riga lordo non scontato|IMPORTO(0, 1)||###.###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|IMPLS|Importo lordo riga scontato|IMPORTO(1,1)||###.###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|IMPNN|Importo netto non scontato|IMPORTO()||###.###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|IMPNS|Importo netto della riga|IMPORTO(1)||###.###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|IMPOSTA|Imposta riga|IVA()||###.###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|PREZZOLN|Prezzo lordo non scontato|PREZZO(0, 1)||###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|PREZZOLS|Prezzo lordo scontato|PREZZO(1, 1)||###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|PREZZONN|Prezzo netto non scontato|PREZZO()||###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|PREZZONS|Prezzo netto scontato|PREZZO(1)||###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|PROVVF|Provvigione fissa|IF(NUM(IMPFISUN=="X");IMPFISSO*QTA;IMPFISSO)|||||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X|X| | | | | |X|X| | | | | | | ||||
FRR|PROVVR|Provvigione riga|PROVV()||###.###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|RITENUTA|Ritenuta|RITENUTA(0,2)|||||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||| | | | | | |X| | | | | | | | | ||||
FRR|SCONTOR|Sconto riga|SCONTO()||###.###.###.##@,@@@|||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000||||||X| | | | | | | | | | | | | | | ||||
FRR|TIPORIT|Tipo ritenuta|TIPORIT()|||||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||| | | | | | | | | | | | | | | | ||||
FRR|ZERO|Zero|0|||||||||||||||||||||||||||||0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|0.00000|||||| | | | | | | | | | | | | | | | ||||

47
src/ve01/tmaskven.cpp Normal file
View File

@ -0,0 +1,47 @@
#ifndef __TMASKVEN_H
#include "tmaskven.h"
#endif
const TString& TMask_vendite::get(short fld_id) const
{
if( !present( fld_id ) )
return "";
else
return TMask::get( fld_id );
}
void TMask_vendite::set_handler(short fld_id, CONTROL_HANDLER handler)
{
if( !present( fld_id ) )
return;
TMask::set_handler( fld_id, handler );
}
void TMask_vendite::set(short fld_id, const char* str, bool hit )
{
if( !present( fld_id ) )
return;
TMask::set( fld_id, str, hit );
}
void TMask_vendite::show(short fld_id, bool on )
{
if( !present( fld_id ) )
return;
TMask::show( fld_id, on );
}
void TMask_vendite::enable(short fld_id, bool on )
{
if( !present( fld_id ) )
return;
TMask::enable( fld_id, on );
}
void TMask_vendite::check_field( short fld_id )
{
if( !present( fld_id ) )
return;
field( fld_id ).on_hit( );
field( fld_id ).check( );
}

29
src/ve01/tmaskven.h Normal file
View File

@ -0,0 +1,29 @@
#ifndef __TMASKVEN_H
#define __TMASKVEN_H
#ifndef __MASK_H
#include <mask.h>
#endif
class TMask_vendite : public TMask
{
friend TMask;
protected:
bool present( short fld_id ) const { return ( id2pos( fld_id ) >= 0 ); };
public:
void check_field( short fld_id );
TMask_vendite( const char* name ) : TMask( name ) { };
virtual void set(short fld_id, const char* str, bool hit=FALSE);
virtual const TString& get(short fld_id) const;
virtual void set_handler(short fld_id, CONTROL_HANDLER handler);
virtual void show(short fld_id = -1, bool on = TRUE);
virtual void enable(short fld_id, bool on = TRUE);
};
#endif

243
src/ve01/totale.ini Normal file
View File

@ -0,0 +1,243 @@
# Esempio di profilo documento : Profilo Bolla Vendita
[MAIN]
# Descrizione a caratteri del documento
TYPE=Bolla Base
# Dove sono le risorse per il documento
MSKFILE=VEBOLLAC
FRMFILE=BOLLAC.FRM
PROGPIEDE=31|35
# Procedure utente da chiamare per il documento ( preprocessarle? )
NUOVO=1
MODIFICA=5
CANCELLA=12
STAMPA=4
RAGGRUPPA=3
USER=2
# Indica se il documento è indirizzato ad un cliente o ad un fornitore
TIPOCF=C
# Quali progressivi appaiono in stampa o visualizzazione del documento
ProgPiede=1,7,23,12
[INSERIMENTO]
# Stati in cui è possibile effettuare la operazione
STATIVALIDI=1,2,3,4,5,6,7,8,9
# Stato finale del documento dopo la operazione
STATOFINALE=1
[MODIFICA]
# Stati in cui è possibile effettuare la operazione
STATIVALIDI=1,2,3,4,5
# Stato finale del documento dopo la operazione
STATOFINALE=N
[CANCELLAZIONE]
STATIVALIDI = 6,7
STATOFINALE = 4
REMOVE = 0
[STAMPA]
# Stati in cui è possibile effettuare la operazione
STATIVALIDI=1,2,3,4,5
# Stato finale del documento dopo la operazione
STATOFINALE=6
[RAGGRUPPA]
# Stati in cui è possibile effettuare la operazione
STATIVALIDI=6,7,8,9
# Stato finale del documento dopo la operazione
STATOFINALE=1
[SPECIALE]
# Stati in cui è possibile effettuare la operazione
STATIVALIDI=1,2,3,4,5,6,7,8,9
# Stato finale del documento dopo la operazione
STATOFINALE=9
[PROFILO]
TIPOCF = 2
CODCF = 3
RAGSOC = 2
OCCAS = 0
OCFPI = 1
COFI = 1
STATOPAIV = 1
PAIVA = 1
INDCF = 1
CIVCF = 1
LOCALITACF = 1
CAPCF = 1
PROVCOM = 1
COMCF = 1
DENCOM = 1
STATOCF = 1
DESSTATOCF = 1
CODVAL = 2
NOME_VAL = 1
CAMBIO = 3
DATA_CAMBIO = 1
CODLIN = 2
DESLIN = 1
CODPAG = 3
DESCODPAG = 1
DATAINSC = 2
DATASCAD1 = 1
DATASCAD2 = 1
DATASCAD3 = 1
DATASCAD4 = 1
DATASCAD5 = 1
CODABIA = 3
CODCABA = 3
DESBANAPP = 2
CODABIP = 2
CODCABP = 2
DESBANPRE = 2
CODLIST = 2
CODCONT = 2
CODCAMP = 2
SCONTOPERC = 2
CODINDSP = 2
INDSP = 2
CIVSP = 2
LOCALITASP = 2
CAPSP = 2
COMSP = 2
DENCOMSP = 2
PROVCOMSP = 2
STATOSP = 2
DESSTATOSP = 2
DATADOCRIF = 2
NUMDOCRIF = 2
CODAGVIS = 2
CODAG = 2
CODSPMEZZO = 2
CODPORTO = 2
PORTO = 2
CODNOTESP1 = 2
CODNOTESP2 = 2
CAUSTRASP = 2
DENCAUSTRASP = 2
CODVETT1 = 2
CODVETT2 = 2
CODVETT3 = 2
NOMEVETT1 = 2
NOMEVETT2 = 2
NOMEVETT3 = 2
NCOPIE = 2
DATAPART = 2
ORAPART = 2
IMPPAGATO = 2
ACCSALDO = 2
DOC1 = 2
DOC2 = 2
DOC3 = 2
DATACONS = 2
ASPBENI1 = 2
DESCRBENI1 = 2
ASPBENI2 = 2
DESCRBENI2 = 2
IMPNETTI = 2
RAGGREFF = 2
SPESEINC = 2
ADDBRB = 2
ADDBTR = 2
ADDBDE = 2
CODIVABRB = 2
CODIVABTR = 2
CODIVABTRE = 2
CODIVABDE = 2
# fine modifiche
CAUSMAG2 = 2
TARA = 2
PNETTO = 2
UMTARA = 2
RAGGR = 2
CAUSMAG1 = 2
NCOLLI = 2
RAGSOCSP = 2
CODIVAABRB = 3
UMPNETTO = 2
DESUMPNETTO = 2
DESUMTARA = 2
DESCRMAG1 = 2
DESCRMAG2 = 2
OCCASEDIT = 2
[SHEET]
NCOLS=4
1=2
2=5
3=6||30
4=9
5=10
6=13
7=8
[RIGHE]
NTIPIRIGA=3
1=01
2=02
3=03
[HANDLERS]
NHANDLER=0
1 = 140|1
2 = 108|2
3 = 111|3
3 = 113|3
3 = 115|3
3 = 117|3
3 = 118|3
[PROFILOGRUPPO]
=
1000 = 0
2000 = 0
1400 = 0
2400 = 0
1800 = 0
2800 =
1100 = 0
2100 = 0
1500 = 0
2500 = 0
1900 = 0
2900 =
1200 = 0
2200 = 0
29 =
1600 = 0
2600 = 0
101 = 0
100 = 2
200 = 2
300 = 2
400 = 2
500 = 2
600 = 2
1300 = 0
700 = 2
2300 = 0
800 = 2
900 = 2
1700 = 0
2700 =

20
src/ve01/ve0.cpp Normal file
View File

@ -0,0 +1,20 @@
#include <xvt.h>
#include "ve0.h"
int main(int argc, char** argv)
{
int rt = -1;
const int r = (argc > 1) ? atoi(&argv[1][1]) : 1;
switch (r)
{
case 2: rt = ve0200(argc, argv); break; // Parametri Vendite
case 3: rt = ve0300(argc, argv); break; // Compilatore Profili
case 4: rt = ve0400(argc, argv); break; // Gestione Tabelle
case 5: rt = ve0500(argc, argv); break; // Gestione Glossario
case 6: rt = ve0600(argc, argv); break; // Tabelle di modulo
default: rt = ve0100(argc, argv); break; // Gestione Documenti
}
return rt;
}

11
src/ve01/ve0.h Normal file
View File

@ -0,0 +1,11 @@
#ifndef __VE0_H
#define __VE0_H
int ve0100(int argc, char* argv[]); // Motore di gestione documenti
int ve0200(int argc, char* argv[]); // Configurazione vendite
int ve0300(int argc, char* argv[]); // Generatore di maschere
int ve0400(int argc, char* argv[]); // Generatore di tabelle
int ve0500(int argc, char* argv[]); // Gestione Glossario
int ve0600(int argc, char* argv[]); // Gestione tabelle di modulo
#endif // __VE0_H

BIN
src/ve01/ve01.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

1412
src/ve01/ve0100.cpp Normal file

File diff suppressed because it is too large Load Diff

121
src/ve01/ve0100.h Normal file
View File

@ -0,0 +1,121 @@
#ifndef __VE0100_H
#define __VE0100_H
//#define CHANGE_MESSAGE "Sono state effettuate modifiche alla configurazione.\nPrima di eseguire la gestione documenti occorre rigenerare le maschere.\nDesideri farlo ora ?"
#ifndef __RELAPP_H
#include <relapp.h>
#endif
#ifndef __PRINTER_H
#include <printer.h>
#endif
#ifndef __VELIB_H
#include "velib.h"
#endif
// Definizione della classe dell'applicazione motore
class TMotore_application : public TRelation_application
{
TArray _file; // Tutti i file da usare
// Puntatore al profilo del documento caricato
// TConfig * _config_ditta;
// Puntatore alla maschera di ricerca
TMask * _msk;
TDocumento_mask * _docmsk;
// puntatore alla relazione
TRelation* _rel;
TString4 _codnum;
TString4 _tipodoc;
TString80 __last_key;
int _ncopie;
protected:
virtual void build_file_list(TBit_array & files);
// Array di maschere documento
TAssoc_array _doc_masks;
// Ridefinizione dei metodi virtuali
virtual bool user_create();
virtual bool user_destroy();
virtual bool menu(MENU_TAG mt);
virtual TMask* _get_mask(int mode);
virtual bool changing_mask(int mode);
bool can_make_doc_def();
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
virtual void init_modify_mode(TMask& m);
void load_auto_reopen_data();
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
virtual bool has_filtered_cursor() const { return true; }
virtual TCursor* get_filtered_cursor() const;
virtual bool save_and_new() const;
virtual bool can_I_write(const TRelation* rel) const;
// Funzioni da associare ad ogni procedura
int user_function( int index );
void user_set_handler( int fieldid, int index, TMask* m = NULL );
virtual const char* extra_modules() const { return "dt"; }
virtual void on_firm_change();
// Procedure e funzioni per la gestione degli stati
int stato_corrente( );
// Handler per la maschera di ricerca
static bool ndoc_handler(TMask_field& f, KEY key);
static bool tdoc_handler(TMask_field& f, KEY key);
// caricamento Inifile
virtual void sheet2ini(TSheet_field& s, TConfig& ini);
virtual void ini2mask(TConfig& ini, TMask& m, bool query);
virtual void mask2ini(const TMask& m, TConfig& ini) override;
virtual bool last_doc(char provv, int anno, const char* codnum, long& ndoc, TDate& datadoc) const;
bool save_and_print(bool savedoc, TPrtype mode);
virtual const char* record_description(const TRelation& rel) const;
public:
virtual void do_elab(TDocumento& doc, int w = 0); // w 0=Save; 1=Print; 2=Definitive
virtual void print();
virtual void preview();
virtual void mailto();
virtual TRelation* get_relation( ) const { return _rel; }
// Funzioni di accesso alle variabili private
virtual const char * query_mask_name() { return "ve0100a"; }
virtual TMask & query_mask() { CHECK( _msk, "Maschera di ricerca nulla!" ); return *_msk; }
virtual TDocumento_mask & edit_mask() const { CHECK( _docmsk, "Maschera di edit nulla!" ); return *_docmsk; }
TRelation & rel() { CHECK( _rel, "Relazione nulla!" ); return *_rel; }
TSheet_field & sheet() { return edit_mask().sheet(); }
// TConfig & config_ditta() {return *_config_ditta; }
TDocumento & doc() {return edit_mask().doc(); }
// Operazione
TMotore_application( ) : _ncopie(-1){ }
virtual ~TMotore_application( ) { }
bool TMotore_application::get_next_key(TToken_string& key);
virtual void pre_copy(TMask & m) override;
// virtual const char* get_next_key( );
};
inline TMotore_application& app() { return (TMotore_application &) main_app(); }
#endif

223
src/ve01/ve0100a.uml Normal file
View File

@ -0,0 +1,223 @@
#include "veuml.h"
TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Estremi del documento" 0 0 0 0
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 1 "@bDitta"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 2 "Codice "
FLAGS "FD"
USE LF_NDITTE
CHECKTYPE NORMAL
INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOCDITTA RAGSOC
END
STRING F_RAGSOCDITTA 50
BEGIN
PROMPT 17 2 "Ragione "
FLAGS "D"
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 4 "Estremi del documento"
END
LISTBOX F_PROVV 14
BEGIN
FIELD PROVV
PROMPT 46 7 "Tipo "
ITEM "D|Definitiva "
ITEM "P|Provvisoria"
KEY 1 2
FLAGS "DPG"
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 5 "Numerazione "
FIELD CODNUM
HELP "Codice numerazione"
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE FORCED
FLAG "UPA"
WARNING "Numerazione assente"
KEY 1 2
END
STRING F_DESNUM 50
BEGIN
PROMPT 24 5 ""
HELP "Descrizione numerazione"
USE %NUM KEY 2
INPUT S0 F_DESNUM
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUM
END
STRING F_TIPODOC 4
BEGIN
PROMPT 2 6 "Tipo "
FIELD TIPODOC
HELP "Codice tipo documento"
USE %TIP
INPUT CODTAB F_TIPODOC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC CODTAB
OUTPUT F_DESTIPODOC S0
CHECKTYPE FORCED
FLAG "UP"
WARNING La combinazione numerazione #F_CODNUM tipo documento #THIS_FIELD non è corretta
END
STRING F_DESTIPODOC 50
BEGIN
PROMPT 24 6 ""
HELP "Descrizione tipo documento"
USE %TIP KEY 2
INPUT S0 F_DESTIPODOC
DISPLAY "Descrizione@60" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOC
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 7 "Esercizio "
FIELD ANNO
CHECKTYPE REQUIRED
NUM_EXPR #F_ANNO>0
FLAG "AP"
KEY 1 2
WARNING "Inserire un anno valido"
END
NUMBER F_NDOC 6
BEGIN
PROMPT 24 7 "Numero "
FIELD NDOC
USE LF_DOC SELECT (#F_STATO=="")||(STATO==#F_STATO)
JOIN LF_CLIFO TO LF_DOC INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN LF_COMUNI TO LF_CLIFO INTO STATO==STATOCF COM==COMCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_NDOC
DISPLAY "Num." CODNUM
DISPLAY "Anno" ANNO
DISPLAY "Provv" PROVV
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc. " NDOC
DISPLAY "Stato@R" STATO
DISPLAY "Data\ndocumento" DATADOC
DISPLAY "C/F" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
DISPLAY "Indirizzo@35" LF_CLIFO->INDCF
DISPLAY "Numero@15" LF_CLIFO->CIVCF
DISPLAY "Località@50" LF_CLIFO->LOCALITACF
DISPLAY "Comune@50" LF_COMUNI->DENCOM
OUTPUT F_NDOC NDOC
OUTPUT F_TIPODOC TIPODOC
OUTPUT F_PROVV PROVV
CHECKTYPE REQUIRED
KEY 1 2
FLAG "R"
END
STRING F_STATO 1
BEGIN
PROMPT 69 7 "Stato "
USE %STD
INPUT CODTAB F_STATO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_STATO CODTAB
FLAG "U"
END
LIST F_TIPOCF 1 12
BEGIN
PROMPT 2 8 "Tipo "
ITEM "C|Cliente"
ITEM "F|Fornitore"
KEY 2
END
NUMBER F_CODCF 6
BEGIN
PROMPT 24 8 "Codice "
USE LF_DOC SELECT (TIPOCF==#F_TIPOCF)&&((#F_CODCF="")||(CODCF==#F_CODCF))&&((#F_STATO=="")||(STATO==#F_STATO))
BY LF_CLIFO->CODCF NDOC
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN LF_COMUNI TO LF_CLIFO INTO STATO==STATOCF COM==COMCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale@50" LF_CLIFO->RAGSOC
DISPLAY "Partita IVA@12" LF_CLIFO->PAIV
DISPLAY "Num." CODNUM
DISPLAY "Anno" ANNO
DISPLAY "Provv" PROVV
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc. " NDOC
DISPLAY "Stato@R" STATO
DISPLAY "Data\ndocumento@10" DATADOC
DISPLAY "Valuta" CODVAL
DISPLAY "Totale\ndocumento@18V" G1:TOTDOC
DISPLAY "Stato" STATO
DISPLAY "Indirizzo@35" LF_CLIFO->INDCF
DISPLAY "Numero@15" LF_CLIFO->CIVCF
DISPLAY "Località@50" LF_CLIFO->LOCALITACF
DISPLAY "Comune@50" LF_COMUNI->DENCOM
COPY OUTPUT F_NDOC
OUTPUT F_CODCF CODCF
CHECKTYPE NORMAL
KEY 2
END
STRING F_NUMDOCRIF 7
BEGIN
PROMPT 46 8 "Riferimento "
FLAGS "B"
END
STRING F_RAGSOCSEARCH 50
BEGIN
PROMPT 2 9 "Ragione Sociale "
USE LF_DOC SELECT (TIPOCF==#F_TIPOCF)&&(BETWEEN(STATO,#F_STATO,#F_STATO))
BY UPPER(LF_CLIFO->RAGSOC) NDOC
JOIN LF_CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF
JOIN LF_COMUNI TO LF_CLIFO INTO STATO==STATOCF COM==COMCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT LF_CLIFO->RAGSOC F_RAGSOCSEARCH
COPY DISPLAY F_CODCF
COPY OUTPUT F_CODCF
CHECKTYPE NORMAL
FLAGS "B"
END
ENDPAGE
ENDMASK

267
src/ve01/ve0100b.uml Normal file
View File

@ -0,0 +1,267 @@
#include "ve0100b1.h"
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_SELECT 2 2
BEGIN
PROMPT 1 1 "Tutti"
PICTURE TOOL_MULTISEL
END
#include <elabar.h>
ENDPAGE
PAGE "Elaborazioni " 0 0 0 0
BOOLEAN F_TYPE
BEGIN
PROMPT 1 0 "Aggiungere al doc. attuale"
MESSAGE FALSE SHOW,F_GROUP_D|HIDE,F_GROUP_S|CLEAR,F_UPDATE_HEADER
MESSAGE TRUE SHOW,F_GROUP_S|HIDE,F_GROUP_D|ENABLE,F_UPDATE_HEADER
END
LISTBOX F_ELAB 50 30
BEGIN
PROMPT 31 0 "@bElaborazione "
END
GROUPBOX F_GROUP_D 77 9
BEGIN
PROMPT 1 1 "@bDestinazione"
END
GROUPBOX F_GROUP_S 77 10
BEGIN
PROMPT 1 1 "@bSorgente"
END
STRING F_TIPODOC_ELAB 4
BEGIN
PROMPT 2 2 "Tipo documento "
HELP "Codice tipo documento"
USE %TIP
INPUT CODTAB F_TIPODOC_ELAB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC_ELAB CODTAB
OUTPUT F_DESTIPODOC_ELAB S0
CHECKTYPE NORMAL
FLAG "U"
GROUP 1
END
STRING F_DESTIPODOC_ELAB 50
BEGIN
PROMPT 24 2 ""
HELP "Descrizione tipo documento"
USE %TIP KEY 2
INPUT S0 F_DESTIPODOC_ELAB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
CHECKTYPE NORMAL
COPY OUTPUT F_TIPODOC_ELAB
GROUP 1
END
STRING F_STATODOC_ELAB 1
BEGIN
PROMPT 2 3 "Stato "
USE %STD
CHECKTYPE NORMAL
INPUT CODTAB F_STATODOC_ELAB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_STATODOC_ELAB CODTAB
OUTPUT F_DESSTATODOC_ELAB S0
FLAG "U"
GROUP 1
END
STRING F_DESSTATODOC_ELAB 50
BEGIN
PROMPT 24 3 ""
HELP "Descrizione stato documento"
USE %STD KEY 2
INPUT S0 F_DESSTATODOC_ELAB
DISPLAY "Descrizione@40" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_STATODOC_ELAB
CHECKTYPE NORMAL
GROUP 1
END
STRING F_CODNUM_ELAB 4
BEGIN
PROMPT 2 4 "Numerazione "
HELP "Codice numerazione"
USE %NUM
INPUT CODTAB F_CODNUM_ELAB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM_ELAB CODTAB
OUTPUT F_DESNUM_ELAB S0
CHECKTYPE NORMAL
FLAG "U"
WARNING "Numerazione assente"
GROUP 1
END
STRING F_DESNUM_ELAB 50
BEGIN
PROMPT 24 4 ""
HELP "Descrizione numerazione"
USE %NUM KEY 2
INPUT S0 F_DESNUM_ELAB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUM_ELAB
GROUP 1
END
NUMBER F_ANNO_ELAB 4
BEGIN
PROMPT 2 5 "Anno documento "
// CHECKTYPE REQUIRED
END
LIST F_TIPOCF_ELAB 1 11
BEGIN
PROMPT 2 9 ""
FLAGS "H"
HELP "Indicare se cliente oppure fornitore"
ITEM "C|Clienti"
ITEM "F|Fornitori"
END
NUMBER F_CODCF_ELAB 6
BEGIN
PROMPT 10 9 ""
FLAGS "HR"
END
STRING F_CODVAL_ELAB 3
BEGIN
PROMPT 10 25 ""
FLAGS "HR"
END
NUMBER F_NDOC_ELAB 6
BEGIN
PROMPT 24 5 "Numero doc. "
USE LF_DOC KEY 4
INPUT TIPOCF F_TIPOCF_ELAB SELECT
INPUT CODCF F_CODCF_ELAB SELECT
INPUT PROVV F_PROVV_ELAB SELECT
INPUT ANNO F_ANNO_ELAB SELECT
INPUT CODNUM F_CODNUM_ELAB
INPUT NDOC F_NDOC_ELAB
DISPLAY "Num." CODNUM
DISPLAY "Anno" ANNO
DISPLAY "Provv" PROVV
DISPLAY "Tipo" TIPODOC
DISPLAY "N.Doc.@7" NDOC
DISPLAY "Stato" STATO
DISPLAY "Data\ndocumento@10" DATADOC
OUTPUT F_DATADOC_ELAB DATADOC
OUTPUT F_CODNUM_ELAB CODNUM
OUTPUT F_NDOC_ELAB NDOC
CHECKTYPE SEARCH
WARNING "Documento inesistente o incompatibile"
ADD RUN ve0 -1
MESSAGE EMPTY SHOW,F_DATADOC_ELAB
MESSAGE HIDE,F_DATADOC_ELAB
GROUP GRP_DOC
END
LISTBOX F_PROVV_ELAB 14
BEGIN
PROMPT 52 5 "Tipo "
ITEM "D|Definitiva "
ITEM "P|Provvisoria"
KEY 1
FLAGS "P"
GROUP GRP_DOC
END
STRING F_NUMDOCRIF_ELAB 7
BEGIN
PROMPT 2 6 "Documento di riferimento "
FLAGS "B"
GROUP GRP_DOC
END
DATE F_DATADOC_ELAB
BEGIN
PROMPT 2 7 "Data documento "
FLAGS "A"
GROUP GRP_DOC
END
BOOLEAN F_UPDATE_HEADER
BEGIN
PROMPT 41 7 "Aggiorna testata"
END
STRING F_CODART 20
BEGIN
PROMPT 2 8 "Articolo "
USE LF_ANAMAG
JOIN LF_UMART INTO CODART==CODART
INPUT CODART F_CODART
DISPLAY "Codice@20" CODART
DISPLAY "Descrizione@50" DESCR
DISPLAY "Unità di misura" LF_UMART->UM
OUTPUT F_CODART CODART
OUTPUT F_UMQTA LF_UMART->UM
WARNING "Articolo assente"
CHECKTYPE SEARCH
FLAGS "U"
GROUP GRP_ART
END
STRING F_UMQTA 2
BEGIN
PROMPT 41 8 "U.M. "
USE LF_UMART KEY 2
JOIN %UMS INTO CODTAB=UM
INPUT CODART F_CODART SELECT
INPUT UM F_UMQTA
DISPLAY "Codice@20" UM
DISPLAY "Descrizione@50" %UMS->S0
OUTPUT F_UMQTA UM
FLAG "U"
CHECKTYPE NORMAL
WARNING "Unita' di misura obbligatoria"
VALIDATE REQIF_FUNC 1 F_CODART
GROUP GRP_ART
END
NUMBER F_QTA 13 5
BEGIN
PROMPT 52 8 "Quantità "
GROUP GRP_ART
END
CURRENCY F_TOTVAL 18
BEGIN
PROMPT 2 9 "Valore totale "
FLAGS "HD"
GROUP GRP_CHK
END
CURRENCY F_TOTSEL 18
BEGIN
PROMPT 40 9 "Valore selezionato "
FLAGS "HD"
GROUP GRP_CHK
END
TREE F_ROWS -3 -1
BEGIN
PROMPT 0 11 ""
GROUP GRP_DOC
END
ENDPAGE
ENDMASK

46
src/ve01/ve0100b1.h Normal file
View File

@ -0,0 +1,46 @@
#define F_TYPE 201
#define F_ELAB 202
#define F_TIPODOC_ELAB 203
#define F_STATODOC_ELAB 204
#define F_DESTIPODOC_ELAB 205
#define F_DESSTATODOC_ELAB 206
#define F_GROUP_D 207
#define F_GROUP_S 208
#define F_CODNUM_ELAB 209
#define F_DESNUM_ELAB 210
#define F_ANNO_ELAB 211
#define F_NDOC_ELAB 212
#define F_PROVV_ELAB 213
#define F_TIPOCF_ELAB 214
#define F_CODCF_ELAB 215
#define F_DATADOC_ELAB 216
#define F_UPDATE_HEADER 217
#define F_CODART 218
#define F_UMQTA 219
#define F_QTA 220
#define F_NUMDOCRIF_ELAB 227
#define F_CODVAL_ELAB 228
#define F_TOTVAL 229
#define F_TOTSEL 230
#define F_ROWS 231
#define GRP_ART 2
#define GRP_DOC 3
#define GRP_CHK 4
#define S_RIGACONSEGNATA 101
#define S_QTARESIDUA 102
#define S_QTADAEVADERE 103
#define S_RIGAEVASA 104
#define S_CODMAG 105
#define S_CODDEP 106
#define S_CODART 107
#define S_LIVGIAC1 108
#define S_LIVGIAC2 109
#define S_LIVGIAC3 110
#define S_LIVGIAC4 111
#define S_DATACONS 112
#define S_PREZZO 113
#define S_DESCR 114
#define S_TIPORIGA 115
#define S_NUMRIGA 116

7
src/ve01/ve0100c.h Normal file
View File

@ -0,0 +1,7 @@
#define F_DACODNUM 101
#define F_DAANNO 102
#define F_DAPROVV 103
#define F_DANDOC 104
#define F_DANRIGA 105
#define F_DESCRNUM 106

89
src/ve01/ve0100c.uml Normal file
View File

@ -0,0 +1,89 @@
#include "ve0100c.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Documento collegato " -1 -1 78 6
STRING F_DACODNUM 4
BEGIN
PROMPT 2 1 "Numerazione "
USE %NUM
INPUT CODTAB F_DACODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DACODNUM CODTAB
OUTPUT F_DESCRNUM S0
CHECKTYPE NORMAL
FLAGS "U"
GROUP 1
END
STRING F_DESCRNUM 50
BEGIN
PROMPT 24 1 ""
USE %NUM KEY 2
INPUT S0 F_DESCRNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_DACODNUM
GROUP 1
END
NUMBER F_DAANNO 4
BEGIN
PROMPT 2 3 "Anno "
FLAGS "U"
GROUP 1
END
LISTBOX F_DAPROVV 11
BEGIN
PROMPT 24 3 ""
ITEM "D|Definitivo "
ITEM "P|Provvisorio"
FIELD PROVV
GROUP 1
END
NUMBER F_DANDOC 7
BEGIN
PROMPT 43 3 "Numero "
USE LF_RIGHEDOC
INPUT PROVV F_DAPROVV SELECT
INPUT ANNO F_DAANNO SELECT
INPUT CODNUM F_DACODNUM SELECT
INPUT NDOC F_DANDOC
INPUT NRIGA F_DANRIGA
DISPLAY "N.Doc.@7" NDOC
DISPLAY "Riga" NRIGA
DISPLAY "Descrizione@50" DESCR
DISPLAY "Articolo@20" CODARTMAG
OUTPUT F_DANDOC NDOC
OUTPUT F_DANRIGA NRIGA
CHECKTYPE SEARCH
GROUP 1
END
NUMBER F_DANRIGA 3
BEGIN
PROMPT 66 3 "Riga "
USE LF_RIGHEDOC
INPUT PROVV F_DAPROVV SELECT
INPUT ANNO F_DAANNO SELECT
INPUT CODNUM F_DACODNUM SELECT
INPUT NDOC F_DANDOC SELECT
INPUT NRIGA F_DANRIGA
DISPLAY "N.Doc.@7" NDOC
DISPLAY "Riga" NRIGA
DISPLAY "Descrizione@50" DESCR
DISPLAY "Articolo@20" CODARTMAG
OUTPUT F_DANRIGA NRIGA
CHECKTYPE NORMAL
GROUP 1
END
ENDPAGE
ENDMASK

70
src/ve01/ve0100d.uml Normal file
View File

@ -0,0 +1,70 @@
#include "veuml.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Estremi del documento" 1 1 80 14
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 4 "Estremi del documento definitivo"
END
STRING F_CODNUM 4
BEGIN
PROMPT 2 5 "Numerazione "
FIELD CODNUM
HELP "Codice numerazione"
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE FORCED
FLAG "UPA"
WARNING "Numerazione assente"
KEY 1 2
END
STRING F_DESNUM 50
BEGIN
PROMPT 24 5 ""
HELP "Descrizione numerazione"
USE %NUM KEY 2
INPUT S0 F_DESNUM
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUM
END
STRING F_TIPODOC 4
BEGIN
PROMPT 2 6 "Tipo "
FIELD TIPODOC
HELP "Codice tipo documento"
USE %TIP
INPUT CODTAB F_TIPODOC
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_TIPODOC CODTAB
OUTPUT F_DESTIPODOC S0
CHECKTYPE FORCED
FLAG "UP"
END
STRING F_DESTIPODOC 50
BEGIN
PROMPT 24 6 ""
HELP "Descrizione tipo documento"
USE %TIP KEY 2
INPUT S0 F_DESTIPODOC
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_TIPODOC
END
ENDPAGE
ENDMASK

8
src/ve01/ve0100m.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef __VE0100M_H
#define __VE0100M_H
// Maschera selezione
#define FS_CODICE 100
#define FS_TIPORIGA 101
#endif

32
src/ve01/ve0100m.uml Normal file
View File

@ -0,0 +1,32 @@
#include "ve0100m.h"
PAGE "Selezione" -1 -1 75 8
STRING FS_CODICE 20
BEGIN
PROMPT 2 2 "Articolo "
FLAGS "D"
END
LIST FS_TIPORIGA 2 50
BEGIN
PROMPT 2 4 "Tipo riga "
END
ENDPAGE
TOOLBAR "botbar" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 "~Conferma"
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

12
src/ve01/ve0100n.h Normal file
View File

@ -0,0 +1,12 @@
#ifndef __VE0100N_H
#define __VE0100N_H
#define N_CHECKED 101
#define N_TYPE 102
#define N_NOTE 103
// Maschera note articolo
#define N_NOTES 201
#define N_WHERE 202
#endif

81
src/ve01/ve0100n.uml Normal file
View File

@ -0,0 +1,81 @@
#include "ve0100n.h"
PAGE "Note articolo" -1 -1 70 20
LIST N_WHERE 1 32
BEGIN
PROMPT 1 0 "Copia note selezionate "
ITEM "A|dopo la riga selezionata"
ITEM "B|prima della riga selezionata"
END
SPREADSHEET N_NOTES 66 15
BEGIN
PROMPT 1 1 ""
ITEM "@1B"
ITEM "Tipo"
ITEM "Nota@50"
END
ENDPAGE
TOOLBAR "botbar" 0 0 0 2
BUTTON DLG_SAVEREC 10 2
BEGIN
PROMPT -14 -1 "Copia"
END
BUTTON DLG_NEWREC 10 2
BEGIN
PROMPT -24 -1 "Nuovo"
PICTURE BMP_NEWREC
PICTURE BMP_NEWRECDN
END
BUTTON DLG_FINDREC 10 2
BEGIN
PROMPT -34 -1 "Ricerca"
PICTURE BMP_FINDREC
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -44 -1 ""
END
ENDPAGE
ENDMASK
PAGE "Nota" -1 -1 52 10
BOOLEAN N_CHECKED
BEGIN
PROMPT 1 1 "Selezione"
END
STRING N_TYPE 3
BEGIN
PROMPT 21 1 "Tipo "
FLAGS "D"
END
MEMO N_NOTE 50 4
BEGIN
PROMPT 1 2 "Nota"
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

38
src/ve01/ve0100o.h Normal file
View File

@ -0,0 +1,38 @@
#ifndef __VE0100O_H
#define __VE0100O_H
// Maschera clienti/fornitori occasionali
#define O_CODICE 100
#define O_RAGSOC 101
#define O_STATO 102
#define O_COMUNE 103
#define O_DENCOM 104
#define O_CAP 105
#define O_INDIRIZZO 106
#define O_NUMERO 107
#define O_COFI 108
#define O_PAIV 109
#define O_SESSO 110
#define O_DATANAS 111
#define O_STATONAS 112
#define O_COMUNENAS 113
#define O_DENCOMNAS 114
#define O_LOCALITA 115
#define O_STATOPAIV 116
#define O_REFERENTE 117
#define O_BYMAIL 118
#define O_MAIL 119
#define O_DOCMAIL 120
#define O_PEC 121
#define O_PTEL 122
#define O_TEL 123
#define O_PTEL2 124
#define O_TEL2 125
#define O_PTEL3 126
#define O_TEL3 127
#define O_TIPOCF 128
#define O_CODCF 129
#define DLG_CLIFOR 150
#endif

312
src/ve01/ve0100o.uml Normal file
View File

@ -0,0 +1,312 @@
#include "ve0100o.h"
TOOLBAR "topbar" 0 0 0 2
BUTTON DLG_CLIFOR 2 2
BEGIN
PROMPT -13 1 "->~Cli/For"
PICTURE TOOL_EDIT
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
PAGE "Dati cliente/fornitore occasionale" -1 -1 72 14
STRING O_CODICE 16
BEGIN
PROMPT 2 0 "Codice "
FLAGS "U"
USE LF_OCCAS
INPUT CFPI O_CODICE
DISPLAY "Codice@16" CFPI
DISPLAY "Ragione Sociale@50" RAGSOC
OUTPUT O_CODICE CFPI
OUTPUT O_RAGSOC RAGSOC
FIELD CFPI
VALIDATE NOT_EMPTY_FUNC
END
STRING O_RAGSOC 50
BEGIN
PROMPT 2 1 "Ragione sociale "
FIELD RAGSOC
USE LF_OCCAS KEY 2
INPUT RAGSOC O_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice@16" CFPI
OUTPUT O_CODICE CFPI
OUTPUT O_RAGSOC RAGSOC
VALIDATE NOT_EMPTY_FUNC
END
STRING O_COFI 16
BEGIN
PROMPT 2 2 "Codice fiscale "
FIELD COFI
FLAGS "U"
VALIDATE XTZCF_FUNC O_STATONAS O_SESSO O_DATANAS O_COMUNENAS
END
STRING O_STATOPAIV 2
BEGIN
PROMPT 37 2 "Partita IVA "
HELP "Codice ISO dello stato"
FLAGS "U"
USE %SCE
INPUT CODTAB O_STATOPAIV
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT O_STATOPAIV CODTAB
CHECKTYPE NORMAL
END
STRING O_PAIV 12
BEGIN
PROMPT 56 2 ""
FIELD PAIV
VALIDATE PI_FUNC O_STATOPAIV
END
GROUPBOX DLG_NULL 80 5
BEGIN
PROMPT 1 5 "@bDati residenza"
END
STRING O_INDIRIZZO 40
BEGIN
PROMPT 2 6 "Indirizzo "
FIELD INDIR
END
STRING O_NUMERO 6
BEGIN
PROMPT 55 6 "Numero "
FIELD CIV
END
STRING O_STATO 3
BEGIN
PROMPT 2 7 "Stato "
HELP "Stato di residenza della persona"
FIELD STATO
FLAGS "U"
USE %STA
INPUT CODTAB O_STATO
DISPLAY "Codice" CODTAB
DISPLAY "Denominazione@50" S0
OUTPUT O_STATO CODTAB
CHECKTYPE NORMAL
END
STRING O_COMUNE 4
BEGIN
PROMPT 15 7 "Comune "
FIELD COM
FLAGS "U"
USE LF_COMUNI
INPUT STATO O_STATO
INPUT COM O_COMUNE
DISPLAY "Stato" STATO
DISPLAY "Codice" COM
DISPLAY "Denominazione@50" DENCOM
OUTPUT O_STATO STATO
OUTPUT O_COMUNE COM
OUTPUT O_DENCOM DENCOM
OUTPUT O_CAP CAPCOM
CHECKTYPE NORMAL
ADD RUN ba4 -0
END
STRING O_DENCOM 50 45
BEGIN
PROMPT 30 7 ""
HELP "Nome del comune di residenza della persona"
USE LF_COMUNI KEY 2
INPUT STATO O_STATO
INPUT DENCOM O_DENCOM
DISPLAY "Denominazione@50" DENCOM
DISPLAY "Stato" STATO
DISPLAY "Codice@10" COM
COPY OUTPUT O_COMUNE
//CHECKTYPE NORMAL
ADD RUN ba4 -0
END
STRING O_LOCALITA 35
BEGIN
PROMPT 2 8 "Localita' "
FIELD LOCALITA
HELP "Localita' del recapito"
END
NUMBER O_CAP 5
BEGIN
PROMPT 56 8 "C.A.P. "
HELP "CAP della residenza della persona"
FIELD CAP
FLAGS "ZF"
END
GROUPBOX DLG_NULL 80 4
BEGIN
PROMPT 1 10 "@bDati nascita"
END
LIST O_SESSO 1 7
BEGIN
PROMPT 2 11 "Sesso "
ITEM "M|Maschio"
ITEM "F|Femmina"
FIELD SESSO
END
DATE O_DATANAS
BEGIN
PROMPT 23 11 "Data "
FIELD DNASC
END
STRING O_STATONAS 3
BEGIN
PROMPT 41 11 "Stato "
FIELD STATONASC
FLAGS "U"
COPY USE O_STATO
INPUT CODTAB O_STATONAS
COPY DISPLAY O_STATO
OUTPUT O_STATONAS CODTAB
CHECKTYPE NORMAL
END
STRING O_COMUNENAS 4
BEGIN
PROMPT 57 11 "Comune "
FIELD COMNASC
FLAGS "U"
COPY USE O_COMUNE
INPUT STATO O_STATONAS
INPUT COM O_COMUNENAS
COPY DISPLAY O_COMUNE
OUTPUT O_COMUNENAS COM
OUTPUT O_DENCOMNAS DENCOM
CHECKTYPE NORMAL
END
STRING O_DENCOMNAS 50
BEGIN
PROMPT 2 12 "Denominazione "
COPY USE O_DENCOM
INPUT DENCOM O_DENCOMNAS
COPY DISPLAY O_DENCOM
COPY OUTPUT O_COMUNENAS
CHECKTYPE NORMAL
END
STRING O_REFERENTE 50
BEGIN
PROMPT 2 14 "Referente "
FIELD REFERENTE
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "E-Mail"
END
STRING O_MAIL 50 25
BEGIN
PROMPT 2 16 "Normale "
FIELD MAIL
END
BOOLEAN O_BYMAIL
BEGIN
PROMPT 40 16 "Consenso spedizione doc tramite email"
FIELD BYMAIL
MESSAGE FALSE CLEAR,O_DOCMAIL
MESSAGE TRUE ENABLE,O_DOCMAIL
END
STRING O_DOCMAIL 50 25
BEGIN
PROMPT 2 17 "Documenti "
FIELD DOCMAIL
CHECKTYPE REQUIRED
END
STRING O_PEC 80 45
BEGIN
PROMPT 2 18 "Pec "
FIELD PEC
END
STRING O_PTEL 5
BEGIN
PROMPT 2 19 "Telefono "
FIELD PTEL
HELP "Prefisso telefonico primo recapito"
END
STRING O_TEL 20 15
BEGIN
PROMPT 18 19 "/"
FIELD TEL
HELP "Numero telefonico primo recapito"
END
STRING O_PTEL2 5
BEGIN
PROMPT 11 20 " "
FIELD PTEL2
HELP "Prefisso telefonico secondo recapito"
END
STRING O_TEL2 20 15
BEGIN
PROMPT 18 20 "/"
FIELD TEL2
HELP "Numero telefonico secondo recapito"
END
STRING O_PTEL3 5
BEGIN
PROMPT 11 21 " "
FIELD PTEL3
HELP "Prefisso telefonico terzo recapito"
END
STRING O_TEL3 20 15
BEGIN
PROMPT 18 21 "/"
FIELD TEL3
HELP "Numero telefonico terzo recapito"
END
LIST O_TIPOCF 1 12
BEGIN
PROMPT 17 22 "Tipo "
ITEM " |Nessuno"
ITEM "C|Cliente"
ITEM "F|Fornitore"
FLAGS "D"
END
NUMBER O_CODCF 6
BEGIN
PROMPT 41 22 "Codice "
FLAGS "D"
END
ENDPAGE
ENDMASK

14
src/ve01/ve0100x.h Normal file
View File

@ -0,0 +1,14 @@
#define S_SELECTED 101
#define S_ANNO 102
#define S_PROG 103
#define S_TIPODOCSDI 104
#define S_NDOC 105
#define S_DATADOC 106
#define S_DATARIC 107
#define S_TOTDOC 108
#define S_STATOPAIV 109
#define S_PIVA 110
#define S_FORNITORE 111
#define S_RAGSOC 112
#define S_XML_NAME 113

150
src/ve01/ve0100x.uml Normal file
View File

@ -0,0 +1,150 @@
#include "ve0100x.h"
PAGE "Documento" -1 -1 78 9
BOOLEAN S_SELECTED
BEGIN
PROMPT 1 1 ""
FLAGS ""
END
NUMBER S_ANNO 4
BEGIN
PROMPT 7 1 "Anno "
FLAGS "D"
END
STRING S_PROG 40
BEGIN
PROMPT 1 3 "Prog.invio "
FLAGS "D"
END
LIST S_TIPODOCSDI 40
BEGIN
PROMPT 25 1 "Tipo Doc SDI"
ITEM "TD01|TD01 Fattura"
ITEM "TD02|TD02 Acconto/Anticipo su fattura"
ITEM "TD03|TD03 Acconto/Anticipo su parcella"
ITEM "TD04|TD04 Nota di credito"
ITEM "TD05|TD05 Nota di debito"
ITEM "TD06|TD06 Parcella"
ITEM "TD16|TD16 Integraz. fatt. rev.ch. interno"
ITEM "TD17|TD17 Integ./autof. acq. servizi estero"
ITEM "TD18|TD18 Integ. acq. beni intracomunitari"
ITEM "TD19|TD19 Integ./autof. acq. beni ex art. 17"
ITEM "TD20|TD20 Autofattura"
ITEM "TD21|TD21 Autofattura per splafonamento"
ITEM "TD22|TD22 Estrazione beni da Deposito IVA"
ITEM "TD23|TD23 Estr. beni Deposito IVA vers. IVA"
ITEM "TD24|TD24 Fatt. differita art.21 c.4 lett. a"
ITEM "TD25|TD25 Fatt. differita art. 21 c.4 per.3 b"
ITEM "TD26|TD26 Cess. beni ammort./passaggi interni"
ITEM "TD27|TD27 Fatt. autoconsumo/cessioni gratuite"
FLAGS "D"
END
STRING S_NDOC 40
BEGIN
PROMPT 1 3 "Numero Doc. "
FLAGS "D"
END
DATE S_DATADOC
BEGIN
PROMPT 42 3 "Data Doc. "
FLAGS "D"
END
DATE S_DATARIC
BEGIN
PROMPT 62 3 "Data Doc. "
FLAGS "D"
END
NUMBER S_TOTDOC 18 2
BEGIN
PROMPT 1 7 "Totale Doc. "
FLAGS "D"
END
STRING S_STATOPAIV 2
BEGIN
PROMPT 1 9 ""
HELP "Codice ISO dello stato"
FLAGS "U"
USE %SCE
INPUT CODTAB S_STATOPAIV
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT S_STATOPAIV CODTAB
CHECKTYPE NORMAL
FLAGS "D"
END
STRING S_PIVA 50 20
BEGIN
PROMPT 10 9 "P. IVA"
FLAGS "GRD"
END
NUMBER S_FORNITORE 6
BEGIN
PROMPT 1 11 "Fornitore "
KEY 1
USE LF_CLIFO
INPUT TIPOCF "F" SELECT
INPUT CODCF S_FORNITORE
DISPLAY "Codice@6R" CODCF
DISPLAY "Sospeso@C" SOSPESO
DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Codice fiscale@16" COFI
DISPLAY "Partita IVA@11" PAIV
OUTPUT S_FORNITORE CODCF
OUTPUT S_RAGSOC RAGSOC
ADD RUN cg0 -1 F S_FORNITORE
HELP "Codice relativo al cliente o fornitore"
FLAGS "GD"
END
STRING S_RAGSOC 50
BEGIN
PROMPT 21 11 ""
KEY 2
USE LF_CLIFO KEY 2
INPUT TIPOCF "F"
INPUT RAGSOC S_RAGSOC
DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Sospeso@C" SOSPESO
DISPLAY "Codice@R" CODCF
DISPLAY "Codice fiscale@16" COFI
DISPLAY "Partita IVA@11" PAIV
COPY OUTPUT S_FORNITORE
HELP "Prima parte della ragione sociale o cognome"
MESSAGE COPY,3@
WARNING "Manca la ragione sociale"
FLAGS "GD"
END
STRING S_XML_NAME 100
BEGIN
PROMPT 1 12 "File "
FLAGS "D"
END
ENDPAGE
TOOLBAR "Documento" 0 0 0 2
BUTTON DLG_OK 2 2
BEGIN
PROMPT 1 1 ""
END
BUTTON DLG_CANCEL 2 2
BEGIN
PROMPT 1 1 ""
END
ENDPAGE
ENDMASK

294
src/ve01/ve0200.cpp Normal file
View File

@ -0,0 +1,294 @@
#include <xvt.h>
#include <confapp.h>
#include <msksheet.h>
#include <relation.h>
#include <tabutil.h>
#include "veconf.h"
#define SINTASSI "Usage: VE0 -2 -[1|2|3|4|5|6|7|8]"
class TConf_vendite : public TConfig_application
{
int _current;
static bool check_fields(TMask_field& f, KEY k);
static bool check_fields_iva(TMask_field& f, KEY k);
bool load_conai_ini(TMask& mask);
bool save_conai_ini(TMask& mask);
virtual const char * extra_modules() const {return "dt";}
public:
virtual bool preprocess_config (TMask& mask, TConfig& config);
virtual bool postprocess_config (TMask& mask, TConfig& config);
virtual bool user_create( );
TConf_vendite() : TConfig_application( CONFIG_DITTA ){ }
virtual ~TConf_vendite( ){ }
};
bool TConf_vendite::check_fields(TMask_field& f, KEY k)
{
if (k == K_TAB && f.focusdirty())
{
TString fld(f.get());
TMask& m = f.mask();
TToken_string t;
if (fld == "-") return TRUE;
for (short i=F_RICERCACR1;i<=F_RICERCAAN4;i++)
{
if (f.dlg() == i) continue;
t.add(m.get(i));
}
if (t.find(fld) >= 0)
return f.error_box("Immettere un gruppo di ricerca non ancora indicato nella sequenza");
}
return TRUE;
}
bool TConf_vendite::check_fields_iva(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
TMask& m = f.mask();
real tot = ZERO;
for (short i = F_EX_PERCIVA1; i <= F_EX_PERCIVA5; i+=2)
tot += m.get_real(i);
if (tot != ZERO && tot != CENTO)
return f.error_box("La somma delle percentuali di esclusione deve dare 100 oppure 0.");
}
return TRUE;
}
bool TConf_vendite::load_conai_ini(TMask& mask)
{
TString msg = ini_get_memo(CONFIG_DITTA, "ve", "DESCCONAIASS");
mask.set(F_DESCONAIASS, !msg.empty()? msg : "");
return true;
}
bool TConf_vendite::save_conai_ini(TMask& mask)
{
TString msg = mask.get(F_DESCONAIASS);
ini_set_memo(CONFIG_DITTA, "ve", "DESCCONAIASS", msg);
return true;
}
bool TConf_vendite::preprocess_config (TMask& mask, TConfig& config)
{
disable_menu_item(M_FILE_NEW);
switch (_current)
{
case 1:
load_conai_ini(mask);
break;
case 5: // solo per configurazione "e"
{
TToken_string ric(config.get("RICERCACR"));
TString ana_items("AR|GM|SM|RF");
int nor_order = 0, ana_order = 0;
TString it;
mask.set_handler(F_RICERCACR1,check_fields);
mask.set_handler(F_RICERCACR2,check_fields);
mask.set_handler(F_RICERCACR3,check_fields);
mask.set_handler(F_RICERCACR4,check_fields);
mask.set_handler(F_RICERCACR5,check_fields);
mask.set_handler(F_RICERCAAN1,check_fields);
mask.set_handler(F_RICERCAAN2,check_fields);
mask.set_handler(F_RICERCAAN3,check_fields);
mask.set_handler(F_RICERCAAN4,check_fields);
for (it = ric.get();it.not_empty();it = ric.get())
{
if (ana_items.find(it) >= 0)
{
mask.set(F_RICERCAAN1+ana_order,it);
if (ana_order==0) // Se e' la prima volta...
{
mask.set(F_RICERCACR1+nor_order,"AN");
nor_order++;
}
ana_order++;
}
else
{
mask.set(F_RICERCACR1+nor_order,it);
nor_order++;
}
}
}
break;
case 6: // solo per configurazione "f"
{
mask.set_handler(F_EX_PERCIVA1,check_fields_iva); // Basta su uno che controlla tutti all'uscita della maschera
}
break;
case 8:
{
TSheet_field& sf = mask.sfield(F_DOCS); //prende lo sheet..
const TMask& sm = sf.sheet_mask(); //..poi la maschera di sheet..
bool found = true;
for (int r = 0; found; r++) //finchè ci sono valori c'è speranza!..
{ //Ovvero legge i valori finchè ce ne sono e non sono nulli aggiornando i..
FOR_EACH_MASK_FIELD(sm, j, f) //..campi dello sheet
{
const TFieldref* fr = f->field();
if (fr != NULL)
{
const TString& value = get_config()->get(fr->name(), NULL, r);
if (value.empty() && f->dlg() == 101)
{
found = false;
break;
}
else
{
sf.row(r).add(value, sf.cid2index(f->dlg()));
}
}
sf.check_row(sf.items() - 1); //metodo per ricaricare le descrizioni delle numerazioni
} //FOR_EACH_MASK_FIELD
} //for(int r=0...
}
break;
default:
break;
}
return true;
}
bool TConf_vendite::postprocess_config (TMask& mask, TConfig& config)
{
enable_menu_item(M_FILE_NEW);
switch (_current)
{
case 1:
save_conai_ini(mask);
break;
case 5: // solo per configurazione "e"
{
TToken_string ric;
TString r;
const KEY k = mask.last_key();
bool tosave = k == K_ENTER || k == K_SAVE;
if (!tosave && mask.dirty())
tosave = yesno_box("Modifiche non registrate. Salvare?");
if (!tosave)
return FALSE;
for (short i=F_RICERCACR1;i<=F_RICERCACR5;i++)
{
r = mask.get(i);
if (r == "-") continue;
if (r == "AN")
for (short j=F_RICERCAAN1;j<=F_RICERCAAN4;j++)
{
r = mask.get(j);
if (r == "-") continue;
ric.add(r);
}
else
ric.add(r);
}
config.set("RICERCACR",ric);
}
break;
case 8: //ve0200h.uml (fido bau!)
{
//sporco trucco perchè la postprocess_config salverebbe tutto in ogni modo (vedi file confapp.cpp e rabbrividisci!)..
//..mentre qui si vuole salvare solo in caso di CONFERMA da parte dell'utonto
const KEY k = mask.last_key();
bool tosave = k == K_ENTER || k == K_SAVE;
if (tosave)
{
TSheet_field& sf = mask.sfield(F_DOCS); //prende lo sheet..
const TMask& sm = sf.sheet_mask(); //..poi la maschera di sheet..
FOR_EACH_SHEET_ROW(sf, j, row) //per ogni riga dello sheet deve salvare SOLO i campi che hanno un field
{
short id = 101;
FOR_EACH_TOKEN((*row), tok)
{
const TFieldref* fr = sm.field(id++).field(); //settatore dei valori sul .ini
if (fr != NULL)
config.set(fr->name(), tok, NULL, true, j);
}
}
//gestione della eliminazione: finito il giro sulle righe presenti (FOR_EACH_SHEET_ROW) ogni altro campo presente..
//..eventualmente sul config risulta di troppo e viene giustamente accoppato
const TFieldref* fr = sm.field(101).field();
config.remove(fr->name(), sf.items());
}
}
break;
default:
break;
}
return true;
}
bool TConf_vendite::user_create( )
{
TString16 arg( argv(2) );
if( arg[ 0 ] != '-' )
fatal_box( SINTASSI );
_current = arg[1] - '0';
TConfig conf(_current == 6 ? CONFIG_STUDIO : CONFIG_DITTA );
if (_current == 6)
set_config(CONFIG_STUDIO);
switch( _current )
{
case 1:
conf.set( "EdMask", "ve0200a", "ve" );
break;
case 2:
conf.set( "EdMask", "ve0200b", "ve" );
break;
case 3:
conf.set( "EdMask", "ve0200c", "ve" );
break;
case 4:
conf.set( "EdMask", "ve0200d", "ve" );
break;
case 5:
conf.set( "EdMask", "ve0200e", "ve" );
break;
case 6:
conf.set( "EdMask", "ve0200f", "ve" );
break;
case 7:
conf.set( "EdMask", "ve0200g", "ve" );
break;
case 8:
conf.set( "EdMask", "ve0200h", "ve");
break;
default:
return fatal_box( SINTASSI );
}
return true;
}
int ve0200(int argc, char* argv[])
{
TConf_vendite appc;
if( argc < 3 )
fatal_box( SINTASSI );
appc.run(argc, argv, "Parametri gestione vendite");
return 0;
}

484
src/ve01/ve0200a.uml Normal file
View File

@ -0,0 +1,484 @@
#include "veconf.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Installazione" 0 0 0 0
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 1 "Gestione listini"
END
BOOLEAN F_GESLISTINI
BEGIN
PROMPT 2 2 "Gestione archivio listini"
MESSAGE FALSE CLEAR,1@
MESSAGE TRUE ENABLE,1@
FIELD GES[A_LISTINI]
END
BOOLEAN F_GESLISCV
BEGIN
PROMPT 2 3 "Gestione codice categoria vendite+codice listino"
FIELD GESLISCV
GROUP 1
END
BOOLEAN F_GESUM
BEGIN
PROMPT 2 4 "Gestione listini per unita di misura"
FIELD GESUM[A_LISTINI]
GROUP 1
END
BOOLEAN F_GESSCALISTINI
BEGIN
PROMPT 2 5 "Gestione listino a scaglioni"
FIELD GESSCA[A_LISTINI]
GROUP 1
END
BOOLEAN F_GESSOLISTINI
BEGIN
PROMPT 2 6 "Gestione sconti/omaggio articoli"
FIELD GESSO[A_LISTINI]
GROUP 1
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 8 "Gestione contratti"
END
BOOLEAN F_GESCONTRATTI
BEGIN
PROMPT 2 9 "Gestione archivio contratti"
MESSAGE FALSE CLEAR,2@
MESSAGE TRUE ENABLE,2@
FIELD GES[A_CONTRATTI]
END
BOOLEAN F_GESCONCC
BEGIN
PROMPT 2 10 "Gestione codice cliente+codice contratto"
FIELD GESCONCC
GROUP 2
END
BOOLEAN F_GESCONTRATTIUM
BEGIN
PROMPT 2 11 "Gestione contratti per unita di misura"
FIELD GESUM[A_CONTRATTI]
GROUP 2
END
BOOLEAN F_GESSCACONTRATTI
BEGIN
PROMPT 2 12 "Gestione contratto a scaglioni"
FIELD GESSCA[A_CONTRATTI]
GROUP 2
END
BOOLEAN F_GESSOCONTRATTI
BEGIN
PROMPT 2 13 "Gestione sconti/omaggio articoli"
FIELD GESSO[A_CONTRATTI]
GROUP 2
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 15 "Gestione offerte "
END
BOOLEAN F_GESCAMPAGNE
BEGIN
PROMPT 2 16 "Gestione archivio offerte "
MESSAGE TRUE ENABLE,3@
MESSAGE FALSE CLEAR,3@
FIELD GES[A_OFFERTE]
END
BOOLEAN F_GESCAMPAGNEUM
BEGIN
PROMPT 2 17 "Gestione offerte per unita di misura "
FIELD GESUM[A_OFFERTE]
GROUP 3
END
BOOLEAN F_GESSCACAMPAGNE
BEGIN
PROMPT 2 18 "Gestione offerte a scaglioni "
FIELD GESSCA[A_OFFERTE]
GROUP 3
END
BOOLEAN F_GESSOCAMPAGNE
BEGIN
PROMPT 2 19 "Gestione sconti/omaggio articoli"
FIELD GESSO[A_OFFERTE]
GROUP 3
END
ENDPAGE
PAGE "Sconti e Prezzi" 1 1 60 14
LIST F_GESSCO 36
BEGIN
PROMPT 2 2 "Tipo gestione sconti documenti "
ITEM "N|Non gestire" MESSAGE CLEAR,4@
ITEM "P|Percentuale su anagrafica " MESSAGE CLEAR,4@
ITEM "T|Gestione tabella sconti " MESSAGE CLEAR,4@
ITEM "A|Gestione archivio sconti " MESSAGE ENABLE,4@
FIELD GESSCO
END
BOOLEAN F_SCOKEY1
BEGIN
PROMPT 2 3 "Tabella categoria vendite in chiave"
GROUP 4
FIELD SCOKEY[1]
END
BOOLEAN F_SCOKEY2
BEGIN
PROMPT 2 4 "Tabella sconti clienti in chiave"
GROUP 4
FIELD SCOKEY[2]
END
BOOLEAN F_SCOKEY3
BEGIN
PROMPT 2 5 "Tabella zone in chiave"
GROUP 4
FIELD SCOKEY[3]
END
BOOLEAN F_SCOKEY4
BEGIN
PROMPT 2 6 "Tabella modalita' di pagamento in chiave"
GROUP 4
FIELD SCOKEY[4]
END
LIST F_GESSCORIGA 1 45
BEGIN
PROMPT 2 7 "Gestione sconti riga principale "
ITEM "N|Non gestire" MESSAGE CLEAR,5@
ITEM "L|Percentuale su anagrafica/listini/contratti " MESSAGE CLEAR,5@
ITEM "A|Gestione archivio sconti " MESSAGE ENABLE,5@
ITEM "C|Percentuale indicata su anagrafica cliente " MESSAGE CLEAR,5@
FIELD GESSCORIGA
END
LIST F_GESSCORIGA2 1 45
BEGIN
PROMPT 2 8 "Gestione sconti riga secondaria "
ITEM "N|Non gestire"
ITEM "L|Percentuale su anagrafica/listini/contratti "
ITEM "A|Gestione archivio sconti " MESSAGE ENABLE,5@
ITEM "C|Percentuale indicata su anagrafica cliente "
FIELD GESSCORIGA2
END
BOOLEAN F_GESSCORIGACV
BEGIN
PROMPT 2 9 "Gestione archivio sconti con categorie vendita cliente "
FIELD GESSCORIGACV
GROUP 5
END
LIST F_SCORIGAKEY 36
BEGIN
PROMPT 2 10 "Chiave archivio sconti di riga "
ITEM "A|Codice articolo " MESSAGE ENABLE,6@
ITEM "L|Codice gruppo merceologico" MESSAGE CLEAR,6@
ITEM "C|Codice sottogruppo merceologico" MESSAGE CLEAR,6@
ITEM "R|Codice raggruppamento fiscale " MESSAGE CLEAR,6@
FIELD SCORIGAKEY
GROUP 5
END
BOOLEAN F_GESSCOSCA
BEGIN
PROMPT 2 12 "Gestione archivio sconti a scaglioni "
FIELD GESSCOSCA
GROUP 5 6
END
BOOLEAN F_GESSCOUM
BEGIN
PROMPT 2 13 "Gestione archivio sconti unita' di misura "
FIELD GESSCOUM
GROUP 5 6
END
LISTBOX F_PRICEOMAGGI 20
BEGIN
PROMPT 2 15 "Prezzo per gli omaggi "
FIELD PriceOmaggi
ITEM "|Prezzo di Vendita"
ITEM "1|Ultimo costo"
ITEM "2|Media ultimi costi"
ITEM "3|Prezzo di listino"
ITEM "4|Costo standard"
ITEM "6|Costo medio ponder."
ITEM "5|Costo medio"
ITEM "7|FIFO annuale"
ITEM "8|LIFO annuale"
ITEM "9|FIFO"
ITEM "10|LIFO"
END
ENDPAGE
PAGE "CONAI" 1 1 60 14
TEXT DLG_NULL
BEGIN
PROMPT 1 0 "@bMostra sui"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 1 "@bDocumenti"
END
TEXT DLG_NULL
BEGIN
PROMPT 13 1 "@bCodice Spesa Default"
END
TEXT DLG_NULL
BEGIN
PROMPT 42 1 "@bDescrizione Spesa"
END
BOOLEAN F_CONFACC
BEGIN
PROMPT 1 2 "Acciao"
FIELD CONFACC
END
STRING F_CODACC 8
BEGIN
PROMPT 13 2 ""
FIELD CODACC
USE SPP
FLAGS "U"
INPUT CODTAB F_CODACC
DISPLAY "Codice Spesa " CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODACC CODTAB
OUTPUT F_DESACC S0
HELP "Codice spesa per contributo acciaio"
CHECKTYPE NORMAL
GROUP 7
MESSAGE EMPTY ENABLE,F_CONFACC
MESSAGE DISABLE,F_CONFACC|"X",F_CONFACC
END
STRING F_DESACC 50
BEGIN
PROMPT 25 2 ""
USE SPP KEY 2
INPUT S0 F_DESACC
DISPLAY "Descrizione@50" S0
DISPLAY "Codice Spesa " CODTAB
COPY OUTPUT F_CODACC
GROUP 7
END
BOOLEAN F_CONFALL
BEGIN
PROMPT 1 4 "Alluminio"
FIELD CONFALL
END
STRING F_CODALL 8
BEGIN
PROMPT 13 4 ""
FIELD CODALL
FLAGS "U"
COPY USE F_CODACC
INPUT CODTAB F_CODALL
COPY DISPLAY F_CODACC
OUTPUT F_CODALL CODTAB
OUTPUT F_DESALL S0
CHECKTYPE NORMAL
HELP "Codice spesa per contributo alluminio"
GROUP 7
MESSAGE EMPTY ENABLE,F_CONFALL
MESSAGE DISABLE,F_CONFALL|"X",F_CONFALL
END
STRING F_DESALL 50
BEGIN
PROMPT 25 4 ""
COPY USE F_DESACC
INPUT S0 F_DESALL
COPY DISPLAY F_DESACC
COPY OUTPUT F_CODALL
GROUP 7
END
BOOLEAN F_CONFCAR
BEGIN
PROMPT 1 6 "Carta"
FIELD CONFCAR
END
STRING F_CODCAR 8
BEGIN
PROMPT 13 6 ""
FIELD CODCAR
FLAGS "U"
COPY USE F_CODACC
INPUT CODTAB F_CODCAR
COPY DISPLAY F_CODACC
OUTPUT F_CODCAR CODTAB
OUTPUT F_DESCAR S0
CHECKTYPE NORMAL
HELP "Codice spesa per contributo carta"
GROUP 7
MESSAGE EMPTY ENABLE,F_CONFCAR
MESSAGE DISABLE,F_CONFCAR|"X",F_CONFCAR
END
STRING F_DESCAR 50
BEGIN
PROMPT 25 6 ""
COPY USE F_DESACC
INPUT S0 F_DESCAR
COPY DISPLAY F_DESACC
COPY OUTPUT F_CODCAR
GROUP 7
END
BOOLEAN F_CONFPLA
BEGIN
PROMPT 1 8 "Plastica"
FIELD CONFPLA
END
STRING F_CODPLA 8
BEGIN
PROMPT 13 8 ""
FIELD CODPLA
FLAGS "U"
COPY USE F_CODACC
INPUT CODTAB F_CODPLA
COPY DISPLAY F_CODACC
OUTPUT F_CODPLA CODTAB
OUTPUT F_DESPLA S0
CHECKTYPE NORMAL
HELP "Codice spesa per contributo plastica"
GROUP 7
MESSAGE EMPTY ENABLE,F_CONFPLA
MESSAGE DISABLE,F_CONFPLA|"X",F_CONFPLA
END
STRING F_DESPLA 50
BEGIN
PROMPT 25 8 ""
COPY USE F_DESACC
INPUT S0 F_DESPLA
COPY DISPLAY F_DESACC
COPY OUTPUT F_CODPLA
GROUP 7
END
BOOLEAN F_CONFLEG
BEGIN
PROMPT 1 10 "Legno"
FIELD CONFLEG
END
STRING F_CODLEG 8
BEGIN
PROMPT 13 10 ""
FIELD CODLEG
FLAGS "U"
COPY USE F_CODACC
INPUT CODTAB F_CODLEG
COPY DISPLAY F_CODACC
OUTPUT F_CODLEG CODTAB
OUTPUT F_DESLEG S0
CHECKTYPE NORMAL
HELP "Codice spesa per contributo legno"
GROUP 7
MESSAGE EMPTY ENABLE,F_CONFLEG
MESSAGE DISABLE,F_CONFLEG|"X",F_CONFLEG
END
STRING F_DESLEG 50
BEGIN
PROMPT 25 10 ""
COPY USE F_DESACC
INPUT S0 F_DESLEG
COPY DISPLAY F_DESACC
COPY OUTPUT F_CODLEG
GROUP 7
END
BOOLEAN F_CONFVET
BEGIN
PROMPT 1 12 "Vetro"
FIELD CONFVET
END
STRING F_CODVET 8
BEGIN
PROMPT 13 12 ""
FIELD CODVET
FLAGS "U"
COPY USE F_CODACC
INPUT CODTAB F_CODVET
COPY DISPLAY F_CODACC
OUTPUT F_CODVET CODTAB
OUTPUT F_DESVET S0
CHECKTYPE NORMAL
HELP "Codice spesa per contributo vetro"
GROUP 7
MESSAGE EMPTY ENABLE,F_CONFVET
MESSAGE DISABLE,F_CONFVET|"X",F_CONFVET
END
STRING F_DESVET 50
BEGIN
PROMPT 25 12 ""
COPY USE F_DESACC
INPUT S0 F_DESVET
COPY DISPLAY F_DESACC
COPY OUTPUT F_CODVET
GROUP 7
END
GROUPBOX DLG_NULL 78 5
BEGIN
PROMPT 1 14 "@bStampa documenti"
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "@bMessaggio alternativo a 'CONTRIBUTO CONAI ASSOLTO'"
END
ZOOM F_DESCONAIASS 110 50
BEGIN
PROMPT 2 16 ""
FIELD DESCCONAIASS
GROUP 7
END
BOOLEAN F_ESPONIESENTI
BEGIN
PROMPT 2 17 "Esposizione dei clienti esenti"
FIELD ESPONIESENTI
GROUP 7
END
ENDPAGE
ENDMASK

6
src/ve01/ve0200b.h Normal file
View File

@ -0,0 +1,6 @@
#define F_TIPOPERC 101
#define F_GESVAL 102
#define F_GESLIN 103
#define F_GESSOSPIMP 104
//#define F_GESOCCAS 105

97
src/ve01/ve0200b.uml Normal file
View File

@ -0,0 +1,97 @@
#include "veconf.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Installazione" 0 0 0 0
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 1 "Gestione degli agenti"
END
BOOLEAN F_GESAGE
BEGIN
PROMPT 2 2 "Gestione agenti "
FIELD GESAGE
END
LIST F_TIPOPERC 25
BEGIN
FIELD AGETIPOPERC
PROMPT 2 3 "Tipo percentuale da proporre "
ITEM "A|Agente "
ITEM "V|Categoria vendita"
ITEM "M|Articolo di magazzino"
ITEM "C|Clienti "
ITEM "O|Condizioni di vendita"
END
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 6 "Gestione dati generali"
END
BOOLEAN F_GESVAL
BEGIN
PROMPT 2 7 "Gestione documenti in valuta"
FIELD GESVAL
MESSAGE FALSE CLEAR,1@
MESSAGE TRUE ENABLE,1@
END
BOOLEAN F_GESVALAC
BEGIN
PROMPT 2 8 "Gestione archivio cambi "
FIELD GESVALAC
GROUP 1
END
/*
BOOLEAN F_CONTROEURO_E
BEGIN
PROMPT 2 9 "Gestione flag controeuro"
FIELD CONTROEURO
GROUP 1
END
*/
BOOLEAN F_GESLIN
BEGIN
PROMPT 2 10 "Gestione documenti in lingua"
FIELD GESLIN
MESSAGE FALSE CLEAR,F_LINGUA_ONLY
MESSAGE TRUE ENABLE,F_LINGUA_ONLY
END
BOOLEAN F_LINGUA_ONLY
BEGIN
PROMPT 2 11 "Descrizione solo in lingua"
FIELD LINGUA_ONLY
END
BOOLEAN F_LIVPERART
BEGIN
PROMPT 2 13 "Gestione livelli di giacenza legati agli articoli"
FIELD LIVPERART
END
CURRENCY F_IMPMINFAT 10
BEGIN
PROMPT 2 14 "Importo minimo fatture "
FIELD IMPMINFAT
PICTURE "."
END
CURRENCY F_IMPMINEFF 10
BEGIN
PROMPT 2 15 "Importo minimo per effetti "
FIELD IMPMINEFF
PICTURE "."
END
ENDPAGE
ENDMASK

223
src/ve01/ve0200c.uml Normal file
View File

@ -0,0 +1,223 @@
#include "veconf.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Sconti" 0 0 0 0
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 1 "@bGestione sconto a percentuale vendite"
END
NUMBER F_SCOPRCODCON1 3
BEGIN
PROMPT 2 2 "Codice contabilita' "
FIELD SCOPRCODCON[1]
USE LF_PCON
INPUT GRUPPO F_SCOPRCODCON1
INPUT CONTO F_SCOPRCODCON2
INPUT SOTTOCONTO F_SCOPRCODCON3
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SCOPRCODCON1 GRUPPO
OUTPUT F_SCOPRCODCON2 CONTO
OUTPUT F_SCOPRCODCON3 SOTTOCONTO
OUTPUT F_SCOPRDESCON DESCR
CHECKTYPE NORMAL
END
NUMBER F_SCOPRCODCON2 3
BEGIN
PROMPT 30 2 ""
FIELD SCOPRCODCON[2]
COPY ALL F_SCOPRCODCON1
CHECKTYPE NORMAL
END
NUMBER F_SCOPRCODCON3 6
BEGIN
PROMPT 36 2 ""
FIELD SCOPRCODCON[3]
COPY ALL F_SCOPRCODCON1
CHECKTYPE NORMAL
END
STRING F_SCOPRDESCON 50
BEGIN
PROMPT 2 3 "Descrizione "
USE LF_PCON KEY 2
INPUT DESCR F_SCOPRDESCON
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SCOPRCODCON1
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 6 "@bGestione sconto ad importo vendite"
END
NUMBER F_SCOIMCODCON1 3
BEGIN
PROMPT 2 7 "Codice contabilita' "
FIELD SCOIMCODCON[1]
USE LF_PCON
INPUT GRUPPO F_SCOIMCODCON1
INPUT CONTO F_SCOIMCODCON2
INPUT SOTTOCONTO F_SCOIMCODCON3
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SCOIMCODCON1 GRUPPO
OUTPUT F_SCOIMCODCON2 CONTO
OUTPUT F_SCOIMCODCON3 SOTTOCONTO
OUTPUT F_SCOIMDESCON DESCR
CHECKTYPE NORMAL
END
NUMBER F_SCOIMCODCON2 3
BEGIN
PROMPT 30 7 ""
FIELD SCOIMCODCON[2]
COPY ALL F_SCOIMCODCON1
CHECKTYPE NORMAL
END
NUMBER F_SCOIMCODCON3 6
BEGIN
PROMPT 36 7 ""
FIELD SCOIMCODCON[3]
COPY ALL F_SCOIMCODCON1
CHECKTYPE NORMAL
END
STRING F_SCOIMDESCON 50
BEGIN
PROMPT 2 8 "Descrizione "
USE LF_PCON KEY 2
INPUT DESCR F_SCOIMDESCON
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SCOIMCODCON1
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 11 "@bGestione sconto a percentuale acquisti"
END
NUMBER F_SCOAPRCODCON1 3
BEGIN
PROMPT 2 12 "Codice contabilita' "
FIELD SCOAPRCODCON[1]
USE LF_PCON
INPUT GRUPPO F_SCOAPRCODCON1
INPUT CONTO F_SCOAPRCODCON2
INPUT SOTTOCONTO F_SCOAPRCODCON3
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SCOAPRCODCON1 GRUPPO
OUTPUT F_SCOAPRCODCON2 CONTO
OUTPUT F_SCOAPRCODCON3 SOTTOCONTO
OUTPUT F_SCOAPRDESCON DESCR
CHECKTYPE NORMAL
END
NUMBER F_SCOAPRCODCON2 3
BEGIN
PROMPT 30 12 ""
FIELD SCOAPRCODCON[2]
COPY ALL F_SCOAPRCODCON1
CHECKTYPE NORMAL
END
NUMBER F_SCOAPRCODCON3 6
BEGIN
PROMPT 36 12 ""
FIELD SCOAPRCODCON[3]
COPY ALL F_SCOAPRCODCON1
CHECKTYPE NORMAL
END
STRING F_SCOAPRDESCON 50
BEGIN
PROMPT 2 13 "Descrizione "
USE LF_PCON KEY 2
INPUT DESCR F_SCOAPRDESCON
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SCOAPRCODCON1
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 16 "@bGestione sconto ad importo acquisti"
END
NUMBER F_SCOAIMCODCON1 3
BEGIN
PROMPT 2 17 "Codice contabilita' "
FIELD SCOAIMCODCON[1]
USE LF_PCON
INPUT GRUPPO F_SCOAIMCODCON1
INPUT CONTO F_SCOAIMCODCON2
INPUT SOTTOCONTO F_SCOAIMCODCON3
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SCOAIMCODCON1 GRUPPO
OUTPUT F_SCOAIMCODCON2 CONTO
OUTPUT F_SCOAIMCODCON3 SOTTOCONTO
OUTPUT F_SCOAIMDESCON DESCR
CHECKTYPE NORMAL
END
NUMBER F_SCOAIMCODCON2 3
BEGIN
PROMPT 30 17 ""
FIELD SCOAIMCODCON[2]
COPY ALL F_SCOAIMCODCON1
CHECKTYPE NORMAL
END
NUMBER F_SCOAIMCODCON3 6
BEGIN
PROMPT 36 17 ""
FIELD SCOAIMCODCON[3]
COPY ALL F_SCOAIMCODCON1
CHECKTYPE NORMAL
END
STRING F_SCOAIMDESCON 50
BEGIN
PROMPT 2 18 "Descrizione "
USE LF_PCON KEY 2
INPUT DESCR F_SCOAIMDESCON
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SCOAIMCODCON1
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

296
src/ve01/ve0200d.uml Normal file
View File

@ -0,0 +1,296 @@
#include "veconf.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Spese" 0 0 0 0
GROUPBOX DLG_NULL 78 8
BEGIN
PROMPT 1 1 "Gestione spese d'incasso"
END
STRING F_SPINCODIVA 4
BEGIN
PROMPT 2 2 "Codice IVA "
FIELD SPINCODIVA
USE %IVA
INPUT CODTAB F_SPINCODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_SPINCODIVA CODTAB
OUTPUT F_SPINDESIVA S0
CHECKTYPE NORMAL
END
STRING F_SPINDESIVA 50
BEGIN
PROMPT 2 3 "Descrizione "
USE %IVA KEY 2
INPUT S0 F_SPINDESIVA
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_SPINCODIVA
CHECKTYPE NORMAL
END
STRING F_SPINCODCON1V 3
BEGIN
PROMPT 2 4 "Codice conto ricavo "
FIELD SPINCODCONV[1]
CHECKTYPE NORMAL
END
STRING F_SPINCODCON2V 3
BEGIN
PROMPT 29 4 ""
FIELD SPINCODCONV[2]
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="2")||(INDBIL=="4"))
INPUT GRUPPO F_SPINCODCON1V
INPUT CONTO F_SPINCODCON2V
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SPINCODCON1V GRUPPO
OUTPUT F_SPINCODCON2V CONTO
WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL
END
STRING F_SPINCODCON3V 6
BEGIN
PROMPT 35 4 ""
FIELD SPINCODCONV[3]
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPINCODCON2V
INPUT SOTTOCONTO F_SPINCODCON3V
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPINCODCON2V
OUTPUT F_SPINCODCON3V SOTTOCONTO
OUTPUT F_SPINDESCONV DESCR
WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL
END
STRING F_SPINDESCONV 50
BEGIN
PROMPT 2 5 "Descrizione "
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPINDESCONV
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SPINCODCON3V
CHECKTYPE NORMAL
END
STRING F_SPINCODCON1A 3
BEGIN
PROMPT 2 6 "Codice conto costo "
FIELD SPINCODCONA[1]
CHECKTYPE NORMAL
END
STRING F_SPINCODCON2A 3
BEGIN
PROMPT 29 6 ""
FIELD SPINCODCONA[2]
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="1")||(INDBIL=="3"))
INPUT GRUPPO F_SPINCODCON1A
INPUT CONTO F_SPINCODCON2A
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SPINCODCON1A GRUPPO
OUTPUT F_SPINCODCON2A CONTO
CHECKTYPE NORMAL
END
STRING F_SPINCODCON3A 6
BEGIN
PROMPT 35 6 ""
FIELD SPINCODCONA[3]
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPINCODCON2A
INPUT SOTTOCONTO F_SPINCODCON3A
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPINCODCON2A
OUTPUT F_SPINCODCON3A SOTTOCONTO
OUTPUT F_SPINDESCONA DESCR
WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL
END
STRING F_SPINDESCONA 50
BEGIN
PROMPT 2 7 "Descrizione "
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPINDESCONA
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SPINCODCON3A
WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL
END
GROUPBOX DLG_NULL 78 8
BEGIN
PROMPT 1 9 "Gestione spese bolli"
END
STRING F_SPBOCODIVA 4
BEGIN
PROMPT 2 10 "Codice IVA "
FIELD SPBOCODIVA
USE %IVA
INPUT CODTAB F_SPBOCODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_SPBOCODIVA CODTAB
OUTPUT F_SPBODESIVA S0
CHECKTYPE NORMAL
END
STRING F_SPBODESIVA 50
BEGIN
PROMPT 2 11 "Descrizione "
USE %IVA KEY 2
INPUT S0 F_SPBODESIVA
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_SPBOCODIVA
CHECKTYPE NORMAL
END
STRING F_SPBOCODCON1V 3
BEGIN
PROMPT 2 12 "Codice conto ricavo "
FIELD SPBOCODCONV[1]
CHECKTYPE NORMAL
END
STRING F_SPBOCODCON2V 3
BEGIN
PROMPT 29 12 ""
FIELD SPBOCODCONV[2]
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="2")||(INDBIL=="4"))
INPUT GRUPPO F_SPBOCODCON1V
INPUT CONTO F_SPBOCODCON2V
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SPBOCODCON1V GRUPPO
OUTPUT F_SPBOCODCON2V CONTO
CHECKTYPE NORMAL
END
STRING F_SPBOCODCON3V 6
BEGIN
PROMPT 35 12 ""
FIELD SPBOCODCONV[3]
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPBOCODCON2V
INPUT SOTTOCONTO F_SPBOCODCON3V
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPBOCODCON2V
OUTPUT F_SPBOCODCON3V SOTTOCONTO
OUTPUT F_SPBODESCONV DESCR
WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL
END
STRING F_SPBODESCONV 50
BEGIN
PROMPT 2 13 "Descrizione "
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPBODESCONV
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SPBOCODCON3V
WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL
END
STRING F_SPBOCODCON1A 3
BEGIN
PROMPT 2 14 "Codice conto costo "
FIELD SPBOCODCONA[1]
CHECKTYPE NORMAL
END
STRING F_SPBOCODCON2A 3
BEGIN
PROMPT 29 14 ""
FIELD SPBOCODCONA[2]
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="1")||(INDBIL=="3"))
INPUT GRUPPO F_SPBOCODCON1A
INPUT CONTO F_SPBOCODCON2A
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_SPBOCODCON1A GRUPPO
OUTPUT F_SPBOCODCON2A CONTO
CHECKTYPE NORMAL
END
STRING F_SPBOCODCON3A 6
BEGIN
PROMPT 35 14 ""
FIELD SPBOCODCONA[3]
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPBOCODCON2A
INPUT SOTTOCONTO F_SPBOCODCON3A
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPBOCODCON2A
OUTPUT F_SPBOCODCON3A SOTTOCONTO
OUTPUT F_SPBODESCONA DESCR
WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL
END
STRING F_SPBODESCONA 50
BEGIN
PROMPT 2 15 "Descrizione "
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPBODESCONA
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SPBOCODCON3A
WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL
END
ENDPAGE
ENDMASK

306
src/ve01/ve0200e.uml Normal file
View File

@ -0,0 +1,306 @@
#include "veconf.h"
TOOLBAR "" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Contabilizzazione" 0 0 0 0
GROUPBOX DLG_NULL 78 7
BEGIN
PROMPT 1 1 "@bRicerca primaria del conto di costo ricavo"
END
LIST F_RICERCACR1 2 50
BEGIN
PROMPT 2 2 "Primo gruppo "
ITEM "CF|Clienti/Fornitori"
ITEM "CA|Causale contabile"
ITEM "AN|Anagrafica magazzino"
ITEM "CV|Categoria di vendita"
ITEM "CC|Categoria contabile"
ITEM "VM|Categoria vendita articolo e Categoria di vendita"
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
END
LIST F_RICERCACR2 2 50
BEGIN
PROMPT 2 3 "Secondo gruppo "
ITEM "-|Nessuno" MESSAGE CLEAR,1@
ITEM "CF|Clienti/Fornitori" MESSAGE ENABLE,F_RICERCACR3
ITEM "CA|Causale contabile" MESSAGE ENABLE,F_RICERCACR3
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR3
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR3
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR3
ITEM "VM|Categoria vendita articolo e Categoria di vendita" MESSAGE ENABLE,F_RICERCACR3
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
END
LIST F_RICERCACR3 2 50
BEGIN
PROMPT 2 4 "Terzo gruppo "
ITEM "-|Nessuno" MESSAGE CLEAR,2@
ITEM "CF|Clienti/Fornitori" MESSAGE ENABLE,F_RICERCACR4
ITEM "CA|Causale contabile" MESSAGE ENABLE,F_RICERCACR4
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR4
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR4
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR4
ITEM "VM|Categoria vendita articolo e Categoria di vendita" MESSAGE ENABLE,F_RICERCACR4
GROUP 1
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
END
LIST F_RICERCACR4 2 50
BEGIN
PROMPT 2 5 "Quarto gruppo "
ITEM "-|Nessuno" MESSAGE CLEAR,F_RICERCACR5
ITEM "CF|Clienti/Fornitori" MESSAGE ENABLE,F_RICERCACR5
ITEM "CA|Causale contabile" MESSAGE ENABLE,F_RICERCACR5
ITEM "AN|Anagrafica magazzino" MESSAGE ENABLE,F_RICERCACR5
ITEM "CV|Categoria di vendita" MESSAGE ENABLE,F_RICERCACR5
ITEM "CC|Categoria contabile" MESSAGE ENABLE,F_RICERCACR5
ITEM "VM|Categoria vendita articolo e Categoria di vendita" MESSAGE ENABLE,F_RICERCACR5
GROUP 1 2
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
END
LIST F_RICERCACR5 2 50
BEGIN
PROMPT 2 6 "Quinto gruppo "
ITEM "-|Nessuno"
ITEM "CF|Clienti/Fornitori"
ITEM "CA|Causale contabile"
ITEM "AN|Anagrafica magazzino"
ITEM "CV|Categoria di vendita"
ITEM "CC|Categoria contabile"
ITEM "VM|Categoria vendita articolo e Categoria di vendita"
GROUP 1 2
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCACR1)&&(#THIS_FIELD!=#F_RICERCACR2)&&(#THIS_FIELD!=#F_RICERCACR3)&&(#THIS_FIELD!=#F_RICERCACR4))
//WARNING "La sequenza di ricerca primaria deve indicare cinque tipi diversi"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 8 "@bRicerca per anagrafica del conto di costo ricavo"
END
LIST F_RICERCAAN1 2 30
BEGIN
PROMPT 2 9 "Primo gruppo "
ITEM "AR|Articolo"
ITEM "GM|Gruppo merceologico"
ITEM "SM|Sottogruppo merceologico"
ITEM "RF|Raggruppamento fiscale"
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCAAN1)&&(#THIS_FIELD!=#F_RICERCAAN2)&&(#THIS_FIELD!=#F_RICERCAAN3))
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
END
LIST F_RICERCAAN2 2 30
BEGIN
PROMPT 2 10 "Secondo gruppo "
ITEM "-|Nessuno" MESSAGE CLEAR,3@
ITEM "AR|Articolo" MESSAGE ENABLE,F_RICERCAAN3
ITEM "GM|Gruppo merceologico" MESSAGE ENABLE,F_RICERCAAN3
ITEM "SM|Sottogruppo merceologico" MESSAGE ENABLE,F_RICERCAAN3
ITEM "RF|Raggruppamento fiscale" MESSAGE ENABLE,F_RICERCAAN3
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCAAN1)&&(#THIS_FIELD!=#F_RICERCAAN2)&&(#THIS_FIELD!=#F_RICERCAAN3))
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
END
LIST F_RICERCAAN3 2 30
BEGIN
PROMPT 2 11 "Terzo gruppo "
ITEM "-|Nessuno" MESSAGE CLEAR,F_RICERCAAN4
ITEM "AR|Articolo" MESSAGE ENABLE,F_RICERCAAN4
ITEM "GM|Gruppo merceologico" MESSAGE ENABLE,F_RICERCAAN4
ITEM "SM|Sottogruppo merceologico" MESSAGE ENABLE,F_RICERCAAN4
ITEM "RF|Raggruppamento fiscale" MESSAGE ENABLE,F_RICERCAAN4
GROUP 3
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCAAN1)&&(#THIS_FIELD!=#F_RICERCAAN2)&&(#THIS_FIELD!=#F_RICERCAAN3))
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
END
LIST F_RICERCAAN4 2 30
BEGIN
PROMPT 2 12 "Quarto gruppo "
ITEM "-|Nessuno"
ITEM "AR|Articolo"
ITEM "GM|Gruppo merceologico"
ITEM "SM|Sottogruppo merceologico"
ITEM "RF|Raggruppamento fiscale"
GROUP 3
//STR_EXPR (#THIS_FIELD=="-")||((#THIS_FIELD!=#F_RICERCAAN1)&&(#THIS_FIELD!=#F_RICERCAAN2)&&(#THIS_FIELD!=#F_RICERCAAN3))
//WARNING "La sequenza di ricerca per anagrafica deve indicare quattro tipi diversi"
END
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 14 "@bStorno omaggi"
END
STRING F_IVASTORNO 4
BEGIN
PROMPT 2 15 "Cod. IVA "
FIELD IVASTO
USE %IVA
FLAGS "U"
INPUT CODTAB F_IVASTORNO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" S1
DISPLAY "%@5" R0
OUTPUT F_IVASTORNO CODTAB
END
NUMBER F_OMACODCONG 3
BEGIN
PROMPT 24 15 "Conto vendite "
FIELD OMACODCON(1)
USE LF_PCON
INPUT GRUPPO F_OMACODCONG
INPUT CONTO F_OMACODCONC
INPUT SOTTOCONTO F_OMACODCONS
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_OMACODCONG GRUPPO
OUTPUT F_OMACODCONC CONTO
OUTPUT F_OMACODCONS SOTTOCONTO
OUTPUT F_OMACODCOND DESCR
CHECKTYPE NORMAL
END
NUMBER F_OMACODCONC 3
BEGIN
PROMPT 44 15 ""
FIELD OMACODCON(2)
COPY ALL F_OMACODCONG
CHECKTYPE NORMAL
END
NUMBER F_OMACODCONS 6
BEGIN
PROMPT 51 15 ""
FIELD OMACODCON(3)
COPY ALL F_OMACODCONG
CHECKTYPE NORMAL
END
STRING F_OMACODCOND 50
BEGIN
PROMPT 24 16 ""
USE LF_PCON KEY 2
INPUT DESCR F_OMACODCOND
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_OMACODCONG
CHECKTYPE NORMAL
END
NUMBER F_OMAACODCONG 3
BEGIN
PROMPT 24 17 "Conto acquisti"
FIELD OMAACODCON(1)
USE LF_PCON
INPUT GRUPPO F_OMAACODCONG
INPUT CONTO F_OMAACODCONC
INPUT SOTTOCONTO F_OMAACODCONS
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_OMAACODCONG GRUPPO
OUTPUT F_OMAACODCONC CONTO
OUTPUT F_OMAACODCONS SOTTOCONTO
OUTPUT F_OMAACODCOND DESCR
CHECKTYPE NORMAL
END
NUMBER F_OMAACODCONC 3
BEGIN
PROMPT 44 17 ""
FIELD OMAACODCON(2)
COPY ALL F_OMAACODCONG
CHECKTYPE NORMAL
END
NUMBER F_OMAACODCONS 6
BEGIN
PROMPT 51 17 ""
FIELD OMAACODCON(3)
COPY ALL F_OMAACODCONG
CHECKTYPE NORMAL
END
STRING F_OMAACODCOND 50
BEGIN
PROMPT 24 18 ""
USE LF_PCON KEY 2
INPUT DESCR F_OMAACODCOND
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_OMAACODCONG
CHECKTYPE NORMAL
END
LISTBOX F_FLDVALMAT 17
BEGIN
PROMPT 2 20 "Campo per i valore dei materiali "
FIELD FldValMat
ITEM "|Nessuno"
ITEM "ULTCOS1|Ultimo Costo"
ITEM "ULTCOS2|Penultimo Costo"
ITEM "COSTSTD|Costo Standard"
ITEM "USER1|Campo Utente 1"
ITEM "USER2|Campo Utente 2"
ITEM "USER3|Campo Utente 3"
ITEM "USER4|Campo Utente 4"
ITEM "USER5|Campo Utente 5"
ITEM "USER6|Campo Utente 6"
ITEM "USER7|Campo Utente 7"
ITEM "USER8|Campo Utente 8"
ITEM "USER9|Campo Utente 9"
ITEM "USER10|Campo Utente 10"
ITEM "USER11|Campo Utente 11"
ITEM "USER12|Campo Utente 12"
ITEM "USER13|Campo Utente 13"
ITEM "USER14|Campo Utente 14"
ITEM "USER15|Campo Utente 15"
ITEM "USER16|Campo Utente 16"
ITEM "USER17|Campo Utente 17"
ITEM "USER18|Campo Utente 18"
ITEM "USER19|Campo Utente 19"
ITEM "USER20|Campo Utente 20"
END
BOOLEAN F_SCONTO_LORDO
BEGIN
PROMPT 2 21 "Contabilizzazione merci al lordo "
FIELD CONTSCLOR
END
BOOLEAN F_CHECKPREVCONT
BEGIN
PROMPT 42 21 "Controllo contabilizzazione documenti precedenti"
FIELD CHECKPREVCONT
END
STRING F_CMSCNTFIELD 10
BEGIN
PROMPT 2 22 "Campo commesse per reperire la causale"
FLAGS "U"
FIELD CMSCNTFIELD
END
ENDPAGE
ENDMASK

434
src/ve01/ve0200f.uml Normal file
View File

@ -0,0 +1,434 @@
#include "veconf.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Spese incasso" 0 0 0 0
CURRENCY F_IMPSPINC1 9
BEGIN
PROMPT 2 2 "Importo spese per rimesse dirette "
FIELD IMPSPINC[1]
END
CURRENCY F_IMPSPINC2 9
BEGIN
PROMPT 2 3 "Importo spese per tratte "
FIELD IMPSPINC[2]
PICTURE "."
END
CURRENCY F_IMPSPINC3 9
BEGIN
PROMPT 2 4 "Importo spese per ricevute bancarie "
FIELD IMPSPINC[3]
PICTURE "."
END
CURRENCY F_IMPSPINC4 9
BEGIN
PROMPT 2 5 "Importo spese per cessioni "
FIELD IMPSPINC[4]
PICTURE "."
END
CURRENCY F_IMPSPINC5 9
BEGIN
PROMPT 2 6 "Importo spese per pagherò "
FIELD IMPSPINC[5]
PICTURE "."
END
CURRENCY F_IMPSPINC6 9
BEGIN
PROMPT 2 7 "Importo spese per lettere di credito "
FIELD IMPSPINC[6]
PICTURE "."
END
CURRENCY F_IMPSPINC7 9
BEGIN
PROMPT 2 8 "Importo spese per tratte accettate "
FIELD IMPSPINC[7]
PICTURE "."
END
CURRENCY F_IMPSPINC8 9
BEGIN
PROMPT 2 9 "Importo spese per R.I.D. "
FIELD IMPSPINC[8]
PICTURE "."
END
CURRENCY F_IMPSPINC9 9
BEGIN
PROMPT 2 10 "Importo spese per bonifici "
FIELD IMPSPINC[9]
PICTURE "."
END
CURRENCY F_SPADD 11
BEGIN
PROMPT 2 12 "Spese forfettarie da addebitare "
FIELD SPADD
PICTURE "."
END
CURRENCY F_MAXADD 15
BEGIN
PROMPT 2 14 "Importo massimo per addebito "
FIELD MAXADD
PICTURE "."
END
ENDPAGE
PAGE "Spese bolli" 1 1 60 14
CURRENCY F_SPBOSCA1 11
BEGIN
PROMPT 2 2 "Scaglione "
FIELD SPBOSCA[1]
PICTURE "."
END
CURRENCY F_SPBOIMP1 11
BEGIN
PROMPT 25 2 "Importo "
FIELD SPBOIMP[1]
PICTURE "."
END
CURRENCY F_SPBOSCA2 11
BEGIN
PROMPT 2 3 "Scaglione "
FIELD SPBOSCA[2]
PICTURE "."
END
CURRENCY F_SPBOIMP2 11
BEGIN
PROMPT 25 3 "Importo "
FIELD SPBOIMP[2]
PICTURE "."
END
CURRENCY F_SPBOSCA3 11
BEGIN
PROMPT 2 4 "Scaglione "
FIELD SPBOSCA[3]
PICTURE "."
END
CURRENCY F_SPBOIMP3 11
BEGIN
PROMPT 25 4 "Importo "
FIELD SPBOIMP[3]
PICTURE "."
END
CURRENCY F_SPBOSCA4 11
BEGIN
PROMPT 2 5 "Scaglione "
FIELD SPBOSCA[4]
PICTURE "."
END
CURRENCY F_SPBOIMP4 11
BEGIN
PROMPT 25 5 "Importo "
FIELD SPBOIMP[4]
PICTURE "."
END
CURRENCY F_SPBOSCA5 11
BEGIN
PROMPT 2 6 "Scaglione "
FIELD SPBOSCA[5]
PICTURE "."
END
CURRENCY F_SPBOIMP5 11
BEGIN
PROMPT 25 6 "Importo "
FIELD SPBOIMP[5]
PICTURE "."
END
CURRENCY F_SPBOSCA6 11
BEGIN
PROMPT 2 7 "Scaglione "
FIELD SPBOSCA[6]
PICTURE "."
END
CURRENCY F_SPBOIMP6 11
BEGIN
PROMPT 25 7 "Importo "
FIELD SPBOIMP[6]
PICTURE "."
END
CURRENCY F_SPBOSCA7 11
BEGIN
PROMPT 2 8 "Scaglione "
FIELD SPBOSCA[7]
PICTURE "."
END
CURRENCY F_SPBOIMP7 11
BEGIN
PROMPT 25 8 "Importo "
FIELD SPBOIMP[7]
PICTURE "."
END
CURRENCY F_BOLLIES 11
BEGIN
PROMPT 2 10 "Bollo per esenzioni "
FIELD BOLLIES
PICTURE "."
END
CURRENCY F_IMPMINBOLLI 15
BEGIN
PROMPT 2 12 "Importo minimo per bolli esenti "
FIELD IMPMINBOLLI
PICTURE "."
END
DATE F_DATANEWBOLLI
BEGIN
PROMPT 2 14 "Data inizio nuovi bolli esenti "
FIELD DATANEWBOLLI
PICTURE "."
END
ENDPAGE
PAGE "Automatismi" 1 1 60 14
STRING F_OMTRIGA 4
BEGIN
PROMPT 2 2 "Tipo riga omaggi "
FIELD TROMAGGI
FLAGS "U"
USE %TRI SELECT S7=="O"
INPUT CODTAB F_OMTRIGA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_OMTRIGA CODTAB
OUTPUT F_OMDRIGA S0
CHECKTYPE REQUIRED
END
STRING F_OMDRIGA 50
BEGIN
PROMPT 25 3 ""
USE %TRI KEY 2 SELECT S7=="O"
INPUT S0 F_OMDRIGA
COPY DISPLAY F_OMTRIGA
COPY OUTPUT F_OMTRIGA
END
STRING F_OMDESC 50
BEGIN
PROMPT 2 4 "Descrizione omaggio "
FIELD DESOMAGGI
END
STRING F_ESTRIGA 4
BEGIN
PROMPT 2 5 "Tipo riga esenzioni "
FLAGS "U"
USE %TRI SELECT S7=="D"
FIELD TRESENZ
INPUT CODTAB F_ESTRIGA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_ESTRIGA CODTAB
OUTPUT F_ESDRIGA S0
CHECKTYPE REQUIRED
END
STRING F_ESDRIGA 50
BEGIN
PROMPT 25 6 ""
USE %TRI KEY 2 SELECT S7=="D"
INPUT S0 F_ESDRIGA
COPY DISPLAY F_ESTRIGA
COPY OUTPUT F_ESTRIGA
END
STRING F_DESESENZ 70 50
BEGIN
PROMPT 2 7 "Descrizione esenzioni "
FIELD DESESENZ
END
BOOLEAN F_SEPARA_ESENZ
BEGIN
PROMPT 2 8 "Separa la riga esenzioni "
FIELD SEPARA_ESENZ
END
STRING F_SCTRIGA 4
BEGIN
PROMPT 2 9 "Tipo riga sconti testa "
FLAGS "U"
USE %TRI SELECT S7=="C"
FIELD TRSCONTI
INPUT CODTAB F_SCTRIGA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_SCTRIGA CODTAB
OUTPUT F_SCDRIGA S0
CHECKTYPE REQUIRED
END
STRING F_SCDRIGA 50
BEGIN
PROMPT 25 9 ""
USE %TRI KEY 2 SELECT S7=="C"
INPUT S0 F_SCDRIGA
COPY DISPLAY F_SCTRIGA
COPY OUTPUT F_SCTRIGA
END
ENDPAGE
PAGE "Esclusioni IVA" 1 1 60 14
STRING F_EX_IVA1 4
BEGIN
PROMPT 2 2 "Codice IVA "
USE %IVA
FLAGS "U"
INPUT CODTAB F_EX_IVA1
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" S1
DISPLAY "%@5" R0
OUTPUT F_EX_IVA1 CODTAB
CHECKTYPE NORMAL
VALIDATE ZEROFILL_FUNC 2
MESSAGE EMPTY CLEAR, F_EX_PERCIVA1
MESSAGE ENABLE, F_EX_PERCIVA1
FIELD EXCLUDE_IVA[1]
END
NUMBER F_EX_PERCIVA1 6 2
BEGIN
PROMPT 35 2 "% "
FIELD EXCLUDE_PERC[1]
NUM_EXPR {(#F_EX_PERCIVA1>=0.0)&&(#F_EX_PERCIVA1<=100.0)}
WARNING "Inserire una percentuale tra 0 e 100"
END
STRING F_EX_IVA2 4
BEGIN
PROMPT 2 3 "Codice IVA "
USE %IVA
FLAGS "U"
INPUT CODTAB F_EX_IVA2
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" S1
DISPLAY "%@5" R0
OUTPUT F_EX_IVA2 CODTAB
CHECKTYPE NORMAL
VALIDATE ZEROFILL_FUNC 2
FIELD EXCLUDE_IVA[2]
MESSAGE EMPTY CLEAR, F_EX_PERCIVA2
MESSAGE ENABLE, F_EX_PERCIVA2
END
NUMBER F_EX_PERCIVA2 6 2
BEGIN
PROMPT 35 3 "% "
FIELD EXCLUDE_PERC[2]
NUM_EXPR {(#F_EX_PERCIVA2>=0.0)&&(#F_EX_PERCIVA2<=100.0)}
WARNING "Inserire una percentuale tra 0 e 100"
END
STRING F_EX_IVA3 4
BEGIN
PROMPT 2 4 "Codice IVA "
USE %IVA
FLAGS "U"
INPUT CODTAB F_EX_IVA3
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" S1
DISPLAY "%@5" R0
OUTPUT F_EX_IVA3 CODTAB
CHECKTYPE NORMAL
VALIDATE ZEROFILL_FUNC 2
FIELD EXCLUDE_IVA[3]
MESSAGE EMPTY CLEAR, F_EX_PERCIVA3
MESSAGE ENABLE, F_EX_PERCIVA3
END
NUMBER F_EX_PERCIVA3 6 2
BEGIN
PROMPT 35 4 "% "
FIELD EXCLUDE_PERC[3]
NUM_EXPR {(#F_EX_PERCIVA3>=0.0)&&(#F_EX_PERCIVA3<=100.0)}
WARNING "Inserire una percentuale tra 0 e 100"
END
STRING F_EX_IVA4 4
BEGIN
PROMPT 2 5 "Codice IVA "
USE %IVA
FLAGS "U"
INPUT CODTAB F_EX_IVA4
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" S1
DISPLAY "%@5" R0
OUTPUT F_EX_IVA4 CODTAB
CHECKTYPE NORMAL
VALIDATE ZEROFILL_FUNC 2
FIELD EXCLUDE_IVA[4]
MESSAGE EMPTY CLEAR, F_EX_PERCIVA4
MESSAGE ENABLE, F_EX_PERCIVA4
END
NUMBER F_EX_PERCIVA4 6 2
BEGIN
PROMPT 35 5 "% "
FIELD EXCLUDE_PERC[4]
NUM_EXPR {(#F_EX_PERCIVA4>=0.0)&&(#F_EX_PERCIVA4<=100.0)}
WARNING "Inserire una percentuale tra 0 e 100"
END
STRING F_EX_IVA5 4
BEGIN
PROMPT 2 6 "Codice IVA "
USE %IVA
FLAGS "U"
INPUT CODTAB F_EX_IVA5
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "Tipo" S1
DISPLAY "%@5" R0
OUTPUT F_EX_IVA5 CODTAB
CHECKTYPE NORMAL
VALIDATE ZEROFILL_FUNC 2
FIELD EXCLUDE_IVA[5]
MESSAGE EMPTY CLEAR, F_EX_PERCIVA5
MESSAGE ENABLE, F_EX_PERCIVA5
END
NUMBER F_EX_PERCIVA5 6 2
BEGIN
PROMPT 35 6 "% "
FIELD EXCLUDE_PERC[5]
NUM_EXPR {(#F_EX_PERCIVA5>=0.0)&&(#F_EX_PERCIVA5<=100.0)}
WARNING "Inserire una percentuale tra 0 e 100"
END
ENDPAGE
ENDMASK

1044
src/ve01/ve0200g.uml Normal file

File diff suppressed because it is too large Load Diff

119
src/ve01/ve0200h.uml Normal file
View File

@ -0,0 +1,119 @@
#include "veconf.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Configurazione calcolo fido clienti" -1 -1 78 10
NUMBER F_RISKDAYS 2
BEGIN
PROMPT 1 2 "Giorni di rischio "
FLAGS "U"
FIELD FIDO_RISKDAYS
END
NUMBER F_PERCTOLL 6 2
BEGIN
PROMPT 1 3 "% di tolleranza "
FLAGS "U"
FIELD FIDO_PERCTOLL
END
TEXT DLG_NULL
BEGIN
PROMPT 1 5 "@bNumerazioni/Tipi documenti da considerare"
END
SPREADSHEET F_DOCS -1 -1
BEGIN
PROMPT 1 6 ""
ITEM "Numerazione"
ITEM "Descrizione@50"
ITEM "Tipo"
ITEM "Da stato"
ITEM "A stato"
ITEM "Doc. a residuo"
END
ENDPAGE
ENDMASK
PAGE "Numerazioni/Tipi documenti da considerare" -1 -1 78 8
STRING SN_CODNUM 4
BEGIN
PROMPT 1 1 "Codice numerazione "
USE %NUM
INPUT CODTAB SN_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT SN_CODNUM CODTAB
OUTPUT SN_DESCR S0
CHECKTYPE REQUIRED
FLAGS "UZ"
FIELD FIDO_NUM
END
STRING SN_DESCR 50
BEGIN
PROMPT 1 2 "Descrizione "
USE %NUM KEY 2
INPUT S0 SN_DESCR
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT SN_CODNUM
END
STRING SN_TIPO 4
BEGIN
PROMPT 1 3 "Tipo "
USE %TIP
INPUT CODTAB SN_TIPO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT SN_TIPO CODTAB
CHECKTYPE REQUIRED
FLAG "UP"
FIELD FIDO_TIP
END
NUMBER SN_DASTATO 1
BEGIN
PROMPT 1 4 "Da stato "
CHECKTYPE NORMAL
FIELD FIDO_DASTA
END
NUMBER SN_ASTATO 1
BEGIN
PROMPT 1 5 "A stato "
CHECKTYPE NORMAL
FIELD FIDO_ASTA
END
BOOLEAN SN_RESIDUO
BEGIN
PROMPT 1 6 "Documento a residuo "
FIELD FIDO_RES
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -33 -1 ""
END
ENDPAGE
ENDMASK

1864
src/ve01/ve0300.cpp Normal file

File diff suppressed because it is too large Load Diff

2339
src/ve01/ve0300a.src Normal file

File diff suppressed because it is too large Load Diff

88
src/ve01/ve0300b.dat Normal file
View File

@ -0,0 +1,88 @@
LORDO|4||Lordo|5
TIPORIGA|2|2|Tipo riga|2
CODMAG[1,3]|2|3|Mag. |3
CODMAG[4,5]|2|2|Dep.|2
CODART|2|20|Codice Articolo|20
CODG1|2|9|Codice\nLivello 1|9
CODG2|2|9|Codice\nLivello 2|9
CODG3|2|9|Codice\nLivello 3|9
CODG4|2|9|Codice\nLivello 4|9
DESCR|2|50|Descrizione|50
UMQTA|2|2|UM|2
QTA|3|1305|Quantita'|11
PREZZO|3|1802|Prezzo|18
QTAEVASA|3|1305|Quantita'\nEvasa|11
RIGAEVASA|5||Evasa|1
TARA|3|1502|Tara|15
PNETTO|3|1502|Peso Netto|15
NCOLLI|3|7|N.Colli|7
DAEVADERE|4||Da evadere|1
SCONTO|2|25|Sconto|25
PERCPROV|3|502|Perc.\nProvv.|5
IMPFISUN|4||Imp.Fisso unitario|1
IMPFISSO|3|1802|Importo Fisso|18
CODIVA|2|4|Codice\nIVA|4
ADDIVA|4||Addebito IVA|1
ASPBENI|2|3|Aspetto beni|3
CODCAUS|2|3|Causale\nMagazzino|12
CODMAGC[1,3]|2|3|Magazzino\nCollegato|9
CODMAGC[4,5]|2|2|Deposito\nCollegato|9
DATACONS|4|10|Data\nconsegna|10
CODARTMAG|2|20|Cod. Art. Mag.|20
CHECKED|4|10|Controllato|11
QTAGG1|3|1305|Quantita'\nagg. 1|13
QTAGG2|3|1305|Quantita'\nagg. 2|13
QTAGG3|3|1305|Quantita'\nagg. 3|13
QTAGG4|3|1305|Quantita'\nagg. 4|13
QTAGG5|3|1305|Quantita'\nagg. 5|13
IMPIANTO|2|5|Impianto|8
LINEA|2|5|Linea|5
CDC1|2|20|CDC 1|20
CDC2|2|20|CDC 1|20
CDC3|2|20|CDC 1|20
CDC4|2|20|CDC 1|20
CDC5|2|20|CDC 1|20
CDC6|2|20|CDC 1|20
CDC7|2|20|CDC 1|20
CDC8|2|20|CDC 1|20
CDC9|2|20|CDC 1|20
CDC10|2|20|CDC 1|20
CDC11|2|20|CDC 1|20
CDC12|2|20|CDC 1|20
CODAGG1|2|20|Codice aggiuntivo 1|20
CODAGG2|2|20|Codice aggiuntivo 2|20
DETR|2|1|Detraibilità|12
JOLLY1|2|20|Jolly|20
JOLLY2|2|20|Jolly|20
JOLLY3|2|20|Jolly|20
JOLLY4|2|20|Jolly|20
JOLLY5|2|20|Jolly|20
JOLLY6|2|20|Jolly|20
JOLLY7|2|20|Jolly|20
JOLLY8|2|20|Jolly|20
JOLLY9|2|20|Jolly|20
JOLLY10|2|20|Jolly|20
RIDPREZZO|3|18|Riduzione prezzo|18
PERCPROV|3|502|2a Perc.\nProvv.|5
CCON(1)|2|4|CONAI\nSottoc.1|4
PCON(1)|3|1305|CONAI\nPeso un.1|13
CCON(2)|2|4|CONAI\nSottoc.2|4
PCON(2)|3|1305|CONAI\nPeso un.2|13
CCON(3)|2|4|CONAI\nSottoc.3|4
PCON(3)|3|1305|CONAI\nPeso un.3|13
CCON(4)|2|4|CONAI\nSottoc.4|4
PCON(4)|3|1305|CONAI\nPeso un.4|13
CCON(5)|2|4|CONAI\nSottoc.5|4
PCON(5)|3|1305|CONAI\nPeso un.5|13
CCON(6)|2|4|CONAI\nSottoc.6|4
PCON(6)|3|1305|CONAI\nPeso un.6|13
CCON(6)|2|4|CONAI\nSottoc.7|4
PCON(7)|3|1305|CONAI\nPeso un.7|13
CCON(7)|2|4|CONAI\nSottoc.8|4
PCON(8)|3|1305|CONAI\nPeso un.8|13
CCON(8)|2|4|CONAI\nSottoc.9|4
PCON(9)|3|1305|CONAI\nPeso un.9|13
CCON(10)|2|4|CONAI\nSottoc.10|4
PCON(10)|3|1305|CONAI\nPeso un.10|13
REVCHARGE|4||Reverse charge|14

127
src/ve01/ve0300c.ini Normal file
View File

@ -0,0 +1,127 @@
[100]
HEIGHT=8
CONFIGS=
[101]
HEIGHT=1
[200]
HEIGHT=2
[300]
HEIGHT=1
[400]
HEIGHT=1
[500]
HEIGHT=5
[600]
HEIGHT=2
[700]
HEIGHT=2
[800]
HEIGHT=2
[810]
HEIGHT=1
[820]
HEIGHT=1
[830]
HEIGHT=1
[900]
HEIGHT=8
[1000]
HEIGHT=2
[1100]
HEIGHT=2
[1110]
HEIGHT=1
[1200]
HEIGHT=1
[1210]
HEIGHT=1
[1300]
HEIGHT=1
[1400]
HEIGHT=1
[1500]
HEIGHT=1
[1600]
HEIGHT=1
[1700]
HEIGHT=3
[1800]
HEIGHT=2
[1900]
HEIGHT=3
[2000]
HEIGHT=1
[2100]
HEIGHT=1
[2200]
HEIGHT=1
[2300]
HEIGHT=1
[2400]
HEIGHT=1
[2500]
HEIGHT=4
[2700]
HEIGHT=1
[2710]
HEIGHT=1
[2800]
HEIGHT=1
[2900]
HEIGHT=2
[3000]
HEIGHT=3
[3100]
HEIGHT=3
[3200]
HEIGHT=1
[3400]
HEIGHT=4
[3500]
HEIGHT=3
[4000]
HEIGHT=1
[0]
HEIGHT =

1405
src/ve01/ve0400.cpp Normal file

File diff suppressed because it is too large Load Diff

40
src/ve01/ve0500.cpp Normal file
View File

@ -0,0 +1,40 @@
#include <relapp.h>
#include "ve0.h"
class TGlossario_application : public TRelation_application
{
TMask* _msk;
TRelation* _rel;
protected:
virtual const char* extra_modules() const { return "dt"; }
virtual bool user_create();
virtual bool user_destroy();
virtual TMask* _get_mask(int mode) { return _msk; }
virtual TRelation* get_relation() const { return _rel; }
public:
TGlossario_application() : _msk(NULL), _rel(NULL) {}
};
bool TGlossario_application::user_create()
{
_rel = new TRelation(LF_GOLEM);
_msk = new TMask("ve0500a");
return true;
}
bool TGlossario_application::user_destroy()
{
delete _msk;
delete _rel;
return true;
}
int ve0500(int argc, char* argv[])
{
TGlossario_application a;
a.run(argc, argv, TR("Gestione glossario"));
return 0;
}

2
src/ve01/ve0500a.h Normal file
View File

@ -0,0 +1,2 @@
#define F_CODICE 101
#define F_DESCR 102

37
src/ve01/ve0500a.uml Normal file
View File

@ -0,0 +1,37 @@
#include "ve0500a.h"
TOOLBAR "topbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Glossario documenti " 0 0 0 0
GROUPBOX DLG_NULL 76 3
BEGIN
PROMPT 1 1 ""
FLAGS "R"
END
STRING F_CODICE 8
BEGIN
PROMPT 2 2 "Codice "
FIELD CODICE
FLAGS "U"
KEY 1
USE LF_GOLEM
INPUT CODICE F_CODICE
DISPLAY "Codice" CODICE
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CODICE CODICE
CHECKTYPE REQUIRED
END
MEMO F_DESCR 70 -2
BEGIN
PROMPT 2 5 "Descrizione "
FIELD DESCR
END
ENDPAGE
ENDMASK

338
src/ve01/ve0600.cpp Normal file
View File

@ -0,0 +1,338 @@
#include "ve0.h"
#include <automask.h>
#include <colors.h>
#include <execp.h>
#include <modtbapp.h>
#include <recset.h>
#include <tabmod.h>
#include "../cg/cglib.h"
///////////////////////////////////////////////////////////
// Applicazione per gestione maschere di modulo
///////////////////////////////////////////////////////////
class TVE_tab_mod_app : public TTable_module_application
{
};
///////////////////////////////////////////////////////////
// Maschera di gestione tabella CVM:
// Condizioni di vendita per categoria e gruppo merceologico
///////////////////////////////////////////////////////////
#include "vetbcvm.h"
class TCVM_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TCVM_mask();
};
TCVM_mask::TCVM_mask() : TAutomask("vetbcvm")
{
TSheet_field& s = sfield(F_CVM_SHT);
s.set_nav_column(F_CVM_SOTTOCONTO, F_CVM_DESCONTO);
}
bool TCVM_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch(o.dlg())
{
case F_CVM_SHT:
switch (e)
{
case se_query_add:
case se_query_del:
return false; // Non sono ammesse aggiunte o cancellazioni
case se_notify_modify:
{
TSheet_field& s = (TSheet_field&)o;
TToken_string& row = s.row(jolly);
const long sc = row.get_long(s.cid2index(F_CVM_SOTTOCONTO));
if (sc > 0) // Colora le righe valide
s.set_back_and_fore_color(REQUIRED_BACK_COLOR, NORMAL_COLOR, jolly);
else
s.set_back_and_fore_color(COLOR_INVALID, COLOR_INVALID, jolly);
}
break;
default: break;
}
default: break;
}
return true;
}
class TCVM_tab_app : public TRelation_application
{
TCVM_mask* _msk;
TRelation* _rel;
protected:
int find_cve(TSheet_field& s, const TString& cve) const;
public:
virtual TMask* _get_mask(int) { return _msk; }
virtual TRelation* get_relation() const { return _rel; }
virtual bool user_create();
virtual bool user_destroy();
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
virtual void init_modify_mode(TMask& m);
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool remove();
};
void TCVM_tab_app::init_query_mode(TMask& m)
{
m.enable(-2);
m.hide(-3);
}
void TCVM_tab_app::init_insert_mode(TMask& m)
{
m.disable(-2);
m.show(-3);
read(m);
}
void TCVM_tab_app::init_modify_mode(TMask& m)
{
m.disable(-2);
m.show(-3);
}
bool TCVM_tab_app::user_create()
{
_rel = new TRelation("CRA");
_msk = new TCVM_mask;
return true;
}
int TCVM_tab_app::find_cve(TSheet_field& s, const TString& cve) const
{
int mini = 0, maxi = s.items()-1, midi = 0;
TString8 code;
while (mini <= maxi)
{
midi = (mini+maxi) / 2;
s.row(midi).get(0, code);
const int cmp = code.compare(cve);
if (cmp == 0)
break;
if (cmp > 0)
maxi = midi-1;
else
mini = midi+1;
}
return code == cve ? midi : -1;
}
int TCVM_tab_app::read(TMask& m)
{
TSheet_field& s = m.sfield(F_CVM_SHT);
s.destroy();
const TString& code = m.get(F_CVM_COD);
if (code.full())
{
TISAM_recordset gm("USE CVE");
for (bool ok = gm.move_first(); ok; ok = gm.move_next())
{
TToken_string& row = s.row(-1);
row = gm.get("CODTAB").as_string();
row.add(gm.get("S0").as_string());
}
}
if (!s.empty())
{
TISAM_recordset cvm("USE &CVM\nFROM CODTAB=#COD\nTO CODTAB=#COD");
cvm.set_var("#COD", code);
TString8 cve;
for (bool ok = cvm.move_first(); ok; ok = cvm.move_next())
{
cve = cvm.get("CODTAB[4,5]").as_string();
const int i = find_cve(s, cve);
if (i >= 0)
{
const int gr = cvm.get("I0").as_int();
const int co = cvm.get("I1").as_int();
const long so = cvm.get("I2").as_int();
if (so > 0)
{
TBill zio(gr, co, so);
TToken_string& row = s.row(i);
zio.add_to(row, 2, 0x2);
s.set_back_and_fore_color(REQUIRED_BACK_COLOR, NORMAL_COLOR, i);
}
}
}
}
return s.empty() ? _iskeynotfound : NOERR;
}
int TCVM_tab_app::write(const TMask& m)
{
TSheet_field& s = m.sfield(F_CVM_SHT);
TModule_table cvm("&CVM");
FOR_EACH_SHEET_ROW(s, i, row)
{
const TBill zio(*row, 2);
TString16 code = m.get(F_CVM_COD);
code << row->get(0);
cvm.put("CODTAB", code);
if (zio.ok())
{
cvm.put("I0", zio.gruppo());
cvm.put("I1", zio.conto());
cvm.put("I2", zio.sottoconto());
cvm.rewrite_write();
}
else
{
cvm.remove();
}
}
return NOERR;
}
int TCVM_tab_app::rewrite(const TMask& m)
{
return write(m);
}
bool TCVM_tab_app::remove()
{
const TString4 code = get_relation()->curr().get("CODTAB");
TISAM_recordset cvm("USE &CVM\nFROM CODTAB=#COD\nTO CODTAB=#COD");
cvm.set_var("#COD", code);
TLocalisamfile& f = cvm.cursor()->file();
for (bool ok = cvm.move_first(); ok; ok = cvm.move_next())
f.remove();
return true;
}
bool TCVM_tab_app::user_destroy()
{
delete _msk;
delete _rel;
return true;
}
///////////////////////////////////////////////////////////
// Maschera di gestione tabella CSC:
// Connversione conai
///////////////////////////////////////////////////////////
#include "vetbcsc.h"
class TCSC_mask : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
public:
TCSC_mask() : TAutomask("vetbcsc") {}
};
bool TCSC_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
{
case DLG_CONV:
switch (e)
{
case fe_button:
{
long e = 0;
{
TExternal_app app("bacnv -26");
e = app.run();
}
if (e != 1)
{
TExternal_app app("bacnv -24");
app.run();
}
}
break;
default: break;
}
default: break;
}
return true;
}
class TCSC_tab_app : public TRelation_application
{
TCSC_mask * _msk;
TRelation * _rel;
protected:
public:
virtual TMask* _get_mask(int) { return _msk; }
virtual TRelation* get_relation() const { return _rel; }
virtual bool user_create();
virtual bool user_destroy();
};
bool TCSC_tab_app::user_create()
{
_rel = new TRelation("&CSC");
_msk = new TCSC_mask;
return true;
}
bool TCSC_tab_app::user_destroy()
{
delete _msk;
delete _rel;
return true;
}
///////////////////////////////////////////////////////////
// Selettore applicazione per gestione maschere di modulo
///////////////////////////////////////////////////////////
int ve0600(int argc, char* argv[])
{
TString4 tab = argv[2];
tab.upper(); tab.strip("&");
if (tab == "CVM")
{
TCVM_tab_app a;
a.run(argc, argv, TR("Conti per categoria e gruppo"));
}
else
if (tab == "CSC")
{
TCSC_tab_app a;
a.run(argc, argv, TR("Conversione CONAI"));
}
else
{
TVE_tab_mod_app a;
a.run(argc, argv, TR("Tabelle modulo vendite"));
}
return 0;
}

41
src/ve01/ve0900.uml Normal file
View File

@ -0,0 +1,41 @@
#include "veuml.h"
TOOLBAR "Toolbar" 0 0 0 2
#include <relapbar.h>
ENDPAGE
PAGE "Forza ordini completati" 0 0 0 0
STRING F_CODNUM 4
BEGIN
PROMPT 2 5 "Numerazione "
FIELD CODNUM
HELP "Codice numerazione"
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
OUTPUT F_DESNUM S0
CHECKTYPE FORCED
FLAG "UPA"
WARNING "Numerazione assente"
KEY 1 2
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 7 "Anno "
FIELD ANNO
CHECKTYPE REQUIRED
NUM_EXPR #F_ANNO>0
FLAG "AP"
KEY 1 2
WARNING "Inserire un anno valido"
END
ENDPAGE
ENDMASK

22
src/ve01/ve1.cpp Normal file
View File

@ -0,0 +1,22 @@
#include <xvt.h>
#include "ve1.h"
int main(int argc, char **argv)
{
const int r = (argc>1) ? argv[1][1]-'0' : -1;
switch (r)
{
case 1 : ve1200(argc, argv); break; //stampa scoperto, lista bolle
case 2 : ve1300(argc, argv); break; //stampa report documenti
case 3 : ve1400(argc, argv); break; //stampa tabelle vendita ed utilita' varie
case 4 : ve1500(argc, argv); break; //stampa di controllo documenti contabilizzati
case 5 : ve1600(argc, argv); break; //stampa di controllo bolle fatturate
case 6 : ve1700(argc, argv); break; //Lista documenti con report
case 7 : ve1800(argc, argv); break; //Fido
case 8 : ve1900(argc, argv); break; //stampa clienti data una modalità di pagamento
default: ve1100(argc, argv); break; //stampa documenti di vendita
}
return 0;
}

18
src/ve01/ve1.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef __VE1_H
#define __VE1_H
int ve1100(int argc, char* argv[]);
int ve1200(int argc, char* argv[]);
int ve1300(int argc, char* argv[]);
int ve1400(int argc, char* argv[]);
int ve1500(int argc, char* argv[]);
int ve1600(int argc, char* argv[]);
int ve1700(int argc, char* argv[]);
int ve1800(int argc, char* argv[]);
int ve1900(int argc, char* argv[]);
#endif // __VE1_H

16
src/ve01/ve1000b.uml Normal file
View File

@ -0,0 +1,16 @@
#include "veuml.h"
TOOLBAR "topbar" 0 0 0 2
#include <stdbar.h>
ENDPAGE
PAGE "Tipo di riga da aggiungere" -1 -1 50 8
LISTBOX F_LBTIPORIGA 30
BEGIN
PROMPT 2 2 "Tipo riga "
END
ENDPAGE
ENDMASK

2212
src/ve01/ve1100.cpp Normal file

File diff suppressed because it is too large Load Diff

31
src/ve01/ve1100.h Normal file
View File

@ -0,0 +1,31 @@
#define F_CODNUM 121
#define F_ANNO 122
#define F_PROVV 123
#define F_NCOPIE 124
#define F_DATA_O_NUM 125
#define F_DA_NDOC 126
#define F_A_NDOC 127
#define F_DA_DATADOC 128
#define F_A_DATADOC 129
#define F_TIPOST 130
#define F_TIPOCF 110
#define F_CODFR 111
#define F_CODTO 112
#define F_SELECTED 113
#define BUT_SEL 114
#define BUT_ANN 115
#define F_SELVAL 116
#define F_VALUTA 117
#define F_DETTAGLIO 118
#define F_DESCR_CLI 119
#define F_SHEETNUMS 201
#define GROUP_PRICES 29
#define GROUP_QTA 30
#define GROUP_IMPORTI 31

149
src/ve01/ve1100a.uml Normal file
View File

@ -0,0 +1,149 @@
#include "ve1100.h"
TOOLBAR "" 0 0 0 2
#include <aprintbar.h>
ENDPAGE
TOOLBAR "bottombar" 0 -1 0 1
#include <bprintbar.h>
ENDPAGE
PAGE "Stampa Documenti Vendita" 0 0 0 0
STRING F_CODNUM 4 4
BEGIN
PROMPT 1 1 "Codice numerazione "
FLAG "UP"
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Cod. Num." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
CHECKTYPE NORMAL
END
NUMBER F_ANNO 4 0
BEGIN
PROMPT 38 1 "Anno "
FLAG "AP"
CHECKTYPE REQUIRED
END
LIST F_PROVV 12
BEGIN
PROMPT 1 2 "Tipo numerazione "
ITEM "D|Definitiva"
ITEM "P|Provvisoria"
FLAG "P"
END
NUMBER F_NCOPIE 2
BEGIN
PROMPT 38 2 "Numero copie "
FLAG "UP"
WARNING "Il numero di copie deve essere positivo"
END
RADIOBUTTON F_DATA_O_NUM 68
BEGIN
PROMPT 1 4 "Selezione per "
ITEM "N|Numero documento" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
ITEM "D|Data documento" MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
FLAG "P"
END
GROUPBOX DLG_NULL 68 5
BEGIN
PROMPT 1 9 "Selezione per numero"
GROUP 1
END
NUMBER F_DA_NDOC 7
BEGIN
PROMPT 2 10 "Dal "
USE 33
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN 13 TO 20 INTO COM=COMCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_DA_NDOC
DISPLAY "Data@10" DATADOC
DISPLAY "Numero@7" NDOC
DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
DISPLAY "Comune@20" 13->DENCOM
OUTPUT F_DA_NDOC NDOC
GROUP 1
ADD RUN ve0 -0
END
NUMBER F_A_NDOC 7
BEGIN
PROMPT 2 12 "Al "
USE 33
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN 13 TO 20 INTO COM=COMCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_A_NDOC
COPY DISPLAY F_DA_NDOC
OUTPUT F_A_NDOC NDOC
WARNING "Il numero documento deve essere superiore al limite inferiore"
GROUP 1
ADD RUN ve0 -0
END
GROUPBOX DLG_NULL 68 5
BEGIN
PROMPT 1 9 "Selezione per data"
GROUP 2
END
DATE F_DA_DATADOC
BEGIN
PROMPT 2 10 "Dal "
USE 33 KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN 13 TO 20 INTO COM=COMCF
INPUT DATADOC F_DA_DATADOC
INPUT PROVV F_PROVV
INPUT ANNO F_ANNO
INPUT CODNUM F_CODNUM
DISPLAY "Data@10" DATADOC
DISPLAY "Numero@7" NDOC
DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
DISPLAY "Comune@20" 13->DENCOM
OUTPUT F_DA_NDOC NDOC
OUTPUT F_DA_DATADOC DATADOC
GROUP 2
END
DATE F_A_DATADOC
BEGIN
PROMPT 2 12 "Al "
USE LF_DOC KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
JOIN LF_CLIFO INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN LF_COMUNI TO LF_CLIFO INTO COM=COMCF
INPUT DATADOC F_A_DATADOC
INPUT PROVV F_PROVV
INPUT ANNO F_ANNO
INPUT CODNUM F_CODNUM
COPY DISPLAY F_DA_DATADOC
OUTPUT F_A_NDOC NDOC
OUTPUT F_A_DATADOC DATADOC
GROUP 2
END
RADIOBUTTON F_TIPOST 68
BEGIN
PROMPT 1 14 "Stampa"
ITEM "D|Definitiva (Solo i documenti non stampati in definitiva)"
ITEM "P|Provvisoria (Tutti i documenti selezionati senza cambio stato)"
FLAG "P"
END
ENDPAGE
ENDMASK

217
src/ve01/ve1100b.uml Normal file
View File

@ -0,0 +1,217 @@
#include "ve1100.h"
TOOLBAR "topbar" 0 0 0 2
#include <aprintbar.h>
ENDPAGE
TOOLBAR "bottombar" 0 -1 0 1
#include <bprintbar.h>
ENDPAGE
PAGE "Lista documenti" -1 -1 60 21
NUMBER F_ANNO 4 0
BEGIN
PROMPT 2 1 "Anno "
FLAG "AP"
CHECKTYPE REQUIRED
END
LIST F_PROVV 12
BEGIN
PROMPT 24 1 "Tipo numerazione "
ITEM "D|Definitiva"
ITEM "P|Provvisoria"
FLAG "P"
END
SPREADSHEET F_SHEETNUMS 78 8
BEGIN
PROMPT 1 2 ""
ITEM "Cod.\nnum.@4"
ITEM "Tipo\ndoc.@4"
ITEM "Da doc.\nnumero@7"
ITEM "A doc.\nnumero@7"
ITEM "Stato 1"
ITEM "Stato 2"
ITEM "Stato 3"
ITEM "Stato 4"
END
DATE F_DA_DATADOC
BEGIN
PROMPT 2 11 "Dalla data "
END
DATE F_A_DATADOC
BEGIN
PROMPT 2 12 "Alla data "
END
LIST F_TIPOCF 1 11
BEGIN
PROMPT 25 12 "Tipo "
ITEM "C|Clienti"
ITEM "F|Fornitori"
END
NUMBER F_CODFR 6
BEGIN
PROMPT 25 13 "Da codice "
FLAGS "B"
END
NUMBER F_CODTO 6
BEGIN
PROMPT 25 14 "A codice "
FLAGS "B"
END
STRING F_SELECTED 5
BEGIN
PROMPT 25 15 "Scelte n. "
FLAGS "DR"
END
BUTTON BUT_SEL 10 2
BEGIN
PROMPT 45 13 "~Selezione"
PICTURE BMP_SELECT
END
BUTTON BUT_ANN 10
BEGIN
PROMPT 45 15 "A~zzera"
END
RADIOBUTTON F_SELVAL 20
BEGIN
PROMPT 2 13 "Stampa documenti"
ITEM "1|Valuta ditta"
MESSAGE CLEAR,F_VALUTA
ITEM "2|In valuta"
MESSAGE ENABLE,F_VALUTA
ITEM "3|Tutti"
MESSAGE CLEAR,F_VALUTA
END
STRING F_VALUTA 3
BEGIN
PROMPT 25 16 "Cod. val. "
FLAGS "U"
USE %VAL
INPUT CODTAB F_VALUTA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_VALUTA CODTAB
CHECKTYPE REQUIRED
END
BOOLEAN F_DETTAGLIO
BEGIN
PROMPT 25 17 "Dettaglio righe"
END
STRING F_DESCR_CLI 50 30
BEGIN
PROMPT 2 18 "Ragione sociale "
USE LF_CLIFO KEY 2
INPUT TIPOCF F_TIPOCF SELECT
INPUT RAGSOC F_DESCR_CLI
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice@15" CODCF
OUTPUT F_CODFR CODCF
OUTPUT F_CODTO CODCF
END
ENDPAGE
ENDMASK
PAGE "" -1 -1 75 10
STRING 101 4
BEGIN
PROMPT 1 1 "Codice numerazione "
FLAGS "U"
USE %NUM
INPUT CODTAB 101
DISPLAY "Cod. Num." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT 101 CODTAB
CHECKTYPE NORMAL
END
STRING 102 4
BEGIN
PROMPT 1 2 "Tipo documento "
FLAGS "UB"
END
NUMBER 103 7
BEGIN
PROMPT 1 3 "Da numero doc. "
END
NUMBER 104 7
BEGIN
PROMPT 1 4 "A numero doc. "
END
STRING 105 1
BEGIN
PROMPT 1 5 "Stato 1 "
USE %STD
INPUT CODTAB 105
DISPLAY "Stato" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT 105 CODTAB
CHECKTYPE NORMAL
END
STRING 106 1
BEGIN
PROMPT 1 6 "Stato 2 "
COPY USE 105
INPUT CODTAB 106
COPY DISPLAY 105
OUTPUT 106 CODTAB
CHECKTYPE NORMAL
END
STRING 107 1
BEGIN
PROMPT 1 7 "Stato 3 "
COPY USE 105
INPUT CODTAB 107
COPY DISPLAY 105
OUTPUT 107 CODTAB
CHECKTYPE NORMAL
END
STRING 108 1
BEGIN
PROMPT 1 8 "Stato 4 "
COPY USE 105
INPUT CODTAB 108
COPY DISPLAY 105
OUTPUT 108 CODTAB
CHECKTYPE NORMAL
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

701
src/ve01/ve1200.cpp Normal file
View File

@ -0,0 +1,701 @@
#include <applicat.h>
#include <automask.h>
#include <form.h>
#include <printer.h>
#include <progind.h>
#include <recarray.h>
#include <tabutil.h>
#include "velib04.h"
#include "ve1200a.h"
#include <doc.h>
///////////////////////////////////////////////////////////
// TScoperto_msk
///////////////////////////////////////////////////////////
class TScoperto_msk : public TAutomask
{
protected:
virtual bool on_field_event(TOperable_field& f, TField_event e, long jolly);
bool fill_sheet();
public:
TScoperto_msk();
};
bool TScoperto_msk::on_field_event(TOperable_field& f, TField_event e, long jolly)
{
switch (f.dlg())
{
case F_CONSORD:
if (e == fe_modify)
fill_sheet();
break;
case F_BOLLE:
if (e == se_query_add || e == se_query_del)
return FALSE;
if (e == fe_close)
{
TSheet_field& s = sfield(F_BOLLE);
FOR_EACH_SHEET_ROW(s, r, row)
{
if (*row->get(0) == 'X')
return TRUE;
}
return error_box("Selezionare almeno una numerazione");
}
break;
case 100:
if (e == fe_button)
{
TMask& m = f.mask(); // Sheet mask
m.set(F_SELECTED, m.get_bool(F_SELECTED) ? "" : "X");
if (!m.is_open())
sfield(F_BOLLE).force_update();
}
break;
default:
break;
}
return TRUE;
}
bool TScoperto_msk::fill_sheet()
{
TSheet_field& sheet = sfield(F_BOLLE);
sheet.destroy();
const TTipo_elaborazione tipo_elab_bolle = get_bool(F_CONSORD) ? _consegna_ordini : _fatturazione_bolle;
const TTipo_elaborazione tipo_elab_fatt = _contabilizzazione;
TWait_cursor hourglass;
TTable num("%NUM");
for (int err = num.first(); err == NOERR; err = num.next()) if (num.get_int("I1") == 1) // bolle
{
TToken_string tipi(50, ',');
const TCodice_numerazione codnum(num.curr());
for (int t = codnum.ntipi_doc()-1; t >= 0; t--)
{
const TString4 td = codnum.tipo_doc(t);
const TTipo_documento& tpd = cached_tipodoc(td);
TFilename prof; tpd.profile_name(prof);
TConfig ini(prof, "MAIN");
if (ini.get("TIPOCF") == "F")
tipi.add(td);
}
if (tipi.not_empty())
{
TTable eld("%ELD");
TToken_string fatture(50, ',');
TString8 stato_bolla, stato_fatt;
for (int err = eld.first(); err == NOERR; err = eld.next())
{
const TTipo_elaborazione te = (TTipo_elaborazione)eld.get_int("I0");
if (te == tipo_elab_bolle)
{
TElaborazione_esterna elab(eld.curr()); // Una vale l'altra :-)
TString8 ti;
for (int i = 0; ; i++)
{
ti = elab.tipo_iniziale(i); // Tipo iniziale
if (ti.empty())
break;
if (tipi.get_pos(ti) >= 0)
{
if (stato_bolla.empty())
stato_bolla << elab.stato_iniziale(i);
const TString8 codfatt = elab.codice_numerazione_finale();
if (fatture.get_pos(codfatt) < 0) // Non e' già presente in lista
{
const TRectype& numfatt = cache().get("%NUM", codfatt);
if (numfatt.get_int("I1") == 2) // Fattura vera!
fatture.add(codfatt);
}
}
}
}
if (te == tipo_elab_fatt && stato_fatt.empty())
{
TElaborazione_esterna elab(eld.curr()); // Una vale l'altra :-)
const TString8 codfatt = elab.codice_numerazione_finale();
bool is_fatt = fatture.get_pos(codfatt) >= 0;
if (!is_fatt)
{
const TRectype& numfatt = cache().get("%NUM", codfatt);
is_fatt = numfatt.get_int("I1") == 2;
}
if (is_fatt)
stato_fatt << elab.stato_finale_doc_iniziale();
}
}
if (fatture.not_empty())
{
TToken_string& row = sheet.row(-1);
row = " ";
row.add(codnum.codice());
row.add(codnum.descrizione());
row.add(tipi);
row.add(stato_bolla); // Stato bolle non fatturate
row.add(fatture);
row.add(stato_fatt); // Stato fatture contabilizzate
}
}
}
sheet.force_update();
return sheet.items() > 0;
}
TScoperto_msk::TScoperto_msk() : TAutomask("ve1200a")
{
if (!fill_sheet())
{
set(F_CONSORD, "X");
fill_sheet();
}
}
///////////////////////////////////////////////////////////
// TScoperto_form
///////////////////////////////////////////////////////////
class TScoperto_form : public TForm
{
TDate _data_rif;
bool _work_on_residual;
char _stato_bolle;
char _stato_fatture;
private:
static TScoperto_form* _curr_form;
static void header_handler(TPrinter& p);
protected:
virtual bool validate(TForm_item& f, TToken_string& msg);
const TRectype& head_of(const TRectype& row) const;
public:
void print_header();
int print_bolla(const TRectype& doc, TArray* fatt);
void print_total();
TScoperto_form(const TDate& dr, bool wor, char sb, char sf);
virtual ~TScoperto_form();
};
TScoperto_form* TScoperto_form::_curr_form = NULL;
bool TScoperto_form::validate(TForm_item& f, TToken_string& msg)
{
if (msg == "_CLIFO")
{
const TRectype& r = cursor()->curr(LF_DOC);
TToken_string key;
key.add(r.get(DOC_TIPOCF));
key.add(r.get(DOC_CODCF));
const TRectype& rec = cache().get(LF_CLIFO, key);
key = rec.get("RAGSOC");
if (key.len() > 30 && key[29] == ' ')
{
const TString nome = key.mid(30);
key.cut(30); key.rtrim();
key << ' ' << nome;
}
f.set(key);
return TRUE;
}
if (msg == "_DESCART")
{
const TRectype& r = cursor()->curr(LF_RIGHEDOC);
TToken_string key;
key.add(r.get(RDOC_CODARTMAG));
const TRectype& rec = cache().get(LF_ANAMAG, key);
f.set(rec.get("DESCR"));
return TRUE;
}
return TForm::validate(f, msg);
}
void TScoperto_form::print_header()
{
TPrint_section& head = section('H');
head.find_field(H_DATARIF).set(_data_rif.string());
set_header(1, FALSE);
set_header(1, TRUE);
}
const TRectype& TScoperto_form::head_of(const TRectype& row) const
{
TToken_string key;
key.add(row.get(RDOC_PROVV));
key.add(row.get(RDOC_ANNO));
key.add(row.get(RDOC_CODNUM));
key.add(row.get(RDOC_NDOC));
return cache().get(LF_DOC, key);
}
int TScoperto_form::print_bolla(const TRectype& dochead, TArray* fatt)
{
TDocumento& doc =(TDocumento& )cursor()->curr(LF_DOC);
doc.read(dochead);
TPrint_section& body = section('B', odd_page);
TString_array note;
bool testata_stampata = FALSE;
for (int r = 1; r <= doc.physical_rows(); r++)
{
TRiga_documento& riga = doc[r];
if (riga.is_merce())
{
real quant, valore;
TString16 docrif, datarif, codnum, ndoc, postilla;
if (_work_on_residual)
{
// Cerco le righe di fattura generate da questa riga di bolla
if (fatt != NULL)
{
real qtafatt; // Quantità fatturata
int fatture = 0;
TToken_string key_bol, key_fat;
key_bol = riga.get(RDOC_PROVV);
key_bol.add(riga.get(RDOC_ANNO));
key_bol.add(riga.get(RDOC_CODNUM));
key_bol.add(riga.get(RDOC_NDOC));
key_bol.add(riga.get(RDOC_IDRIGA));
for (int r = fatt->last(); r >= 0; r--)
{
const TRectype& rfatt = (const TRectype&)(*fatt)[r];
const TRectype& fatt_head = head_of(rfatt);
const TDate data_fatt = fatt_head.get_date(DOC_DATADOC);
const char stato_fatt = fatt_head.get_char(DOC_STATO);
if (stato_fatt < _stato_fatture || data_fatt > _data_rif)
{
key_fat = rfatt.get(RDOC_DAPROVV);
key_fat.add(rfatt.get(RDOC_DAANNO));
key_fat.add(rfatt.get(RDOC_DACODNUM));
key_fat.add(rfatt.get(RDOC_DANDOC));
key_fat.add(rfatt.get(RDOC_DAIDRIGA));
if (key_fat == key_bol)
{
qtafatt += rfatt.get_real(RDOC_QTA);
fatture++;
if (docrif.empty())
{
docrif = fatt_head.get(DOC_NUMDOCRIF);
datarif = fatt_head.get(DOC_DATADOCRIF);
codnum = fatt_head.get(DOC_CODNUM);
ndoc = fatt_head.get(DOC_NDOC);
}
else
{
TToken_string n(50, ',');
n = fatt_head.get(DOC_NUMDOCRIF);
if (n != docrif) // Non annotare il documento principale!
{
TToken_string* nota = (TToken_string*)note.objptr(r);
if (nota == NULL)
{
nota = new TToken_string;
note.add(nota, r);
postilla.format("(%d)", note.items());
}
n.add(fatt_head.get(DOC_DATADOCRIF));
n.add(fatt_head.get(DOC_CODNUM));
n.add(fatt_head.get(DOC_NDOC));
if (nota->get_pos(n) < 0) // Non annotare due volte lo stesso documento!
nota->add(n);
}
}
}
}
}
if (!qtafatt.is_zero())
{
// Calcolo nuova quantita evasa sulla riga della bolla
// Se la riga è completamente evasa da una sola fattura devo azzerara la quantità evasa
// altrimenti devo scalare da questa la quantità specificata sulla fattura
real qtaevasa;
if (fatture > 1 || !riga.get_bool(RDOC_RIGAEVASA))
{
qtaevasa = riga.get_real(riga.field_qtaevasa());
qtaevasa -= qtafatt;
}
riga.put(riga.field_qtaevasa(), qtaevasa);
riga.put(RDOC_RIGAEVASA, ""); // La riga non può essere evasa completamente
}
}
quant = riga.qtaresidua();
valore = riga.valore(false, false, AUTO_DECIMALS);
}
else
{
if (fatt != NULL)
{
TToken_string key_bol, key_fat;
key_bol = riga.get(RDOC_PROVV);
key_bol.add(riga.get(RDOC_ANNO));
key_bol.add(riga.get(RDOC_CODNUM));
key_bol.add(riga.get(RDOC_NDOC));
key_bol.add(riga.get(RDOC_IDRIGA));
for (int r = fatt->last(); r >= 0; r--)
{
const TRectype& rfatt = (const TRectype&)(*fatt)[r];
const TRectype& fatt_head = head_of(rfatt);
const TDate data_fatt = fatt_head.get_date(DOC_DATADOC);
const char stato_fatt = fatt_head.get_char(DOC_STATO);
if (stato_fatt < _stato_fatture || data_fatt > _data_rif)
{
key_fat = rfatt.get(RDOC_DAPROVV);
key_fat.add(rfatt.get(RDOC_DAANNO));
key_fat.add(rfatt.get(RDOC_DACODNUM));
key_fat.add(rfatt.get(RDOC_DANDOC));
key_fat.add(rfatt.get(RDOC_DAIDRIGA));
if (key_fat == key_bol)
{
if (docrif.empty())
{
docrif = fatt_head.get(DOC_NUMDOCRIF);
datarif = fatt_head.get(DOC_DATADOCRIF);
codnum = fatt_head.get(DOC_CODNUM);
ndoc = fatt_head.get(DOC_NDOC);
break; // Non ne dovrebbero esistere altre
}
}
}
}
}
quant = riga.quantita();
valore = riga.valore(true, false, AUTO_DECIMALS);
}
if (valore > ZERO) // Devo stampare la riga
{
if (!testata_stampata) // Controllo se devo stampare la testata relativa
{
set_body(1, FALSE); // Inizializza BODY FIRST
set_body(1, TRUE); // Stampa testata bolla
testata_stampata = TRUE;
}
cursor()->curr(LF_RIGHEDOC) = riga;
body.find_field(R_QUANT).set(quant.string());
body.find_field(R_VALORE).set(valore.string());
body.find_field(R_DOCRIF).set(docrif);
body.find_field(R_DATARIF).set(datarif);
body.find_field(R_CODNUM_FAT).set(codnum);
body.find_field(R_NDOC_FAT).set(ndoc);
body.find_field(R_NOTA).set(postilla);
set_body(3, FALSE); // Inizializza BODY ODD
set_body(3, TRUE); // Stampa riga bolla
}
}
}
if (testata_stampata)
{
set_body(2, FALSE); // Inizializza BODY EVEN
set_body(2, TRUE); // Stampa totale bolla
if (note.items() > 0)
{
TPrinter& pr = printer();
TPrintrow prow;
pr.print(prow);
int progr = 0;
FOR_EACH_ARRAY_ROW(note, n, nota)
{
TString r;
r.format("@b(%d) ATTENZIONE!@r ", ++progr);
r << "La riga della bolla ha generato righe di merce anche sulle seguenti fatture: ";
prow.reset();
prow.put(r);
pr.print(prow);
FOR_EACH_TOKEN((*nota), tok)
{
TToken_string t(tok, ',');
prow.reset();
prow.put("Fattura di riferimento: "); prow.put(t.get(0));
prow.put(" "); prow.put(t.get());
prow.put(" Fattura: "); prow.put(t.get());
prow.put(" "); prow.put(t.get());
pr.print(prow);
}
}
}
}
return testata_stampata ? 1 : 0;
}
void TScoperto_form::print_total()
{
set_body(0, FALSE); // Inizializza BODY LAST
set_body(0, TRUE); // Stampa totale generale
printer().formfeed();
}
void TScoperto_form::header_handler(TPrinter&)
{
_curr_form->print_header();
}
TScoperto_form::TScoperto_form(const TDate& dr, bool wor, char sb, char sf)
: TForm("ve1200a"), _data_rif(dr), _work_on_residual(wor), _stato_bolle(sb), _stato_fatture(sf)
{
TCursor* cur = cursor();
TDocumento *doc = new TDocumento; // Don't delete!
cur->file(LF_DOC).set_curr(doc);
cur->file(LF_RIGHEDOC).set_curr(new TRiga_documento(doc));// Don't delete!
_curr_form = this;
printer().setheaderhandler(header_handler); // Setta handler testata
}
TScoperto_form::~TScoperto_form()
{
_curr_form = NULL;
}
///////////////////////////////////////////////////////////
// TLista_bolle
///////////////////////////////////////////////////////////
class TLista_bolle : public TObject
{
TAssoc_array _bolle;
TToken_string _key;
protected:
const TString& key(const TRectype& rec);
public:
void add_riga_fatt(const TRectype& rdoc_fatt);
TArray* find_bolla(const TRectype& doc_bolla);
void destroy() { _bolle.destroy(); }
};
const TString& TLista_bolle::key(const TRectype& rec)
{
if (rec.num() == LF_RIGHEDOC)
{
_key = rec.get(RDOC_DAPROVV);
_key.add(rec.get(RDOC_DAANNO));
_key.add(rec.get(RDOC_DACODNUM));
_key.add(rec.get(RDOC_DANDOC));
}
else
{
_key = rec.get(DOC_PROVV);
_key.add(rec.get(DOC_ANNO));
_key.add(rec.get(DOC_CODNUM));
_key.add(rec.get(DOC_NDOC));
}
return _key;
}
void TLista_bolle::add_riga_fatt(const TRectype& riga_fatt)
{
const TString& k = key(riga_fatt);
TArray* fatture = (TArray*)_bolle.objptr(k);
if (fatture == NULL)
{
fatture = new TArray;
_bolle.add(k, fatture);
}
fatture->add(riga_fatt);
}
TArray* TLista_bolle::find_bolla(const TRectype& doc_bolla)
{
const TString& k = key(doc_bolla);
return (TArray*)_bolle.objptr(k);
}
///////////////////////////////////////////////////////////
// TScoperto_app
///////////////////////////////////////////////////////////
class TScoperto_app : public TSkeleton_application
{
TLista_bolle _bolle_fatturate;
protected:
virtual void main_loop();
public:
bool trova_bolle_fatturate_dal(TString_array& bolle, TString_array& fatture, char stato_fatt, const TDate& datarif);
void print_bolle(TString_array& bolle, char stato_bolle, char stato_fatture, const TDate& datarif, bool work_on_res);
};
bool TScoperto_app::trova_bolle_fatturate_dal(TString_array& bolle, TString_array& fatture, char stato_fatt, const TDate& datarif)
{
const int codes = esercizi().date2esc(datarif);
const TDate inies = esercizi()[codes].inizio();
TRelation rel(LF_DOC);
TRectype& curr = rel.curr();
TString str;
str << "Ricerca bolle fatturate dopo il " << datarif;
_bolle_fatturate.destroy();
curr.put(DOC_DATADOC, inies);
if (fatture.items() == 1) // Ottimizziamo un po' il filtro, se c'é una sola fattura
{
curr.put(DOC_PROVV, "D");
curr.put(DOC_ANNO, inies.year());
curr.put(DOC_CODNUM, fatture.row(0));
}
TCursor cur(&rel, "", 3, &curr);
const long items = cur.items();
cur.freeze();
TProgind pi(items, str, TRUE, TRUE);
TRecord_array righe(LF_RIGHEDOC, RDOC_NRIGA);
for (cur = 0; cur.pos() < items; ++cur)
{
pi.addstatus(1);
if (pi.iscancelled())
return FALSE;
const TString& codnumfat = curr.get(DOC_CODNUM);
if (fatture.find(codnumfat) >= 0) // E' proprio una fattura!
{
const TDate data = curr.get_date(DOC_DATADOC);
const char stato = curr.get_char(DOC_STATO);
// Devo considerare le fatture dopo la datarif
// oppure quelle non ancora contabilizzate prima della datarif
if (data > datarif || stato < stato_fatt)
{
TRectype* chiave = new TRectype(LF_RIGHEDOC);
chiave->put(RDOC_PROVV, curr.get(DOC_PROVV));
chiave->put(RDOC_ANNO, curr.get(DOC_ANNO));
chiave->put(RDOC_CODNUM, curr.get(DOC_CODNUM));
chiave->put(RDOC_NDOC, curr.get(DOC_NDOC));
righe.read(chiave);
for (int r = righe.rows(); r > 0; r--)
{
const TRectype& riga = righe.row(r);
const TString& codnumbol = riga.get(RDOC_DACODNUM);
if (codnumbol.not_empty() && bolle.find(codnumbol) >= 0) // Riga generata da fattura!
_bolle_fatturate.add_riga_fatt(riga);
}
}
}
}
return TRUE;
}
void TScoperto_app::print_bolle(TString_array& bolle, char stato_bolle, char stato_fatture, const TDate& datarif, bool work_on_res)
{
const int codes = esercizi().date2esc(datarif);
const TDate inies = esercizi()[codes].inizio();
TRelation rel(LF_DOC);
TRectype& curr = rel.curr();
curr.put(DOC_DATADOC, inies);
TRectype recfin = curr;
recfin.put(DOC_DATADOC, datarif);
// Elenco di tutte le bolle comprese tra inizio esercizio e datarif
TString filter;
for (int i = 0; i < bolle.items(); i++)
{
if (i > 0) filter << "||";
filter << "(" << DOC_CODNUM << "==\"" << bolle.row(i) << "\")";
}
TCursor cur(&rel, filter, 3, &curr, &recfin);
const long items = cur.items();
if (items > 0)
{
cur.freeze();
TScoperto_form form(datarif, work_on_res, stato_bolle, stato_fatture);
printer().open();
long printed = 0;
for (cur = 0L; cur.pos() < items; ++cur)
{
if (printer().frozen())
break;
const char stato = curr.get_char(DOC_STATO);
if (stato == stato_bolle) // Bolla da fatturare
{
printed += form.print_bolla(curr, NULL);
}
else
{
TArray* fatt = _bolle_fatturate.find_bolla(curr);
if (fatt != NULL) // Bolla fatturata
printed += form.print_bolla(curr, fatt);
}
}
if (printed > 0)
form.print_total();
printer().close();
}
}
void TScoperto_app::main_loop()
{
open_files(LF_TABCOM, LF_DOC, LF_RIGHEDOC, LF_CLIFO, LF_CFVEN, 0);
TScoperto_msk msk;
while (msk.run() != K_QUIT)
{
const TDate datarif = msk.get_date(F_DATA);
const bool work_on_res = msk.get_bool(F_CONSORD);
TSheet_field& s = msk.sfield(F_BOLLE);
char stato_bolle = ' ', stato_fatt = ' ';
// Costruisco la lista delle bolle e delle fatture da leggere
TString_array bolle, fatture;
FOR_EACH_SHEET_ROW(s, r, row) if (*row->get(0) == 'X')
{
bolle.add(row->get(F_CODNUM-FIRST_FIELD));
if (stato_bolle <= ' ')
stato_bolle = row->get(F_STATOBOLL-FIRST_FIELD)[0];
TToken_string f(row->get(F_FATTURE-FIRST_FIELD), ',');
FOR_EACH_TOKEN(f, t)
{
if (fatture.find(t) < 0)
fatture.add(t);
}
if (stato_fatt <= ' ')
stato_fatt = row->get(F_STATOFATT-FIRST_FIELD)[0];
}
bool ok = trova_bolle_fatturate_dal(bolle, fatture, stato_fatt, datarif);
if (ok)
print_bolle(bolle, stato_bolle, stato_fatt, datarif, work_on_res);
}
}
int ve1200(int argc, char* argv[])
{
TScoperto_app a;
a.run(argc, argv, TR("Scoperto da fattura"));
return (0);
}

310
src/ve01/ve1200a.frm Normal file
View File

@ -0,0 +1,310 @@
#include "ve1200a.h"
USE LF_DOC
JOIN LF_RIGHEDOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC
END
// Testata
SECTION HEADER ODD 3
DATA H_DATARIF
BEGIN
PROMPT 50 1 "@bSCOPERTO DA FATTURA AL "
END
DATA B_NULL
BEGIN
PROMPT 1 2 "Data di stampa "
MESSAGE _TODAY
END
NUMERO B_NULL 4
BEGIN
PROMPT 118 2 "Pag."
MESSAGE _PAGENO
END
END
// Testata bolle
SECTION BODY FIRST 5
STRINGA B_NULL
BEGIN
PROMPT 1 1 "__________________________________________________________________________________________________________________________________"
END
STRINGA B_NULL
BEGIN
PROMPT 1 2 "@bData Bolla"
END
DATA B_NULL 10
BEGIN
PROMPT 1 3 ""
FIELD LF_DOC->DATADOC
END
STRINGA B_NULL
BEGIN
PROMPT 12 2 "Numeraz."
END
STRINGA B_NULL 4
BEGIN
PROMPT 12 3 ""
FIELD LF_DOC->CODNUM
END
STRINGA B_NULL
BEGIN
PROMPT 22 2 "N."
END
NUMERO B_NULL 7
BEGIN
PROMPT 17 3 ""
FIELD LF_DOC->NDOC
END
STRINGA B_NULL
BEGIN
PROMPT 25 2 "Stato"
END
STRINGA B_NULL
BEGIN
PROMPT 25 3 ""
FIELD LF_DOC->STATO
END
NUMERO B_NULL 6
BEGIN
PROMPT 28 3 ""
FIELD LF_DOC->CODCF
END
STRINGA B_NULL
BEGIN
PROMPT 35 2 "Fornitore"
END
STRINGA B_NULL 40
BEGIN
PROMPT 35 3 ""
MESSAGE _CLIFO
END
STRINGA B_NULL
BEGIN
PROMPT 94 2 "Doc. rif."
END
STRINGA B_NULL
BEGIN
PROMPT 94 3 ""
FIELD NUMDOCRIF
END
STRINGA B_NULL
BEGIN
PROMPT 104 2 "Data rif."
END
STRINGA B_NULL
BEGIN
PROMPT 103 3 ""
FIELD DATADOCRIF
END
STRINGA B_NULL
BEGIN
PROMPT 76 2 "Valuta"
END
STRINGA T_CODVAL
BEGIN
PROMPT 76 3 ""
FIELD CODVAL
END
STRINGA B_NULL
BEGIN
PROMPT 87 2 "Cambio"
END
NUMERO B_NULL 13 5
BEGIN
PROMPT 80 3 ""
FIELD CAMBIO
PICTURE "###.###,@@@@@"
END
STRINGA B_NULL
BEGIN
PROMPT 1 5 "@bCodice Articolo"
END
STRINGA B_NULL
BEGIN
PROMPT 43 5 "UM"
END
STRINGA B_NULL
BEGIN
PROMPT 51 5 "Quantità"
END
STRINGA B_NULL
BEGIN
PROMPT 69 5 "Prezzo"
END
STRINGA B_NULL
BEGIN
KEY "Intestazione valore (azzera totale)"
PROMPT 85 5 "Valore"
MESSAGE RESET,BE->R_VALORE
END
STRINGA B_NULL
BEGIN
PROMPT 93 5 "Fatt. Rif."
END
STRINGA B_NULL
BEGIN
PROMPT 104 5 "Data Rif."
END
STRINGA B_NULL
BEGIN
PROMPT 114 5 "Fattura N."
END
STRINGA B_NULL
BEGIN
PROMPT 126 5 "Note"
END
END
// Righe bolle
SECTION BODY ODD 1
STRINGA B_NULL
BEGIN
PROMPT 1 1 ""
FIELD LF_RIGHEDOC->CODARTMAG
END
STRINGA B_NULL 20
BEGIN
PROMPT 22 1 ""
MESSAGE _DESCART
END
STRINGA B_NULL
BEGIN
PROMPT 43 1 ""
FIELD LF_RIGHEDOC->UMQTA
END
NUMERO R_QUANT 13 3
BEGIN
KEY "Quantità o residuo (riempito da programma)"
PROMPT 46 1 ""
PICTURE "#.###.###,@@@"
END
VALUTA B_NULL 15
BEGIN
KEY "Prezzo Unitario"
PROMPT 60 1 ""
FIELD LF_RIGHEDOC->PREZZO
DRIVENBY BF->T_CODVAL
FLAGS "U"
END
VALUTA R_VALORE 15
BEGIN
KEY "Valore della riga (impostato da programma)"
PROMPT 76 1 ""
DRIVENBY BF->T_CODVAL
MESSAGE ADD,BE->R_VALORE
END
STRINGA R_DOCRIF
BEGIN
KEY "Documento di riferimento (impostato da programma)"
PROMPT 93 1 ""
END
STRINGA R_DATARIF
BEGIN
KEY "Data di riferimento (impostato da programma)"
PROMPT 103 1 ""
END
STRINGA R_CODNUM_FAT
BEGIN
KEY "Numerazione fattura (impostato da programma)"
PROMPT 114 1 ""
END
NUMERO R_NDOC_FAT 7
BEGIN
KEY "Numero fattura (impostato da programma)"
PROMPT 118 1 ""
END
STRINGA R_NOTA
BEGIN
KEY "Nota in calce (impostato da programma)"
PROMPT 126 1 ""
END
END
// Riga Totale bolla
SECTION BODY EVEN 1
STRINGA B_NULL
BEGIN
PROMPT 22 1 "@bTOTALE BOLLA"
END
VALUTA R_VALORE 15
BEGIN
KEY "Totale documento"
PROMPT 76 1 ""
DRIVENBY BF->T_CODVAL
MESSAGE ADD,BL->R_VALORE
END
END
// Riga Totale Generale
SECTION BODY LAST 2
STRINGA B_NULL
BEGIN
PROMPT 1 1 "__________________________________________________________________________________________________________________________________"
END
STRINGA B_NULL
BEGIN
PROMPT 22 2 "@bTOTALE SCOPERTO"
END
VALUTA R_VALORE 15
BEGIN
KEY "Totale Generale"
PROMPT 76 2 ""
DRIVENBY BF->T_CODVAL
END
END

28
src/ve01/ve1200a.h Normal file
View File

@ -0,0 +1,28 @@
// Campi maschera selezione
#define F_DATA 201
#define F_CONSORD 202
#define F_BOLLE 210
// Campi spreadsheet
#define F_SELECTED 101
#define F_CODNUM 102
#define F_DESCR 103
#define F_TIPIDOC 104
#define F_STATOBOLL 105
#define F_FATTURE 106
#define F_STATOFATT 107
// Stampa su form
#define B_NULL -1
#define H_DATARIF 101
#define T_CODVAL 101
#define R_QUANT 101
#define R_VALORE 102
#define R_DOCRIF 103
#define R_DATARIF 104
#define R_CODNUM_FAT 105
#define R_NDOC_FAT 106
#define R_NOTA 107

102
src/ve01/ve1200a.uml Normal file
View File

@ -0,0 +1,102 @@
#include "ve1200a.h"
TOOLBAR "topbar" 0 0 0 2
#include <printbar.h>
ENDPAGE
TOOLBAR "bottombar" 0 -1 0 1
#include <bprintbar.h>
ENDPAGE
PAGE "Scoperto da fattura" 0 0 0 0
DATA F_DATA
BEGIN
PROMPT 1 1 "Data di riferimento "
CHECKTYPE REQUIRED
END
BOOLEAN F_CONSORD
BEGIN
PROMPT 35 1 "Valorizzazione bolle a residuo"
END
SPREADSHEET F_BOLLE -1
BEGIN
PROMPT 0 4 ""
ITEM "Sel."
ITEM "Bolla"
ITEM "Descrizione@30"
ITEM "Tipi Documento@20"
ITEM "Stato"
ITEM "Fatture@30"
ITEM "Stato"
END
ENDPAGE
ENDMASK
PAGE "Bolla" -1 -1 66 8
BOOLEAN F_SELECTED
BEGIN
PROMPT 36 1 "Selezionata"
END
BUTTON DLG_USER 10 2
BEGIN
PROMPT 52 0 "~Selezione"
PICTURE BMP_SELECT
END
STRING F_CODNUM 4
BEGIN
PROMPT 1 1 "Numerazione "
FLAGS "D"
END
STRING F_DESCR 50
BEGIN
PROMPT 1 2 "Descrizione "
FLAGS "D"
END
STRING F_TIPIDOC 50
BEGIN
PROMPT 1 3 "Tipi doc. "
FLAGS "D"
END
STRING F_STATOBOLL 1
BEGIN
PROMPT 1 4 "Stato bolle da fatturare "
FLAGS "D"
END
STRING F_FATTURE 50
BEGIN
PROMPT 1 5 "Fatture "
FLAGS "D"
END
STRING F_STATOFATT 1
BEGIN
PROMPT 1 6 "Stato fatture contabilizzate "
FLAGS "D"
END
BUTTON DLG_OK 10 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

92
src/ve01/ve1300.alx Normal file
View File

@ -0,0 +1,92 @@
\ Messaggi specifici per stampa documenti (ve1 -2)
: MESSAGE_DESCRIGA ( ... -- )
"34.DESCR" @ \ Legge campo descrizione riga
"34.DESCLUNGA" @ \ Se e' presente una descrizione estesa
"X" =
IF
"34.DESCEST" @ \ Legge memo descrizione
+ \ Lo somma alla descrizione normale
THEN
BEGIN \ Ciclo sugli eventuali parametri successivi
SP 1 > \ Controlla se ci sono altri campi da sommare
WHILE
" " + \ Somma uno spazio
SWAP @ + \ Somma campo successivo alla descrizione
REPEAT
#THIS ! \ Setta il campo corrente con la stringa risultante
;
: MESSAGE_CLIENTE ( s1 -- )
DOC_CLIENTE \ user defined word in ve1.exe
;
: MESSAGE_CLI_IND ( s1 -- )
DOC_CLI_IND \ user defined word in ve1.exe
;
: MESSAGE_DITTA ( s1 -- )
GET_FIRM_DATA \ user defined word in report
;
: MESSAGE_PARENTDOC ( [b1] s1 n1 -- )
DOC_PARENT_DOC \ user defined word in ve1.exe
;
: MESSAGE_PARENTROW ( [b1] s1 n1 -- )
DOC_PARENT_ROW \ user defined word in ve1.exe
;
: MESSAGE_RIEPILOGOIVA ( b1 s1 n1 -- )
DOC_RIEPILOGO_IVA \ user defined word in ve1.exe
;
: MESSAGE_SCADENZE ( b1 s1 -- )
DOC_SCADENZE \ user defined word in ve1.exe
;
: MESSAGE_TOTIMPONIBILI ( [n1] -- )
DOC_TOT_IMPONIBILI \ user defined word in ve1.exe
;
: MESSAGE_TABELLA_IVA ( b1 s1 n1 -- )
DOC_TABELLA_IVA \ user defined word in ve1.exe
;
: MESSAGE_LV_DOT ( s1 -- )
DOC_LV_DOT \ user defined word in ve1.exe
;
: MESSAGE_ADD_ROW ( s1 s2 s3 -- )
DOC_ADD_ROW \ user defined word in ve1.exe
;
: SALDO_CONTABILE ( codcf -- )
1
SWAP
UTILIZZO
;
: ESPOSTO_SALDACONTO ( codcf -- )
2
SWAP
UTILIZZO
;
: ESPOSTO_CONTABILE ( codcf -- )
3
SWAP
UTILIZZO
;
: SALDO_DOCUMENTI ( codcf -- )
4
SWAP
UTILIZZO
;
: UTILIZZO_TOTALE ( codcf -- )
7
SWAP
UTILIZZO
;

1833
src/ve01/ve1300.cpp Normal file

File diff suppressed because it is too large Load Diff

20
src/ve01/ve1300a.h Normal file
View File

@ -0,0 +1,20 @@
#define F_CODNUM 121
#define F_ANNO 122
#define F_PROVV 123
#define F_NCOPIE 124
#define F_ORDERING 125
#define F_DA_NDOC 126
#define F_A_NDOC 127
#define F_DA_DATADOC 128
#define F_A_DATADOC 129
#define F_TIPOST 130
#define F_TIPOCFD 131
#define F_DA_CLIFO 132
#define F_A_CLIFO 133
#define F_DA_RAGSOC 134
#define F_A_RAGSOC 135

292
src/ve01/ve1300a.uml Normal file
View File

@ -0,0 +1,292 @@
#include "ve1300a.h"
TOOLBAR "" 0 0 0 2
BUTTON DLG_PRINT 10 2
BEGIN
PROMPT 1 1 "~Stampa"
MESSAGE EXIT,K_ENTER
END
BUTTON DLG_SETPRINT 10 2
BEGIN
PROMPT 2 1 "~Imposta"
END
BUTTON DLG_PREVIEW 10 2
BEGIN
PROMPT 3 1 "~Anteprima"
PICTURE TOOL_PREVIEW
MESSAGE EXIT,K_VISUALIZE
END
BUTTON DLG_NULL 10 2
BEGIN
PROMPT 4 1 ""
PICTURE 0
END
BUTTON DLG_EMAIL 10 2
BEGIN
PROMPT 5 1 "Mail"
PICTURE TOOL_EMAIL
MESSAGE EXIT,69
FLAGS "D"
END
BUTTON DLG_SIGNMAIL 10 2
BEGIN
PROMPT 6 1 "Firmata"
PICTURE TOOL_SIGNMAIL
MESSAGE EXIT,101
FLAGS "D"
END
BUTTON DLG_CONFIG 10 2
BEGIN
PROMPT 7 1 "~Imposta"
PICTURE TOOL_CONFIG
END
BUTTON DLG_NULL 10 2
BEGIN
PROMPT 7 1 ""
PICTURE 0
END
BUTTON DLG_PDF 10 2
BEGIN
PROMPT 8 1 "Pdf"
PICTURE TOOL_PDF
MESSAGE EXIT,80
FLAGS "D"
END
BUTTON DLG_SIGNPDF 10 2
BEGIN
PROMPT 9 1 "Firmato"
PICTURE TOOL_SIGNPDF
MESSAGE EXIT,112
FLAGS "D"
END
#include <helpbar.h>
ENDPAGE
TOOLBAR "bottombar" 0 -1 0 1
#include <bprintbar.h>
ENDPAGE
PAGE "Stampa Documenti Vendita" 0 0 0 0
STRING F_CODNUM 4 4
BEGIN
PROMPT 1 1 "Codice numerazione "
FLAG "UP"
USE %NUM
INPUT CODTAB F_CODNUM
DISPLAY "Cod. Num." CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUM CODTAB
CHECKTYPE NORMAL
END
NUMBER F_ANNO 4 0
BEGIN
PROMPT 38 1 "Anno "
FLAG "AP"
CHECKTYPE REQUIRED
END
LIST F_PROVV 12
BEGIN
PROMPT 1 2 "Tipo numerazione "
ITEM "D|Definitiva"
ITEM "P|Provvisoria"
FLAG "P"
END
NUMBER F_NCOPIE 2
BEGIN
PROMPT 38 2 "Numero copie "
FLAG "UP"
WARNING "Il numero di copie deve essere positivo"
END
RADIOBUTTON F_ORDERING 68
BEGIN
PROMPT 1 4 "Selezione per "
ITEM "N|Numero documento" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
ITEM "D|Data documento" MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
ITEM "C|Cliente/Fornitore" MESSAGE SHOW,3@|HIDE,1@|HIDE,2@
FLAG "P"
END
GROUPBOX DLG_NULL 68 5
BEGIN
PROMPT 1 9 "Selezione per numero"
GROUP 1
END
NUMBER F_DA_NDOC 7
BEGIN
PROMPT 2 10 "Dal "
USE 33
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN 13 TO 20 INTO COM=COMCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_DA_NDOC
DISPLAY "Data@10" DATADOC
DISPLAY "Numero@7" NDOC
DISPLAY "Stato" STATO
DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
DISPLAY "Comune@20" 13->DENCOM
DISPLAY "E-Mail per fatture@40" 20->DOCMAIL
OUTPUT F_DA_NDOC NDOC
GROUP 1
ADD RUN ve0 -0
END
NUMBER F_A_NDOC 7
BEGIN
PROMPT 2 12 "Al "
USE 33
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN 13 TO 20 INTO COM=COMCF
INPUT PROVV F_PROVV SELECT
INPUT ANNO F_ANNO SELECT
INPUT CODNUM F_CODNUM SELECT
INPUT NDOC F_A_NDOC
COPY DISPLAY F_DA_NDOC
OUTPUT F_A_NDOC NDOC
WARNING "Il numero documento deve essere superiore al limite inferiore"
GROUP 1
ADD RUN ve0 -0
END
GROUPBOX DLG_NULL 68 5
BEGIN
PROMPT 1 9 "Selezione per data"
GROUP 2
END
DATE F_DA_DATADOC
BEGIN
PROMPT 2 10 "Dal "
USE 33 KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN 13 TO 20 INTO COM=COMCF
INPUT DATADOC F_DA_DATADOC
INPUT PROVV F_PROVV
INPUT ANNO F_ANNO
INPUT CODNUM F_CODNUM
DISPLAY "Data@10" DATADOC
DISPLAY "Numero@7" NDOC
DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
DISPLAY "Comune@20" 13->DENCOM
OUTPUT F_DA_NDOC NDOC
OUTPUT F_DA_DATADOC DATADOC
GROUP 2
END
DATE F_A_DATADOC
BEGIN
PROMPT 2 12 "Al "
USE LF_DOC KEY 3 SELECT (PROVV==#F_PROVV) && (ANNO==#F_ANNO) && (CODNUM==#F_CODNUM)
JOIN LF_CLIFO INTO CODCF=CODCF TIPOCF=TIPOCF
JOIN LF_COMUNI TO LF_CLIFO INTO COM=COMCF
INPUT DATADOC F_A_DATADOC
INPUT PROVV F_PROVV
INPUT ANNO F_ANNO
INPUT CODNUM F_CODNUM
COPY DISPLAY F_DA_DATADOC
OUTPUT F_A_NDOC NDOC
OUTPUT F_A_DATADOC DATADOC
GROUP 2
END
GROUPBOX DLG_NULL 68 5
BEGIN
PROMPT 1 9 "Selezione per Cliente/Fornitore"
GROUP 3
END
LIST F_TIPOCFD 1 12
BEGIN
PROMPT 2 10 "Tipo "
ITEM "C|Cliente"
ITEM "F|Fornitore"
GROUP 3
END
NUMBER F_DA_CLIFO 7
BEGIN
PROMPT 2 11 "Dal "
USE LF_CLIFO
JOIN LF_COMUNI INTO COM==COMCF
INPUT TIPOCF F_TIPOCFD SELECT
INPUT CODCF F_DA_CLIFO
DISPLAY "Codice@7" CODCF
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Comune@20" 13->DENCOM
OUTPUT F_DA_CLIFO CODCF
OUTPUT F_DA_RAGSOC RAGSOC
CHECKTYPE SEARCH
GROUP 3
END
STRING F_DA_RAGSOC 50 45
BEGIN
PROMPT 18 11 ""
USE LF_CLIFO KEY 2
JOIN LF_COMUNI INTO COM==COMCF
INPUT TIPOCF F_TIPOCFD SELECT
INPUT RAGSOC F_DA_RAGSOC
DISPLAY "Ragione Sociale@50" RAGSOC
DISPLAY "Codice@7" CODCF
DISPLAY "Comune@20" 13->DENCOM
COPY OUTPUT F_DA_CLIFO
CHECKTYPE SEARCH
GROUP 3
END
NUMBER F_A_CLIFO 7
BEGIN
PROMPT 2 12 "Al "
COPY USE F_DA_CLIFO
INPUT TIPOCF F_TIPOCFD SELECT
INPUT CODCF F_A_CLIFO
COPY DISPLAY F_DA_CLIFO
OUTPUT F_A_CLIFO CODCF
OUTPUT F_A_RAGSOC RAGSOC
CHECKTYPE SEARCH
GROUP 3
END
STRING F_A_RAGSOC 50 45
BEGIN
PROMPT 18 12 ""
COPY USE F_DA_RAGSOC
INPUT TIPOCF F_TIPOCFD SELECT
INPUT RAGSOC F_A_RAGSOC
COPY DISPLAY F_DA_RAGSOC
COPY OUTPUT F_A_CLIFO
CHECKTYPE SEARCH
GROUP 3
END
RADIOBUTTON F_TIPOST 68
BEGIN
PROMPT 1 14 "Stampa"
ITEM "D|Definitiva (Solo i documenti non stampati in definitiva)"
ITEM "P|Provvisoria (Tutti i documenti selezionati senza cambio stato)"
FLAG "P"
END
ENDPAGE
ENDMASK

26
src/ve01/ve1400.cpp Normal file
View File

@ -0,0 +1,26 @@
#include "velib07.h"
#include "../ba/ba8500.h"
///////////////////////////////////////////////////////////
// TPeterParker_app
///////////////////////////////////////////////////////////
class TPeterParker_app : public TKlarkKent_app
{
protected:
virtual TReport* create_report(const char* name) const;
};
TReport* TPeterParker_app::create_report(const char* name) const
{
TDocument_report* rep = new TDocument_report;
rep->load(name);
return rep;
}
int ve1400(int argc, char* argv[])
{
TPeterParker_app app;
app.run(argc, argv, TR("Stampa Report Vendite"));
return 0;
}

Some files were not shown because too many files have changed in this diff Show More