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 <relation.h>
|
||||
|
||||
#include "../cg/cglib01.h"
|
||||
#include "calib01.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())
|
||||
{
|
||||
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_SAVEREC:
|
||||
if (e == fe_button)
|
||||
@ -128,6 +141,7 @@ protected:
|
||||
|
||||
public:
|
||||
bool cappotta_movimento(TAnal_mov& anal_mov);
|
||||
TRib_movanal_app(){}
|
||||
};
|
||||
|
||||
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)
|
||||
TRelation rel_movana(LF_MOVANA);
|
||||
TRectype darec(LF_MOVANA), arec(LF_MOVANA);
|
||||
darec.put(MOVANA_DATAREG, mask.get_date(F_DATAINI));
|
||||
arec.put(MOVANA_DATAREG, mask.get_date(F_DATAFIN));
|
||||
const TDate & dal = mask.get_date(F_DATAINI);
|
||||
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);
|
||||
const long items = cur_movana.items();
|
||||
|
@ -3,6 +3,7 @@
|
||||
#define F_DATAINI 201
|
||||
#define F_DATAFIN 202
|
||||
#define F_DEFINITIVO 203
|
||||
#define F_ANNO 204
|
||||
#define F_RIGHE 300
|
||||
|
||||
#define F_CODCAUS 113
|
||||
|
@ -30,23 +30,39 @@ BEGIN
|
||||
PROMPT 1 1 "@bParametri di elaborazione"
|
||||
END
|
||||
|
||||
DATA F_DATAINI
|
||||
NUMBER F_ANNO 4
|
||||
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
|
||||
FLAGS "RZ"
|
||||
ADD NONE
|
||||
END
|
||||
|
||||
DATA F_DATAFIN
|
||||
BEGIN
|
||||
PROMPT 2 3 "Alla data "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BOOLEAN F_DEFINITIVO
|
||||
BEGIN
|
||||
PROMPT 42 2 "Blocca movimenti elaborati"
|
||||
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
|
||||
BEGIN
|
||||
PROMPT 0 5 ""
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <pconti.h>
|
||||
|
||||
#include "calib01.h"
|
||||
#include "calib02.h"
|
||||
#include "calibmsk.h"
|
||||
#include "../cg/cg2103.h"
|
||||
|
||||
@ -1455,14 +1456,58 @@ TObject* TCache_ripartizioni::key2obj(const char* key)
|
||||
}
|
||||
|
||||
TString80 chiave;
|
||||
if (rip.read() == NOERR)
|
||||
const bool found = (rip.read() == NOERR);
|
||||
if (found)
|
||||
chiave << "B|" << rip.get(RIP_CODICE);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
TToken_string parametro;
|
||||
|
@ -177,10 +177,13 @@ public:
|
||||
|
||||
class TCache_ripartizioni : public TCache
|
||||
{
|
||||
TDate _dal, _al;
|
||||
|
||||
protected:
|
||||
virtual TObject* key2obj(const char* key);
|
||||
|
||||
public:
|
||||
void set_esercizio(const TDate & d);
|
||||
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 TBill& bill);
|
||||
|
Loading…
x
Reference in New Issue
Block a user