Patch level : 12.0 990

Files correlati     : ve0.exe ve1.exe ve5.exe ve6.exe
Commento            :

Cam iato occasionale in is_occasionale per avere la funzione occasionale che restituisce l'oggetto occasionale.
Aggiunte le funzioni get_dest_sdi, get_rif_sdi(), tipo_doc_sdi() dei documenti
This commit is contained in:
Alessandro Bonazzi 2020-09-02 14:13:19 +02:00
parent 7416ca4c12
commit db65d892ea
6 changed files with 89 additions and 10 deletions

View File

@ -946,12 +946,14 @@ void TMotore_application::ini2mask(TConfig& ini, TMask& msk, bool query)
else
{
TDocumento& d = doc();
d.put(DOC_TIPOCF, msk.get(F_TIPOCF));
d.put(DOC_CODCF, msk.get(F_CODCF));
const TCli_for& c = d.clifor();
const TCli_for& c = d.clifor();
// Compilo dati occasionale se presenti
if (c.occasionale() && ini.set_paragraph("18")) // LF_OCCAS
if (c.is_occasionale() && ini.set_paragraph("18")) // LF_OCCAS
{
const TString& ocfpi = ini.get(OCC_CFPI);
if (ocfpi.full())

View File

@ -822,7 +822,7 @@ bool TDocumento_form::validate(TForm_item &cf, TToken_string &s)
// !COMN-><FIELD> accede ai campi del comune di nascita del cliente
TCli_for & cli_for = _doc->clifor();
TOccasionale & cli_occ = _doc->occas();
const bool occasionale = cli_for.occasionale();
const bool occasionale = cli_for.is_occasionale();
TString in(s.get()); // prende la macro o il fieldref
if (in[0] != '!')
{

View File

@ -4,6 +4,7 @@
#include <utility.h>
#include "../cg/cglib.h"
#include "../fp/fplib.h"
#include <causali.h>
@ -288,6 +289,68 @@ TDocumentoEsteso::TDocumentoEsteso(const TRectype& rec)
_parm.qta_lit = 3; _parm.qta_val = 3;
}
const TString & TDocumentoEsteso::get_dest_sdi()
{
TString & codsdi = get_tmp_string(16);
TString & pec = get_tmp_string(256);
get_coddest(codsdi, pec);
return pec.full() ? pec : codsdi;
}
bool TDocumentoEsteso::get_coddest(TString& coddest, TString& pec)
{
const TCli_for & clifo = clifor();
coddest = clifo.vendite().get(CFV_PADESTIN);
pec = clifo.get("PEC");
if (coddest.empty())
{
if (pec.full() || ini_get_bool(CONFIG_DITTA, "fp", "esppri"))
coddest = "0000000";
// Controllo se è straniero
else
{
const TAnagrafica & anag = clifor().anagrafica_cliente();
if (anag.estero() && anag.stato_partita_IVA() != "IT")
coddest = ini_get_bool(CONFIG_DITTA, "fp", "espest") ? ini_get_string(CONFIG_DITTA, "fp", "espestcod", "XXXXXXX") : "";
}
}
else
pec = "";
const int codindsp = get_int(DOC_CODINDSP);
if (codindsp > 0)
coddest = clifo.indsp(codindsp).get(IND_PADESTIN);
return coddest.full();
}
const TString & TDocumentoEsteso::get_rif_sdi()
{
const TCli_for & clifo = clifor();
const int codindsp = get_int(DOC_CODINDSP);
if (codindsp > 0)
return clifo.indsp(codindsp).get(IND_PARIFAMM);
return clifo.vendite().get(CFV_PARIFAMM);
}
const TString & TDocumentoEsteso::tipo_doc_sdi() const
{
TString & tipo_doc_sdi = get_tmp_string(16);
tipo_doc_sdi = get(DOC_TIPODOCSDI);
// Controlli da fare per clienti a cui si fotte la conversione e mi trovo dati sporchi nella colonna
if (tipo_doc_sdi.len() == 4 && tipo_doc_sdi.starts_with("TD"))
return tipo_doc_sdi;
return tipo().tipo_doc_sdi();
}
TDocumentoEsteso::TDocumentoEsteso(const TRectype& rec, dec_parm & parm)
: TDocumento(rec), _sum_filter(-1), _sum_selected(FALSE), _scadenze_current(-1),
_conai(NULL), _tic(NULL), _split(NULL)
@ -302,9 +365,9 @@ TDocumentoEsteso::TDocumentoEsteso()
TDocumentoEsteso::~TDocumentoEsteso()
{
if (_conai) delete _conai;
if (_tic) delete _tic;
if (_split) delete _split;
safe_delete(_conai);
safe_delete(_tic);
safe_delete(_split);
}
void TDocumentoEsteso::set_riga_conai()

View File

@ -78,10 +78,23 @@ public:
void set_riga_conai();
void set_riga_tic();
void set_riga_split();
// funzioni per fp
// Ritorna cod sdi, pec o vuoto. Chiama get_coddest()
const TString & get_dest_sdi();
// Valorizza codice sdi e pec in base alle configurazioni del monitor
bool get_coddest(TString& coddest, TString& pec);
// Ritorna riferimento sdi
const TString & get_rif_sdi();
// Ritorna tipo documento sdi
const TString& tipo_doc_sdi() const;
// Funzioni per settare i parametri
void set_decimals(const dec_parm & parm) { _parm = parm ; }
// void set_condv(TCli_for * cli); // Cambia le condizioni di vendita
TDocumentoEsteso(const TDocumento & d) : TDocumento(d) {};
TDocumentoEsteso(char provv, int anno, const char* codnum, long numdoc) : TDocumento(provv, anno, codnum, numdoc) {};
TDocumentoEsteso(const TDoc_key& key) : TDocumento(key) {};
TDocumentoEsteso (const TRectype & rec, dec_parm & parm) ;
TDocumentoEsteso (const TRectype & rec) ;
TDocumentoEsteso () ;

View File

@ -1051,7 +1051,7 @@ void TDocumento_mask::cli2mask(bool force_load)
const bool onload = !is_running();
// Setta i campi che appartengono al file LF_CLIFO
const bool occas = c.occasionale();
const bool occas = c.is_occasionale();
show(F_OCCASEDIT, occas);
if (!occas)
@ -2322,9 +2322,10 @@ bool TDocumento_mask::clifo_handler( TMask_field& f, KEY key )
}
}
if (cli_for.occasionale())
if (cli_for.is_occasionale())
{
const TOccasionale& occas = d.occas();
if(m.id2pos(F_OCCASEDIT) > 0 && f.to_check(key) && occas.codice().blank())
m.send_key( K_SPACE, F_OCCASEDIT ); // Lancia maschera occasionali
}

View File

@ -460,7 +460,7 @@ bool TDocument_report::msg_cliente(TVariant_stack& stack)
const TCli_for& cli_for = doc.clifor();
const TOccasionale& cli_occ = doc.occas();
const bool occasionale = cli_for.occasionale();
const bool occasionale = cli_for.is_occasionale();
TString in = stack.pop().as_string(); // prende la macro o il fieldref
TString valore;