Corretta gestione delle causali contabili.

git-svn-id: svn://10.65.10.50/trunk@25 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1994-08-17 14:05:45 +00:00
parent 10852c6b02
commit fe15049eab
5 changed files with 4050 additions and 4034 deletions

View File

@ -10,222 +10,222 @@ PAGE "OPERAZIONE DI PRIMA NOTA" -1 -1 77 20
NUMBER F_GRUPPOCLIFO 3
BEGIN
FLAGS "H"
FLAGS "H"
END
NUMBER F_CONTOCLIFO 3
BEGIN
FLAGS "H"
FLAGS "H"
END
NUMBER F_GRUPPORIC 3
BEGIN
FLAGS "H"
FLAGS "H"
END
NUMBER F_CONTORIC 3
BEGIN
FLAGS "H"
FLAGS "H"
END
NUMBER F_SOTTOCONTORIC 6
BEGIN
FLAGS "H"
FLAGS "H"
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 "@BMovimento IVA"
PROMPT 1 0 "@BMovimento IVA"
END
NUMBER F_CODDITTA 5
BEGIN
PROMPT 3 1 "Ditta "
FLAGS "FGRD"
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
OUTPUT F_RAGSOC RAGSOC
CHECKTYPE REQUIRED
PROMPT 3 1 "Ditta "
FLAGS "FGRD"
USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA
DISPLAY "Codice" CODDITTA
OUTPUT F_RAGSOC RAGSOC
CHECKTYPE REQUIRED
END
STRING F_RAGSOC 50
BEGIN
PROMPT 17 1 "Ragione "
FLAGS "DG"
PROMPT 17 1 "Ragione "
FLAGS "DG"
END
DATE F_DATAREG
BEGIN
PROMPT 1 3 "Data operazione "
FIELD LF_MOV->DATAREG
MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER
PROMPT 1 3 "Data operazione "
FIELD LF_MOV->DATAREG
MESSAGE COPY,H_DATAREG|COPY,F_DATA74TER
END
DATE F_DATACOMP
BEGIN
PROMPT 1 4 "Data competenza "
FIELD LF_MOV->DATACOMP
PROMPT 1 4 "Data competenza "
FIELD LF_MOV->DATACOMP
END
DATE F_DATADOC
BEGIN
PROMPT 1 5 "Data documento "
FIELD LF_MOV->DATADOC
HELP "Specificare la data del documento (non superiore alla data dell'operazione)"
WARNING "Inserire una data documento non superiore alla data dell'operazione"
VALIDATE DATE_CMP_FUNC <= F_DATAREG
PROMPT 1 5 "Data documento "
FIELD LF_MOV->DATADOC
HELP "Specificare la data del documento (non superiore alla data dell'operazione)"
WARNING "Inserire una data documento non superiore alla data dell'operazione"
VALIDATE DATE_CMP_FUNC <= F_DATAREG
END
NUMBER F_ANNOIVA 4
BEGIN
PROMPT 32 3 "Anno IVA "
FIELD LF_MOV->ANNOIVA
FLAGS "D"
PROMPT 32 3 "Anno IVA "
FIELD LF_MOV->ANNOIVA
FLAGS "D"
END
NUMBER F_ANNOES 4
BEGIN
PROMPT 32 4 "Anno esercizio "
FIELD LF_MOV->ANNOES
FLAGS "DG"
MESSAGE COPY,H_ANNOES
PROMPT 32 4 "Anno esercizio "
FIELD LF_MOV->ANNOES
FLAGS "DG"
MESSAGE COPY,H_ANNOES
END
STRING F_TIPODOC 2
BEGIN
PROMPT 32 5 "Tipo documento "
FIELD LF_MOV->TIPODOC
FLAGS "D"
PROMPT 32 5 "Tipo documento "
FIELD LF_MOV->TIPODOC
FLAGS "D"
END
NUMBER F_NUMREG 6
BEGIN
PROMPT 57 3 "Operazione n. "
FIELD LF_MOV->NUMREG
FLAGS "DG"
KEY 1
MESSAGE COPY,H_NUMREG
PROMPT 57 3 "Operazione n. "
FIELD LF_MOV->NUMREG
FLAGS "DG"
KEY 1
MESSAGE COPY,H_NUMREG
END
STRING F_NUMDOC 7
BEGIN
PROMPT 57 5 "Documento n. "
FIELD LF_MOV->NUMDOC
WARNING "La causale impone di specificare il numero documento"
PROMPT 57 5 "Documento n. "
FIELD LF_MOV->NUMDOC
WARNING "La causale impone di specificare il numero documento"
END
STRING F_DESCAGG 5
BEGIN
PROMPT 1 6 "Descrizione "
FLAGS "U"
USE %DPN
INPUT CODTAB F_DESCAGG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DESCAGG CODTAB
OUTPUT F_DESCR S0
CHECKTYPE NORMAL
PROMPT 1 6 "Descrizione "
FLAGS "U"
USE %DPN
INPUT CODTAB F_DESCAGG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DESCAGG CODTAB
OUTPUT F_DESCR S0
CHECKTYPE NORMAL
END
STRING F_DESCR 50
BEGIN
PROMPT 25 6 ""
FIELD LF_MOV->DESCR
USE %DPN KEY 2
INPUT S0 F_DESCR
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_DESCAGG
PROMPT 25 6 ""
FIELD LF_MOV->DESCR
USE %DPN KEY 2
INPUT S0 F_DESCR
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_DESCAGG
END
LIST F_PROVVISORIO 1 25
BEGIN
PROMPT 1 7 "Movimento provvisorio "
FIELD PROVVIS
ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)"
ITEM "N|Si (non cancellabile)"
PROMPT 1 7 "Movimento provvisorio "
FIELD PROVVIS
ITEM " |No (movimento normale)"
ITEM "P|Si (cancellabile)"
ITEM "N|Si (non cancellabile)"
END
BOOLEAN F_SOLAIVA
BEGIN
PROMPT 54 7 "Movimento di sola IVA"
PROMPT 54 7 "Movimento di sola IVA"
END
STRING F_CODCAUS 3
BEGIN
PROMPT 1 8 "Causale "
FLAGS "U"
FIELD LF_MOV->CODCAUS
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Registro" REG
DISPLAY "Tipo" TIPODOC
OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR
OUTPUT F_CODREG REG
OUTPUT F_TIPODOC TIPODOC
MESSAGE COPY,H_CODCAUS
CHECKTYPE REQUIRED
ADD RUN cg0 -4
PROMPT 1 8 "Causale "
FLAGS "U"
FIELD LF_MOV->CODCAUS
USE LF_CAUSALI KEY 1
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Registro" REG
DISPLAY "Tipo" TIPODOC
OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCRCAUS DESCR
OUTPUT F_CODREG REG
OUTPUT F_TIPODOC TIPODOC
MESSAGE COPY,H_CODCAUS
CHECKTYPE REQUIRED
ADD RUN cg0 -4
END
STRING F_DESCRCAUS 50
BEGIN
PROMPT 25 8 ""
USE LF_CAUSALI KEY 2
INPUT DESCR F_DESCRCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS
COPY OUTPUT F_CODCAUS
MESSAGE COPY,H_DESCRCAUS
ADD RUN cg0 -4
PROMPT 25 8 ""
USE LF_CAUSALI KEY 2
INPUT DESCR F_DESCRCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS
COPY OUTPUT F_CODCAUS
MESSAGE COPY,H_DESCRCAUS
ADD RUN cg0 -4
END
STRING F_CODREG 3
BEGIN
PROMPT 1 9 "Registro IVA "
FLAGS "DG"
FIELD LF_MOV->REG
PROMPT 1 9 "Registro IVA "
FLAGS "DG"
FIELD LF_MOV->REG
/*
USE REG SELECT I0 < 3
INPUT CODTAB[1,4] F_ANNOIVA SELECT
INPUT CODTAB[5,7] F_CODREG
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Tipo" I0
DISPLAY "Descrizione@50" S0
OUTPUT F_CODREG CODTAB[5,7]
CHECKTYPE NORMAL
*/
USE REG SELECT I0 < 3
INPUT CODTAB[1,4] F_ANNOIVA SELECT
INPUT CODTAB[5,7] F_CODREG
DISPLAY "Anno" CODTAB[1,4]
DISPLAY "Codice" CODTAB[5,7]
DISPLAY "Tipo" I0
DISPLAY "Descrizione@50" S0
OUTPUT F_CODREG CODTAB[5,7]
CHECKTYPE NORMAL
*/
END
NUMBER F_PROTIVA 5
BEGIN
PROMPT 27 9 "Protocollo IVA "
FIELD LF_MOV->PROTIVA
PROMPT 27 9 "Protocollo IVA "
FIELD LF_MOV->PROTIVA
END
NUMBER F_RIEPILOGO 5
BEGIN
PROMPT 51 9 "Riepilogo fino al n. "
FIELD LF_MOV->UPROTIVA
NUM_EXPR (#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)
PROMPT 51 9 "Riepilogo fino al n. "
FIELD LF_MOV->UPROTIVA
NUM_EXPR (#F_RIEPILOGO==0)||(#F_RIEPILOGO>=#F_PROTIVA)
WARNING "Il riepilogo non puo' essere inferiore al protocollo IVA"
END
END
STRING F_CLIFO 1
BEGIN
STRING F_CLIFO 1
BEGIN
PROMPT 0 10 ""
FIELD LF_MOV->TIPO
FLAGS "H"
END
END
NUMBER F_CLIENTE 6
BEGIN
NUMBER F_CLIENTE 6
BEGIN
PROMPT 1 10 "Cliente "
FIELD LF_MOV->CODCF
GROUP 1
@ -250,10 +250,10 @@ BEGIN
MESSAGE COPY,F_FORNITORE
CHECKTYPE REQUIRED
ADD RUN cg0 -1
END
END
NUMBER F_FORNITORE 6
BEGIN
NUMBER F_FORNITORE 6
BEGIN
PROMPT 1 10 "Fornitore "
FIELD LF_MOV->CODCF
GROUP 2
@ -278,10 +278,10 @@ BEGIN
MESSAGE COPY,F_CLIENTE
CHECKTYPE REQUIRED
ADD RUN cg0 -1
END
END
STRING F_RAGSOCFORNITORE 50
BEGIN
STRING F_RAGSOCFORNITORE 50
BEGIN
PROMPT 25 10 ""
GROUP 2
USE LF_CLIFO KEY 2
@ -292,10 +292,10 @@ BEGIN
DISPLAY "Codice" CODCF
COPY OUTPUT F_FORNITORE
ADD RUN cg0 -1
END
END
STRING F_RAGSOCCLIENTE 50
BEGIN
STRING F_RAGSOCCLIENTE 50
BEGIN
PROMPT 25 10 ""
GROUP 1
USE LF_CLIFO KEY 2
@ -306,10 +306,10 @@ BEGIN
DISPLAY "Codice" CODCF
COPY OUTPUT F_CLIENTE
ADD RUN cg0 -1
END
END
STRING F_PIVACLIENTE 14
BEGIN
STRING F_PIVACLIENTE 14
BEGIN
PROMPT 1 11 "Partita IVA "
GROUP 1
USE LF_CLIFO KEY 3
@ -321,10 +321,10 @@ BEGIN
DISPLAY "Codice" CODCF
COPY OUTPUT F_CLIENTE
ADD RUN cg0 -1
END
END
STRING F_PIVAFORNITORE 14
BEGIN
STRING F_PIVAFORNITORE 14
BEGIN
PROMPT 1 11 "Partita IVA "
GROUP 2
USE LF_CLIFO KEY 3
@ -334,10 +334,10 @@ BEGIN
COPY DISPLAY F_PIVACLIENTE
COPY OUTPUT F_FORNITORE
ADD RUN cg0 -1
END
END
LIST F_STATOPAIV 18
BEGIN
LIST F_STATOPAIV 18
BEGIN
PROMPT 32 11 "Stato "
HELP "Codice ISO dello stato per la partita IVA"
ITEM " |Italia o extra CEE"
@ -353,24 +353,24 @@ BEGIN
ITEM "LU|Lussemburgo"
ITEM "NL|Olanda"
ITEM "PT|Portogallo"
END
END
BUTTON F_OCCASEDIT 20
BEGIN
BUTTON F_OCCASEDIT 20
BEGIN
PROMPT 34 11 "Dati anagrafici"
FLAGS "H"
END
END
BOOLEAN F_OCCASIONALE
BEGIN
BOOLEAN F_OCCASIONALE
BEGIN
PROMPT 64 11 "Occasionale"
MESSAGE FALSE HIDE,F_OCCASEDIT
MESSAGE TRUE SHOW,F_OCCASEDIT|PUSH,F_OCCASEDIT
FLAGS "GH"
END
END
STRING F_CODPAG 4
BEGIN
STRING F_CODPAG 4
BEGIN
PROMPT 61 11 "Pagamento "
USE %CPG
INPUT CODTAB F_CODPAG
@ -378,85 +378,86 @@ BEGIN
DISPLAY "Descrizione@50" S0
OUTPUT F_CODPAG CODTAB
CHECKTYPE NORMAL
END
END
STRING F_CODIVA 4
BEGIN
STRING F_CODIVA 4
BEGIN
PROMPT 1 12 "Codice IVA "
USE %IVA
INPUT CODTAB F_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "%@6" R0
DISPLAY "Tipo" S1
OUTPUT F_CODIVA CODTAB
CHECKTYPE NORMAL
END
FLAGS "U"
USE %IVA
INPUT CODTAB F_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
DISPLAY "%@6" R0
DISPLAY "Tipo" S1
OUTPUT F_CODIVA CODTAB
CHECKTYPE NORMAL
END
DATE F_DATA74TER
BEGIN
DATE F_DATA74TER
BEGIN
PROMPT 1 13 "Data 74/ter "
CHECKTYPE REQUIRED
FIELD DATA74TER
END
END
NUMBER F_TOTALE 15
BEGIN
NUMBER F_TOTALE 15
BEGIN
PROMPT 45 12 "Totale documento "
FIELD TOTDOC
FLAGS "RV"
PICTURE "."
END
END
NUMBER F_RITFIS 15
BEGIN
NUMBER F_RITFIS 15
BEGIN
PROMPT 45 13 "Ritenute fiscali "
FIELD RITFIS
FLAGS "RV"
PICTURE "."
END
END
NUMBER F_RITSOC 15
BEGIN
NUMBER F_RITSOC 15
BEGIN
PROMPT 45 14 "Ritenute sociali "
FIELD LF_MOV->RITSOC
FLAGS "RV"
PICTURE "."
END
END
NUMBER F_ANNORIF 4
BEGIN
NUMBER F_ANNORIF 4
BEGIN
PROMPT 1 14 "Rif.partita "
FLAGS "A"
HELP "Anno di riferimento partita"
END
END
NUMBER F_NUMRIF 7
BEGIN
NUMBER F_NUMRIF 7
BEGIN
PROMPT 20 14 "/"
HELP "Numero documento (o protocollo IVA) di riferimento"
END
END
NUMBER F_CORRLIRE 15
BEGIN
NUMBER F_CORRLIRE 15
BEGIN
PROMPT 1 15 "Corrispettivo Lire "
FIELD LF_MOV->CORRLIRE
FLAGS "R"
PICTURE "."
END
END
NUMBER F_CORRVALUTA 15
BEGIN
NUMBER F_CORRVALUTA 15
BEGIN
PROMPT 45 15 "Corrisp. valuta "
FIELD LF_MOV->CORRVALUTA
FLAGS "R"
PICTURE "."
END
END
STRING F_VALUTA 3
BEGIN
STRING F_VALUTA 3
BEGIN
PROMPT 1 16 "Valuta "
FIELD LF_MOV->CODVAL
FLAGS "U"
@ -470,80 +471,80 @@ BEGIN
OUTPUT F_VALUTA CODTAB
OUTPUT F_CAMBIO R10
CHECKTYPE NORMAL
END
END
NUMBER F_CAMBIO 15 5
BEGIN
NUMBER F_CAMBIO 15 5
BEGIN
PROMPT 20 16 "Cambio "
FIELD LF_MOV->CAMBIO
FLAGS "RU"
GROUP 3
PICTURE ".5"
END
END
BOOLEAN F_VISVAL
BEGIN
BOOLEAN F_VISVAL
BEGIN
PROMPT 47 16 "Visualizza importi in valuta"
GROUP 3
END
END
ENDPAGE
ENDPAGE
PAGE "IVA" -1 -1 77 20
PAGE "IVA" -1 -1 77 20
GROUPBOX DLG_NULL 78 4
BEGIN
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 0 "@BMovimento IVA - Sezione IVA"
END
END
NUMBER H_NUMREG 6
BEGIN
NUMBER H_NUMREG 6
BEGIN
PROMPT 2 1 "Operazione n. "
FLAGS "D"
END
END
DATE H_DATAREG
BEGIN
DATE H_DATAREG
BEGIN
PROMPT 32 1 "Data "
FLAGS "D"
END
END
NUMBER H_ANNOES 4
BEGIN
NUMBER H_ANNOES 4
BEGIN
PROMPT 61 1 "Esercizio "
FLAGS "D"
END
END
STRING H_CODCAUS 3
BEGIN
STRING H_CODCAUS 3
BEGIN
PROMPT 2 2 "Causale "
FLAGS "D"
END
END
STRING H_DESCRCAUS 50
BEGIN
STRING H_DESCRCAUS 50
BEGIN
PROMPT 25 2 ""
FLAGS "D"
END
END
SPREADSHEET F_SHEETIVA 0 7
BEGIN
SPREADSHEET F_SHEETIVA 0 7
BEGIN
PROMPT 3 4 ""
ITEM "Imponibile@14"
ITEM "Iva@4"
ITEM "Det@1"
ITEM "Imposta@14"
ITEM "C/R@1"
ITEM "Det@1"
ITEM " @1"
ITEM "Gr."
ITEM "Co."
ITEM "Sottoc."
ITEM "Descrizione Conto@50"
END
END
SPREADSHEET F_SHEETCG
BEGIN
SPREADSHEET F_SHEETCG
BEGIN
PROMPT 3 11 ""
ITEM "Dare@17"
ITEM "Avere@17"
@ -560,11 +561,11 @@ BEGIN
ITEM "Sottoc./c"
ITEM "Descrizione contropartita@50"
ITEM " @1"
END
END
ENDPAGE
ENDPAGE
ENDMASK
ENDMASK
#include "cg21iva.uml"
#include "cg21cg.uml"

View File

@ -11,11 +11,11 @@ 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;
}
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;
}
@ -40,20 +40,19 @@ bool TRegistro::read(const char* cod, int year)
int err = ~NOERR;
TTable reg("REG");
if (cod && *cod > ' ')
{
TTable reg("REG");
TString16 chiave;
chiave << year << cod;
reg.put("CODTAB", chiave);
err = reg.read();
if (err == NOERR)
_rec = reg.curr();
}
_rec = reg.curr();
if (_att.ok())
_att.zero();
if (err != NOERR && _rec.ok())
if (err != NOERR)
_rec.zero();
return err == NOERR;
}
@ -74,21 +73,21 @@ TRegistro& TRegistro::operator =(const TRegistro& r)
int TRegistro::tipo() const
{
const int t = _rec.ok() ? _rec.get_int("I0") : 0;
return t;
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;
TipoIVA i = (TipoIVA)tipo();
if (i != nessuna_iva && i != iva_vendite && i != iva_acquisti)
{
error_box("Il registro '%s' non e' un registro IVA o contabile: tipo %d",
(const char*)name(), i);
i = nessuna_iva;
}
return i;
}
bool TRegistro::read_att()
@ -96,12 +95,11 @@ 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();
TLocalisamfile attiv(LF_ATTIV);
attiv.put("CODDITTA", MainApp()->get_firm());
attiv.put("CODATT", attivita());
const int err = attiv.read();
_att = attiv.curr();
if (err != NOERR)
_att.zero();
@ -141,7 +139,6 @@ bool TRegistro::update(long protiva, const TDate& datareg)
_rec.put("D2", datareg);
updated = FALSE;
}
if (!updated)
{
TTable reg("REG");
@ -164,13 +161,12 @@ bool TLibro_giornale::read(int y)
y = oggi.year();
}
// if (ok() && y == year()) return TRUE; // Gia' letto!
TTable reg("REG");
bool found = FALSE;
TString16 anno; anno.format("%4d", y);
reg.setkey(1);
reg.put("CODTAB", anno); // Cerca il primo registro dell'anno y
for (int err = reg.read(_isgteq); err == NOERR; err = reg.next())
@ -199,7 +195,7 @@ TLibro_giornale::TLibro_giornale(int y)
///////////////////////////////////////////////////////////
TCausale::TCausale(const char* cod, int year)
: TArray(12), _rec(LF_CAUSALI), _iva(iva_errata)
: TArray(12), _rec(LF_CAUSALI), _iva(iva_errata)
{
if (*cod) read(cod, year);
}
@ -208,7 +204,7 @@ TCausale::TCausale(const char* cod, int year)
// Legge le righe della causale attualmente selezionata sulla maschera
bool TCausale::read(const char* cod, int year)
{
destroy(); // Delete all rows
destroy(); // Delete all rows
if (*cod > ' ')
{
@ -221,60 +217,60 @@ bool TCausale::read(const char* cod, int year)
int err = caus.read();
_rec = caus.curr();
if (err != NOERR) return FALSE;
if (err != NOERR) return FALSE;
TLocalisamfile rcaus(LF_RCAUSALI);
rcaus.setkey(1);
rcaus.zero();
rcaus.put(CAU_CODCAUS, cod);
rcaus.put(CAU_NRIGA, 0);
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;
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);
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)
{
TString16 codreg(caus.get("REG"));
const bool ok = _reg.read(codreg, year); // Read register
if (!ok)
if (!ok && codreg.not_empty())
return error_box("Non esiste il registro '%s' per l'anno %d",
(const char*)codreg, year);
}
}
else
{
_iva = nessuna_iva; // Clear IVA data
_reg.read("", year);
}
}
else
{
_iva = nessuna_iva; // Clear IVA data
_reg.read("", year);
}
return TRUE;
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;
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;
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
@ -314,31 +310,31 @@ TipoIVA TCausale::iva() const
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;
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();
sezionale() == c.sezionale() &&
valuta() == c.valuta() &&
intra() == c.intra();
}
///////////////////////////////////////////////////////////

View File

@ -10,12 +10,12 @@
#endif
enum TipoIVA {
iva_errata = -1,
nessuna_iva = 0,
iva_vendite = 1,
iva_acquisti = 2,
iva_generica = 9
};
iva_errata = -1,
nessuna_iva = 0,
iva_vendite = 1,
iva_acquisti = 2,
iva_generica = 9
};
const char* iva2name(TipoIVA i);
@ -41,6 +41,7 @@ public:
TDate last_reg() const { return _rec.get_date("D2"); }
TDate last_print() const { return _rec.get_date("D3"); }
long protocol() const { return _rec.get_long("I5"); }
const TString& attivita() const { return _rec.get("S8"); }
bool agenzia_viaggi();
const TString& tipo_attivita();

View File

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

File diff suppressed because it is too large Load Diff