Patch level : 2.2
Files correlati : ve0 ve6 Ricompilazione Demo : [ ] Commento : Corretta contabilizzazione analitica dei documenti git-svn-id: svn://10.65.10.50/trunk@13222 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3b0f6d38b7
commit
9191d73f21
56
ve/velib.h
56
ve/velib.h
@ -16,11 +16,7 @@ class TViswin;
|
|||||||
#ifndef __CLIFOR_H
|
#ifndef __CLIFOR_H
|
||||||
#include "../ve/clifor.h"
|
#include "../ve/clifor.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __CURRENCY_H
|
|
||||||
#include <currency.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __CGLIB01_H
|
#ifndef __CGLIB01_H
|
||||||
#include "../cg/cglib01.h"
|
#include "../cg/cglib01.h"
|
||||||
#endif
|
#endif
|
||||||
@ -89,23 +85,23 @@ class TDocumento_variable_field : public TVariable_field
|
|||||||
bool _dirty;
|
bool _dirty;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TObject* dup() const { return new TDocumento_variable_field(*this); }
|
virtual TObject* dup() const { return new TDocumento_variable_field(*this); }
|
||||||
// @cmember segnala che il campo deve essere ricalcolato
|
// @cmember segnala che il campo deve essere ricalcolato
|
||||||
virtual bool dirty() const { return _dirty;}
|
virtual bool dirty() const { return _dirty; }
|
||||||
// @cmember assegna lo stato di campo da ricalcolare
|
// @cmember assegna lo stato di campo da ricalcolare
|
||||||
virtual void set_dirty(bool on = TRUE) { _dirty = on;}
|
virtual void set_dirty(bool on = true) { _dirty = on; }
|
||||||
|
|
||||||
// @ cmember Costruttore con una espressione di calcolo
|
// @ cmember Costruttore con una espressione di calcolo
|
||||||
TDocumento_variable_field(const char * name, const char * expr = "", TTypeexp type = _strexpr)
|
TDocumento_variable_field(const char * name, const char * expr = "", TTypeexp type = _strexpr)
|
||||||
: TVariable_field(name, expr, type), _dirty(TRUE) {}
|
: TVariable_field(name, expr, type), _dirty(true) {}
|
||||||
// @ cmember Costruttore con una funzione
|
// @ cmember Costruttore con una funzione
|
||||||
TDocumento_variable_field(const char * name, VIRTUAL_GET_FUNCTION getfunc)
|
TDocumento_variable_field(const char * name, VIRTUAL_GET_FUNCTION getfunc)
|
||||||
: TVariable_field(name, getfunc), _dirty(TRUE) {}
|
: TVariable_field(name, getfunc), _dirty(true) {}
|
||||||
// @ cmember Costruttore con una espressione di calcolo
|
// @ cmember Costruttore con una espressione di calcolo
|
||||||
TDocumento_variable_field(const char * name, const TExpression & expr, TTypeexp type = _strexpr)
|
TDocumento_variable_field(const char * name, const TExpression & expr, TTypeexp type = _strexpr)
|
||||||
: TVariable_field(name, expr, type), _dirty(TRUE) {}
|
: TVariable_field(name, expr, type), _dirty(true) {}
|
||||||
// @ cmember Costruttore con un variable_field
|
// @ cmember Costruttore con un variable_field
|
||||||
TDocumento_variable_field(const TVariable_field & f) : TVariable_field(f), _dirty(TRUE) {}
|
TDocumento_variable_field(const TVariable_field & f) : TVariable_field(f), _dirty(true) {}
|
||||||
// @ cmember Distruttore
|
// @ cmember Distruttore
|
||||||
virtual ~TDocumento_variable_field() {}
|
virtual ~TDocumento_variable_field() {}
|
||||||
};
|
};
|
||||||
@ -179,10 +175,10 @@ class TFormula_documento : public TRectype // velib01
|
|||||||
TExpr_documento * _expr;
|
TExpr_documento * _expr;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int read(const char* codice, const char* expr = NULL, bool numexpr = TRUE);
|
int read(const char* codice, const char* expr = NULL, bool numexpr = true);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TObject* dup() const { return new TFormula_documento(_tab == "%FRD" ? _documento : _riga, codice(), NULL, TRUE); }
|
TObject* dup() const { return new TFormula_documento(_tab == "%FRD" ? _documento : _riga, codice(), NULL, true); }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const TString& codice() const { return get("CODTAB");}
|
const TString& codice() const { return get("CODTAB");}
|
||||||
@ -193,7 +189,7 @@ public:
|
|||||||
const TString& expr_string() const { return get("S1"); }
|
const TString& expr_string() const { return get("S1"); }
|
||||||
TTypeexp expr_type() const { return get_bool("B0") ? _numexpr : _strexpr;}
|
TTypeexp expr_type() const { return get_bool("B0") ? _numexpr : _strexpr;}
|
||||||
|
|
||||||
TFormula_documento(TTipo_formula tipo = _documento, const char* codice = NULL, const char* expr = NULL, bool numexpr = TRUE);
|
TFormula_documento(TTipo_formula tipo = _documento, const char* codice = NULL, const char* expr = NULL, bool numexpr = true);
|
||||||
TFormula_documento(const TRectype& rec);
|
TFormula_documento(const TRectype& rec);
|
||||||
virtual ~TFormula_documento();
|
virtual ~TFormula_documento();
|
||||||
};
|
};
|
||||||
@ -299,7 +295,7 @@ public:
|
|||||||
const TString & main_print_profile() const { return get("S5").left(8); }
|
const TString & main_print_profile() const { return get("S5").left(8); }
|
||||||
const TString & additional_print_profile() const { return get("S5").mid(8); }
|
const TString & additional_print_profile() const { return get("S5").mid(8); }
|
||||||
|
|
||||||
TFormula_documento * first_formula() { return succ_formula(TRUE); }
|
TFormula_documento * first_formula() { return succ_formula(true); }
|
||||||
TFormula_documento * succ_formula(bool restart = FALSE);
|
TFormula_documento * succ_formula(bool restart = FALSE);
|
||||||
|
|
||||||
const int ncopie() const { return get_int("I0"); }
|
const int ncopie() const { return get_int("I0"); }
|
||||||
@ -407,7 +403,7 @@ public:
|
|||||||
int detraibilita() const { return get_int("I0"); }
|
int detraibilita() const { return get_int("I0"); }
|
||||||
real perc_indetraibilita() const { return get_real("R0"); }
|
real perc_indetraibilita() const { return get_real("R0"); }
|
||||||
|
|
||||||
TFormula_documento* first_formula() { return succ_formula(TRUE); }
|
TFormula_documento* first_formula() { return succ_formula(true); }
|
||||||
TFormula_documento* succ_formula(bool restart = FALSE);
|
TFormula_documento* succ_formula(bool restart = FALSE);
|
||||||
|
|
||||||
int read(const char* tiporig);
|
int read(const char* tiporig);
|
||||||
@ -441,12 +437,12 @@ protected:
|
|||||||
static void test_firm();
|
static void test_firm();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void dirty_fields(bool dirty_document = TRUE);
|
void dirty_fields(bool dirty_document = true);
|
||||||
bool doc_dependent() const;
|
bool doc_dependent() const;
|
||||||
int numero() const { return get_int(RDOC_NRIGA); }
|
int numero() const { return get_int(RDOC_NRIGA); }
|
||||||
void set_numero(int numero) { put(RDOC_NRIGA, numero);}
|
void set_numero(int numero) { put(RDOC_NRIGA, numero);}
|
||||||
bool is_generata() const { return get_bool(RDOC_GENERATA);}
|
bool is_generata() const { return get_bool(RDOC_GENERATA);}
|
||||||
void generata(bool on = TRUE) { put(RDOC_GENERATA, on);}
|
void generata(bool on = true) { put(RDOC_GENERATA, on);}
|
||||||
bool is_merce() const { return tipo().tipo() == RIGA_MERCE;}
|
bool is_merce() const { return tipo().tipo() == RIGA_MERCE;}
|
||||||
bool is_spese() const { return tipo().tipo() == RIGA_SPESEDOC;}
|
bool is_spese() const { return tipo().tipo() == RIGA_SPESEDOC;}
|
||||||
bool is_prestazione() const { return tipo().tipo() == RIGA_PRESTAZIONI;}
|
bool is_prestazione() const { return tipo().tipo() == RIGA_PRESTAZIONI;}
|
||||||
@ -460,7 +456,7 @@ public:
|
|||||||
bool is_checked() const { return get_bool(RDOC_CHECKED);}
|
bool is_checked() const { return get_bool(RDOC_CHECKED);}
|
||||||
bool is_evadibile() const { return is_merce() || is_omaggio() || is_spese() || is_prestazione(); }
|
bool is_evadibile() const { return is_merce() || is_omaggio() || is_spese() || is_prestazione(); }
|
||||||
bool is_evasa() const; // Ritorna vero se la riga è evasa
|
bool is_evasa() const; // Ritorna vero se la riga è evasa
|
||||||
void checked(bool on = TRUE) { put(RDOC_CHECKED, (bool)on); }
|
void checked(bool on = true) { put(RDOC_CHECKED, (bool)on); }
|
||||||
void unchecked() { checked(FALSE); }
|
void unchecked() { checked(FALSE); }
|
||||||
bool linked() const { return get(RDOC_DACODNUM).not_empty();}
|
bool linked() const { return get(RDOC_DACODNUM).not_empty();}
|
||||||
// @cmember Assegna il documento corrente
|
// @cmember Assegna il documento corrente
|
||||||
@ -501,12 +497,12 @@ public:
|
|||||||
|
|
||||||
real prezzo(bool scontato, bool lordo, int ndec = AUTO_DECIMALS) const ;
|
real prezzo(bool scontato, bool lordo, int ndec = AUTO_DECIMALS) const ;
|
||||||
real importo(bool scontato , bool lordo, int ndec = AUTO_DECIMALS) const ;
|
real importo(bool scontato , bool lordo, int ndec = AUTO_DECIMALS) const ;
|
||||||
real sconto() const { return importo(FALSE,FALSE) - importo(TRUE,FALSE); }
|
real sconto() const { return importo(FALSE,FALSE) - importo(true,FALSE); }
|
||||||
real iva(int ndec) const;
|
real iva(int ndec) const;
|
||||||
real imponibile(bool lordo = FALSE) const;
|
real imponibile(bool lordo = FALSE) const;
|
||||||
real imponibile_omaggio(int iva_calc_mode = 1) const;
|
real imponibile_omaggio(int iva_calc_mode = 1) const;
|
||||||
real iva_omaggio(int ndec, int iva_calc_mode = 1) const;
|
real iva_omaggio(int ndec, int iva_calc_mode = 1) const;
|
||||||
real imposta(bool round = TRUE) const;
|
real imposta(bool round = true) const;
|
||||||
real provvigione(int ndec = AUTO_DECIMALS) const;
|
real provvigione(int ndec = AUTO_DECIMALS) const;
|
||||||
real ritenuta(const char tipor = '\0', bool lordo = false, int ndec = AUTO_DECIMALS) const;
|
real ritenuta(const char tipor = '\0', bool lordo = false, int ndec = AUTO_DECIMALS) const;
|
||||||
|
|
||||||
@ -548,8 +544,8 @@ protected:
|
|||||||
virtual TRiepilogo_iva & copy(const TRiepilogo_iva & a);
|
virtual TRiepilogo_iva & copy(const TRiepilogo_iva & a);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
real imponibile(bool spese = TRUE) const { return _imp + (spese ? _imp_spese : ZERO);} // Imponibile
|
real imponibile(bool spese = true) const { return _imp + (spese ? _imp_spese : ZERO);} // Imponibile
|
||||||
real imposta(bool spese = TRUE) const { return _iva + (spese ? _iva_spese : ZERO);} // Iva
|
real imposta(bool spese = true) const { return _iva + (spese ? _iva_spese : ZERO);} // Iva
|
||||||
real & imp() { return _imp;};
|
real & imp() { return _imp;};
|
||||||
real & imp_spese() { return _imp_spese;};
|
real & imp_spese() { return _imp_spese;};
|
||||||
real & imp_spese_row() { return _imp_spese_row;};
|
real & imp_spese_row() { return _imp_spese_row;};
|
||||||
@ -660,7 +656,7 @@ public:
|
|||||||
TRiga_documento& new_row(const char *tipo = NULL);
|
TRiga_documento& new_row(const char *tipo = NULL);
|
||||||
virtual int read(TBaseisamfile& f, word op = _isequal, word lockop = _nolock);
|
virtual int read(TBaseisamfile& f, word op = _isequal, word lockop = _nolock);
|
||||||
virtual int write(TBaseisamfile& f) const { return write_rewrite(f, FALSE); }
|
virtual int write(TBaseisamfile& f) const { return write_rewrite(f, FALSE); }
|
||||||
virtual int rewrite(TBaseisamfile& f) const { return write_rewrite(f, TRUE); }
|
virtual int rewrite(TBaseisamfile& f) const { return write_rewrite(f, true); }
|
||||||
virtual int remove(TBaseisamfile& f) const;
|
virtual int remove(TBaseisamfile& f) const;
|
||||||
|
|
||||||
int read(char provv, int anno, const char* codnum, long numdoc, word op = _isequal, word lockop = _nolock);
|
int read(char provv, int anno, const char* codnum, long numdoc, word op = _isequal, word lockop = _nolock);
|
||||||
@ -668,13 +664,13 @@ public:
|
|||||||
int read(word op = _isequal, word lockop = _nolock) { TLocalisamfile f(LF_DOC); return read(f, op, lockop);}
|
int read(word op = _isequal, word lockop = _nolock) { TLocalisamfile f(LF_DOC); return read(f, op, lockop);}
|
||||||
|
|
||||||
int write(bool re = FALSE) const { TLocalisamfile f(LF_DOC); return write_rewrite(f, re);}
|
int write(bool re = FALSE) const { TLocalisamfile f(LF_DOC); return write_rewrite(f, re);}
|
||||||
int rewrite() const { return write(TRUE); }
|
int rewrite() const { return write(true); }
|
||||||
int remove() const { TLocalisamfile f(LF_DOC); return remove(f);}
|
int remove() const { TLocalisamfile f(LF_DOC); return remove(f);}
|
||||||
int decimals(bool price = FALSE) const;
|
int decimals(bool price = FALSE) const;
|
||||||
|
|
||||||
void flush_rows();
|
void flush_rows();
|
||||||
|
|
||||||
TProvvigioni_agente& calc_provvigioni(const bool generata = TRUE);
|
TProvvigioni_agente& calc_provvigioni(const bool generata = true);
|
||||||
int write_provvigioni() { return calc_provvigioni().write();}
|
int write_provvigioni() { return calc_provvigioni().write();}
|
||||||
|
|
||||||
char tipo_numerazione() const { return get_char("PROVV"); }
|
char tipo_numerazione() const { return get_char("PROVV"); }
|
||||||
@ -828,7 +824,7 @@ public:
|
|||||||
|
|
||||||
void occ2mask();
|
void occ2mask();
|
||||||
void cli2mask();
|
void cli2mask();
|
||||||
void doc2mask(bool reload_clifo = TRUE);
|
void doc2mask(bool reload_clifo = true);
|
||||||
void mask2doc();
|
void mask2doc();
|
||||||
|
|
||||||
void update_giacenza();
|
void update_giacenza();
|
||||||
@ -875,7 +871,7 @@ class TDocumentoEsteso : public TDocumento
|
|||||||
|
|
||||||
// membri per il calcolo del riepilogo IVA
|
// membri per il calcolo del riepilogo IVA
|
||||||
int _sum_filter; // Filtro corrente della riga TRiepilogo_iva in corso di stampa (-1 se non ha ancora calcolato la tabella)
|
int _sum_filter; // Filtro corrente della riga TRiepilogo_iva in corso di stampa (-1 se non ha ancora calcolato la tabella)
|
||||||
bool _sum_selected; // TRUE se ha selezionato una riga del riepilogo, funge da semaforo per leggere la prossima
|
bool _sum_selected; // true se ha selezionato una riga del riepilogo, funge da semaforo per leggere la prossima
|
||||||
TString_array _order_array; // Array di TToken_string contenenti i codici IVA soddisfacenti ad ogni tipo di filtro
|
TString_array _order_array; // Array di TToken_string contenenti i codici IVA soddisfacenti ad ogni tipo di filtro
|
||||||
TAssoc_array _summary_table; // Array associativo contenete imonibili ed imposte pronte per la stampa;
|
TAssoc_array _summary_table; // Array associativo contenete imonibili ed imposte pronte per la stampa;
|
||||||
TArray _summary_array; // Array dove vengono memorizzate le imposte/imponibili per riga
|
TArray _summary_array; // Array dove vengono memorizzate le imposte/imponibili per riga
|
||||||
@ -890,7 +886,7 @@ public:
|
|||||||
const bool summary_compiled() { return _sum_filter > -1; }
|
const bool summary_compiled() { return _sum_filter > -1; }
|
||||||
void compile_summary(); // Aggiorna la tabella riepilogativa
|
void compile_summary(); // Aggiorna la tabella riepilogativa
|
||||||
void summary_filter(byte selector); // filtra la tabellina secondo il filtro corrente se non e' gia' stato fatto
|
void summary_filter(byte selector); // filtra la tabellina secondo il filtro corrente se non e' gia' stato fatto
|
||||||
void summary_reset(bool force=FALSE); // riposiziona l'array dei codici IVA (_order_array). Se il parametro e' TRUE forza il ricalcolo della tabella
|
void summary_reset(bool force=FALSE); // riposiziona l'array dei codici IVA (_order_array). Se il parametro e' true forza il ricalcolo della tabella
|
||||||
void summary_set_next(); // seleziona il prossimo elemento del filtro
|
void summary_set_next(); // seleziona il prossimo elemento del filtro
|
||||||
const TRiepilogo_iva& sum_current() const { return _sum_current; } // ritorna la riga corrente del filtro corrente
|
const TRiepilogo_iva& sum_current() const { return _sum_current; } // ritorna la riga corrente del filtro corrente
|
||||||
const char * summary_get(const TString& w); // ritorna l'informazione richiesta estratta dall'elemento corrente
|
const char * summary_get(const TString& w); // ritorna l'informazione richiesta estratta dall'elemento corrente
|
||||||
|
@ -765,7 +765,7 @@ const TString & TRiga_documento::codice_costo() const
|
|||||||
|
|
||||||
const TString & TRiga_documento::codice_commessa() const
|
const TString & TRiga_documento::codice_commessa() const
|
||||||
{
|
{
|
||||||
const TString & cod_cms = get(RDOC_CODCMS);
|
const TString& cod_cms = get(RDOC_CODCMS);
|
||||||
return cod_cms.empty() ? doc().get(DOC_CODCMS) : cod_cms;
|
return cod_cms.empty() ? doc().get(DOC_CODCMS) : cod_cms;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -803,7 +803,7 @@ void TRiga_documento::put_str(const char* fieldname, const char* val)
|
|||||||
{
|
{
|
||||||
if (strcmp(fieldname, RDOC_TIPORIGA) == 0)
|
if (strcmp(fieldname, RDOC_TIPORIGA) == 0)
|
||||||
{
|
{
|
||||||
const TString16 v(val);
|
const TString4 v(val);
|
||||||
if (TRectype::get(RDOC_TIPORIGA) != v)
|
if (TRectype::get(RDOC_TIPORIGA) != v)
|
||||||
{
|
{
|
||||||
TAuto_variable_rectype::put_str(fieldname, v);
|
TAuto_variable_rectype::put_str(fieldname, v);
|
||||||
|
@ -799,9 +799,9 @@ void TDocumento::dirty_fields()
|
|||||||
for (int i = loaded_rows(); i > 0; i--)
|
for (int i = loaded_rows(); i > 0; i--)
|
||||||
{
|
{
|
||||||
TRiga_documento & r = (TRiga_documento &) row(i);
|
TRiga_documento & r = (TRiga_documento &) row(i);
|
||||||
r.dirty_fields(FALSE);
|
r.dirty_fields(false);
|
||||||
}
|
}
|
||||||
_dirty_deny = TRUE;
|
_dirty_deny = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,9 +285,9 @@ bool TContabilizzazione_analitica::find_conti(const TRiga_documento& riga, TStri
|
|||||||
|
|
||||||
if (ok)
|
if (ok)
|
||||||
{
|
{
|
||||||
const TString riga_cms = riga.get(RDOC_CODCMS);
|
const TString riga_cms = riga.codice_commessa();
|
||||||
const TString riga_fsc = riga.get(RDOC_FASCMS);
|
const TString riga_fsc = riga.fase_commessa();
|
||||||
const TString riga_cos = riga.get(RDOC_CODCOSTO);
|
const TString riga_cos = riga.codice_costo();
|
||||||
const bool riga_any = riga_cms.not_empty() || riga_fsc.not_empty() || riga_cos.not_empty();
|
const bool riga_any = riga_cms.not_empty() || riga_fsc.not_empty() || riga_cos.not_empty();
|
||||||
|
|
||||||
if (contanal.blank()) // Non ho trovato il conto in anagrafica ...
|
if (contanal.blank()) // Non ho trovato il conto in anagrafica ...
|
||||||
@ -400,6 +400,13 @@ bool TContabilizzazione_analitica::elabora(const TDocumento& doc, long numreg_cg
|
|||||||
|
|
||||||
if (can_write)
|
if (can_write)
|
||||||
{
|
{
|
||||||
|
bool dare = doc.get_char(DOC_TIPOCF) == 'F';
|
||||||
|
if (doc.is_nota_credito())
|
||||||
|
dare= !dare;
|
||||||
|
const char sezione = dare ? 'D' : 'A';
|
||||||
|
|
||||||
|
TImporto totdoc;
|
||||||
|
|
||||||
TGeneric_distrib esso(valore, decimals);
|
TGeneric_distrib esso(valore, decimals);
|
||||||
init_distrib(conti, esso);
|
init_distrib(conti, esso);
|
||||||
FOR_EACH_ARRAY_ROW(conti, i, row)
|
FOR_EACH_ARRAY_ROW(conti, i, row)
|
||||||
@ -419,12 +426,21 @@ bool TContabilizzazione_analitica::elabora(const TDocumento& doc, long numreg_cg
|
|||||||
rmov.put(RMOVANA_CODCMS, row->get());
|
rmov.put(RMOVANA_CODCMS, row->get());
|
||||||
rmov.put(RMOVANA_CODFASE, row->get());
|
rmov.put(RMOVANA_CODFASE, row->get());
|
||||||
rmov.put(RMOVANA_CODCCOSTO,row->get());
|
rmov.put(RMOVANA_CODCCOSTO,row->get());
|
||||||
rmov.put(RMOVANA_IMPORTO, esso.get());
|
|
||||||
rmov.put(RMOVANA_SEZIONE, 'D');
|
TImporto imp(sezione, real(esso.get()));
|
||||||
|
imp.normalize();
|
||||||
|
rmov.put(RMOVANA_SEZIONE, imp.sezione());
|
||||||
|
rmov.put(RMOVANA_IMPORTO, imp.valore());
|
||||||
|
|
||||||
|
totdoc += imp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mov != NULL)
|
if (mov != NULL)
|
||||||
{
|
{
|
||||||
|
totdoc.normalize();
|
||||||
|
mov->put(MOVANA_SEZIONE, totdoc.sezione());
|
||||||
|
mov->put(MOVANA_TOTDOC, totdoc.valore());
|
||||||
|
|
||||||
TLocalisamfile movana(LF_MOVANA);
|
TLocalisamfile movana(LF_MOVANA);
|
||||||
mov->write(movana);
|
mov->write(movana);
|
||||||
delete mov;
|
delete mov;
|
||||||
|
@ -213,10 +213,10 @@ bool condpag_hndl( TMask_field& field, KEY key )
|
|||||||
doc.put(DOC_TIPOCF, m.get(F_TIPOCF));
|
doc.put(DOC_TIPOCF, m.get(F_TIPOCF));
|
||||||
doc.put(DOC_CODCF, m.get(F_CODCF));
|
doc.put(DOC_CODCF, m.get(F_CODCF));
|
||||||
TPagamento& pag = doc.pagamento();
|
TPagamento& pag = doc.pagamento();
|
||||||
pag.set_total(real(100), real(10), real(10));
|
pag.set_total(CENTO, real(10), real(10));
|
||||||
pag.set_rate_auto();
|
pag.set_rate_auto();
|
||||||
|
|
||||||
int numrate = pag.n_rate( );
|
const int numrate = pag.n_rate( );
|
||||||
for(int i = 0; i < MAX_VIS_RATE; i++)
|
for(int i = 0; i < MAX_VIS_RATE; i++)
|
||||||
{
|
{
|
||||||
if (i < numrate)
|
if (i < numrate)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user