Patch level : 10.0 patch 878

Files correlati     : lv0
Ricompilazione Demo : [ ]
Commento            :
Implementazioni per cambio d'anno


git-svn-id: svn://10.65.10.50/branches/R_10_00@21223 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2010-12-02 10:30:14 +00:00
parent 83811764fe
commit 12dc19e4fa

View File

@ -4,6 +4,8 @@
#include <progind.h>
#include <relapp.h>
#include "../cg/cglib01.h"
#include "lvcondv.h"
#include "lvrcondv.h"
@ -817,6 +819,13 @@ void TContratti_app::save_rows(const TMask& m)
const long clifo = m.get_long(F_CODCF);
const int indsp = m.get_int(F_INDSPED);
TEsercizi_contabili esc;
const int last_esc = esc.last();
const int pred_esc = esc.pred(last_esc);
const bool pred_esc_chiuso = esc[pred_esc].chiusura_mag().ok();
const int esercizio = (pred_esc_chiuso ? last_esc : pred_esc);
//recupero la maschera di riga
TMask& msk = righe.sheet_mask();
@ -848,34 +857,41 @@ void TContratti_app::save_rows(const TMask& m)
if (ini_get_bool(CONFIG_DITTA, "lv", "Qtamodi"))
{
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp);
TRecmag_lavanderie& reclav = (TRecmag_lavanderie&)artrec.find_rec(year);
TRecmag_lavanderie& reclav = (TRecmag_lavanderie&)artrec.find_rec(esercizio);
TRecmag_lavanderie& reclav_prec = (TRecmag_lavanderie&)artrec.find_rec(pred_esc);
//gestione LF_CLIFOGIAC
if(reclav.empty())
{
reclav.put(CLIFOGIAC_TIPOCF, 'C');
reclav.put(CLIFOGIAC_CODCF, clifo);
reclav.put(CLIFOGIAC_ANNOES, year);
reclav.put(CLIFOGIAC_ANNOES, esercizio);
reclav.put(CLIFOGIAC_INDSPED, indsp);
reclav.put(CLIFOGIAC_CODART, codart);
reclav.put(CLIFOGIAC_NRIGA, 1);
}
//riscrivo la dotazione iniziale convertita nell'unità di misura principale
const real dotin = row->get(righe.cid2index(S_DOTIN));
real dotin = row->get(righe.cid2index(S_DOTIN));
if(!pred_esc_chiuso)
dotin -= reclav_prec.get_real(CLIFOGIAC_DOTIN);
reclav.put(CLIFOGIAC_DOTIN, dotin);
//riscrivo la dotazione odierna convertita nell'unità di misura principale
const real dotod = row->get(righe.cid2index(S_DOTOD));
real dotod = row->get(righe.cid2index(S_DOTOD));
if(!pred_esc_chiuso)
dotod -= reclav_prec.get_real(CLIFOGIAC_DOTOD);
reclav.put(CLIFOGIAC_DOTOD, dotod);
//riscrivo la dotazione temporanea convertita nell'unità di misura principale
const real dottm = row->get(righe.cid2index(S_DOTTMP));
real dottm = row->get(righe.cid2index(S_DOTTMP));
if(!pred_esc_chiuso)
dottm -= reclav_prec.get_real(CLIFOGIAC_DOTTM);
reclav.put(CLIFOGIAC_DOTTM, dottm);
//riscrivo il consegnato anno convertito nell'unità di misura principale
const real conan = row->get(righe.cid2index(S_CONSANNO));
reclav.put(CLIFOGIAC_CONSANNO, conan);
reclav.put(CLIFOGIAC_CONSANNO, conan);
reclav.rewrite_write(magcli);
}
}
@ -985,8 +1001,13 @@ int TContratti_app::read(TMask& m)
//instanzio un TLcalisamfile su LF_CLIFOGIAC
TLocalisamfile magcli(LF_CLIFOGIAC);
//setto alcune variabili di interesse
const TDate oggi(TODAY);
const int year = oggi.year();
//la data deve essere un esercizio; è da prendere sempre l'ultimo esercizio esistente
TEsercizi_contabili esc;
const int last_esc = esc.last();
/*const TDate oggi(TODAY);
const int year = oggi.year();*/
const long clifo = m.get_long(F_CODCF);
const int indsp = m.get_int(F_INDSPED);
//recupero sheet e realtiva mashera di riga
@ -1025,7 +1046,7 @@ int TContratti_app::read(TMask& m)
//estraggo il record corrispondente su LF_CLIFOGIAC
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp);
artrec.find_rec(0); //svuoto la cache a forza
const TRecmag_lavanderie& reclav = artrec.find_rec(year);
const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc);
//lettura dei dati da LF_CLIFOGIAC
//se esiste il record su LF_CLIFOGIAC, recupero l'unità di misura dalla riga dello sheet selezionata
//e setto i campi delle dotazioni e dei consegnati ai valori corretti riportati alla giusta unità di misura
@ -1145,6 +1166,7 @@ void TContratti_app::init_modify_mode(TMask& m)
const int year = oggi.year();
const long clifo = m.get_long(F_CODCF);
const int indsp = m.get_int(F_INDSPED);
const TEsercizi_contabili escon;
//instanzio un TLocaisamfile su LF_CLIFOGIAC
TLocalisamfile magcli(LF_CLIFOGIAC);
@ -1160,7 +1182,7 @@ void TContratti_app::init_modify_mode(TMask& m)
// righe.disable_cell(r, righe.cid2index(S_DESCR));
// righe.disable_cell(r, righe.cid2index(S_UM));
for (int y = year + oggi.month() == 12; y >= year; y--)
for (int y = escon.last() + oggi.month() == 12; y >= year; y--)
{
magcli.put(CLIFOGIAC_ANNOES, y);
magcli.put(CLIFOGIAC_TIPOCF, 'C');