Aggiunta alla prima nota la gestione del campo MESELIQ
git-svn-id: svn://10.65.10.50/trunk@6218 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
7a49867232
commit
4d88f8c9d8
@ -798,6 +798,15 @@ int TPrimanota_application::read(TMask& m)
|
|||||||
solaiva.set(i == 0 ? "X" : " ");
|
solaiva.set(i == 0 ? "X" : " ");
|
||||||
solaiva.on_key(K_TAB);
|
solaiva.on_key(K_TAB);
|
||||||
|
|
||||||
|
const int mese_liq = _rel->curr().get_int(MOV_MESELIQ);
|
||||||
|
if (mese_liq != 0)
|
||||||
|
{
|
||||||
|
const TDate data_reg = m.get_date(F_DATAREG);
|
||||||
|
const TDate data_liq(1, mese_liq, data_reg.year());
|
||||||
|
if (_rel->date2liq(data_reg) != _rel->date2liq(data_liq))
|
||||||
|
m.set(F_DIFFERITA, "X");
|
||||||
|
}
|
||||||
|
|
||||||
const bool to_swap = test_swap(FALSE);
|
const bool to_swap = test_swap(FALSE);
|
||||||
if (to_swap)
|
if (to_swap)
|
||||||
{
|
{
|
||||||
@ -928,6 +937,24 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
|
|
||||||
if (_iva == nessuna_iva) return;
|
if (_iva == nessuna_iva) return;
|
||||||
|
|
||||||
|
// Calcola mese di liquidazione precedente
|
||||||
|
int mese_liq = 0;
|
||||||
|
if (m.get_bool(F_DIFFERITA))
|
||||||
|
{
|
||||||
|
TDate data_liq = m.get(F_DATAREG);
|
||||||
|
const int curr_liq = _rel->date2liq(data_liq);
|
||||||
|
data_liq.set_day(1); // Evita problemi coi mesi corti!
|
||||||
|
for (mese_liq = curr_liq-1; mese_liq > 0; mese_liq--)
|
||||||
|
{
|
||||||
|
data_liq.set_month(mese_liq);
|
||||||
|
if (_rel->date2liq(data_liq) != curr_liq)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (mese_liq <= 0)
|
||||||
|
mese_liq = 12;
|
||||||
|
}
|
||||||
|
rec.put(MOV_MESELIQ, mese_liq);
|
||||||
|
|
||||||
if (causale().corrispettivi())
|
if (causale().corrispettivi())
|
||||||
{
|
{
|
||||||
rec.put("TIPO", "");
|
rec.put("TIPO", "");
|
||||||
|
@ -215,6 +215,11 @@ BEGIN
|
|||||||
WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliete/fornitore ha codice inserimento in allegati uguale a 3)"
|
WARNING "Inserire un riepilogo non inferiore al protocollo IVA (Obbigatorio se il cliete/fornitore ha codice inserimento in allegati uguale a 3)"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_DIFFERITA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 54 9 "Liquid. periodo prec."
|
||||||
|
END
|
||||||
|
|
||||||
NUMBER F_CLIENTE 6
|
NUMBER F_CLIENTE 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 "Cliente "
|
PROMPT 1 10 "Cliente "
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
TMovimentoPN::TMovimentoPN()
|
TMovimentoPN::TMovimentoPN()
|
||||||
: TRelation(LF_MOV), _cg(LF_RMOV, "NUMRIG"), _iva(LF_RMOVIVA, "NUMRIG")
|
: TRelation(LF_MOV), _cg(LF_RMOV, RMV_NUMRIG), _iva(LF_RMOVIVA, RMI_NUMRIG)
|
||||||
{
|
{
|
||||||
add(LF_RMOV, "NUMREG=NUMREG");
|
add(LF_RMOV, "NUMREG=NUMREG");
|
||||||
add(LF_RMOVIVA, "NUMREG=NUMREG");
|
add(LF_RMOVIVA, "NUMREG=NUMREG");
|
||||||
@ -21,9 +21,9 @@ TMovimentoPN::TMovimentoPN()
|
|||||||
void TMovimentoPN::destroy_rows(long num)
|
void TMovimentoPN::destroy_rows(long num)
|
||||||
{
|
{
|
||||||
_cg.destroy_rows();
|
_cg.destroy_rows();
|
||||||
_cg.renum_key("NUMREG", num);
|
_cg.renum_key(RMV_NUMREG, num);
|
||||||
_iva.destroy_rows();
|
_iva.destroy_rows();
|
||||||
_iva.renum_key("NUMREG", num);
|
_iva.renum_key(RMI_NUMREG, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -64,8 +64,15 @@ int TMovimentoPN::read(TIsamop op, TReclock lockop)
|
|||||||
const int err = TRelation::read(op, lockop);
|
const int err = TRelation::read(op, lockop);
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
_olddate = file().get("DATAREG"); // Memorizza data operazione per aggiornare i saldi
|
_olddataliq = file().get(MOV_DATAREG); // Memorizza data liquidazione
|
||||||
read_mov_rows(); // Riempie i due record array
|
const int meseliq = file().get_int(MOV_MESELIQ);
|
||||||
|
if (meseliq > 0 && meseliq != _olddataliq.month())
|
||||||
|
{
|
||||||
|
_olddataliq.set_day(1); // Evita problemi coi mesi corti!
|
||||||
|
_olddataliq.set_month(meseliq);
|
||||||
|
}
|
||||||
|
|
||||||
|
read_mov_rows(); // Riempie i due record array
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -178,16 +185,16 @@ int TMovimentoPN::registra(bool re, bool force)
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
const TRectype& m = curr();
|
const TRectype& m = curr();
|
||||||
const long numreg = m.get_long("NUMREG");
|
const long numreg = m.get_long(MOV_NUMREG);
|
||||||
|
|
||||||
if (!re)
|
if (!re)
|
||||||
_cg.renum_key("NUMREG", numreg);
|
_cg.renum_key(MOV_NUMREG, numreg);
|
||||||
err = _cg.write(re);
|
err = _cg.write(re);
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
const int annoiva = m.get_int("ANNOIVA");
|
const int annoiva = m.get_int(MOV_ANNOIVA);
|
||||||
const TString reg(m.get("REG"));
|
const TString reg(m.get(MOV_REG));
|
||||||
TRegistro registro(reg, annoiva);
|
TRegistro registro(reg, annoiva);
|
||||||
const bool att_mista = reg.empty() ? FALSE : registro.attivita_mista();
|
const bool att_mista = reg.empty() ? FALSE : registro.attivita_mista();
|
||||||
|
|
||||||
@ -197,38 +204,46 @@ int TMovimentoPN::registra(bool re, bool force)
|
|||||||
int tipoatt = 1;
|
int tipoatt = 1;
|
||||||
if (att_mista)
|
if (att_mista)
|
||||||
{
|
{
|
||||||
const char tipo = r.get_char("TIPOC");
|
const char tipo = r.get_char(RMI_TIPOC);
|
||||||
if (tipo <= ' ')
|
if (tipo <= ' ')
|
||||||
{
|
{
|
||||||
TBill c(r.get_int("GRUPPO"), r.get_int("CONTO"), r.get_long("SOTTOCONTO"));
|
TBill c(r.get_int(RMI_GRUPPO), r.get_int(RMI_CONTO), r.get_long(RMI_SOTTOCONTO));
|
||||||
tipoatt = c.tipo_att();
|
tipoatt = c.tipo_att();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
r.put("TIPOATT", tipoatt);
|
r.put(RMI_TIPOATT, tipoatt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!re)
|
if (!re)
|
||||||
_iva.renum_key("NUMREG", numreg);
|
_iva.renum_key(MOV_NUMREG, numreg);
|
||||||
err = _iva.write(re);
|
err = _iva.write(re);
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
|
||||||
// Aggiorna data registrazione e protocollo IVA sul registro
|
// Aggiorna data registrazione e protocollo IVA sul registro
|
||||||
const TDate datareg(m.get("DATAREG"));
|
const TDate datareg(m.get(MOV_DATAREG));
|
||||||
if (reg.not_empty())
|
if (reg.not_empty())
|
||||||
{
|
{
|
||||||
const long protiva = m.get_long("PROTIVA");
|
const long protiva = m.get_long(MOV_PROTIVA);
|
||||||
const long uprotiva = m.get_long("UPROTIVA");
|
const long uprotiva = m.get_long(MOV_UPROTIVA);
|
||||||
const long max = protiva > uprotiva ? protiva : uprotiva;
|
const long max = protiva > uprotiva ? protiva : uprotiva;
|
||||||
registro.update(max, datareg);
|
registro.update(max, datareg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aggiorna flags di ricalcolo liquidazione
|
// Aggiorna flags di ricalcolo liquidazione
|
||||||
|
|
||||||
controlla_liquidazione(datareg, registro, TRUE);
|
TDate dataliq(datareg);
|
||||||
if (re && datareg != _olddate)
|
const int mese_liq = m.get_int(MOV_MESELIQ);
|
||||||
controlla_liquidazione(_olddate, registro, TRUE);
|
if (mese_liq > 0 && mese_liq != dataliq.month())
|
||||||
|
{
|
||||||
|
dataliq.set_day(1); // Evita problemi coi mesi corti!
|
||||||
|
dataliq.set_month(mese_liq);
|
||||||
|
}
|
||||||
|
|
||||||
|
controlla_liquidazione(dataliq, registro, TRUE);
|
||||||
|
if (re && dataliq.month() != _olddataliq.month())
|
||||||
|
controlla_liquidazione(_olddataliq, registro, TRUE);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -239,13 +254,11 @@ int TMovimentoPN::write(bool force)
|
|||||||
return registra(FALSE, force);
|
return registra(FALSE, force);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::rewrite(bool force)
|
int TMovimentoPN::rewrite(bool force)
|
||||||
{
|
{
|
||||||
return registra(TRUE, force);
|
return registra(TRUE, force);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int TMovimentoPN::remove()
|
int TMovimentoPN::remove()
|
||||||
{
|
{
|
||||||
int err = _cg.remove();
|
int err = _cg.remove();
|
||||||
@ -259,11 +272,10 @@ int TMovimentoPN::remove()
|
|||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
const TRectype& m = curr();
|
const TRectype& m = curr();
|
||||||
const TDate datareg(m.get("DATAREG"));
|
const TString reg(m.get(MOV_REG));
|
||||||
const int annoiva = m.get_int("ANNOIVA");
|
const int annoiva = m.get_int(MOV_ANNOIVA);
|
||||||
const TString reg(m.get("REG"));
|
|
||||||
TRegistro registro(reg, annoiva);
|
TRegistro registro(reg, annoiva);
|
||||||
controlla_liquidazione(datareg, registro, TRUE);
|
controlla_liquidazione(_olddataliq, registro, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
23
|
23
|
||||||
0
|
0
|
||||||
$mov|0|0|339|0|Movimenti di prima nota|NMOV||
|
$mov|0|0|341|0|Movimenti di prima nota|NMOV||
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
23
|
23
|
||||||
39
|
40
|
||||||
ANNOES|9|4|0|Codice esercizio
|
ANNOES|9|4|0|Codice esercizio
|
||||||
NUMREG|3|7|0|Numero di operazione
|
NUMREG|3|7|0|Numero di operazione
|
||||||
DATAREG|5|8|0|Data operazione
|
DATAREG|5|8|0|Data operazione
|
||||||
DATACOMP|5|8|0|Data competenza
|
DATACOMP|5|8|0|Data competenza
|
||||||
DATADOC|5|8|0|Data documento
|
DATADOC|5|8|0|Data documento
|
||||||
DATA74TER|5|8|0|Data per art. 74 ter
|
DATA74TER|5|8|0|Data per art. 74 ter
|
||||||
|
MESELIQ|2|2|0|Mese per liquidazione differita
|
||||||
NUMDOC|1|7|0|Numero documento
|
NUMDOC|1|7|0|Numero documento
|
||||||
TIPODOC|1|2|0|Tipo documento
|
TIPODOC|1|2|0|Tipo documento
|
||||||
CODCAUS|1|3|0|Codice causale
|
CODCAUS|1|3|0|Codice causale
|
||||||
|
Loading…
x
Reference in New Issue
Block a user