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:
parent
d896fd055b
commit
6dc48175f8
@ -1,7 +1,5 @@
|
|||||||
#include <progind.h>
|
|
||||||
#include <config.h>
|
|
||||||
#include <dongle.h>
|
#include <dongle.h>
|
||||||
#include <modaut.h>
|
#include <progind.h>
|
||||||
#include <reputils.h>
|
#include <reputils.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
|
||||||
@ -10,17 +8,15 @@
|
|||||||
|
|
||||||
#include "../pr/agenti.h"
|
#include "../pr/agenti.h"
|
||||||
#include "../pr/percprov.h"
|
#include "../pr/percprov.h"
|
||||||
#include "clifo.h"
|
|
||||||
#include "../cg/cfban.h"
|
#include "../cg/cfban.h"
|
||||||
|
#include "../cg/cglib03.h"
|
||||||
|
|
||||||
|
#include "clifo.h"
|
||||||
#include "comuni.h"
|
#include "comuni.h"
|
||||||
#include "cfven.h"
|
#include "cfven.h"
|
||||||
#include "lvcondv.h"
|
#include "lvcondv.h"
|
||||||
#include "lvrcondv.h"
|
#include "lvrcondv.h"
|
||||||
#include "doc.h"
|
|
||||||
#include "rdoc.h"
|
|
||||||
|
|
||||||
#include "../db/dblib.h"
|
|
||||||
#include "../mg/mglib.h"
|
|
||||||
#include "../ve/ve6200.h"
|
#include "../ve/ve6200.h"
|
||||||
#include "../ve/ve6200a.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())
|
if (doc_in.ha_riga_esenzione() != doc_out.ha_riga_esenzione())
|
||||||
return false;
|
return false;
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
TString campo;
|
|
||||||
|
|
||||||
//scorro tutti i campi contenuti nella TToken_string
|
//scorro tutti i campi contenuti nella TToken_string
|
||||||
//se sto controllando i campi CODABI e CODCAB, allora il controllo
|
//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
|
else
|
||||||
{
|
{
|
||||||
campo = doc_in.get(c);
|
const TString& campo = doc_in.get(c);
|
||||||
ok &= campo == doc_out.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];
|
TDocumento& doc = doc_in[id];
|
||||||
const int rows = doc.physical_rows();
|
const int rows = doc.physical_rows();
|
||||||
|
|
||||||
|
TString str_real;
|
||||||
for (int i = 1; i <= rows; i++)
|
for (int i = 1; i <= rows; i++)
|
||||||
{
|
{
|
||||||
TRiga_documento & row = doc[i];
|
TRiga_documento& row = doc[i];
|
||||||
TString str_real = row.get(RDOC_QTAREALE);
|
str_real = row.get(RDOC_QTAREALE);
|
||||||
|
|
||||||
if (str_real.full())
|
if (str_real.full())
|
||||||
{
|
{
|
||||||
real qta_real(decode(str_real));
|
const real qta_real(decode(str_real));
|
||||||
|
|
||||||
row.put(RDOC_QTA, qta_real);
|
row.put(RDOC_QTA, qta_real);
|
||||||
row.zero(RDOC_QTAREALE);
|
row.zero(RDOC_QTAREALE);
|
||||||
}
|
}
|
||||||
str_real = row.get(RDOC_QTARITREALE);
|
str_real = row.get(RDOC_QTARITREALE);
|
||||||
|
|
||||||
if (str_real.full())
|
if (str_real.full())
|
||||||
{
|
{
|
||||||
real qta_real(decode(str_real));
|
const real qta_real(decode(str_real));
|
||||||
|
|
||||||
row.put(RDOC_QTAGG1, qta_real);
|
row.put(RDOC_QTAGG1, qta_real);
|
||||||
row.zero(RDOC_QTARITREALE);
|
row.zero(RDOC_QTARITREALE);
|
||||||
}
|
}
|
||||||
@ -515,9 +507,10 @@ int TFatturazione_lavanderie::write_fatt_ragg(const bool solotot)
|
|||||||
//e/o eliminare quelle inutili e/o aggiungere quelle per il ciclaggio su 2 linee
|
//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)
|
void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_documenti& doc_in)
|
||||||
{
|
{
|
||||||
bool use_indsp = ini_get_bool(CONFIG_DITTA, "mg", "MOV_INDSPED");
|
const bool use_indsp = ini_get_bool(CONFIG_DITTA, "mg", "MOV_INDSPED");
|
||||||
//scorro tutti i documenti di output generati precedentemente
|
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++)
|
for (int id = 0; id < doc_out.items(); id++)
|
||||||
{
|
{
|
||||||
//instanzio il documento e recupero le variabili di interesse per recuperare
|
//instanzio il documento e recupero le variabili di interesse per recuperare
|
||||||
@ -532,22 +525,33 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do
|
|||||||
bool fixdotin = false;
|
bool fixdotin = false;
|
||||||
bool elcons = contr.get_bool(LVCONDV_ELCONS);
|
bool elcons = contr.get_bool(LVCONDV_ELCONS);
|
||||||
bool rifbol = contr.get_bool(LVCONDV_RIFBOL);
|
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 consvconv;
|
||||||
real impvconv;
|
real impvconv;
|
||||||
TAssoc_array nolo_computed;
|
TAssoc_array nolo_computed;
|
||||||
|
|
||||||
if (liqdiff)
|
|
||||||
doc.put(DOC_LIQDIFF, "X");
|
|
||||||
else
|
|
||||||
doc.zero(DOC_LIQDIFF);
|
doc.zero(DOC_LIQDIFF);
|
||||||
|
doc.zero(DOC_IVAXCASSA);
|
||||||
|
if (liqdiff)
|
||||||
|
{
|
||||||
|
doc.put(DOC_LIQDIFF, "X");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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 (doc.physical_rows() > 0 && doc[1].is_descrizione())
|
||||||
{
|
{
|
||||||
if (elcons)
|
if (elcons)
|
||||||
{
|
{
|
||||||
TRiga_documento& rout = doc[1];
|
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_DESCLUNGA, false);
|
||||||
rout.put(RDOC_DESCEST, "");
|
rout.put(RDOC_DESCEST, "");
|
||||||
}
|
}
|
||||||
@ -1454,7 +1458,7 @@ void TFatturazione_lavanderie::campi_raggruppamento_righe(TToken_string& campi_r
|
|||||||
if (riga_uguale(2))
|
if (riga_uguale(2))
|
||||||
{
|
{
|
||||||
const int tipoprezzo = ini_get_int(CONFIG_DITTA, "lv", "TipoPr");
|
const int tipoprezzo = ini_get_int(CONFIG_DITTA, "lv", "TipoPr");
|
||||||
if(tipoprezzo == 0)
|
if (tipoprezzo == 0)
|
||||||
campi_riga.add(RDOC_SCONTO);
|
campi_riga.add(RDOC_SCONTO);
|
||||||
else
|
else
|
||||||
campi_riga.add(RDOC_PREZZO"|"RDOC_SCONTO);
|
campi_riga.add(RDOC_PREZZO"|"RDOC_SCONTO);
|
||||||
|
@ -543,9 +543,6 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//gestione campi dotazione odierna e dotazione temporanea
|
//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);
|
TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', codcf, indsped);
|
||||||
//fisso l'anno esercizio
|
//fisso l'anno esercizio
|
||||||
TEsercizi_contabili& esc = esercizi();
|
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
|
//estraggo il record corrispondente su LF_CLIFOGIAC
|
||||||
const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc);
|
const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc);
|
||||||
real dotod = reclav.get_real(CLIFOGIAC_DOTOD);
|
real dotod, dotmp, dotin;
|
||||||
real dotmp = reclav.get_real(CLIFOGIAC_DOTTM);
|
if (reclav.empty())
|
||||||
|
|
||||||
if(reclav.empty())
|
|
||||||
{
|
{
|
||||||
TArticolo_lavanderie& artrec1 = cached_article_laundry(codart, 'C', codcf, 0);
|
TArticolo_lavanderie& artrec1 = cached_article_laundry(codart, 'C', codcf, 0);
|
||||||
const TRecmag_lavanderie& reclav1 = artrec1.find_rec(last_esc);
|
const TRecmag_lavanderie& reclav1 = artrec1.find_rec(last_esc);
|
||||||
dotod = reclav1.get_real(CLIFOGIAC_DOTOD);
|
dotod = reclav1.get_real(CLIFOGIAC_DOTOD);
|
||||||
dotmp = reclav1.get_real(CLIFOGIAC_DOTTM);
|
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("DOTOD", dotod);
|
||||||
rdoc.put("DOTMP", dotmp);
|
rdoc.put("DOTMP", dotmp);
|
||||||
|
rdoc.put("DOTIN", dotin);
|
||||||
|
|
||||||
//elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino
|
//elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino
|
||||||
const TString& sconto = rcont.get(LVRCONDV_SCONTPERC).as_string();
|
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++)
|
for (int i = 1; i <= righe; i++)
|
||||||
{
|
{
|
||||||
TRiga_documento& r = doc[i];
|
TRiga_documento& r = doc[i];
|
||||||
|
|
||||||
doc[i].autoload(sheet);
|
doc[i].autoload(sheet);
|
||||||
sheet.check_row(i - 1, 0x3);
|
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
|
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
|
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();
|
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 TRecmag_lavanderie& reclav = artrec.find_rec(last_esc);
|
||||||
|
|
||||||
const real dotod = reclav.get_real(CLIFOGIAC_DOTOD);
|
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);
|
rdoc.put("DOTOD", dotod);
|
||||||
msk.set(FR_JOLLY1, dotod);
|
msk.set(FR_JOLLY1, dotod);
|
||||||
|
|
||||||
|
rdoc.put("DOTIN", dotin);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rdoc.get(RDOC_CODAGG1).empty())
|
if (rdoc.get(RDOC_CODAGG1).empty())
|
||||||
@ -1470,6 +1475,8 @@ int TGestione_bolle_app::read(TMask& m)
|
|||||||
TDocumento& d = mask.doc();
|
TDocumento& d = mask.doc();
|
||||||
|
|
||||||
_giac.reset(d);
|
_giac.reset(d);
|
||||||
|
|
||||||
|
// A che cavolo serve?
|
||||||
FOR_EACH_DOC_ROW_BACK(d, r, row)
|
FOR_EACH_DOC_ROW_BACK(d, r, row)
|
||||||
{
|
{
|
||||||
TRiga_documento& rdoc = (TRiga_documento&)*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 dotod = _giac.giac_att(rdoc, true);
|
||||||
//real dotmp = _giac.giac_att(rdoc, false);
|
//real dotmp = _giac.giac_att(rdoc, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
mask.doc2mask();
|
mask.doc2mask();
|
||||||
mask.reset_autoselect();
|
mask.reset_autoselect();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user