In prima nota ho corretto il calcolo del tipo attivita' (errore 1119),
il segno degli imponibili e del totale documento (errore 1123). Nelle stampe dei registri (cg4300 e cg4400) ho tolto l'azzeramento dei due campi da ditta e a ditta (errore 0190) git-svn-id: svn://10.65.10.50/trunk@429 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
4c0a8b0899
commit
d8283b4f7b
@ -74,6 +74,7 @@ TMask* TPrimanota_application::load_mask(int n)
|
||||
TMask& ism = is.sheet_mask();
|
||||
ism.set_handler(101, imponibile_handler);
|
||||
ism.set_handler(102, codiva_handler);
|
||||
ism.set_handler(103, detrazione_handler);
|
||||
ism.set_handler(104, imposta_handler);
|
||||
ism.set_handler(109, suspended_handler);
|
||||
ism.set_handler(209, sheet_clifo_handler);
|
||||
@ -550,7 +551,12 @@ int TPrimanota_application::read(TMask& m)
|
||||
ivas().reset();
|
||||
|
||||
const bool to_swap = test_swap(FALSE);
|
||||
|
||||
if (to_swap)
|
||||
{
|
||||
real totdoc(m.get(F_TOTALE));
|
||||
totdoc = -totdoc;
|
||||
m.set(F_TOTALE, totdoc.string());
|
||||
}
|
||||
for (i = 0; i < _rel->iva_items(); i++)
|
||||
{
|
||||
TRectype& r = _rel->iva(i);
|
||||
@ -566,7 +572,7 @@ int TPrimanota_application::read(TMask& m)
|
||||
|
||||
real imposta(r.get("IMPOSTA"));
|
||||
if (to_swap) imposta = -imposta;
|
||||
if (imponibile.sign() != imposta.sign())
|
||||
if (imponibile.sign() * imposta.sign() < 0)
|
||||
{
|
||||
warning_box("Registrazione con imponibile e imposta discordi: correzione effettuata");
|
||||
imposta = -imposta;
|
||||
@ -618,8 +624,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
||||
|
||||
TImporto n; n = row;
|
||||
const TConto conto(row, 2, 0x3);
|
||||
if (conto.ok())
|
||||
_saldi.aggiorna(conto, n.valore(), n.sezione(), TRUE);
|
||||
_saldi.aggiorna(conto, n.valore(), n.sezione(), TRUE);
|
||||
|
||||
TRectype &r = _rel->cg(cur-1);
|
||||
r.zero();
|
||||
@ -689,6 +694,13 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
||||
}
|
||||
|
||||
const bool to_swap = test_swap(FALSE);
|
||||
if (to_swap)
|
||||
{
|
||||
real totale = _rel->lfile().get("TOTDOC");
|
||||
totale = -totale;
|
||||
_rel->lfile().put("TOTDOC", totale);
|
||||
}
|
||||
|
||||
TArray& irows = ivas().rows_array();
|
||||
cur = 1;
|
||||
for (int i = 0; i < irows.items(); i++)
|
||||
@ -712,7 +724,7 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
||||
|
||||
real imposta(row.get());
|
||||
if (to_swap) imposta = -imposta;
|
||||
if (imponibile.sign() != imposta.sign())
|
||||
if (imponibile.sign() * imposta.sign() < 0)
|
||||
{
|
||||
yesnofatal_box("Registrazione di imponibile e imposta discordi");
|
||||
imposta = -imposta;
|
||||
@ -876,16 +888,33 @@ void TPrimanota_application::genera_incasso(const char* causimm)
|
||||
r.put("GRUPPO", m.get(sid+2));
|
||||
r.put("CONTO", m.get(sid+3));
|
||||
r.put("SOTTOCONTO", m.get(sid+4));
|
||||
r.put("ROWTYPE", " ");
|
||||
if (i == 2)
|
||||
{
|
||||
r.put("DESCR", caus.desc_agg(2));
|
||||
r.put("RCONTR", 1);
|
||||
}
|
||||
r.put("RCONTR", 1);
|
||||
r.put("ROWTYPE", " ");
|
||||
}
|
||||
|
||||
while (inc.write() == _isreinsert) // In caso di riscrittura
|
||||
inc.lfile().put("NUMREG", ++_lastreg); // Incrementa numero registrazione
|
||||
|
||||
if (inc.good())
|
||||
{
|
||||
_saldi.reset(); // Inizializza saldi
|
||||
_saldi.set_movprovv(FALSE);
|
||||
_saldi.set_movap(FALSE);
|
||||
_saldi.set_anno_es(m.get_int(F_ANNOES));
|
||||
_saldi.set_num_ulmov(_lastreg);
|
||||
_saldi.set_data_ulmov((TDate)m.get(F_DATAREG));
|
||||
for (int r = 0; r < i; r++)
|
||||
{
|
||||
const TRectype& rec = inc.cg(r);
|
||||
TConto c; get_conto(rec, c);
|
||||
const real im(rec.get("IMPORTO"));
|
||||
const char sezione = rec.get_char("SEZIONE");
|
||||
_saldi.aggiorna(c, im, sezione, TRUE);
|
||||
}
|
||||
_saldi.registra();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -45,6 +45,9 @@ const real& TPrimanota_application::cod2IVA(const TMask& m)
|
||||
static TString16 _codiva;
|
||||
static real _percent;
|
||||
|
||||
if (app().iva() == iva_acquisti && m.get_int(103) == 3)
|
||||
return ZERO;
|
||||
|
||||
const TString& codiva = m.get(102);
|
||||
if (_codiva != codiva)
|
||||
{
|
||||
@ -628,9 +631,9 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
|
||||
m.set(id, b.sottoconto());
|
||||
m.set(id+1, b.descrizione());
|
||||
|
||||
TMask_field& i = m.field(101);
|
||||
i.set_dirty();
|
||||
return imponibile_handler(i, key);
|
||||
TMask_field& im = m.field(101);
|
||||
im.set_dirty();
|
||||
im.on_hit();
|
||||
} else
|
||||
if (key == K_ENTER)
|
||||
{
|
||||
@ -640,6 +643,16 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::detrazione_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE && app().iva() == iva_acquisti)
|
||||
{
|
||||
TMask_field& ci = f.mask().field(101);
|
||||
ci.set_dirty();
|
||||
ci.on_hit();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TPrimanota_application::imposta_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
|
@ -72,6 +72,7 @@ class TPrimanota_application : public TRelation_application
|
||||
|
||||
static bool sheet_clifo_handler(TMask_field& f, KEY k);
|
||||
static bool imponibile_handler(TMask_field& f, KEY key);
|
||||
static bool detrazione_handler(TMask_field& f, KEY key);
|
||||
static bool codiva_handler(TMask_field& f, KEY key);
|
||||
static bool imposta_handler(TMask_field& f, KEY key);
|
||||
static bool dareavere_handler(TMask_field& f, KEY k);
|
||||
|
@ -46,7 +46,7 @@ public:
|
||||
|
||||
bool agenzia_viaggi();
|
||||
const TString& tipo_attivita();
|
||||
bool attivita_mista() { return tipo_attivita()[0] == 'M'; }
|
||||
bool attivita_mista() { char a = tipo_attivita()[0]; return a == 'M' || a == 'E'; }
|
||||
|
||||
bool update(long uprotiva, const TDate& lastreg);
|
||||
|
||||
|
151
cg/cg21iva.uml
151
cg/cg21iva.uml
@ -1,13 +1,63 @@
|
||||
PAGE "RIGA IVA" -1 -1 70 13
|
||||
PAGE "RIGA IVA" -1 -1 78 13
|
||||
|
||||
GROUPBOX DLG_NULL 67 5
|
||||
GROUPBOX DLG_NULL 76 5
|
||||
BEGIN
|
||||
PROMPT 1 1 "Conto"
|
||||
PROMPT 1 1 "@BImposta"
|
||||
END
|
||||
|
||||
STRING 102 4
|
||||
BEGIN
|
||||
PROMPT 2 2 "IVA "
|
||||
FLAGS "U"
|
||||
USE %IVA
|
||||
INPUT CODTAB 102
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "%@6" R0
|
||||
DISPLAY "Tipo" S1
|
||||
OUTPUT 102 CODTAB
|
||||
OUTPUT 211 S0
|
||||
CHECKTYPE NORMAL
|
||||
VALIDATE REQIF_FUNC 1 101
|
||||
END
|
||||
|
||||
STRING 211 58
|
||||
BEGIN
|
||||
PROMPT 16 2 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
LIST 103 1 59
|
||||
BEGIN
|
||||
PROMPT 2 3 "Detraibilita' "
|
||||
ITEM " |0. Regime normale"
|
||||
ITEM "1|1. IVA indetraibile su acquisti riferiti a ricavi esenti"
|
||||
ITEM "3|3. IVA indicata per il solo calcolo di ventilazione"
|
||||
ITEM "9|9. IVA non detraibile per l'articolo 19"
|
||||
END
|
||||
|
||||
NUMBER 101 15
|
||||
BEGIN
|
||||
PROMPT 2 4 "Imponibile "
|
||||
FLAGS "RV"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER 104 15
|
||||
BEGIN
|
||||
PROMPT 48 4 "Imposta "
|
||||
FLAGS "RV"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 76 5
|
||||
BEGIN
|
||||
PROMPT 1 6 "@BConto"
|
||||
END
|
||||
|
||||
LIST 106 1 12
|
||||
BEGIN
|
||||
PROMPT 2 2 "Tipo "
|
||||
PROMPT 2 7 "Tipo "
|
||||
FIELD TMCF
|
||||
ITEM " |Conto"
|
||||
MESSAGE SHOW,109|HIDE,209|HIDE,309|SHOW,110|HIDE,210|HIDE,310
|
||||
@ -20,13 +70,13 @@ END
|
||||
|
||||
NUMBER 107 3
|
||||
BEGIN
|
||||
PROMPT 21 2 "Gruppo "
|
||||
PROMPT 22 7 "Gruppo "
|
||||
FIELD GRUPPO
|
||||
END
|
||||
|
||||
NUMBER 108 3
|
||||
BEGIN
|
||||
PROMPT 33 2 "Conto "
|
||||
PROMPT 38 7 "Conto "
|
||||
FIELD CONTO
|
||||
USE LF_PCON SELECT (CONTO!="") && (SOTTOCONTO="")
|
||||
INPUT GRUPPO 107
|
||||
@ -49,7 +99,7 @@ END
|
||||
|
||||
NUMBER 109 6
|
||||
BEGIN
|
||||
PROMPT 46 2 "Sottoconto "
|
||||
PROMPT 55 7 "Sottoconto "
|
||||
FIELD SOTTOCONTO
|
||||
USE LF_PCON SELECT SOTTOCONTO!=""
|
||||
INPUT GRUPPO 107
|
||||
@ -73,7 +123,7 @@ END
|
||||
|
||||
NUMBER 209 6
|
||||
BEGIN
|
||||
PROMPT 46 2 "Cliente "
|
||||
PROMPT 55 7 "Cliente "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "C"
|
||||
INPUT CODCF 209
|
||||
@ -93,7 +143,7 @@ END
|
||||
|
||||
NUMBER 309 6
|
||||
BEGIN
|
||||
PROMPT 46 2 "Fornitore "
|
||||
PROMPT 55 7 "Fornitore "
|
||||
USE LF_CLIFO
|
||||
INPUT TIPOCF "F"
|
||||
INPUT CODCF 309
|
||||
@ -113,7 +163,7 @@ END
|
||||
|
||||
STRING 110 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Descriz. "
|
||||
PROMPT 2 8 "Descrizione "
|
||||
FIELD LF_PCON->DESCR
|
||||
USE LF_PCON KEY 2
|
||||
INPUT DESCR 110
|
||||
@ -128,7 +178,7 @@ END
|
||||
|
||||
STRING 210 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Cliente "
|
||||
PROMPT 2 8 "Cliente "
|
||||
FIELD LF_CLIFO->RAGSOC
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "C"
|
||||
@ -145,7 +195,7 @@ END
|
||||
|
||||
STRING 310 50
|
||||
BEGIN
|
||||
PROMPT 2 3 "Fornitore "
|
||||
PROMPT 2 8 "Fornitore "
|
||||
FIELD LF_PCON->SOTTOCONTO
|
||||
USE LF_CLIFO KEY 2
|
||||
INPUT TIPOCF "F"
|
||||
@ -162,79 +212,18 @@ END
|
||||
|
||||
LIST 105 1 53
|
||||
BEGIN
|
||||
PROMPT 2 4 "Tipo C/R "
|
||||
ITEM " |0 - Acquisti o vendite in genere"
|
||||
ITEM "1|1 - Acquisti beni per rivendita"
|
||||
ITEM "2|2 - Acquisti beni ammortizzabili"
|
||||
ITEM "3|3 - Acquisti beni ammortizzabili con detr. 6%"
|
||||
ITEM "4|4 - Vendita beni strumentali art. 17"
|
||||
ITEM "5|5 - Beni per rivendita da non ventilare"
|
||||
ITEM "8|8 - Altri beni strumentali acquistati in leasing"
|
||||
PROMPT 2 9 "Tipo Costo/Ricavo "
|
||||
ITEM " |0. Acquisti o vendite in genere"
|
||||
ITEM "1|1. Acquisti beni per rivendita"
|
||||
ITEM "2|2. Acquisti beni ammortizzabili"
|
||||
ITEM "3|3. Acquisti beni ammortizzabili con detr. 6%"
|
||||
ITEM "4|4. Vendita beni strumentali art. 17"
|
||||
ITEM "5|5. Beni per rivendita da non ventilare"
|
||||
ITEM "8|8. Altri beni strumentali acquistati in leasing"
|
||||
FLAGS "D"
|
||||
HELP "Specifica il tipo Costo/Ricavo del conto"
|
||||
END
|
||||
|
||||
GROUPBOX DLG_NULL 67 5
|
||||
BEGIN
|
||||
PROMPT 1 6 "Imposta"
|
||||
END
|
||||
|
||||
STRING 102 4
|
||||
BEGIN
|
||||
PROMPT 2 7 "IVA "
|
||||
FLAGS "U"
|
||||
USE %IVA
|
||||
INPUT CODTAB 102
|
||||
DISPLAY "Codice" CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
DISPLAY "%@6" R0
|
||||
DISPLAY "Tipo" S1
|
||||
OUTPUT 102 CODTAB
|
||||
OUTPUT 211 S0
|
||||
CHECKTYPE NORMAL
|
||||
VALIDATE REQIF_FUNC 1 101
|
||||
END
|
||||
|
||||
STRING 211 50
|
||||
BEGIN
|
||||
PROMPT 15 7 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER 103 1
|
||||
BEGIN
|
||||
PROMPT 2 9 "Det. "
|
||||
SHEET "Codice|Descrizione@53"
|
||||
INPUT 103
|
||||
ITEM " |Regime normale"
|
||||
ITEM "1|IVA indetraibile su acquisti riferiti a ricavi esenti"
|
||||
ITEM "3|IVA indicata per il solo calcolo di ventilazione"
|
||||
ITEM "9|IVA non detraibile per l'articolo 19"
|
||||
OUTPUT 103
|
||||
OUTPUT 213
|
||||
END
|
||||
|
||||
STRING 213 53
|
||||
BEGIN
|
||||
PROMPT 12 9 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
||||
NUMBER 101 15
|
||||
BEGIN
|
||||
PROMPT 2 8 "Imponibile "
|
||||
FLAGS "RV"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
NUMBER 104 15
|
||||
BEGIN
|
||||
PROMPT 40 8 "Imposta "
|
||||
FLAGS "RV"
|
||||
PICTURE "."
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
|
@ -264,8 +264,8 @@ bool CG4300_App::to_ditta_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
const long sel = app().select_firm_range(from, to, freq);
|
||||
m.set(CG43_FLD_SELECTED, sel);
|
||||
m.reset(CG43_FLD_DFR);
|
||||
m.reset(CG43_FLD_DTO);
|
||||
// m.reset(CG43_FLD_DFR);
|
||||
// m.reset(CG43_FLD_DTO);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
|
@ -106,8 +106,8 @@ bool CG4400_application::mask_firm_to (TMask_field& f, KEY k)
|
||||
if (cod >= from && cod <= to)
|
||||
sel.set(i);
|
||||
}
|
||||
m.reset(DA_CODICE);
|
||||
m.reset(A_CODICE);
|
||||
// m.reset(DA_CODICE);
|
||||
// m.reset(A_CODICE);
|
||||
const long numd = sel.ones();
|
||||
f.mask().set(F_SELECT, numd);
|
||||
}
|
||||
|
@ -8,10 +8,12 @@
|
||||
#include <config.h>
|
||||
#include <utility.h>
|
||||
#include <urldefid.h>
|
||||
#include <cglib.h>
|
||||
|
||||
#include <saldi.h>
|
||||
#include <clifo.h>
|
||||
#include <pconti.h>
|
||||
|
||||
#include "cglib.h"
|
||||
#include "cg5200.h"
|
||||
|
||||
//HIDDEN const char* REAL_PICTURE = "###.###.###.###";
|
||||
|
@ -165,12 +165,14 @@ bool TBill::read(TRectype &r)
|
||||
int TBill::tipo_att()
|
||||
{
|
||||
int tipo_att = 1;
|
||||
if (_tipo == ' ')
|
||||
if (tipo() == ' ' && ok())
|
||||
{
|
||||
TRectype conto(LF_PCON); read(conto);
|
||||
TBill bill(gruppo(), conto());
|
||||
TRectype conto(LF_PCON); bill.read(conto);
|
||||
const TIndbil ib = (TIndbil)conto.get_int("INDBIL");
|
||||
if (ib == ib_passivita || ib == ib_ricavi)
|
||||
{
|
||||
read(conto);
|
||||
const int ricser = conto.get_int("RICSER");
|
||||
tipo_att = (ricser == 0) ? 2 : 1;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user