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:
parent
83811764fe
commit
12dc19e4fa
@ -4,6 +4,8 @@
|
|||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
|
|
||||||
|
#include "../cg/cglib01.h"
|
||||||
|
|
||||||
#include "lvcondv.h"
|
#include "lvcondv.h"
|
||||||
#include "lvrcondv.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 long clifo = m.get_long(F_CODCF);
|
||||||
const int indsp = m.get_int(F_INDSPED);
|
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
|
//recupero la maschera di riga
|
||||||
TMask& msk = righe.sheet_mask();
|
TMask& msk = righe.sheet_mask();
|
||||||
|
|
||||||
@ -848,29 +857,36 @@ void TContratti_app::save_rows(const TMask& m)
|
|||||||
if (ini_get_bool(CONFIG_DITTA, "lv", "Qtamodi"))
|
if (ini_get_bool(CONFIG_DITTA, "lv", "Qtamodi"))
|
||||||
{
|
{
|
||||||
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp);
|
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
|
//gestione LF_CLIFOGIAC
|
||||||
if(reclav.empty())
|
if(reclav.empty())
|
||||||
{
|
{
|
||||||
reclav.put(CLIFOGIAC_TIPOCF, 'C');
|
reclav.put(CLIFOGIAC_TIPOCF, 'C');
|
||||||
reclav.put(CLIFOGIAC_CODCF, clifo);
|
reclav.put(CLIFOGIAC_CODCF, clifo);
|
||||||
reclav.put(CLIFOGIAC_ANNOES, year);
|
reclav.put(CLIFOGIAC_ANNOES, esercizio);
|
||||||
reclav.put(CLIFOGIAC_INDSPED, indsp);
|
reclav.put(CLIFOGIAC_INDSPED, indsp);
|
||||||
reclav.put(CLIFOGIAC_CODART, codart);
|
reclav.put(CLIFOGIAC_CODART, codart);
|
||||||
reclav.put(CLIFOGIAC_NRIGA, 1);
|
reclav.put(CLIFOGIAC_NRIGA, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//riscrivo la dotazione iniziale convertita nell'unità di misura principale
|
//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);
|
reclav.put(CLIFOGIAC_DOTIN, dotin);
|
||||||
|
|
||||||
//riscrivo la dotazione odierna convertita nell'unità di misura principale
|
//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);
|
reclav.put(CLIFOGIAC_DOTOD, dotod);
|
||||||
|
|
||||||
//riscrivo la dotazione temporanea convertita nell'unità di misura principale
|
//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);
|
reclav.put(CLIFOGIAC_DOTTM, dottm);
|
||||||
|
|
||||||
//riscrivo il consegnato anno convertito nell'unità di misura principale
|
//riscrivo il consegnato anno convertito nell'unità di misura principale
|
||||||
@ -985,8 +1001,13 @@ int TContratti_app::read(TMask& m)
|
|||||||
//instanzio un TLcalisamfile su LF_CLIFOGIAC
|
//instanzio un TLcalisamfile su LF_CLIFOGIAC
|
||||||
TLocalisamfile magcli(LF_CLIFOGIAC);
|
TLocalisamfile magcli(LF_CLIFOGIAC);
|
||||||
//setto alcune variabili di interesse
|
//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 long clifo = m.get_long(F_CODCF);
|
||||||
const int indsp = m.get_int(F_INDSPED);
|
const int indsp = m.get_int(F_INDSPED);
|
||||||
//recupero sheet e realtiva mashera di riga
|
//recupero sheet e realtiva mashera di riga
|
||||||
@ -1025,7 +1046,7 @@ int TContratti_app::read(TMask& m)
|
|||||||
//estraggo il record corrispondente su LF_CLIFOGIAC
|
//estraggo il record corrispondente su LF_CLIFOGIAC
|
||||||
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp);
|
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', clifo, indsp);
|
||||||
artrec.find_rec(0); //svuoto la cache a forza
|
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
|
//lettura dei dati da LF_CLIFOGIAC
|
||||||
//se esiste il record su LF_CLIFOGIAC, recupero l'unità di misura dalla riga dello sheet selezionata
|
//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
|
//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 int year = oggi.year();
|
||||||
const long clifo = m.get_long(F_CODCF);
|
const long clifo = m.get_long(F_CODCF);
|
||||||
const int indsp = m.get_int(F_INDSPED);
|
const int indsp = m.get_int(F_INDSPED);
|
||||||
|
const TEsercizi_contabili escon;
|
||||||
|
|
||||||
//instanzio un TLocaisamfile su LF_CLIFOGIAC
|
//instanzio un TLocaisamfile su LF_CLIFOGIAC
|
||||||
TLocalisamfile magcli(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_DESCR));
|
||||||
// righe.disable_cell(r, righe.cid2index(S_UM));
|
// 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_ANNOES, y);
|
||||||
magcli.put(CLIFOGIAC_TIPOCF, 'C');
|
magcli.put(CLIFOGIAC_TIPOCF, 'C');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user