Patch level : 4.0 606
Files correlati : ca2.exe Ricompilazione Demo : [ ] Commento : Corretto il riparto batch sui costi git-svn-id: svn://10.65.10.50/trunk@14851 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
d1e06c7b02
commit
6765cdb7fc
@ -4,6 +4,7 @@
|
|||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
|
|
||||||
|
#include "../cg/cglib01.h"
|
||||||
#include "calib01.h"
|
#include "calib01.h"
|
||||||
#include "calib02.h"
|
#include "calib02.h"
|
||||||
|
|
||||||
@ -85,6 +86,18 @@ bool TRib_movanal_msk::on_field_event(TOperable_field& o, TField_event e, long j
|
|||||||
{
|
{
|
||||||
switch (o.dlg())
|
switch (o.dlg())
|
||||||
{
|
{
|
||||||
|
case F_DATAINI:
|
||||||
|
case F_DATAFIN:
|
||||||
|
if (e == fe_close)
|
||||||
|
{
|
||||||
|
const int anno = get_int(F_ANNO);
|
||||||
|
|
||||||
|
TEsercizi_contabili esc; //..le date devono essere incluse nell'esercizio selezionato!
|
||||||
|
const TDate data(o.get());
|
||||||
|
if (!data.empty() && esc.date2esc(data) != anno)
|
||||||
|
return error_box(TR("La data deve appartenere all'anno selezionato"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
case DLG_OK:
|
case DLG_OK:
|
||||||
case DLG_SAVEREC:
|
case DLG_SAVEREC:
|
||||||
if (e == fe_button)
|
if (e == fe_button)
|
||||||
@ -128,6 +141,7 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
bool cappotta_movimento(TAnal_mov& anal_mov);
|
bool cappotta_movimento(TAnal_mov& anal_mov);
|
||||||
|
TRib_movanal_app(){}
|
||||||
};
|
};
|
||||||
|
|
||||||
void TRib_movanal_app::copia_campo(const TRectype& src, const char* campo_src,
|
void TRib_movanal_app::copia_campo(const TRectype& src, const char* campo_src,
|
||||||
@ -369,8 +383,11 @@ void TRib_movanal_app::main_loop()
|
|||||||
//deve scandire il file MOVANA con chiave 2 (per data e numero di registrazione)
|
//deve scandire il file MOVANA con chiave 2 (per data e numero di registrazione)
|
||||||
TRelation rel_movana(LF_MOVANA);
|
TRelation rel_movana(LF_MOVANA);
|
||||||
TRectype darec(LF_MOVANA), arec(LF_MOVANA);
|
TRectype darec(LF_MOVANA), arec(LF_MOVANA);
|
||||||
darec.put(MOVANA_DATAREG, mask.get_date(F_DATAINI));
|
const TDate & dal = mask.get_date(F_DATAINI);
|
||||||
arec.put(MOVANA_DATAREG, mask.get_date(F_DATAFIN));
|
darec.put(MOVANA_DATAREG, dal);
|
||||||
|
const TDate & al = mask.get_date(F_DATAFIN);
|
||||||
|
arec.put(MOVANA_DATAREG, al);
|
||||||
|
_cache_rip.set_esercizio(al);
|
||||||
|
|
||||||
TCursor cur_movana(&rel_movana, "BLOCCATO!=\"X\"", 2, &darec, &arec);
|
TCursor cur_movana(&rel_movana, "BLOCCATO!=\"X\"", 2, &darec, &arec);
|
||||||
const long items = cur_movana.items();
|
const long items = cur_movana.items();
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#define F_DATAINI 201
|
#define F_DATAINI 201
|
||||||
#define F_DATAFIN 202
|
#define F_DATAFIN 202
|
||||||
#define F_DEFINITIVO 203
|
#define F_DEFINITIVO 203
|
||||||
|
#define F_ANNO 204
|
||||||
#define F_RIGHE 300
|
#define F_RIGHE 300
|
||||||
|
|
||||||
#define F_CODCAUS 113
|
#define F_CODCAUS 113
|
||||||
|
@ -30,23 +30,39 @@ BEGIN
|
|||||||
PROMPT 1 1 "@bParametri di elaborazione"
|
PROMPT 1 1 "@bParametri di elaborazione"
|
||||||
END
|
END
|
||||||
|
|
||||||
DATA F_DATAINI
|
NUMBER F_ANNO 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 2 "Dalla data "
|
PROMPT 2 2 "Esercizio "
|
||||||
|
USE ESC
|
||||||
|
INPUT CODTAB F_ANNO
|
||||||
|
DISPLAY "Codice Esercizio" CODTAB
|
||||||
|
DISPLAY "Data inizio esercizio" D0
|
||||||
|
DISPLAY "Data fine esercizio " D1
|
||||||
|
OUTPUT F_ANNO CODTAB
|
||||||
|
OUTPUT F_DATAINI D0
|
||||||
|
OUTPUT F_DATAFIN D1
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
|
FLAGS "RZ"
|
||||||
|
ADD NONE
|
||||||
END
|
END
|
||||||
|
|
||||||
DATA F_DATAFIN
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 3 "Alla data "
|
|
||||||
CHECKTYPE REQUIRED
|
|
||||||
END
|
|
||||||
|
|
||||||
BOOLEAN F_DEFINITIVO
|
BOOLEAN F_DEFINITIVO
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 42 2 "Blocca movimenti elaborati"
|
PROMPT 42 2 "Blocca movimenti elaborati"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
DATA F_DATAINI
|
||||||
|
BEGIN
|
||||||
|
PROMPT 2 3 "Dalla data "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
|
DATA F_DATAFIN
|
||||||
|
BEGIN
|
||||||
|
PROMPT 42 3 "Alla data "
|
||||||
|
CHECKTYPE REQUIRED
|
||||||
|
END
|
||||||
|
|
||||||
SPREADSHEET F_RIGHE
|
SPREADSHEET F_RIGHE
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 0 5 ""
|
PROMPT 0 5 ""
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include <pconti.h>
|
#include <pconti.h>
|
||||||
|
|
||||||
#include "calib01.h"
|
#include "calib01.h"
|
||||||
|
#include "calib02.h"
|
||||||
#include "calibmsk.h"
|
#include "calibmsk.h"
|
||||||
#include "../cg/cg2103.h"
|
#include "../cg/cg2103.h"
|
||||||
|
|
||||||
@ -1455,14 +1456,58 @@ TObject* TCache_ripartizioni::key2obj(const char* key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
TString80 chiave;
|
TString80 chiave;
|
||||||
if (rip.read() == NOERR)
|
const bool found = (rip.read() == NOERR);
|
||||||
|
if (found)
|
||||||
chiave << "B|" << rip.get(RIP_CODICE);
|
chiave << "B|" << rip.get(RIP_CODICE);
|
||||||
|
|
||||||
TRecord_array* rows = new TRecord_array(chiave, LF_RRIP);
|
TRecord_array* rows = new TRecord_array(chiave, LF_RRIP);
|
||||||
|
|
||||||
|
if (found && rip.get_int(RIP_TIPORIP) == 1)
|
||||||
|
{
|
||||||
|
bool some_value = false;
|
||||||
|
const int items = rows->rows();
|
||||||
|
|
||||||
|
for (int i = 1; i <= items; i++)
|
||||||
|
{
|
||||||
|
TRectype & rec = (*rows)[i];
|
||||||
|
TAnal_bill bill;
|
||||||
|
|
||||||
|
bill.set_conto(rec.get(RRIP_CODCONTO));
|
||||||
|
bill.set_costo(rec.get(RRIP_CODCOSTO));
|
||||||
|
bill.set_commessa(rec.get(RRIP_CODCMS));
|
||||||
|
bill.set_fase(rec.get(RRIP_CODFASE));
|
||||||
|
|
||||||
|
const TSaldanal& s = ca_saldo(bill, _dal, _al, _saldanal_consuntivo);
|
||||||
|
TImporto val = s._ini;
|
||||||
|
|
||||||
|
val.normalize('D');
|
||||||
|
some_value |= val.valore() != ZERO;
|
||||||
|
rec.put(RRIP_RIPARTO, val.valore());
|
||||||
|
}
|
||||||
|
if (!some_value)
|
||||||
|
{
|
||||||
|
for (int i = 1; i <= items; i++)
|
||||||
|
{
|
||||||
|
TRectype & rec = (*rows)[i];
|
||||||
|
|
||||||
|
rec.put(RRIP_RIPARTO, "1");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return (TObject*)rows;
|
return (TObject*)rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TCache_ripartizioni::set_esercizio(const TDate & d)
|
||||||
|
{
|
||||||
|
TEsercizi_contabili e;
|
||||||
|
const TEsercizio & esc = e.esercizio(d);
|
||||||
|
|
||||||
|
_dal = esc.inizio();
|
||||||
|
_al = esc.fine();
|
||||||
|
destroy();
|
||||||
|
}
|
||||||
|
|
||||||
const TRecord_array& TCache_ripartizioni::righe(const char* costo, const char* commessa)
|
const TRecord_array& TCache_ripartizioni::righe(const char* costo, const char* commessa)
|
||||||
{
|
{
|
||||||
TToken_string parametro;
|
TToken_string parametro;
|
||||||
|
@ -177,10 +177,13 @@ public:
|
|||||||
|
|
||||||
class TCache_ripartizioni : public TCache
|
class TCache_ripartizioni : public TCache
|
||||||
{
|
{
|
||||||
|
TDate _dal, _al;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual TObject* key2obj(const char* key);
|
virtual TObject* key2obj(const char* key);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void set_esercizio(const TDate & d);
|
||||||
const TRecord_array& righe(const char* costo, const char* commessa);
|
const TRecord_array& righe(const char* costo, const char* commessa);
|
||||||
const TRecord_array& righe(const int gruppo, const int conto, const long sottoconto);
|
const TRecord_array& righe(const int gruppo, const int conto, const long sottoconto);
|
||||||
const TRecord_array& righe(const TBill& bill);
|
const TRecord_array& righe(const TBill& bill);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user