Gestione ripristiono stampa definitiva provvigioni
git-svn-id: svn://10.65.10.50/branches/R_10_00@23059 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0a8e1aaec0
commit
580ae47f0d
@ -7,9 +7,9 @@
|
|||||||
#include "prlib.h"
|
#include "prlib.h"
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
|
|
||||||
#include <mov.h>
|
|
||||||
#include <doc.h>
|
#include <doc.h>
|
||||||
#include "provv.h"
|
#include "provv.h"
|
||||||
|
|
||||||
#include "pr0800a.h"
|
#include "pr0800a.h"
|
||||||
#include "pr0.h"
|
#include "pr0.h"
|
||||||
|
|
||||||
@ -58,6 +58,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
void aggiorna_maturato(const TAggiornamento_maturato_mask &m);
|
void aggiorna_maturato(const TAggiornamento_maturato_mask &m);
|
||||||
|
void azzera_maturato(const TAggiornamento_maturato_mask &m);
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -76,7 +77,6 @@ public:
|
|||||||
bool TAggiornamento_maturato_app::create()
|
bool TAggiornamento_maturato_app::create()
|
||||||
{
|
{
|
||||||
const bool saldaconto = has_module(SCAUT, CHK_DONGLE);
|
const bool saldaconto = has_module(SCAUT, CHK_DONGLE);
|
||||||
|
|
||||||
if (!saldaconto)
|
if (!saldaconto)
|
||||||
return error_box(TR("Questo programma necessita del saldaconto"));
|
return error_box(TR("Questo programma necessita del saldaconto"));
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ static bool prov_saldata(const TRectype& prov)
|
|||||||
return is_saldata;
|
return is_saldata;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool scan_func(const TRelation& rel, void* pJolly)
|
static bool matura_func(const TRelation& rel, void* pJolly)
|
||||||
{
|
{
|
||||||
const TAggiornamento_maturato_mask& m = *(const TAggiornamento_maturato_mask*)pJolly;
|
const TAggiornamento_maturato_mask& m = *(const TAggiornamento_maturato_mask*)pJolly;
|
||||||
TRectype& rec = rel.curr();
|
TRectype& rec = rel.curr();
|
||||||
@ -121,7 +121,6 @@ static bool scan_func(const TRelation& rel, void* pJolly)
|
|||||||
|
|
||||||
TString80 key; key.format("D|%d|%s|%ld", anno, (const char *) codnum, ndoc);
|
TString80 key; key.format("D|%d|%s|%ld", anno, (const char *) codnum, ndoc);
|
||||||
const long nreg = atol(cache().get(LF_DOC, key, DOC_NUMREG));
|
const long nreg = atol(cache().get(LF_DOC, key, DOC_NUMREG));
|
||||||
|
|
||||||
if (nreg <= 0)
|
if (nreg <= 0)
|
||||||
return true; // nessuna partita???
|
return true; // nessuna partita???
|
||||||
|
|
||||||
@ -212,11 +211,13 @@ static bool scan_func(const TRelation& rel, void* pJolly)
|
|||||||
|
|
||||||
if (changed_record)
|
if (changed_record)
|
||||||
{
|
{
|
||||||
TLocalisamfile provv(LF_PROVV);
|
TLocalisamfile& provv = rel.lfile(LF_PROVV);
|
||||||
provv.curr() = rec;
|
int err = provv.reread(_lock);
|
||||||
int err = provv.read(_isequal, _lock);
|
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
provv.curr() = rec;
|
||||||
err = rec.rewrite(provv);
|
err = rec.rewrite(provv);
|
||||||
|
}
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
return yesno_box(FR("Errore %d in aggioramento agente %ld, Continuare ugualmente"), err, rec.get_long(PROV_CODAGE));
|
return yesno_box(FR("Errore %d in aggioramento agente %ld, Continuare ugualmente"), err, rec.get_long(PROV_CODAGE));
|
||||||
}
|
}
|
||||||
@ -241,19 +242,73 @@ void TAggiornamento_maturato_app::aggiorna_maturato(const TAggiornamento_maturat
|
|||||||
TRelation rel(LF_PROVV);
|
TRelation rel(LF_PROVV);
|
||||||
TCursor c(&rel, filter, 1, &from, &to);
|
TCursor c(&rel, filter, 1, &from, &to);
|
||||||
c.setregion(from, to);
|
c.setregion(from, to);
|
||||||
c.scan(scan_func, (void*)&m, TR("Aggiornamento provvigioni maturate"));
|
c.scan(matura_func, (void*)&m, TR("Aggiornamento provvigioni maturate"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool azzera_func(const TRelation& rel, void* pJolly)
|
||||||
|
{
|
||||||
|
TRectype& rec = rel.curr();
|
||||||
|
|
||||||
|
const real imp_pagato = rec.get_real(PROV_PAGATO);
|
||||||
|
const real pro_pagata = rec.get_real(PROV_PROVVPAG);
|
||||||
|
if (pro_pagata > ZERO)
|
||||||
|
{
|
||||||
|
rec.put(PROV_PAGMAT, imp_pagato);
|
||||||
|
rec.put(PROV_PROVVMAT, pro_pagata);
|
||||||
|
rec.zero(PROV_PAGATO);
|
||||||
|
rec.zero(PROV_PROVVPAG);
|
||||||
|
rec.zero(PROV_SALDATA);
|
||||||
|
rec.zero(PROV_DATASTAMPA);
|
||||||
|
if (rel.lfile().rewrite() == NOERR)
|
||||||
|
{
|
||||||
|
TRecnotype& n = *(TRecnotype*)pJolly;
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TAggiornamento_maturato_app::azzera_maturato(const TAggiornamento_maturato_mask &m)
|
||||||
|
{
|
||||||
|
const TDate data_scad = m.get(F_DATA_SCADENZA);
|
||||||
|
const TDate data_stam = m.get(F_DATA_INIZIO);
|
||||||
|
|
||||||
|
TString filter;
|
||||||
|
if (data_stam.ok())
|
||||||
|
filter << "BETWEEN(DATASTAMPA," << data_stam.date2ansi() << ",0)";
|
||||||
|
else
|
||||||
|
filter << "BETWEEN(DATASCAD," << data_scad.date2ansi() << ",0)";
|
||||||
|
|
||||||
|
TRectype from(LF_PROVV), to(LF_PROVV);
|
||||||
|
from.put(PROV_CODAGE, m.get(F_DA_CODAGE));
|
||||||
|
to.put(PROV_CODAGE, m.get(F_A_CODAGE));
|
||||||
|
|
||||||
|
TRelation rel(LF_PROVV);
|
||||||
|
TCursor c(&rel, filter, 1, &from, &to);
|
||||||
|
TRecnotype n = 0;
|
||||||
|
c.scan(azzera_func, (void*)&n, TR("Ripristino provvigioni maturate"));
|
||||||
|
message_box(FR("Sono state ripristinate %ld righe di provvigione"), n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void TAggiornamento_maturato_app::main_loop()
|
void TAggiornamento_maturato_app::main_loop()
|
||||||
{
|
{
|
||||||
|
open_files(LF_TAB, LF_TABCOM, LF_CLIFO, LF_PARTITE, LF_SCADENZE, LF_PAGSCA, LF_DOC, 0);
|
||||||
TAggiornamento_maturato_mask m;
|
TAggiornamento_maturato_mask m;
|
||||||
while (m.run() == K_ENTER)
|
while (m.run() == K_ENTER)
|
||||||
aggiorna_maturato(m);
|
{
|
||||||
|
TFast_isamfile provv(LF_PROVV);
|
||||||
|
const char op = m.get(F_OPERAZIONE)[0];
|
||||||
|
if (op <= 'A')
|
||||||
|
aggiorna_maturato(m);
|
||||||
|
else
|
||||||
|
azzera_maturato(m);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int pr0800(int argc, char** argv)
|
int pr0800(int argc, char** argv)
|
||||||
{
|
{
|
||||||
TAggiornamento_maturato_app a;
|
TAggiornamento_maturato_app a;
|
||||||
a.run(argc, argv, TR("Aggiornamento provvigioni maturate"));
|
a.run(argc, argv, TR("Aggiornamento maturato"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -7,3 +7,6 @@
|
|||||||
#define F_DATA_SCAD 205
|
#define F_DATA_SCAD 205
|
||||||
#define F_GIORNI_RISCHIO 206
|
#define F_GIORNI_RISCHIO 206
|
||||||
#define F_CHECK_INSOLUTI 207
|
#define F_CHECK_INSOLUTI 207
|
||||||
|
#define F_OPERAZIONE 208
|
||||||
|
#define F_DATA_INIZIO 209
|
||||||
|
#define F_DATA_SCADENZA 210
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
#include "pr0800a.h"
|
#include "pr0800a.h"
|
||||||
|
|
||||||
TOOLBAR "" 0 0 0 2
|
TOOLBAR "" 0 0 0 2
|
||||||
#include <stdbar.h>
|
#include <elabar.h>
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Aggiornamento Maturato" 0 2 0 0
|
PAGE "Aggiornamento Maturato" 0 2 0 0
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 80 6
|
GROUPBOX DLG_NULL 78 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Selezione agenti"
|
PROMPT 1 1 "@bSelezione agenti"
|
||||||
FLAGS "R"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_DA_CODAGE 5
|
STRING F_DA_CODAGE 5
|
||||||
@ -62,38 +61,80 @@ BEGIN
|
|||||||
ADD RUN PR0 -4
|
ADD RUN PR0 -4
|
||||||
END
|
END
|
||||||
|
|
||||||
GROUPBOX DLG_NULL 80 5
|
RADIOBUTTON F_OPERAZIONE 78
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "Parametri"
|
PROMPT 1 7 "Tipo operazione"
|
||||||
FLAGS "R"
|
ITEM "A|Aggiornamento maturato"
|
||||||
|
MESSAGE HIDE,2@|SHOW,1@
|
||||||
|
ITEM "R|Ripristino pagato"
|
||||||
|
MESSAGE HIDE,1@|SHOW,2@
|
||||||
|
FLAGS "Z"
|
||||||
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 6
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 "@bParametri aggiornamento"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
DATE F_DATA_SCAD
|
DATE F_DATA_SCAD
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 8 "Data scadenza "
|
PROMPT 2 11 "Data scadenza "
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_GIORNI_RISCHIO 2
|
NUMBER F_GIORNI_RISCHIO 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 9 "Giorni rischio "
|
PROMPT 42 11 "Giorni rischio "
|
||||||
|
GROUP 1
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
||||||
BOOLEAN F_CHECK_INSOLUTI
|
BOOLEAN F_CHECK_INSOLUTI
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 10 "Controllo insoluti registrati dopo il pagamento delle provvigioni"
|
PROMPT 2 12 "Controllo insoluti registrati dopo il pagamento delle provvigioni"
|
||||||
|
GROUP 1
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 12 "@BAttenzione se non vengono impostati giorni di rischio tutti gli effetti presentati"
|
PROMPT 2 13 "@BAttenzione: se non si specificano i giorni di rischio,"
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 13 "@Bverrano considerati pagati."
|
PROMPT 2 14 "@Bgli effetti presentati verranno considerati pagati."
|
||||||
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
GROUPBOX DLG_NULL 78 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 10 "@bParametri ripristino"
|
||||||
|
GROUP 2
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATA_INIZIO
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 11 "Data stampa definitiva "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
GROUP 2
|
||||||
|
MESSAGE EMPTY ENABLE,F_DATA_SCADENZA
|
||||||
|
MESSAGE CLEAR,F_DATA_SCADENZA
|
||||||
|
END
|
||||||
|
|
||||||
|
DATE F_DATA_SCADENZA
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 12 "Data scadenza "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
GROUP 2
|
||||||
|
MESSAGE EMPTY ENABLE,F_DATA_INIZIO
|
||||||
|
MESSAGE CLEAR,F_DATA_INIZIO
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -128,21 +128,26 @@ bool TStampa_schedeprovv::destroy()
|
|||||||
|
|
||||||
void TStampa_schedeprovv::riporta_pagamenti(TCursor &cur)
|
void TStampa_schedeprovv::riporta_pagamenti(TCursor &cur)
|
||||||
{
|
{
|
||||||
const TRelation * r = cur.relation();
|
TLocalisamfile& fprov = cur.file();
|
||||||
TLocalisamfile& prov = r->lfile();
|
TRectype& prov = fprov.curr();
|
||||||
TProgind barra(cur.items(),TR("Registro le provvigioni pagate"));
|
const TRecnotype tot = cur.items();
|
||||||
for (int c=0; c < cur.items(); c++)
|
TProgress_monitor barra(tot, TR("Registrazione delle provvigioni pagate"));
|
||||||
|
|
||||||
|
TDate oggi = _m->get(F_ADATA);
|
||||||
|
if (!oggi.ok())
|
||||||
|
oggi = TDate(TODAY);
|
||||||
|
|
||||||
|
for (cur = 0; cur.pos() < tot; ++cur)
|
||||||
{
|
{
|
||||||
cur=c;
|
if (!barra.add_status())
|
||||||
barra.setstatus(c);
|
break;
|
||||||
// stampa definitiva: riporta le provvigioni maturate sulle provv. pagate
|
// stampa definitiva: riporta le provvigioni maturate sulle provv. pagate
|
||||||
real provv_pag, pag_pag;
|
real provv_pag = prov.get_real(PROV_PROVVMAT);
|
||||||
provv_pag = prov.get_real(PROV_PROVVMAT);
|
real pag_pag = prov.get_real(PROV_PAGMAT);
|
||||||
pag_pag = prov.get_real(PROV_PAGMAT);
|
|
||||||
if (!provv_pag.is_zero()
|
if (!provv_pag.is_zero()
|
||||||
&& !prov.get_bool(PROV_SALDATA)) // this should never happen!
|
&& !prov.get_bool(PROV_SALDATA)) // this should never happen!
|
||||||
{
|
{
|
||||||
prov.reread(_lock);
|
fprov.reread(_lock);
|
||||||
provv_pag += prov.get_real(PROV_PROVVPAG);
|
provv_pag += prov.get_real(PROV_PROVVPAG);
|
||||||
pag_pag += prov.get_real(PROV_PAGATO);
|
pag_pag += prov.get_real(PROV_PAGATO);
|
||||||
prov.put(PROV_PROVVPAG,provv_pag);
|
prov.put(PROV_PROVVPAG,provv_pag);
|
||||||
@ -151,13 +156,9 @@ void TStampa_schedeprovv::riporta_pagamenti(TCursor &cur)
|
|||||||
prov.put(PROV_PAGMAT,0);
|
prov.put(PROV_PAGMAT,0);
|
||||||
if (provv_pag>=prov.get_real(PROV_IMPPROVV))
|
if (provv_pag>=prov.get_real(PROV_IMPPROVV))
|
||||||
prov.put(PROV_SALDATA,"X");
|
prov.put(PROV_SALDATA,"X");
|
||||||
if (prov.curr().exist(PROV_DATASTAMPA))
|
if (prov.exist(PROV_DATASTAMPA))
|
||||||
{
|
prov.put(PROV_DATASTAMPA, oggi);
|
||||||
const TDate oggi = _m->get(F_ADATA);
|
fprov.rewrite();
|
||||||
if (oggi.ok())
|
|
||||||
prov.put(PROV_DATASTAMPA, oggi);
|
|
||||||
}
|
|
||||||
prov.rewrite();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -250,9 +251,7 @@ void TStampa_schedeprovv::print_or_preview(bool paper)
|
|||||||
const TString& tipodoc = _m->get(F_TIPODOC);
|
const TString& tipodoc = _m->get(F_TIPODOC);
|
||||||
if (tipodoc.full())
|
if (tipodoc.full())
|
||||||
{
|
{
|
||||||
//frm.cursor()->relation()->add(LF_DOC, "CODNUM==CODNUM|ANNO==ANNO|PROVV==\"D\"|NDOC==NDOC");
|
bool not_empty = filter.full();
|
||||||
bool not_empty = filter.full();
|
|
||||||
|
|
||||||
if (not_empty)
|
if (not_empty)
|
||||||
{
|
{
|
||||||
filter.insert("(");
|
filter.insert("(");
|
||||||
@ -285,7 +284,10 @@ void TStampa_schedeprovv::print_or_preview(bool paper)
|
|||||||
frm.find_field('B',odd_page,"RATEDOC").show(!_m->get_bool(F_RAGGRATE));
|
frm.find_field('B',odd_page,"RATEDOC").show(!_m->get_bool(F_RAGGRATE));
|
||||||
frm.print();
|
frm.print();
|
||||||
if (_m->get(F_DEFINITIVA)[0]=='D')
|
if (_m->get(F_DEFINITIVA)[0]=='D')
|
||||||
riporta_pagamenti(*frm.cursor());
|
{
|
||||||
|
if (yesno_box(TR("Si desidera procedere con il riporto definitivo degli importi maturati nei pagamenti?")))
|
||||||
|
riporta_pagamenti(*frm.cursor());
|
||||||
|
}
|
||||||
|
|
||||||
frm.cursor()->freeze(false);
|
frm.cursor()->freeze(false);
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ BEGIN
|
|||||||
USE LF_AGENTI
|
USE LF_AGENTI
|
||||||
INPUT CODAGE F_DAAGE
|
INPUT CODAGE F_DAAGE
|
||||||
DISPLAY "Codice" CODAGE
|
DISPLAY "Codice" CODAGE
|
||||||
DISPLAY "Descr@50" RAGSOC
|
DISPLAY "Descrizione@50" RAGSOC
|
||||||
OUTPUT F_DAAGE CODAGE
|
OUTPUT F_DAAGE CODAGE
|
||||||
GROUP G_CODAGE
|
GROUP G_CODAGE
|
||||||
END
|
END
|
||||||
|
Loading…
x
Reference in New Issue
Block a user