In prima nota ho corretto il calcolo del tipo attivita' (errore 1119),

il segno degli imponibili e del totale documento (errore 1123).
Nelle stampe dei registri (cg4300 e cg4400) ho tolto l'azzeramento dei
due campi da ditta e a ditta (errore 0190)


git-svn-id: svn://10.65.10.50/trunk@429 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-10-20 13:31:04 +00:00
parent 4c0a8b0899
commit d8283b4f7b
15 changed files with 2530 additions and 2494 deletions

View File

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

View File

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

View File

@ -74,6 +74,7 @@ TMask* TPrimanota_application::load_mask(int n)
TMask& ism = is.sheet_mask();
ism.set_handler(101, imponibile_handler);
ism.set_handler(102, codiva_handler);
ism.set_handler(103, detrazione_handler);
ism.set_handler(104, imposta_handler);
ism.set_handler(109, suspended_handler);
ism.set_handler(209, sheet_clifo_handler);
@ -550,7 +551,12 @@ int TPrimanota_application::read(TMask& m)
ivas().reset();
const bool to_swap = test_swap(FALSE);
if (to_swap)
{
real totdoc(m.get(F_TOTALE));
totdoc = -totdoc;
m.set(F_TOTALE, totdoc.string());
}
for (i = 0; i < _rel->iva_items(); i++)
{
TRectype& r = _rel->iva(i);
@ -566,7 +572,7 @@ int TPrimanota_application::read(TMask& m)
real imposta(r.get("IMPOSTA"));
if (to_swap) imposta = -imposta;
if (imponibile.sign() != imposta.sign())
if (imponibile.sign() * imposta.sign() < 0)
{
warning_box("Registrazione con imponibile e imposta discordi: correzione effettuata");
imposta = -imposta;
@ -618,8 +624,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
TImporto n; n = row;
const TConto conto(row, 2, 0x3);
if (conto.ok())
_saldi.aggiorna(conto, n.valore(), n.sezione(), TRUE);
_saldi.aggiorna(conto, n.valore(), n.sezione(), TRUE);
TRectype &r = _rel->cg(cur-1);
r.zero();
@ -689,6 +694,13 @@ void TPrimanota_application::mask2rel(const TMask& m)
}
const bool to_swap = test_swap(FALSE);
if (to_swap)
{
real totale = _rel->lfile().get("TOTDOC");
totale = -totale;
_rel->lfile().put("TOTDOC", totale);
}
TArray& irows = ivas().rows_array();
cur = 1;
for (int i = 0; i < irows.items(); i++)
@ -712,7 +724,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
real imposta(row.get());
if (to_swap) imposta = -imposta;
if (imponibile.sign() != imposta.sign())
if (imponibile.sign() * imposta.sign() < 0)
{
yesnofatal_box("Registrazione di imponibile e imposta discordi");
imposta = -imposta;
@ -876,16 +888,33 @@ void TPrimanota_application::genera_incasso(const char* causimm)
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);
}
r.put("RCONTR", 1);
r.put("ROWTYPE", " ");
}
while (inc.write() == _isreinsert) // In caso di riscrittura
inc.lfile().put("NUMREG", ++_lastreg); // Incrementa numero registrazione
if (inc.good())
{
_saldi.reset(); // Inizializza saldi
_saldi.set_movprovv(FALSE);
_saldi.set_movap(FALSE);
_saldi.set_anno_es(m.get_int(F_ANNOES));
_saldi.set_num_ulmov(_lastreg);
_saldi.set_data_ulmov((TDate)m.get(F_DATAREG));
for (int r = 0; r < i; r++)
{
const TRectype& rec = inc.cg(r);
TConto c; get_conto(rec, c);
const real im(rec.get("IMPORTO"));
const char sezione = rec.get_char("SEZIONE");
_saldi.aggiorna(c, im, sezione, TRUE);
}
_saldi.registra();
}
}
}

View File

@ -1,103 +1,103 @@
#ifndef __CG2100_H
#define __CG2100_H
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_DATAREG 103
#define F_NUMREG 104
#define F_CODCAUS 105
#define F_DESCRCAUS 106
#define F_DOCUMENTO 107
#define F_TIPODOC 108
#define F_CODREG 109
#define F_PROTIVA 110
#define F_RIEPILOGO 111
#define F_DESCR 112
#define F_DATADOC 113
#define F_NUMDOC 114
#define F_ANNOES 115
#define F_DATACOMP 116
#define F_ANNOIVA 117
#define F_CLIFO 150
#define F_CLIENTE 151
#define F_RAGSOCCLIENTE 152
#define F_STATOPAIV 153
#define F_PIVACLIENTE 154
#define F_FORNITORE 161
#define F_RAGSOCFORNITORE 162
#define F_PIVAFORNITORE 164
#define F_GRUPPOCLIFO 172
#define F_CONTOCLIFO 173
#define F_GRUPPORIC 174
#define F_CONTORIC 175
#define F_SOTTOCONTORIC 176
#define F_TOTALE 118
#define F_CODIVA 119
#define F_RITFIS 120
#define F_RITSOC 121
#define F_CODPAG 122
#define F_ANNORIF 123
#define F_NUMRIF 124
#define F_VALUTA 126
#define F_CAMBIO 127
#define F_VISVAL 128
#define F_PROVVISORIO 129
#define F_OCCASIONALE 130
#define F_OCCASEDIT 131
#define F_SOLAIVA 132
#define F_CORRLIRE 133
#define F_CORRVALUTA 134
#define F_DATA74TER 135
#define F_DESCAGG 136
#define F_DARE 137
#define F_AVERE 138
#define F_IMPONIBILI 139
#define F_IMPOSTE 140
#define F_SHEETCG 300
#define F_SHEETIVA 301
// Campi ripetuti sulla seconda pagina
#define H_DATAREG 201
#define H_NUMREG 202
#define H_CODCAUS 203
#define H_DESCRCAUS 204
#define H_ANNOES 205
// 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_SESSO 110
#define O_DATANAS 111
#define O_STATONAS 112
#define O_COMUNENAS 113
#define O_DENCOMNAS 114
// 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
#ifndef __CG2100_H
#define __CG2100_H
#define F_CODDITTA 101
#define F_RAGSOC 102
#define F_DATAREG 103
#define F_NUMREG 104
#define F_CODCAUS 105
#define F_DESCRCAUS 106
#define F_DOCUMENTO 107
#define F_TIPODOC 108
#define F_CODREG 109
#define F_PROTIVA 110
#define F_RIEPILOGO 111
#define F_DESCR 112
#define F_DATADOC 113
#define F_NUMDOC 114
#define F_ANNOES 115
#define F_DATACOMP 116
#define F_ANNOIVA 117
#define F_CLIFO 150
#define F_CLIENTE 151
#define F_RAGSOCCLIENTE 152
#define F_STATOPAIV 153
#define F_PIVACLIENTE 154
#define F_FORNITORE 161
#define F_RAGSOCFORNITORE 162
#define F_PIVAFORNITORE 164
#define F_GRUPPOCLIFO 172
#define F_CONTOCLIFO 173
#define F_GRUPPORIC 174
#define F_CONTORIC 175
#define F_SOTTOCONTORIC 176
#define F_TOTALE 118
#define F_CODIVA 119
#define F_RITFIS 120
#define F_RITSOC 121
#define F_CODPAG 122
#define F_ANNORIF 123
#define F_NUMRIF 124
#define F_VALUTA 126
#define F_CAMBIO 127
#define F_VISVAL 128
#define F_PROVVISORIO 129
#define F_OCCASIONALE 130
#define F_OCCASEDIT 131
#define F_SOLAIVA 132
#define F_CORRLIRE 133
#define F_CORRVALUTA 134
#define F_DATA74TER 135
#define F_DESCAGG 136
#define F_DARE 137
#define F_AVERE 138
#define F_IMPONIBILI 139
#define F_IMPOSTE 140
#define F_SHEETCG 300
#define F_SHEETIVA 301
// Campi ripetuti sulla seconda pagina
#define H_DATAREG 201
#define H_NUMREG 202
#define H_CODCAUS 203
#define H_DESCRCAUS 204
#define H_ANNOES 205
// 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_SESSO 110
#define O_DATANAS 111
#define O_STATONAS 112
#define O_COMUNENAS 113
#define O_DENCOMNAS 114
// 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,314 +1,314 @@
#include "cg2100.h"
PAGE "Movimento di incasso immediato" -1 -1 75 13
DATE F_DATAREG
BEGIN
PROMPT 1 1 "Data di registrazione "
FIELD LF_MOV->DATAREG
CHECKTYPE REQUIRED
MESSAGE COPY,F_ANNOIVA,7,10
END
NUMBER F_ANNOIVA 4
BEGIN
FLAGS "H"
FIELD LF_MOV->ANNOIVA
END
NUMBER F_NUMREG 6
BEGIN
PROMPT 52 1 "Operazione n. "
FIELD LF_MOV->NUMREG
CHECKTYPE REQUIRED
FLAGS "D"
KEY 1
END
DATE F_DATACOMP
BEGIN
PROMPT 1 2 "Data di competenza "
FIELD LF_MOV->DATACOMP
CHECKTYPE REQUIRED
END
NUMBER F_ANNOES 4
BEGIN
PROMPT 52 2 "Esercizio "
FIELD LF_MOV->ANNOES
FLAGS "D"
END
DATE F_DATADOC
BEGIN
PROMPT 1 3 "Data del documento "
FIELD LF_MOV->DATADOC
WARNING "Specificare la data del documento"
END
STRING F_NUMDOC 7
BEGIN
PROMPT 52 3 "Documento n. "
FIELD LF_MOV->NUMDOC
WARNING "Specificare il numero documento"
END
STRING F_DESCR 50
BEGIN
PROMPT 1 4 "Descrizione documento "
FIELD LF_MOV->DESCR
END
STRING F_CODCAUS 3
BEGIN
PROMPT 1 5 "Causale "
FIELD LF_MOV->CODCAUS
USE LF_CAUSALI
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo" TIPODOC
OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR
OUTPUT F_TIPODOC TIPODOC
FLAGS "D"
END
STRING F_DESCRCAUS 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
END
LIST I_SEZIONE1 1 8
BEGIN
PROMPT 1 7 "Riga 1 "
ITEM "D|Dare"
ITEM "A|Avere"
END
NUMBER F_TOTALE 15
BEGIN
PROMPT 18 7 ""
FIELD LF_MOV->TOTDOC
FLAGS "R"
PICTURE "."
CHECKTYPE REQUIRED
MESSAGE COPY,I_IMPORTO2
END
LIST F_CLIFO 1 12
BEGIN
PROMPT 37 7 ""
ITEM "C|Cliente" MESSAGE HIDE,F_FORNITORE|SHOW,F_CLIENTE
ITEM "F|Fornitore" MESSAGE HIDE,F_CLIENTE|SHOW,F_FORNITORE
FIELD LF_MOV->TIPO
FLAGS "GD"
END
NUMBER F_GRUPPOCLIFO 3
BEGIN
PROMPT 51 7 ""
CHECKTYPE REQUIRED
WARNING "Gruppo assente"
END
NUMBER F_CONTOCLIFO 3
BEGIN
PROMPT 57 7 ""
USE LF_PCON SELECT TMCF==#F_CLIFO
INPUT GRUPPO F_GRUPPOCLIFO
INPUT CONTO F_CONTOCLIFO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOCLIFO GRUPPO
OUTPUT F_CONTOCLIFO CONTO
CHECKTYPE REQUIRED
WARNING "Conto assente"
END
NUMBER F_CLIENTE 6
BEGIN
PROMPT 65 7 ""
FIELD LF_MOV->CODCF
USE LF_CLIFO
INPUT TIPOCF "C"
INPUT CODCF F_CLIENTE
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
OUTPUT F_CLIENTE CODCF
CHECKTYPE REQUIRED
END
NUMBER F_FORNITORE 6
BEGIN
PROMPT 65 7 ""
FIELD LF_MOV->CODCF
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF F_FORNITORE
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
OUTPUT F_FORNITORE CODCF
CHECKTYPE REQUIRED
END
LIST I_SEZIONE2 1 8
BEGIN
PROMPT 1 8 "Riga 2 "
ITEM "D|Dare"
ITEM "A|Avere"
END
NUMBER I_IMPORTO2 15
BEGIN
PROMPT 18 8 ""
PICTURE "."
FLAGS "R"
END
LIST DLG_NULL 1 12
BEGIN
PROMPT 37 8 ""
ITEM " |Conto"
FLAGS "D"
END
NUMBER I_GRUPPO2 3
BEGIN
PROMPT 51 8 ""
END
NUMBER I_CONTO2 3
BEGIN
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
#include "cg2100.h"
PAGE "Movimento di incasso immediato" -1 -1 75 13
DATE F_DATAREG
BEGIN
PROMPT 1 1 "Data di registrazione "
FIELD LF_MOV->DATAREG
CHECKTYPE REQUIRED
MESSAGE COPY,F_ANNOIVA,7,10
END
NUMBER F_ANNOIVA 4
BEGIN
FLAGS "H"
FIELD LF_MOV->ANNOIVA
END
NUMBER F_NUMREG 6
BEGIN
PROMPT 52 1 "Operazione n. "
FIELD LF_MOV->NUMREG
CHECKTYPE REQUIRED
FLAGS "D"
KEY 1
END
DATE F_DATACOMP
BEGIN
PROMPT 1 2 "Data di competenza "
FIELD LF_MOV->DATACOMP
CHECKTYPE REQUIRED
END
NUMBER F_ANNOES 4
BEGIN
PROMPT 52 2 "Esercizio "
FIELD LF_MOV->ANNOES
FLAGS "D"
END
DATE F_DATADOC
BEGIN
PROMPT 1 3 "Data del documento "
FIELD LF_MOV->DATADOC
WARNING "Specificare la data del documento"
END
STRING F_NUMDOC 7
BEGIN
PROMPT 52 3 "Documento n. "
FIELD LF_MOV->NUMDOC
WARNING "Specificare il numero documento"
END
STRING F_DESCR 50
BEGIN
PROMPT 1 4 "Descrizione documento "
FIELD LF_MOV->DESCR
END
STRING F_CODCAUS 3
BEGIN
PROMPT 1 5 "Causale "
FIELD LF_MOV->CODCAUS
USE LF_CAUSALI
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Tipo" TIPODOC
OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR
OUTPUT F_TIPODOC TIPODOC
FLAGS "D"
END
STRING F_DESCRCAUS 50
BEGIN
PROMPT 23 5 ""
FLAGS "D"
END
LIST I_SEZIONE1 1 8
BEGIN
PROMPT 1 7 "Riga 1 "
ITEM "D|Dare"
ITEM "A|Avere"
END
NUMBER F_TOTALE 15
BEGIN
PROMPT 18 7 ""
FIELD LF_MOV->TOTDOC
FLAGS "R"
PICTURE "."
CHECKTYPE REQUIRED
MESSAGE COPY,I_IMPORTO2
END
LIST F_CLIFO 1 12
BEGIN
PROMPT 37 7 ""
ITEM "C|Cliente" MESSAGE HIDE,F_FORNITORE|SHOW,F_CLIENTE
ITEM "F|Fornitore" MESSAGE HIDE,F_CLIENTE|SHOW,F_FORNITORE
FIELD LF_MOV->TIPO
FLAGS "GD"
END
NUMBER F_GRUPPOCLIFO 3
BEGIN
PROMPT 51 7 ""
CHECKTYPE REQUIRED
WARNING "Gruppo assente"
END
NUMBER F_CONTOCLIFO 3
BEGIN
PROMPT 57 7 ""
USE LF_PCON SELECT TMCF==#F_CLIFO
INPUT GRUPPO F_GRUPPOCLIFO
INPUT CONTO F_CONTOCLIFO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT F_GRUPPOCLIFO GRUPPO
OUTPUT F_CONTOCLIFO CONTO
CHECKTYPE REQUIRED
WARNING "Conto assente"
END
NUMBER F_CLIENTE 6
BEGIN
PROMPT 65 7 ""
FIELD LF_MOV->CODCF
USE LF_CLIFO
INPUT TIPOCF "C"
INPUT CODCF F_CLIENTE
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale Cliente@50" RAGSOC
OUTPUT F_CLIENTE CODCF
CHECKTYPE REQUIRED
END
NUMBER F_FORNITORE 6
BEGIN
PROMPT 65 7 ""
FIELD LF_MOV->CODCF
USE LF_CLIFO
INPUT TIPOCF "F"
INPUT CODCF F_FORNITORE
DISPLAY "Codice" CODCF
DISPLAY "Ragione Sociale Fornitore@50" RAGSOC
OUTPUT F_FORNITORE CODCF
CHECKTYPE REQUIRED
END
LIST I_SEZIONE2 1 8
BEGIN
PROMPT 1 8 "Riga 2 "
ITEM "D|Dare"
ITEM "A|Avere"
END
NUMBER I_IMPORTO2 15
BEGIN
PROMPT 18 8 ""
PICTURE "."
FLAGS "R"
END
LIST DLG_NULL 1 12
BEGIN
PROMPT 37 8 ""
ITEM " |Conto"
FLAGS "D"
END
NUMBER I_GRUPPO2 3
BEGIN
PROMPT 51 8 ""
END
NUMBER I_CONTO2 3
BEGIN
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

@ -45,6 +45,9 @@ const real& TPrimanota_application::cod2IVA(const TMask& m)
static TString16 _codiva;
static real _percent;
if (app().iva() == iva_acquisti && m.get_int(103) == 3)
return ZERO;
const TString& codiva = m.get(102);
if (_codiva != codiva)
{
@ -628,9 +631,9 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
m.set(id, b.sottoconto());
m.set(id+1, b.descrizione());
TMask_field& i = m.field(101);
i.set_dirty();
return imponibile_handler(i, key);
TMask_field& im = m.field(101);
im.set_dirty();
im.on_hit();
} else
if (key == K_ENTER)
{
@ -640,6 +643,16 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
return TRUE;
}
bool TPrimanota_application::detrazione_handler(TMask_field& f, KEY key)
{
if (key == K_SPACE && app().iva() == iva_acquisti)
{
TMask_field& ci = f.mask().field(101);
ci.set_dirty();
ci.on_hit();
}
return TRUE;
}
bool TPrimanota_application::imposta_handler(TMask_field& f, KEY key)
{

View File

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

View File

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

View File

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

View File

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

View File

@ -264,8 +264,8 @@ bool CG4300_App::to_ditta_handler(TMask_field& f, KEY key)
{
const long sel = app().select_firm_range(from, to, freq);
m.set(CG43_FLD_SELECTED, sel);
m.reset(CG43_FLD_DFR);
m.reset(CG43_FLD_DTO);
// m.reset(CG43_FLD_DFR);
// m.reset(CG43_FLD_DTO);
}
}
return TRUE;

View File

@ -106,8 +106,8 @@ bool CG4400_application::mask_firm_to (TMask_field& f, KEY k)
if (cod >= from && cod <= to)
sel.set(i);
}
m.reset(DA_CODICE);
m.reset(A_CODICE);
// m.reset(DA_CODICE);
// m.reset(A_CODICE);
const long numd = sel.ones();
f.mask().set(F_SELECT, numd);
}

View File

@ -8,10 +8,12 @@
#include <config.h>
#include <utility.h>
#include <urldefid.h>
#include <cglib.h>
#include <saldi.h>
#include <clifo.h>
#include <pconti.h>
#include "cglib.h"
#include "cg5200.h"
//HIDDEN const char* REAL_PICTURE = "###.###.###.###";

View File

@ -165,12 +165,14 @@ bool TBill::read(TRectype &r)
int TBill::tipo_att()
{
int tipo_att = 1;
if (_tipo == ' ')
if (tipo() == ' ' && ok())
{
TRectype conto(LF_PCON); read(conto);
TBill bill(gruppo(), conto());
TRectype conto(LF_PCON); bill.read(conto);
const TIndbil ib = (TIndbil)conto.get_int("INDBIL");
if (ib == ib_passivita || ib == ib_ricavi)
{
read(conto);
const int ricser = conto.get_int("RICSER");
tipo_att = (ricser == 0) ? 2 : 1;
}