Supporto per IVAXCASSA in fatturazione

Aggiunta dotazione iniziale oltre che odierna e temporanea in Genrazione Documenti di trasporto

git-svn-id: svn://10.65.10.50/branches/R_10_00@22765 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-12-04 16:46:19 +00:00
parent d896fd055b
commit 6dc48175f8
2 changed files with 49 additions and 37 deletions

View File

@ -1,7 +1,5 @@
#include <progind.h>
#include <config.h>
#include <dongle.h>
#include <modaut.h>
#include <progind.h>
#include <reputils.h>
#include <utility.h>
@ -10,17 +8,15 @@
#include "../pr/agenti.h"
#include "../pr/percprov.h"
#include "clifo.h"
#include "../cg/cfban.h"
#include "../cg/cglib03.h"
#include "clifo.h"
#include "comuni.h"
#include "cfven.h"
#include "lvcondv.h"
#include "lvrcondv.h"
#include "doc.h"
#include "rdoc.h"
#include "../db/dblib.h"
#include "../mg/mglib.h"
#include "../ve/ve6200.h"
#include "../ve/ve6200a.h"
@ -183,7 +179,6 @@ bool TFatturazione_lavanderie::doc_raggruppabili(const TDocumento& doc_in, const
if (doc_in.ha_riga_esenzione() != doc_out.ha_riga_esenzione())
return false;
bool ok = true;
TString campo;
//scorro tutti i campi contenuti nella TToken_string
//se sto controllando i campi CODABI e CODCAB, allora il controllo
@ -197,7 +192,7 @@ bool TFatturazione_lavanderie::doc_raggruppabili(const TDocumento& doc_in, const
}
else
{
campo = doc_in.get(c);
const TString& campo = doc_in.get(c);
ok &= campo == doc_out.get(c);
}
}
@ -245,24 +240,21 @@ void TFatturazione_lavanderie::pre_process_input(TLista_documenti& doc_in)
TDocumento& doc = doc_in[id];
const int rows = doc.physical_rows();
TString str_real;
for (int i = 1; i <= rows; i++)
{
TRiga_documento & row = doc[i];
TString str_real = row.get(RDOC_QTAREALE);
TRiga_documento& row = doc[i];
str_real = row.get(RDOC_QTAREALE);
if (str_real.full())
{
real qta_real(decode(str_real));
const real qta_real(decode(str_real));
row.put(RDOC_QTA, qta_real);
row.zero(RDOC_QTAREALE);
}
str_real = row.get(RDOC_QTARITREALE);
if (str_real.full())
{
real qta_real(decode(str_real));
const real qta_real(decode(str_real));
row.put(RDOC_QTAGG1, qta_real);
row.zero(RDOC_QTARITREALE);
}
@ -515,10 +507,11 @@ int TFatturazione_lavanderie::write_fatt_ragg(const bool solotot)
//e/o eliminare quelle inutili e/o aggiungere quelle per il ciclaggio su 2 linee
void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_documenti& doc_in)
{
bool use_indsp = ini_get_bool(CONFIG_DITTA, "mg", "MOV_INDSPED");
//scorro tutti i documenti di output generati precedentemente
for (int id = 0; id < doc_out.items(); id++)
const bool use_indsp = ini_get_bool(CONFIG_DITTA, "mg", "MOV_INDSPED");
const bool riftest = ini_get_bool(CONFIG_DITTA, "lv", "RifTest");
//scorro tutti i documenti di output generati precedentemente
for (int id = 0; id < doc_out.items(); id++)
{
//instanzio il documento e recupero le variabili di interesse per recuperare
//il contratto del cliente in questione
@ -532,22 +525,33 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
bool fixdotin = false;
bool elcons = contr.get_bool(LVCONDV_ELCONS);
bool rifbol = contr.get_bool(LVCONDV_RIFBOL);
bool riftest = ini_get_bool(CONFIG_DITTA, "lv", "RifTest");
bool liqdiff = doc.clifor().get_int(CLI_ALLEG) == 7 && doc.clifor().vendite().get_bool(CFV_FATTSOSP);
const int alleg = doc.clifor().get_int(CLI_ALLEG);
const bool liqdiff = alleg == 7 && doc.clifor().vendite().get_bool(CFV_FATTSOSP);
real consvconv;
real impvconv;
TAssoc_array nolo_computed;
doc.zero(DOC_LIQDIFF);
doc.zero(DOC_IVAXCASSA);
if (liqdiff)
{
doc.put(DOC_LIQDIFF, "X");
}
else
doc.zero(DOC_LIQDIFF);
{
if ((alleg < 5 || alleg == 7) && doc.clifor().get(CLI_PAIV).full() &&
gestione_IVAxCassa(doc.get_date(DOC_DATADOC)))
{
doc.put(DOC_IVAXCASSA, "X");
}
}
if (doc.physical_rows() > 0 && doc[1].is_descrizione())
{
if (elcons)
{
TRiga_documento& rout = doc[1];
rout.put(RDOC_DESCR, "COME DA ELENCO CONSEGNE");
rout.put(RDOC_DESCR, TR("COME DA ELENCO CONSEGNE"));
rout.put(RDOC_DESCLUNGA, false);
rout.put(RDOC_DESCEST, "");
}
@ -1454,7 +1458,7 @@ void TFatturazione_lavanderie::campi_raggruppamento_righe(TToken_string& campi_r
if (riga_uguale(2))
{
const int tipoprezzo = ini_get_int(CONFIG_DITTA, "lv", "TipoPr");
if(tipoprezzo == 0)
if (tipoprezzo == 0)
campi_riga.add(RDOC_SCONTO);
else
campi_riga.add(RDOC_PREZZO"|"RDOC_SCONTO);

View File

@ -543,9 +543,6 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
}
//gestione campi dotazione odierna e dotazione temporanea
if(codart.left(1) == "N")
int cazzone = 1;
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', codcf, indsped);
//fisso l'anno esercizio
TEsercizi_contabili& esc = esercizi();
@ -553,19 +550,25 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
//estraggo il record corrispondente su LF_CLIFOGIAC
const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc);
real dotod = reclav.get_real(CLIFOGIAC_DOTOD);
real dotmp = reclav.get_real(CLIFOGIAC_DOTTM);
if(reclav.empty())
real dotod, dotmp, dotin;
if (reclav.empty())
{
TArticolo_lavanderie& artrec1 = cached_article_laundry(codart, 'C', codcf, 0);
const TRecmag_lavanderie& reclav1 = artrec1.find_rec(last_esc);
dotod = reclav1.get_real(CLIFOGIAC_DOTOD);
dotmp = reclav1.get_real(CLIFOGIAC_DOTTM);
dotin = reclav1.get_real(CLIFOGIAC_DOTIN);
}
else
{
dotod = reclav.get_real(CLIFOGIAC_DOTOD);
dotmp = reclav.get_real(CLIFOGIAC_DOTTM);
dotin = reclav.get_real(CLIFOGIAC_DOTIN);
}
rdoc.put("DOTOD", dotod);
rdoc.put("DOTMP", dotmp);
rdoc.put("DOTIN", dotin);
//elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino
const TString& sconto = rcont.get(LVRCONDV_SCONTPERC).as_string();
@ -586,7 +589,6 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
for (int i = 1; i <= righe; i++)
{
TRiga_documento& r = doc[i];
doc[i].autoload(sheet);
sheet.check_row(i - 1, 0x3);
}
@ -645,7 +647,7 @@ bool TGestione_bolle_msk::lv_ritirato_handler(TMask_field& f, KEY k)
real dotod = magcli.get_long(CLIFOGIAC_DOTOD); //segnalazione Tassan mail 05/04/2011 ore 17:08
if (ritirato > dotod && f.dirty() && dotin > 0 && dotod > 0) //accordi da Tassan in data 06/04/2011
warning_box(TR("ATTENZIONE: stai ritirando un quantitativo maggiore della dotazione!"));
warning_box(TR("ATTENZIONE: si sta ritirando un quantitativo maggiore della dotazione!"));
TDocumento& doc = dmask.doc();
@ -768,10 +770,13 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc);
const real dotod = reclav.get_real(CLIFOGIAC_DOTOD);
const real dotmp = reclav.get_real(CLIFOGIAC_DOTTM);
// const real dotmp = reclav.get_real(CLIFOGIAC_DOTTM);
const real dotin = reclav.get_real(CLIFOGIAC_DOTIN);
rdoc.put("DOTOD", dotod);
msk.set(FR_JOLLY1, dotod);
rdoc.put("DOTIN", dotin);
}
if (rdoc.get(RDOC_CODAGG1).empty())
@ -1470,6 +1475,8 @@ int TGestione_bolle_app::read(TMask& m)
TDocumento& d = mask.doc();
_giac.reset(d);
// A che cavolo serve?
FOR_EACH_DOC_ROW_BACK(d, r, row)
{
TRiga_documento& rdoc = (TRiga_documento&)*row;
@ -1477,6 +1484,7 @@ int TGestione_bolle_app::read(TMask& m)
//real dotod = _giac.giac_att(rdoc, true);
//real dotmp = _giac.giac_att(rdoc, false);
}
mask.doc2mask();
mask.reset_autoselect();
}