Correzioni al programma causali (cg05*) stampa registri (cg44*) e chiusura

conti (cg46*).


git-svn-id: svn://10.65.10.50/trunk@185 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1994-09-08 10:11:19 +00:00
parent c48cfadb7d
commit c4c3f7bae3
11 changed files with 2147 additions and 2227 deletions

View File

@ -185,6 +185,8 @@ typedef enum { acquisto, vendita, incasso_pagamento,
int _mode; // Modo maschera corrente int _mode; // Modo maschera corrente
int _items; int _items;
// Bitarray delle righe lette da file all'inizio.
// Quando leggo dal file la riga n setto il bit n.
TBit_array _righe_gia_presenti; TBit_array _righe_gia_presenti;
void togli_dal_file(const TString&); void togli_dal_file(const TString&);
@ -833,23 +835,23 @@ bool CG0500_application::descr2array(TMask& m, bool fromHandler)
void CG0500_application::togli_dal_file(const TString& cau) void CG0500_application::togli_dal_file(const TString& cau)
{ {
long i;
TLocalisamfile *rcaus = _rel->lfile(LF_RCAUSALI); TLocalisamfile *rcaus = _rel->lfile(LF_RCAUSALI);
const long start = _righe_gia_presenti.first_one(); long last = _righe_gia_presenti.last_one();
const long last = _righe_gia_presenti.last_one(); long start = _righe_gia_presenti.first_one();
if (start > 0L) for (i=start; i<=last; i++)
for (long i=start; i<=last; i++) {
if (_righe_gia_presenti[i])
{ {
if (_righe_gia_presenti[i]) rcaus->zero();
{ rcaus->put(RCA_CODCAUS,cau);
rcaus->zero(); rcaus->put(RCA_NRIGA, i);
rcaus->put(RCA_CODCAUS,cau); // if (rcaus->read() == NOERR)
rcaus->put(RCA_NRIGA, i); rcaus->remove();
if (rcaus->read() == NOERR) _righe_gia_presenti.reset(i);
rcaus->remove();
_righe_gia_presenti.reset(i);
}
} }
}
} }
int CG0500_application::write(const TMask& m) int CG0500_application::write(const TMask& m)
@ -867,6 +869,7 @@ int CG0500_application::re_write(const TMask& m,bool rewrite)
const TString16 cau(m.get(F_COD_CAUS)); const TString16 cau(m.get(F_COD_CAUS));
TString80 desc; TString80 desc;
TString16 coddesc; TString16 coddesc;
TLocalisamfile *caus = _rel->lfile(LF_CAUSALI);
TLocalisamfile *rcaus = _rel->lfile(LF_RCAUSALI); TLocalisamfile *rcaus = _rel->lfile(LF_RCAUSALI);
m.autosave(_rel); m.autosave(_rel);
@ -878,8 +881,7 @@ int CG0500_application::re_write(const TMask& m,bool rewrite)
for (int i = 0; i < _items; i++) for (int i = 0; i < _items; i++)
{ {
TToken_string &riga = cs.row(i); TToken_string &riga = cs.row(i);
if (riga.empty_items()) if (riga.empty_items()) continue;
continue;
desc = riga.get(0); desc = riga.get(0);
const char tipo_cf = riga.get_char(); const char tipo_cf = riga.get_char();
@ -895,7 +897,7 @@ int CG0500_application::re_write(const TMask& m,bool rewrite)
{ {
rcaus->zero(); rcaus->zero();
rcaus->put (RCA_CODCAUS, (const char *)cau); rcaus->put (RCA_CODCAUS, (const char *)cau);
rcaus->put (RCA_NRIGA, i+1); // Numerare da uno! rcaus->put (RCA_NRIGA, i+1); // Numerare da uno!
rcaus->put (RCA_GRUPPO , g); rcaus->put (RCA_GRUPPO , g);
rcaus->put (RCA_CONTO , c); rcaus->put (RCA_CONTO , c);
rcaus->put (RCA_SOTTOCONTO, s); rcaus->put (RCA_SOTTOCONTO, s);
@ -903,28 +905,27 @@ int CG0500_application::re_write(const TMask& m,bool rewrite)
rcaus->put (RCA_DESC , (const char *)desc); rcaus->put (RCA_DESC , (const char *)desc);
rcaus->put (RCA_CODDESC, (const char *)coddesc); rcaus->put (RCA_CODDESC, (const char *)coddesc);
rcaus->put (RCA_TIPOCF, tipo_cf); rcaus->put (RCA_TIPOCF, tipo_cf);
if (rewrite) if (rewrite) {
{ if (_righe_gia_presenti[i+1]) {
if (_righe_gia_presenti[i+1]) // bitarray delle righe lette da file all'inizio
{
rcaus->rewrite(); rcaus->rewrite();
_righe_gia_presenti.reset(i+1); _righe_gia_presenti.reset(i+1);
} }
else else
rcaus->write(); rcaus->write();
} }
else else
rcaus->write(); rcaus->write();
} }
} }
if (rewrite) if (rewrite)
{ {
togli_dal_file(cau); // Elimina dal file le righe rimaste nel bitarray togli_dal_file(cau); // Elimina dal file le righe rimaste nel bitarray
return _rel->rewrite(); // return _rel->rewrite();
return caus->rewrite();
} }
else else
return _rel->write(); return caus->write();
} }

View File

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

View File

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

@ -2,7 +2,6 @@
#include <tabutil.h> #include <tabutil.h>
#include "cg0501.h" #include "cg0501.h"
#include "cg0500.h"
#include <causali.h> #include <causali.h>
@ -15,6 +14,7 @@ const char* iva2name(TipoIVA iva)
case nessuna_iva : i = "Nessuna IVA"; break; case nessuna_iva : i = "Nessuna IVA"; break;
case iva_acquisti: i = "IVA Acquisti"; break; case iva_acquisti: i = "IVA Acquisti"; break;
case iva_vendite : i = "IVA Vendite"; break; case iva_vendite : i = "IVA Vendite"; break;
case iva_generica: i = "IVA Generica"; break;
default : i = "IVA ERRATA!"; break; default : i = "IVA ERRATA!"; break;
} }
@ -41,23 +41,27 @@ bool TRegistro::read(const char* cod, int year)
int err = ~NOERR; int err = ~NOERR;
TTable reg("REG");
if (cod && *cod > ' ') if (cod && *cod > ' ')
{ {
TTable reg("REG");
TString16 chiave; TString16 chiave;
chiave << year << cod; chiave << year << cod;
reg.put("CODTAB", chiave); reg.put("CODTAB", chiave);
err = reg.read(); err = reg.read();
if (err == NOERR)
_rec = reg.curr();
} }
_rec = reg.curr();
if (_att.ok()) if (_att.ok())
_att.zero(); _att.zero();
if (err != NOERR && _rec.ok()) if (err != NOERR)
_rec.zero(); _rec.zero();
return err == NOERR; return err == NOERR;
} }
int TRegistro::year() const
{ return ok() ? atoi(_rec.get("CODTAB")) : 0; }
TRegistro& TRegistro::operator =(const TRegistro& r) TRegistro& TRegistro::operator =(const TRegistro& r)
@ -68,16 +72,17 @@ TRegistro& TRegistro::operator =(const TRegistro& r)
} }
bool TRegistro::corrisp() const int TRegistro::tipo() const
{ {
const bool t = _rec.ok() ? _rec.get_bool("B0") : FALSE; const int t = ok() ? _rec.get_int("I0") : 0;
return t; return t;
} }
int TRegistro::tipo() const
bool TRegistro::corrispettivi() const
{ {
const int t = _rec.ok() ? _rec.get_int("I0") : 0; const bool c = ok() ? _rec.get_bool("B0") : FALSE;
return t; return c;
} }
@ -86,8 +91,8 @@ TipoIVA TRegistro::iva() const
TipoIVA i = (TipoIVA)tipo(); TipoIVA i = (TipoIVA)tipo();
if (i != nessuna_iva && i != iva_vendite && i != iva_acquisti) if (i != nessuna_iva && i != iva_vendite && i != iva_acquisti)
{ {
error_box("Il registro '%s' non e' un registro iva, tipo: %d", error_box("Il registro '%s' non e' un registro IVA o contabile: tipo %d",
(const char*)_rec.get("CODTAB"), i); (const char*)name(), i);
i = nessuna_iva; i = nessuna_iva;
} }
return i; return i;
@ -98,12 +103,11 @@ bool TRegistro::read_att()
if (!_att.empty()) if (!_att.empty())
return TRUE; return TRUE;
TLocalisamfile attivita(LF_ATTIV); TLocalisamfile attiv(LF_ATTIV);
attivita.put("CODDITTA", MainApp()->get_firm()); attiv.put("CODDITTA", MainApp()->get_firm());
const char* a = _rec.get("S8"); attiv.put("CODATT", attivita());
attivita.put("CODATT", a); const int err = attiv.read();
const int err = attivita.read(); _att = attiv.curr();
_att = attivita.curr();
if (err != NOERR) if (err != NOERR)
_att.zero(); _att.zero();
@ -143,7 +147,6 @@ bool TRegistro::update(long protiva, const TDate& datareg)
_rec.put("D2", datareg); _rec.put("D2", datareg);
updated = FALSE; updated = FALSE;
} }
if (!updated) if (!updated)
{ {
TTable reg("REG"); TTable reg("REG");
@ -166,12 +169,12 @@ bool TLibro_giornale::read(int y)
y = oggi.year(); y = oggi.year();
} }
if (ok() && y == year()) return TRUE; // Gia' letto!
TTable reg("REG"); TTable reg("REG");
bool found = FALSE; bool found = FALSE;
char anno[8]; sprintf(anno, "%4d", y); TString16 anno; anno.format("%-4d", y);
reg.setkey(1);
reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y
for (int err = reg.read(_isgteq); err == NOERR; err = reg.next()) for (int err = reg.read(_isgteq); err == NOERR; err = reg.next())
@ -205,6 +208,7 @@ TCausale::TCausale(const char* cod, int year)
if (*cod) read(cod, year); if (*cod) read(cod, year);
} }
// Legge le righe della causale attualmente selezionata sulla maschera // Legge le righe della causale attualmente selezionata sulla maschera
bool TCausale::read(const char* cod, int year) bool TCausale::read(const char* cod, int year)
{ {
@ -242,8 +246,11 @@ bool TCausale::read(const char* cod, int year)
for (int riga = 1; riga < size(); riga++) // Fill gaps for (int riga = 1; riga < size(); riga++) // Fill gaps
if (objptr(riga) == NULL) add(rcaus.curr(), riga); if (objptr(riga) == NULL) add(rcaus.curr(), riga);
if (year > 0) TString16 codreg(caus.get("REG"));
_reg.read(caus.get("REG"), year); // Read register const bool ok = _reg.read(codreg, year); // Read register
if (!ok && codreg.not_empty())
return error_box("Non esiste il registro '%s' per l'anno %d",
(const char*)codreg, year);
} }
else else
{ {
@ -251,12 +258,9 @@ bool TCausale::read(const char* cod, int year)
_reg.read("", year); _reg.read("", year);
} }
return TRUE; return TRUE;
} }
const TRectype& TCausale::row(int num) const const TRectype& TCausale::row(int num) const
{ {
const TRectype* rec = (const TRectype*)objptr(num); const TRectype* rec = (const TRectype*)objptr(num);
@ -294,6 +298,11 @@ bool TCausale::intra() const
bool TCausale::corrval() const bool TCausale::corrval() const
{ return _rec.ok() ? _rec.get_bool("VALINTRA") : FALSE; } { return _rec.ok() ? _rec.get_bool("VALINTRA") : FALSE; }
int TCausale::tipo_mov() const
{ return _rec.ok() ? _rec.get_int("TIPOMOV") : -1; }
const char* TCausale::cod_reg() const
{ return _rec.ok() ? _rec.get("REG") : ""; }
const char* TCausale::causale_inc_imm() const const char* TCausale::causale_inc_imm() const
{ return _rec.ok() ? _rec.get("CODCAUSIM") : ""; } { return _rec.ok() ? _rec.get("CODCAUSIM") : ""; }
@ -302,6 +311,12 @@ const char* TCausale::tipo_doc() const
{ return _rec.ok() ? _rec.get("TIPODOC") : ""; } { return _rec.ok() ? _rec.get("TIPODOC") : ""; }
bool TCausale::puramentecontabile() const
{
const char * codreg = cod_reg();
return ((codreg == NULL || *codreg == '\0') && tipo_mov() == 0);
}
TipoIVA TCausale::iva() const TipoIVA TCausale::iva() const
{ {
if (_iva == iva_errata) if (_iva == iva_errata)
@ -318,7 +333,7 @@ TipoIVA TCausale::iva() const
if (tpd.read() == NOERR) if (tpd.read() == NOERR)
{ {
i = (TipoIVA)tpd.get_int("I0"); // IVA acquisti, vendite, generica i = (TipoIVA)tpd.get_int("I0"); // IVA acquisti, vendite, generica
if (i != iva_vendite && i != iva_acquisti) if (i == iva_generica)
i = _reg.iva(); i = _reg.iva();
} }
} }
@ -336,3 +351,27 @@ bool TCausale::similar(const TCausale& c) const
valuta() == c.valuta() && valuta() == c.valuta() &&
intra() == c.intra(); intra() == c.intra();
} }
///////////////////////////////////////////////////////////
// Codice IVA
///////////////////////////////////////////////////////////
TCodiceIVA::TCodiceIVA(const char* cod) : TRectype(LF_TABCOM)
{
read(cod);
}
bool TCodiceIVA::read(const char* cod)
{
int err = ~NOERR;
TTable iva("%IVA");
if (cod && *cod)
{
iva.setkey(1);
iva.put("CODTAB", cod);
err = iva.read();
}
TRectype::operator=(iva.curr());
if (err != NOERR) zero();
return err == NOERR;
}

View File

@ -34,12 +34,15 @@ public:
virtual bool ok() const { return !_rec.empty(); } virtual bool ok() const { return !_rec.empty(); }
bool corrisp() const;
int tipo() const; int tipo() const;
TipoIVA iva() const; TipoIVA iva() const;
const char* name() const { return _rec.get("CODTAB").mid(4); } bool corrispettivi() const;
int year() const { return _rec.get_int("CODTAB"); } const TString& name() const { return _rec.get("CODTAB").mid(4); }
int year() const;
TDate last_reg() const { return _rec.get_date("D2"); }
TDate last_print() const { return _rec.get_date("D3"); } TDate last_print() const { return _rec.get_date("D3"); }
long protocol() const { return _rec.get_long("I5"); }
const TString& attivita() const { return _rec.get("S8"); }
bool agenzia_viaggi(); bool agenzia_viaggi();
const TString& tipo_attivita(); const TString& tipo_attivita();
@ -79,8 +82,11 @@ public:
bool valuta() const; bool valuta() const;
bool intra() const; bool intra() const;
bool corrval() const; bool corrval() const;
bool puramentecontabile() const;
const char* causale_inc_imm() const; const char* causale_inc_imm() const;
const char* tipo_doc() const; const char* tipo_doc() const;
const char* cod_reg() const;
int tipo_mov() const;
TRegistro& reg() { return _reg; } TRegistro& reg() { return _reg; }
TipoIVA iva() const; TipoIVA iva() const;
@ -88,10 +94,21 @@ public:
virtual bool ok() const { return !_rec.empty(); } virtual bool ok() const { return !_rec.empty(); }
bool similar(const TCausale& c) const; bool similar(const TCausale& c) const;
bool read(const char* code, int year); bool read(const char* cod, int year);
TCausale(const char* code = "", int year = 0); TCausale(const char* code = "", int year = 0);
virtual ~TCausale() {} 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"); }
};
#endif #endif

View File

@ -6,22 +6,21 @@
static TString256 TMP; static TString256 TMP;
CG4400_application * app() { return (CG4400_application*) MainApp(); } HIDDEN CG4400_application * app() { return (CG4400_application*) MainApp(); }
bool filter_func (const TRelation * r) bool filter_func (const TRelation * r)
{ {
TLocalisamfile * mov = r->lfile(LF_MOV); TLocalisamfile * mov = r->lfile(LF_MOV);
TString codreg = mov->get(MOV_REG); TString codreg = mov->get(MOV_REG);
long annoes = mov->get_long(MOV_ANNOES); TDate datareg = mov->get_date(MOV_DATAREG);
int annoiva = mov->get_int(MOV_ANNOIVA);
if (codreg != app()->_codreg || annoes != app()->_annoes) if (codreg != (app()->_codreg) || annoiva != (app()->_annoes))
return FALSE; return FALSE;
if (app()->_data_da.string() != "" && app()->_data_a.string() != "")
//Non puo' essere che _tipo_reg sia diverso da 1 o 2, nel caso di stampa tutti i registri ! if ( (datareg < app()->_data_da || datareg > app()->_data_a ) || (!datareg.ok()) )
//if (app()->_stampa_tutti_i_registri) return FALSE;
// if ( (app()->_tipo_reg != 1) && (app()->_tipo_reg != 2) )
// return FALSE;
return TRUE; return TRUE;
} }
@ -154,7 +153,8 @@ bool mask_cod (TMask_field& f, KEY k)
TString codtab; TString codtab;
int anno; int anno;
if ( (k == K_TAB) && f.mask().is_running() ) //if ( (k == K_TAB) && f.mask().is_running() )
if ( (k == K_SPACE)||(k == K_TAB) )
{ {
TString codlib = f.mask().get(CODICE_LIB_UN); TString codlib = f.mask().get(CODICE_LIB_UN);
anno = f.mask().get_int(ANNO); anno = f.mask().get_int(ANNO);
@ -173,74 +173,93 @@ bool mask_cod (TMask_field& f, KEY k)
return TRUE; return TRUE;
} }
bool mask_fino_a_mese (TMask_field& f, KEY k) bool mask_data (TMask_field& f, KEY k)
{ {
//if ( (k == K_TAB) && f.mask().is_running() ) const short id = f.dlg();
if (k == K_ENTER) if (k == K_ENTER)
{ {
TTable TabReg ("REG"); int anno = f.mask().get_int(ANNO);
TString16 codtab; TDate data = f.mask().get(id);
int giorni_del_mese; if (data.ok())
TString codreg = f.mask().get(CODICE_LIBRO); if (data.year() != anno)
int tipo = f.mask().get_int(TIPO_STAMPA);
int anno = f.mask().get_int(ANNO);
if ( (tipo == 1) || (tipo == 4) )
{
int fino_a_mese = f.mask().get_int(FINO_A_MESE);
if (fino_a_mese == 12)
giorni_del_mese = 31;
else
{ {
TDate primo = format("01/%02d/%4d", fino_a_mese+1, anno); f.warning_box("L'anno delle date limite deve essere uguale all'anno iva specificato");
--primo; return FALSE;
giorni_del_mese = primo.day(); }
} }
TDate datasup = format("%02d/%02d/%4d",giorni_del_mese,fino_a_mese,anno);
if (codreg != "")
{
TabReg.zero();
codtab << anno << codreg;
TabReg.put ("CODTAB", codtab);
TabReg.read();
if ( TabReg.good() )
{
TDate data = TabReg.get_date("D3");
if (datasup < data)
{
TString16 datas = format("%02d/%4d", data.month(), data.year());
f.warning_box ("La data specificata non deve essere inferiore al %s (ultima data di stampa specificata sul registro)", (const char*)datas);
return FALSE;
}
}
}
if (tipo == 4)
{
TabReg.zero();
TabReg.put ("CODTAB", anno);
TRectype r (TabReg.curr());
TabReg.read(_isgteq);
for (; !TabReg.eof(); TabReg.next())
{
if (TabReg.curr() != r) break;
int tiporeg = TabReg.get_int("I0");
if (tiporeg == 5) //libro giornale
{
TDate data = TabReg.get_date("D3");
if (datasup > data)
{
TString16 datas = format("%02d/%4d", data.month(), data.year());
f.warning_box ("La data specificata non deve essere superiore al %s (ultima data di stampa del libro giornale)", (const char*)datas);
return FALSE;
}
}
}
}
}
}
return TRUE; return TRUE;
} }
/*
bool mask_fino_a_mese (TMask_field& f, KEY k)
{
if (k == K_ENTER)
{
TTable TabReg ("REG");
TString16 codtab;
int giorni_del_mese;
TString codreg = f.mask().get(CODICE_LIBRO);
int tipo = f.mask().get_int(TIPO_STAMPA);
int anno = f.mask().get_int(ANNO);
if ( (tipo == 1) || (tipo == 4) )
{
int fino_a_mese = f.mask().get_int(FINO_A_MESE);
if (fino_a_mese == 12)
giorni_del_mese = 31;
else
{
TDate primo = format("01/%02d/%4d", fino_a_mese+1, anno);
--primo;
giorni_del_mese = primo.day();
}
TDate datasup = format("%02d/%02d/%4d",giorni_del_mese,fino_a_mese,anno);
if (codreg != "")
{
TabReg.zero();
codtab << anno << codreg;
TabReg.put ("CODTAB", codtab);
TabReg.read();
if ( TabReg.good() )
{
TDate data = TabReg.get_date("D3");
if (datasup < data)
{
TString16 datas = format("%02d/%4d", data.month(), data.year());
f.warning_box ("La data specificata non deve essere inferiore al %s (ultima data di stampa specificata sul registro)", (const char*)datas);
return FALSE;
}
}
}
if (tipo == 4)
{
TabReg.zero();
TabReg.put ("CODTAB", anno);
TRectype r (TabReg.curr());
TabReg.read(_isgteq);
for (; !TabReg.eof(); TabReg.next())
{
if (TabReg.curr() != r) break;
int tiporeg = TabReg.get_int("I0");
if (tiporeg == 5) //libro giornale
{
TDate data = TabReg.get_date("D3");
if (datasup > data)
{
TString16 datas = format("%02d/%4d", data.month(), data.year());
f.warning_box ("La data specificata non deve essere superiore al %s (ultima data di stampa del libro giornale)", (const char*)datas);
return FALSE;
}
}
}
}
}
}
return TRUE;
}
*/
//da una SHEET non e' possibile mandare messaggi nella maschera!!! //da una SHEET non e' possibile mandare messaggi nella maschera!!!
HIDDEN bool my_handler (TMask_field& f, KEY k) HIDDEN bool my_handler (TMask_field& f, KEY k)
@ -387,6 +406,8 @@ void CG4400_application::user_create()
_tabreg = new TTable("REG"); _tabreg = new TTable("REG");
_tablbu = new TTable("%LBU"); _tablbu = new TTable("%LBU");
_tabinl = new TTable("%INL"); _tabinl = new TTable("%INL");
_tablim = new TTable("LIM");
_tabpim = new TTable("PIM");
_clifo = new TLocalisamfile(LF_CLIFO); _clifo = new TLocalisamfile(LF_CLIFO);
_occas = new TLocalisamfile(LF_OCCAS); _occas = new TLocalisamfile(LF_OCCAS);
_rel = new TRelation (LF_MOV); _rel = new TRelation (LF_MOV);
@ -518,8 +539,9 @@ bool CG4400_application::controlla_liquidazione()
{ {
TTable lim ("LIM"); TTable lim ("LIM");
TTable pim ("PIM"); TTable pim ("PIM");
TString mesi_ric, mesi_cal; TString16 mesi_ric = "";
TString chiave; TString16 mesi_cal = "";
TString16 chiave = "";
int i; int i;
if (lim.empty()) if (lim.empty())
@ -846,50 +868,41 @@ void CG4400_application::set_page_tot_reg()
} }
} }
bool CG4400_application::compila_reg() bool CG4400_application::compila_reg(const TMask& m)
{ {
byte tipo;
int anno; int anno;
long codditta = _nditte->get_long("CODDITTA"); long codditta = _nditte->get_long("CODDITTA");
_codtab = ""; TString16 codtab = "";
_tipo_stampa = m.get_int(TIPO_STAMPA);
if (_tipo_stampa == 2) //stampa su libro unico di studio
_codreg = m.get(CODICE_LIBRO_IVA);
else if (_tipo_stampa == 3) //stampa di prova
_codreg = m.get(CODICE_LIBRO_PROVA);
else _codreg = m.get(CODICE_LIBRO);
if (_codreg.trim().empty()) if (_codreg.trim().empty())
{ {
_stampa_tutti_i_registri = TRUE; _stampa_tutti_i_registri = TRUE;
for (_tabreg->first(); !_tabreg->eof(); _tabreg->next()) _tabreg->first();
if (!_tabreg->eof())
{ {
_codtab = _tabreg->get("CODTAB"); codtab = _tabreg->get("CODTAB");
tipo = _tabreg->get_int("I0"); anno = atoi(codtab.mid(0,4));
anno = atoi(_codtab.mid(0,4));
if (anno > _annoes) if (anno > _annoes)
{ {
warning_box("Non esistono registri IVA della Ditta %ld per l'anno %d", warning_box("Non esistono registri IVA della Ditta %ld per l'anno %d",
codditta, _annoes); codditta, _annoes);
return FALSE; return FALSE;
}
if (anno == _annoes)
{
if ( tipo == 1 || tipo == 2 ) //registro iva
{
_codreg = _codtab.mid(4,3);
_tipo_reg = _tabreg->get_int("I0");
_pagine_stampate = _tabreg->get_int("I1");
_data_da = _tabreg->get_date ("D3");
_codatt = _tabreg->get("S8");
_attivita = desc_attivita(_codatt);
_desc_lib = _tabreg->get ("S0");
break;
}
else continue;
} }
} }
} }
else // stampa un solo registro else // stampa un solo registro
{ {
_stampa_tutti_i_registri = FALSE; _stampa_tutti_i_registri = FALSE;
_codtab << _annoes << _codreg; codtab << _annoes << _codreg;
_tabreg->zero(); _tabreg->zero();
_tabreg->put("CODTAB", _codtab); _tabreg->put("CODTAB", codtab);
if (_tabreg->read() == NOERR) if (_tabreg->read() == NOERR)
{ {
_tipo_reg = _tabreg->get_int("I0"); _tipo_reg = _tabreg->get_int("I0");
@ -899,21 +912,54 @@ bool CG4400_application::compila_reg()
//_nprog_da = tab_reg.get_long ("I6"); //_nprog_da = tab_reg.get_long ("I6");
//_tot_dare = tab_reg.get_real ("R1") //_tot_dare = tab_reg.get_real ("R1")
//_tot_avere = tab_reg.get_real ("R2"); //_tot_avere = tab_reg.get_real ("R2");
_data_da = _tabreg->get_date ("D3"); if (_tipo_stampa != 3)
_data_da = _tabreg->get_date ("D3");
if ( _tipo_stampa == 1 || _tipo_stampa == 4 )
if ( _data_a < _data_da)
{
TString16 datas = format("%02d/%4d", _data_da.month(), _data_da.year());
warning_box ("La data specificata non deve essere inferiore al %s (ultima data di stampa specificata sul registro)", (const char*)datas);
return FALSE;
}
//_stampa_intesta = _tabreg->get_bool ("B9"); //_stampa_intesta = _tabreg->get_bool ("B9");
_codatt = _tabreg->get("S8"); _codatt = _tabreg->get("S8");
_attivita = desc_attivita(_codatt); _attivita = desc_attivita(_codatt);
_desc_lib = _tabreg->get ("S0"); _desc_lib = _tabreg->get ("S0");
return TRUE;
} }
else else
{ {
warning_box("Il registro IVA specificato non esiste nella \n Ditta %ld", codditta, _annoes); warning_box("Il registro IVA specificato non esiste nella \n Ditta %ld", codditta);
return FALSE; return FALSE;
} }
} }
return TRUE;;
if (_tipo_stampa == 4)
{
TString app(4);
_tabreg->zero();
app = format("%04d", _annoes);
_tabreg->put ("CODTAB", app);
TRectype r (_tabreg->curr());
_tabreg->read(_isgteq);
for (; !_tabreg->eof(); _tabreg->next())
{
if (_tabreg->curr() != r) break;
int tiporeg = _tabreg->get_int("I0");
if (tiporeg == 5) //libro giornale
{
TDate data = _tabreg->get_date("D3");
if (_data_a > data)
{
TString16 datas = format("%02d/%4d", data.month(), data.year());
warning_box ("La data specificata non deve essere superiore al %s (ultima data di stampa del libro giornale)", (const char*)datas);
return FALSE;
}
}
}
}
return TRUE;
} }
bool CG4400_application::compila_lib() bool CG4400_application::compila_lib()
@ -943,7 +989,7 @@ bool CG4400_application::preprocess_print(int file, int counter)
_doc_array.destroy(); _doc_array.destroy();
_dataregp = ""; _dataregp = "";
_mov_empty = TRUE; _mov_empty = TRUE;
_primast = get_page_number(); //_primast = get_page_number();
set_print_zero(); set_print_zero();
} }
return TRUE; return TRUE;
@ -961,22 +1007,26 @@ bool CG4400_application::preprocess_page(int file, int counter)
TLocalisamfile* mov = _cur->file(LF_MOV); TLocalisamfile* mov = _cur->file(LF_MOV);
TLocalisamfile* caus = _cur->file(LF_CAUSALI); TLocalisamfile* caus = _cur->file(LF_CAUSALI);
long annoes = mov->get_long(MOV_ANNOES); //long annoes = mov->get_long(MOV_ANNOES);
TString16 codreg = mov->get(MOV_REG); //TString16 codreg = mov->get(MOV_REG);
_datareg = mov->get_date(MOV_DATAREG); _datareg = mov->get_date(MOV_DATAREG);
if (codreg != _codreg || annoes != _annoes) //if (codreg != _codreg || annoes != _annoes)
return FALSE; // return FALSE;
if (_data_da.string() != "" && _data_a.string() != "") //if (_data_da.string() != "" && _data_a.string() != "")
if ( (_datareg < _data_da || _datareg > _data_a) || (!_datareg.ok()) ) // if ( (_datareg < _data_da || _datareg > _data_a) || (!_datareg.ok()) )
return FALSE; // return FALSE;
_mov_empty = FALSE; _mov_empty = FALSE;
if ( (_tipo_stampa == 1) || (_tipo_stampa == 4) ) //if ( (_tipo_stampa == 1) || (_tipo_stampa == 4) )
if ( (_datareg.month() != _dataregp.month()) && (_dataregp.ok()) ) if ( (_datareg.month() != _dataregp.month()) && (_dataregp.ok()) )
printer().formfeed(); {
if (_tipo_stampa == 2)
++ _u_stampata;
printer().formfeed();
}
_dataregp = _datareg; _dataregp = _datareg;
@ -1070,7 +1120,8 @@ void CG4400_application::aggiorna_reg()
TString16 codtab; TString16 codtab;
TTable Tabreg ("REG"); TTable Tabreg ("REG");
TTable TabInl ("%INL"); TTable TabInl ("%INL");
long stampate, pag; long pag;
//long stampate;
const word ultimast = get_page_number(); const word ultimast = get_page_number();
@ -1079,10 +1130,10 @@ void CG4400_application::aggiorna_reg()
Tabreg.put("CODTAB", codtab); Tabreg.put("CODTAB", codtab);
if (Tabreg.read() == NOERR) if (Tabreg.read() == NOERR)
{ {
stampate = ultimast - _primast + 1; //stampate = ultimast + 1;
if (!_mov_empty) //cioe' se e' stata stampata almeno una pagina if (!_mov_empty) //cioe' se e' stata stampata almeno una pagina
{ {
pag = _pagine_stampate + stampate; pag = _pagine_stampate + ultimast;
Tabreg.put("I1", pag); Tabreg.put("I1", pag);
} }
Tabreg.put("D3", _data_a); Tabreg.put("D3", _data_a);
@ -1091,7 +1142,7 @@ void CG4400_application::aggiorna_reg()
if (_tipo_stampa == 2) //stampa su libro unico if (_tipo_stampa == 2) //stampa su libro unico
//sulla tabella %inl (indice libro unico) devo generare una riga per ogni registro stampato //sulla tabella %inl (indice libro unico) devo generare una riga per ogni registro stampato
{ {
bool trovato = FALSE; bool trovato = FALSE;
codtab = ""; codtab = "";
codtab << _annoes << _codlib; codtab << _annoes << _codlib;
TabInl.zero(); TabInl.zero();
@ -1109,47 +1160,54 @@ void CG4400_application::aggiorna_reg()
recprec = TabInl.curr(); recprec = TabInl.curr();
} }
TString16 cod; TString cod = "";
if (trovato) if (trovato)
{ {
TString16 cod_inl = recprec.get("CODTAB"); TString16 cod_inl = recprec.get("CODTAB");
long numero_riga = atol(cod_inl.mid(7,6)); long numero_riga = atol(cod_inl.mid(7,6)) + 1;
TString16 num_riga (format("%6d", numero_riga));
cod_inl = cod_inl.mid(0,7); cod_inl = cod_inl.mid(0,7);
nuovo = recprec; nuovo = recprec;
cod << cod_inl << numero_riga + 1; cod << cod_inl << num_riga;
} }
else else
cod << codtab << 1L; {
TString16 num_riga ( format("%6d", 1L) );
cod << codtab << num_riga;
}
long numini = _pagine_stampate + 1; long numini = _pagine_stampate + 1;
nuovo.put("CODTAB", cod); nuovo.put("CODTAB", cod);
nuovo.put("I0", _annoes); nuovo.put("I0", (long)_annoes);
nuovo.put("I1", _fino_a_mese); nuovo.put("I1", (long)_fino_a_mese);
nuovo.put("I2", _primast); nuovo.put("I2", (long)_u_stampata + 1);
nuovo.put("I3", ultimast); nuovo.put("I3", (long)(_u_stampata + ultimast));
nuovo.put("I4", get_firm()); nuovo.put("I4", get_firm());
nuovo.put("S0", _codreg); nuovo.put("S0", _codreg);
nuovo.put("I5", numini); nuovo.put("I5", (long)numini);
nuovo.put("I6", pag); nuovo.put("I6", (long)(numini + ultimast));
TabInl.write(nuovo); if (trovato)
TabInl.rewrite(nuovo);
else
TabInl.write(nuovo);
_u_stampata += ultimast;
} }
} }
void CG4400_application::aggiorna_lib() void CG4400_application::aggiorna_lib()
{ {
TString16 cod; TString16 cod = "";
TTable lbu ("%LBU"); TTable lbu ("%LBU");
const word stampate = get_page_number();
cod << _annoes << _codlib; cod << _annoes << _codlib;
lbu.zero(); lbu.zero();
lbu.put("CODTAB", cod); lbu.put("CODTAB", cod);
if (lbu.read() == NOERR) if (lbu.read() == NOERR)
{ {
lbu.put("I0", _fino_a_mese); lbu.put("I0", (long) _fino_a_mese);
lbu.put("I1", stampate); lbu.put("I1", (long) _u_stampata - 1);
lbu.rewrite(); lbu.rewrite();
} }
} }
@ -1157,72 +1215,6 @@ void CG4400_application::aggiorna_lib()
print_action CG4400_application::postprocess_page (int file, int counter) print_action CG4400_application::postprocess_page (int file, int counter)
{ {
if (file == LF_MOV) if (file == LF_MOV)
{
TLocalisamfile* mov = _cur->file(LF_MOV);
_cur->save_status();
++(*_cur);
_dataregs = mov->get_date(MOV_DATAREG);
--(*_cur);
_cur->restore_status();
if (_dataregs.month() != _dataregp.month())
{
set_page_tot_reg();
return REPEAT_PAGE;
}
}
return NEXT_PAGE;
}
print_action CG4400_application::postprocess_print(int file, int counter)
{
if (file == LF_MOV)
{
//aggiorna registri solo se non e' stampa di prova
if (_tipo_stampa != 3)
aggiorna_reg();
if (_stampa_tutti_i_registri)
{
TString16 codtab;
int anno, tipo;
//vado avanti dal punto in cui sono
_tabreg->next();
for (; !_tabreg->eof(); _tabreg->next())
{
tipo = _tabreg->get_int("I0");
if ( (tipo == 1) || (tipo == 2) ) //registro iva
{
codtab = _tabreg->get("CODTAB");
anno = atoi(codtab.mid(0,4));
break;
}
}
if ( (_tabreg->eof()) || (anno != _annoes) )
{
if (_tipo_stampa == 2) //stampa su libro unico
aggiorna_lib();
return NEXT_PAGE;
}
else
{
_tipo_reg = _tabreg->get_int("I0");
_desc_lib = _tabreg->get("S0");
_data_da = _tabreg->get_date("D3");
_pagine_stampate = _tabreg->get_int("I1");
_codreg = codtab.mid(4,3);
_primast = get_page_number();
if (!_mov_empty )
printer().formfeed();
_cur->set_filterfunction(NULL);
_cur->set_filterfunction(filter_func);
// (*_cur) = 0L;
_mov_empty = TRUE;
return REPEAT_PAGE;
}
}
}
if (file == LF_RMOVIVA)
if (!counter) if (!counter)
{ {
bool FINITO = FALSE; bool FINITO = FALSE;
@ -1236,30 +1228,81 @@ print_action CG4400_application::postprocess_print(int file, int counter)
set_page_tot_reg(); set_page_tot_reg();
return REPEAT_PAGE; return REPEAT_PAGE;
} }
else if ( (_tipo_stampa == 1) || (_tipo_stampa == 4) ) else //if ( (_tipo_stampa == 1) || (_tipo_stampa == 4) )
{ {
TLocalisamfile* mov = _cur->file(LF_MOV); TLocalisamfile* mov = _cur->file(LF_MOV);
/* _cur->save_status();
TDate dataregp = mov->get_date(MOV_DATAREG); ++(*_cur);
_cur->save_status(); _dataregs = mov->get_date(MOV_DATAREG);
++(*_cur); --(*_cur);
TDate datareg = mov->get_date(MOV_DATAREG); _cur->restore_status();
--(*_cur);
_cur->restore_status();
if (datareg.month() != dataregp.month())
{
set_page_tot_reg();
return REPEAT_PAGE;
}
if (_dataregp.month() != _dataregs.month()) if (_dataregs.month() != _dataregp.month())
{ {
set_page_tot_reg(); set_page_tot_reg();
return REPEAT_PAGE; return REPEAT_PAGE;
} }
*/ }
}
} }
return NEXT_PAGE;
}
print_action CG4400_application::postprocess_print(int file, int counter)
{
if (file == LF_MOV)
{
//aggiorna registri solo se non e' stampa di prova
if ( (_tipo_stampa != 3) && (!_stampa_tutti_i_registri) )
aggiorna_reg();
if (_stampa_tutti_i_registri)
if (!_mov_empty )
{
if (_tipo_stampa == 2)
++ _u_stampata;
printer().formfeed();
}
/*
if (_stampa_tutti_i_registri)
{
TString16 codtab;
int anno, tipo;
//vado avanti dal punto in cui sono
_tabreg->next();
for (; !_tabreg->eof(); _tabreg->next())
{
tipo = _tabreg->get_int("I0");
if ( (tipo == 1) || (tipo == 2) ) //registro iva
{
codtab = _tabreg->get("CODTAB");
anno = atoi(codtab.mid(0,4));
break;
}
}
if ( (_tabreg->eof()) || (anno != _annoes) )
{
if (_tipo_stampa == 2) //stampa su libro unico
aggiorna_lib();
return NEXT_PAGE;
}
else
{
_tipo_reg = _tabreg->get_int("I0");
_desc_lib = _tabreg->get("S0");
_data_da = _tabreg->get_date("D3");
_pagine_stampate = _tabreg->get_int("I1");
_codreg = codtab.mid(4,3);
_primast = get_page_number();
if (!_mov_empty )
printer().formfeed();
_cur->set_filterfunction(NULL);
_cur->set_filterfunction(filter_func);
_mov_empty = TRUE;
return REPEAT_PAGE;
}
}
*/
}
return NEXT_PAGE; return NEXT_PAGE;
} }
@ -1271,27 +1314,8 @@ bool CG4400_application::set_print(int n)
if (set_ditte(m)) if (set_ditte(m))
if (_selected.ones() > 0l) if (_selected.ones() > 0l)
{ {
_tipo_stampa = m.get_int(TIPO_STAMPA);
_annoes = m.get_int(ANNO); _annoes = m.get_int(ANNO);
if (_tipo_stampa == 2) //stampa su libro unico di studio _tipo_stampa = m.get_int(TIPO_STAMPA);
_codreg = m.get(CODICE_LIBRO_IVA);
else if (_tipo_stampa == 3) //stampa di prova
_codreg = m.get(CODICE_LIBRO_PROVA);
else _codreg = m.get(CODICE_LIBRO);
/*
if (_codreg.trim().empty())
{
_tabreg->first();
_codtab = _tabreg->get("CODTAB");
_codreg = _codtab.mid(4,3);
_stampa_tutti_i_registri = TRUE;
}
else
{
_codtab << _annoes << _codreg;
_stampa_tutti_i_registri = FALSE;
}
**/
//Se stampa di prova l'utente indica data_da e data_a //Se stampa di prova l'utente indica data_da e data_a
if (_tipo_stampa == 3) if (_tipo_stampa == 3)
{ {
@ -1313,7 +1337,8 @@ bool CG4400_application::set_print(int n)
{ {
_codlib = m.get(CODICE_LIB_UN); _codlib = m.get(CODICE_LIB_UN);
_fino_a_mese = m.get_int(MESE); _fino_a_mese = m.get_int(MESE);
set_page_number(m.get_int(ULTIMA_PAGINA) + 1); _u_stampata = m.get_int(ULTIMA_PAGINA);
//set_page_number(_u_stampata + 1);
} }
if (_fino_a_mese == 12) if (_fino_a_mese == 12)
giorni_del_mese = 31; giorni_del_mese = 31;
@ -1326,16 +1351,15 @@ bool CG4400_application::set_print(int n)
_data_a=format("%02d/%02d/%4d",giorni_del_mese,_fino_a_mese,_annoes); _data_a=format("%02d/%02d/%4d",giorni_del_mese,_fino_a_mese,_annoes);
// NB data_da viene letta nella preprocess_page // NB data_da viene letta nella preprocess_page
} }
// compila_reg();
if (_tipo_stampa == 2) if (_tipo_stampa == 2)
compila_lib(); compila_lib();
stampa_registri_IVA(); stampa_registri_IVA(m);
} }
else warning_box("Nessuna ditta selezionata!"); else warning_box("Nessuna ditta selezionata!");
return FALSE; return FALSE;
} }
void CG4400_application::stampa_registri_IVA() void CG4400_application::stampa_registri_IVA(const TMask& m)
{ {
long l; long l;
long firm = TApplication::get_firm(); long firm = TApplication::get_firm();
@ -1346,15 +1370,56 @@ void CG4400_application::stampa_registri_IVA()
if (_selected[l]) if (_selected[l])
{ {
TApplication::set_firm(_nditte->get_long("CODDITTA")); TApplication::set_firm(_nditte->get_long("CODDITTA"));
ok = compila_reg(); // cerca il primo registro valido (nel caso di stampa tutti i registri), senno' legge i dati del registro specificato ok = compila_reg(m); // cerca il primo registro valido (nel caso di stampa tutti i registri), senno' legge i dati del registro specificato
if (!ok) continue; if (!ok) continue;
_cur->set_filterfunction(filter_func); if (!_stampa_tutti_i_registri)
_cur->set_filterfunction(filter_func);
_frequiva = _nditte->get("FREQVIVA")[0]; _frequiva = _nditte->get("FREQVIVA")[0];
if (_tipo_stampa != 3) //stampa definitiva if (_tipo_stampa != 3) //stampa definitiva
ok = controlla_liquidazione() && controlla_mov(); ok = controlla_liquidazione() && controlla_mov();
if (ok) print();
} if (!ok) continue;
if (!_stampa_tutti_i_registri)
print();
else
{
TString16 codtab;
int anno, tipo;
for (_tabreg->first(); !_tabreg->eof(); _tabreg->next())
{
tipo = _tabreg->get_int("I0");
codtab = _tabreg->get("CODTAB");
anno = atoi(codtab.mid(0,4));
if (anno > _annoes)
break;
if ( (tipo == 1) || (tipo == 2) ) //registro iva
{
_tipo_reg = _tabreg->get_int("I0");
_desc_lib = _tabreg->get("S0");
if (_tipo_stampa != 3)
_data_da = _tabreg->get_date("D3");
_pagine_stampate = _tabreg->get_int("I1");
_codreg = codtab.mid(4,3);
_codatt = _tabreg->get("S8");
_attivita = desc_attivita(_codatt);
_desc_lib = _tabreg->get ("S0");
//_primast = get_page_number();
//if (!_mov_empty )
// printer().formfeed();
_cur->set_filterfunction(NULL);
_cur->set_filterfunction(filter_func);
//set_page_number(_u_stampata + 1);
print();
if (_tipo_stampa != 3) aggiorna_reg();
}
}
}
if (_tipo_stampa == 2)
aggiorna_lib();
}
} }
TApplication::set_firm(firm); TApplication::set_firm(firm);
} }
@ -1368,8 +1433,10 @@ bool CG4400_application::set_ditte(TMask& m)
m.field(TIPO_STAMPA).set("1"); m.field(TIPO_STAMPA).set("1");
m.set_handler (TIPO_STAMPA, my_handler); m.set_handler (TIPO_STAMPA, my_handler);
m.set_handler (MESE, mask_mese); m.set_handler (DA_DATA, mask_data);
m.set_handler (FINO_A_MESE, mask_fino_a_mese); m.set_handler (A_DATA, mask_data);
m.set_handler (MESE, mask_mese);
//m.set_handler (FINO_A_MESE, mask_fino_a_mese);
m.set_handler (CODICE_LIB_UN, mask_cod); m.set_handler (CODICE_LIB_UN, mask_cod);
m.set_handler (DLG_SELECT, mask_select); m.set_handler (DLG_SELECT, mask_select);
m.set_handler (F_ANNULLA, mask_annulla); m.set_handler (F_ANNULLA, mask_annulla);
@ -1423,8 +1490,15 @@ else
reset_header(); reset_header();
r = stampa_intestazione_ditta(); if (_tipo_stampa == 2)
{
if (_stampa_ind_ditta)
r = stampa_intestazione_ditta();
long num = _u_stampata + 1;
set_header(r++, "@94gProgr.Studio %ld@114gProgr.Utente @#", num);
}
else
r = stampa_intestazione_ditta();
set_header(r, "Registro IVA: %s %s %s Attivita\' %s %s", set_header(r, "Registro IVA: %s %s %s Attivita\' %s %s",
(const char *) _codreg, (const char *) _desc_lib, (const char *) _codreg, (const char *) _desc_lib,
(const char *) data, (const char *) _codatt, (const char *) data, (const char *) _codatt,
@ -1457,12 +1531,12 @@ else
{ {
set_header(r,"@10gNum.@19gDocumento@68gT Tipo@103gCod %s@121g@124gT", (const char*) nd1); set_header(r,"@10gNum.@19gDocumento@68gT Tipo@103gCod %s@121g@124gT", (const char*) nd1);
if (_tipo_stampa == 4) //stampa definitiva con rif. al libro giornale if (_tipo_stampa == 4) //stampa definitiva con rif. al libro giornale
set_header(r, "@127gNumero"); set_header(r, "@128gNum.");
r++; r++;
set_header(r, "Data reg. prot.@17gData@25gNumero Codice Ragione sociale/descrizione@68gO Doc.@76gTotale doc.@91gImponibile Iva %s@112gImposta@124g%s", set_header(r, "Data reg. prot.@17gData@25gNumero Codice Ragione sociale/descrizione@68gO Doc.@76gTotale doc.@91gImponibile Iva %s@112gImposta@124g%s",
(const char*) nd2, (const char*) cor); (const char*) nd2, (const char*) cor);
if (_tipo_stampa == 4) if (_tipo_stampa == 4)
set_header(r, "@127goperaz"); set_header(r, "@128gop.");
r++; r++;
} }
riga.fill('-'); riga.fill('-');

View File

@ -24,12 +24,19 @@
#include "cglib03.h" #include "cglib03.h"
<<<<<<< cg4400.h
const int MAXSTR = 255;
static char __tmp[MAXSTR];
=======
>>>>>>> 1.6
//enum STAMPA { bollati=1, unici=2 }; //enum STAMPA { bollati=1, unici=2 };
const int TABREG = (int)TTable::name2log("REG"); const int TABREG = (int)TTable::name2log("REG");
bool filter_func (const TRelation*); bool filter_func (const TRelation*);
bool my_handler (TMask_field&, KEY); bool my_handler (TMask_field&, KEY);
bool mask_cod (TMask_field&, KEY); bool mask_cod (TMask_field&, KEY);
bool mask_data (TMask_field&, KEY);
bool mask_mese (TMask_field&, KEY); bool mask_mese (TMask_field&, KEY);
bool mask_fino_a_mese (TMask_field&, KEY); bool mask_fino_a_mese (TMask_field&, KEY);
bool mask_select (TMask_field&, KEY); bool mask_select (TMask_field&, KEY);
@ -58,7 +65,7 @@ class CG4400_application : public TPrintapp
friend bool filter_func (const TRelation *r); friend bool filter_func (const TRelation *r);
friend bool mask_cod (TMask_field&, KEY); friend bool mask_cod (TMask_field&, KEY);
friend bool mask_mese (TMask_field&, KEY); friend bool mask_mese (TMask_field&, KEY);
friend bool mask_fino_a_mese (TMask_field&, KEY); //friend bool mask_fino_a_mese (TMask_field&, KEY);
friend bool my_handler (TMask_field&, KEY); friend bool my_handler (TMask_field&, KEY);
friend bool mask_select (TMask_field&, KEY); friend bool mask_select (TMask_field&, KEY);
friend bool mask_verifica (TMask_field&, KEY); friend bool mask_verifica (TMask_field&, KEY);
@ -67,7 +74,7 @@ class CG4400_application : public TPrintapp
TCursor * _cur; TCursor * _cur;
TRelation *_rel; TRelation *_rel;
TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom; TLocalisamfile *_clifo, *_nditte, *_occas, *_tab, *_tabcom;
TTable *_tabreg, *_tablbu, *_tabinl; TTable *_tabreg, *_tablbu, *_tabinl, *_tablim, *_tabpim;
TRigaiva_array _iva_array, _riga_rmi; TRigaiva_array _iva_array, _riga_rmi;
TTipodoc_array _doc_array; TTipodoc_array _doc_array;
TRiga_array _tot_iva_array; TRiga_array _tot_iva_array;
@ -77,13 +84,12 @@ class CG4400_application : public TPrintapp
bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri; bool _mov_empty, _stampa_ind_ditta, _stampa_tutti_i_registri;
char _frequiva; char _frequiva;
TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg; TDate _data_da, _data_a, _data_stampa, _dataregp, _dataregs, _datareg;
long _annoes, _n_ditte; long _n_ditte, _u_stampata;
word _primast; int _fino_a_mese, _tipo_reg, _tipo_stampa, _pagine_stampate;
int _riepil, _tipo_reg, _fino_a_mese, _tipo_stampa, _pagine_stampate; int _annoes, _r, _stampa_width; // riga corrente di stampa
int _r, _stampa_width; // riga corrente di stampa
real _totale_doc; real _totale_doc;
TString _codreg, _desc_lib, _codatt, _attivita; TString _codreg, _desc_lib, _codatt, _attivita;
TString _codtab, _tipodoc, _descr_doc, _codlib; TString _tipodoc, _descr_doc, _codlib;
public: public:
const char* desc_attivita (const char * codatt); const char* desc_attivita (const char * codatt);
@ -95,13 +101,13 @@ public:
int riga_rmoviva(); int riga_rmoviva();
bool set_print(int); bool set_print(int);
bool set_ditte(TMask&); bool set_ditte(TMask&);
bool compila_reg(); bool compila_reg(const TMask&);
bool compila_lib(); bool compila_lib();
bool controlla_liquidazione(); bool controlla_liquidazione();
bool controlla_mov(); bool controlla_mov();
void cerca_reg(const TString&, byte&, TDate&); void cerca_reg(const TString&, byte&, TDate&);
//void leggi_movimenti(const TDate&, const TString&, bool&); //void leggi_movimenti(const TDate&, const TString&, bool&);
void stampa_registri_IVA(); void stampa_registri_IVA(const TMask&);
void set_page_tot_reg(); void set_page_tot_reg();
void aggiorna_reg(); void aggiorna_reg();
void aggiorna_lib(); void aggiorna_lib();

View File

@ -1,473 +1,236 @@
<<<<<<< cg4400a.uml // cg4400a.uml
// cg4400a.uml // Stampa tabella registri
// Stampa tabella registri
#include "cg4400a.h"
#include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 19
PAGE "Stampa registri IVA" -1 -1 56 19
/*
/* LISTBOX TIPO_STAMPA 2 27
LISTBOX TIPO_STAMPA 2 27 BEGIN
BEGIN PROMPT 2 1 "Tipo stampa "
PROMPT 2 1 "Tipo stampa " ITEM "1|Libri bollati della ditta"
ITEM "1|Libri bollati della ditta" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ ITEM "2|Libri unici dello studio"
ITEM "2|Libri unici dello studio" MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
MESSAGE SHOW,2@|HIDE,1@|HIDE,3@ ITEM "3|Stampa di prova"
ITEM "3|Stampa di prova" MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|SHOW,CODICE_LIBRO
MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|SHOW,CODICE_LIBRO ITEM "4|Stampa libri con riferimenti al libro giornale"
ITEM "4|Stampa libri con riferimenti al libro giornale" MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@ END
END */
*/
NUMBER TIPO_STAMPA 1
NUMBER TIPO_STAMPA 1 BEGIN
BEGIN PROMPT 2 1 "Tipo stampa "
PROMPT 2 1 "Tipo stampa " SHEET "Cod|Descrizione@50"
SHEET "Cod|Descrizione@50" INPUT TIPO_STAMPA
INPUT TIPO_STAMPA OUTPUT TIPO_STAMPA
OUTPUT TIPO_STAMPA ITEM "1|Libri bollati della ditta"
ITEM "1|Libri bollati della ditta" ITEM "2|Libri unici dello studio"
ITEM "2|Libri unici dello studio" ITEM "3|Stampa di prova"
ITEM "3|Stampa di prova" ITEM "4|Stampa libri con riferimenti al libro giornale"
ITEM "4|Stampa libri con riferimenti al libro giornale" END
END
GROUPBOX DLG_NULL 35 5
GROUPBOX DLG_NULL 35 5 BEGIN
BEGIN PROMPT 20 1 "Scelta ditte"
PROMPT 20 1 "Scelta ditte" END
END
NUMBER DA_CODICE 6
NUMBER DA_CODICE 6 BEGIN
BEGIN PROMPT 21 2 "Da codice "
PROMPT 21 2 "Da codice " HELP "Immettere codice ditta di partenza per la selezione"
HELP "Immettere codice ditta di partenza per la selezione" USE LF_NDITTE KEY 1
USE LF_NDITTE KEY 1 CHECKTYPE NORMAL
CHECKTYPE NORMAL INPUT CODDITTA DA_CODICE
INPUT CODDITTA DA_CODICE DISPLAY "Codice" CODDITTA
DISPLAY "Codice" CODDITTA DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Ragione sociale@50" RAGSOC OUTPUT DA_CODICE CODDITTA
OUTPUT DA_CODICE CODDITTA END
END
NUMBER A_CODICE 6
NUMBER A_CODICE 6 BEGIN
BEGIN PROMPT 21 3 "A codice "
PROMPT 21 3 "A codice " HELP "Immettere codice ditta di fine selezione"
HELP "Immettere codice ditta di fine selezione" COPY USE DA_CODICE
COPY USE DA_CODICE CHECKTYPE NORMAL
CHECKTYPE NORMAL INPUT CODDITTA A_CODICE
INPUT CODDITTA A_CODICE COPY DISPLAY DA_CODICE
COPY DISPLAY DA_CODICE OUTPUT A_CODICE CODDITTA
OUTPUT A_CODICE CODDITTA END
END
STRING F_SELECT 6
STRING F_SELECT 6 BEGIN
BEGIN PROMPT 21 4 "Scelte n. "
PROMPT 21 4 "Scelte n. " FLAGS "D"
FLAGS "D" END
END
BUTTON DLG_SELECT 9
BUTTON DLG_SELECT 9 BEGIN
BEGIN PROMPT 42 2 "Selezione"
PROMPT 42 2 "Selezione" //MESSAGE EXIT,DLG_SELECT
//MESSAGE EXIT,DLG_SELECT END
END
BUTTON F_ANNULLA 9
BUTTON F_ANNULLA 9 BEGIN
BEGIN PROMPT 42 3 "Annulla"
PROMPT 42 3 "Annulla" //MESSAGE EXIT,F_ANNULLA
//MESSAGE EXIT,F_ANNULLA END
END
BUTTON F_VERIFICA 9
BUTTON F_VERIFICA 9 BEGIN
BEGIN PROMPT 42 4 "Verifica"
PROMPT 42 4 "Verifica" //MESSAGE EXIT,F_VERIFICA
//MESSAGE EXIT,F_VERIFICA END
END
DATE DATA_STAMPA
DATE DATA_STAMPA BEGIN
BEGIN PROMPT 2 6 "Data stampa "
PROMPT 2 6 "Data stampa " FLAG "AH"
FLAG "AH" GROUP 3
GROUP 3 END
END
NUMBER ANNO 4
NUMBER ANNO 4 BEGIN
BEGIN PROMPT 2 7 "Anno "
PROMPT 2 7 "Anno " FLAGS "A"
FLAGS "A" CHECKTYPE REQUIRED
END END
STRING CODICE_LIBRO 3 STRING CODICE_LIBRO 3
BEGIN BEGIN
PROMPT 20 7 "Codice libro " PROMPT 20 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7] OUTPUT CODICE_LIBRO CODTAB[5,7]
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
FLAGS "UR" FLAGS "UR"
GROUP 1 GROUP 1
END END
STRING CODICE_LIBRO_PROVA 3 STRING CODICE_LIBRO_PROVA 3
BEGIN BEGIN
PROMPT 20 7 "Codice libro " PROMPT 20 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate" HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO INPUT CODTAB[5,7] CODICE_LIBRO_PROVA
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7] OUTPUT CODICE_LIBRO_PROVA CODTAB[5,7]
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
FLAGS "UR" FLAGS "UR"
GROUP 1 GROUP 1
END END
STRING CODICE_LIB_UN 3 STRING CODICE_LIB_UN 3
BEGIN BEGIN
PROMPT 20 7 "Cod.libro unico " PROMPT 20 7 "Cod.libro unico "
HELP "Specificare il codice del libro unico su cui deve essere effettuata la stampa" HELP "Specificare il codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111 USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN INPUT CODTAB[5,7] CODICE_LIB_UN
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIB_UN CODTAB[5,7] OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "UR" FLAGS "UR"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
GROUP 2 GROUP 2
END END
GROUPBOX DLG_NULL 52 3 GROUPBOX DLG_NULL 52 3
BEGIN BEGIN
PROMPT 2 9 "Stampa movimenti" PROMPT 2 9 "Stampa movimenti"
END END
DATE DA_DATA DATE DA_DATA
BEGIN BEGIN
PROMPT 5 10 "Dalla data " PROMPT 5 10 "Dalla data "
GROUP 3 GROUP 3
END END
DATE A_DATA DATE A_DATA
BEGIN BEGIN
PROMPT 30 10 "Alla data " PROMPT 30 10 "Alla data "
GROUP 3 GROUP 3
END END
LISTBOX FINO_A_MESE 10 LISTBOX FINO_A_MESE 10
BEGIN BEGIN
PROMPT 5 10 "Fino al mese " PROMPT 5 10 "Fino al mese "
FLAGS "M" FLAGS "M"
GROUP 1 GROUP 1
END END
LISTBOX MESE 10 LISTBOX MESE 10
BEGIN BEGIN
PROMPT 5 10 "Mese " PROMPT 5 10 "Mese "
FLAGS "M" FLAGS "M"
GROUP 2 GROUP 2
END END
LISTBOX TIPO_RIEPILOGATIVO 11 LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN BEGIN
PROMPT 2 12 "Tipo riepilogativo " PROMPT 2 12 "Tipo riepilogativo "
HELP "Selezionare Del periodo/Annuale a seconda che si desideri la stampa della liquidazione periodica/annuale" HELP "Selezionare Del periodo/Annuale a seconda che si desideri la stampa della liquidazione periodica/annuale"
ITEM "P|Del periodo" ITEM "P|Del periodo"
ITEM "A|Annuale" ITEM "A|Annuale"
GROUP 1 GROUP 1
END END
LISTBOX ULTIMO_MESE 10 LISTBOX ULTIMO_MESE 10
BEGIN BEGIN
PROMPT 2 13 "Ultimo mese stampa su libro unico " PROMPT 2 13 "Ultimo mese stampa su libro unico "
FLAGS "MD" FLAGS "MD"
GROUP 2 GROUP 2
END END
NUMBER ULTIMA_PAGINA 4 NUMBER ULTIMA_PAGINA 4
BEGIN BEGIN
PROMPT 2 14 "Ultimo numero di pagina stampata libro unico " PROMPT 2 14 "Ultimo numero di pagina stampata libro unico "
FLAGS "R" FLAGS "R"
GROUP 2 GROUP 2
END END
STRING CODICE_LIBRO_IVA 3 STRING CODICE_LIBRO_IVA 3
BEGIN BEGIN
PROMPT 2 15 "Eventuale codice libro IVA " PROMPT 2 15 "Eventuale codice libro IVA "
HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate" HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111) USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA INPUT CODTAB[5,7] CODICE_LIBRO_IVA
DISPLAY "Anno " CODTAB[1,4] DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7] DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0 DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4] OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_IVA CODTAB[5,7] OUTPUT CODICE_LIBRO_IVA CODTAB[5,7]
//CHECKTYPE NORMAL //CHECKTYPE NORMAL
FLAGS "UR" FLAGS "UR"
GROUP 2 GROUP 2
END END
BUTTON DLG_OK 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -12 -1 "" PROMPT -12 -1 ""
END END
BUTTON DLG_CANCEL 9 2 BUTTON DLG_CANCEL 9 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -22 -1 ""
END END
ENDPAGE ENDPAGE
ENDMASK ENDMASK
=======
// cg4400a.uml
// Stampa tabella registri
#include "cg4400a.h"
PAGE "Stampa registri IVA" -1 -1 56 19
/*
LISTBOX TIPO_STAMPA 2 27
BEGIN
PROMPT 2 1 "Tipo stampa "
ITEM "1|Libri bollati della ditta"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
ITEM "2|Libri unici dello studio"
MESSAGE SHOW,2@|HIDE,1@|HIDE,3@
ITEM "3|Stampa di prova"
MESSAGE SHOW,3@|HIDE,1@|HIDE,2@|SHOW,CODICE_LIBRO
ITEM "4|Stampa libri con riferimenti al libro giornale"
MESSAGE SHOW,1@|HIDE,2@|HIDE,3@
END
*/
NUMBER TIPO_STAMPA 1
BEGIN
PROMPT 2 1 "Tipo stampa "
SHEET "Cod|Descrizione@50"
INPUT TIPO_STAMPA
OUTPUT TIPO_STAMPA
ITEM "1|Libri bollati della ditta"
ITEM "2|Libri unici dello studio"
ITEM "3|Stampa di prova"
ITEM "4|Stampa libri con riferimenti al libro giornale"
END
GROUPBOX DLG_NULL 35 5
BEGIN
PROMPT 20 1 "Scelta ditte"
END
NUMBER DA_CODICE 6
BEGIN
PROMPT 21 2 "Da codice "
HELP "Immettere codice ditta di partenza per la selezione"
USE LF_NDITTE KEY 1
CHECKTYPE NORMAL
INPUT CODDITTA DA_CODICE
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT DA_CODICE CODDITTA
END
NUMBER A_CODICE 6
BEGIN
PROMPT 21 3 "A codice "
HELP "Immettere codice ditta di fine selezione"
COPY USE DA_CODICE
CHECKTYPE NORMAL
INPUT CODDITTA A_CODICE
COPY DISPLAY DA_CODICE
OUTPUT A_CODICE CODDITTA
END
STRING F_SELECT 6
BEGIN
PROMPT 21 4 "Scelte n. "
FLAGS "D"
END
BUTTON DLG_SELECT 9
BEGIN
PROMPT 42 2 "Selezione"
//MESSAGE EXIT,DLG_SELECT
END
BUTTON F_ANNULLA 9
BEGIN
PROMPT 42 3 "Annulla"
//MESSAGE EXIT,F_ANNULLA
END
BUTTON F_VERIFICA 9
BEGIN
PROMPT 42 4 "Verifica"
//MESSAGE EXIT,F_VERIFICA
END
DATE DATA_STAMPA
BEGIN
PROMPT 2 6 "Data stampa "
FLAG "AH"
GROUP 3
END
NUMBER ANNO 4
BEGIN
PROMPT 2 7 "Anno "
FLAGS "A"
END
STRING CODICE_LIBRO 3
BEGIN
PROMPT 20 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "UR"
GROUP 1
END
STRING CODICE_LIBRO_PROVA 3
BEGIN
PROMPT 20 7 "Codice libro "
HELP "Specificare il codice libro di cui si chiede la stampa; nel caso in cui non si indichi nessun codice verranno stampati tutti i libri delle ditte selezionate"
USE REG SELECT (I0<"3") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "UR"
GROUP 1
END
STRING CODICE_LIB_UN 3
BEGIN
PROMPT 20 7 "Cod.libro unico "
HELP "Specificare il codice del libro unico su cui deve essere effettuata la stampa"
USE %LBU SELECT CODTAB[1,4]==#111
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIB_UN
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIB_UN CODTAB[5,7]
FLAGS "UR"
CHECKTYPE REQUIRED
GROUP 2
END
GROUPBOX DLG_NULL 52 3
BEGIN
PROMPT 2 9 "Stampa movimenti"
END
DATE DA_DATA
BEGIN
PROMPT 5 10 "Dalla data "
GROUP 3
END
DATE A_DATA
BEGIN
PROMPT 30 10 "Alla data "
GROUP 3
END
LISTBOX FINO_A_MESE 10
BEGIN
PROMPT 5 10 "Fino al mese "
FLAGS "M"
GROUP 1
END
LISTBOX MESE 10
BEGIN
PROMPT 5 10 "Mese "
FLAGS "M"
GROUP 2
END
LISTBOX TIPO_RIEPILOGATIVO 11
BEGIN
PROMPT 2 12 "Tipo riepilogativo "
HELP "Selezionare Del periodo/Annuale a seconda che si desideri la stampa della liquidazione periodica/annuale"
ITEM "P|Del periodo"
ITEM "A|Annuale"
GROUP 1
END
LISTBOX ULTIMO_MESE 10
BEGIN
PROMPT 2 13 "Ultimo mese stampa su libro unico "
FLAGS "MD"
GROUP 2
END
NUMBER ULTIMA_PAGINA 4
BEGIN
PROMPT 2 14 "Ultimo numero di pagina stampata libro unico "
FLAGS "R"
GROUP 2
END
STRING CODICE_LIBRO_IVA 3
BEGIN
PROMPT 2 15 "Eventuale codice libro IVA "
HELP "Se non viene indicato nessun cod. libro IVA, vengono stampati tutti i registri delle ditte selezionate"
USE REG SELECT (I0<"3") && (S6=="") && (CODTAB[1,4]==#111)
INPUT CODTAB[1,4] ANNO
INPUT CODTAB[5,7] CODICE_LIBRO_IVA
DISPLAY "Anno " CODTAB[1,4]
DISPLAY "Codice " CODTAB[5,7]
DISPLAY "Descrizione @40" S0
OUTPUT ANNO CODTAB[1,4]
OUTPUT CODICE_LIBRO_IVA CODTAB[5,7]
//CHECKTYPE NORMAL
FLAGS "UR"
GROUP 2
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
>>>>>>> 1.3

View File

@ -86,27 +86,24 @@ void TDati_ditta::get_dati_ditta ()
} }
} }
const char * TDati_ditta::prima_riga() const char * TDati_ditta::prima_riga()
{ {
get_dati_ditta(); get_dati_ditta();
/*
tmp.format("Ditta %d %s Via %s %s %s %s", _codditta,
(const char *)_ragsoc,(const char *)_viafis, (const char *)_cap,
(const char *)_comunefis, (const char *)_provfis);
*/
tmp << "Ditta " << _codditta << ' ' << _ragsoc << " Via " << _viafis << ' ' tmp << "Ditta " << _codditta << ' ' << _ragsoc << " Via " << _viafis << ' '
<< _cap << ' ' << _comunefis << ' ' << _provfis; << _cap << ' ' << _comunefis << ' ' << _provfis;
return tmp; return tmp;
} }
const char * TDati_ditta::seconda_riga() const char * TDati_ditta::seconda_riga()
{ {
tmp = "Data @<"; TString riga(_stampa_width);
tmp.right_just(_stampa_width-15); tmp = "";
tmp.overwrite (format ("Partita iva %s @26gCodice fiscale %s", riga = "Data @<";
(const char*)_paiva, (const char*)_cofi)); riga.right_just(_stampa_width-15);
return tmp; riga.overwrite (format ("Partita iva %s @26gCodice fiscale %s",
(const char*)_paiva, (const char*)_cofi));
tmp = riga;
return __tmp;
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,311 +1,314 @@
#include "cg4600.h" #include "cg4600.h"
PAGE "" -1 -1 76 20 PAGE "" -1 -1 76 20
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 2 1 "Ditta " PROMPT 2 1 "Ditta "
FLAGS "FRD" FLAGS "FRD"
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 2 2 "Ragione sociale " PROMPT 2 2 "Ragione sociale "
FLAGS "D" FLAGS "D"
END END
STRING F_CHIUSURA 3 STRING F_CHIUSURA 3
BEGIN BEGIN
PROMPT 2 4 "Codice causale chiusura " PROMPT 2 4 "Codice causale chiusura "
USE LF_CAUSALI KEY 1 USE LF_CAUSALI KEY 1
DISPLAY "Codice" CODCAUS DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione @50" DESCR DISPLAY "Descrizione @50" DESCR
OUTPUT F_CHIUSURA CODCAUS OUTPUT F_CHIUSURA CODCAUS
INPUT CODCAUS F_CHIUSURA INPUT CODCAUS F_CHIUSURA
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_APERTURA 3 STRING F_APERTURA 3
BEGIN BEGIN
PROMPT 2 5 "Codice causale apertura " PROMPT 2 5 "Codice causale apertura "
COPY USE F_CHIUSURA COPY USE F_CHIUSURA
COPY DISPLAY F_CHIUSURA COPY DISPLAY F_CHIUSURA
OUTPUT F_APERTURA CODCAUS OUTPUT F_APERTURA CODCAUS
INPUT CODCAUS F_APERTURA INPUT CODCAUS F_APERTURA
END END
DATE F_DATAC DATE F_DATAC
BEGIN BEGIN
PROMPT 36 4 "Data/Anno chiusura " PROMPT 36 4 "Data/Anno chiusura "
END END
DATE F_DATAAP DATE F_DATAAP
BEGIN BEGIN
PROMPT 36 5 "Data/Anno apertura " PROMPT 36 5 "Data/Anno apertura "
WARNING "Inserire una data non inferiore alla data di chiusura" WARNING "Inserire una data non inferiore alla data di chiusura"
VALIDATE DATE_CMP_FUNC >= F_DATAC VALIDATE DATE_CMP_FUNC >= F_DATAC
END END
NUMBER F_ANNOCH 4 NUMBER F_ANNOCH 4
BEGIN BEGIN
PROMPT 69 4 "" PROMPT 69 4 ""
FLAGS "D" FLAGS "D"
END END
NUMBER F_ANNO 4 NUMBER F_ANNO 4
BEGIN BEGIN
PROMPT 69 5 "" PROMPT 69 5 ""
FLAGS "D" FLAGS "D"
END END
GROUPBOX DLG_NULL 60 10 GROUPBOX DLG_NULL 60 10
BEGIN BEGIN
PROMPT 2 7 "Codici sottoconto" PROMPT 2 7 "Codici sottoconto"
END END
NUMBER F_BILCHG 3 NUMBER F_BILCHG 3
BEGIN BEGIN
PROMPT 3 9 "Bilancio di chiusura " PROMPT 3 9 "Bilancio di chiusura "
USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" USE LF_PCON KEY 1 SELECT SOTTOCONTO!=""
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
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 F_BILCHG GRUPPO OUTPUT F_BILCHG GRUPPO
OUTPUT F_BILCHC CONTO OUTPUT F_BILCHC CONTO
OUTPUT F_BILCHS SOTTOCONTO OUTPUT F_BILCHS SOTTOCONTO
INPUT GRUPPO F_BILCHG INPUT GRUPPO F_BILCHG
INPUT CONTO F_BILCHC INPUT CONTO F_BILCHC
INPUT SOTTOCONTO F_BILCHS INPUT SOTTOCONTO F_BILCHS
END END
NUMBER F_BILCHC 3 NUMBER F_BILCHC 3
BEGIN BEGIN
PROMPT 44 9 "" PROMPT 44 9 ""
COPY ALL F_BILCHG COPY ALL F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
NUMBER F_BILCHS 6 NUMBER F_BILCHS 6
BEGIN BEGIN
PROMPT 51 9 "" PROMPT 51 9 ""
COPY ALL F_BILCHG COPY ALL F_BILCHG
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END
END
NUMBER F_PROPERG 3
BEGIN NUMBER F_PROPERG 3
PROMPT 3 10 "Profitti e perdite " BEGIN
COPY USE F_BILCHG PROMPT 3 10 "Profitti e perdite "
CHECKTYPE REQUIRED COPY USE F_BILCHG
COPY DISPLAY F_BILCHG CHECKTYPE REQUIRED
OUTPUT F_PROPERG GRUPPO COPY DISPLAY F_BILCHG
OUTPUT F_PROPERC CONTO OUTPUT F_PROPERG GRUPPO
OUTPUT F_PROPERS SOTTOCONTO OUTPUT F_PROPERC CONTO
INPUT GRUPPO F_PROPERG OUTPUT F_PROPERS SOTTOCONTO
INPUT CONTO F_PROPERC INPUT GRUPPO F_PROPERG
INPUT SOTTOCONTO F_PROPERS INPUT CONTO F_PROPERC
END INPUT SOTTOCONTO F_PROPERS
END
NUMBER F_PROPERC 3
BEGIN NUMBER F_PROPERC 3
PROMPT 44 10 "" BEGIN
COPY USE F_BILCHG PROMPT 44 10 ""
CHECKTYPE REQUIRED COPY USE F_BILCHG
COPY DISPLAY F_BILCHG CHECKTYPE REQUIRED
COPY OUTPUT F_PROPERG
COPY INPUT F_PROPERG COPY DISPLAY F_BILCHG
END COPY OUTPUT F_PROPERG
COPY INPUT F_PROPERG
NUMBER F_PROPERS 6 END
BEGIN
PROMPT 51 10 "" NUMBER F_PROPERS 6
COPY ALL F_PROPERC BEGIN
CHECKTYPE REQUIRED PROMPT 51 10 ""
END COPY ALL F_PROPERC
CHECKTYPE REQUIRED
NUMBER F_BILAPG 3 END
BEGIN
PROMPT 3 11 "Bilancio di apertura " NUMBER F_BILAPG 3
COPY USE F_BILCHG BEGIN
CHECKTYPE REQUIRED PROMPT 3 11 "Bilancio di apertura "
COPY DISPLAY F_BILCHG COPY USE F_BILCHG
OUTPUT F_BILAPG GRUPPO CHECKTYPE REQUIRED
OUTPUT F_BILAPC CONTO COPY DISPLAY F_BILCHG
OUTPUT F_BILAPS SOTTOCONTO OUTPUT F_BILAPG GRUPPO
INPUT GRUPPO F_BILAPG OUTPUT F_BILAPC CONTO
INPUT CONTO F_BILAPC OUTPUT F_BILAPS SOTTOCONTO
INPUT SOTTOCONTO F_BILAPS INPUT GRUPPO F_BILAPG
END INPUT CONTO F_BILAPC
INPUT SOTTOCONTO F_BILAPS
NUMBER F_BILAPC 3 END
BEGIN
PROMPT 44 11 "" NUMBER F_BILAPC 3
COPY USE F_BILCHG BEGIN
CHECKTYPE REQUIRED PROMPT 44 11 ""
COPY DISPLAY F_BILCHG COPY USE F_BILCHG
COPY OUTPUT F_BILAPG CHECKTYPE REQUIRED
COPY INPUT F_BILAPG COPY DISPLAY F_BILCHG
END COPY OUTPUT F_BILAPG
COPY INPUT F_BILAPG
NUMBER F_BILAPS 6 END
BEGIN
PROMPT 51 11 "" NUMBER F_BILAPS 6
COPY ALL F_BILAPC BEGIN
CHECKTYPE REQUIRED PROMPT 51 11 ""
END COPY ALL F_BILAPC
CHECKTYPE REQUIRED
NUMBER F_UTILPG 3 END
BEGIN
PROMPT 3 12 "Utile d'esercizio c/to patrim. " NUMBER F_UTILPG 3
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ((INDBIL="1")||(INDBIL="2")||(INDBIL="5")) BEGIN
CHECKTYPE REQUIRED PROMPT 3 12 "Utile d'esercizio c/to patrim. "
COPY DISPLAY F_BILCHG USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ((INDBIL="1")||(INDBIL="2")||(INDBIL="5"))
OUTPUT F_UTILPG GRUPPO CHECKTYPE REQUIRED
OUTPUT F_UTILPC CONTO COPY DISPLAY F_BILCHG
OUTPUT F_UTILPS SOTTOCONTO OUTPUT F_UTILPG GRUPPO
INPUT GRUPPO F_UTILPG OUTPUT F_UTILPC CONTO
INPUT CONTO F_UTILPC OUTPUT F_UTILPS SOTTOCONTO
INPUT SOTTOCONTO F_UTILPS INPUT GRUPPO F_UTILPG
END INPUT CONTO F_UTILPC
INPUT SOTTOCONTO F_UTILPS
NUMBER F_UTILPC 3 END
BEGIN
PROMPT 44 12 "" NUMBER F_UTILPC 3
COPY USE F_UTILPG BEGIN
CHECKTYPE REQUIRED PROMPT 44 12 ""
COPY DISPLAY F_BILCHG COPY USE F_UTILPG
COPY OUTPUT F_UTILPG CHECKTYPE REQUIRED
COPY INPUT F_UTILPG COPY DISPLAY F_BILCHG
END COPY OUTPUT F_UTILPG
COPY INPUT F_UTILPG
NUMBER F_UTILPS 6 END
BEGIN
PROMPT 51 12 "" NUMBER F_UTILPS 6
COPY ALL F_UTILPC BEGIN
CHECKTYPE REQUIRED PROMPT 51 12 ""
END COPY ALL F_UTILPC
CHECKTYPE REQUIRED
NUMBER F_PERDPG 3 END
BEGIN
PROMPT 3 13 "Perdita d'esercizio c/to patr. " NUMBER F_PERDPG 3
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ((INDBIL="1")||(INDBIL="2")||(INDBIL="5")) BEGIN
CHECKTYPE REQUIRED PROMPT 3 13 "Perdita d'esercizio c/to patr. "
COPY DISPLAY F_BILCHG USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ((INDBIL="1")||(INDBIL="2")||(INDBIL="5"))
OUTPUT F_PERDPG GRUPPO CHECKTYPE REQUIRED
OUTPUT F_PERDPC CONTO COPY DISPLAY F_BILCHG
OUTPUT F_PERDPS SOTTOCONTO OUTPUT F_PERDPG GRUPPO
INPUT GRUPPO F_PERDPG OUTPUT F_PERDPC CONTO
INPUT CONTO F_PERDPC OUTPUT F_PERDPS SOTTOCONTO
INPUT SOTTOCONTO F_PERDPS INPUT GRUPPO F_PERDPG
END INPUT CONTO F_PERDPC
INPUT SOTTOCONTO F_PERDPS
NUMBER F_PERDPC 3 END
BEGIN
PROMPT 44 13 "" NUMBER F_PERDPC 3
COPY USE F_PERDPG BEGIN
CHECKTYPE REQUIRED PROMPT 44 13 ""
COPY DISPLAY F_BILCHG COPY USE F_PERDPG
COPY OUTPUT F_PERDPG CHECKTYPE REQUIRED
COPY INPUT F_PERDPG COPY DISPLAY F_BILCHG
END COPY OUTPUT F_PERDPG
COPY INPUT F_PERDPG
NUMBER F_PERDPS 6 END
BEGIN
PROMPT 51 13 "" NUMBER F_PERDPS 6
COPY ALL F_PERDPC BEGIN
CHECKTYPE REQUIRED PROMPT 51 13 ""
END COPY ALL F_PERDPC
CHECKTYPE REQUIRED
NUMBER F_UTILEG 3 END
BEGIN
PROMPT 3 14 "Utile d'esercizio c/to econom. " NUMBER F_UTILEG 3
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ((INDBIL="3")||(INDBIL="4")) BEGIN
CHECKTYPE REQUIRED PROMPT 3 14 "Utile d'esercizio c/to econom. "
COPY DISPLAY F_BILCHG USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ((INDBIL="3")||(INDBIL="4"))
OUTPUT F_UTILEG GRUPPO CHECKTYPE REQUIRED
OUTPUT F_UTILEC CONTO COPY DISPLAY F_BILCHG
OUTPUT F_UTILES SOTTOCONTO OUTPUT F_UTILEG GRUPPO
INPUT GRUPPO F_UTILEG OUTPUT F_UTILEC CONTO
INPUT CONTO F_UTILEC OUTPUT F_UTILES SOTTOCONTO
INPUT SOTTOCONTO F_UTILES INPUT GRUPPO F_UTILEG
END INPUT CONTO F_UTILEC
INPUT SOTTOCONTO F_UTILES
NUMBER F_UTILEC 3 END
BEGIN
PROMPT 44 14 "" NUMBER F_UTILEC 3
COPY USE F_UTILEG BEGIN
CHECKTYPE REQUIRED PROMPT 44 14 ""
COPY DISPLAY F_BILCHG COPY USE F_UTILEG
COPY OUTPUT F_UTILEG CHECKTYPE REQUIRED
COPY INPUT F_UTILEG COPY DISPLAY F_BILCHG
END COPY OUTPUT F_UTILEG
COPY INPUT F_UTILEG
NUMBER F_UTILES 6 END
BEGIN
PROMPT 51 14 "" NUMBER F_UTILES 6
COPY ALL F_UTILEC BEGIN
CHECKTYPE REQUIRED PROMPT 51 14 ""
END COPY ALL F_UTILEC
CHECKTYPE REQUIRED
NUMBER F_PERDEG 3 END
BEGIN
PROMPT 3 15 "Perdita d'esercizio c/to econ. " NUMBER F_PERDEG 3
USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ( (INDBIL="3")||(INDBIL="4") ) BEGIN
CHECKTYPE REQUIRED PROMPT 3 15 "Perdita d'esercizio c/to econ. "
COPY DISPLAY F_BILCHG USE LF_PCON KEY 1 SELECT (SOTTOCONTO!="") && ( (INDBIL="3")||(INDBIL="4") )
OUTPUT F_PERDEG GRUPPO CHECKTYPE REQUIRED
OUTPUT F_PERDEC CONTO COPY DISPLAY F_BILCHG
OUTPUT F_PERDES SOTTOCONTO OUTPUT F_PERDEG GRUPPO
INPUT GRUPPO F_PERDEG OUTPUT F_PERDEC CONTO
INPUT CONTO F_PERDEC OUTPUT F_PERDES SOTTOCONTO
INPUT SOTTOCONTO F_PERDES INPUT GRUPPO F_PERDEG
END INPUT CONTO F_PERDEC
INPUT SOTTOCONTO F_PERDES
NUMBER F_PERDEC 3
BEGIN END
PROMPT 44 15 ""
COPY USE F_PERDEG NUMBER F_PERDEC 3
CHECKTYPE REQUIRED BEGIN
COPY DISPLAY F_BILCHG PROMPT 44 15 ""
COPY OUTPUT F_PERDEG COPY USE F_PERDEG
COPY INPUT F_PERDEG CHECKTYPE REQUIRED
END COPY DISPLAY F_BILCHG
COPY OUTPUT F_PERDEG
NUMBER F_PERDES 6 COPY INPUT F_PERDEG
BEGIN END
PROMPT 51 15 ""
COPY ALL F_PERDEC NUMBER F_PERDES 6
CHECKTYPE REQUIRED BEGIN
END PROMPT 51 15 ""
COPY ALL F_PERDEC
BUTTON DLG_OK 9 2 CHECKTYPE REQUIRED
BEGIN END
PROMPT -12 -1 ""
END BUTTON DLG_OK 9 2
BEGIN
BUTTON DLG_CANCEL 9 2 PROMPT -12 -1 ""
BEGIN END
PROMPT -22 -1 ""
END BUTTON DLG_QUIT 9 2
BEGIN
ENDPAGE PROMPT -22 -1 ""
END
ENDMASK
ENDPAGE
ENDMASK