Correzzioni varie a causalki lista movimenti, mastrini e stampa causali

git-svn-id: svn://10.65.10.50/trunk@100 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1994-08-30 10:59:55 +00:00
parent 11ce8c230c
commit e00b2a76f8
15 changed files with 3430 additions and 3403 deletions

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -18,8 +18,9 @@ BEGIN
MESSAGE SHOW,205|HIDE,105|HIDE,305
ITEM "F|Fornitore"
MESSAGE SHOW,305|HIDE,105|HIDE,205
FLAGS "U"
// FLAGS "DG"
FLAGS "DG"
GROUP 1
// FLAGS "U"
END
NUMBER 103 3
@ -34,10 +35,12 @@ BEGIN
CHECKTYPE NORMAL
OUTPUT 103 GRUPPO
OUTPUT 107 DESCR
OUTPUT 102 TMCF
WARNING "Conto inesistente o mancante"
// OUTPUT 102 TMCF
WARNING "Gruppo inesistente o mancante"
// CHECKTYPE REQUIRED
CHECKTYPE NORMAL
GROUP 1
ADD RUN CG1 -0
ADD RUN CG0 -1
END
NUMBER 104 3
@ -57,7 +60,7 @@ BEGIN
OUTPUT 103 GRUPPO
OUTPUT 107 DESCR
WARNING "Conto inesistente o mancante"
ADD RUN CG1 -0
ADD RUN CG0 -1
GROUP 1
END
@ -74,11 +77,11 @@ BEGIN
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT 105 SOTTOCONTO
OUTPUT 103 GRUPPO
OUTPUT 104 CONTO
OUTPUT 104 CONTO
OUTPUT 105 SOTTOCONTO
OUTPUT 107 DESCR
ADD RUN CG1 -0
ADD RUN CG0 -1
CHECKTYPE NORMAL
GROUP 1
END
@ -97,9 +100,6 @@ BEGIN
DISPLAY "Sottoconto" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Tipo C/F" TIPOCF
OUTPUT 102 TIPOCF
OUTPUT 103 GRUPPO
OUTPUT 104 CONTO
OUTPUT 205 CODCF
OUTPUT 107 RAGSOC
CHECKTYPE NORMAL
@ -122,9 +122,6 @@ BEGIN
DISPLAY "Sottoconto" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
DISPLAY "Tipo C/F" TIPOCF
OUTPUT 102 TIPOCF
OUTPUT 103 GRUPPO
OUTPUT 104 CONTO
OUTPUT 305 CODCF
OUTPUT 107 RAGSOC
CHECKTYPE NORMAL

View File

@ -1,338 +1,338 @@
#include <applicat.h>
#include <tabutil.h>
#include "cg0501.h"
#include "cg0500.h"
#include <causali.h>
const char* iva2name(TipoIVA iva)
{
const char* i;
switch(iva)
{
case nessuna_iva : i = "Nessuna IVA"; break;
case iva_acquisti: i = "IVA Acquisti"; break;
case iva_vendite : i = "IVA Vendite"; break;
default : i = "IVA ERRATA!"; break;
}
return i;
}
///////////////////////////////////////////////////////////
// Registro
///////////////////////////////////////////////////////////
TRegistro::TRegistro(const char* cod, int year) : _rec(LF_TAB), _att(LF_ATTIV)
{
read(cod, year);
}
bool TRegistro::read(const char* cod, int year)
{
if (year <= 0)
{
const TDate oggi(TODAY);
year = oggi.year();
}
int err = ~NOERR;
if (cod && *cod > ' ')
{
TTable reg("REG");
TString16 chiave;
chiave << year << cod;
reg.put("CODTAB", chiave);
err = reg.read();
if (err == NOERR)
_rec = reg.curr();
}
if (_att.ok())
_att.zero();
if (err != NOERR && _rec.ok())
_rec.zero();
return err == NOERR;
}
TRegistro& TRegistro::operator =(const TRegistro& r)
{
_rec = r._rec;
_att = r._att;
return *this;
}
bool TRegistro::corrisp() const
#include <applicat.h>
#include <tabutil.h>
#include "cg0501.h"
#include "cg0500.h"
#include <causali.h>
const char* iva2name(TipoIVA iva)
{
const bool t = _rec.ok() ? _rec.get_bool("B0") : FALSE;
return t;
const char* i;
switch(iva)
{
case nessuna_iva : i = "Nessuna IVA"; break;
case iva_acquisti: i = "IVA Acquisti"; break;
case iva_vendite : i = "IVA Vendite"; break;
default : i = "IVA ERRATA!"; break;
}
return i;
}
int TRegistro::tipo() const
{
const int t = _rec.ok() ? _rec.get_int("I0") : 0;
return t;
}
TipoIVA TRegistro::iva() const
{
TipoIVA i = (TipoIVA)tipo();
if (i != nessuna_iva && i != iva_vendite && i != iva_acquisti)
{
error_box("Il registro '%s' non e' un registro iva, tipo: %d",
(const char*)_rec.get("CODTAB"), i);
i = nessuna_iva;
}
return i;
}
bool TRegistro::read_att()
{
if (!_att.empty())
return TRUE;
TLocalisamfile attivita(LF_ATTIV);
attivita.put("CODDITTA", MainApp()->get_firm());
const char* a = _rec.get("S8");
attivita.put("CODATT", a);
const int err = attivita.read();
_att = attivita.curr();
if (err != NOERR)
_att.zero();
return err == NOERR;
}
bool TRegistro::agenzia_viaggi()
{
if (iva() != iva_vendite)
return FALSE;
bool av = FALSE;
if (read_att()) av = _att.get_bool("REG74TER");
return av;
}
const TString& TRegistro::tipo_attivita()
{
read_att();
return _att.get("TIPOATT");
}
// Certified 99%
bool TRegistro::update(long protiva, const TDate& datareg)
{
bool updated = TRUE;
if (protiva > _rec.get_long("I5"))
{
_rec.put("I5", protiva);
updated = FALSE;
}
if (datareg > _rec.get_date("D2"))
{
_rec.put("D2", datareg);
updated = FALSE;
}
if (!updated)
{
TTable reg("REG");
updated = reg.rewrite(_rec) == NOERR;
}
return updated;
}
///////////////////////////////////////////////////////////
// Libro giornale
///////////////////////////////////////////////////////////
// Legge il libro giornale dell'anno specificato
bool TLibro_giornale::read(int y)
{
if (y <= 0)
{
const TDate oggi(TODAY);
y = oggi.year();
}
if (ok() && y == year()) return TRUE; // Gia' letto!
TTable reg("REG");
bool found = FALSE;
char anno[8]; sprintf(anno, "%4d", y);
reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y
for (int err = reg.read(_isgteq); err == NOERR; err = reg.next())
{
if (strncmp(reg.get("CODTAB"), anno, 4) != 0) break;
if (reg.get_int("I0") == libro_giornale)
{
found = TRUE;
break;
}
}
if (!found) reg.zero(); // Memorizza record (anche vuoto)
_rec = reg.curr();
return found;
}
TLibro_giornale::TLibro_giornale(int y)
{
read(y);
}
///////////////////////////////////////////////////////////
// Causale
///////////////////////////////////////////////////////////
TCausale::TCausale(const char* cod, int year)
: TArray(12), _rec(LF_CAUSALI), _iva(iva_errata)
{
if (*cod) read(cod, year);
}
// Legge le righe della causale attualmente selezionata sulla maschera
bool TCausale::read(const char* cod, int year)
{
destroy(); // Delete all rows
if (*cod > ' ')
{
_iva = iva_errata;
TLocalisamfile caus(LF_CAUSALI);
caus.setkey(1);
caus.zero();
caus.put(CAU_CODCAUS, cod);
int err = caus.read();
_rec = caus.curr();
if (err != NOERR) return FALSE;
TLocalisamfile rcaus(LF_RCAUSALI);
rcaus.setkey(1);
rcaus.zero();
rcaus.put(CAU_CODCAUS, cod);
rcaus.put(CAU_NRIGA, 0);
err = rcaus.read(_isgteq); // Find first line
if (err != NOERR) return FALSE;
while (err == NOERR && rcaus.get(CAU_CODCAUS) == cod)
{
const int riga = rcaus.get_int(CAU_NRIGA);
add(rcaus.curr(), riga);
err = rcaus.next(); // Read next line
}
rcaus.zero();
for (int riga = 1; riga < size(); riga++) // Fill gaps
if (objptr(riga) == NULL) add(rcaus.curr(), riga);
if (year > 0)
_reg.read(caus.get("REG"), year); // Read register
}
else
{
_iva = nessuna_iva; // Clear IVA data
_reg.read("", year);
}
return TRUE;
}
const TRectype& TCausale::row(int num) const
{
const TRectype* rec = (const TRectype*)objptr(num);
CHECKD(rec, "Manca la riga di causale ", num);
return *rec;
}
TConto& TCausale::bill(int num, TConto& conto) const
{
const TRectype& rec = row(num);
conto.set(rec.get_int("GRUPPO"), rec.get_int("CONTO"),
rec.get_long("SOTTOCONTO"), rec.get_char("TIPOCF"));
return conto;
}
bool TCausale::data_doc() const
{ return _rec.ok() ? _rec.get_bool("DATADOC") : FALSE; }
bool TCausale::num_doc() const
{ return _rec.ok() ? _rec.get_bool("NUMDOC") : FALSE; }
bool TCausale::apertura() const
{ return _rec.ok() ? _rec.get_char("MOVAP") == 'A' : FALSE; }
bool TCausale::sezionale() const
{ return _rec.ok() ? _rec.get_bool("MOVSEZ") : FALSE; }
bool TCausale::valuta() const
{ return _rec.ok() ? _rec.get_bool("MOVVAL") : FALSE; }
bool TCausale::intra() const
{ return _rec.ok() ? _rec.get_bool("INTRACOM") : FALSE; }
bool TCausale::corrval() const
{ return _rec.ok() ? _rec.get_bool("VALINTRA") : FALSE; }
const char* TCausale::causale_inc_imm() const
{ return _rec.ok() ? _rec.get("CODCAUSIM") : ""; }
const char* TCausale::tipo_doc() const
{ return _rec.ok() ? _rec.get("TIPODOC") : ""; }
TipoIVA TCausale::iva() const
{
if (_iva == iva_errata)
{
TipoIVA i = nessuna_iva;
if (ok())
{
TString tipodoc(_rec.get("TIPODOC"));
if (tipodoc.not_empty())
{
TTable tpd("%TPD");
tpd.put("CODTAB", tipodoc);
if (tpd.read() == NOERR)
{
i = (TipoIVA)tpd.get_int("I0"); // IVA acquisti, vendite, generica
if (i != iva_vendite && i != iva_acquisti)
i = _reg.iva();
}
}
}
((TCausale*)this)->_iva = i; // Ricorda IVA per la prossima volta
}
return _iva;
}
bool TCausale::similar(const TCausale& c) const
{
return iva() == c.iva() &&
sezionale() == c.sezionale() &&
valuta() == c.valuta() &&
intra() == c.intra();
///////////////////////////////////////////////////////////
// Registro
///////////////////////////////////////////////////////////
TRegistro::TRegistro(const char* cod, int year) : _rec(LF_TAB), _att(LF_ATTIV)
{
read(cod, year);
}
bool TRegistro::read(const char* cod, int year)
{
if (year <= 0)
{
const TDate oggi(TODAY);
year = oggi.year();
}
int err = ~NOERR;
if (cod && *cod > ' ')
{
TTable reg("REG");
TString16 chiave;
chiave << year << cod;
reg.put("CODTAB", chiave);
err = reg.read();
if (err == NOERR)
_rec = reg.curr();
}
if (_att.ok())
_att.zero();
if (err != NOERR && _rec.ok())
_rec.zero();
return err == NOERR;
}
TRegistro& TRegistro::operator =(const TRegistro& r)
{
_rec = r._rec;
_att = r._att;
return *this;
}
bool TRegistro::corrisp() const
{
const bool t = _rec.ok() ? _rec.get_bool("B0") : FALSE;
return t;
}
int TRegistro::tipo() const
{
const int t = _rec.ok() ? _rec.get_int("I0") : 0;
return t;
}
TipoIVA TRegistro::iva() const
{
TipoIVA i = (TipoIVA)tipo();
if (i != nessuna_iva && i != iva_vendite && i != iva_acquisti)
{
error_box("Il registro '%s' non e' un registro iva, tipo: %d",
(const char*)_rec.get("CODTAB"), i);
i = nessuna_iva;
}
return i;
}
bool TRegistro::read_att()
{
if (!_att.empty())
return TRUE;
TLocalisamfile attivita(LF_ATTIV);
attivita.put("CODDITTA", MainApp()->get_firm());
const char* a = _rec.get("S8");
attivita.put("CODATT", a);
const int err = attivita.read();
_att = attivita.curr();
if (err != NOERR)
_att.zero();
return err == NOERR;
}
bool TRegistro::agenzia_viaggi()
{
if (iva() != iva_vendite)
return FALSE;
bool av = FALSE;
if (read_att()) av = _att.get_bool("REG74TER");
return av;
}
const TString& TRegistro::tipo_attivita()
{
read_att();
return _att.get("TIPOATT");
}
// Certified 99%
bool TRegistro::update(long protiva, const TDate& datareg)
{
bool updated = TRUE;
if (protiva > _rec.get_long("I5"))
{
_rec.put("I5", protiva);
updated = FALSE;
}
if (datareg > _rec.get_date("D2"))
{
_rec.put("D2", datareg);
updated = FALSE;
}
if (!updated)
{
TTable reg("REG");
updated = reg.rewrite(_rec) == NOERR;
}
return updated;
}
///////////////////////////////////////////////////////////
// Libro giornale
///////////////////////////////////////////////////////////
// Legge il libro giornale dell'anno specificato
bool TLibro_giornale::read(int y)
{
if (y <= 0)
{
const TDate oggi(TODAY);
y = oggi.year();
}
if (ok() && y == year()) return TRUE; // Gia' letto!
TTable reg("REG");
bool found = FALSE;
char anno[8]; sprintf(anno, "%4d", y);
reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y
for (int err = reg.read(_isgteq); err == NOERR; err = reg.next())
{
if (strncmp(reg.get("CODTAB"), anno, 4) != 0) break;
if (reg.get_int("I0") == libro_giornale)
{
found = TRUE;
break;
}
}
if (!found) reg.zero(); // Memorizza record (anche vuoto)
_rec = reg.curr();
return found;
}
TLibro_giornale::TLibro_giornale(int y)
{
read(y);
}
///////////////////////////////////////////////////////////
// Causale
///////////////////////////////////////////////////////////
TCausale::TCausale(const char* cod, int year)
: TArray(12), _rec(LF_CAUSALI), _iva(iva_errata)
{
if (*cod) read(cod, year);
}
// Legge le righe della causale attualmente selezionata sulla maschera
bool TCausale::read(const char* cod, int year)
{
destroy(); // Delete all rows
if (*cod > ' ')
{
_iva = iva_errata;
TLocalisamfile caus(LF_CAUSALI);
caus.setkey(1);
caus.zero();
caus.put(CAU_CODCAUS, cod);
int err = caus.read();
_rec = caus.curr();
if (err != NOERR) return FALSE;
TLocalisamfile rcaus(LF_RCAUSALI);
rcaus.setkey(1);
rcaus.zero();
rcaus.put(CAU_CODCAUS, cod);
rcaus.put(CAU_NRIGA, 0);
err = rcaus.read(_isgteq); // Find first line
if (err != NOERR) return FALSE;
while (err == NOERR && rcaus.get(CAU_CODCAUS) == cod)
{
const int riga = rcaus.get_int(CAU_NRIGA);
add(rcaus.curr(), riga);
err = rcaus.next(); // Read next line
}
rcaus.zero();
for (int riga = 1; riga < size(); riga++) // Fill gaps
if (objptr(riga) == NULL) add(rcaus.curr(), riga);
if (year > 0)
_reg.read(caus.get("REG"), year); // Read register
}
else
{
_iva = nessuna_iva; // Clear IVA data
_reg.read("", year);
}
return TRUE;
}
const TRectype& TCausale::row(int num) const
{
const TRectype* rec = (const TRectype*)objptr(num);
CHECKD(rec, "Manca la riga di causale ", num);
return *rec;
}
TConto& TCausale::bill(int num, TConto& conto) const
{
const TRectype& rec = row(num);
conto.set(rec.get_int("GRUPPO"), rec.get_int("CONTO"),
rec.get_long("SOTTOCONTO"), rec.get_char("TIPOCF"));
return conto;
}
bool TCausale::data_doc() const
{ return _rec.ok() ? _rec.get_bool("DATADOC") : FALSE; }
bool TCausale::num_doc() const
{ return _rec.ok() ? _rec.get_bool("NUMDOC") : FALSE; }
bool TCausale::apertura() const
{ return _rec.ok() ? _rec.get_char("MOVAP") == 'A' : FALSE; }
bool TCausale::sezionale() const
{ return _rec.ok() ? _rec.get_bool("MOVSEZ") : FALSE; }
bool TCausale::valuta() const
{ return _rec.ok() ? _rec.get_bool("MOVVAL") : FALSE; }
bool TCausale::intra() const
{ return _rec.ok() ? _rec.get_bool("INTRACOM") : FALSE; }
bool TCausale::corrval() const
{ return _rec.ok() ? _rec.get_bool("VALINTRA") : FALSE; }
const char* TCausale::causale_inc_imm() const
{ return _rec.ok() ? _rec.get("CODCAUSIM") : ""; }
const char* TCausale::tipo_doc() const
{ return _rec.ok() ? _rec.get("TIPODOC") : ""; }
TipoIVA TCausale::iva() const
{
if (_iva == iva_errata)
{
TipoIVA i = nessuna_iva;
if (ok())
{
TString tipodoc(_rec.get("TIPODOC"));
if (tipodoc.not_empty())
{
TTable tpd("%TPD");
tpd.put("CODTAB", tipodoc);
if (tpd.read() == NOERR)
{
i = (TipoIVA)tpd.get_int("I0"); // IVA acquisti, vendite, generica
if (i != iva_vendite && i != iva_acquisti)
i = _reg.iva();
}
}
}
((TCausale*)this)->_iva = i; // Ricorda IVA per la prossima volta
}
return _iva;
}
bool TCausale::similar(const TCausale& c) const
{
return iva() == c.iva() &&
sezionale() == c.sezionale() &&
valuta() == c.valuta() &&
intra() == c.intra();
}

View File

@ -1,97 +1,97 @@
#ifndef __CG2103_H
#define __CG2103_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __CONTO_H
#include "conto.h"
#endif
enum TipoIVA {
iva_errata = -1,
nessuna_iva = 0,
iva_vendite = 1,
iva_acquisti = 2,
iva_generica = 9
};
const char* iva2name(TipoIVA i);
class TRegistro : public TObject
{
bool read_att();
protected:
enum TipoRegistro { libro_giornale = 5 };
TRectype _rec, _att;
public:
bool read(const char* code, int year);
TRegistro& operator =(const TRegistro& r);
virtual bool ok() const { return !_rec.empty(); }
bool corrisp() const;
int tipo() const;
TipoIVA iva() const;
const char* name() const { return _rec.get("CODTAB").mid(4); }
int year() const { return _rec.get_int("CODTAB"); }
TDate last_print() const { return _rec.get_date("D3"); }
bool agenzia_viaggi();
const TString& tipo_attivita();
bool update(long uprotiva, const TDate& lastreg);
TRegistro(const char* code = "", int year = 0);
virtual ~TRegistro() {}
};
class TLibro_giornale : public TRegistro
{
public:
bool read(int year);
TLibro_giornale(int year = 0);
virtual ~TLibro_giornale() {}
};
class TCausale : public TArray
{
TipoIVA _iva;
TRectype _rec;
TRegistro _reg;
protected:
const TRectype& row(int num) const;
public:
TConto& bill(int num, TConto& c) const;
bool data_doc() const;
bool num_doc() const;
bool apertura() const;
bool sezionale() const;
bool valuta() const;
bool intra() const;
bool corrval() const;
const char* causale_inc_imm() const;
const char* tipo_doc() const;
TRegistro& reg() { return _reg; }
TipoIVA iva() const;
virtual bool ok() const { return !_rec.empty(); }
bool similar(const TCausale& c) const;
bool read(const char* code, int year);
TCausale(const char* code = "", int year = 0);
virtual ~TCausale() {}
};
#endif
#ifndef __CG2103_H
#define __CG2103_H
#ifndef __ISAM_H
#include <isam.h>
#endif
#ifndef __CONTO_H
#include "conto.h"
#endif
enum TipoIVA {
iva_errata = -1,
nessuna_iva = 0,
iva_vendite = 1,
iva_acquisti = 2,
iva_generica = 9
};
const char* iva2name(TipoIVA i);
class TRegistro : public TObject
{
bool read_att();
protected:
enum TipoRegistro { libro_giornale = 5 };
TRectype _rec, _att;
public:
bool read(const char* code, int year);
TRegistro& operator =(const TRegistro& r);
virtual bool ok() const { return !_rec.empty(); }
bool corrisp() const;
int tipo() const;
TipoIVA iva() const;
const char* name() const { return _rec.get("CODTAB").mid(4); }
int year() const { return _rec.get_int("CODTAB"); }
TDate last_print() const { return _rec.get_date("D3"); }
bool agenzia_viaggi();
const TString& tipo_attivita();
bool update(long uprotiva, const TDate& lastreg);
TRegistro(const char* code = "", int year = 0);
virtual ~TRegistro() {}
};
class TLibro_giornale : public TRegistro
{
public:
bool read(int year);
TLibro_giornale(int year = 0);
virtual ~TLibro_giornale() {}
};
class TCausale : public TArray
{
TipoIVA _iva;
TRectype _rec;
TRegistro _reg;
protected:
const TRectype& row(int num) const;
public:
TConto& bill(int num, TConto& c) const;
bool data_doc() const;
bool num_doc() const;
bool apertura() const;
bool sezionale() const;
bool valuta() const;
bool intra() const;
bool corrval() const;
const char* causale_inc_imm() const;
const char* tipo_doc() const;
TRegistro& reg() { return _reg; }
TipoIVA iva() const;
virtual bool ok() const { return !_rec.empty(); }
bool similar(const TCausale& c) const;
bool read(const char* code, int year);
TCausale(const char* code = "", int year = 0);
virtual ~TCausale() {}
};
#endif

View File

@ -1,299 +1,299 @@
//Stampa causali
#include <mask.h>
#include <printapp.h>
#include <scanner.h>
#include <relation.h>
#include <tabutil.h>
#include <utility.h>
#include <lffiles.h>
#include <nditte.h>
#include <comuni.h>
#include <anagr.h>
#include <causali.h>
#include <rcausali.h>
#include "cg1.h"
#include "cg1700.h"
enum descr {causale, conto};
class CG1700_application : public TPrintapp
{
TLocalisamfile * _caus, * _rcaus, * _clifo, * _pcon, * _nditte, * _anag, * _com;
TRelation * _rel;
TCursor * _cur;
TMask * _msk;
TParagraph_string * _descr_causale, * _descr_conto;
TDate _data;
TString _cofi, _cap, _paiva, _ragsoc, _comunefis, _provfis, _viafis;
protected:
virtual void preprocess_header();
virtual bool preprocess_print(int,int);
virtual bool preprocess_page(int,int);
virtual bool set_print(int);
public:
void user_create() ;
void user_destroy();
void get_dati_ditta();
void setta_righe_descr(TParagraph_string*,enum descr);
int stampa_intestazione_ditta();
CG1700_application() {}
};
TRectype& leggi_com (const char * cod, TLocalisamfile *comuni)
{
comuni->zero();
comuni->put(COM_COM, cod);
comuni->read();
if (comuni->bad())
comuni->zero();
return comuni->curr();
}
void CG1700_application::get_dati_ditta()
{
TLocalisamfile nditte(LF_NDITTE);
TLocalisamfile anag(LF_ANAG);
TString codanagr;
TString tipoa;
nditte.zero();
nditte.put(NDT_CODDITTA, get_firm());
nditte.read();
if (nditte.bad()) nditte.zero();
codanagr = nditte.get(NDT_CODANAGR);
tipoa = nditte.get(NDT_TIPOA);
_ragsoc = nditte.get(NDT_RAGSOC);
anag.setkey(1);
anag.zero();
anag.put (ANA_TIPOA, tipoa);
anag.put (ANA_CODANAGR, codanagr);
anag.read();
if (anag.bad()) anag.zero();
_cofi = anag.get(ANA_COFI);
_paiva = anag.get(ANA_PAIV);
_comunefis = anag.get(ANA_COMRF);
if (_comunefis.empty())
_comunefis = anag.get(ANA_COMRES);
TRectype dep = leggi_com (_comunefis, _com);
_comunefis = dep.get(COM_DENCOM);
_provfis = dep.get(COM_PROVCOM);
_cap = dep.get(COM_CAPCOM);
if (_comunefis.empty())
{
_viafis = anag.get(ANA_INDRF);
_viafis.rtrim();
_viafis << " " << anag.get (ANA_CIVRF);
}
else
{
_viafis = anag.get(ANA_INDRES);
_viafis.rtrim();
_viafis << " " << anag.get (ANA_CIVRES);
}
}
int CG1700_application::stampa_intestazione_ditta()
{
int r = 1;
TString codice_ditta;
TString riga(132);
get_dati_ditta();
codice_ditta << get_firm();
set_header (r, "Ditta %s %s Via %s %s %s %s", (const char*)codice_ditta,
(const char*)_ragsoc, (const char*)_viafis,
(const char*)_cap, (const char*)_comunefis,
(const char*)_provfis);
r++;
printer().setdate(_data);
riga = "Data @< Pag. @#";
riga.right_just(127);
riga.overwrite (format ("Partita iva %s Codice fiscale %s", (const char*)_paiva, (const char*)_cofi));
set_header (r, "%s", (const char*) riga);
r++;
return r;
}
void CG1700_application::preprocess_header()
{
int r;
TString riga (132);
reset_header();
r = stampa_intestazione_ditta();
set_header(r, "ELENCO CAUSALI");
r++;
riga.fill('-');
set_header(r++, (const char*) riga);
//riga = "";
//set_header(r, (const char*) riga);
set_header(r++, "@5gDescrizione@30gTipo Codice@55gDescrizione@80gDes Reg. All. Mod Gest Num. Data Cau. Intr. Fat");
set_header(r++, "Cod. Causale@30gDoc. Conto@51gD/A Conto@80gAgg IVA IVA 770 Cesp Sald Doc. Doc. Rif. Op/v. Rit");
set_header(r++, (const char*) riga);
}
bool CG1700_application::preprocess_print(int file, int counter)
{
switch (file)
{
case LF_CAUSALI:
reset_print();
if (current_cursor()->items() == 0)
{
warning_box ("Non ci sono causali. La stampa e' annullata");
return FALSE;
}
set_wait_message("Stampa in corso");
break;
case LF_RCAUSALI:
break;
default:
break;
}
return TRUE;
}
bool CG1700_application::preprocess_page(int file,int count)
{
TString cau_descr, rcau_descr;
reset_print();
switch (file)
{
case LF_CAUSALI:
cau_descr = current_cursor()->file(LF_CAUSALI)->get(CAU_DESCR);
*_descr_causale = (const char*) cau_descr;
setta_righe_descr(_descr_causale,causale);
set_row(1, "@0g@3s", FLD(LF_CAUSALI,CAU_CODCAUS));
set_row(1, "@30g@2s", FLD(LF_CAUSALI,CAU_TIPODOC));
set_row(1, "@84g@3s", FLD(LF_CAUSALI,CAU_REG));
set_row(1, "@89g@f", FLD(LF_CAUSALI,CAU_ALLEG));
set_row(1, "@95g@1s", FLD(LF_CAUSALI,CAU_M770));
set_row(1, "@99g@1s", FLD(LF_CAUSALI,CAU_COLLCESP));
set_row(1, "@104g@1n", FLD(LF_CAUSALI,CAU_TIPOMOV));
set_row(1, "@108g@f", FLD(LF_CAUSALI,CAU_NUMDOC));
set_row(1, "@113g@f", FLD(LF_CAUSALI,CAU_DATADOC));
set_row(1, "@118g@3s", FLD(LF_CAUSALI,CAU_CODCAUSIM));
set_row(1, "@123g@f", FLD(LF_CAUSALI,CAU_INTRACOM));
set_row(1, "@126g@f", FLD(LF_CAUSALI,CAU_MOVVAL));
set_row(1, "@130g@f", FLD(LF_CAUSALI,CAU_RITFATT));
break;
case LF_RCAUSALI:
rcau_descr = current_cursor()->file(LF_RCAUSALI)->get(RCA_DESC);
*_descr_conto = (const char*) rcau_descr;
setta_righe_descr(_descr_conto,conto);
set_row (1, "@35g@3n", FLD(LF_RCAUSALI,RCA_GRUPPO));
set_row (1, "@39g@3n", FLD(LF_RCAUSALI,RCA_CONTO));
set_row (1, "@43g@6n", FLD(LF_RCAUSALI,RCA_SOTTOCONTO));
set_row (1, "@51g@1s", FLD(LF_RCAUSALI,RCA_SEZIONE));
set_row (1, "@80g@3s", FLD(LF_RCAUSALI,RCA_CODDESC));
break;
default:
break;
}
return TRUE;
}
void CG1700_application::setta_righe_descr(TParagraph_string* str, enum descr desc)
{
const char* r;
int i = 1;
TString frm;
switch (desc)
{
case causale:
frm = "@5g%s";
break;
case conto:
frm = "@55g%s";
break;
default:
break;
}
while ((r = str->get()) != NULL)
{
set_row (i, (const char*)frm, r);
i++;
}
}
bool CG1700_application::set_print(int)
{
KEY tasto;
tasto = _msk->run();
if (tasto == K_ENTER)
{
_data = _msk->get(F_DATASTAMPA);
add_file(LF_CAUSALI);
add_file(LF_RCAUSALI,LF_CAUSALI);
return TRUE;
}
return FALSE;
}
void CG1700_application::user_create()
{
_msk = new TMask("cg1700a");
_rel = new TRelation (LF_CAUSALI);
_rel->add(LF_RCAUSALI,"CODCAUS=CODCAUS",1);
_cur = new TCursor (_rel,"", 1);
add_cursor(_cur);
_caus = new TLocalisamfile(LF_CAUSALI);
_rcaus = new TLocalisamfile(LF_RCAUSALI);
_com = new TLocalisamfile(LF_COMUNI);
_pcon = new TLocalisamfile(LF_PCON);
_clifo = new TLocalisamfile(LF_CLIFO);
_nditte = new TLocalisamfile(LF_NDITTE);
_anag = new TLocalisamfile(LF_ANAG);
_descr_conto = new TParagraph_string ("",23);
_descr_causale = new TParagraph_string ("",23);
}
void CG1700_application::user_destroy()
{
delete _msk;
delete _cur;
delete _rel;
delete _clifo;
delete _caus;
delete _com;
delete _rcaus;
delete _pcon;
delete _nditte;
delete _anag;
delete _descr_conto;
delete _descr_causale;
}
int cg1700(int argc, char* argv[])
{
CG1700_application a;
a.run(argc, argv, "Stampa causali");
return 0;
}
//Stampa causali
#include <mask.h>
#include <printapp.h>
#include <scanner.h>
#include <relation.h>
#include <tabutil.h>
#include <utility.h>
#include <lffiles.h>
#include <nditte.h>
#include <comuni.h>
#include <anagr.h>
#include <causali.h>
#include <rcausali.h>
#include "cg1.h"
#include "cg1700.h"
enum descr {causale, conto};
class CG1700_application : public TPrintapp
{
TLocalisamfile * _caus, * _rcaus, * _clifo, * _pcon, * _nditte, * _anag, * _com;
TRelation * _rel;
TCursor * _cur;
TMask * _msk;
TParagraph_string * _descr_causale, * _descr_conto;
TDate _data;
TString _cofi, _cap, _paiva, _ragsoc, _comunefis, _provfis, _viafis;
protected:
virtual void preprocess_header();
virtual bool preprocess_print(int,int);
virtual bool preprocess_page(int,int);
virtual bool set_print(int);
public:
void user_create() ;
void user_destroy();
void get_dati_ditta();
void setta_righe_descr(TParagraph_string*,enum descr);
int stampa_intestazione_ditta();
CG1700_application() {}
};
TRectype& leggi_com (const char * cod, TLocalisamfile *comuni)
{
comuni->zero();
comuni->put(COM_COM, cod);
comuni->read();
if (comuni->bad())
comuni->zero();
return comuni->curr();
}
void CG1700_application::get_dati_ditta()
{
TLocalisamfile nditte(LF_NDITTE);
TLocalisamfile anag(LF_ANAG);
TString codanagr;
TString tipoa;
nditte.zero();
nditte.put(NDT_CODDITTA, get_firm());
nditte.read();
if (nditte.bad()) nditte.zero();
codanagr = nditte.get(NDT_CODANAGR);
tipoa = nditte.get(NDT_TIPOA);
_ragsoc = nditte.get(NDT_RAGSOC);
anag.setkey(1);
anag.zero();
anag.put (ANA_TIPOA, tipoa);
anag.put (ANA_CODANAGR, codanagr);
anag.read();
if (anag.bad()) anag.zero();
_cofi = anag.get(ANA_COFI);
_paiva = anag.get(ANA_PAIV);
_comunefis = anag.get(ANA_COMRF);
if (_comunefis.empty())
_comunefis = anag.get(ANA_COMRES);
TRectype dep = leggi_com (_comunefis, _com);
_comunefis = dep.get(COM_DENCOM);
_provfis = dep.get(COM_PROVCOM);
_cap = dep.get(COM_CAPCOM);
if (_comunefis.empty())
{
_viafis = anag.get(ANA_INDRF);
_viafis.rtrim();
_viafis << " " << anag.get (ANA_CIVRF);
}
else
{
_viafis = anag.get(ANA_INDRES);
_viafis.rtrim();
_viafis << " " << anag.get (ANA_CIVRES);
}
}
int CG1700_application::stampa_intestazione_ditta()
{
int r = 1;
TString codice_ditta;
TString riga(132);
get_dati_ditta();
codice_ditta << get_firm();
set_header (r, "Ditta %s %s %s %s %s %s", (const char*)codice_ditta,
(const char*)_ragsoc, (const char*)_viafis,
(const char*)_cap, (const char*)_comunefis,
(const char*)_provfis);
r++;
printer().setdate(_data);
riga = "Data @< Pag. @#";
riga.right_just(127);
riga.overwrite (format ("Partita iva %s Codice fiscale %s", (const char*)_paiva, (const char*)_cofi));
set_header (r, "%s", (const char*) riga);
r++;
return r;
}
void CG1700_application::preprocess_header()
{
int r;
TString riga (132);
reset_header();
r = stampa_intestazione_ditta();
set_header(r, "ELENCO CAUSALI");
r++;
riga.fill('-');
set_header(r++, (const char*) riga);
//riga = "";
//set_header(r, (const char*) riga);
set_header(r++, "@5gDescrizione@30gTipo Codice@55gDescrizione@80gDes Reg. All. Mod Gest Num. Data Cau. Intr. Fat");
set_header(r++, "Cod. Causale@30gDoc. Conto@51gD/A Conto@80gAgg IVA IVA 770 Cesp Sald Doc. Doc. Rif. Op/v. Rit");
set_header(r++, (const char*) riga);
}
bool CG1700_application::preprocess_print(int file, int counter)
{
switch (file)
{
case LF_CAUSALI:
reset_print();
if (current_cursor()->items() == 0)
{
warning_box ("Non ci sono causali. La stampa e' annullata");
return FALSE;
}
set_wait_message("Stampa in corso");
break;
case LF_RCAUSALI:
break;
default:
break;
}
return TRUE;
}
bool CG1700_application::preprocess_page(int file,int count)
{
TString cau_descr, rcau_descr;
reset_print();
switch (file)
{
case LF_CAUSALI:
cau_descr = current_cursor()->file(LF_CAUSALI)->get(CAU_DESCR);
*_descr_causale = (const char*) cau_descr;
setta_righe_descr(_descr_causale,causale);
set_row(1, "@0g@3s", FLD(LF_CAUSALI,CAU_CODCAUS));
set_row(1, "@30g@2s", FLD(LF_CAUSALI,CAU_TIPODOC));
set_row(1, "@84g@3s", FLD(LF_CAUSALI,CAU_REG));
set_row(1, "@89g@f", FLD(LF_CAUSALI,CAU_ALLEG));
set_row(1, "@95g@1s", FLD(LF_CAUSALI,CAU_M770));
set_row(1, "@99g@1s", FLD(LF_CAUSALI,CAU_COLLCESP));
set_row(1, "@104g@1n", FLD(LF_CAUSALI,CAU_TIPOMOV));
set_row(1, "@108g@f", FLD(LF_CAUSALI,CAU_NUMDOC));
set_row(1, "@113g@f", FLD(LF_CAUSALI,CAU_DATADOC));
set_row(1, "@118g@3s", FLD(LF_CAUSALI,CAU_CODCAUSIM));
set_row(1, "@123g@f", FLD(LF_CAUSALI,CAU_INTRACOM));
set_row(1, "@126g@f", FLD(LF_CAUSALI,CAU_MOVVAL));
set_row(1, "@130g@f", FLD(LF_CAUSALI,CAU_RITFATT));
break;
case LF_RCAUSALI:
rcau_descr = current_cursor()->file(LF_RCAUSALI)->get(RCA_DESC);
*_descr_conto = (const char*) rcau_descr;
setta_righe_descr(_descr_conto,conto);
set_row (1, "@35g@3n", FLD(LF_RCAUSALI,RCA_GRUPPO));
set_row (1, "@39g@3n", FLD(LF_RCAUSALI,RCA_CONTO));
set_row (1, "@43g@6n", FLD(LF_RCAUSALI,RCA_SOTTOCONTO));
set_row (1, "@51g@1s", FLD(LF_RCAUSALI,RCA_SEZIONE));
set_row (1, "@80g@3s", FLD(LF_RCAUSALI,RCA_CODDESC));
break;
default:
break;
}
return TRUE;
}
void CG1700_application::setta_righe_descr(TParagraph_string* str, enum descr desc)
{
const char* r;
int i = 1;
TString frm;
switch (desc)
{
case causale:
frm = "@5g%s";
break;
case conto:
frm = "@55g%s";
break;
default:
break;
}
while ((r = str->get()) != NULL)
{
set_row (i, (const char*)frm, r);
i++;
}
}
bool CG1700_application::set_print(int)
{
KEY tasto;
tasto = _msk->run();
if (tasto == K_ENTER)
{
_data = _msk->get(F_DATASTAMPA);
return TRUE;
}
return FALSE;
}
void CG1700_application::user_create()
{
_msk = new TMask("cg1700a");
_rel = new TRelation (LF_CAUSALI);
_rel->add(LF_RCAUSALI,"CODCAUS=CODCAUS",1);
_cur = new TCursor (_rel,"", 1);
add_cursor(_cur);
_caus = new TLocalisamfile(LF_CAUSALI);
_rcaus = new TLocalisamfile(LF_RCAUSALI);
_com = new TLocalisamfile(LF_COMUNI);
_pcon = new TLocalisamfile(LF_PCON);
_clifo = new TLocalisamfile(LF_CLIFO);
_nditte = new TLocalisamfile(LF_NDITTE);
_anag = new TLocalisamfile(LF_ANAG);
_descr_conto = new TParagraph_string ("",23);
_descr_causale = new TParagraph_string ("",23);
add_file(LF_CAUSALI);
add_file(LF_RCAUSALI,LF_CAUSALI);
}
void CG1700_application::user_destroy()
{
delete _msk;
delete _cur;
delete _rel;
delete _clifo;
delete _caus;
delete _com;
delete _rcaus;
delete _pcon;
delete _nditte;
delete _anag;
delete _descr_conto;
delete _descr_causale;
}
int cg1700(int argc, char* argv[])
{
CG1700_application a;
a.run(argc, argv, "Stampa causali");
return 0;
}

View File

@ -1,24 +1,24 @@
#ifndef __CG1700_H
#define __CG1700_H
#define F_CODDITTA 101
#define F_DATASTAMPA 102
#define F_RAGSOC 104
#endif // __CG1700_H
#ifndef __CG1700_H
#define __CG1700_H
#define F_CODDITTA 101
#define F_DATASTAMPA 102
#define F_RAGSOC 104
#endif // __CG1700_H

View File

@ -1,49 +1,49 @@
#include "cg1700.h"
PAGE "" -1 -1 70 10
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 1 4 "Data stampa "
FLAGS "A"
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT 30 8 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT 46 8 ""
END
ENDPAGE
ENDMASK
#include "cg1700.h"
PAGE "" -1 -1 70 10
NUMBER F_CODDITTA 5
BEGIN
PROMPT 1 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 1 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 1 4 "Data stampa "
FLAGS "A"
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT 30 8 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT 46 8 ""
END
ENDPAGE
ENDMASK

View File

@ -1,68 +1,68 @@
#ifndef __CG3100_H
#define __CG3100_H
#define TAB_REG "REG"
#define TAB_TPD "%TPD"
#define TAB_VAL "%VAL"
#define TAB_IVA "%IVA"
#define F_CODDITTA 101
#define F_DATASTAMPA 102
#define F_RAGSOC 104
#define F_CONTROLLO 105
#define F_ANNO 106
#define F_ALLEGATO 107
#define F_DATAINI 108
#define F_DATAFIN 109
#define F_NUMEROINI 110
#define F_NUMEROFIN 111
#define F_CAUSALEINI 112
#define F_CAUSALEFIN 113
#define F_REGISTROINI 114
#define F_REGISTROFIN 115
#define F_STAMPA 116
#define F_TIPOELENCO 117
#define F_CODICEINI 118
#define F_CODICEFIN 119
#define F_CAMBIO 120
#define F_DECIDI 121
#define F_ANNOC 122
#define F_CODICEINI1 123
#define F_CODICEFIN1 124
#define F_MOVIMENTI 125
#define F_STAMPAMOVP 126
#define ST_DATA 0x0001
#define ST_NUMERO 0x0002
#define ST_CAUSALE 0x0004
#define ST_REGISTRO 0x0008
#define ST_DATI_IVA 0x0010
#define ST_CONTROLLO 0x0020
#define ST_SOLO_MOVERR 0x0040
#define ST_SENZA_CONTR 0x0080
#define ST_MESSAGGI 0x0100
#define ST_ANNO_COMP 0x0200
#define ST_MESS_ALLEG 0x0400
#define ST_COMPLETA_DATA 0x0800
#define ST_COMPLETA_NUM 0x1000
#define ST_COMPLETA_CAUS 0x2000
#define ST_COMPLETA_REG 0x4000
#define ST_CODICE 0x8000
#endif // __CG3100_H
#ifndef __CG3100_H
#define __CG3100_H
#define TAB_REG "REG"
#define TAB_TPD "%TPD"
#define TAB_VAL "%VAL"
#define TAB_IVA "%IVA"
#define F_CODDITTA 101
#define F_DATASTAMPA 102
#define F_RAGSOC 104
#define F_CONTROLLO 105
#define F_ANNO 106
#define F_ALLEGATO 107
#define F_DATAINI 108
#define F_DATAFIN 109
#define F_NUMEROINI 110
#define F_NUMEROFIN 111
#define F_CAUSALEINI 112
#define F_CAUSALEFIN 113
#define F_REGISTROINI 114
#define F_REGISTROFIN 115
#define F_STAMPA 116
#define F_TIPOELENCO 117
#define F_CODICEINI 118
#define F_CODICEFIN 119
#define F_CAMBIO 120
#define F_DECIDI 121
#define F_ANNOC 122
#define F_CODICEINI1 123
#define F_CODICEFIN1 124
#define F_MOVIMENTI 125
#define F_STAMPAMOVP 126
#define ST_DATA 0x0001
#define ST_NUMERO 0x0002
#define ST_CAUSALE 0x0004
#define ST_REGISTRO 0x0008
#define ST_DATI_IVA 0x0010
#define ST_CONTROLLO 0x0020
#define ST_SOLO_MOVERR 0x0040
#define ST_SENZA_CONTR 0x0080
#define ST_MESSAGGI 0x0100
#define ST_ANNO_COMP 0x0200
#define ST_MESS_ALLEG 0x0400
#define ST_COMPLETA_DATA 0x0800
#define ST_COMPLETA_NUM 0x1000
#define ST_COMPLETA_CAUS 0x2000
#define ST_COMPLETA_REG 0x4000
#define ST_CODICE 0x8000
#endif // __CG3100_H

View File

@ -1,206 +1,216 @@
#include "cg3100.h"
PAGE "" -1 -1 76 20
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 3 "Anno esercizio "
//HELP "Se non indicato nessun anno esercizio significa che si richiede la stampa come specificato nei campi: dalla data, alla data"
USE ESC
CHECKTYPE REQUIRED
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
FLAGS "A"
END
RADIOBUTTON F_MOVIMENTI 38
BEGIN
PROMPT 30 3 "Scelta stampa "
HELP "Indicare il tipo di stampa"
ITEM "0|Lista movimenti"
#include "cg3100.h"
PAGE "" -1 -1 76 20
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 3 "Anno esercizio "
//HELP "Se non indicato nessun anno esercizio significa che si richiede la stampa come specificato nei campi: dalla data, alla data"
USE ESC
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
END
RADIOBUTTON F_MOVIMENTI 38
BEGIN
PROMPT 30 3 "Scelta stampa "
HELP "Indicare il tipo di stampa"
ITEM "0|Lista movimenti"
MESSAGE SHOW,F_CONTROLLO|SHOW,1@|SHOW,F_REGISTROFIN|SHOW,F_REGISTROINI
ITEM "1|Lista movimenti di sola prima nota"
MESSAGE HIDE,F_CONTROLLO|HIDE,1@|HIDE,F_REGISTROFIN|HIDE,F_REGISTROINI|HIDE,F_STAMPA
END
LIST F_CONTROLLO 23
BEGIN
PROMPT 2 7 "Controllo movimenti errati "
HELP "La scelta 1 stampa solo le registrazioni errate; la scelta 2 permette di listare tutte le registrazioni inserite, segnalando quelle errate; la scelta 2 stampa solo le registrazioni non errate"
ITEM "1|Stampa movimenti errati" MESSAGE SHOW,1@
ITEM "2|Si" MESSAGE SHOW,1@
ITEM "3|No" MESSAGE HIDE,1@
END
TEXT DLG_NULL
BEGIN
GROUP 1
PROMPT 2 8 "Stampa messaggi : "
END
BOOLEAN F_ANNOC
BEGIN
GROUP 1
PROMPT 20 8 "anno di competenza "
END
BOOLEAN F_ALLEGATO
BEGIN
GROUP 1
PROMPT 20 9 "allegato iva "
MESSAGE TRUE DISABLE,F_STAMPA|COPY,F_STAMPA
MESSAGE FALSE ENABLE,F_STAMPA
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 10 "Stampa "
ITEM "2|data" MESSAGE DISABLE,2@|RESET,2@|ENABLE,3@
ITEM "1|numero" MESSAGE DISABLE,3@|RESET,3@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
PROMPT 19 11 "Stampa mov. dalla data "
HELP "Se non indicato nessun valore viene effettuata una stampa completa in ordine di data"
GROUP 3
END
DATE F_DATAFIN
BEGIN
PROMPT 55 11 "alla data "
GROUP 3
END
NUMBER F_NUMEROINI 7
BEGIN
PROMPT 19 12 "Stampa mov. dal numero "
FLAGS "R"
GROUP 2
END
NUMBER F_NUMEROFIN 7
BEGIN
PROMPT 55 12 "al numero "
FLAGS "R"
GROUP 2
END
NUMBER F_CAUSALEINI 3
BEGIN
PROMPT 2 14 "Stampa dalla causale "
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CAUSALEINI
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEINI CODCAUS
FLAGS "R"
HELP "Introdurre codice causale di inizio stampa: vuoto = inizio archivio"
END
NUMBER F_CAUSALEFIN 3
BEGIN
PROMPT 40 14 "alla causale "
COPY USE F_CAUSALEINI
INPUT CODCAUS F_CAUSALEFIN
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEFIN CODCAUS
FLAGS "R"
HELP "Introdurre codice causale di fine stampa: vuoto = fine archivio"
END
STRING F_REGISTROINI 3
BEGIN
PROMPT 2 15 "Stampa dal registro iva "
USE REG SELECT I0<"3"
INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROINI
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROINI CODTAB[5,7]
FLAGS "R"
CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di inizio stampa: vuoto = inizio archivio"
END
STRING F_REGISTROFIN 3
BEGIN
PROMPT 40 15 "al reg. iva "
COPY USE F_REGISTROINI
INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROFIN
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROFIN CODTAB[5,7]
FLAGS "R"
CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di fine stampa: vuoto = fine archivio"
END
BOOLEAN F_STAMPA
BEGIN
PROMPT 2 16 "Stampa imponibili, imposte e codici iva "
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 17 "Stampa movimenti provvisori "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 17 "N.B. se non indicato nessun valore stampa completa in ordine di data"
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
ITEM "1|Lista movimenti di sola prima nota"
MESSAGE HIDE,F_CONTROLLO|HIDE,1@|HIDE,F_REGISTROFIN|HIDE,F_REGISTROINI|HIDE,F_STAMPA
END
LIST F_CONTROLLO 23
BEGIN
PROMPT 2 7 "Controllo movimenti errati "
HELP "La scelta 1 stampa solo le registrazioni errate; la scelta 2 permette di listare tutte le registrazioni inserite, segnalando quelle errate; la scelta 3 stampa solo le registrazioni non errate"
ITEM "1|Stampa movimenti errati" MESSAGE SHOW,1@
ITEM "2|Si" MESSAGE SHOW,1@
ITEM "3|No" MESSAGE HIDE,1@
END
TEXT DLG_NULL
BEGIN
GROUP 1
PROMPT 2 8 "Stampa messaggi : "
END
BOOLEAN F_ANNOC
BEGIN
GROUP 1
PROMPT 20 8 "anno di competenza "
END
BOOLEAN F_ALLEGATO
BEGIN
GROUP 1
PROMPT 20 9 "allegato iva "
MESSAGE TRUE DISABLE,F_STAMPA|COPY,F_STAMPA
MESSAGE FALSE ENABLE,F_STAMPA
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 10 "Stampa "
ITEM "2|data" MESSAGE DISABLE,2@|RESET,2@|ENABLE,3@
ITEM "1|numero" MESSAGE DISABLE,3@|RESET,3@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
PROMPT 19 11 "Stampa mov. dalla data "
HELP "Se non indicato nessun valore viene effettuata una stampa completa in ordine di data"
GROUP 3
END
DATE F_DATAFIN
BEGIN
PROMPT 55 11 "alla data "
GROUP 3
END
NUMBER F_NUMEROINI 7
BEGIN
PROMPT 19 12 "Stampa mov. dal numero "
USE LF_MOV KEY 1
INPUT NUMREG F_NUMEROINI
DISPLAY "Numero registrazione" NUMREG
DISPLAY "Descrizione@50" DESCR
OUTPUT F_NUMEROINI NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
END
NUMBER F_NUMEROFIN 7
BEGIN
PROMPT 55 12 "al numero "
COPY USE F_NUMEROINI
INPUT NUMREG F_NUMEROFIN
COPY DISPLAY F_NUMEROINI
OUTPUT F_NUMEROFIN NUMREG
CHECKTYPE NORMAL
FLAGS "R"
GROUP 2
END
NUMBER F_CAUSALEINI 3
BEGIN
PROMPT 2 14 "Stampa dalla causale "
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CAUSALEINI
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEINI CODCAUS
FLAGS "R"
HELP "Introdurre codice causale di inizio stampa: vuoto = inizio archivio"
END
NUMBER F_CAUSALEFIN 3
BEGIN
PROMPT 40 14 "alla causale "
COPY USE F_CAUSALEINI
INPUT CODCAUS F_CAUSALEFIN
DISPLAY "Codice causale" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CAUSALEFIN CODCAUS
FLAGS "R"
HELP "Introdurre codice causale di fine stampa: vuoto = fine archivio"
END
STRING F_REGISTROINI 3
BEGIN
PROMPT 2 15 "Stampa dal registro iva "
USE REG SELECT I0<"3"
INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROINI
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROINI CODTAB[5,7]
FLAGS "R"
CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di inizio stampa: vuoto = inizio archivio"
END
STRING F_REGISTROFIN 3
BEGIN
PROMPT 40 15 "al reg. iva "
COPY USE F_REGISTROINI
INPUT CODTAB[1,5] F_ANNO SELECT
INPUT CODTAB[5,7] F_REGISTROFIN
DISPLAY "Cod. registro iva" CODTAB[5,7]
DISPLAY "Descrizione@40" S0
OUTPUT F_REGISTROFIN CODTAB[5,7]
FLAGS "R"
CHECKTYPE NORMAL
HELP "Introdurre cod. registro iva di fine stampa: vuoto = fine archivio"
END
BOOLEAN F_STAMPA
BEGIN
PROMPT 2 16 "Stampa imponibili, imposte e codici iva "
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 17 "Stampa movimenti provvisori "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 2 17 "N.B. se non indicato nessun valore stampa completa in ordine di data"
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,156 +1,156 @@
#include "cg3100.h"
PAGE "" -1 -1 76 19
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 2 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 3 3 "Ragione sociale "
FLAGS "D"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 3 5 "Anno esercizio "
//HELP "Se non indicato nessun anno esercizio significa che si richiede la stampa come specificato nei campi: dalla data, alla data"
USE ESC KEY 1
CHECKTYPE REQUIRED
INPUT CODTAB F_ANNO
DISPLAY "Anno esercizio@50" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
END
DATE F_DATASTAMPA
BEGIN
PROMPT 3 6 "Data stampa "
FLAGS "A"
END
DATE F_DATAINI
BEGIN
PROMPT 3 8 "Stampa movimenti dalla data "
HELP "Se non indicato nessun valore viene effettuata una stampa completa in ordine di data"
END
DATE F_DATAFIN
BEGIN
PROMPT 46 8 "alla data "
END
LIST F_TIPOELENCO 8
BEGIN
PROMPT 3 9 "Tipo elenco "
//HELP "Se si desidera l'elenco per clienti e fornitori, specificare prima il codice del cliente da cui iniziare la stampa e poi quello del fornitore"
ITEM "C|Clienti"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "F|Fornitori"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "E|Entrambi"
MESSAGE HIDE,1@|SHOW,2@|RESET,2@
END
NUMBER F_CODICEINI 6
BEGIN
PROMPT 3 10 "Stampa dal codice "
HELP "Se si desidera l'elenco per clienti e fornitori, specificare prima il codice del cliente da cui iniziare la stampa e poi quello del fornitore"
GROUP 1
USE LF_CLIFO
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN 6
BEGIN
PROMPT 46 10 "al codice "
GROUP 1
COPY USE F_CODICEINI
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN CODCF
FLAGS "R"
END
NUMBER F_CODICEINI1 6
BEGIN
PROMPT 3 10 "Stampa dal codice "
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEINI1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI1 CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN1 6
BEGIN
PROMPT 46 10 "al codice "
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEFIN1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN1 CODCF
FLAGS "R"
END
BOOLEAN F_CAMBIO
BEGIN
PROMPT 3 12 "Cambio pagina per cliente/fornitore "
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 3 13 "Stampa movimenti provvisori "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 3 15 "(N.B. se non indicato nessun valore stampa completa in ordine di data) "
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
#include "cg3100.h"
PAGE "" -1 -1 73 16
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 1 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 2 "Ragione sociale "
FLAGS "D"
END
DATE F_DATASTAMPA
BEGIN
PROMPT 48 1 "Data stampa "
FLAGS "A"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 4 "Anno esercizio "
//HELP "Se non indicato nessun anno esercizio significa che si richiede la stampa come specificato nei campi: dalla data, alla data"
USE ESC KEY 1
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno" CODTAB
DISPLAY "Data inizio esercizio" D0
DISPLAY "Data fine esercizio" D1
OUTPUT F_ANNO CODTAB
END
DATE F_DATAINI
BEGIN
PROMPT 2 6 "Stampa movimenti dalla data "
HELP "Se non indicato nessun valore viene effettuata una stampa completa in ordine di data"
END
DATE F_DATAFIN
BEGIN
PROMPT 45 6 "alla data "
END
LIST F_TIPOELENCO 8
BEGIN
PROMPT 2 7 "Tipo elenco "
//HELP "Se si desidera l'elenco per clienti e fornitori, specificare prima il codice del cliente da cui iniziare la stampa e poi quello del fornitore"
ITEM "C|Clienti"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "F|Fornitori"
MESSAGE HIDE,2@|SHOW,1@|RESET,1@
ITEM "E|Entrambi"
MESSAGE HIDE,1@|SHOW,2@|RESET,2@
END
NUMBER F_CODICEINI 6
BEGIN
PROMPT 2 8 "Stampa dal codice "
HELP "Se si desidera l'elenco per clienti e fornitori, specificare prima il codice del cliente da cui iniziare la stampa e poi quello del fornitore"
GROUP 1
USE LF_CLIFO
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN 6
BEGIN
PROMPT 45 8 "al codice "
GROUP 1
COPY USE F_CODICEINI
INPUT TIPOCF F_TIPOELENCO SELECT
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN CODCF
FLAGS "R"
END
NUMBER F_CODICEINI1 6
BEGIN
PROMPT 2 8 "Stampa dal codice "
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEINI1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEINI1 CODCF
FLAGS "R"
END
NUMBER F_CODICEFIN1 6
BEGIN
PROMPT 45 8 "al codice "
GROUP 2
COPY USE F_CODICEINI
INPUT TIPOCF F_CODICEFIN1
DISPLAY "Tipo" TIPOCF
DISPLAY "Codice" CODCF
DISPLAY "Ragione sociale@50" RAGSOC
OUTPUT F_CODICEFIN1 CODCF
FLAGS "R"
END
BOOLEAN F_CAMBIO
BEGIN
PROMPT 2 10 "Cambio pagina per cliente/fornitore "
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 11 "Stampa movimenti provvisori "
END
/*
TEXT DLG_NULL
BEGIN
PROMPT 3 15 "(N.B. se non indicato nessun valore stampa completa in ordine di data) "
END
*/
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -1,106 +1,106 @@
#include "cg3100.h"
PAGE "" -1 -1 76 19
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 2 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 3 "Ragione sociale "
FLAGS "D"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 5 "Anno esercizio "
HELP "Se non indicato nessun anno esercizio significa che si richiede la stampa come specificato nei campi: dalla data, alla data"
USE ESC KEY 1
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno esercizio@50" CODTAB
OUTPUT F_ANNO CODTAB
END
DATE F_DATASTAMPA
BEGIN
PROMPT 2 6 "Data stampa "
FLAGS "A"
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 8 "Stampa "
ITEM "2|data"
MESSAGE DISABLE,2@|RESET,2@|ENABLE,1@
ITEM "1|numero"
MESSAGE DISABLE,1@|RESET,1@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
PROMPT 19 9 "Stampa mov. dalla data "
GROUP 1
END
DATE F_DATAFIN
BEGIN
PROMPT 55 9 "alla data "
GROUP 1
END
NUMBER F_NUMEROINI 7
BEGIN
PROMPT 19 10 "Stampa mov. dal numero "
FLAGS "R"
GROUP 2
END
NUMBER F_NUMEROFIN 7
BEGIN
PROMPT 55 10 "al numero "
FLAGS "R"
GROUP 2
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 12 "Stampa movimenti provvisori "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "(N.B. se non indicato nessun valore stampa completa in ordine di data) "
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_CANCEL 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK
#include "cg3100.h"
PAGE "" -1 -1 76 19
NUMBER F_CODDITTA 5
BEGIN
PROMPT 2 2 "Ditta "
FLAGS "FRD"
USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
DISPLAY "Ragione sociale @50" RAGSOC
OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC
END
STRING F_RAGSOC 50
BEGIN
PROMPT 2 3 "Ragione sociale "
FLAGS "D"
END
NUMBER F_ANNO 4
BEGIN
PROMPT 2 5 "Anno esercizio "
HELP "Se non indicato nessun anno esercizio significa che si richiede la stampa come specificato nei campi: dalla data, alla data"
USE ESC KEY 1
CHECKTYPE NORMAL
INPUT CODTAB F_ANNO
DISPLAY "Anno esercizio@50" CODTAB
OUTPUT F_ANNO CODTAB
END
DATE F_DATASTAMPA
BEGIN
PROMPT 2 6 "Data stampa "
FLAGS "A"
END
RADIOBUTTON F_DECIDI 10
BEGIN
PROMPT 2 8 "Stampa "
ITEM "2|data"
MESSAGE DISABLE,2@|RESET,2@|ENABLE,1@
ITEM "1|numero"
MESSAGE DISABLE,1@|RESET,1@|ENABLE,2@
END
DATE F_DATAINI
BEGIN
PROMPT 19 9 "Stampa mov. dalla data "
GROUP 1
END
DATE F_DATAFIN
BEGIN
PROMPT 55 9 "alla data "
GROUP 1
END
NUMBER F_NUMEROINI 7
BEGIN
PROMPT 19 10 "Stampa mov. dal numero "
FLAGS "R"
GROUP 2
END
NUMBER F_NUMEROFIN 7
BEGIN
PROMPT 55 10 "al numero "
FLAGS "R"
GROUP 2
END
BOOLEAN F_STAMPAMOVP
BEGIN
PROMPT 2 12 "Stampa movimenti provvisori "
END
TEXT DLG_NULL
BEGIN
PROMPT 2 15 "(N.B. se non indicato nessun valore stampa completa in ordine di data) "
END
BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -45,21 +45,22 @@ class CG3200_application : public TPrintapp
TDate _data_ini,_data_fine,_data_finese,_data_finesesucc,_ultima_data_reg;
TDate _datareg,_datadoc,_data_inizioese;
int _cur1,_cur2,_cur3,_gruppo,_conto,_numcarat,_stampanum,_numivd;
int _numrig,_gruppocontr,_contocontr,_natdoc,_tipo,_tipostampa;
int _numrig,_natdoc,_tipo,_tipostampa;
real _progredare,_progreavere,_totprogre_dare_al,_totprogre_avere_al;
real _totprogre_dare,_totprogre_avere,_importo;
real _riporto_dare,_riporto_avere,_riporto_parziale_dare,_riporto_parziale_avere;
real _totale_periodo_dare,_totale_periodo_avere,_totale_prima_dare,_totale_prima_avere;
real _saldo_periodo,_saldo_progre,_saldo_progre_al,_saldo_progre_prec;
real _saldo_movimenti,_saldo_progressivi,_totale_saldo;
TString _codice_ditta,_ragsoc,_indulc,_civulc,_capulc,_com,_prov,_comulc;
TString _ragsoc,_indulc,_civulc,_capulc,_com,_prov,_comulc;
long _codice_ditta;
TString _sezivd,_lettivd,_tipodoc,_codcaus,_descrcaus,_descrdociva,_regiva;
TString _descrizione,_sezione,_numdoc,_descrizionemov,_numrivd;
TString _dataregs, _datadocs;
TString _dataregs, _datadocs,_gruppocontr,_contocontr,_sottocontocontr;
bool _stampaprogre,_stampatotiva,_stampatot,_prima_volta,_stampa_mov_prov;
long _annomsk,_annoesmsk,_sottoc,_numreg,_annoes,_sottocontocontr;
long _annomsk,_annoesmsk,_sottoc,_numreg,_annoes;
long _annomsksucc,_numgio,_protiva;
bool _stampa_progressivi_si,_competenza,_inizio_stampa,_puoi_stampare;
int _tipocf;
@ -107,6 +108,7 @@ public:
const char* descrizione_gruppo_clifo();
const char* descrizione_conto_clifo();
bool almeno_un_record();
void ricerca_dati_ditta();
CG3200_application();
};
@ -218,33 +220,30 @@ void CG3200_application::saldi_zero()
void CG3200_application::fai_stampa132()
{
set_row (1,"@0g#t", &_dataregs);
set_row (1,"@11g#t", &_datadocs);
set_row (1,"@22g#7t", &_numdoc);
set_row (1,"@30g#3t", &_codcaus);
set_row (1,"@34g#.18t", &_descrcaus);
_descrizione = current_cursor()->curr(LF_RMOV).get(RMV_DESCR);
if (_descrizione == "")
set_row (1,"@53g%.23s", (const char*) _descrizionemov);
else
set_row (1,"@53g%.23s", (const char*) _descrizione);
_sezione = current_cursor()->curr(LF_RMOV).get(RMV_SEZIONE);
if (_sezione == "D")
set_row (1,"@77g#t", &_importo_str);
else if (_sezione == "A")
set_row (1,"@93g#t", &_importo_str);
if (_numrig != 0)
{
set_row (1,"@109g#3d", &_gruppocontr);
set_row (1,"@112g#3d", &_contocontr);
set_row (1,"@115g#6d", &_sottocontocontr);
}
if (_stampanum == 1)
set_row (1,"@125g$[r]#7d", &_numreg);
set_row (1,"@11g#7d", &_numreg);
else if (_stampanum == 2)
{
set_row (1,"@125g#7d", &_numgio);
set_row (1,"@11g#7d", &_numgio);
}
set_row (1,"@19g#t", &_datadocs);
set_row (1,"@30g#7t", &_numdoc);
set_row (1,"@38g#3t", &_codcaus);
set_row (1,"@42g#.18t", &_descrcaus);
_descrizione = current_cursor()->curr(LF_RMOV).get(RMV_DESCR);
if (_descrizione == "")
set_row (1,"@61g%.23s", (const char*) _descrizionemov);
else
set_row (1,"@61g%.23s", (const char*) _descrizione);
_sezione = current_cursor()->curr(LF_RMOV).get(RMV_SEZIONE);
if (_sezione == "D")
set_row (1,"@85g#t", &_importo_str);
else if (_sezione == "A")
set_row (1,"@101g#t", &_importo_str);
set_row (1,"@117g#3t", &_gruppocontr);
set_row (1,"@120g#3t", &_contocontr);
set_row (1,"@123g#6t", &_sottocontocontr);
}
void CG3200_application::fai_stampa198()
@ -278,13 +277,12 @@ void CG3200_application::fai_stampa198()
set_row (1,"@119g#t", &_importo_str);
// Stampa saldo movimenti
set_row (1,"@153g#t", &_saldo_movimenti_str);
if (_numrig != 0)
{
set_row (1,"@169g#3d", &_gruppocontr);
set_row (1,"@172g#3d", &_contocontr);
set_row (1,"@175g#6d", &_sottocontocontr);
}
set_row (1,"@169g#3t", &_gruppocontr);
set_row (1,"@172g#3t", &_contocontr);
set_row (1,"@175g#6t", &_sottocontocontr);
if (_tipo < 3)
set_row (1,"@185g#t" , &_regiva);
@ -321,17 +319,17 @@ void CG3200_application::stampa_totali132()
_saldo_periodo = _totale_periodo_dare - _totale_periodo_avere;
_saldo_progre = _totprogre_dare - _totprogre_avere;
_saldo_progre_al = _totprogre_dare_al - _totprogre_avere_al;
set_row (3,"@32gTOTALI PERIODO@61g%15.0r", &_saldo_periodo);
set_row (3,"@77g%15.0r", &_totale_periodo_dare);
set_row (3,"@93g%15.0r", &_totale_periodo_avere);
set_row (4,"@32gTOTALI PROGRESSIVI@61g%15.0r", &_saldo_progre);
set_row (4,"@77g%15.0r", &_totprogre_dare);
set_row (4,"@93g%15.0r", &_totprogre_avere);
set_row (3,"@32gTOTALI PERIODO@69g%15.0r", &_saldo_periodo);
set_row (3,"@85g%15.0r", &_totale_periodo_dare);
set_row (3,"@101g%15.0r", &_totale_periodo_avere);
set_row (4,"@32gTOTALI PROGRESSIVI@69g%15.0r", &_saldo_progre);
set_row (4,"@85g%15.0r", &_totprogre_dare);
set_row (4,"@101g%15.0r", &_totprogre_avere);
if (_stampaprogre) //Progressivi attuali
{
set_row(5,"@32gTOTALI PROGRESSIVI AL@55g%s",(const char*)_ultima_data_reg.string());
set_row (5,"@77g%15.0r", &_saldo_progre_al);
set_row (5,"@93g%15.0r", &_totprogre_dare_al);
set_row (5,"@32gTOTALI PROGRESSIVI AL@55g%s",(const char*)_ultima_data_reg.string());
set_row (5,"@69g%15.0r", &_saldo_progre_al);
set_row (5,"@85g%15.0r", &_totprogre_dare_al);
set_row (5,"@101g%r", &_totprogre_avere_al);
}
}
@ -417,17 +415,17 @@ bool CG3200_application::preprocess_pconti(int file, int counter)
int rcontr = atoi(current_cursor()->curr(LF_RMOV).get(RMV_RCONTR));
rmov = current_cursor()->file(LF_RMOV);
record = rmov->recno();
rmov->setkey(1);
rmov->curr().zero();
rmov->curr().put(RMV_NUMREG,_numreg);
rmov->curr().put(RMV_NUMRIG,rcontr);
rmov->read();
_numrig = atoi(rmov->curr().get(RMV_NUMRIG));
if (_numrig != 0)
{
_gruppocontr = atoi(rmov->curr().get(RMV_GRUPPO));
_contocontr = atoi(rmov->curr().get(RMV_CONTO));
_sottocontocontr = atol(rmov->curr().get(RMV_SOTTOCONTO));
}
if (rmov->bad())
rmov->curr().zero();
_gruppocontr = rmov->curr().get(RMV_GRUPPO);
_contocontr = rmov->curr().get(RMV_CONTO);
_sottocontocontr = rmov->curr().get(RMV_SOTTOCONTO);
rmov->setkey(2);
rmov->readat(record);
// Stampa solo quelli che hanno anno esercizio uguale a quello specificato
@ -564,25 +562,26 @@ bool CG3200_application::preprocess_clifo(int file, int counter)
case LF_RMOV:
{
// Ricerca la contropartita di quel movimento
_numreg = atol (current_cursor()->curr(LF_RMOV).get(RMV_NUMREG));
int rcontr = atoi(current_cursor()->curr(LF_RMOV).get(RMV_RCONTR));
rmov = current_cursor()->file(LF_RMOV);
record = rmov->recno();
rmov->setkey(1);
rmov->curr().zero();
rmov->curr().put(RMV_NUMREG,_numreg);
rmov->curr().put(RMV_NUMRIG,rcontr);
rmov->read();
_numrig = atoi(rmov->curr().get(RMV_NUMRIG));
if (_numrig != 0)
{
_gruppocontr = atoi(rmov->curr().get(RMV_GRUPPO));
_contocontr = atoi(rmov->curr().get(RMV_CONTO));
_sottocontocontr = atol(rmov->curr().get(RMV_SOTTOCONTO));
}
if (rmov->bad())
rmov->curr().zero();
_gruppocontr = rmov->curr().get(RMV_GRUPPO);
_contocontr = rmov->curr().get(RMV_CONTO);
_sottocontocontr = rmov->curr().get(RMV_SOTTOCONTO);
rmov->setkey(2);
rmov->readat(record);
// Stampa solo quelli che hanno anno esercizio uguale a quello specificato
// nella maschera. Se non viene specificato li stampa tutti
@ -787,6 +786,7 @@ print_action CG3200_application::postprocess_page(int file, int counter)
_prima_volta = TRUE;
return REPEAT_PAGE;
case LF_RMOV:
force_setpage();
break;
default:
break;
@ -963,6 +963,9 @@ bool CG3200_application::set_print(int)
int formato = atoi(_msk->get(F_FORMATO));
int nummast = atoi(_msk->get(F_NUMMAST));
_ricerca = _msk->get(F_RICERCA)[0];
_codice_ditta = get_firm();
ricerca_dati_ditta();
// Scelta del formato e del numero di mastrini per pagina 1 o 2
@ -996,7 +999,7 @@ bool CG3200_application::set_print(int)
a.put(PCN_CONTO,contofine);
a.put(PCN_SOTTOCONTO,sottocontofine);
current_cursor()->setregion(da, a);
current_cursor()->setregion(&da, &a);
}
else
{
@ -1026,7 +1029,7 @@ bool CG3200_application::set_print(int)
a.put(CLI_CONTO,contofine);
a.put(CLI_CODCF,sottocontofine);
current_cursor()->setregion(da, a);
current_cursor()->setregion(&da, &a);
}
if (_stampatotiva)
@ -1106,19 +1109,17 @@ void CG3200_application::preprocess_header()
}
// Crea l'intestazione per la stampa a 132 e a 198 caratteri
void CG3200_application::crea_intestazione()
void CG3200_application::ricerca_dati_ditta()
{
TString sep(132),sep1(198), app(8);
reset_header();
long app;
_nditte->setkey(1);
_codice_ditta << get_firm();
// _codice_ditta << get_firm();
_nditte->curr().zero();
_nditte->curr().put(NDT_CODDITTA,_codice_ditta);
_nditte->read();
app=_nditte->curr().get(NDT_CODDITTA);
app=_nditte->curr().get_long(NDT_CODDITTA);
_ragsoc=_nditte->curr().get(NDT_RAGSOC);
_unloc->setkey(1);
@ -1137,7 +1138,16 @@ void CG3200_application::crea_intestazione()
_comuni->read();
_com=_comuni->curr().get(COM_DENCOM);
_prov=_comuni->curr().get(COM_PROVCOM);
}
// Crea l'intestazione per la stampa a 132 e a 198 caratteri
void CG3200_application::crea_intestazione()
{
TString sep(132),sep1(198);
reset_header();
if (_numcarat == 1)
{
sep << "Pag. @#";
@ -1155,7 +1165,7 @@ void CG3200_application::crea_intestazione()
set_header(2,"@1g%s",(const char*) sep1);
}
set_header (1, "@0gDITTA@6g%-5s", (const char*) _codice_ditta);
set_header (1, "@0gDITTA@6g%5d", _codice_ditta);
set_header (1, "@12g%-45s", (const char*) _ragsoc);
set_header (1, "@59g%-25s", (const char*) _indulc);
set_header (1, "@86g%-9s", (const char*) _civulc);
@ -1189,8 +1199,8 @@ void CG3200_application::crea_intestazione()
{
sep.fill('-'); //Stampa 132 - (sep(132))
set_header (6, (const char *) sep);
set_header (7,"Data@11gDocumento@109gContro@122gAn@125gNumero");
set_header (8,"Registr.@11gData@22gNumero@30gCod.Causale@53gDescrizione@82gDare@98gAvere@109gPartita@122gCo@125gregistr");
set_header (7,"Data@11gNumero@19gDocumento@117gContro@130gAn");
set_header (8,"Registr.@11gregistr@19gData@30gNumero@38gCod.Causale@61gDescrizione@90gDare@106gAvere@117gPartita@130gCo");
sep.fill('-');
set_header (9, (const char *) sep);
}
@ -1217,9 +1227,9 @@ void CG3200_application::crea_intestazione()
if (_numcarat == 1)
{
TString string = _riporto_dare.string("###############");
set_header (10,"@32gA RIPORTO@77g%15s",(const char*) string);
set_header (10,"@32gA RIPORTO@85g%15s",(const char*) string);
string = _riporto_avere.string("###############");
set_header (10,"@93g%15s",(const char*) string);
set_header (10,"@101g%15s",(const char*) string);
}
if (_numcarat == 2)
{
@ -1316,7 +1326,7 @@ void CG3200_application::calcola_progressivi()
pconti.put(PCN_CONTO , _conto);
pconti.read();
if (pconti.good())
indbil = pconti.get_int(PCN_INDBIL);
indbil = atoi (pconti.get(PCN_INDBIL));
else
indbil = 0;
}
@ -1412,11 +1422,11 @@ void CG3200_application::calcola_progressivi()
if (_numcarat == 1)
{
TString string = _saldo_progre_prec.string("###############");
set_header (10,"@32gPROGRESSIVI PRECEDENTI@61g%15s",(const char*) string);
set_header (10,"@32gPROGRESSIVI PRECEDENTI@69g%15s",(const char*) string);
string = _progredare.string("###############");
set_header (10,"@77g%15s",(const char*) string);
set_header (10,"@85g%15s",(const char*) string);
string = _progreavere.string("###############");
set_header (10,"@93g%15s",(const char*) string);
set_header (10,"@101g%15s",(const char*) string);
}
if (_numcarat == 2)
@ -1507,8 +1517,11 @@ void CG3200_application::ricerca_clifo()
dataini = _data_ini.string();
set_header (5, "@1gPeriodo@10g%s", (const char*) dataini);
datafine = _data_fine.string();
set_header (5, "@22g%s", (const char*) datafine);
if (_data_fine != eotime)
{
datafine = _data_fine.string();
set_header (5, "@22g%s", (const char*) datafine);
}
set_header (5, "@34g%-11s",(const char*) paiv);
set_header (5, "@46g%-16s",(const char*) cofi);
set_header (5, "@63g%-25s",(const char*) indcf);
@ -1565,8 +1578,11 @@ void CG3200_application::ricerca_gruppo()
dataini = _data_ini.string();
set_header (5, "@0gPeriodo@12g%s", (const char*) dataini);
datafine = _data_fine.string();
set_header (5, "@24g%s", (const char*) datafine);
if (_data_fine != eotime)
{
datafine = _data_fine.string();
set_header (5, "@24g%s", (const char*) datafine);
}
}
//Ricerca la descrizione relativa al gruppo da stampare

View File

@ -47,7 +47,7 @@
#define F_ANNO 139
#define F_FORMATO 140
#endif // __CG3200_H
#endif // __CG3200_H

File diff suppressed because it is too large Load Diff