Corretta gestione abbuoni

git-svn-id: svn://10.65.10.50/trunk@1729 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1995-08-23 14:39:46 +00:00
parent 3efc5de8c8
commit a7ca6ce82d
9 changed files with 7185 additions and 7157 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,129 +1,129 @@
#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_COFICLIENTE 155 #define F_COFICLIENTE 155
#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_COFIFORNITORE 165 #define F_COFIFORNITORE 165
#define F_GRUPPOCLIFO 170 #define F_GRUPPOCLIFO 170
#define F_CONTOCLIFO 171 #define F_CONTOCLIFO 171
#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_PROVVISORIO 129 #define F_PROVVISORIO 129
#define F_TIPOMOV 130 #define F_TIPOMOV 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_VALUTAINTRA 141 #define F_VALUTAINTRA 141
#define F_CAMBIOINTRA 142 #define F_CAMBIOINTRA 142
#define F_STAMPATO 143 #define F_STAMPATO 143
#define F_REGST 144 #define F_REGST 144
#define F_SHEETCG 190 #define F_SHEETCG 190
#define F_SHEETIVA 191 #define F_SHEETIVA 191
// 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
// Maschera incasso/pagamento immediato // Maschera incasso/pagamento immediato
#define I_SEZIONE1 201 #define I_SEZIONE1 201
#define I_IMPORTO1 202 #define I_IMPORTO1 202
#define I_SOTTOCONTO 203 #define I_SOTTOCONTO 203
#define I_SEZIONE2 210 #define I_SEZIONE2 210
#define I_IMPORTO2 211 #define I_IMPORTO2 211
#define I_GRUPPO2 212 #define I_GRUPPO2 212
#define I_CONTO2 213 #define I_CONTO2 213
#define I_SOTTOCONTO2 214 #define I_SOTTOCONTO2 214
#define I_SEZIONE3 220 #define I_SEZIONE3 220
#define I_IMPORTO3 221 #define I_IMPORTO3 221
#define I_GRUPPO3 222 #define I_GRUPPO3 222
#define I_CONTO3 223 #define I_CONTO3 223
#define I_SOTTOCONTO3 224 #define I_SOTTOCONTO3 224
#define I_SEZIONE4 230 #define I_SEZIONE4 230
#define I_IMPORTO4 231 #define I_IMPORTO4 231
#define I_GRUPPO4 232 #define I_GRUPPO4 232
#define I_CONTO4 233 #define I_CONTO4 233
#define I_SOTTOCONTO4 234 #define I_SOTTOCONTO4 234
// Saldaconto // Saldaconto
#define S_TOTDOC 301 #define S_TOTDOC 301
#define S_TOTDOCVAL 302 #define S_TOTDOCVAL 302
#define S_VALUTA 303 #define S_VALUTA 303
#define S_DATACAMBIO 304 #define S_DATACAMBIO 304
#define S_CAMBIO 305 #define S_CAMBIO 305
#define S_TIPORIGA 306 #define S_TIPORIGA 306
// copie 2a pag. // copie 2a pag.
#define K_CODDITTA 401 #define K_CODDITTA 401
#define K_RAGSOC 402 #define K_RAGSOC 402
#define K_DATAREG 403 #define K_DATAREG 403
#define K_NUMREG 404 #define K_NUMREG 404
#define K_CODCAUS 405 #define K_CODCAUS 405
#define K_DESCRCAUS 406 #define K_DESCRCAUS 406
#define K_DOCUMENTO 407 #define K_DOCUMENTO 407
#define K_TIPODOC 408 #define K_TIPODOC 408
#define K_PROTIVA 409 #define K_PROTIVA 409
#define K_PROVVISORIO 410 #define K_PROVVISORIO 410
#define K_DESCR 411 #define K_DESCR 411
#define K_DATADOC 412 #define K_DATADOC 412
#define K_NUMDOC 413 #define K_NUMDOC 413
#define K_ANNOES 414 #define K_ANNOES 414
#define K_DATACOMP 415 #define K_DATACOMP 415
#endif #endif

View File

@ -1,375 +1,375 @@
#include "cg2100.h" #include "cg2100.h"
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 20 0 2
#include <toolbar.h> #include <toolbar.h>
ENDPAGE ENDPAGE
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20 PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "@BMovimento di sola contabilita'" PROMPT 1 0 "@BMovimento di sola contabilita'"
END END
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 3 1 "Ditta " PROMPT 3 1 "Ditta "
FLAGS "DFR" FLAGS "DFR"
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
OUTPUT K_CODDITTA CODDITTA OUTPUT K_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 17 1 "Ragione " PROMPT 17 1 "Ragione "
FLAGS "D" FLAGS "D"
MESSAGE COPY,K_RAGSOC MESSAGE COPY,K_RAGSOC
END END
NUMBER F_NUMREG 7 NUMBER F_NUMREG 7
BEGIN BEGIN
PROMPT 56 3 "Operazione n. " PROMPT 56 3 "Operazione n. "
FIELD NUMREG FIELD NUMREG
FLAGS "DGR" FLAGS "DGR"
MESSAGE COPY,K_NUMREG MESSAGE COPY,K_NUMREG
END END
DATE F_DATAREG DATE F_DATAREG
BEGIN BEGIN
PROMPT 1 3 "Data operazione " PROMPT 1 3 "Data operazione "
HELP "Data in cui viene effettuata l'operazione" HELP "Data in cui viene effettuata l'operazione"
FIELD DATAREG FIELD DATAREG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
MESSAGE COPY,K_DATAREG MESSAGE COPY,K_DATAREG
END END
DATE F_DATACOMP DATE F_DATACOMP
BEGIN BEGIN
PROMPT 1 4 "Data di competenza " PROMPT 1 4 "Data di competenza "
HELP "Data di competenza dell'operazione" HELP "Data di competenza dell'operazione"
FIELD DATACOMP FIELD DATACOMP
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
MESSAGE COPY,K_DATACOMP MESSAGE COPY,K_DATACOMP
END END
NUMBER F_ANNOES 4 NUMBER F_ANNOES 4
BEGIN BEGIN
PROMPT 56 4 "Esercizio " PROMPT 56 4 "Esercizio "
FIELD ANNOES FIELD ANNOES
MESSAGE COPY,K_ANNOES MESSAGE COPY,K_ANNOES
FLAGS "DGZ" FLAGS "DGZ"
END END
STRING F_CODCAUS 3 STRING F_CODCAUS 3
BEGIN BEGIN
PROMPT 1 5 "Causale " PROMPT 1 5 "Causale "
HELP "Codice della causale generante l'operazione" HELP "Codice della causale generante l'operazione"
FLAGS "UZ" FLAGS "UZ"
FIELD CODCAUS FIELD 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
DISPLAY "Registro" REG DISPLAY "Registro" REG
OUTPUT F_CODCAUS CODCAUS OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR OUTPUT F_DESCRCAUS DESCR
OUTPUT F_TIPODOC TIPODOC OUTPUT F_TIPODOC TIPODOC
OUTPUT F_TIPOMOV TIPOMOV OUTPUT F_TIPOMOV TIPOMOV
CHECKTYPE NORMAL CHECKTYPE NORMAL
ADD RUN cg0 -4 ADD RUN cg0 -4
MESSAGE COPY,K_CODCAUS MESSAGE COPY,K_CODCAUS
END END
STRING F_DESCRCAUS 50 STRING F_DESCRCAUS 50
BEGIN BEGIN
PROMPT 25 5 "" PROMPT 25 5 ""
HELP "Descrizione della causale generante l'operazione" HELP "Descrizione della causale generante l'operazione"
USE LF_CAUSALI KEY 2 USE LF_CAUSALI KEY 2
INPUT DESCR F_DESCRCAUS INPUT DESCR F_DESCRCAUS
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
COPY OUTPUT F_CODCAUS COPY OUTPUT F_CODCAUS
MESSAGE COPY,K_DESCRCAUS MESSAGE COPY,K_DESCRCAUS
END END
LIST F_PROVVISORIO 1 25 LIST F_PROVVISORIO 1 25
BEGIN BEGIN
PROMPT 1 6 "Movimento provvisorio " PROMPT 1 6 "Movimento provvisorio "
HELP "Indicare se si tratta di movimento provvisorio" HELP "Indicare se si tratta di movimento provvisorio"
FIELD PROVVIS FIELD PROVVIS
ITEM " |No (movimento normale)" ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)" ITEM "P|Si (cancellabile)"
MESSAGE COPY,K_PROVVISORIO MESSAGE COPY,K_PROVVISORIO
END END
STRING F_TIPODOC 2 STRING F_TIPODOC 2
BEGIN BEGIN
PROMPT 60 6 "Tipo documento " PROMPT 60 6 "Tipo documento "
FIELD TIPODOC FIELD TIPODOC
FLAGS "DG" FLAGS "DG"
MESSAGE COPY,K_TIPODOC MESSAGE COPY,K_TIPODOC
END END
NUMBER F_TIPOMOV 1 NUMBER F_TIPOMOV 1
BEGIN BEGIN
PROMPT 32 6 "Tipo movimento " PROMPT 32 6 "Tipo movimento "
FIELD LF_MOV->TIPOMOV FIELD LF_MOV->TIPOMOV
FLAGS "H" FLAGS "H"
END END
DATE F_DATADOC DATE F_DATADOC
BEGIN BEGIN
PROMPT 1 7 "Data del documento " PROMPT 1 7 "Data del documento "
HELP "Data del documento generante il movimento" HELP "Data del documento generante il movimento"
FIELD DATADOC FIELD DATADOC
WARNING "Specificare una data del documento non superiore a quella dell'operazione" WARNING "Specificare una data del documento non superiore a quella dell'operazione"
VALIDATE DATE_CMP_FUNC <= F_DATAREG VALIDATE DATE_CMP_FUNC <= F_DATAREG
MESSAGE COPY,K_DATADOC MESSAGE COPY,K_DATADOC
END END
STRING F_NUMDOC 7 STRING F_NUMDOC 7
BEGIN BEGIN
PROMPT 56 7 "Documento n. " PROMPT 56 7 "Documento n. "
HELP "Numero del documento generante il movimento" HELP "Numero del documento generante il movimento"
FIELD NUMDOC FIELD NUMDOC
WARNING "La causale impone di specificare il numero documento" WARNING "La causale impone di specificare il numero documento"
MESSAGE COPY,K_NUMDOC MESSAGE COPY,K_NUMDOC
END END
NUMBER F_ANNOIVA 4 NUMBER F_ANNOIVA 4
BEGIN BEGIN
FLAGS "H" FLAGS "H"
END END
STRING F_DESCAGG 5 STRING F_DESCAGG 5
BEGIN BEGIN
PROMPT 1 8 "Descrizione " PROMPT 1 8 "Descrizione "
HELP "Codice descrizione del movimento di contabilita'" HELP "Codice descrizione del movimento di contabilita'"
FLAGS "UZ" FLAGS "UZ"
USE %DPN USE %DPN
INPUT CODTAB F_DESCAGG INPUT CODTAB F_DESCAGG
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
OUTPUT F_DESCAGG CODTAB OUTPUT F_DESCAGG CODTAB
OUTPUT F_DESCR S0 OUTPUT F_DESCR S0
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_DESCR 50 STRING F_DESCR 50
BEGIN BEGIN
PROMPT 25 8 "" PROMPT 25 8 ""
HELP "Descrizione del movimento di contabilita'" HELP "Descrizione del movimento di contabilita'"
FIELD DESCR FIELD DESCR
USE %DPN KEY 2 USE %DPN KEY 2
INPUT S0 F_DESCR INPUT S0 F_DESCR
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT F_DESCAGG COPY OUTPUT F_DESCAGG
END END
GROUPBOX DLG_NULL 78 8 GROUPBOX DLG_NULL 78 8
BEGIN BEGIN
PROMPT 1 10 "Voci per saldaconto" PROMPT 1 10 "Voci per saldaconto"
END END
NUMBER S_TOTDOC 15 0 NUMBER S_TOTDOC 15 0
BEGIN BEGIN
PROMPT 2 11 "Totale documento " PROMPT 2 11 "Totale documento "
FLAGS "R" FLAGS "R"
PICTURE "." PICTURE "."
GROUP 5 GROUP 5
END END
NUMBER S_TOTDOCVAL 15 2 NUMBER S_TOTDOCVAL 15 2
BEGIN BEGIN
PROMPT 44 11 "Totale in valuta " PROMPT 44 11 "Totale in valuta "
HELP "" HELP ""
FLAGS "R" FLAGS "R"
PICTURE ".2" PICTURE ".2"
GROUP 3 GROUP 3
END END
STRING S_VALUTA 3 STRING S_VALUTA 3
BEGIN BEGIN
PROMPT 2 13 "Valuta " PROMPT 2 13 "Valuta "
HELP "Codice della valuta per movimento" HELP "Codice della valuta per movimento"
FIELD LF_MOV->CODVAL FIELD LF_MOV->CODVAL
FLAGS "U" FLAGS "U"
GROUP 3 GROUP 3
USE %VAL USE %VAL
INPUT CODTAB S_VALUTA INPUT CODTAB S_VALUTA
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Nome@50" S0 DISPLAY "Nome@50" S0
DISPLAY "Ultimo cambio@15" R10 DISPLAY "Ultimo cambio@15" R10
DISPLAY "Ultimo aggiornamento" D0 DISPLAY "Ultimo aggiornamento" D0
OUTPUT S_VALUTA CODTAB OUTPUT S_VALUTA CODTAB
OUTPUT S_CAMBIO R10 OUTPUT S_CAMBIO R10
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
DATE S_DATACAMBIO DATE S_DATACAMBIO
BEGIN BEGIN
PROMPT 22 13 "Data cambio " PROMPT 22 13 "Data cambio "
FLAGS "R" FLAGS "R"
USE CAM USE CAM
INPUT CODTAB[1,3] S_VALUTA INPUT CODTAB[1,3] S_VALUTA
INPUT CODTAB[4,11] S_DATACAMBIO INPUT CODTAB[4,11] S_DATACAMBIO
DISPLAY "Valuta" CODTAB[1,3] DISPLAY "Valuta" CODTAB[1,3]
DISPLAY "Data@10" D0 DISPLAY "Data@10" D0
DISPLAY "Cambio@18" R10 DISPLAY "Cambio@18" R10
OUTPUT S_VALUTA CODTAB[1,3] OUTPUT S_VALUTA CODTAB[1,3]
OUTPUT S_DATACAMBIO D0 OUTPUT S_DATACAMBIO D0
OUTPUT S_CAMBIO R10 OUTPUT S_CAMBIO R10
GROUP 3 GROUP 3
END END
NUMBER S_CAMBIO 15 5 NUMBER S_CAMBIO 15 5
BEGIN BEGIN
PROMPT 54 13 "Cambio " PROMPT 54 13 "Cambio "
HELP "Cambio della valuta" HELP "Cambio della valuta"
FIELD LF_MOV->CAMBIO FIELD LF_MOV->CAMBIO
FLAGS "RU" FLAGS "RU"
GROUP 3 GROUP 3
PICTURE ".5" PICTURE ".5"
END END
ENDPAGE ENDPAGE
PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20 PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 0 "@BMovimento di sola contabilita'" PROMPT 1 0 "@BMovimento di sola contabilita'"
END END
NUMBER K_CODDITTA 5 NUMBER K_CODDITTA 5
BEGIN BEGIN
PROMPT 3 1 "Ditta " PROMPT 3 1 "Ditta "
FLAGS "D" FLAGS "D"
END END
STRING K_RAGSOC 50 STRING K_RAGSOC 50
BEGIN BEGIN
PROMPT 17 1 "Ragione " PROMPT 17 1 "Ragione "
FLAGS "D" FLAGS "D"
END END
NUMBER K_NUMREG 7 NUMBER K_NUMREG 7
BEGIN BEGIN
PROMPT 56 3 "Operazione n. " PROMPT 56 3 "Operazione n. "
FLAGS "RD" FLAGS "RD"
END END
DATE K_DATAREG DATE K_DATAREG
BEGIN BEGIN
PROMPT 1 3 "Data operazione " PROMPT 1 3 "Data operazione "
FLAGS "D" FLAGS "D"
END END
DATE K_DATACOMP DATE K_DATACOMP
BEGIN BEGIN
PROMPT 1 4 "Data di competenza " PROMPT 1 4 "Data di competenza "
FLAGS "D" FLAGS "D"
END END
NUMBER K_ANNOES 4 NUMBER K_ANNOES 4
BEGIN BEGIN
PROMPT 56 4 "Esercizio " PROMPT 56 4 "Esercizio "
FLAGS "DZ" FLAGS "DZ"
END END
STRING K_CODCAUS 3 STRING K_CODCAUS 3
BEGIN BEGIN
PROMPT 1 5 "Causale " PROMPT 1 5 "Causale "
FLAGS "D" FLAGS "D"
END END
STRING K_DESCRCAUS 50 STRING K_DESCRCAUS 50
BEGIN BEGIN
PROMPT 25 5 "" PROMPT 25 5 ""
FLAGS "D" FLAGS "D"
END END
LIST K_PROVVISORIO 1 25 LIST K_PROVVISORIO 1 25
BEGIN BEGIN
PROMPT 1 6 "Movimento provvisorio " PROMPT 1 6 "Movimento provvisorio "
ITEM " |No (movimento normale)" ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)" ITEM "P|Si (cancellabile)"
FLAGS "D" FLAGS "D"
END END
STRING K_TIPODOC 2 STRING K_TIPODOC 2
BEGIN BEGIN
PROMPT 60 6 "Tipo documento " PROMPT 60 6 "Tipo documento "
FLAGS "D" FLAGS "D"
END END
DATE K_DATADOC DATE K_DATADOC
BEGIN BEGIN
PROMPT 1 7 "Data del documento " PROMPT 1 7 "Data del documento "
FLAGS "D" FLAGS "D"
END END
STRING K_NUMDOC 7 STRING K_NUMDOC 7
BEGIN BEGIN
PROMPT 38 7 "Num. " PROMPT 38 7 "Num. "
FLAGS "D" FLAGS "D"
END END
LIST S_TIPORIGA 1 13 LIST S_TIPORIGA 1 13
BEGIN BEGIN
PROMPT 60 7 "Riga " PROMPT 60 7 "Riga "
ITEM "K|Saldaconto" ITEM "K|Saldaconto"
ITEM "S|Spese" ITEM "S|Spese"
END END
SPREADSHEET F_SHEETCG SPREADSHEET F_SHEETCG
BEGIN BEGIN
PROMPT 0 8 "" PROMPT 0 8 ""
ITEM "Dare@15" ITEM "Dare@15"
ITEM "Avere@15" ITEM "Avere@15"
ITEM "CF@1" ITEM "CF@1"
ITEM "Gr." ITEM "Gr."
ITEM "Co." ITEM "Co."
ITEM "Sottoc.@6" ITEM "Sottoc.@6"
ITEM "Descrizione conto@50" ITEM "Descrizione conto@50"
ITEM "Codice" ITEM "Codice"
ITEM "Descrizione riga@50" ITEM "Descrizione riga@50"
ITEM "CF@1" ITEM "CF@1"
ITEM "Gr./c@3" ITEM "Gr./c@3"
ITEM "Co./c@3" ITEM "Co./c@3"
ITEM "Sottoc./c@6" ITEM "Sottoc./c@6"
ITEM "Descrizione contropartita@50" ITEM "Descrizione contropartita@50"
ITEM "Giornale" ITEM "Giornale"
ITEM " @1" ITEM " @1"
END END
NUMBER F_DARE 15 NUMBER F_DARE 15
BEGIN BEGIN
PROMPT 1 -1 "Sbilancio Dare " PROMPT 1 -1 "Sbilancio Dare "
FLAGS "DRV" FLAGS "DRV"
PICTURE "." PICTURE "."
END END
NUMBER F_AVERE 15 NUMBER F_AVERE 15
BEGIN BEGIN
PROMPT 41 -1 "Sbilancio Avere " PROMPT 41 -1 "Sbilancio Avere "
FLAGS "DRV" FLAGS "DRV"
PICTURE "." PICTURE "."
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
#include "cg21cg.uml" #include "cg21cg.uml"
z z

File diff suppressed because it is too large Load Diff

View File

@ -1,232 +1,232 @@
#ifndef __CG2102_H #ifndef __CG2102_H
#define __CG2102_H #define __CG2102_H
#ifndef __RELAPP_H #ifndef __RELAPP_H
#include <relapp.h> #include <relapp.h>
#endif #endif
#ifndef __PAGAMENT_H #ifndef __PAGAMENT_H
#include "pagament.h" #include "pagament.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;
TLocalisamfile* _scadenze; TLocalisamfile* _scadenze;
TLocalisamfile* _pagamenti; TLocalisamfile* _pagamenti;
TPagamento* _pag; TPagamento* _pag;
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 _num_cli, _num_for; // Riferimento partita allineato a destra bool _num_cli, _num_for; // Riferimento partita allineato a destra
bool _skip_giornale_check; // Ignora controllo data stampa libro giornale bool _skip_giornale_check; // Ignora controllo data stampa libro giornale
bool _skip_bollato_check; // Ignora controllo data stampa bollato bool _skip_bollato_check; // Ignora controllo data stampa bollato
bool _savenew; // Registra e nuovo bool _savenew; // Registra e nuovo
short _firstfocus; // Primo campo della maschera a prendere il focus short _firstfocus; // Primo campo della maschera a prendere il focus
bool _iva_showed; // Lo sheet IVA e' gia' stato visualizzato una volta? bool _iva_showed; // Lo sheet IVA e' gia' stato visualizzato una volta?
bool _is_saldaconto; // saldaconto si/no (vede parametri e causale) bool _is_saldaconto; // saldaconto si/no (vede parametri e causale)
TSaldo_agg _saldi; // Saldi da aggiornare TSaldo_agg _saldi; // Saldi da aggiornare
TPartite_array _partite; // Partite coinvolte TPartite_array _partite; // Partite coinvolte
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
TBill _conto_ricavo; // Conto di ricavo del clifo TBill _conto_ricavo; // Conto di ricavo del clifo
TString_array _pag_rows; TString_array _pag_rows;
static bool showpartite_handler(TMask_field& f, KEY k); static bool showpartite_handler(TMask_field& f, KEY k);
static bool speserimb_handler(TMask_field& f, KEY k); static bool speserimb_handler(TMask_field& f, KEY k);
static bool altrespese_handler(TMask_field& f, KEY k); static bool altrespese_handler(TMask_field& f, KEY k);
static bool abbatt_handler(TMask_field& f, KEY k); static bool abbatt_handler(TMask_field& f, KEY k);
static bool abbpass_handler(TMask_field& f, KEY k); static bool abbpass_handler(TMask_field& f, KEY k);
static bool ritprof_handler(TMask_field& f, KEY k); static bool ritprof_handler(TMask_field& f, KEY k);
static bool diffcamb_handler(TMask_field& f, KEY k); static bool diffcamb_handler(TMask_field& f, KEY k);
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 doc_handler(TMask_field& f, KEY key); static bool doc_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 totdoc_handler(TMask_field& f, KEY key); static bool totdoc_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 corrlire_handler(TMask_field& f, KEY key); static bool corrlire_handler(TMask_field& f, KEY key);
static bool corrvaluta_handler(TMask_field& f, KEY key); static bool corrvaluta_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 sheet_clifo_handler(TMask_field& f, KEY k); static bool sheet_clifo_handler(TMask_field& f, KEY k);
static bool iva_sottoconto_handler(TMask_field& f, KEY k); static bool iva_sottoconto_handler(TMask_field& f, KEY k);
static bool imponibile_handler(TMask_field& f, KEY key); static bool imponibile_handler(TMask_field& f, KEY key);
static bool detrazione_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 codiva_handler(TMask_field& f, KEY key);
static bool imposta_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 dareavere_handler(TMask_field& f, KEY k);
static bool cg_conto_handler(TMask_field& f, KEY key); static bool cg_conto_handler(TMask_field& f, KEY key);
static bool codpag_handler(TMask_field& f, KEY key); static bool codpag_handler(TMask_field& f, KEY key);
static bool iva_notify(TSheet_field& s, int r, KEY key); static bool iva_notify(TSheet_field& s, 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(TSheet_field& s, int r, KEY key); static bool cg_notify(TSheet_field& s, 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(TSheet_field& s, int r, KEY key); static bool pag_notify(TSheet_field& s, int r, KEY key);
void reset_sheet_row(TSheet_field& s, int n); void reset_sheet_row(TSheet_field& s, int n);
protected: // TApplication protected: // TApplication
virtual void on_firm_change(); virtual void on_firm_change();
virtual void on_config_change(); virtual void on_config_change();
virtual void print(); virtual void print();
protected: // TRelation_application protected: // TRelation_application
virtual bool user_create(); virtual bool user_create();
virtual bool user_destroy(); virtual bool user_destroy();
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 bool save_and_new() const; virtual bool save_and_new() const;
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();
virtual void write_enable(bool) {} virtual void write_enable(bool) {}
protected: protected:
void check_saldi(); void check_saldi();
void genera_incasso(const char* causimm); void genera_incasso(const char* causimm);
TMask* load_mask(int n); TMask* load_mask(int n);
TMask& occas_mask() { return *load_mask(3); } TMask& occas_mask() { return *load_mask(3); }
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 is_saldaconto() const { return _is_saldaconto; } bool is_saldaconto() const { return _is_saldaconto; }
void set_saldaconto(bool b) { _is_saldaconto = b; } void set_saldaconto(bool b) { _is_saldaconto = b; }
void fill_sheet(TMask& m) const; void fill_sheet(TMask& m) const;
void init_mask(TMask& m); void init_mask(TMask& m);
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);
static int bill2pos(const TBill& conto, char tipo); static int bill2pos(const TBill& conto, char tipo);
bool IVA2bill(const TCodiceIVA& iva, TBill& bill); 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;
TBill& ivas_bill(TBill& tc); TBill& ivas_bill(TBill& tc);
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 ivas_pack(); void ivas_pack();
void cgs_pack(); void cgs_pack();
bool ci_sono_importi() const; bool ci_sono_importi() const;
real calcola_saldo() const; real calcola_saldo() const;
real calcola_imp() const; real calcola_imp() const;
void add_cgs_tot(TMask& m); void add_cgs_tot(TMask& m);
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 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);
bool add_cgs_imp(int n, const TImporto& importo); bool add_cgs_imp(int n, const TImporto& importo);
bool sub_cgs_imp(int n, const TImporto& importo); bool sub_cgs_imp(int n, const TImporto& importo);
void disable_cgs_cells(int n, char tipo); void disable_cgs_cells(int n, char tipo);
void add_cgs_rit(bool fisc); void add_cgs_rit(bool fisc);
void generazione_righe_cg(int r); void generazione_righe_cg(int r);
void reset_cgs_row(int n) { reset_sheet_row(cgs(), n); } void reset_cgs_row(int n) { reset_sheet_row(cgs(), n); }
void reset_ivas_row(int n) { reset_sheet_row(ivas(), n); } void reset_ivas_row(int n) { reset_sheet_row(ivas(), n); }
TPagamento& pagamento() { CHECK(_pag, "Pagamento nullo"); return *_pag; } TPagamento& pagamento() { CHECK(_pag, "Pagamento nullo"); return *_pag; }
void set_pagamento(const char* c, const char* d); void set_pagamento(const char* c, const char* d);
void reset_pagamento(); void reset_pagamento();
void set_scadenze(TMask& m); void set_scadenze(TMask& m);
bool read_scadenze(TMask& m); bool read_scadenze(TMask& m);
void write_scadenze(const TMask& m); void write_scadenze(const TMask& m);
bool edit_partite(int riga); bool edit_partite(int riga);
bool notify_cgline_deletion(TPartita& partita, long nreg, int numrig); bool notify_cgline_deletion(TPartita& partita, long nreg, int numrig);
bool notify_cgline_deletion(int numrig); bool notify_cgline_deletion(int numrig);
bool notify_edit_pagamento(TPartita& partita, TRectype& new_pag); bool notify_edit_pagamento(TPartita& partita, TRectype& new_pag);
long calcola_m770(int tipo_coll, real& spese, real& compenso, real& iva, real& ritfis); long calcola_m770(int tipo_coll, real& spese, real& compenso, real& iva, real& ritfis);
bool link_m770(); bool link_m770();
public: public:
TPartite_array& partite() { return _partite; } // Partite editate TPartite_array& partite() { return _partite; } // Partite editate
int nuovo_pagamento(TPartita& p, int nriga, int rata, int rmov); int nuovo_pagamento(TPartita& p, int nriga, int rata, int rmov);
bool edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp); bool edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp);
TSheet_field& cgs() const; TSheet_field& cgs() const;
TSheet_field& ivas() const; TSheet_field& ivas() const;
TSheet_field& pags() const; TSheet_field& pags() const;
TString_array& pag_rows() { return _pag_rows; } TString_array& pag_rows() { return _pag_rows; }
TPrimanota_application(); TPrimanota_application();
}; };
inline TPrimanota_application& app() inline TPrimanota_application& app()
{ return (TPrimanota_application&)main_app(); } { return (TPrimanota_application&)main_app(); }
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -1,387 +1,387 @@
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 ""
HELP "Codice della descrizione aggiuntiva della riga" HELP "Codice della descrizione aggiuntiva della riga"
FLAGS "UZ" FLAGS "UZ"
USE %DPN USE %DPN
INPUT CODTAB 108 INPUT CODTAB 108
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
INPUT CODTAB 108 INPUT CODTAB 108
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 12 2 "" PROMPT 12 2 ""
USE %DPN KEY 2 USE %DPN KEY 2
INPUT S0 109 INPUT S0 109
DISPLAY "Descrizione@50" S0 DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB DISPLAY "Codice" CODTAB
COPY OUTPUT 108 COPY OUTPUT 108
HELP "Descrizione aggiuntiva della riga" HELP "Descrizione aggiuntiva della riga"
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 "
HELP "Importo 'dare' del conto della riga" HELP "Importo 'dare' del conto della riga"
FLAGS "RV" FLAGS "RV"
PICTURE "." PICTURE "."
END END
NUMBER 102 15 NUMBER 102 15
BEGIN BEGIN
PROMPT 42 5 "Avere " PROMPT 42 5 "Avere "
HELP "Importo 'avere' del conto della riga" HELP "Importo 'avere' del conto della riga"
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 "
HELP "Tipo del conto principale della riga" HELP "Tipo del conto principale della riga"
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 "
HELP "Codice del conto delle riga" HELP "Codice del conto delle riga"
END END
NUMBER 105 3 NUMBER 105 3
BEGIN BEGIN
PROMPT 32 6 "Conto " PROMPT 32 6 "Conto "
HELP "Codice del conto delle riga" HELP "Codice del conto delle riga"
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
DISPLAY "Tipo" TMCF DISPLAY "Tipo" TMCF
OUTPUT 103 TMCF OUTPUT 103 TMCF
OUTPUT 104 GRUPPO OUTPUT 104 GRUPPO
OUTPUT 105 CONTO OUTPUT 105 CONTO
OUTPUT 107 DESCR OUTPUT 107 DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
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 "
HELP "Codice del conto delle riga" HELP "Codice del conto delle riga"
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" WARNING "Sottoconto inesistente sulla riga contabile"
END END
NUMBER 206 6 NUMBER 206 6
BEGIN BEGIN
PROMPT 45 6 "Cliente " PROMPT 45 6 "Cliente "
HELP "Codice del cliente delle riga" HELP "Codice del cliente delle riga"
FIELD LF_PCON->SOTTOCONTO FIELD LF_PCON->SOTTOCONTO
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT CODCF 206 INPUT CODCF 206
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 206 CODCF OUTPUT 206 CODCF
OUTPUT 207 RAGSOC OUTPUT 207 RAGSOC
MESSAGE COPY,106 MESSAGE COPY,106
ADD RUN cg0 -1 C ADD RUN cg0 -1 C
CHECKTYPE NORMAL CHECKTYPE NORMAL
WARNING "Cliente inesistente sulla riga contabile" WARNING "Cliente inesistente sulla riga contabile"
END END
NUMBER 306 6 NUMBER 306 6
BEGIN BEGIN
PROMPT 45 6 "Fornitore " PROMPT 45 6 "Fornitore "
HELP "Codice del fornitore delle riga" HELP "Codice del fornitore delle riga"
FIELD LF_PCON->SOTTOCONTO FIELD LF_PCON->SOTTOCONTO
USE LF_CLIFO USE LF_CLIFO
INPUT TIPOCF "F" INPUT TIPOCF "F"
INPUT CODCF 306 INPUT CODCF 306
DISPLAY "Codice" CODCF DISPLAY "Codice" 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 306 CODCF OUTPUT 306 CODCF
OUTPUT 307 RAGSOC OUTPUT 307 RAGSOC
MESSAGE COPY,106 MESSAGE COPY,106
ADD RUN cg0 -1 F ADD RUN cg0 -1 F
MESSAGE COPY,106 MESSAGE COPY,106
CHECKTYPE NORMAL CHECKTYPE NORMAL
WARNING "Fornitore inesistente sulla riga contabile" WARNING "Fornitore inesistente sulla riga contabile"
END END
STRING 107 50 STRING 107 50
BEGIN BEGIN
PROMPT 2 7 "Descriz. " PROMPT 2 7 "Descriz. "
HELP "Descrizione del conto delle riga" HELP "Descrizione del conto delle riga"
FIELD LF_PCON->DESCR FIELD LF_PCON->DESCR
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
COPY OUTPUT 106 COPY OUTPUT 106
CHECKTYPE NORMAL CHECKTYPE NORMAL
WARNING "Sottoconto inesistente o mancante sulla riga contabile" WARNING "Sottoconto inesistente o mancante sulla riga contabile"
ADD RUN cg0 -0 ADD RUN cg0 -0
END END
STRING 207 50 STRING 207 50
BEGIN BEGIN
PROMPT 2 7 "Cliente " PROMPT 2 7 "Cliente "
HELP "Ragione sociale del cliente delle riga" HELP "Ragione sociale del cliente delle riga"
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 207 INPUT RAGSOC 207
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 206 COPY OUTPUT 206
MESSAGE COPY,107 MESSAGE COPY,107
ADD RUN cg0 -1 C ADD RUN cg0 -1 C
CHECKTYPE NORMAL CHECKTYPE NORMAL
WARNING "Cliente inesistente sulla riga contabile" WARNING "Cliente inesistente sulla riga contabile"
END END
STRING 307 50 STRING 307 50
BEGIN BEGIN
PROMPT 2 7 "Fornitore " PROMPT 2 7 "Fornitore "
HELP "Ragione sociale del fonitore delle riga" HELP "Ragione sociale del fonitore delle riga"
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 307 INPUT RAGSOC 307
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 306 COPY OUTPUT 306
MESSAGE COPY,107 MESSAGE COPY,107
ADD RUN cg0 -1 F ADD RUN cg0 -1 F
CHECKTYPE NORMAL CHECKTYPE NORMAL
WARNING "Fornitore inesistente sulla riga contabile" WARNING "Fornitore inesistente sulla riga contabile"
END END
GROUPBOX DLG_NULL 66 4 GROUPBOX DLG_NULL 66 4
BEGIN BEGIN
PROMPT 1 9 "Contropartita" PROMPT 1 9 "Contropartita"
END END
LIST 110 1 12 LIST 110 1 12
BEGIN BEGIN
PROMPT 2 10 "Tipo " PROMPT 2 10 "Tipo "
HELP "Tipo del conto di contropartita della riga" HELP "Tipo del conto di contropartita della riga"
FLAGS "U" FLAGS "U"
ITEM " |Conto" MESSAGE SHOW,113|HIDE,213|HIDE,313|SHOW,114|HIDE,214|HIDE,314 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 "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 ITEM "F|Fornitore" MESSAGE SHOW,313|HIDE,113|HIDE,213|SHOW,314|HIDE,114|HIDE,214
END END
NUMBER 111 3 NUMBER 111 3
BEGIN BEGIN
PROMPT 20 10 "Gruppo " PROMPT 20 10 "Gruppo "
HELP "Codice del conto di contropartita delle riga" HELP "Codice del conto di contropartita delle riga"
END END
NUMBER 112 3 NUMBER 112 3
BEGIN BEGIN
PROMPT 32 10 "Conto " PROMPT 32 10 "Conto "
HELP "Codice del conto di contropartita delle riga" HELP "Codice del conto di contropartita delle riga"
FIELD LF_PCON->CONTO FIELD LF_PCON->CONTO
COPY USE 105 COPY USE 105
INPUT GRUPPO 111 INPUT GRUPPO 111
INPUT CONTO 112 INPUT CONTO 112
COPY DISPLAY 105 COPY DISPLAY 105
OUTPUT 110 TMCF OUTPUT 110 TMCF
OUTPUT 111 GRUPPO OUTPUT 111 GRUPPO
OUTPUT 112 CONTO OUTPUT 112 CONTO
OUTPUT 114 DESCR OUTPUT 114 DESCR
ADD RUN CG0 -0 ADD RUN CG0 -0
MESSAGE DIRTY,113|DIRTY,213|DIRTY,313 MESSAGE DIRTY,113|DIRTY,213|DIRTY,313
CHECKTYPE NORMAL CHECKTYPE NORMAL
VALIDATE REQIF_FUNC 3 113 213 313 VALIDATE REQIF_FUNC 3 113 213 313
END END
NUMBER 113 6 NUMBER 113 6
BEGIN BEGIN
PROMPT 45 10 "Sottoconto " PROMPT 45 10 "Sottoconto "
HELP "Codice del conto di contropartita delle riga" HELP "Codice del conto di contropartita delle riga"
FIELD LF_PCON->SOTTOCONTO FIELD LF_PCON->SOTTOCONTO
COPY USE 106 COPY USE 106
COPY INPUT 112 COPY INPUT 112
INPUT SOTTOCONTO 113 INPUT SOTTOCONTO 113
COPY DISPLAY 106 COPY DISPLAY 106
OUTPUT 113 SOTTOCONTO OUTPUT 113 SOTTOCONTO
OUTPUT 111 GRUPPO OUTPUT 111 GRUPPO
OUTPUT 112 CONTO OUTPUT 112 CONTO
OUTPUT 114 DESCR OUTPUT 114 DESCR
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
NUMBER 213 6 NUMBER 213 6
BEGIN BEGIN
PROMPT 45 10 "Cliente " PROMPT 45 10 "Cliente "
HELP "Codice del cliente di contropartita delle riga" HELP "Codice del cliente di contropartita delle riga"
FIELD LF_CLIFO->CODCF FIELD LF_CLIFO->CODCF
COPY USE 206 COPY USE 206
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT CODCF 213 INPUT CODCF 213
COPY DISPLAY 206 COPY DISPLAY 206
OUTPUT 213 CODCF OUTPUT 213 CODCF
OUTPUT 214 RAGSOC OUTPUT 214 RAGSOC
MESSAGE COPY,113 MESSAGE COPY,113
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
NUMBER 313 6 NUMBER 313 6
BEGIN BEGIN
PROMPT 45 10 "Fornitore " PROMPT 45 10 "Fornitore "
HELP "Codice del fornitore di contropartita delle riga" HELP "Codice del fornitore di contropartita delle riga"
FIELD LF_CLIFO->CODCF FIELD LF_CLIFO->CODCF
COPY USE 306 COPY USE 306
INPUT TIPOCF "F" INPUT TIPOCF "F"
INPUT CODCF 313 INPUT CODCF 313
COPY DISPLAY 306 COPY DISPLAY 306
OUTPUT 313 CODCF OUTPUT 313 CODCF
OUTPUT 314 RAGSOC OUTPUT 314 RAGSOC
MESSAGE COPY,113 MESSAGE COPY,113
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING 114 50 STRING 114 50
BEGIN BEGIN
PROMPT 2 11 "Descriz. " PROMPT 2 11 "Descriz. "
HELP "Descrizione del conto di contropartita delle riga" HELP "Descrizione del conto di contropartita delle riga"
FIELD LF_PCON->DESCR FIELD LF_PCON->DESCR
COPY USE 107 COPY USE 107
INPUT DESCR 114 INPUT DESCR 114
COPY DISPLAY 107 COPY DISPLAY 107
COPY OUTPUT 113 COPY OUTPUT 113
ADD RUN cg0 -0 ADD RUN cg0 -0
WARNING "Conto inesistente sulla riga contabile" WARNING "Conto inesistente sulla riga contabile"
END END
STRING 214 50 STRING 214 50
BEGIN BEGIN
PROMPT 2 11 "Cliente " PROMPT 2 11 "Cliente "
HELP "Ragione sociale del cliente di contropartita delle riga" HELP "Ragione sociale del cliente di contropartita delle riga"
FIELD LF_CLIFO->RAGSOC FIELD LF_CLIFO->RAGSOC
COPY USE 207 COPY USE 207
INPUT TIPOCF "C" INPUT TIPOCF "C"
INPUT RAGSOC 214 INPUT RAGSOC 214
COPY DISPLAY 207 COPY DISPLAY 207
COPY OUTPUT 213 COPY OUTPUT 213
ADD RUN cg0 -1 C ADD RUN cg0 -1 C
CHECKTYPE NORMAL CHECKTYPE NORMAL
WARNING "Cliente inesistente sulla riga contabile" WARNING "Cliente inesistente sulla riga contabile"
END END
STRING 314 50 STRING 314 50
BEGIN BEGIN
PROMPT 2 11 "Fornitore " PROMPT 2 11 "Fornitore "
HELP "Ragione sociale del fornitore di contropartita delle riga" HELP "Ragione sociale del fornitore di contropartita delle riga"
FIELD LF_CLIFO->RAGSOC FIELD LF_CLIFO->RAGSOC
COPY USE 307 COPY USE 307
INPUT TIPOCF "F" INPUT TIPOCF "F"
INPUT RAGSOC 314 INPUT RAGSOC 314
COPY DISPLAY 307 COPY DISPLAY 307
COPY OUTPUT 313 COPY OUTPUT 313
ADD RUN cg0 -1 F ADD RUN cg0 -1 F
CHECKTYPE NORMAL CHECKTYPE NORMAL
WARNING "Fornitore inesistente sulla riga contabile" WARNING "Fornitore inesistente sulla riga contabile"
END END
NUMBER 115 7 NUMBER 115 7
BEGIN BEGIN
PROMPT 2 13 "Riga giornale " PROMPT 2 13 "Riga giornale "
FLAGS "D" FLAGS "D"
END END
LIST 116 20 LIST 116 20
BEGIN BEGIN
PROMPT 30 13 "Tipo riga " PROMPT 30 13 "Tipo riga "
ITEM " |Sola contabilita'" ITEM " |Sola contabilita'"
ITEM "C|Gestione saldaconto" ITEM "C|Gestione saldaconto"
ITEM "D|IVA detraibile" ITEM "D|IVA detraibile"
ITEM "F|Ritenute fiscali" ITEM "F|Ritenute fiscali"
ITEM "I|Riga di IVA" ITEM "I|Riga di IVA"
ITEM "K|Riga Cliente/Fornitore" ITEM "K|Riga Cliente/Fornitore"
ITEM "N|IVA non detraibile" ITEM "N|IVA non detraibile"
ITEM "S|Ritenute sociali" ITEM "S|Ritenute sociali"
ITEM "T|Totale documento" ITEM "T|Totale documento"
FLAGS "D" FLAGS "D"
END END
BUTTON DLG_OK 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -14 -1 "" PROMPT -14 -1 ""
END END
BUTTON DLG_CANCEL 9 2 BUTTON DLG_CANCEL 9 2
BEGIN BEGIN
PROMPT -24 -1 "" PROMPT -24 -1 ""
END END
BUTTON DLG_DELREC 9 2 BUTTON DLG_DELREC 9 2
BEGIN BEGIN
PROMPT -34 -1 "Elimina" PROMPT -34 -1 "Elimina"
MESSAGE EXIT,K_DEL MESSAGE EXIT,K_DEL
END END
BUTTON 100 9 2 BUTTON 100 9 2
BEGIN BEGIN
PROMPT -44 -1 "Partite" PROMPT -44 -1 "Partite"
MESSAGE EXIT,K_DEL MESSAGE EXIT,K_DEL
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

File diff suppressed because it is too large Load Diff

View File

@ -1,347 +1,351 @@
#ifndef __PAGAMENT_H #ifndef __PAGAMENT_H
#define __PAGAMENT_H #define __PAGAMENT_H
#ifndef __ASSOC_H #ifndef __ASSOC_H
#include <assoc.h> #include <assoc.h>
#endif #endif
#ifndef __MSKSHEET_H #ifndef __MSKSHEET_H
#include <msksheet.h> #include <msksheet.h>
#endif #endif
#ifndef __RELATION_H #ifndef __RELATION_H
#include <relation.h> #include <relation.h>
#endif #endif
#ifndef __TABUTIL_H #ifndef __TABUTIL_H
#include <tabutil.h> #include <tabutil.h>
#endif #endif
#ifndef __CONTO_H #ifndef __CONTO_H
#include "conto.h" #include "conto.h"
#endif #endif
// Error codes for pagation // Error codes for pagation
const word P_OK = 0x0000; // ok const word P_OK = 0x0000; // ok
const word P_RSUM = 0x0001; // percentages do not sum up to 100 const word P_RSUM = 0x0001; // percentages do not sum up to 100
const word P_IMPNC = 0x0002; // inconsistenza percentuali / importi const word P_IMPNC = 0x0002; // inconsistenza percentuali / importi
const word P_SCAD = 0x0004; // scadenze non consecutive const word P_SCAD = 0x0004; // scadenze non consecutive
const word P_INIZIO = 0x0008; // data 1a rata < data inizio pagamenti const word P_INIZIO = 0x0008; // data 1a rata < data inizio pagamenti
class TPagamento : public TObject class TPagamento : public TObject
{ {
TString _code; // codice TString _code; // codice
TString _name; // descrizione TString _name; // descrizione
real _imponibile; // imponibile da affettare real _imponibile; // imponibile da affettare
real _imposta; // imposta da affettare real _imposta; // imposta da affettare
real _spese; // spese da affettare real _spese; // spese da affettare
TDistrib _slicer; // affettatrice TDistrib _slicer; // affettatrice
bool _new; // non letto da database bool _new; // non letto da database
TArray _rate; // rate medesime TArray _rate; // rate medesime
char _inscad; // inizio scadenze: S1 char _inscad; // inizio scadenze: S1
bool _mcomm; // mese commerciale: B0 bool _mcomm; // mese commerciale: B0
bool _rdiff; // rate differenziate: B1 bool _rdiff; // rate differenziate: B1
int _tpr; // tipo prima rata: S3 int _tpr; // tipo prima rata: S3
bool _dirty; // modificato (strutturalmente!) bool _dirty; // modificato (strutturalmente!)
TDate _inizio; // data inizio pagamenti TDate _inizio; // data inizio pagamenti
bool _inited; // vero se c'e' un movimento di riferimento bool _inited; // vero se c'e' un movimento di riferimento
real _firstr; // importo da pagare in prima rata (o distribuire se tpr == 0) real _firstr; // importo da pagare in prima rata (o distribuire se tpr == 0)
real _secndr; // importo da distribuire real _secndr; // importo da distribuire
int _fixd[3]; // giorni scadenza fissa, se desiderati int _fixd[3]; // giorni scadenza fissa, se desiderati
int _round; // decimali arrotondamento importo int _round; // decimali arrotondamento importo
int _int_rate; int _int_rate;
int _rata_ifield(int n, int f) const; int _rata_ifield(int n, int f) const;
real _rata_rfield(int n, int f) const; real _rata_rfield(int n, int f) const;
TDate _rata_dfield(int n, int f) const; TDate _rata_dfield(int n, int f) const;
const char* _rata_sfield(int n, int f) const; const char* _rata_sfield(int n, int f) const;
int _def_tpr; // tipo rata default int _def_tpr; // tipo rata default
TString16 _def_ulc; // ulteriore classificazione default TString16 _def_ulc; // ulteriore classificazione default
public: public:
// pregasi notare la straordinaria dovizia di const // pregasi notare la straordinaria dovizia di const
int n_rate() const { return _rate.items(); } int n_rate() const { return _rate.items(); }
bool is_new() const { return _new; } bool is_new() const { return _new; }
bool dirty() const { return _dirty; } bool dirty() const { return _dirty; }
real imponibile() const { return _imponibile; } real imponibile() const { return _imponibile; }
real imposta() const { return _imposta; } real imposta() const { return _imposta; }
real spese() const { return _spese; } real spese() const { return _spese; }
int tipo_rata(int n) const { return _rata_ifield(n,2);} int tipo_rata(int n) const { return _rata_ifield(n,2);}
real perc_rata(int n) const { return _rata_rfield(n,1);} real perc_rata(int n) const { return _rata_rfield(n,1);}
int scad_rata(int n) const { return _rata_ifield(n,0);} int scad_rata(int n) const { return _rata_ifield(n,0);}
TDate data_rata(int n) const { return _rata_dfield(n,3);} TDate data_rata(int n) const { return _rata_dfield(n,3);}
real tpay_rata(int n) const { return _rata_rfield(n,4);} real tpay_rata(int n) const { return _rata_rfield(n,4);}
const char* ulc_rata(int n) const { return _rata_sfield(n,5);} const char* ulc_rata(int n) const { return _rata_sfield(n,5);}
char inizio_scadenza() const { return _inscad; } char inizio_scadenza() const { return _inscad; }
bool mese_commerciale() const { return _mcomm; } bool mese_commerciale() const { return _mcomm; }
bool rate_differenziate() const { return _rdiff; } bool rate_differenziate() const { return _rdiff; }
int tipo_prima_rata() const { return _tpr; } int tipo_prima_rata() const { return _tpr; }
int decs() const { return _round; } int decs() const { return _round; }
// mi scuso per la mancanza di underscore, ma mi piaceva cosi' // mi scuso per la mancanza di underscore, ma mi piaceva cosi'
bool ratapagata(int n); bool ratapagata(int n);
const TString& name() const { return _name; } const TString& name() const { return _name; }
const TString& code() const { return _code; } const TString& code() const { return _code; }
const char* desc_tpr() const; const char* desc_tpr() const;
const char* desc_tipo(int) const; const char* desc_tipo(int) const;
// giorni scadenza fissi, aggiunti poi // giorni scadenza fissi, aggiunti poi
void set_fixed_scad(int a, int ind) { _fixd[ind] = a; } void set_fixed_scad(int a, int ind) { _fixd[ind] = a; }
// queste vengono usate solo per movimenti editabili nella struttura // queste vengono usate solo per movimenti editabili nella struttura
// (da tabella pagamenti) e riaggiustano tutte le rate in accordo // (da tabella pagamenti) e riaggiustano tutte le rate in accordo
// con il parametro modificato // con il parametro modificato
void set_intervallo_rate(int i); void set_intervallo_rate(int i);
void set_mese_commerciale(bool v, int& sscad); void set_mese_commerciale(bool v, int& sscad);
void set_rate_differenziate(int v); void set_rate_differenziate(int v);
void set_tipo_prima_rata(int v, int sscad = -1); void set_tipo_prima_rata(int v, int sscad = -1);
void set_numero_rate(int n, int sscad = -1); void set_numero_rate(int n, int sscad = -1);
void set_inizio_scadenza(char v) { _inscad = v; } void set_inizio_scadenza(char v) { _inscad = v; }
void set_code(const char* c) { _code = c; } void set_code(const char* c) { _code = c; }
void set_round(int n) { _round = n; } void set_round(int n) { _round = n; }
// check consistency: returns word with errors flagged, 0 if ok // check consistency: returns word with errors flagged, 0 if ok
word validate() const; word validate() const;
void strerr(word err, TString& s); void strerr(word err, TString& s);
// read/write from database // read/write from database
// relapp passa i files, se no vengono aperti // relapp passa i files, se no vengono aperti
bool read(TTable* cpg = NULL, TTable* rpg = NULL); bool read(TTable* cpg = NULL, TTable* rpg = NULL);
// chiamabili solo da relapp, agiscono solo su %RPG // chiamabili solo da relapp, agiscono solo su %RPG
int write(TTable& rpg); int write(TTable& rpg);
int rewrite(TTable& rpg); int rewrite(TTable& rpg);
int remove(TTable& rpg); int remove(TTable& rpg);
// modifica rate manualmente o non // modifica rate manualmente o non
TToken_string& rata(int r) { return (TToken_string&)_rate[r]; } TToken_string& rata(int r) { return (TToken_string&)_rate[r]; }
TToken_string& add_rata (real perc, int day, int type, const char* ulc = ""); TToken_string& add_rata (real perc, int day, int type, const char* ulc = "");
TToken_string& set_rata (int index, real perc, int day, int type, TToken_string& set_rata (int index, real perc, int day, int type,
const char* ulc = NULL, const char* imp = NULL, const char* ulc = NULL, const char* imp = NULL,
const char* data = NULL); const char* data = NULL);
// questa calcola percentuali e scadenze a partire dagli importi // questa calcola percentuali e scadenze a partire dagli importi
TToken_string& set_rata (int index, const real& howmuch, const TDate& date, int type, TToken_string& set_rata (int index, const real& howmuch, const TDate& date, int type,
const char* ulc, bool pagato); const char* ulc, bool pagato);
// settano tipo rata e ult. class default per le rate; se bool = TRUE // settano tipo rata e ult. class default per le rate; se bool = TRUE
// modificano anche le eventuali rate esistenti // modificano anche le eventuali rate esistenti
void set_default_type(int type, bool change_existing = TRUE); void set_default_type(int type, bool change_existing = TRUE);
void set_default_ulc(const char* ulc, bool change_existing = TRUE); void set_default_ulc(const char* ulc, bool change_existing = TRUE);
void remove_rata(int r); void remove_rata(int r);
void zap_rate () { _rate.destroy(); } void zap_rate () { _rate.destroy(); }
// calcola le rate automaticamente secondo quanto specificato // calcola le rate automaticamente secondo quanto specificato
void set_rate_auto(); void set_rate_auto();
// data una rata esistente, riaggiusta gli importi usando lo slicer e // data una rata esistente, riaggiusta gli importi usando lo slicer e
// le scadenze usando la data di inizio // le scadenze usando la data di inizio
void set_imprata(int i, real r); void set_imprata(int i, real r);
// slicer interface // slicer interface
void set_total(const real& ib, const real& im, const real& sp); void set_total(const real& ib, const real& im, const real& sp);
// istanzia uno sheet field come diobue comanda // istanzia uno sheet field come diobue comanda
void set_sheet(TSheet_field& sf, int sscad = -1); void set_sheet(TSheet_field& sf, int sscad = -1);
// ricalcola automaticamente tutto il ricalcolabile // ricalcola automaticamente tutto il ricalcolabile
// alla modifica di una percentuale (o di un importo) // alla modifica di una percentuale (o di un importo)
// ritorna TRUE se non si poteva; non occorre che sia inizializzato // ritorna TRUE se non si poteva; non occorre che sia inizializzato
// con un importo // con un importo
word recalc_rate(int row, bool is_perc_modified, const char* new_value, word recalc_rate(int row, bool is_perc_modified, const char* new_value,
const char* scad, const char* typ, int rdiff, const char* scad, const char* typ, int rdiff,
bool mcomm, bool& need_recalc); bool mcomm, bool& need_recalc);
// determina la prossima scadenza // determina la prossima scadenza
void next_scad(TDate& d, int scad, bool mcomm, int rata); void next_scad(TDate& d, int scad, bool mcomm, int rata);
// se codtab non e' NULL legge da file (e da' errore se non c'e') // se codtab non e' NULL legge da file (e da' errore se non c'e')
// se si vuole fare un pagamento nuovo si da' il codice con set_code // se si vuole fare un pagamento nuovo si da' il codice con set_code
TPagamento(const char* codtab = NULL, const char* data = NULL); TPagamento(const char* codtab = NULL, const char* data = NULL);
virtual ~TPagamento() {} virtual ~TPagamento() {}
}; };
#ifndef __PARTITE_H #ifndef __PARTITE_H
#include <partite.h> #include <partite.h>
#endif #endif
class TTree_rectype : public TRectype class TTree_rectype : public TRectype
{ {
protected: protected:
TRecord_array _recarr; TRecord_array _recarr;
void copy_key_to_row(TRectype& row) const; void copy_key_to_row(TRectype& row) const;
int fill_array(); int fill_array();
protected: // TRectype protected: // TRectype
virtual TObject* dup() const; virtual TObject* dup() const;
virtual int read(TBaseisamfile& f, word op = _isequal); virtual int read(TBaseisamfile& f, word op = _isequal);
virtual int next(TBaseisamfile& f); virtual int next(TBaseisamfile& f);
virtual int write(TBaseisamfile& f) const; virtual int write(TBaseisamfile& f) const;
virtual int rewrite(TBaseisamfile& f) const; virtual int rewrite(TBaseisamfile& f) const;
virtual int remove(TBaseisamfile& f); virtual int remove(TBaseisamfile& f);
public: public:
const TRecord_array& rows_array() const { return _recarr; } const TRecord_array& rows_array() const { return _recarr; }
TRecord_array& rows_array() { return _recarr; } TRecord_array& rows_array() { return _recarr; }
const TRectype& row(int r) const { return ((TRecord_array&)_recarr).row(r, FALSE); } const TRectype& row(int r) const { return ((TRecord_array&)_recarr).row(r, FALSE); }
TRectype& row(int r, bool create) { return _recarr.row(r, create); } TRectype& row(int r, bool create) { return _recarr.row(r, create); }
TTree_rectype(const TRectype& testata, const TRectype& riga, const char* num); int last() const { return _recarr.last_row(); }
TTree_rectype(int testata, int riga, const char* num); int pred(int r) const { return _recarr.pred_row(r); }
TTree_rectype(const TTree_rectype& t);
virtual ~TTree_rectype() {} TTree_rectype(const TRectype& testata, const TRectype& riga, const char* num);
}; TTree_rectype(int testata, int riga, const char* num);
TTree_rectype(const TTree_rectype& t);
virtual ~TTree_rectype() {}
class TRiga_scadenze : public TTree_rectype };
{
friend class TPartita;
friend class TRiga_partite; class TRiga_scadenze : public TTree_rectype
{
TRiga_partite* _riga; friend class TPartita;
friend class TRiga_partite;
protected:
char calcola_abbuono(TImporto& abbuono, bool val) const; TRiga_partite* _riga;
TImporto calcola_differenza_cambio(bool update);
protected:
bool modifica_pagamento(const TRectype& new_pag, char calcola_abbuono(TImporto& abbuono, bool val) const;
char& old_ap, TImporto& old_abb, TImporto& old_diffcam, TImporto calcola_differenza_cambio(bool update);
char& new_ap, TImporto& new_abb, TImporto& new_diffcam);
bool modifica_pagamento(const TRectype& new_pag,
protected: // TRecord_tree char& old_ap, TImporto& old_abb, TImporto& old_diffcam,
virtual TObject* dup() const { return new TRiga_scadenze(*this); } char& new_ap, TImporto& new_abb, TImporto& new_diffcam);
public: protected: // TRecord_tree
int pagata() const; // Riga che chiude la rata o 0 se non pagata completamente virtual TObject* dup() const { return new TRiga_scadenze(*this); }
real residuo() const; public:
int pagata() const; // Riga che chiude la rata o 0 se non pagata completamente
bool in_valuta() const;
real residuo() const;
TPartita& partita() const;
TRiga_partite& riga() const { CHECK(_riga, "Riga nulla"); return *_riga; } // Riga partite bool in_valuta() const;
TImporto importo_pagato(bool val) const; TPartita& partita() const;
TImporto importo_da_pagare(bool val) const; TRiga_partite& riga() const { CHECK(_riga, "Riga nulla"); return *_riga; } // Riga partite
TRiga_scadenze(TRiga_partite* riga); TImporto importo_pagato(bool val) const;
TRiga_scadenze(const TRiga_scadenze& s); TImporto importo_da_pagare(bool val) const;
virtual ~TRiga_scadenze() {}
}; TRiga_scadenze(TRiga_partite* riga);
TRiga_scadenze(const TRiga_scadenze& s);
class TRiga_partite : public TTree_rectype virtual ~TRiga_scadenze() {}
{ };
friend class TPartita;
friend class TRiga_scadenze; class TRiga_partite : public TTree_rectype
TPartita* _partita; {
friend class TPartita;
protected: friend class TRiga_scadenze;
bool update(const TRectype& vec, const TRectype& nuo, const char* field); TPartita* _partita;
public: // TTree_rectype protected:
virtual TObject* dup() const { return new TRiga_partite(*this); } bool update(const TRectype& vec, const TRectype& nuo, const char* field);
virtual int read(TBaseisamfile& f, word op); bool update(const TImporto& vec, const TImporto& nuo, const char* sez, const char* val);
public: public: // TTree_rectype
int rate() const { return _recarr.rows(); } virtual TObject* dup() const { return new TRiga_partite(*this); }
TRiga_scadenze& rata(int r) const { return (TRiga_scadenze&)_recarr.row(r); } virtual int read(TBaseisamfile& f, word op);
int ultimo_pagamento(int rata) const; public:
char sezione() const { return get_char("SEZ"); } int rate() const { return _recarr.rows(); }
TRiga_scadenze& rata(int r) const { return (TRiga_scadenze&)_recarr.row(r); }
TPartita& partita() const { CHECK(_partita, "Partita nulla"); return *_partita; }
int ultimo_pagamento(int rata) const;
TRiga_partite(TPartita* game); char sezione() const { return get_char("SEZ"); }
TRiga_partite(const TRiga_partite& r);
virtual ~TRiga_partite() {} TPartita& partita() const { CHECK(_partita, "Partita nulla"); return *_partita; }
};
TRiga_partite(TPartita* game);
class TPartita : public TObject TRiga_partite(const TRiga_partite& r);
{ virtual ~TRiga_partite() {}
TRecord_array _part; };
TRecord_array _unassigned;
class TPartita : public TObject
public: // TObject {
virtual bool ok() const { return _part.rows() > 0; } TRecord_array _part;
TRecord_array _unassigned;
public:
TRiga_partite& riga(int r) const { return (TRiga_partite&)_part.row(r); } public: // TObject
TRiga_partite& nuova_riga() { return (TRiga_partite&)_part.row(last()+1, TRUE); } virtual bool ok() const { return _part.rows() > 0; }
int succ(int r) const { return _part.succ_row(r); } public:
int pred(int r) const { return _part.pred_row(r); } TRiga_partite& riga(int r) const { return (TRiga_partite&)_part.row(r); }
int first() const { return _part.first_row(); } TRiga_partite& nuova_riga() { return (TRiga_partite&)_part.row(last()+1, TRUE); }
int last() const { return _part.last_row(); }
int succ(int r) const { return _part.succ_row(r); }
bool reread(); int pred(int r) const { return _part.pred_row(r); }
bool read(const TBill& clifo, int anno, const char* num); int first() const { return _part.first_row(); }
bool write(bool re = FALSE); int last() const { return _part.last_row(); }
bool rewrite() { return write(TRUE); }
bool reread();
int mov2rig(long nreg, int rmov) const; bool read(const TBill& clifo, int anno, const char* num);
int rig2mov(int rmov) const; bool write(bool re = FALSE);
int prima_fattura() const; bool rewrite() { return write(TRUE); }
bool utilizzata(int r) const; // Controlla se esistono pagamenti sommati alla riga r
int mov2rig(long nreg, int rmov) const;
void conto(TBill& c) const { c.get(_part.key()); } int rig2mov(int rmov) const;
int anno() const { return _part.key().get_int(PART_ANNO); } int prima_fattura() const;
const TString& numero() const { return _part.key().get(PART_NUMPART); } bool utilizzata(int r) const; // Controlla se esistono pagamenti sommati alla riga r
const TString& descrizione() const { return _part.key().get(PART_DESCR); }
void conto(TBill& c) const { c.get(_part.key()); }
TImporto importo_speso(long numreg, int numrig) const; int anno() const { return _part.key().get_int(PART_ANNO); }
void update_reg_num(long nreg, const TRectype& mov); const TString& numero() const { return _part.key().get(PART_NUMPART); }
void calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp) const; const TString& descrizione() const { return _part.key().get(PART_DESCR); }
bool modifica_pagamento(const TRectype& new_pag, TImporto importo_speso(long numreg, int numrig) const;
char& old_ap, TImporto& old_abb, TImporto& old_diffcam, void update_reg_num(long nreg, const TRectype& mov);
char& new_ap, TImporto& new_abb, TImporto& new_diffcam); void calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp) const;
TPartita(const TBill& clifo, int anno, const char* num); bool modifica_pagamento(const TRectype& new_pag,
TPartita(); char& old_ap, TImporto& old_abb, TImporto& old_diffcam,
}; char& new_ap, TImporto& new_abb, TImporto& new_diffcam);
TPartita(const TBill& clifo, int anno, const char* num);
class TPartite_array : private TAssoc_array TPartita();
{ };
TString80 _key; // Work string
protected: class TPartite_array : private TAssoc_array
const TString& key(const TBill& clifo, int anno, const char* num); // Build key for TAssoc_array {
TPartita* find(const TBill& clifo, int anno, const char* numero, bool create); TString80 _key; // Work string
TPartita* find(const TRectype& part, bool create);
protected:
public: // TAssoc_array const TString& key(const TBill& clifo, int anno, const char* num); // Build key for TAssoc_array
virtual void destroy() { TAssoc_array::destroy(); } TPartita* find(const TBill& clifo, int anno, const char* numero, bool create);
TPartita* find(const TRectype& part, bool create);
public:
TPartita& partita(const TBill& clifo, int anno, const char* numero); public: // TAssoc_array
TPartita& partita(const TRectype& r); virtual void destroy() { TAssoc_array::destroy(); }
TPartita* exist(const TBill& clifo, int anno, const char* numero) const public:
{ return ((TPartite_array*)this)->find(clifo, anno, numero, FALSE); } TPartita& partita(const TBill& clifo, int anno, const char* numero);
TPartita& partita(const TRectype& r);
TPartita* exist(const TRectype& part) const
{ return ((TPartite_array*)this)->find(part, FALSE); } TPartita* exist(const TBill& clifo, int anno, const char* numero) const
{ return ((TPartite_array*)this)->find(clifo, anno, numero, FALSE); }
bool write(bool re = FALSE);
bool rewrite() { return write(TRUE); } TPartita* exist(const TRectype& part) const
{ return ((TPartite_array*)this)->find(part, FALSE); }
int add_reg_num(long numreg, int numrig);
TImporto importo_speso(long numreg, int numrig); bool write(bool re = FALSE);
void update_reg_num(long nreg, const TRectype& mov); bool rewrite() { return write(TRUE); }
TPartita* first() { restart(); return next(); } int add_reg_num(long numreg, int numrig);
TPartita* next() { return (TPartita*)get(); } TImporto importo_speso(long numreg, int numrig);
void update_reg_num(long nreg, const TRectype& mov);
TPartite_array() {}
virtual ~TPartite_array() {} TPartita* first() { restart(); return next(); }
}; TPartita* next() { return (TPartita*)get(); }
#endif TPartite_array() {}
virtual ~TPartite_array() {}
};
#endif