Correzione di valanghe di errori

git-svn-id: svn://10.65.10.50/trunk@425 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-10-19 15:00:30 +00:00
parent 57dc5f4f18
commit 41ce0a9012
17 changed files with 2714 additions and 2427 deletions

View File

@ -1,293 +1,293 @@
#include "cg0500.h" #include "cg0500.h"
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 20 0 2
#include <toolbar.h> #include <toolbar.h>
ENDPAGE ENDPAGE
PAGE "" -1 -1 77 20 PAGE "" -1 -1 77 20
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "" PROMPT 1 0 ""
END END
STRING F_COD_CAUS 3 STRING F_COD_CAUS 3
BEGIN BEGIN
PROMPT 3 1 "Codice " PROMPT 3 1 "Codice "
FIELD LF_CAUSALI->CODCAUS FIELD LF_CAUSALI->CODCAUS
KEY 1 KEY 1
FLAGS "U" FLAGS "U"
USE LF_CAUSALI USE LF_CAUSALI
INPUT CODCAUS F_COD_CAUS INPUT CODCAUS F_COD_CAUS
DISPLAY "Cod. causale" CODCAUS DISPLAY "Cod. causale" CODCAUS
DISPLAY "Descrizione @50" DESCR DISPLAY "Descrizione @50" DESCR
DISPLAY "Tipo documento" TIPODOC DISPLAY "Tipo documento" TIPODOC
DISPLAY "Codice registro" REG DISPLAY "Codice registro" REG
DISPLAY "Tipo movimento" TIPOMOV DISPLAY "Tipo movimento" TIPOMOV
OUTPUT F_COD_CAUS CODCAUS OUTPUT F_COD_CAUS CODCAUS
OUTPUT F_DESCR DESCR OUTPUT F_DESCR DESCR
HELP "Codice causale" HELP "Codice causale"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_DESCR 40 STRING F_DESCR 40
BEGIN BEGIN
PROMPT 17 1 "Descrizione " PROMPT 17 1 "Descrizione "
FIELD LF_CAUSALI->DESCR FIELD LF_CAUSALI->DESCR
COPY USE F_COD_CAUS COPY USE F_COD_CAUS
INPUT CODCAUS F_COD_CAUS INPUT CODCAUS F_COD_CAUS
INPUT DESCR F_DESCR INPUT DESCR F_DESCR
DISPLAY "Cod. causale" CODCAUS DISPLAY "Cod. causale" CODCAUS
DISPLAY "Descrizione @50" DESCR DISPLAY "Descrizione @50" DESCR
DISPLAY "Tipo documento" TIPODOC DISPLAY "Tipo documento" TIPODOC
DISPLAY "Codice registro" REG DISPLAY "Codice registro" REG
DISPLAY "Tipo movimento" TIPOMOV DISPLAY "Tipo movimento" TIPOMOV
OUTPUT F_COD_CAUS CODCAUS OUTPUT F_COD_CAUS CODCAUS
OUTPUT F_DESCR DESCR OUTPUT F_DESCR DESCR
HELP "Descrizione della causale" HELP "Descrizione della causale"
END END
STRING F_TIPO_DOC 2 STRING F_TIPO_DOC 2
BEGIN BEGIN
PROMPT 2 4 "Tipo doc. " PROMPT 2 4 "Tipo doc. "
FIELD LF_CAUSALI->TIPODOC FIELD LF_CAUSALI->TIPODOC
FLAGS "U" FLAGS "U"
USE %TPD USE %TPD
INPUT CODTAB F_TIPO_DOC INPUT CODTAB F_TIPO_DOC
DISPLAY "Tipo " CODTAB DISPLAY "Tipo " CODTAB
DISPLAY "Descrizione @50 " S0 DISPLAY "Descrizione @50 " S0
OUTPUT F_TIPO_DOC CODTAB OUTPUT F_TIPO_DOC CODTAB
HELP "Tipo documento" HELP "Tipo documento"
CHECKTYPE NORMAL CHECKTYPE NORMAL
// MESSAGE SHOW, 2@ // MESSAGE SHOW, 2@
// MESSAGE EMPTY HIDE, 2@ // MESSAGE EMPTY HIDE, 2@
END END
STRING F_COD_REG 3 STRING F_COD_REG 3
BEGIN BEGIN
PROMPT 23 4 "Cod. reg. " PROMPT 23 4 "Cod. reg. "
FIELD LF_CAUSALI->REG FIELD LF_CAUSALI->REG
USE REG USE REG
INPUT CODTAB[1,4] F_ANNOES INPUT CODTAB[1,4] F_ANNOES
INPUT CODTAB[5,7] F_COD_REG INPUT CODTAB[5,7] F_COD_REG
DISPLAY "Anno" CODTAB[1,4] DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice registro " CODTAB[5,7] DISPLAY "Codice registro " CODTAB[5,7]
DISPLAY "Tipo" I0 DISPLAY "Tipo" I0
DISPLAY "Registro corrispettivi" B0 DISPLAY "Registro corrispettivi" B0
DISPLAY "Descrizione @50" S0 DISPLAY "Descrizione @50" S0
OUTPUT F_ANNOES CODTAB[1,4] OUTPUT F_ANNOES CODTAB[1,4]
OUTPUT F_COD_REG CODTAB[5,7] OUTPUT F_COD_REG CODTAB[5,7]
OUTPUT F_TIPO_REG I0 OUTPUT F_TIPO_REG I0
OUTPUT F_CORRISP B0 OUTPUT F_CORRISP B0
HELP "Inserire il codice registro" HELP "Inserire il codice registro"
WARNING "Non trovo il registro" WARNING "Non trovo il registro"
CHECKTYPE NORMAL CHECKTYPE NORMAL
FLAGS "DU" FLAGS "DU"
END END
// Questo rimane sempre nascosto // Questo rimane sempre nascosto
STRING F_TIPO_MOV 2 STRING F_TIPO_MOV 2
BEGIN BEGIN
PROMPT 68 4 "" PROMPT 68 4 ""
FIELD LF_CAUSALI->TIPOMOV FIELD LF_CAUSALI->TIPOMOV
FLAGS "H" FLAGS "H"
END END
// Viene mostrato questo se TPD non vuoto e diverso da IN AN PG // Viene mostrato questo se TPD non vuoto e diverso da IN AN PG
LISTBOX F_TIPO_MOV_1 1 20 LISTBOX F_TIPO_MOV_1 1 20
BEGIN BEGIN
PROMPT 44 4 "Tipo mov. " PROMPT 44 4 "Tipo mov. "
FIELD LF_CAUSALI->TIPOMOV FIELD LF_CAUSALI->TIPOMOV
HELP "Tipo movimento" HELP "Tipo movimento"
ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV
ITEM "1|Fattura" MESSAGE COPY,F_TIPO_MOV ITEM "1|Fattura" MESSAGE COPY,F_TIPO_MOV
ITEM "2|Nota credito" MESSAGE COPY,F_TIPO_MOV ITEM "2|Nota credito" MESSAGE COPY,F_TIPO_MOV
// GROUP 2 // GROUP 2
END END
// Viene mostrato questo se TPD vuoto o uguale a IN AN PG // Viene mostrato questo se TPD vuoto o uguale a IN AN PG
LISTBOX F_TIPO_MOV_2 1 20 LISTBOX F_TIPO_MOV_2 1 20
BEGIN BEGIN
PROMPT 44 4 "Tipo mov. " PROMPT 44 4 "Tipo mov. "
FIELD LF_CAUSALI->TIPOMOV FIELD LF_CAUSALI->TIPOMOV
HELP "Inserire il tipo movimento" HELP "Inserire il tipo movimento"
ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV ITEM " |Nessuno" MESSAGE COPY,F_TIPO_MOV
ITEM "3|Incasso/pagamento " MESSAGE COPY,F_TIPO_MOV ITEM "3|Incasso/pagamento " MESSAGE COPY,F_TIPO_MOV
ITEM "5|Insoluto" MESSAGE COPY,F_TIPO_MOV ITEM "5|Insoluto" MESSAGE COPY,F_TIPO_MOV
ITEM "6|Pagamento insoluto" MESSAGE COPY,F_TIPO_MOV ITEM "6|Pagamento insoluto" MESSAGE COPY,F_TIPO_MOV
FLAGS "H" FLAGS "H"
END END
STRING F_ANNOES 4 STRING F_ANNOES 4
BEGIN BEGIN
PROMPT 2 6 "" PROMPT 2 6 ""
FLAGS "H" FLAGS "H"
END END
STRING F_TIPO_REG 4 STRING F_TIPO_REG 4
BEGIN BEGIN
PROMPT 23 5 "" PROMPT 23 5 ""
FLAGS "H" FLAGS "H"
END END
BOOLEAN F_CORRISP BOOLEAN F_CORRISP
BEGIN BEGIN
PROMPT 33 5 "" PROMPT 33 5 ""
FLAGS "H" FLAGS "H"
END END
SPREADSHEET F_SHEET_GCS SPREADSHEET F_SHEET_GCS
BEGIN BEGIN
PROMPT 0 7 "" PROMPT 0 7 ""
ITEM "Tipo conto@21" ITEM "Tipo conto@21F"
ITEM "C/F" ITEM "C/F"
ITEM "Gr.@3" ITEM "Gr.@3"
ITEM "Co.@3" ITEM "Co.@3"
ITEM "Sottoc.@6" ITEM "Sottoc.@6"
ITEM "D/A@1" ITEM "D/A@1"
ITEM "Descrizione conto@50" ITEM "Descrizione conto@50"
ITEM "Descr. agg.@5" ITEM "Descr. agg.@5"
ITEM "Iva" ITEM "Iva"
ITEM "Cod.Iva@4" ITEM "Cod.Iva@4"
END END
ENDPAGE ENDPAGE
PAGE "" -1 -1 77 20 PAGE "" -1 -1 77 20
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "@BCampi obbligatori in immissione documenti" PROMPT 1 0 "@BCampi obbligatori in immissione documenti"
END END
BOOLEAN F_DATA_DOC BOOLEAN F_DATA_DOC
BEGIN BEGIN
PROMPT 2 1 "Data documento" PROMPT 2 1 "Data documento"
FIELD LF_CAUSALI->DATADOC FIELD LF_CAUSALI->DATADOC
HELP "" HELP ""
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
BOOLEAN F_NUM_DOC BOOLEAN F_NUM_DOC
BEGIN BEGIN
PROMPT 34 1 "Numero documento" PROMPT 34 1 "Numero documento"
FIELD LF_CAUSALI->NUMDOC FIELD LF_CAUSALI->NUMDOC
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
BOOLEAN F_AUTO_FAT BOOLEAN F_AUTO_FAT
BEGIN BEGIN
PROMPT 2 4 "Autofattura art.34" PROMPT 2 4 "Autofattura art.34"
FIELD LF_CAUSALI->AUTOFATT FIELD LF_CAUSALI->AUTOFATT
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 2 GROUP 2
END END
BOOLEAN F_ALLEGAT BOOLEAN F_ALLEGAT
BEGIN BEGIN
PROMPT 34 4 "Doc. non va in allegati fine anno" PROMPT 34 4 "Doc. non va in allegati fine anno"
FIELD LF_CAUSALI->ALLEG FIELD LF_CAUSALI->ALLEG
GROUP 2 GROUP 2
END END
BOOLEAN F_FAT_RITARDO BOOLEAN F_FAT_RITARDO
BEGIN BEGIN
PROMPT 2 6 "Fattura in ritardo" PROMPT 2 6 "Fattura in ritardo"
FIELD LF_CAUSALI->RITFATT FIELD LF_CAUSALI->RITFATT
GROUP 2 GROUP 2
END END
STRING F_COD_CAUS_IM 3 STRING F_COD_CAUS_IM 3
BEGIN BEGIN
PROMPT 34 6 "Codice causale per l'incasso immediato " PROMPT 34 6 "Codice causale per l'incasso immediato "
FLAGS "U" FLAGS "U"
FIELD LF_CAUSALI->CODCAUSIM FIELD LF_CAUSALI->CODCAUSIM
COPY USE F_COD_CAUS COPY USE F_COD_CAUS
INPUT CODCAUS F_COD_CAUS_IM INPUT CODCAUS F_COD_CAUS_IM
COPY DISPLAY F_COD_CAUS COPY DISPLAY F_COD_CAUS
OUTPUT F_COD_CAUS_IM CODCAUS OUTPUT F_COD_CAUS_IM CODCAUS
CHECKTYPE NORMAL CHECKTYPE NORMAL
// MESSAGE CLEAR, F_M_770 // MESSAGE CLEAR, F_M_770
GROUP 2 GROUP 2
END END
BOOLEAN F_OP_INTRACOM BOOLEAN F_OP_INTRACOM
BEGIN BEGIN
PROMPT 2 8 "Operazione intracomunitaria" PROMPT 2 8 "Operazione intracomunitaria"
FIELD LF_CAUSALI->INTRACOM FIELD LF_CAUSALI->INTRACOM
// MESSAGE TRUE "X", F_MOV_VALU | DISABLE, F_MOV_VALU // MESSAGE TRUE "X", F_MOV_VALU | DISABLE, F_MOV_VALU
// MESSAGE FALSE "", F_MOV_VALU | ENABLE, F_MOV_VALU // MESSAGE FALSE "", F_MOV_VALU | ENABLE, F_MOV_VALU
GROUP 2 GROUP 2
END END
BOOLEAN F_VALINTRA BOOLEAN F_VALINTRA
BEGIN BEGIN
PROMPT 34 8 "Gestione valuta per operazioni intrac." PROMPT 34 8 "Gestione valuta per operazioni intrac."
FIELD LF_CAUSALI->VALINTRA FIELD LF_CAUSALI->VALINTRA
GROUP 2 GROUP 2
END END
BOOLEAN F_MOV_VALU BOOLEAN F_MOV_VALU
BEGIN BEGIN
PROMPT 2 10 "Movimento in valuta" PROMPT 2 10 "Movimento in valuta"
FIELD LF_CAUSALI->MOVVAL FIELD LF_CAUSALI->MOVVAL
GROUP 2 GROUP 2
END END
BOOLEAN F_MOV_SEZ BOOLEAN F_MOV_SEZ
BEGIN BEGIN
PROMPT 34 10 "Movimento solo sezionale" PROMPT 34 10 "Movimento solo sezionale"
FIELD LF_CAUSALI->MOVSEZ FIELD LF_CAUSALI->MOVSEZ
FLAGS "H" FLAGS "H"
END END
LISTBOX F_OP_FINE_ANNO 1 10 LISTBOX F_OP_FINE_ANNO 1 10
BEGIN BEGIN
PROMPT 2 12 "Operazioni di fine anno " PROMPT 2 12 "Operazioni di fine anno "
ITEM " | " ITEM " | "
ITEM "C|Chiusura" ITEM "C|Chiusura"
ITEM "A|Apertura" ITEM "A|Apertura"
FIELD LF_CAUSALI->MOVAP FIELD LF_CAUSALI->MOVAP
FLAGS "H" FLAGS "H"
END END
LISTBOX F_COLL_CESP 1 40 LISTBOX F_COLL_CESP 1 40
BEGIN BEGIN
PROMPT 2 14 "Collegamento cespiti " PROMPT 2 14 "Collegamento cespiti "
FIELD LF_CAUSALI->COLLCESP FIELD LF_CAUSALI->COLLCESP
HELP "Inserire il tipo di collegamento cespiti" HELP "Inserire il tipo di collegamento cespiti"
ITEM " |Nessuno" ITEM " |Nessuno"
ITEM "A|Acquisto cespite" ITEM "A|Acquisto cespite"
ITEM "B|Rettifica acquisto" ITEM "B|Rettifica acquisto"
ITEM "C|Sostenimento costi" ITEM "C|Sostenimento costi"
ITEM "E|Eliminazione dal processo produttivo" ITEM "E|Eliminazione dal processo produttivo"
ITEM "M|Rivalutazione monetaria" ITEM "M|Rivalutazione monetaria"
ITEM "P|Reinvestimento plusvalenze" ITEM "P|Reinvestimento plusvalenze"
ITEM "R|Rivalutazione economica" ITEM "R|Rivalutazione economica"
ITEM "T|Trasferimento" ITEM "T|Trasferimento"
ITEM "V|Vendita cespite" ITEM "V|Vendita cespite"
ITEM "Z|Rettifica vendita" ITEM "Z|Rettifica vendita"
END END
LISTBOX F_M_770 1 40 LISTBOX F_M_770 1 40
BEGIN BEGIN
PROMPT 2 16 "Collegamento Mod.770 " PROMPT 2 16 "Collegamento Mod.770 "
FIELD LF_CAUSALI->M770 FIELD LF_CAUSALI->M770
HELP "Inserire il tipo di collegamento Mod.770" HELP "Inserire il tipo di collegamento Mod.770"
ITEM " |Nessuno" // MESSAGE ENABLE,F_COD_CAUS_IM ITEM " |Nessuno" // MESSAGE ENABLE,F_COD_CAUS_IM
ITEM "1|Ricevuta e/o pagamento fattura percip." // MESSAGE CLEAR,F_COD_CAUS_IM ITEM "1|Ricevuta e/o pagamento fattura percip." // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "2|Versamento ritenute percip." // MESSAGE CLEAR,F_COD_CAUS_IM ITEM "2|Versamento ritenute percip." // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "3|Versamento ritenute dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM ITEM "3|Versamento ritenute dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "4|Versamento contributi dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM ITEM "4|Versamento contributi dipendente" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "5|Compensi non soggetti" // MESSAGE CLEAR,F_COD_CAUS_IM ITEM "5|Compensi non soggetti" // MESSAGE CLEAR,F_COD_CAUS_IM
ITEM "6|Ritenute per operazioni occasionali" // MESSAGE CLEAR,F_COD_CAUS_IM ITEM "6|Ritenute per operazioni occasionali" // MESSAGE CLEAR,F_COD_CAUS_IM
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
#include "cg0500b.uml" #include "cg0500b.uml"

View File

@ -1,245 +1,245 @@
#include "cg0500.h" #include "cg0500.h"
PAGE "" -1 -1 68 11 PAGE "" -1 -1 68 11
STRING 101 22 STRING 101 22
BEGIN BEGIN
PROMPT 1 1 "Tipo " PROMPT 1 1 "Tipo "
FLAGS "D" FLAGS "D"
END END
LISTBOX 102 1 11 LISTBOX 102 1 11
BEGIN BEGIN
PROMPT 33 1 "C/F " PROMPT 33 1 "C/F "
ITEM " |Conto" MESSAGE SHOW,105|HIDE,205|HIDE,305|SHOW,107|HIDE,207|HIDE,307 ITEM " |Conto" MESSAGE SHOW,105|HIDE,205|HIDE,305|SHOW,107|HIDE,207|HIDE,307
ITEM "C|Cliente" MESSAGE SHOW,205|HIDE,105|HIDE,305|SHOW,207|HIDE,107|HIDE,307 ITEM "C|Cliente" MESSAGE SHOW,205|HIDE,105|HIDE,305|SHOW,207|HIDE,107|HIDE,307
ITEM "F|Fornitore" MESSAGE SHOW,305|HIDE,105|HIDE,205|SHOW,307|HIDE,107|HIDE,207 ITEM "F|Fornitore" MESSAGE SHOW,305|HIDE,105|HIDE,205|SHOW,307|HIDE,107|HIDE,207
FLAGS "DGU" FLAGS "DGU"
GROUP 1 GROUP 1
END END
NUMBER 103 3 NUMBER 103 3
BEGIN BEGIN
PROMPT 1 3 "Gruppo " PROMPT 1 3 "Gruppo "
FIELD LF_RCAUSALI->GRUPPO FIELD LF_RCAUSALI->GRUPPO
USE LF_PCON KEY 1 SELECT (CONTO="") USE LF_PCON KEY 1 SELECT (CONTO="")
INPUT GRUPPO 103 INPUT GRUPPO 103
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo C/F" TMCF DISPLAY "Tipo C/F" TMCF
CHECKTYPE NORMAL CHECKTYPE NORMAL
OUTPUT 103 GRUPPO OUTPUT 103 GRUPPO
OUTPUT 107 DESCR OUTPUT 107 DESCR
// OUTPUT 102 TMCF // OUTPUT 102 TMCF
WARNING "Gruppo assente" WARNING "Gruppo assente"
// CHECKTYPE REQUIRED // CHECKTYPE REQUIRED
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 1 GROUP 1
ADD RUN CG0 -0 ADD RUN CG0 -0
END END
NUMBER 104 3 NUMBER 104 3
BEGIN BEGIN
PROMPT 15 3 "Conto " PROMPT 15 3 "Conto "
FIELD LF_RCAUSALI->CONTO FIELD LF_RCAUSALI->CONTO
USE LF_PCON KEY 1 SELECT SOTTOCONTO="" USE LF_PCON KEY 1 SELECT SOTTOCONTO=""
INPUT GRUPPO 103 INPUT GRUPPO 103
INPUT CONTO 104 INPUT CONTO 104
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo C/F" TMCF DISPLAY "Tipo C/F" TMCF
CHECKTYPE NORMAL CHECKTYPE NORMAL
OUTPUT 102 TMCF OUTPUT 102 TMCF
OUTPUT 104 CONTO OUTPUT 104 CONTO
OUTPUT 103 GRUPPO OUTPUT 103 GRUPPO
OUTPUT 107 DESCR OUTPUT 107 DESCR
MESSAGE DIRTY,105|DIRTY,205|DIRTY,305 MESSAGE DIRTY,105|DIRTY,205|DIRTY,305
WARNING "Conto inesistente o mancante" WARNING "Conto inesistente o mancante"
ADD RUN CG0 -0 ADD RUN CG0 -0
GROUP 1 GROUP 1
END END
// Sottoconto NORMALE // Sottoconto NORMALE
NUMBER 105 6 NUMBER 105 6
BEGIN BEGIN
PROMPT 29 3 "Sottoconto " PROMPT 29 3 "Sottoconto "
FIELD LF_RCAUSALI->SOTTOCONTO FIELD LF_RCAUSALI->SOTTOCONTO
USE LF_PCON USE LF_PCON
INPUT GRUPPO 103 INPUT GRUPPO 103
INPUT CONTO 104 INPUT CONTO 104
INPUT SOTTOCONTO 105 INPUT SOTTOCONTO 105
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo C/F" TMCF DISPLAY "Tipo C/F" TMCF
OUTPUT 105 SOTTOCONTO OUTPUT 105 SOTTOCONTO
OUTPUT 102 TMCF OUTPUT 102 TMCF
OUTPUT 104 CONTO OUTPUT 104 CONTO
OUTPUT 103 GRUPPO OUTPUT 103 GRUPPO
OUTPUT 107 DESCR OUTPUT 107 DESCR
ADD RUN CG0 -0 ADD RUN CG0 -0
CHECKTYPE NORMAL CHECKTYPE NORMAL
HELP "Inserire il sottoconto" HELP "Inserire il sottoconto"
WARNING "Sottoconto inesistente" WARNING "Sottoconto inesistente"
GROUP 1 GROUP 1
END END
// Sottoconto CLIENTI // Sottoconto CLIENTI
NUMBER 205 6 NUMBER 205 6
BEGIN BEGIN
PROMPT 29 3 "Cliente " PROMPT 29 3 "Cliente "
FIELD LF_RCAUSALI->SOTTOCONTO FIELD LF_RCAUSALI->SOTTOCONTO
USE LF_CLIFO KEY 1 USE LF_CLIFO KEY 1
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT CODCF 205 INPUT CODCF 205
DISPLAY "Sottoconto" CODCF DISPLAY "Sottoconto" CODCF
DISPLAY "Ragione sociale cliente@50" RAGSOC DISPLAY "Ragione sociale cliente@50" RAGSOC
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
OUTPUT 205 CODCF OUTPUT 205 CODCF
OUTPUT 207 RAGSOC OUTPUT 207 RAGSOC
CHECKTYPE NORMAL CHECKTYPE NORMAL
ADD RUN CG0 -1 ADD RUN CG0 -1
GROUP 1 GROUP 1
END END
// Sottoconto FORNITORI // Sottoconto FORNITORI
NUMBER 305 6 NUMBER 305 6
BEGIN BEGIN
PROMPT 29 3 "Fornitore " PROMPT 29 3 "Fornitore "
FIELD LF_RCAUSALI->SOTTOCONTO FIELD LF_RCAUSALI->SOTTOCONTO
USE LF_CLIFO KEY 1 USE LF_CLIFO KEY 1
INPUT TIPOCF "F" INPUT TIPOCF "F"
INPUT CODCF 305 INPUT CODCF 305
DISPLAY "Sottoconto" CODCF DISPLAY "Sottoconto" CODCF
DISPLAY "Ragione sociale fornitore@50" RAGSOC DISPLAY "Ragione sociale fornitore@50" RAGSOC
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
OUTPUT 305 CODCF OUTPUT 305 CODCF
OUTPUT 307 RAGSOC OUTPUT 307 RAGSOC
CHECKTYPE NORMAL CHECKTYPE NORMAL
ADD RUN CG0 -1 ADD RUN CG0 -1
GROUP 1 GROUP 1
END END
LISTBOX 106 5 LISTBOX 106 5
BEGIN BEGIN
PROMPT 51 3 "Sezione " PROMPT 51 3 "Sezione "
ITEM "D|Dare" ITEM " | "
ITEM "A|Avere" ITEM "D|Dare"
FIELD LF_RCAUSALI->SEZIONE ITEM "A|Avere"
CHECKTYPE REQUIRED FIELD LF_RCAUSALI->SEZIONE
FLAGS "U" FLAGS "U"
END END
// Descrizione normale // Descrizione normale
STRING 107 50 STRING 107 50
BEGIN BEGIN
PROMPT 1 5 "Descrizione " PROMPT 1 5 "Descrizione "
FIELD LF_RCAUSALI->DESC FIELD LF_RCAUSALI->DESC
USE LF_PCON KEY 2 USE LF_PCON KEY 2
INPUT DESCR 107 INPUT DESCR 107
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
OUTPUT 105 SOTTOCONTO OUTPUT 105 SOTTOCONTO
OUTPUT 104 CONTO OUTPUT 104 CONTO
OUTPUT 103 GRUPPO OUTPUT 103 GRUPPO
OUTPUT 107 DESCR OUTPUT 107 DESCR
ADD RUN CG0 -0 ADD RUN CG0 -0
GROUP 1 GROUP 1
END END
// Descrizione CLIENTE // Descrizione CLIENTE
STRING 207 50 STRING 207 50
BEGIN BEGIN
PROMPT 1 5 "Rag.sociale " PROMPT 1 5 "Rag.sociale "
FIELD LF_RCAUSALI->DESC FIELD LF_RCAUSALI->DESC
USE LF_CLIFO KEY 2 USE LF_CLIFO KEY 2
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT CODCF 205 INPUT CODCF 205
DISPLAY "Tipo C/F" TIPOCF DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Ragione sociale@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" CODCF DISPLAY "Sottoconto" CODCF
OUTPUT 205 CODCF OUTPUT 205 CODCF
OUTPUT 207 RAGSOC OUTPUT 207 RAGSOC
GROUP 1 GROUP 1
END END
// Descrizione FORNITORE // Descrizione FORNITORE
STRING 307 50 STRING 307 50
BEGIN BEGIN
PROMPT 1 5 "Rag.sociale " PROMPT 1 5 "Rag.sociale "
FIELD LF_RCAUSALI->DESC FIELD LF_RCAUSALI->DESC
USE LF_CLIFO KEY 2 USE LF_CLIFO KEY 2
INPUT TIPOCF "F" INPUT TIPOCF "F"
INPUT CODCF 305 INPUT CODCF 305
DISPLAY "Tipo C/F" TIPOCF DISPLAY "Tipo C/F" TIPOCF
DISPLAY "Ragione sociale@50" RAGSOC DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" CODCF DISPLAY "Sottoconto" CODCF
OUTPUT 305 CODCF OUTPUT 305 CODCF
OUTPUT 307 RAGSOC OUTPUT 307 RAGSOC
GROUP 1 GROUP 1
END END
STRING 108 3 STRING 108 3
BEGIN BEGIN
PROMPT 1 7 "Descrizione aggiuntiva " PROMPT 1 7 "Descrizione aggiuntiva "
FIELD LF_RCAUSALI->CODDESC FIELD LF_RCAUSALI->CODDESC
USE %DPN USE %DPN
INPUT CODTAB 108 INPUT CODTAB 108
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione @50" S0 DISPLAY "Descrizione @50" S0
OUTPUT 108 CODTAB OUTPUT 108 CODTAB
FLAGS "R" FLAGS "R"
CHECKTYPE NORMAL CHECKTYPE NORMAL
GROUP 1 GROUP 1
END END
BOOLEAN 109 BOOLEAN 109
BEGIN BEGIN
PROMPT 34 7 "Riga iva " PROMPT 34 7 "Riga iva "
FIELD LF_RCAUSALI->RIGAIVA FIELD LF_RCAUSALI->RIGAIVA
FLAGS "D" FLAGS "D"
END END
STRING 110 4 STRING 110 4
BEGIN BEGIN
USE %IVA USE %IVA
PROMPT 48 7 "Codice iva " PROMPT 48 7 "Codice iva "
INPUT CODTAB 110 INPUT CODTAB 110
FIELD LF_RCAUSALI->CODIVA FIELD LF_RCAUSALI->CODIVA
DISPLAY "Codice " CODTAB DISPLAY "Codice " CODTAB
DISPLAY "Descrizione @50" S0 DISPLAY "Descrizione @50" S0
OUTPUT 110 CODTAB OUTPUT 110 CODTAB
FLAGS "D" FLAGS "D"
GROUP 1 GROUP 1
END END
BUTTON DLG_OK 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -13 -1 "" PROMPT -13 -1 ""
END END
BUTTON DLG_CANCEL 9 2 BUTTON DLG_CANCEL 9 2
BEGIN BEGIN
PROMPT -23 -1 "" PROMPT -23 -1 ""
END END
BUTTON DLG_NULL 9 2 BUTTON DLG_NULL 9 2
BEGIN BEGIN
PROMPT -33 -1 "Azzera" PROMPT -33 -1 "Azzera"
MESSAGE RESET,1@ MESSAGE RESET,1@
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -76,8 +76,8 @@ TMask* TPrimanota_application::load_mask(int n)
ism.set_handler(102, codiva_handler); ism.set_handler(102, codiva_handler);
ism.set_handler(104, imposta_handler); ism.set_handler(104, imposta_handler);
ism.set_handler(109, suspended_handler); ism.set_handler(109, suspended_handler);
ism.set_handler(209, suspended_handler); ism.set_handler(209, sheet_clifo_handler);
ism.set_handler(309, suspended_handler); ism.set_handler(309, sheet_clifo_handler);
} }
break; break;
case 3: case 3:
@ -99,14 +99,14 @@ if (n == 1 || n == 2)
TMask& cgm = cg.sheet_mask(); TMask& cgm = cg.sheet_mask();
cgm.set_handler(101, dareavere_handler); cgm.set_handler(101, dareavere_handler);
cgm.set_handler(102, dareavere_handler); cgm.set_handler(102, dareavere_handler);
cgm.set_handler(106, suspended_handler);
cgm.set_handler(105, cg_conto_handler); cgm.set_handler(105, cg_conto_handler);
cgm.set_handler(206, cg_clifo_handler); cgm.set_handler(106, suspended_handler);
cgm.set_handler(306, cg_clifo_handler); cgm.set_handler(206, sheet_clifo_handler);
cgm.set_handler(306, sheet_clifo_handler);
cgm.set_handler(112, suspended_handler); cgm.set_handler(112, suspended_handler);
cgm.set_handler(113, suspended_handler); cgm.set_handler(113, suspended_handler);
cgm.set_handler(213, cg_clifo_handler); cgm.set_handler(213, sheet_clifo_handler);
cgm.set_handler(313, cg_clifo_handler); cgm.set_handler(313, sheet_clifo_handler);
} }
return _msk[n] = m; return _msk[n] = m;
@ -165,8 +165,11 @@ bool TPrimanota_application::user_destroy()
// Certified 99% // Certified 99%
bool TPrimanota_application::read_caus(const char* cod, int year) bool TPrimanota_application::read_caus(const char* cod, int year)
{ {
const bool ok = _causale.read(cod, year); bool ok = TRUE;
if (cod != NULL)
ok = _causale.read(cod, year);
bool nob = FALSE, dob = FALSE, sal = FALSE; bool nob = FALSE, dob = FALSE, sal = FALSE;
TipoIVA iva = nessuna_iva; TipoIVA iva = nessuna_iva;
@ -176,26 +179,29 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
dob = _causale.data_doc(); dob = _causale.data_doc();
sal = gestione_saldaconto() && _causale.saldaconto(); sal = gestione_saldaconto() && _causale.saldaconto();
iva = _causale.iva(); iva = _causale.iva();
} }
TMask* m = _msk[iva == nessuna_iva ? 1 : 2];
if (m == NULL) return TRUE;
m->efield(F_NUMDOC).check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL); // Num. doc. obbligatorio
m->efield(F_DATADOC).check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL); // Data doc. obbligatoria
TMask& m = *_msk[iva == nessuna_iva ? 1: 2];
m.efield(F_NUMDOC).check_type(nob ? CHECK_REQUIRED : CHECK_NORMAL); // Num. doc. obbligatorio
m.efield(F_DATADOC).check_type(dob ? CHECK_REQUIRED : CHECK_NORMAL); // Data doc. obbligatoria
if (iva != nessuna_iva) if (iva != nessuna_iva)
{ {
const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL; const CheckType ct = sal ? CHECK_REQUIRED : CHECK_NORMAL;
m.efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio m->efield(F_CODPAG).check_type(ct); // Cod. pag. obbligatorio
m.show(F_ANNORIF, sal); m->show(F_ANNORIF, sal);
m.show(F_NUMRIF, sal); m->show(F_NUMRIF, sal);
if (sal) if (sal)
{ {
TString80 val; TString80 val;
if (riferimento_partita()) if (riferimento_partita())
val = m.get(F_NUMDOC); val = m->get(F_NUMDOC);
else else
val.format("%ld", _causale.reg().protocol()); val.format("%ld", _causale.reg().protocol());
m.set(F_NUMRIF, val); m->set(F_NUMRIF, val);
} }
} }
return ok; return ok;
@ -252,14 +258,12 @@ TMask* TPrimanota_application::get_mask(int mode)
default: default:
return load_mask(0); return load_mask(0);
} }
TCausale c(caus, annoiva); giornale().read(annoes);
causale().read(caus, annoiva);
_iva = causale().iva(); _iva = causale().iva();
TMask* m = load_mask(_iva == nessuna_iva ? 1 : 2); return load_mask(_iva == nessuna_iva ? 1 : 2);
giornale().read(annoes);
read_caus(caus, annoiva);
return m;
} }
@ -275,6 +279,7 @@ void TPrimanota_application::init_mask(TMask& m)
{ {
disable_menu_item(M_FILE_PRINT); disable_menu_item(M_FILE_PRINT);
read_caus(NULL, 0); // Setta campi obbligatori
fill_sheet(m); fill_sheet(m);
if (_iva != nessuna_iva) if (_iva != nessuna_iva)
@ -413,22 +418,21 @@ void TPrimanota_application::init_insert_mode(TMask& m)
} }
else else
{ {
if (nriga >= 3 && nriga <= 9) if (nriga >= 2 && nriga <= 9)
continue; // Conti per IVA detraibile e non, ritenute sociali e fiscali continue; // Conti per IVA detraibile e non, ritenute sociali e fiscali
const bool rigaiva = rcaus->get_bool(RCA_RIGAIVA); const bool rigaiva = rcaus->get_bool(RCA_RIGAIVA);
if (nriga == 2 || rigaiva) if (rigaiva)
{ {
const TString16 codiva(rcaus->get(RCA_CODIVA)); const TString16 codiva(rcaus->get(RCA_CODIVA));
set_ivas_row(-1,codiva,tc,desc); set_ivas_row(-1,codiva,tc,desc);
} }
else else
{ {
const char tipo = nriga < 2 ? 'T' : ' '; const char tipo = nriga == 1 ? 'T' : ' ';
set_cgs_row(-1,zero,tc,desc,tipo); if (nriga == 1 && tc.tipo() > ' ' && tc.sottoconto() != 0)
if (nriga == 1 && tc.tipo() > ' ' && tc.sottoconto() > 0)
m.set(tc.tipo() == 'C' ? F_CLIENTE : F_FORNITORE, tc.sottoconto()); m.set(tc.tipo() == 'C' ? F_CLIENTE : F_FORNITORE, tc.sottoconto());
set_cgs_row(-1,zero,tc,desc,tipo);
} }
} }
} }
@ -438,6 +442,8 @@ void TPrimanota_application::init_insert_mode(TMask& m)
void TPrimanota_application::init_modify_mode(TMask& m) void TPrimanota_application::init_modify_mode(TMask& m)
{ {
init_mask(m); init_mask(m);
if (iva() != nessuna_iva)
m.hide(F_CODIVA);
} }
@ -556,7 +562,16 @@ int TPrimanota_application::read(TMask& m)
riga.add(r.get("CODIVA")); // IVA 102 riga.add(r.get("CODIVA")); // IVA 102
riga.add(r.get("TIPODET")); // Detrazione 103 riga.add(r.get("TIPODET")); // Detrazione 103
riga.add(r.get("IMPOSTA")); // Imposta 104
real imposta(r.get("IMPOSTA"));
if (to_swap) imposta = -imposta;
if (imponibile.sign() != imposta.sign())
{
warning_box("Registrazione con imponibile e imposta discordi: correzione effettuata");
imposta = -imposta;
}
riga.add(imposta.string()); // Imposta 104
TBill c; get_conto(r, c); TBill c; get_conto(r, c);
if (c.ok()) if (c.ok())
@ -694,7 +709,16 @@ void TPrimanota_application::mask2rel(const TMask& m)
r.put("CODIVA", row.get()); r.put("CODIVA", row.get());
r.put("TIPODET", row.get()); r.put("TIPODET", row.get());
r.put("IMPOSTA", row.get());
real imposta(row.get());
if (to_swap) imposta = -imposta;
if (imponibile.sign() != imposta.sign())
{
yesnofatal_box("Registrazione di imponibile e imposta discordi");
imposta = -imposta;
}
r.put("IMPOSTA", imposta);
r.put("TIPOCR", row.get()); r.put("TIPOCR", row.get());
const TBill c(row, -1, 0x1); const TBill c(row, -1, 0x1);
@ -718,7 +742,7 @@ int TPrimanota_application::write(const TMask& m)
{ {
_saldi.registra(); _saldi.registra();
if (iva() == iva_vendite && !gestione_saldaconto()) if (iva() != nessuna_iva && !gestione_saldaconto())
{ {
const TString16 causimm(_causale.causale_inc_imm()); const TString16 causimm(_causale.causale_inc_imm());
if (causimm.not_empty()) if (causimm.not_empty())
@ -753,55 +777,112 @@ bool TPrimanota_application::remove()
} }
HIDDEN bool incasso_handler(TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
TMask& m = f.mask();
TImporto tot(m.get(I_SEZIONE1)[0], (real)m.get(F_TOTALE));
for (int i = 2; i < 5; i++)
{
const int sid = i == 2 ? I_SEZIONE2 : (i == 3 ? I_SEZIONE3 : I_SEZIONE4);
const real val(m.get(sid+1));
const TImporto imp(m.get(sid)[0], val);
tot += imp;
}
if (tot.valore() != ZERO)
return f.error_box("Il movimento e' sbilaciato di %s", tot.valore().string("."));
}
return TRUE;
}
void TPrimanota_application::genera_incasso(const char* causimm) void TPrimanota_application::genera_incasso(const char* causimm)
{ {
TMask m("cg2100i"); TMask m("cg2100i");
if (iva() == iva_acquisti) m.set_caption("Movimento di pagamento immediato");
m.set_handler(F_DATAREG, datareg_handler); m.set_handler(F_DATAREG, datareg_handler);
m.set_handler(F_DATACOMP, datacomp_handler); m.set_handler(F_DATACOMP, datacomp_handler);
m.set_handler(F_TOTALE, incasso_handler);
TFilename tmp; tmp.temp(); // File temporaneo di scambio TCausale caus(causimm); // Causale da usare
_msk[2]->set_workfile(tmp);
_msk[2]->save(); // Copia la maschera principale ...
m.set_workfile(tmp);
m.load(); // ... nella maschera di incasso
::remove(tmp); // Cancella file temporaneo
const TCausale caus(causimm); // Causale da usare if (caus.data_doc()) m.efield(F_DATADOC).check_type(CHECK_REQUIRED);
TBill conto; caus.bill(2, conto); // Conto della seconda riga della causale if (caus.num_doc()) m.efield(F_NUMDOC).check_type(CHECK_REQUIRED);
m.set(F_NUMREG, ++_lastreg); // Incrementa numero di registrazione TBill conto; caus.bill(1, conto); // Conto della seconda riga della causale
m.set(F_CODCAUS, causimm); // Cambia causale e ...
m.set(F_TIPODOC, caus.tipo_doc()); // relativo tipo documento m.set(F_DATAREG, curr_mask().get(F_DATAREG));
m.set(F_DATACOMP, curr_mask().get(F_DATACOMP));
m.set(F_DATADOC, curr_mask().get(F_DATADOC));
m.set(F_NUMREG, ++_lastreg); // Incrementa numero di registrazione
m.set(F_DESCR, caus.desc_agg(1)); // Descrizione
m.set(F_CODCAUS, causimm); // Cambia causale
m.set(F_DESCRCAUS, caus.descrizione());
m.set(I_SEZIONE1, caus.sezione_clifo() == 'D' ? "D" : "A");
m.set(F_TOTALE, curr_mask().get(F_TOTALE));
m.set(F_CLIFO, clifo() == 'C' ? "C" : "F");
m.set(F_GRUPPOCLIFO, conto.gruppo()); m.set(F_GRUPPOCLIFO, conto.gruppo());
m.set(F_CONTOCLIFO, conto.conto()); m.set(F_CONTOCLIFO, conto.conto());
const short clifo_id = clifo() == 'C' ? F_CLIENTE : F_FORNITORE;
m.set(clifo_id, curr_mask().get(clifo_id));
caus.bill(2, conto);
m.set(I_SEZIONE2, caus.sezione_clifo() == 'D' ? "A" : "D");
m.set(I_IMPORTO2, curr_mask().get(F_TOTALE));
m.set(I_GRUPPO2, conto.gruppo());
m.set(I_CONTO2, conto.conto());
m.set(I_SOTTOCONTO2, conto.sottoconto());
if (m.run() == K_SAVE) if (m.run() == K_SAVE)
{ {
TMovimentoPN inc; // Nuovo movimento di incasso immediato TMovimentoPN inc; // Nuovo movimento di incasso immediato
TRectype r(_rel->cg(0)); // Copia la prima riga contabile
m.autosave(&inc); m.autosave(&inc);
inc.lfile().put("TIPODOC", caus.tipo_doc()); // Tipo documento
inc.lfile().put("REG", caus.reg().name()); // Registro
inc.lfile().put("REG", ""); // Annulla eventuale registro IVA TRectype& r = inc.cg(0);
r.zero();
const real imp(m.get(F_TOTALE));
const char sez = r.get_char("SEZIONE");
r.put("NUMREG", _lastreg); r.put("NUMREG", _lastreg);
r.put("NUMRIG", 1); r.put("NUMRIG", 1);
r.put("IMPORTO", imp); r.put("SEZIONE", m.get(I_SEZIONE1));
r.put("SEZIONE", sez == 'A' ? 'D' : 'A'); r.put("IMPORTO", m.get(F_TOTALE));
r.put("TIPOC", m.get(F_CLIFO)); r.put("TIPOC", m.get(F_CLIFO));
r.put("GRUPPO", m.get_int(F_GRUPPOCLIFO)); r.put("GRUPPO", m.get(F_GRUPPOCLIFO));
r.put("CONTO", m.get_int(F_CONTOCLIFO)); r.put("CONTO", m.get(F_CONTOCLIFO));
r.put("SOTTOCONTO", m.get_long(F_CLIENTE)); r.put("SOTTOCONTO", m.get(clifo_id));
r.put("ROWTYPE", ' '); r.put("DESCR", m.get(F_DESCR));
r.put("RCONTR", 2);
r.put("ROWTYPE", " ");
inc.cg(0) = r; for (int i = 2; i < 5; i++)
{
const int sid = i == 2 ? I_SEZIONE2 : (i == 3 ? I_SEZIONE3 : I_SEZIONE4);
const char* imp = m.get(sid+1);
if (*imp == '\0') break;
r.put("NUMRIG", 2); TRectype& r = inc.cg(i-1);
r.put("SEZIONE", sez); r.zero();
inc.cg(1) = r; r.put("IMPORTO", imp);
r.put("NUMREG", _lastreg);
r.put("NUMRIG", i);
r.put("SEZIONE", m.get(sid));
r.put("TIPOC", ' ');
r.put("GRUPPO", m.get(sid+2));
r.put("CONTO", m.get(sid+3));
r.put("SOTTOCONTO", m.get(sid+4));
r.put("ROWTYPE", " ");
if (i == 2)
{
r.put("DESCR", caus.desc_agg(2));
r.put("RCONTR", 1);
}
}
while (inc.write() == _isreinsert) // In caso di riscrittura while (inc.write() == _isreinsert) // In caso di riscrittura
inc.lfile().put("NUMREG", ++_lastreg); // Incrementa numero registrazione inc.lfile().put("NUMREG", ++_lastreg); // Incrementa numero registrazione

View File

@ -1,81 +1,103 @@
#ifndef __CG2100_H #ifndef __CG2100_H
#define __CG2100_H #define __CG2100_H
#define F_CODDITTA 101 #define F_CODDITTA 101
#define F_RAGSOC 102 #define F_RAGSOC 102
#define F_DATAREG 103 #define F_DATAREG 103
#define F_NUMREG 104 #define F_NUMREG 104
#define F_CODCAUS 105 #define F_CODCAUS 105
#define F_DESCRCAUS 106 #define F_DESCRCAUS 106
#define F_DOCUMENTO 107 #define F_DOCUMENTO 107
#define F_TIPODOC 108 #define F_TIPODOC 108
#define F_CODREG 109 #define F_CODREG 109
#define F_PROTIVA 110 #define F_PROTIVA 110
#define F_RIEPILOGO 111 #define F_RIEPILOGO 111
#define F_DESCR 112 #define F_DESCR 112
#define F_DATADOC 113 #define F_DATADOC 113
#define F_NUMDOC 114 #define F_NUMDOC 114
#define F_ANNOES 115 #define F_ANNOES 115
#define F_DATACOMP 116 #define F_DATACOMP 116
#define F_ANNOIVA 117 #define F_ANNOIVA 117
#define F_CLIFO 150 #define F_CLIFO 150
#define F_CLIENTE 151 #define F_CLIENTE 151
#define F_RAGSOCCLIENTE 152 #define F_RAGSOCCLIENTE 152
#define F_STATOPAIV 153 #define F_STATOPAIV 153
#define F_PIVACLIENTE 154 #define F_PIVACLIENTE 154
#define F_FORNITORE 161 #define F_FORNITORE 161
#define F_RAGSOCFORNITORE 162 #define F_RAGSOCFORNITORE 162
#define F_PIVAFORNITORE 164 #define F_PIVAFORNITORE 164
#define F_GRUPPOCLIFO 172 #define F_GRUPPOCLIFO 172
#define F_CONTOCLIFO 173 #define F_CONTOCLIFO 173
#define F_GRUPPORIC 174 #define F_GRUPPORIC 174
#define F_CONTORIC 175 #define F_CONTORIC 175
#define F_SOTTOCONTORIC 176 #define F_SOTTOCONTORIC 176
#define F_TOTALE 118 #define F_TOTALE 118
#define F_CODIVA 119 #define F_CODIVA 119
#define F_RITFIS 120 #define F_RITFIS 120
#define F_RITSOC 121 #define F_RITSOC 121
#define F_CODPAG 122 #define F_CODPAG 122
#define F_ANNORIF 123 #define F_ANNORIF 123
#define F_NUMRIF 124 #define F_NUMRIF 124
#define F_VALUTA 126 #define F_VALUTA 126
#define F_CAMBIO 127 #define F_CAMBIO 127
#define F_VISVAL 128 #define F_VISVAL 128
#define F_PROVVISORIO 129 #define F_PROVVISORIO 129
#define F_OCCASIONALE 130 #define F_OCCASIONALE 130
#define F_OCCASEDIT 131 #define F_OCCASEDIT 131
#define F_SOLAIVA 132 #define F_SOLAIVA 132
#define F_CORRLIRE 133 #define F_CORRLIRE 133
#define F_CORRVALUTA 134 #define F_CORRVALUTA 134
#define F_DATA74TER 135 #define F_DATA74TER 135
#define F_DESCAGG 136 #define F_DESCAGG 136
#define F_DARE 137 #define F_DARE 137
#define F_AVERE 138 #define F_AVERE 138
#define F_IMPONIBILI 139 #define F_IMPONIBILI 139
#define F_IMPOSTE 140 #define F_IMPOSTE 140
#define F_SHEETCG 300 #define F_SHEETCG 300
#define F_SHEETIVA 301 #define F_SHEETIVA 301
// Campi ripetuti sulla seconda pagina // Campi ripetuti sulla seconda pagina
#define H_DATAREG 201 #define H_DATAREG 201
#define H_NUMREG 202 #define H_NUMREG 202
#define H_CODCAUS 203 #define H_CODCAUS 203
#define H_DESCRCAUS 204 #define H_DESCRCAUS 204
#define H_ANNOES 205 #define H_ANNOES 205
// Maschera clienti/fornitori occasionali // Maschera clienti/fornitori occasionali
#define O_CODICE 100 #define O_CODICE 100
#define O_RAGSOC 101 #define O_RAGSOC 101
#define O_STATO 102 #define O_STATO 102
#define O_COMUNE 103 #define O_COMUNE 103
#define O_DENCOM 104 #define O_DENCOM 104
#define O_CAP 105 #define O_CAP 105
#define O_INDIRIZZO 106 #define O_INDIRIZZO 106
#define O_NUMERO 107 #define O_NUMERO 107
#define O_SESSO 110 #define O_SESSO 110
#define O_DATANAS 111 #define O_DATANAS 111
#define O_STATONAS 112 #define O_STATONAS 112
#define O_COMUNENAS 113 #define O_COMUNENAS 113
#define O_DENCOMNAS 114 #define O_DENCOMNAS 114
#endif // Maschera incasso/pagamento immediato
#define I_SEZIONE1 201
#define I_IMPORTO1 202
#define I_SEZIONE2 203
#define I_IMPORTO2 204
#define I_GRUPPO2 205
#define I_CONTO2 206
#define I_SOTTOCONTO2 207
#define I_SEZIONE3 208
#define I_IMPORTO3 209
#define I_GRUPPO3 210
#define I_CONTO3 211
#define I_SOTTOCONTO3 212
#define I_SEZIONE4 213
#define I_IMPORTO4 214
#define I_GRUPPO4 215
#define I_CONTO4 216
#define I_SOTTOCONTO4 217
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,188 +1,314 @@
#include "cg2100.h" #include "cg2100.h"
PAGE "Movimento di incasso immediato" -1 -1 78 12 PAGE "Movimento di incasso immediato" -1 -1 75 13
NUMBER F_NUMREG 6 DATE F_DATAREG
BEGIN BEGIN
PROMPT 1 1 "Operazione n. " PROMPT 1 1 "Data di registrazione "
FIELD LF_MOV->NUMREG FIELD LF_MOV->DATAREG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
FLAGS "D" MESSAGE COPY,F_ANNOIVA,7,10
KEY 1 END
END
NUMBER F_ANNOIVA 4
DATE F_DATAREG BEGIN
BEGIN FLAGS "H"
PROMPT 43 1 "Data di registrazione " FIELD LF_MOV->ANNOIVA
FIELD LF_MOV->DATAREG END
CHECKTYPE REQUIRED
END NUMBER F_NUMREG 6
BEGIN
NUMBER F_NUMDOC 6 PROMPT 52 1 "Operazione n. "
BEGIN FIELD LF_MOV->NUMREG
PROMPT 1 2 "Documento n. " CHECKTYPE REQUIRED
FIELD LF_MOV->NUMDOC FLAGS "D"
END KEY 1
END
DATE F_DATACOMP
BEGIN DATE F_DATACOMP
PROMPT 43 2 "Data di competenza " BEGIN
FIELD LF_MOV->DATACOMP PROMPT 1 2 "Data di competenza "
CHECKTYPE REQUIRED FIELD LF_MOV->DATACOMP
END CHECKTYPE REQUIRED
END
NUMBER F_ANNOES 4
BEGIN NUMBER F_ANNOES 4
PROMPT 1 3 "Esercizio " BEGIN
FIELD LF_MOV->ANNOES PROMPT 52 2 "Esercizio "
FLAGS "D" FIELD LF_MOV->ANNOES
END FLAGS "D"
END
STRING F_TIPODOC 2
BEGIN DATE F_DATADOC
PROMPT 24 3 "Tipo documento " BEGIN
FIELD LF_MOV->TIPODOC PROMPT 1 3 "Data del documento "
FLAGS "D" FIELD LF_MOV->DATADOC
END WARNING "Specificare la data del documento"
END
DATE F_DATADOC
BEGIN STRING F_NUMDOC 7
PROMPT 43 3 "Data del documento " BEGIN
FIELD LF_MOV->DATADOC PROMPT 52 3 "Documento n. "
CHECKTYPE REQUIRED FIELD LF_MOV->NUMDOC
WARNING "Specificare la data del documento" WARNING "Specificare il numero documento"
END END
STRING F_DESCR 50 50 STRING F_DESCR 50
BEGIN BEGIN
PROMPT 1 4 "Descrizione documento " PROMPT 1 4 "Descrizione documento "
FIELD LF_MOV->DESCR FIELD LF_MOV->DESCR
END END
STRING F_CODCAUS 3 STRING F_CODCAUS 3
BEGIN BEGIN
PROMPT 1 5 "Causale " PROMPT 1 5 "Causale "
FIELD LF_MOV->CODCAUS FIELD LF_MOV->CODCAUS
USE LF_CAUSALI USE LF_CAUSALI
INPUT CODCAUS F_CODCAUS INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo" TIPODOC DISPLAY "Tipo" TIPODOC
OUTPUT F_CODCAUS CODCAUS OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR OUTPUT F_DESCRCAUS DESCR
OUTPUT F_TIPODOC TIPODOC OUTPUT F_TIPODOC TIPODOC
FLAGS "D" FLAGS "D"
END END
STRING F_DESCRCAUS 50 STRING F_DESCRCAUS 50
BEGIN BEGIN
PROMPT 25 5 "" PROMPT 23 5 ""
FLAGS "D" FLAGS "D"
END END
LIST F_CLIFO 1 LIST I_SEZIONE1 1 8
BEGIN BEGIN
PROMPT 0 7 "" PROMPT 1 7 "Riga 1 "
ITEM "C|Cliente" MESSAGE HIDE,2@|SHOW,1@ ITEM "D|Dare"
ITEM "F|Fornitore" MESSAGE HIDE,1@|SHOW,2@ ITEM "A|Avere"
FIELD LF_MOV->TIPO END
FLAGS "GH"
END NUMBER F_TOTALE 15
BEGIN
NUMBER F_CLIENTE 5 PROMPT 18 7 ""
BEGIN FIELD LF_MOV->TOTDOC
PROMPT 1 7 "Cliente " FLAGS "R"
FIELD LF_MOV->CODCF PICTURE "."
GROUP 1 CHECKTYPE REQUIRED
USE LF_CLIFO KEY 1 MESSAGE COPY,I_IMPORTO2
INPUT TIPOCF "C" END
INPUT CODCF F_CLIENTE
DISPLAY "Codice" CODCF LIST F_CLIFO 1 12
DISPLAY "Ragione Sociale Cliente@50" RAGSOC BEGIN
OUTPUT F_CLIFO TIPOCF PROMPT 37 7 ""
OUTPUT F_CLIENTE CODCF ITEM "C|Cliente" MESSAGE HIDE,F_FORNITORE|SHOW,F_CLIENTE
OUTPUT F_RAGSOCCLIENTE RAGSOC ITEM "F|Fornitore" MESSAGE HIDE,F_CLIENTE|SHOW,F_FORNITORE
OUTPUT F_GRUPPOCLIFO GRUPPO FIELD LF_MOV->TIPO
OUTPUT F_CONTOCLIFO CONTO FLAGS "GD"
MESSAGE COPY,F_FORNITORE END
CHECKTYPE REQUIRED
ADD RUN cg0 -1 NUMBER F_GRUPPOCLIFO 3
END BEGIN
PROMPT 51 7 ""
NUMBER F_FORNITORE 5 CHECKTYPE REQUIRED
BEGIN WARNING "Gruppo assente"
PROMPT 1 7 "Fornitore " END
FIELD LF_MOV->CODCF
GROUP 2 NUMBER F_CONTOCLIFO 3
USE LF_CLIFO KEY 1 BEGIN
INPUT TIPOCF "F" PROMPT 57 7 ""
INPUT CODCF F_FORNITORE USE LF_PCON SELECT TMCF==#F_CLIFO
DISPLAY "Codice" CODCF INPUT GRUPPO F_GRUPPOCLIFO
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC INPUT CONTO F_CONTOCLIFO
OUTPUT F_CLIFO TIPOCF DISPLAY "Gruppo" GRUPPO
OUTPUT F_FORNITORE CODCF DISPLAY "Conto" CONTO
OUTPUT F_RAGSOCFORNITORE RAGSOC DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOCLIFO GRUPPO OUTPUT F_GRUPPOCLIFO GRUPPO
OUTPUT F_CONTOCLIFO CONTO OUTPUT F_CONTOCLIFO CONTO
MESSAGE COPY,F_CLIENTE CHECKTYPE REQUIRED
CHECKTYPE REQUIRED WARNING "Conto assente"
ADD RUN cg0 -1 END
END
NUMBER F_CLIENTE 6
STRING F_RAGSOCFORNITORE 50 BEGIN
BEGIN PROMPT 65 7 ""
PROMPT 25 7 "" FIELD LF_MOV->CODCF
GROUP 2 USE LF_CLIFO
USE LF_CLIFO KEY 2 INPUT TIPOCF "C"
INPUT TIPOCF "F" INPUT CODCF F_CLIENTE
INPUT RAGSOC F_RAGSOCFORNITORE DISPLAY "Codice" CODCF
COPY DISPLAY F_FORNITORE DISPLAY "Ragione Sociale Cliente@50" RAGSOC
COPY OUTPUT F_FORNITORE OUTPUT F_CLIENTE CODCF
END CHECKTYPE REQUIRED
END
STRING F_RAGSOCCLIENTE 50
BEGIN NUMBER F_FORNITORE 6
PROMPT 25 7 "" BEGIN
GROUP 1 PROMPT 65 7 ""
USE LF_CLIFO KEY 2 FIELD LF_MOV->CODCF
INPUT TIPOCF "C" USE LF_CLIFO
INPUT RAGSOC F_RAGSOCCLIENTE INPUT TIPOCF "F"
COPY DISPLAY F_CLIENTE INPUT CODCF F_FORNITORE
COPY OUTPUT F_CLIENTE DISPLAY "Codice" CODCF
ADD RUN cg0 -1 DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
END OUTPUT F_FORNITORE CODCF
CHECKTYPE REQUIRED
NUMBER F_GRUPPOCLIFO 3 END
BEGIN
PROMPT 1 8 "Gruppo "
END LIST I_SEZIONE2 1 8
BEGIN
NUMBER F_CONTOCLIFO 3 PROMPT 1 8 "Riga 2 "
BEGIN ITEM "D|Dare"
PROMPT 16 8 "Conto " ITEM "A|Avere"
END END
NUMBER F_TOTALE 15 NUMBER I_IMPORTO2 15
BEGIN BEGIN
PROMPT 1 9 "Totale documento " PROMPT 18 8 ""
FIELD LF_MOV->TOTDOC PICTURE "."
PICTURE "." FLAGS "R"
CHECKTYPE REQUIRED END
END
LIST DLG_NULL 1 12
BUTTON DLG_SAVEREC 9 2 BEGIN
BEGIN PROMPT 37 8 ""
PROMPT -12 -1 "~Registra" ITEM " |Conto"
MESSAGE EXIT,K_SAVE FLAGS "D"
END END
BUTTON DLG_CANCEL 9 2 NUMBER I_GRUPPO2 3
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT 51 8 ""
END END
ENDPAGE NUMBER I_CONTO2 3
BEGIN
ENDMASK PROMPT 57 8 ""
END
NUMBER I_SOTTOCONTO2 6
BEGIN
PROMPT 65 8 ""
USE LF_PCON SELECT SOTTOCONTO!=""
INPUT GRUPPO I_GRUPPO2
INPUT CONTO I_CONTO2
INPUT SOTTOCONTO I_SOTTOCONTO2
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT I_GRUPPO2 GRUPPO
OUTPUT I_CONTO2 CONTO
OUTPUT I_SOTTOCONTO2 SOTTOCONTO
CHECKTYPE REQUIRED
END
LIST I_SEZIONE3 1 8
BEGIN
PROMPT 1 9 "Riga 2 "
ITEM "D|Dare"
ITEM "A|Avere"
END
NUMBER I_IMPORTO3 15
BEGIN
PROMPT 18 9 ""
PICTURE "."
FLAGS "R"
END
LIST DLG_NULL 1 12
BEGIN
PROMPT 37 9 ""
ITEM " |Conto"
FLAGS "D"
END
NUMBER I_GRUPPO3 3
BEGIN
PROMPT 51 9 ""
END
NUMBER I_CONTO3 3
BEGIN
PROMPT 57 9 ""
END
NUMBER I_SOTTOCONTO3 6
BEGIN
PROMPT 65 9 ""
COPY USE I_SOTTOCONTO2
INPUT GRUPPO I_GRUPPO3
INPUT CONTO I_CONTO3
INPUT SOTTOCONTO I_SOTTOCONTO3
COPY DISPLAY I_SOTTOCONTO2
OUTPUT I_GRUPPO3 GRUPPO
OUTPUT I_CONTO3 CONTO
OUTPUT I_SOTTOCONTO3 SOTTOCONTO
CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 1 I_IMPORTO3
END
LIST I_SEZIONE4 1 8
BEGIN
PROMPT 1 10 "Riga 4 "
ITEM "D|Dare"
ITEM "A|Avere"
END
NUMBER I_IMPORTO4 15
BEGIN
PROMPT 18 10 ""
PICTURE "."
FLAGS "R"
END
LIST DLG_NULL 1 12
BEGIN
PROMPT 37 10 ""
ITEM " |Conto"
FLAGS "D"
END
NUMBER I_GRUPPO4 3
BEGIN
PROMPT 51 10 ""
END
NUMBER I_CONTO4 3
BEGIN
PROMPT 57 10 ""
END
NUMBER I_SOTTOCONTO4 6
BEGIN
PROMPT 65 10 ""
COPY USE I_SOTTOCONTO2
INPUT GRUPPO I_GRUPPO4
INPUT CONTO I_CONTO4
INPUT SOTTOCONTO I_SOTTOCONTO4
COPY DISPLAY I_SOTTOCONTO2
OUTPUT I_GRUPPO4 GRUPPO
OUTPUT I_CONTO4 CONTO
OUTPUT I_SOTTOCONTO4 SOTTOCONTO
CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 1 I_IMPORTO4
END
BUTTON DLG_SAVEREC 9 2
BEGIN
PROMPT -12 -1 "~Registra"
MESSAGE EXIT,K_SAVE
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -465,7 +465,6 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
{ {
if ((k == K_TAB && !f.mask().is_running()) || k == K_ENTER) if ((k == K_TAB && !f.mask().is_running()) || k == K_ENTER)
{ {
TSheet_field& cg = app().cgs();
const real saldo = app().calcola_saldo(); const real saldo = app().calcola_saldo();
if (k == K_ENTER) if (k == K_ENTER)
@ -476,6 +475,7 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
return f.error_box("Il movimento e' sbilanciato di %s lire.", ss); return f.error_box("Il movimento e' sbilanciato di %s lire.", ss);
} }
TSheet_field& cg = app().cgs();
bool empty = TRUE; bool empty = TRUE;
const int max = cg.items(); const int max = cg.items();
for (int i = 0; i < max; i++) for (int i = 0; i < max; i++)
@ -484,11 +484,11 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k)
if (!im.valore().is_zero()) if (!im.valore().is_zero())
{ {
const TBill c(cg.row(i), 3, 0x0); const TBill c(cg.row(i), 3, 0x0);
if (!c.empty() && !c.ok()) if (!c.ok())
return error_box("Il conto della riga %d non e' completo", i+1); return f.error_box("Il conto della riga %d non e' completo", i+1);
const TBill co(cg.row(i), 10, 0x0); const TBill co(cg.row(i), 10, 0x0);
if (!co.empty() && !co.ok()) if (!c.empty() && !co.ok())
return error_box("La contropartita della riga %d non e' completa", i+1); return f.error_box("La contropartita della riga %d non e' completa", i+1);
empty = FALSE; empty = FALSE;
} }
} }
@ -616,7 +616,19 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
{ {
if (key == K_TAB && f.dirty()) if (key == K_TAB && f.dirty())
{ {
TMask_field& i = f.mask().field(101); TMask& m = f.mask();
TCodiceIVA iva(f.get());
TBill b; app().IVA2bill(iva, b);
const char tipo[2] = { b.tipo(), '\0' };
m.set(106, tipo);
m.set(107, b.gruppo());
m.set(108, b.conto());
const short id = b.tipo() == 'C' ? 209 : (b.tipo() == 'F' ? 309 : 109);
m.set(id, b.sottoconto());
m.set(id+1, b.descrizione());
TMask_field& i = m.field(101);
i.set_dirty(); i.set_dirty();
return imponibile_handler(i, key); return imponibile_handler(i, key);
} else } else
@ -844,6 +856,19 @@ bool TPrimanota_application::iva_handler(TMask_field& f, KEY k)
return error_box("La somma del totale documento e delle ritenute (%s) e' diverso dalla " return error_box("La somma del totale documento e delle ritenute (%s) e' diverso dalla "
"somma degli imponibili e delle imposte (%s)", (const char*)t, (const char*)i); "somma degli imponibili e delle imposte (%s)", (const char*)t, (const char*)i);
} }
TSheet_field& iva = app().ivas();
for (int i = 0; i < iva.items(); i++)
{
TToken_string& row = iva.row(i);
const real im(row.get(0));
if (!im.is_zero())
{
const TBill c(row, 6, 0x0);
if (!c.ok())
return f.error_box("Il conto della riga iva %d non e' completo", i+1);
}
}
} }
} }
return TRUE; return TRUE;
@ -869,12 +894,12 @@ bool TPrimanota_application::cg_conto_handler(TMask_field& f, KEY key)
return TRUE; return TRUE;
} }
bool TPrimanota_application::cg_clifo_handler(TMask_field& f, KEY k) bool TPrimanota_application::sheet_clifo_handler(TMask_field& f, KEY k)
{ {
if (!suspended_handler(f, k)) if (!suspended_handler(f, k))
return FALSE; return FALSE;
if (k == K_TAB) if (k == K_TAB || k == K_ENTER)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
const short cid = 100 + (f.dlg() % 100) -1; const short cid = 100 + (f.dlg() % 100) -1;
@ -1203,44 +1228,59 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
} }
bool TPrimanota_application::IVA2bill(const TCodiceIVA& iva, TBill& bill)
{
const TCausale& cau = causale();
const TString& tipo = iva.tipo();
if (tipo.not_empty())
{
if (tipo == "ES") cau.bill(5, bill); else
if (tipo == "NI") cau.bill(6, bill); else
if (tipo == "NS") cau.bill(7, bill);
}
if (!bill.ok() && !cau.corrispettivi())
{
const TMask& m = curr_mask();
bill.set(m.get_int(F_GRUPPORIC), m.get_int(F_CONTORIC), m.get_long(F_SOTTOCONTORIC));
}
if (!bill.ok())
cau.bill(2, bill);
return bill.ok();
}
// Handler of the F_CODIVA // Handler of the F_CODIVA
// Certified 99% // Certified 99%
bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key) bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key)
{ {
if (key == K_TAB && f.focusdirty() && f.get().not_empty()) if (key == K_TAB && f.get().not_empty())
{ {
TToken_string& row = app().ivas().row(0); const real imp(app().ivas().row(1).get(0)); // Se il totale non e' stato spezzato
const real imp(row.get(0));
if (imp == ZERO) if (imp == ZERO)
{ {
TMask& m = f.mask(); TMask& m = f.mask();
iva_notify(0, K_SPACE); iva_notify(0, K_SPACE);
const bool corr = app().causale().corrispettivi();
const TCodiceIVA iva(f.get()); const TCodiceIVA iva(f.get());
const bool corr = app().causale().corrispettivi();
real tot = app().totale_documento(); real tot = app().totale_documento();
real imposta; real imposta;
if (!corr) if (!corr)
imposta = app().scorpora(tot, iva.percentuale()); imposta = app().scorpora(tot, iva.percentuale());
TToken_string& row = app().ivas().row(0);
row.add(tot.string(), 0); // imponibile row.add(tot.string(), 0); // imponibile
row.add(iva.codice(), 1); // codice IVA
row.add(imposta.string(), 3); // imposta row.add(imposta.string(), 3); // imposta
TBill bill; // Conto della prima riga IVA if (iva.codice() != row.get(1))
const TString& tipo = iva.tipo();
if (tipo.not_empty())
{ {
if (tipo == "ES") app().causale().bill(5, bill); else row.add(iva.codice(), 1); // Aggiorna codice IVA
if (tipo == "NI") app().causale().bill(6, bill); else TBill bill; // Aggiorna conto della prima riga IVA
if (tipo == "NS") app().causale().bill(7, bill); app().IVA2bill(iva, bill);
} bill.add_to(row, 4, 0x7);
if (!bill.ok() && !corr) }
bill.set(m.get_int(F_GRUPPORIC), m.get_int(F_CONTORIC), m.get_long(F_SOTTOCONTORIC));
if (!bill.ok())
app().causale().bill(2, bill);
bill.add_to(row, 4, 0x7);
app().ivas().force_update(0); app().ivas().force_update(0);
iva_notify(0, K_ENTER); iva_notify(0, K_ENTER);
@ -1255,7 +1295,10 @@ bool TPrimanota_application::totale_handler(TMask_field& f, KEY key)
{ {
bool ok = TRUE; bool ok = TRUE;
if (key == K_TAB && f.focusdirty()) if (key == K_TAB && f.focusdirty())
{
app().add_cgs_tot(f.mask()); app().add_cgs_tot(f.mask());
f.mask().field(F_CODIVA).on_hit();
}
if (key == K_ENTER && f.get().empty()) if (key == K_ENTER && f.get().empty())
ok = f.yesno_box("Totale documento nullo: continuare ugualmente?"); ok = f.yesno_box("Totale documento nullo: continuare ugualmente?");

View File

@ -1,170 +1,170 @@
#ifndef __CG2102_H #ifndef __CG2102_H
#define __CG2102_H #define __CG2102_H
#ifndef __MSKSHEET_H #ifndef __MSKSHEET_H
#include <msksheet.h> #include <msksheet.h>
#endif #endif
#ifndef __RELAPP_H #ifndef __RELAPP_H
#include <relapp.h> #include <relapp.h>
#endif #endif
#ifndef __CGLIB_H #ifndef __CGLIB_H
#include "cglib.h" #include "cglib.h"
#endif #endif
#ifndef __CG2101_H #ifndef __CG2101_H
#include "cg2101.h" #include "cg2101.h"
#endif #endif
#ifndef __CG2103_H #ifndef __CG2103_H
#include "cg2103.h" #include "cg2103.h"
#endif #endif
class TPrimanota_application : public TRelation_application class TPrimanota_application : public TRelation_application
{ {
TMovimentoPN* _rel; TMovimentoPN* _rel;
TLocalisamfile* _tabcom; TLocalisamfile* _tabcom;
TLocalisamfile* _tab; TLocalisamfile* _tab;
TLocalisamfile* _caus; TLocalisamfile* _caus;
TLocalisamfile* _rcaus; TLocalisamfile* _rcaus;
TLocalisamfile* _clifo; TLocalisamfile* _clifo;
TLocalisamfile* _pcon; TLocalisamfile* _pcon;
TLocalisamfile* _attiv; TLocalisamfile* _attiv;
TLocalisamfile* _saldo; TLocalisamfile* _saldo;
TLocalisamfile* _comuni; TLocalisamfile* _comuni;
TLocalisamfile* _occas; TLocalisamfile* _occas;
TLocalisamfile* _nditte; TLocalisamfile* _nditte;
TCausale _causale; // Causale corrente TCausale _causale; // Causale corrente
TLibro_giornale _giornale; // Libro giornale corrente TLibro_giornale _giornale; // Libro giornale corrente
TipoIVA _iva; // Tipo di IVA corrente TipoIVA _iva; // Tipo di IVA corrente
bool _ges_val, _ges_sal; // Gestione valuta e saldaconto bool _ges_val, _ges_sal; // Gestione valuta e saldaconto
bool _rif_par; // Riferimento parita (NUM_DOC | PROTIVA) bool _rif_par; // Riferimento parita (NUM_DOC | PROTIVA)
TSaldo_agg _saldi; // Saldi da aggiornare TSaldo_agg _saldi; // Saldi da aggiornare
TMask* _msk[4]; // Maschere di query, cg, iva TMask* _msk[4]; // Maschere di query, cg, iva
long _lastreg; // Numero ultima registrazione long _lastreg; // Numero ultima registrazione
int _mode; // Modo maschera corrente int _mode; // Modo maschera corrente
void* _app_data; void* _app_data;
static bool suspended_handler(TMask_field& f, KEY k); static bool suspended_handler(TMask_field& f, KEY k);
static bool num_handler(TMask_field& f, KEY key); static bool num_handler(TMask_field& f, KEY key);
static bool caus_query_handler(TMask_field& f, KEY key); static bool caus_query_handler(TMask_field& f, KEY key);
static bool caus_modify_handler(TMask_field& f, KEY key); static bool caus_modify_handler(TMask_field& f, KEY key);
static bool datareg_handler(TMask_field& f, KEY key); static bool datareg_handler(TMask_field& f, KEY key);
static bool datacomp_handler(TMask_field& f, KEY key); static bool datacomp_handler(TMask_field& f, KEY key);
static bool data74ter_handler(TMask_field& f, KEY key); static bool data74ter_handler(TMask_field& f, KEY key);
static bool reg_handler(TMask_field& f, KEY key); static bool reg_handler(TMask_field& f, KEY key);
static bool protiva_handler(TMask_field& f, KEY key); static bool protiva_handler(TMask_field& f, KEY key);
static bool clifo_handler(TMask_field& f, KEY key); static bool clifo_handler(TMask_field& f, KEY key);
static bool totale_handler(TMask_field& f, KEY key); static bool totale_handler(TMask_field& f, KEY key);
static bool ritfis_handler(TMask_field& f, KEY key); static bool ritfis_handler(TMask_field& f, KEY key);
static bool ritsoc_handler(TMask_field& f, KEY key); static bool ritsoc_handler(TMask_field& f, KEY key);
static bool main_codiva_handler(TMask_field& f, KEY key); static bool main_codiva_handler(TMask_field& f, KEY key);
static bool visval_handler(TMask_field& f, KEY key); static bool visval_handler(TMask_field& f, KEY key);
static bool occas_code_handler(TMask_field& f, KEY key); static bool occas_code_handler(TMask_field& f, KEY key);
static bool occas_handler(TMask_field& f, KEY key); static bool occas_handler(TMask_field& f, KEY key);
static bool solaiva_handler(TMask_field& f, KEY key); static bool solaiva_handler(TMask_field& f, KEY key);
static bool descr_handler(TMask_field& f, KEY k); static bool descr_handler(TMask_field& f, KEY k);
static bool imponibile_handler(TMask_field& f, KEY key); static bool sheet_clifo_handler(TMask_field& f, KEY k);
static bool codiva_handler(TMask_field& f, KEY key); static bool imponibile_handler(TMask_field& f, KEY key);
static bool imposta_handler(TMask_field& f, KEY key); static bool codiva_handler(TMask_field& f, KEY key);
static bool dareavere_handler(TMask_field& f, KEY k); static bool imposta_handler(TMask_field& f, KEY key);
static bool cg_conto_handler(TMask_field& f, KEY key); static bool dareavere_handler(TMask_field& f, KEY k);
static bool cg_clifo_handler(TMask_field& f, KEY k); static bool cg_conto_handler(TMask_field& f, KEY key);
static bool iva_notify(int r, KEY key); static bool iva_notify(int r, KEY key);
static bool iva_handler(TMask_field& f, KEY key); static bool iva_handler(TMask_field& f, KEY key);
static bool cg_notify(int r, KEY key); static bool cg_notify(int r, KEY key);
static bool cg_handler(TMask_field& f, KEY key); static bool cg_handler(TMask_field& f, KEY key);
static bool pag_notify(int r, KEY key); static bool pag_notify(int r, KEY key);
protected:
protected: virtual bool user_create();
virtual bool user_create(); virtual bool user_destroy();
virtual bool user_destroy(); virtual void print();
virtual void print(); virtual bool changing_mask(int mode);
virtual bool changing_mask(int mode); virtual TMask* get_mask(int mode);
virtual TMask* get_mask(int mode); virtual TRelation* get_relation() const { return _rel; }
virtual TRelation* get_relation() const { return _rel; } virtual void init_query_mode(TMask& m);
virtual void init_query_mode(TMask& m); virtual void init_insert_mode(TMask& m);
virtual void init_insert_mode(TMask& m); virtual void init_modify_mode(TMask& m);
virtual void init_modify_mode(TMask& m); virtual const char* get_next_key();
virtual const char* get_next_key(); virtual int read(TMask& m);
virtual int read(TMask& m); virtual int write(const TMask& m);
virtual int write(const TMask& m); virtual int rewrite(const TMask& m);
virtual int rewrite(const TMask& m); virtual bool remove();
virtual bool remove();
void genera_incasso(const char* causimm);
void genera_incasso(const char* causimm); void aggiorna_scadenzario(const TMask& m);
void aggiorna_scadenzario(const TMask& m);
TMask* load_mask(int n);
TMask* load_mask(int n); TMask& occas_mask() { return *load_mask(3); }
TMask& occas_mask() { return *load_mask(3); }
bool get_conto(const TRectype& r, TBill& c) const;
bool get_conto(const TRectype& r, TBill& c) const; void put_conto(TRectype& r, const TBill& c) const;
void put_conto(TRectype& r, const TBill& c) const;
void mask2rel(const TMask& m);
void mask2rel(const TMask& m);
TipoIVA iva() const { return _iva; }
TipoIVA iva() const { return _iva; } char clifo() const { return iva() == iva_vendite ? 'C' : 'F'; }
char clifo() const { return iva() == iva_vendite ? 'C' : 'F'; } bool gestione_valuta() const { return _ges_val; }
bool gestione_valuta() const { return _ges_val; } bool gestione_saldaconto() const { return _ges_sal; }
bool gestione_saldaconto() const { return _ges_sal; } bool riferimento_partita() const { return _rif_par; }
bool riferimento_partita() const { return _rif_par; }
void fill_sheet(TMask& m) const;
void fill_sheet(TMask& m) const; void read_firm_params();
void read_firm_params(); void init_mask(TMask& m);
void init_mask(TMask& m);
TSheet_field& cgs() const;
TSheet_field& cgs() const; TSheet_field& ivas() const;
TSheet_field& ivas() const;
static int bill2pos(const TBill& conto, char tipo);
static int bill2pos(const TBill& conto, char tipo); static TipoIVA reg2IVA(const char* registro, int anno);
static TipoIVA reg2IVA(const char* registro, int anno); static TipoIVA cau2IVA(const char* causale, int anno);
static TipoIVA cau2IVA(const char* causale, int anno); static int type2pos(char tipo);
static int type2pos(char tipo); static const real& cod2IVA(const TMask& m);
static const real& cod2IVA(const TMask& m); static real scorpora(real& imponibile, const real& percentuale);
static real scorpora(real& imponibile, const real& percentuale); static bool detraibile(TToken_string& row);
static bool detraibile(TToken_string& row);
bool IVA2bill(const TCodiceIVA& iva, TBill& bill);
int bill2contr(const TBill& c, char sezione) const; int bill2contr(const TBill& c, char sezione) const;
int bill_used(const TBill& conto) const; int bill_used(const TBill& conto) const;
int det_used(char detraib) const; int det_used(char detraib) const;
bool read_caus(const char* cod, int year); bool read_caus(const char* cod, int year);
TCausale& causale() { return _causale; } TCausale& causale() { return _causale; }
TLibro_giornale& giornale() { return _giornale; } TLibro_giornale& giornale() { return _giornale; }
bool test_swap(bool ritsoc); bool test_swap(bool ritsoc);
TImporto real2imp(const real& r, char tipo); TImporto real2imp(const real& r, char tipo);
real totale_documento(); real totale_documento();
void set_cgs_imp(int n, const TImporto& importo); void set_cgs_imp(int n, const TImporto& importo);
TImporto get_cgs_imp(int n); TImporto get_cgs_imp(int n);
TImporto add_cgs_imp(int n, const TImporto& importo); TImporto add_cgs_imp(int n, const TImporto& importo);
TImporto sub_cgs_imp(int n, const real& imp); TImporto sub_cgs_imp(int n, const real& imp);
void cgs_pack(); void cgs_pack();
real calcola_saldo() const; real calcola_saldo() const;
real calcola_imp() const; real calcola_imp() const;
void set_ivas_row(int n, const char* codiva, TBill& tc, const char* desc); void set_ivas_row(int n, const char* codiva, TBill& tc, const char* desc);
int set_cgs_row(int n, const TImporto& importo, TBill& conto, const char* desc, char tipo); int set_cgs_row(int n, const TImporto& importo, TBill& conto, const char* desc, char tipo);
void reset_cgs_row(int n); void reset_cgs_row(int n);
void disable_cgs_cells(int n, char tipo); void disable_cgs_cells(int n, char tipo);
void add_cgs_tot(TMask& m); void add_cgs_tot(TMask& m);
void add_cgs_rit(bool fisc); void add_cgs_rit(bool fisc);
void* get_app_data() { return _app_data; } void* get_app_data() { return _app_data; }
void set_app_data(void* v) { _app_data = v; } void set_app_data(void* v) { _app_data = v; }
public: public:
TPrimanota_application(); TPrimanota_application();
}; };
#endif #endif

View File

@ -342,6 +342,12 @@ const char* TCausale::desc_agg(int num) const
return da.get("S0"); return da.get("S0");
} }
const char* TCausale::descrizione() const
{ return _rec.ok() ? _rec.get(CAU_DESCR) : ""; }
const char* TCausale::codice() const
{ return _rec.ok() ? _rec.get(CAU_CODCAUS) : ""; }
bool TCausale::data_doc() const bool TCausale::data_doc() const
{ return _rec.ok() ? _rec.get_bool("DATADOC") : FALSE; } { return _rec.ok() ? _rec.get_bool("DATADOC") : FALSE; }

View File

@ -1,146 +1,149 @@
#ifndef __CG2103_H #ifndef __CG2103_H
#define __CG2103_H #define __CG2103_H
#ifndef __ISAM_H #ifndef __ISAM_H
#include <isam.h> #include <isam.h>
#endif #endif
#ifndef __CONTO_H #ifndef __CONTO_H
#include "conto.h" #include "conto.h"
#endif #endif
enum TipoIVA enum TipoIVA
{ {
iva_errata = -1, iva_errata = -1,
nessuna_iva = 0, nessuna_iva = 0,
iva_vendite = 1, iva_vendite = 1,
iva_acquisti = 2, iva_acquisti = 2,
iva_generica = 9 iva_generica = 9
}; };
const char* iva2name(TipoIVA i); const char* iva2name(TipoIVA i);
class TRegistro : public TObject class TRegistro : public TObject
{ {
bool read_att(); bool read_att();
protected: protected:
enum TipoRegistro { libro_giornale = 5 }; enum TipoRegistro { libro_giornale = 5 };
TRectype _rec, _att; TRectype _rec, _att;
public: public:
bool read(const char* code, int year); bool read(const char* code, int year);
TRegistro& operator =(const TRegistro& r); TRegistro& operator =(const TRegistro& r);
virtual bool ok() const { return !_rec.empty(); } virtual bool ok() const { return !_rec.empty(); }
int tipo() const; int tipo() const;
TipoIVA iva() const; TipoIVA iva() const;
bool corrispettivi() const; bool corrispettivi() const;
const TString& name() const; const TString& name() const;
int year() const; int year() const;
TDate last_reg() const { return _rec.get_date("D2"); } TDate last_reg() const { return _rec.get_date("D2"); }
TDate last_print() const { return _rec.get_date("D3"); } TDate last_print() const { return _rec.get_date("D3"); }
long protocol() const { return _rec.get_long("I5"); } long protocol() const { return _rec.get_long("I5"); }
const TString& attivita() const { return _rec.get("S8"); } const TString& attivita() const { return _rec.get("S8"); }
bool agenzia_viaggi(); bool agenzia_viaggi();
const TString& tipo_attivita(); const TString& tipo_attivita();
bool attivita_mista() { return tipo_attivita()[0] == 'M'; } bool attivita_mista() { return tipo_attivita()[0] == 'M'; }
bool update(long uprotiva, const TDate& lastreg); bool update(long uprotiva, const TDate& lastreg);
TRegistro(const char* code = "", int year = 0); TRegistro(const char* code = "", int year = 0);
virtual ~TRegistro() {} virtual ~TRegistro() {}
}; };
class TLibro_giornale : public TRegistro class TLibro_giornale : public TRegistro
{ {
public: public:
bool read(int year); bool read(int year);
TDate global_last_print() const; TDate global_last_print() const;
TLibro_giornale(int year = 0); TLibro_giornale(int year = 0);
virtual ~TLibro_giornale() {} virtual ~TLibro_giornale() {}
}; };
class TCausale : public TArray class TCausale : public TArray
{ {
TRectype _rec; TRectype _rec;
TRegistro _reg; TRegistro _reg;
TipoIVA _iva; TipoIVA _iva;
bool _corrisp; bool _corrisp;
char _sezione_clifo, _sezione_ritsoc; char _sezione_clifo, _sezione_ritsoc;
protected: protected:
const TRectype& row(int num) const; const TRectype& row(int num) const;
public: public:
TBill& bill(int num, TBill& c) const; TBill& bill(int num, TBill& c) const;
const char* desc_agg(int num) const;
const char* codice() const;
bool data_doc() const; const char* descrizione() const;
bool num_doc() const; const char* desc_agg(int num) const;
bool apertura() const;
bool sezionale() const; bool data_doc() const;
bool valuta() const; bool num_doc() const;
bool intra() const; bool apertura() const;
bool corrval() const; bool sezionale() const;
const char* causale_inc_imm() const; bool valuta() const;
const char* tipo_doc() const; bool intra() const;
bool corrval() const;
TRegistro& reg() const { return (TRegistro&)_reg; } const char* causale_inc_imm() const;
TipoIVA iva() const; const char* tipo_doc() const;
bool corrispettivi() const;
bool saldaconto() const; TRegistro& reg() const { return (TRegistro&)_reg; }
TipoIVA iva() const;
virtual bool ok() const; bool corrispettivi() const;
bool similar(const TCausale& c) const; bool saldaconto() const;
char sezione(int riga) const; virtual bool ok() const;
char sezione_clifo(); bool similar(const TCausale& c) const;
char sezione_ritsoc();
char sezione(int riga) const;
bool read(const char* cod, int year); char sezione_clifo();
char sezione_ritsoc();
TCausale(const char* code = "", int year = 0);
virtual ~TCausale() {} bool read(const char* cod, int year);
};
TCausale(const char* code = "", int year = 0);
class TCodiceIVA : public TRectype virtual ~TCausale() {}
{ };
public:
TCodiceIVA(const char* codice = NULL); class TCodiceIVA : public TRectype
bool read(const char* codice); {
bool ok() const { return !empty(); } public:
const TString& codice() const { return get("CODTAB"); } TCodiceIVA(const char* codice = NULL);
real percentuale() const { return get_real("R0"); } bool read(const char* codice);
const TString& tipo() const { return get("S1"); } bool ok() const { return !empty(); }
}; const TString& codice() const { return get("CODTAB"); }
real percentuale() const { return get_real("R0"); }
class TImporto : public TObject const TString& tipo() const { return get("S1"); }
{ };
char _sezione;
real _valore; class TImporto : public TObject
{
public: char _sezione;
char sezione() const { return _sezione; } real _valore;
const real& valore() const { return _valore; }
public:
const TImporto& operator=(const TImporto& i) { return set(i.sezione(), i.valore()); } char sezione() const { return _sezione; }
const TImporto& operator=(TToken_string& sv); const real& valore() const { return _valore; }
const TImporto& operator+=(const TImporto& i);
const TImporto& operator-=(const TImporto& i); const TImporto& operator=(const TImporto& i) { return set(i.sezione(), i.valore()); }
const TImporto& swap_section(); const TImporto& operator=(TToken_string& sv);
const TImporto& operator+=(const TImporto& i);
const TImporto& set(char s, const real& v); const TImporto& operator-=(const TImporto& i);
const TImporto& add_to(TToken_string& s) const; const TImporto& swap_section();
TImporto(char s = 'D', const real& v = ZERO) { set(s, v); } const TImporto& set(char s, const real& v);
TImporto(const TImporto& i) : _sezione(i._sezione), _valore(i._valore) {} const TImporto& add_to(TToken_string& s) const;
};
TImporto(char s = 'D', const real& v = ZERO) { set(s, v); }
#endif TImporto(const TImporto& i) : _sezione(i._sezione), _valore(i._valore) {}
};
#endif

View File

@ -1,348 +1,345 @@
PAGE "RIGA PRIMA NOTA" -1 -1 67 16 PAGE "RIGA PRIMA NOTA" -1 -1 67 16
GROUPBOX DLG_NULL 66 3 GROUPBOX DLG_NULL 66 3
BEGIN BEGIN
PROMPT 1 1 "Descrizione" PROMPT 1 1 "Descrizione"
END END
STRING 108 5 STRING 108 5
BEGIN BEGIN
PROMPT 2 2 "" PROMPT 2 2 ""
FLAGS "U" FLAGS "U"
USE %DPN USE %DPN
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT 108 CODTAB OUTPUT 108 CODTAB
OUTPUT 109 S0 OUTPUT 109 S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING 109 50 STRING 109 50
BEGIN BEGIN
PROMPT 14 2 "" PROMPT 14 2 ""
FIELD DESCR FIELD DESCR
END END
GROUPBOX DLG_NULL 66 5 GROUPBOX DLG_NULL 66 5
BEGIN BEGIN
PROMPT 1 4 "Conto principale" PROMPT 1 4 "Conto principale"
END END
NUMBER 101 15 NUMBER 101 15
BEGIN BEGIN
PROMPT 2 5 "Dare " PROMPT 2 5 "Dare "
FLAGS "RV" FLAGS "RV"
PICTURE "." PICTURE "."
END END
NUMBER 102 15 NUMBER 102 15
BEGIN BEGIN
PROMPT 44 5 "Avere " PROMPT 44 5 "Avere "
FLAGS "RV" FLAGS "RV"
PICTURE "." PICTURE "."
END END
LIST 103 1 12 LIST 103 1 12
BEGIN BEGIN
PROMPT 2 6 "Tipo " PROMPT 2 6 "Tipo "
FLAGS "U" FLAGS "U"
ITEM " |Conto" MESSAGE SHOW,106|HIDE,206|HIDE,306|SHOW,107|HIDE,207|HIDE,307 ITEM " |Conto" MESSAGE SHOW,106|HIDE,206|HIDE,306|SHOW,107|HIDE,207|HIDE,307
ITEM "C|Cliente" MESSAGE SHOW,206|HIDE,106|HIDE,306|SHOW,207|HIDE,107|HIDE,307 ITEM "C|Cliente" MESSAGE SHOW,206|HIDE,106|HIDE,306|SHOW,207|HIDE,107|HIDE,307
ITEM "F|Fornitore" MESSAGE SHOW,306|HIDE,106|HIDE,206|SHOW,307|HIDE,107|HIDE,207 ITEM "F|Fornitore" MESSAGE SHOW,306|HIDE,106|HIDE,206|SHOW,307|HIDE,107|HIDE,207
END END
NUMBER 104 3 NUMBER 104 3
BEGIN BEGIN
PROMPT 20 6 "Gruppo " PROMPT 20 6 "Gruppo "
END END
NUMBER 105 3 NUMBER 105 3
BEGIN BEGIN
PROMPT 32 6 "Conto " PROMPT 32 6 "Conto "
FIELD LF_PCON->CONTO FIELD LF_PCON->CONTO
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
INPUT GRUPPO 104 INPUT GRUPPO 104
INPUT CONTO 105 INPUT CONTO 105
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT 103 TMCF OUTPUT 103 TMCF
OUTPUT 104 GRUPPO OUTPUT 104 GRUPPO
OUTPUT 105 CONTO OUTPUT 105 CONTO
OUTPUT 107 DESCR OUTPUT 107 DESCR
ADD RUN CG0 -0 ADD RUN CG0 -0
CHECKTYPE NORMAL CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 2 101 102 MESSAGE DIRTY,106|DIRTY,206|DIRTY,306
MESSAGE DIRTY,106|DIRTY,206|DIRTY,306 WARNING "Conto inesistente o mancante sulla riga contabile"
WARNING "Conto inesistente o mancante sulla riga contabile" END
END
NUMBER 106 6
NUMBER 106 6 BEGIN
BEGIN PROMPT 45 6 "Sottoconto "
PROMPT 45 6 "Sottoconto " FIELD LF_PCON->SOTTOCONTO
FIELD LF_PCON->SOTTOCONTO USE LF_PCON SELECT SOTTOCONTO!=""
USE LF_PCON SELECT SOTTOCONTO!="" INPUT GRUPPO 104
INPUT GRUPPO 104 INPUT CONTO 105
INPUT CONTO 105 INPUT SOTTOCONTO 106
INPUT SOTTOCONTO 106 DISPLAY "Gruppo" GRUPPO
DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO
DISPLAY "Conto" CONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Descrizione@50" DESCR
DISPLAY "Descrizione@50" DESCR OUTPUT 106 SOTTOCONTO
OUTPUT 106 SOTTOCONTO OUTPUT 104 GRUPPO
OUTPUT 104 GRUPPO OUTPUT 105 CONTO
OUTPUT 105 CONTO OUTPUT 107 DESCR
OUTPUT 107 DESCR ADD RUN cg0 -0
ADD RUN cg0 -0 CHECKTYPE NORMAL
CHECKTYPE NORMAL WARNING "Sottoconto inesistente sulla riga contabile"
VALIDATE REQIF_FUNC 2 101 102 END
WARNING "Sottoconto inesistente sulla riga contabile"
END NUMBER 206 6
BEGIN
NUMBER 206 6 PROMPT 45 6 "Cliente "
BEGIN FIELD LF_PCON->SOTTOCONTO
PROMPT 45 6 "Cliente " USE LF_CLIFO
FIELD LF_PCON->SOTTOCONTO INPUT TIPOCF "C"
USE LF_CLIFO INPUT CODCF 206
INPUT TIPOCF "C" DISPLAY "Codice" CODCF
INPUT CODCF 206 DISPLAY "Ragione Sociale Cliente@50" RAGSOC
DISPLAY "Codice" CODCF DISPLAY "Gruppo" GRUPPO
DISPLAY "Ragione Sociale Cliente@50" RAGSOC DISPLAY "Conto" CONTO
DISPLAY "Gruppo" GRUPPO OUTPUT 206 CODCF
DISPLAY "Conto" CONTO OUTPUT 207 RAGSOC
OUTPUT 206 CODCF MESSAGE COPY,106
OUTPUT 207 RAGSOC ADD RUN cg0 -1
MESSAGE COPY,106 CHECKTYPE NORMAL
ADD RUN cg0 -1 WARNING "Cliente inesistente sulla riga contabile"
CHECKTYPE NORMAL END
VALIDATE REQIF_FUNC 2 101 102
WARNING "Cliente inesistente sulla riga contabile" NUMBER 306 6
END BEGIN
PROMPT 45 6 "Fornitore "
NUMBER 306 6 FIELD LF_PCON->SOTTOCONTO
BEGIN USE LF_CLIFO
PROMPT 45 6 "Fornitore " INPUT TIPOCF "F"
FIELD LF_PCON->SOTTOCONTO INPUT CODCF 306
USE LF_CLIFO DISPLAY "Codice" CODCF
INPUT TIPOCF "F" DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
INPUT CODCF 306 DISPLAY "Gruppo" GRUPPO
DISPLAY "Codice" CODCF DISPLAY "Conto" CONTO
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC OUTPUT 306 CODCF
DISPLAY "Gruppo" GRUPPO OUTPUT 307 RAGSOC
DISPLAY "Conto" CONTO MESSAGE COPY,106
OUTPUT 306 CODCF ADD RUN cg0 -1
OUTPUT 307 RAGSOC MESSAGE COPY,106
MESSAGE COPY,106 CHECKTYPE NORMAL
ADD RUN cg0 -1 WARNING "Fornitore inesistente sulla riga contabile"
MESSAGE COPY,106 END
CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 2 101 102 STRING 107 50
WARNING "Fornitore inesistente sulla riga contabile" BEGIN
END PROMPT 2 7 "Descriz. "
FIELD LF_PCON->DESCR
STRING 107 50 USE LF_PCON KEY 2
BEGIN INPUT DESCR 107
PROMPT 2 7 "Descriz. " DISPLAY "Descrizione@50" DESCR
FIELD LF_PCON->DESCR DISPLAY "Gruppo" GRUPPO
USE LF_PCON KEY 2 DISPLAY "Conto" CONTO
INPUT DESCR 107 DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR COPY OUTPUT 106
DISPLAY "Gruppo" GRUPPO CHECKTYPE NORMAL
DISPLAY "Conto" CONTO WARNING "Sottoconto inesistente o mancante sulla riga contabile"
DISPLAY "Sottoconto" SOTTOCONTO ADD RUN cg0 -0
COPY OUTPUT 106 END
CHECKTYPE NORMAL
WARNING "Sottoconto inesistente o mancante sulla riga contabile" STRING 207 50
ADD RUN cg0 -0 BEGIN
END PROMPT 2 7 "Cliente "
FIELD LF_CLIFO->RAGSOC
STRING 207 50 USE LF_CLIFO KEY 2
BEGIN INPUT TIPOCF "C"
PROMPT 2 7 "Cliente " INPUT RAGSOC 207
FIELD LF_CLIFO->RAGSOC DISPLAY "Ragione Sociale Cliente@50" RAGSOC
USE LF_CLIFO KEY 2 DISPLAY "Gruppo" GRUPPO
INPUT TIPOCF "C" DISPLAY "Conto" CONTO
INPUT RAGSOC 207 DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale Cliente@50" RAGSOC COPY OUTPUT 206
DISPLAY "Gruppo" GRUPPO MESSAGE COPY,107
DISPLAY "Conto" CONTO ADD RUN cg0 -1
DISPLAY "Codice" CODCF CHECKTYPE NORMAL
COPY OUTPUT 206 WARNING "Cliente inesistente sulla riga contabile"
MESSAGE COPY,107 END
ADD RUN cg0 -1
CHECKTYPE NORMAL STRING 307 50
WARNING "Cliente inesistente sulla riga contabile" BEGIN
END PROMPT 2 7 "Fornitore "
FIELD LF_PCON->SOTTOCONTO
STRING 307 50 USE LF_CLIFO KEY 2
BEGIN INPUT TIPOCF "F"
PROMPT 2 7 "Fornitore " INPUT RAGSOC 307
FIELD LF_PCON->SOTTOCONTO DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
USE LF_CLIFO KEY 2 DISPLAY "Gruppo" GRUPPO
INPUT TIPOCF "F" DISPLAY "Conto" CONTO
INPUT RAGSOC 307 DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC COPY OUTPUT 306
DISPLAY "Gruppo" GRUPPO MESSAGE COPY,107
DISPLAY "Conto" CONTO ADD RUN cg0 -1
DISPLAY "Codice" CODCF CHECKTYPE NORMAL
COPY OUTPUT 306 WARNING "Fornitore inesistente sulla riga contabile"
MESSAGE COPY,107 END
ADD RUN cg0 -1
CHECKTYPE NORMAL GROUPBOX DLG_NULL 66 4
WARNING "Fornitore inesistente sulla riga contabile" BEGIN
END PROMPT 1 9 "Contropartita"
END
GROUPBOX DLG_NULL 66 4
BEGIN LIST 110 1 12
PROMPT 1 9 "Contropartita" BEGIN
END PROMPT 2 10 "Tipo "
FLAGS "U"
LIST 110 1 12 ITEM " |Conto" MESSAGE SHOW,113|HIDE,213|HIDE,313|SHOW,114|HIDE,214|HIDE,314
BEGIN ITEM "C|Cliente" MESSAGE SHOW,213|HIDE,113|HIDE,313|SHOW,214|HIDE,114|HIDE,314
PROMPT 2 10 "Tipo " ITEM "F|Fornitore" MESSAGE SHOW,313|HIDE,113|HIDE,213|SHOW,314|HIDE,114|HIDE,214
FLAGS "U" END
ITEM " |Conto" MESSAGE SHOW,113|HIDE,213|HIDE,313|SHOW,114|HIDE,214|HIDE,314
ITEM "C|Cliente" MESSAGE SHOW,213|HIDE,113|HIDE,313|SHOW,214|HIDE,114|HIDE,314 NUMBER 111 3
ITEM "F|Fornitore" MESSAGE SHOW,313|HIDE,113|HIDE,213|SHOW,314|HIDE,114|HIDE,214 BEGIN
END PROMPT 20 10 "Gruppo "
END
NUMBER 111 3
BEGIN NUMBER 112 3
PROMPT 20 10 "Gruppo " BEGIN
END PROMPT 32 10 "Conto "
FIELD LF_PCON->CONTO
NUMBER 112 3 COPY USE 105
BEGIN INPUT GRUPPO 111
PROMPT 32 10 "Conto " INPUT CONTO 112
FIELD LF_PCON->CONTO COPY DISPLAY 105
COPY USE 105 OUTPUT 110 TMCF
INPUT GRUPPO 111 OUTPUT 111 GRUPPO
INPUT CONTO 112 OUTPUT 112 CONTO
COPY DISPLAY 105 OUTPUT 114 DESCR
OUTPUT 110 TMCF ADD RUN CG0 -0
OUTPUT 111 GRUPPO MESSAGE DIRTY,113|DIRTY,213|DIRTY,313
OUTPUT 112 CONTO CHECKTYPE NORMAL
OUTPUT 114 DESCR VALIDATE REQIF_FUNC 3 113 213 313
ADD RUN CG0 -0 END
MESSAGE DIRTY,113|DIRTY,213|DIRTY,313
CHECKTYPE NORMAL NUMBER 113 6
VALIDATE REQIF_FUNC 3 113 213 313 BEGIN
END PROMPT 45 10 "Sottoconto "
FIELD LF_PCON->SOTTOCONTO
NUMBER 113 6 COPY USE 106
BEGIN COPY INPUT 112
PROMPT 45 10 "Sottoconto " INPUT SOTTOCONTO 113
FIELD LF_PCON->SOTTOCONTO COPY DISPLAY 106
COPY USE 106 OUTPUT 113 SOTTOCONTO
COPY INPUT 112 OUTPUT 111 GRUPPO
INPUT SOTTOCONTO 113 OUTPUT 112 CONTO
COPY DISPLAY 106 OUTPUT 114 DESCR
OUTPUT 113 SOTTOCONTO CHECKTYPE NORMAL
OUTPUT 111 GRUPPO END
OUTPUT 112 CONTO
OUTPUT 114 DESCR NUMBER 213 6
CHECKTYPE NORMAL BEGIN
END PROMPT 45 10 "Cliente "
FIELD LF_CLIFO->CODCF
NUMBER 213 6 COPY USE 206
BEGIN INPUT TIPOCF "C"
PROMPT 45 10 "Cliente " INPUT CODCF 213
FIELD LF_CLIFO->CODCF COPY DISPLAY 206
COPY USE 206 OUTPUT 213 CODCF
INPUT TIPOCF "C" OUTPUT 214 RAGSOC
INPUT CODCF 213 MESSAGE COPY,113
COPY DISPLAY 206 CHECKTYPE NORMAL
OUTPUT 213 CODCF END
OUTPUT 214 RAGSOC
MESSAGE COPY,113 NUMBER 313 6
CHECKTYPE NORMAL BEGIN
END PROMPT 45 10 "Fornitore "
FIELD LF_CLIFO->CODCF
NUMBER 313 6 COPY USE 306
BEGIN INPUT TIPOCF "F"
PROMPT 45 10 "Fornitore " INPUT CODCF 313
FIELD LF_CLIFO->CODCF COPY DISPLAY 306
COPY USE 306 OUTPUT 313 CODCF
INPUT TIPOCF "F" OUTPUT 314 RAGSOC
INPUT CODCF 313 MESSAGE COPY,113
COPY DISPLAY 306 CHECKTYPE NORMAL
OUTPUT 313 CODCF END
OUTPUT 314 RAGSOC
MESSAGE COPY,113 STRING 114 50
CHECKTYPE NORMAL BEGIN
END PROMPT 2 11 "Descriz. "
FIELD LF_PCON->DESCR
STRING 114 50 COPY USE 107
BEGIN INPUT DESCR 114
PROMPT 2 11 "Descriz. " COPY DISPLAY 107
FIELD LF_PCON->DESCR COPY OUTPUT 113
COPY USE 107 ADD RUN cg0 -0
INPUT DESCR 114 WARNING "Conto inesistente sulla riga contabile"
COPY DISPLAY 107 END
COPY OUTPUT 113
ADD RUN cg0 -0 STRING 214 50
WARNING "Conto inesistente sulla riga contabile" BEGIN
END PROMPT 2 11 "Cliente "
FIELD LF_CLIFO->RAGSOC
STRING 214 50 COPY USE 207
BEGIN INPUT TIPOCF "C"
PROMPT 2 11 "Cliente " INPUT RAGSOC 214
FIELD LF_CLIFO->RAGSOC COPY DISPLAY 207
COPY USE 207 COPY OUTPUT 213
INPUT TIPOCF "C" ADD RUN cg0 -1
INPUT RAGSOC 214 CHECKTYPE NORMAL
COPY DISPLAY 207 WARNING "Cliente inesistente sulla riga contabile"
COPY OUTPUT 213 END
ADD RUN cg0 -1
CHECKTYPE NORMAL STRING 314 50
WARNING "Cliente inesistente sulla riga contabile" BEGIN
END PROMPT 2 11 "Fornitore "
FIELD LF_CLIFO->RAGSOC
STRING 314 50 COPY USE 307
BEGIN INPUT TIPOCF "F"
PROMPT 2 11 "Fornitore " INPUT RAGSOC 314
FIELD LF_CLIFO->RAGSOC COPY DISPLAY 307
COPY USE 307 COPY OUTPUT 313
INPUT TIPOCF "F" ADD RUN cg0 -1
INPUT RAGSOC 314 CHECKTYPE NORMAL
COPY DISPLAY 307 WARNING "Fornitore inesistente sulla riga contabile"
COPY OUTPUT 313 END
ADD RUN cg0 -1
CHECKTYPE NORMAL LIST 115 20
WARNING "Fornitore inesistente sulla riga contabile" BEGIN
END PROMPT 2 13 "Tipo riga "
ITEM " |Sola contabilita'"
LIST 115 20 ITEM "C|Gestione saldaconto"
BEGIN ITEM "D|IVA detraibile"
PROMPT 2 13 "Tipo riga " ITEM "F|Ritenute fiscali"
ITEM " |Sola contabilita'" ITEM "I|Riga di IVA"
ITEM "C|Gestione saldaconto" ITEM "N|IVA non detraibile"
ITEM "D|IVA detraibile" ITEM "S|Ritenute sociali"
ITEM "F|Ritenute fiscali" ITEM "T|Totale documento"
ITEM "I|Riga di IVA" FLAGS "D"
ITEM "N|IVA non detraibile" END
ITEM "S|Ritenute sociali"
ITEM "T|Totale documento"
FLAGS "D" BUTTON DLG_OK 9 2
END BEGIN
PROMPT -13 -1 ""
END
BUTTON DLG_OK 9 2
BEGIN BUTTON DLG_CANCEL 9 2
PROMPT -13 -1 "" BEGIN
END PROMPT -23 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN BUTTON DLG_DELREC 9 2
PROMPT -23 -1 "" BEGIN
END PROMPT -33 -1 "Elimina"
MESSAGE EXIT,K_DEL
BUTTON DLG_DELREC 9 2 END
BEGIN
PROMPT -33 -1 "Elimina" ENDPAGE
END
ENDMASK
ENDPAGE
ENDMASK

View File

@ -1,256 +1,256 @@
PAGE "RIGA IVA" -1 -1 70 13 PAGE "RIGA IVA" -1 -1 70 13
GROUPBOX DLG_NULL 67 5 GROUPBOX DLG_NULL 67 5
BEGIN BEGIN
PROMPT 1 1 "Conto" PROMPT 1 1 "Conto"
END END
LIST 106 1 12 LIST 106 1 12
BEGIN BEGIN
PROMPT 2 2 "Tipo " PROMPT 2 2 "Tipo "
FIELD TMCF FIELD TMCF
ITEM " |Conto" ITEM " |Conto"
MESSAGE SHOW,109|HIDE,209|HIDE,309|SHOW,110|HIDE,210|HIDE,310 MESSAGE SHOW,109|HIDE,209|HIDE,309|SHOW,110|HIDE,210|HIDE,310
ITEM "C|Cliente" ITEM "C|Cliente"
MESSAGE SHOW,209|HIDE,109|HIDE,309|SHOW,210|HIDE,110|HIDE,310 MESSAGE SHOW,209|HIDE,109|HIDE,309|SHOW,210|HIDE,110|HIDE,310
ITEM "F|Fornitore" ITEM "F|Fornitore"
MESSAGE SHOW,309|HIDE,109|HIDE,209|SHOW,310|HIDE,110|HIDE,210 MESSAGE SHOW,309|HIDE,109|HIDE,209|SHOW,310|HIDE,110|HIDE,210
FLAGS "U" FLAGS "U"
END END
NUMBER 107 3 NUMBER 107 3
BEGIN BEGIN
PROMPT 21 2 "Gruppo " PROMPT 21 2 "Gruppo "
FIELD GRUPPO FIELD GRUPPO
END END
NUMBER 108 3 NUMBER 108 3
BEGIN BEGIN
PROMPT 33 2 "Conto " PROMPT 33 2 "Conto "
FIELD CONTO FIELD CONTO
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="") USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
INPUT GRUPPO 107 INPUT GRUPPO 107
INPUT CONTO 108 INPUT CONTO 108
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo" TMCF DISPLAY "Tipo" TMCF
OUTPUT 106 TMCF OUTPUT 106 TMCF
OUTPUT 107 GRUPPO OUTPUT 107 GRUPPO
OUTPUT 108 CONTO OUTPUT 108 CONTO
OUTPUT 110 DESCR OUTPUT 110 DESCR
OUTPUT 105 TIPOSPRIC OUTPUT 105 TIPOSPRIC
ADD RUN cg0 -0 ADD RUN cg0 -0
MESSAGE DIRTY,109|DIRTY,209|DIRTY,309 MESSAGE DIRTY,109|DIRTY,209|DIRTY,309
VALIDATE REQIF_FUNC 1 101 CHECKTYPE NORMAL
CHECKTYPE NORMAL WARNING "Conto inesistente nella riga IVA"
WARNING "Conto inesistente nella riga IVA" END
END
NUMBER 109 6
NUMBER 109 6 BEGIN
BEGIN PROMPT 46 2 "Sottoconto "
PROMPT 46 2 "Sottoconto " FIELD SOTTOCONTO
FIELD SOTTOCONTO USE LF_PCON SELECT SOTTOCONTO!=""
USE LF_PCON SELECT SOTTOCONTO!="" INPUT GRUPPO 107
INPUT GRUPPO 107 INPUT CONTO 108
INPUT CONTO 108 INPUT SOTTOCONTO 109
INPUT SOTTOCONTO 109 DISPLAY "Gruppo" GRUPPO
DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO
DISPLAY "Conto" CONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Descrizione@50" DESCR
DISPLAY "Descrizione@50" DESCR OUTPUT 109 SOTTOCONTO
OUTPUT 109 SOTTOCONTO OUTPUT 105 TIPOSPRIC
OUTPUT 105 TIPOSPRIC OUTPUT 107 GRUPPO
OUTPUT 107 GRUPPO OUTPUT 108 CONTO
OUTPUT 108 CONTO OUTPUT 110 DESCR
OUTPUT 110 DESCR ADD RUN cg0 -0
ADD RUN cg0 -0 CHECKTYPE NORMAL
CHECKTYPE NORMAL VALIDATE REQIF_FUNC 1 101
VALIDATE REQIF_FUNC 1 101 WARNING "Sottoconto inesistente nella riga IVA"
WARNING "Sottoconto inesistente nella riga IVA" END
END
NUMBER 209 6
NUMBER 209 6 BEGIN
BEGIN PROMPT 46 2 "Cliente "
PROMPT 46 2 "Cliente " USE LF_CLIFO
USE LF_CLIFO INPUT TIPOCF "C"
INPUT TIPOCF "C" INPUT CODCF 209
INPUT CODCF 209 DISPLAY "Codice" CODCF
DISPLAY "Codice" CODCF DISPLAY "Ragione Sociale Cliente@50" RAGSOC
DISPLAY "Ragione Sociale Cliente@50" RAGSOC DISPLAY "Gruppo" GRUPPO
DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO
DISPLAY "Conto" CONTO OUTPUT 209 CODCF
OUTPUT 209 CODCF OUTPUT 210 RAGSOC
OUTPUT 210 RAGSOC OUTPUT 105 ""
OUTPUT 105 "" CHECKTYPE NORMAL
CHECKTYPE NORMAL ADD RUN cg0 -1
ADD RUN cg0 -1 MESSAGE COPY,109
MESSAGE COPY,109 VALIDATE REQIF_FUNC 1 101
VALIDATE REQIF_FUNC 1 101 WARNING "Cliente inesistente nella riga IVA"
WARNING "Cliente inesistente nella riga IVA" END
END
NUMBER 309 6
NUMBER 309 6 BEGIN
BEGIN PROMPT 46 2 "Fornitore "
PROMPT 46 2 "Fornitore " USE LF_CLIFO
USE LF_CLIFO INPUT TIPOCF "F"
INPUT TIPOCF "F" INPUT CODCF 309
INPUT CODCF 309 DISPLAY "Codice" CODCF
DISPLAY "Codice" CODCF DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC OUTPUT 107 GRUPPO
OUTPUT 107 GRUPPO OUTPUT 108 CONTO
OUTPUT 108 CONTO OUTPUT 309 CODCF
OUTPUT 309 CODCF OUTPUT 310 RAGSOC
OUTPUT 310 RAGSOC OUTPUT 105 ""
OUTPUT 105 "" CHECKTYPE NORMAL
CHECKTYPE NORMAL ADD RUN cg0 -1
ADD RUN cg0 -1 MESSAGE COPY,109|RESET,105
MESSAGE COPY,109|RESET,105 VALIDATE REQIF_FUNC 1 101
VALIDATE REQIF_FUNC 1 101 WARNING "Fornitore inesistente nella riga IVA"
WARNING "Fornitore inesistente nella riga IVA" END
END
STRING 110 50
STRING 110 50 BEGIN
BEGIN PROMPT 2 3 "Descriz. "
PROMPT 2 3 "Descriz. " FIELD LF_PCON->DESCR
FIELD LF_PCON->DESCR USE LF_PCON KEY 2
USE LF_PCON KEY 2 INPUT DESCR 110
INPUT DESCR 110 DISPLAY "Descrizione@50" DESCR
DISPLAY "Descrizione@50" DESCR DISPLAY "Gruppo" GRUPPO
DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO
DISPLAY "Conto" CONTO DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Sottoconto" SOTTOCONTO COPY OUTPUT 109
COPY OUTPUT 109 CHECKTYPE NORMAL
CHECKTYPE NORMAL ADD RUN cg0 -0
ADD RUN cg0 -0 END
END
STRING 210 50
STRING 210 50 BEGIN
BEGIN PROMPT 2 3 "Cliente "
PROMPT 2 3 "Cliente " FIELD LF_CLIFO->RAGSOC
FIELD LF_CLIFO->RAGSOC USE LF_CLIFO KEY 2
USE LF_CLIFO KEY 2 INPUT TIPOCF "C"
INPUT TIPOCF "C" INPUT RAGSOC 210
INPUT RAGSOC 210 DISPLAY "Ragione Sociale Cliente@50" RAGSOC
DISPLAY "Ragione Sociale Cliente@50" RAGSOC DISPLAY "Gruppo" GRUPPO
DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO
DISPLAY "Conto" CONTO DISPLAY "Codice" CODCF
DISPLAY "Codice" CODCF COPY OUTPUT 209
COPY OUTPUT 209 MESSAGE COPY,110
MESSAGE COPY,110 ADD RUN cg0 -1
ADD RUN cg0 -1 CHECKTYPE NORMAL
CHECKTYPE NORMAL END
END
STRING 310 50
STRING 310 50 BEGIN
BEGIN PROMPT 2 3 "Fornitore "
PROMPT 2 3 "Fornitore " FIELD LF_PCON->SOTTOCONTO
FIELD LF_PCON->SOTTOCONTO USE LF_CLIFO KEY 2
USE LF_CLIFO KEY 2 INPUT TIPOCF "F"
INPUT TIPOCF "F" INPUT RAGSOC 310
INPUT RAGSOC 310 DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC DISPLAY "Gruppo" GRUPPO
DISPLAY "Gruppo" GRUPPO DISPLAY "Conto" CONTO
DISPLAY "Conto" CONTO DISPLAY "Codice" CODCF
DISPLAY "Codice" CODCF COPY OUTPUT 309
COPY OUTPUT 309 MESSAGE COPY,110
MESSAGE COPY,110 ADD RUN cg0 -1
ADD RUN cg0 -1 CHECKTYPE NORMAL
CHECKTYPE NORMAL END
END
LIST 105 1 53
LIST 105 1 53 BEGIN
BEGIN PROMPT 2 4 "Tipo C/R "
PROMPT 2 4 "Tipo C/R " ITEM " |0 - Acquisti o vendite in genere"
ITEM " |0 - Acquisti o vendite in genere" ITEM "1|1 - Acquisti beni per rivendita"
ITEM "1|1 - Acquisti beni per rivendita" ITEM "2|2 - Acquisti beni ammortizzabili"
ITEM "2|2 - Acquisti beni ammortizzabili" ITEM "3|3 - Acquisti beni ammortizzabili con detr. 6%"
ITEM "3|3 - Acquisti beni ammortizzabili con detr. 6%" ITEM "4|4 - Vendita beni strumentali art. 17"
ITEM "4|4 - Vendita beni strumentali art. 17" ITEM "5|5 - Beni per rivendita da non ventilare"
ITEM "5|5 - Beni per rivendita da non ventilare" ITEM "8|8 - Altri beni strumentali acquistati in leasing"
ITEM "8|8 - Altri beni strumentali acquistati in leasing" FLAGS "D"
FLAGS "D" HELP "Specifica il tipo Costo/Ricavo del conto"
HELP "Specifica il tipo Costo/Ricavo del conto" END
END
GROUPBOX DLG_NULL 67 5
GROUPBOX DLG_NULL 67 5 BEGIN
BEGIN PROMPT 1 6 "Imposta"
PROMPT 1 6 "Imposta" END
END
STRING 102 4
STRING 102 4 BEGIN
BEGIN PROMPT 2 7 "IVA "
PROMPT 2 7 "IVA " FLAGS "U"
FLAGS "U" USE %IVA
USE %IVA INPUT CODTAB 102
INPUT CODTAB 102 DISPLAY "Codice" CODTAB
DISPLAY "Codice" CODTAB DISPLAY "Descrizione@50" S0
DISPLAY "Descrizione@50" S0 DISPLAY "%@6" R0
DISPLAY "%@6" R0 DISPLAY "Tipo" S1
DISPLAY "Tipo" S1 OUTPUT 102 CODTAB
OUTPUT 102 CODTAB OUTPUT 211 S0
OUTPUT 211 S0 CHECKTYPE NORMAL
CHECKTYPE NORMAL VALIDATE REQIF_FUNC 1 101
VALIDATE REQIF_FUNC 1 101 END
END
STRING 211 50
STRING 211 50 BEGIN
BEGIN PROMPT 15 7 ""
PROMPT 15 7 "" FLAGS "D"
FLAGS "D" END
END
NUMBER 103 1
NUMBER 103 1 BEGIN
BEGIN PROMPT 2 9 "Det. "
PROMPT 2 9 "Det. " SHEET "Codice|Descrizione@53"
SHEET "Codice|Descrizione@53" INPUT 103
INPUT 103 ITEM " |Regime normale"
ITEM " |Regime normale" ITEM "1|IVA indetraibile su acquisti riferiti a ricavi esenti"
ITEM "1|IVA indetraibile su acquisti riferiti a ricavi esenti" ITEM "3|IVA indicata per il solo calcolo di ventilazione"
ITEM "3|IVA indicata per il solo calcolo di ventilazione" ITEM "9|IVA non detraibile per l'articolo 19"
ITEM "9|IVA non detraibile per l'articolo 19" OUTPUT 103
OUTPUT 103 OUTPUT 213
OUTPUT 213 END
END
STRING 213 53
STRING 213 53 BEGIN
BEGIN PROMPT 12 9 ""
PROMPT 12 9 "" FLAGS "D"
FLAGS "D" END
END
NUMBER 101 15
NUMBER 101 15 BEGIN
BEGIN PROMPT 2 8 "Imponibile "
PROMPT 2 8 "Imponibile " FLAGS "RV"
FLAGS "RV" PICTURE "."
PICTURE "." END
END
NUMBER 104 15
NUMBER 104 15 BEGIN
BEGIN PROMPT 40 8 "Imposta "
PROMPT 40 8 "Imposta " FLAGS "RV"
FLAGS "RV" PICTURE "."
PICTURE "." END
END
BUTTON DLG_OK 9 2
BUTTON DLG_OK 9 2 BEGIN
BEGIN PROMPT -13 -1 ""
PROMPT -13 -1 "" END
END
BUTTON DLG_CANCEL 9 2
BUTTON DLG_CANCEL 9 2 BEGIN
BEGIN PROMPT -23 -1 ""
PROMPT -23 -1 "" END
END
BUTTON DLG_DELREC 9 2
BUTTON DLG_DELREC 9 2 BEGIN
BEGIN PROMPT -33 -1 "Elimina"
PROMPT -33 -1 "Elimina" MESSAGE EXIT,K_DEL
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -426,7 +426,7 @@ void TApplication::about() const
{ {
#include <prassi.ver> #include <prassi.ver>
const TFilename n(__argv[0]); const TFilename n(__argv[0]);
message_box("PRASSI Versione Beta %3.1f\nProgramma %s\nLibreria del %s", message_box("PRASSI Versione Beta %4.2f\nProgramma %s\nLibreria del %s",
VERSION, (const char*)n.name(), __DATE__); VERSION, (const char*)n.name(), __DATE__);
} }

View File

@ -1,4 +1,4 @@
// $Id: maskfld.cpp,v 1.32 1994-10-19 13:56:40 alex Exp $ // $Id: maskfld.cpp,v 1.33 1994-10-19 15:00:23 guy Exp $
#include <xvt.h> #include <xvt.h>
#include <applicat.h> #include <applicat.h>
@ -1558,7 +1558,7 @@ const TBrowse* TEdit_field::get_browse(TScanner& scanner) const
const TBrowse* b = (const TBrowse*)f.browse(); const TBrowse* b = (const TBrowse*)f.browse();
#ifdef DBG #ifdef DBG
if (b == NULL) if (b == NULL)
error_box("La USE del campo %d non puo' essere copiata nel campo %d", id, dlg()); error_box("La USE del campo %d e' nulla e non puo' essere copiata nel campo %d", id, dlg());
#endif #endif
return b; return b;
} }

View File

@ -118,6 +118,7 @@ TSpreadsheet::TSpreadsheet(short x, short y, short dx, short dy,
const int NUMBER_WIDTH = 3; const int NUMBER_WIDTH = 3;
const int MAX_COL = 32; const int MAX_COL = 32;
int m_width[MAX_COL], v_width[MAX_COL]; int m_width[MAX_COL], v_width[MAX_COL];
int fixed_columns = 1; // Number of fixed columns
init(); init();
@ -139,7 +140,10 @@ TSpreadsheet::TSpreadsheet(short x, short y, short dx, short dy,
int m, v; int m, v;
if (at >= 0) if (at >= 0)
{ {
m = atoi(testa.mid(at+1)); const TString& wi = testa.mid(at+1);
if (wi[wi.len()-1] == 'F')
fixed_columns++;
m = atoi(wi);
testa.cut(at); testa.cut(at);
v = max(at, m+(f->has_query() ? 1 : 0)); v = max(at, m+(f->has_query() ? 1 : 0));
} }
@ -186,7 +190,7 @@ TSpreadsheet::TSpreadsheet(short x, short y, short dx, short dy,
listdef->v.list->movable_columns = TRUE; listdef->v.list->movable_columns = TRUE;
listdef->v.list->scroll_bar = TRUE; listdef->v.list->scroll_bar = TRUE;
listdef->v.list->scroll_bar_button = TRUE; listdef->v.list->scroll_bar_button = TRUE;
listdef->v.list->fixed_columns = 1; listdef->v.list->fixed_columns = fixed_columns;
listdef->v.list->width = rct.right-rct.left; listdef->v.list->width = rct.right-rct.left;
listdef->v.list->min_cell_height = CHARY; listdef->v.list->min_cell_height = CHARY;
listdef->v.list->min_heading_height = CHARY; listdef->v.list->min_heading_height = CHARY;
@ -562,8 +566,8 @@ break;
{ {
TMask_field* c = _edit_field; // Save field, it could turn out to be NULL on error TMask_field* c = _edit_field; // Save field, it could turn out to be NULL on error
const char* nuo = c->picture_data(xi_get_text(xiev->v.xi_obj, NULL, -1), TRUE); const char* nuo = c->picture_data(xi_get_text(xiev->v.xi_obj, NULL, -1), TRUE);
c->set(nuo); // Set new mask value c->set(nuo); // Set new mask value
c->set_dirty(); // Get it dirty! c->set_dirty(); // Get it dirty!
if (c->on_key(c->is_edit() ? K_TAB : K_SPACE) == FALSE) // Test it if (c->on_key(c->is_edit() ? K_TAB : K_SPACE) == FALSE) // Test it
{ {
xiev->refused = TRUE; xiev->refused = TRUE;

View File

@ -1 +1 @@
#define VERSION 1.10 #define VERSION 1.11

View File

@ -441,16 +441,19 @@ HIDDEN bool _mtcheck_val(TEdit_field& f, KEY)
} }
HIDDEN bool _reqif_val(TEdit_field& f, KEY) HIDDEN bool _reqif_val(TEdit_field& f, KEY k)
{ {
if (f.get().not_empty()) return TRUE; if (k == K_ENTER)
const int nparms = get_val_param_num();
for (int i = 0 ; i < nparms; i++)
{ {
const char* s = get_val_param(i); if (f.get().not_empty()) return TRUE;
if (*s == '\0') break; const int nparms = get_val_param_num();
if (f.mask().get(atoi(s)).not_empty()) return FALSE; for (int i = 0 ; i < nparms; i++)
} {
const short id = atoi(get_val_param(i));
if (id > 0 && f.mask().get(id).not_empty())
return FALSE;
}
}
return TRUE; return TRUE;
} }