Patch level : 10.0
Files correlati : cg2.exe Ricompilazione Demo : [ ] Commento : Abilitate ricerche per codice alternativo git-svn-id: svn://10.65.10.50/branches/R_10_00@22584 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									9ded4cbee0
								
							
						
					
					
						commit
						1159b1d092
					
				@ -2967,11 +2967,6 @@ void TPrimanota_application::gioca_cambi(int force)
 | 
			
		||||
  if ( (force == 0x4 || cambio.is_zero()) && !(totale.is_zero() || totval.is_zero()) )
 | 
			
		||||
  {
 | 
			
		||||
    real new_cambio = totale / totval;
 | 
			
		||||
    exchange_type dummy_contro_euro;  
 | 
			
		||||
    const real& fc = TCurrency::get_firm_change(dummy_contro_euro);
 | 
			
		||||
    if (fc > ZERO)
 | 
			
		||||
      new_cambio *= fc;
 | 
			
		||||
    
 | 
			
		||||
    new_cambio.round(6);
 | 
			
		||||
    if (new_cambio != cambio)
 | 
			
		||||
      m.set(SK_CAMBIO, new_cambio, true);
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,7 @@
 | 
			
		||||
#include "cg2102.h"           // Applicazione di prima nota
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "cg2105.h"
 | 
			
		||||
#include "cg2107.h"
 | 
			
		||||
 | 
			
		||||
#include <colors.h>           // Colori righe
 | 
			
		||||
@ -99,49 +100,6 @@ public:
 | 
			
		||||
// Maschera pagamenti
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
class TPay_mask : public TMask
 | 
			
		||||
{ 
 | 
			
		||||
  TDate _datadoc, _datarat;
 | 
			
		||||
  real _da_pagare, _pagabile;
 | 
			
		||||
  const TGame_mask* _parent;
 | 
			
		||||
  
 | 
			
		||||
  tipo_movimento _tipomov;
 | 
			
		||||
  
 | 
			
		||||
  bool _assigned;
 | 
			
		||||
  bool _can_solder;
 | 
			
		||||
  bool _swap_ritsoc;
 | 
			
		||||
  
 | 
			
		||||
protected:
 | 
			
		||||
  static bool importo_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool importolire_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool saldo_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool datapag_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool conto_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool descr_handler(TMask_field& f, KEY k);
 | 
			
		||||
  void gioca_cambi(int force = 0x0);
 | 
			
		||||
  
 | 
			
		||||
#ifdef __EXTRA__  
 | 
			
		||||
  static bool datareg_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool datadoc_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool numdoc_handler(TMask_field& f, KEY k);
 | 
			
		||||
  static bool sezione_handler(TMask_field& f, KEY k);
 | 
			
		||||
#endif  
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  void set_pag(const TRectype& oldpag, const TRiga_scadenze& scad, const TImporto& importo);
 | 
			
		||||
  void get_pag(TRectype& oldpag, TRectype& somma) const;
 | 
			
		||||
  
 | 
			
		||||
  bool assigned() const { return _assigned; }
 | 
			
		||||
  bool unassigned() const { return !_assigned; }
 | 
			
		||||
  tipo_movimento tipo() const { return _tipomov; }
 | 
			
		||||
  
 | 
			
		||||
  void attiva_valuta(bool on);
 | 
			
		||||
 | 
			
		||||
  void init(const TGame_mask* parent, int mode);
 | 
			
		||||
  TPay_mask(const TGame_mask* parent, int mode);
 | 
			
		||||
  virtual ~TPay_mask();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef __EXTRA__         
 | 
			
		||||
const char* const PAYMASK = "sc0100b";
 | 
			
		||||
#else
 | 
			
		||||
@ -150,7 +108,10 @@ const char* const PAYMASK = "cg2100s";
 | 
			
		||||
 | 
			
		||||
void TPay_mask::init(const TGame_mask* parent, int mod)
 | 
			
		||||
{
 | 
			
		||||
#ifndef __EXTRA__
 | 
			
		||||
  _parent = parent;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
  set_mode(mod);
 | 
			
		||||
  enable(DLG_DELREC, edit_mode());
 | 
			
		||||
  
 | 
			
		||||
@ -576,30 +537,18 @@ bool TPay_mask::conto_handler(TMask_field& f, KEY k)
 | 
			
		||||
// Maschera gestione nuovo pagamento / fattura
 | 
			
		||||
///////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
class TNew_mask : public TMask
 | 
			
		||||
bool TNew_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
			
		||||
{
 | 
			
		||||
  bool _allow_fatt;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  static bool tipomov_handler(TMask_field& f, KEY k);
 | 
			
		||||
              
 | 
			
		||||
public:
 | 
			
		||||
  void init(char tipocf, bool fatt, bool edit);
 | 
			
		||||
 | 
			
		||||
  TNew_mask(char tipocf, bool fatt, bool edit);
 | 
			
		||||
  virtual ~TNew_mask() {}
 | 
			
		||||
};                                                         
 | 
			
		||||
 | 
			
		||||
bool TNew_mask::tipomov_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_ENTER)
 | 
			
		||||
  switch (f.dlg())
 | 
			
		||||
  {
 | 
			
		||||
    TNew_mask& m = (TNew_mask&)f.mask();
 | 
			
		||||
    if (!m._allow_fatt && f.get() == "1")
 | 
			
		||||
      return f.error_box(TR("Non e' possibile utilizzare una fattura come pagamento"));
 | 
			
		||||
  case P_NUOVO:
 | 
			
		||||
    if (e == fe_close && !_allow_fatt && f.get() == "1")
 | 
			
		||||
      return error_box(TR("Non e' possibile utilizzare una fattura come pagamento"));
 | 
			
		||||
    break;
 | 
			
		||||
  default:
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  return TRUE;
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TNew_mask::init(char tipocf, bool fatt, bool edit)
 | 
			
		||||
@ -608,7 +557,6 @@ void TNew_mask::init(char tipocf, bool fatt, bool edit)
 | 
			
		||||
 | 
			
		||||
  TMask_field& tipomov = field(P_NUOVO);
 | 
			
		||||
#ifdef __EXTRA__
 | 
			
		||||
  tipomov.set_handler(tipomov_handler);
 | 
			
		||||
  tipomov.enable();
 | 
			
		||||
  tipomov.set(_allow_fatt ? "1" : "3");
 | 
			
		||||
  if (!_allow_fatt)
 | 
			
		||||
@ -633,7 +581,7 @@ void TNew_mask::init(char tipocf, bool fatt, bool edit)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TNew_mask::TNew_mask(char tipocf, bool fatt, bool edit)
 | 
			
		||||
         : TMask("cg2100n")
 | 
			
		||||
         : TAutomask("cg2100n")
 | 
			
		||||
{   
 | 
			
		||||
  init(tipocf, fatt, edit);
 | 
			
		||||
}         
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,8 @@
 | 
			
		||||
#define FLD_NUM_EC  117
 | 
			
		||||
#define FLD_LAST_EC 118
 | 
			
		||||
#define FLD_DATSAL  119
 | 
			
		||||
#define CHK_EASYSAL 120
 | 
			
		||||
#define CHK_DIFFCAM 121
 | 
			
		||||
 | 
			
		||||
#define FLD_CSBICHS 217
 | 
			
		||||
#define FLD_CSBICHG 218
 | 
			
		||||
@ -42,6 +44,7 @@
 | 
			
		||||
#define FLD_CSAUCPS 238
 | 
			
		||||
#define FLD_CSAUCPG 239
 | 
			
		||||
#define FLD_CSAUCPC 240
 | 
			
		||||
#define FLD_DCSAUCP 241
 | 
			
		||||
 | 
			
		||||
#define LST_RRFRAM  338
 | 
			
		||||
#define CHK_RRMECO  339
 | 
			
		||||
@ -66,7 +69,6 @@
 | 
			
		||||
#define CHK_DTCFPG  358
 | 
			
		||||
#define CHK_RIFPRO  359
 | 
			
		||||
#define CHK_LIQDIF  360
 | 
			
		||||
#define FLD_DCSAUCP 361
 | 
			
		||||
 | 
			
		||||
#define FLD_RATEI_G 371
 | 
			
		||||
#define FLD_RATEI_C 372
 | 
			
		||||
 | 
			
		||||
@ -88,7 +88,7 @@ BEGIN
 | 
			
		||||
  GROUP GROUP_CONTABILITA
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 76 7
 | 
			
		||||
GROUPBOX DLG_NULL 76 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 12 "@bParametri saldaconto"
 | 
			
		||||
END
 | 
			
		||||
@ -98,10 +98,10 @@ BEGIN
 | 
			
		||||
  PROMPT 4 13 "Gestione saldaconto "
 | 
			
		||||
  MESSAGE TRUE ENABLE,CHK_GESVAL|ENABLE,CHK_NRCLIDX|ENABLE,CHK_NRFORDX
 | 
			
		||||
  MESSAGE TRUE ENABLE,CHK_DTCFPG|ENABLE,CHK_RIFPRO|ENABLE,FLD_CODLIN
 | 
			
		||||
  MESSAGE TRUE ENABLE,FLD_NUM_EC|ENABLE,FLD_LAST_EC
 | 
			
		||||
  MESSAGE TRUE ENABLE,FLD_NUM_EC|ENABLE,FLD_LAST_EC|ENABLE,CHK_EASYSAL
 | 
			
		||||
  MESSAGE FALSE DISABLE,CHK_GESVAL|DISABLE,CHK_NRCLIDX|DISABLE,CHK_NRFORDX
 | 
			
		||||
  MESSAGE FALSE DISABLE,CHK_DTCFPG|DISABLE,CHK_RIFPRO|DISABLE,FLD_CODLIN
 | 
			
		||||
  MESSAGE FALSE DISABLE,FLD_NUM_EC|DISABLE,FLD_LAST_EC
 | 
			
		||||
  MESSAGE FALSE DISABLE,FLD_NUM_EC|DISABLE,FLD_LAST_EC|CLEAR,CHK_EASYSAL
 | 
			
		||||
  FIELD GesSal
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
END
 | 
			
		||||
@ -121,9 +121,24 @@ BEGIN
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN CHK_EASYSAL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 35 14 "Saldaconto semplificato "
 | 
			
		||||
  FIELD EasySal                                         
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN CHK_DIFFCAM
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 15 "Rilevazione differenze cambi su pagamenti parziali"
 | 
			
		||||
  HELP "Indicare se si desidera calcolare le eventuali differenze cambi anche sui pagamenti non a saldo"
 | 
			
		||||
  FIELD DiffCamAlways                                         
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN CHK_NRCLIDX
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 15 "N. Rif. allineato a destra per clienti"
 | 
			
		||||
  PROMPT 4 16 "N. Rif. allineato a destra per clienti"
 | 
			
		||||
  HELP "Indicare se allineare a destra il num. di rif. delle partite nel saldaconto"
 | 
			
		||||
  FIELD NrCliDx
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
@ -131,7 +146,7 @@ END
 | 
			
		||||
 | 
			
		||||
BOOLEAN CHK_NRFORDX
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 48 15 "e per fornitori"
 | 
			
		||||
  PROMPT 48 16 "e per fornitori"
 | 
			
		||||
  HELP "Indicare se allineare a destra il num. di rif. delle partite nel saldaconto"
 | 
			
		||||
  FIELD NrForDx
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
@ -139,7 +154,7 @@ END
 | 
			
		||||
 | 
			
		||||
BOOLEAN CHK_RIFPRO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 16 "Riferimento partita con numero protocollo"
 | 
			
		||||
  PROMPT 4 17 "Riferimento partita con numero protocollo"
 | 
			
		||||
  HELP "Indicare se si desidera il numero protocollo IVA anziche' il numero documento come riferimento partita"
 | 
			
		||||
  FIELD RifPro
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
@ -147,7 +162,7 @@ END
 | 
			
		||||
 | 
			
		||||
STRING FLD_CODLIN 1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 50 16 "Codice lingua "
 | 
			
		||||
  PROMPT 50 17 "Codice lingua "
 | 
			
		||||
  HELP "Lingua di riferimento per rendiconti contabili"
 | 
			
		||||
  FIELD CodLin
 | 
			
		||||
  USE %LNG
 | 
			
		||||
@ -161,7 +176,7 @@ END
 | 
			
		||||
 | 
			
		||||
LIST FLD_NUM_EC 1 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 17 "Numerazione estratti conto "
 | 
			
		||||
  PROMPT 4 18 "Numerazione estratti conto "
 | 
			
		||||
  ITEM " |Nessuna" MESSAGE HIDE,FLD_LAST_EC
 | 
			
		||||
  ITEM "G|Globale" MESSAGE SHOW,FLD_LAST_EC
 | 
			
		||||
  ITEM "A|Anagrafica" MESSAGE HIDE,FLD_LAST_EC
 | 
			
		||||
@ -171,14 +186,14 @@ END
 | 
			
		||||
 | 
			
		||||
NUMBER FLD_LAST_EC 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 50 17 "Ultimo E.C.   "
 | 
			
		||||
  PROMPT 50 18 "Ultimo E.C.   "
 | 
			
		||||
  FIELD LastEC
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN CHK_DTCFPG
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 18 "Dettaglio riga C/F sui pagamenti"
 | 
			
		||||
  PROMPT 4 19 "Dettaglio riga C/F sui pagamenti"
 | 
			
		||||
  HELP "Indicare se si desidera il dettaglio riga clienti/fornitori in gestione pagamenti"
 | 
			
		||||
  FIELD DtCfPg
 | 
			
		||||
  GROUP GROUP_SALDACONTO
 | 
			
		||||
 | 
			
		||||
@ -227,7 +227,7 @@ public:
 | 
			
		||||
                  { set_total(ib.get_num(), im.get_num(), sp.get_num());}
 | 
			
		||||
  void   set_total_valuta(const TCurrency& ib,  const TCurrency& im,  const TCurrency& sp,
 | 
			
		||||
                          const TCurrency& ibl, const TCurrency& iml, const TCurrency& spl) 
 | 
			
		||||
                  { set_total_valuta(ib.get_num(), im.get_num(), sp.get_num(), ib.get_base_change(),
 | 
			
		||||
                  { set_total_valuta(ib.get_num(), im.get_num(), sp.get_num(), ib.get_change(),
 | 
			
		||||
                                     ibl.get_num(), iml.get_num(), spl.get_num(), ib.get_value());}
 | 
			
		||||
  
 | 
			
		||||
  // istanzia uno sheet field come diobue comanda                                   
 | 
			
		||||
 | 
			
		||||
@ -486,7 +486,7 @@ void TSolder_tree::set_var_real(TVariant& var, const real& imp, bool in_value) c
 | 
			
		||||
      if (in_value)
 | 
			
		||||
        cur.change_to_firm_val();
 | 
			
		||||
      else
 | 
			
		||||
        cur.change_value(_codval, _cambio, _exchange_contro);
 | 
			
		||||
        cur.change_value(_codval, _cambio);
 | 
			
		||||
    }
 | 
			
		||||
    var = cur.string(true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										142
									
								
								cg/cgsaldac.cpp
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								cg/cgsaldac.cpp
									
									
									
									
									
								
							@ -4,6 +4,7 @@
 | 
			
		||||
#include <relation.h>
 | 
			
		||||
 | 
			
		||||
#include "cgsaldac.h"
 | 
			
		||||
#include "cg2103.h"
 | 
			
		||||
 | 
			
		||||
#include <mov.h>
 | 
			
		||||
#include <rmov.h>
 | 
			
		||||
@ -123,7 +124,7 @@ TValuta::TValuta() : _cod(""), _dat(TODAY), _cam(ZERO)
 | 
			
		||||
 | 
			
		||||
void TValuta::adjust()
 | 
			
		||||
{ 
 | 
			
		||||
  const TCurrency this_cur(ZERO, _cod, _cam, _exchange_contro);
 | 
			
		||||
  const TCurrency this_cur(ZERO, _cod, _cam);
 | 
			
		||||
  if (this_cur.is_firm_value())
 | 
			
		||||
  {
 | 
			
		||||
    _cod.cut(0);
 | 
			
		||||
@ -158,16 +159,12 @@ void TValuta::put(TRectype& rec) const
 | 
			
		||||
    rec.put("CODVAL",  _cod);
 | 
			
		||||
    rec.put("DATACAM", _dat);
 | 
			
		||||
    rec.put("CAMBIO",  _cam);
 | 
			
		||||
    if (rec.exist("CONTROEURO"))
 | 
			
		||||
      rec.put("CONTROEURO", "X");
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    rec.zero("CODVAL");
 | 
			
		||||
    rec.zero("DATACAM");
 | 
			
		||||
    rec.zero("CAMBIO");
 | 
			
		||||
    if (rec.exist("CONTROEURO"))
 | 
			
		||||
      rec.zero("CONTROEURO");
 | 
			
		||||
  }  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -205,20 +202,20 @@ void TValuta::set(const TValuta& v)
 | 
			
		||||
real TValuta::eur2val(const real& lit) const
 | 
			
		||||
{
 | 
			
		||||
  TCurrency cur(lit);
 | 
			
		||||
  cur.change_value(_cod, _cam, _exchange_contro);
 | 
			
		||||
  cur.change_value(_cod, _cam);
 | 
			
		||||
  return cur.get_num();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
real TValuta::val2eur(const real& val) const
 | 
			
		||||
{   
 | 
			
		||||
  TCurrency cur(val, _cod, _cam, _exchange_contro);
 | 
			
		||||
  TCurrency cur(val, _cod, _cam);
 | 
			
		||||
  cur.change_to_firm_val();
 | 
			
		||||
  return cur.get_num();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TValuta::val2eur(real& val) const
 | 
			
		||||
{   
 | 
			
		||||
  TCurrency cur(val, _cod, _cam, _exchange_contro);
 | 
			
		||||
  TCurrency cur(val, _cod, _cam);
 | 
			
		||||
  cur.change_to_firm_val();
 | 
			
		||||
  val = cur.get_num();
 | 
			
		||||
}
 | 
			
		||||
@ -226,7 +223,7 @@ void TValuta::val2eur(real& val) const
 | 
			
		||||
void TValuta::eur2val(real& lit) const
 | 
			
		||||
{   
 | 
			
		||||
  TCurrency cur(lit);
 | 
			
		||||
  cur.change_value(_cod, _cam, _exchange_contro);
 | 
			
		||||
  cur.change_value(_cod, _cam);
 | 
			
		||||
  lit = cur.get_num();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -285,7 +282,7 @@ const TString& TRiga_scadenze::codice_valuta() const
 | 
			
		||||
// Controlla se la rata e' stata completamente pagata
 | 
			
		||||
bool TRiga_scadenze::chiusa(bool update) const
 | 
			
		||||
{                                      
 | 
			
		||||
  bool chiusa;
 | 
			
		||||
  bool chiusa = false;
 | 
			
		||||
  if (update)
 | 
			
		||||
  {          
 | 
			
		||||
    TImporto imp(importo(true));
 | 
			
		||||
@ -469,16 +466,31 @@ TImporto TRiga_scadenze::calcola_differenza_cambio(int p, bool update)
 | 
			
		||||
  TImporto diffcam;      
 | 
			
		||||
 | 
			
		||||
  TRectype& pag = row(p);
 | 
			
		||||
  if (pag.get_char(PAGSCA_ACCSAL) == 'S' && in_valuta())
 | 
			
		||||
  const bool a_saldo = pag.get_char(PAGSCA_ACCSAL) == 'S';
 | 
			
		||||
  if (in_valuta() && (a_saldo || partita().rileva_sempre_differenze_cambi()))
 | 
			
		||||
  {
 | 
			
		||||
    const char sez = partita().riga(p).sezione();   
 | 
			
		||||
    
 | 
			
		||||
    if (update)
 | 
			
		||||
    {
 | 
			
		||||
      diffcam = importo(false);
 | 
			
		||||
      pag.zero(PAGSCA_DIFFCAM);
 | 
			
		||||
      const int dec = TCurrency::get_firm_dec();
 | 
			
		||||
      // Normalmente le differenze cambio si rilevano solo a saldo ... 
 | 
			
		||||
      if (a_saldo)
 | 
			
		||||
      {
 | 
			
		||||
        diffcam = importo(false);         // Importo della scadenza in in euro
 | 
			
		||||
        pag.zero(PAGSCA_DIFFCAM);         // Azzera temporaneamente la DIFFCAM del pagamento corrente
 | 
			
		||||
        diffcam += importo_pagato(false); // Conta anche gli abbuoni e le altre diffcam
 | 
			
		||||
        diffcam.swap_section();
 | 
			
		||||
      }
 | 
			
		||||
      else // ... ma non alla Pharmatex
 | 
			
		||||
      {
 | 
			
		||||
        const TImporto e = importo(false); // Importo della scadenza in euro
 | 
			
		||||
        const TImporto v = importo(true);  // Importo della scadenza in valuta
 | 
			
		||||
        const real pg = pag.get_real(PAGSCA_IMPORTO);
 | 
			
		||||
        real rt = e.valore() * pag.get_real(PAGSCA_IMPORTOVAL) / v.valore(); 
 | 
			
		||||
        rt.round(dec);
 | 
			
		||||
        diffcam.set(e.sezione(), rt-pg);
 | 
			
		||||
      }
 | 
			
		||||
     
 | 
			
		||||
      diffcam.normalize(sez);
 | 
			
		||||
      pag.put(PAGSCA_DIFFCAM, diffcam.valore());
 | 
			
		||||
    }
 | 
			
		||||
@ -521,7 +533,7 @@ TImporto TRiga_scadenze::esposto_al(bool valuta, const TDate & al, const TDate &
 | 
			
		||||
			datapag = data;
 | 
			
		||||
		if (datapag <= al)
 | 
			
		||||
		{
 | 
			
		||||
			const int tp = pag.get_int(PART_TIPOPAG);
 | 
			
		||||
			const tipo_pagamento tp = pag.tipo_pag();
 | 
			
		||||
 | 
			
		||||
			if (tp >= tp_tratta && tp <= tp_rid)
 | 
			
		||||
			{
 | 
			
		||||
@ -543,7 +555,7 @@ TImporto TRiga_scadenze::esposto_al(bool valuta, const TDate & al, const TDate &
 | 
			
		||||
  return esposto;    
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
TImporto TRiga_scadenze::esposto(bool valuta, const TDate & data_scad, const TDate & data_rischio, bool & sbf) const
 | 
			
		||||
TImporto TRiga_scadenze::esposto(bool valuta, const TDate& data_scad, const TDate& data_rischio, bool& sbf) const
 | 
			
		||||
{        
 | 
			
		||||
  TImporto esposto;
 | 
			
		||||
  const bool rischio = data_scad != data_rischio; 
 | 
			
		||||
@ -554,7 +566,7 @@ TImporto TRiga_scadenze::esposto(bool valuta, const TDate & data_scad, const TDa
 | 
			
		||||
	for (int p = first(); p <= lasts; p = succ(p)) 
 | 
			
		||||
	{            
 | 
			
		||||
		const TRiga_partite & pag = riga().partita().riga(p);
 | 
			
		||||
		const int tp = pag.get_int(PART_TIPOPAG);
 | 
			
		||||
		const tipo_pagamento tp = pag.tipo_pag();
 | 
			
		||||
 | 
			
		||||
		if (tp >= tp_tratta && tp <= tp_rid)
 | 
			
		||||
		{
 | 
			
		||||
@ -583,7 +595,6 @@ bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta&
 | 
			
		||||
                                        char& new_ap, TImporto& new_abb, TImporto& new_diffcam,
 | 
			
		||||
                                        bool update)
 | 
			
		||||
{       
 | 
			
		||||
  const bool in_val = in_valuta();
 | 
			
		||||
  const int nrigp = new_pag.get_int(PAGSCA_NRIGP);
 | 
			
		||||
  const TRectype old_pag(row(nrigp));
 | 
			
		||||
  TRiga_partite& sum = partita().riga(nrigp);
 | 
			
		||||
@ -591,20 +602,17 @@ bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta&
 | 
			
		||||
  TImporto old_abbuono;
 | 
			
		||||
  old_ap = calcola_abbuono(nrigp, old_abbuono, false);   // Vecchio abbuono in valuta
 | 
			
		||||
  old_abb = old_abbuono;                                 // Vecchio abbuono in lire
 | 
			
		||||
  if (in_val)
 | 
			
		||||
  if (in_valuta())
 | 
			
		||||
  {
 | 
			
		||||
    const TString4 codval = sum.codice_valuta();
 | 
			
		||||
    exchange_type et = _exchange_undefined;
 | 
			
		||||
    if (sum.TRectype::exist(PART_CONTROEURO))
 | 
			
		||||
      et = sum.get_bool(PART_CONTROEURO) ? _exchange_contro : _exchange_base;
 | 
			
		||||
    TCurrency cur(old_abb.valore(), codval, sum.get_real(PART_CAMBIO), et);
 | 
			
		||||
    TCurrency cur(old_abb.valore(), codval, sum.get_real(PART_CAMBIO));
 | 
			
		||||
    cur.change_to_firm_val();
 | 
			
		||||
    old_abb.valore() = cur.get_num();
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  old_diffcam = calcola_differenza_cambio(nrigp, false);
 | 
			
		||||
  
 | 
			
		||||
  if (in_val && valuta.in_valuta())
 | 
			
		||||
  if (in_valuta() && !valuta.in_euro())
 | 
			
		||||
    valuta.put(sum);
 | 
			
		||||
  
 | 
			
		||||
  row(nrigp) = new_pag;
 | 
			
		||||
@ -612,14 +620,11 @@ bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta&
 | 
			
		||||
  TImporto new_abbuono;
 | 
			
		||||
  new_ap = calcola_abbuono(nrigp, new_abbuono, update); // Calcolo abbuono in valuta
 | 
			
		||||
  
 | 
			
		||||
  new_abb = new_abbuono;                                // Calcola nuovo abbuono in lire
 | 
			
		||||
  if (in_valuta())
 | 
			
		||||
  new_abb = new_abbuono;                                // Calcola nuovo abbuono in euro
 | 
			
		||||
  if (in_valuta() && !new_abb.is_zero())
 | 
			
		||||
  {
 | 
			
		||||
    const TString4 codval = sum.codice_valuta();
 | 
			
		||||
    exchange_type et = _exchange_undefined;
 | 
			
		||||
    if (((TRectype&)sum).exist(PART_CONTROEURO))
 | 
			
		||||
      et = sum.get_bool(PART_CONTROEURO) ? _exchange_contro : _exchange_base;
 | 
			
		||||
    TCurrency cur(new_abb.valore(), codval, sum.get_real(PART_CAMBIO), et);
 | 
			
		||||
    TCurrency cur(new_abb.valore(), codval, sum.get_real(PART_CAMBIO));
 | 
			
		||||
    cur.change_to_firm_val();
 | 
			
		||||
    new_abb.valore() = cur.get_num();
 | 
			
		||||
  }  
 | 
			
		||||
@ -649,8 +654,9 @@ bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta&
 | 
			
		||||
 | 
			
		||||
bool TRiga_scadenze::esistono_abbuoni_diffcam() const
 | 
			
		||||
{           
 | 
			
		||||
/* Prima dellla Pharmatex le differenze cambi potevano aversi solo con pagamenti a saldo
 | 
			
		||||
  bool ad = false;
 | 
			
		||||
  for (int p = last(); p > 0; p = pred(p))
 | 
			
		||||
  for (int p = last(); p > 0 && !ad; p = pred(p))
 | 
			
		||||
  {
 | 
			
		||||
    const TRectype& pag = row(p);
 | 
			
		||||
    if (pag.get_char(PAGSCA_ACCSAL) == 'S')
 | 
			
		||||
@ -664,6 +670,14 @@ bool TRiga_scadenze::esistono_abbuoni_diffcam() const
 | 
			
		||||
    }  
 | 
			
		||||
  }    
 | 
			
		||||
  return ad;
 | 
			
		||||
*/
 | 
			
		||||
  for (int p = last(); p > 0; p = pred(p))
 | 
			
		||||
  {
 | 
			
		||||
    const TRectype& pag = row(p);
 | 
			
		||||
    if (!pag.get_real(PAGSCA_ABBUONI).is_zero() || !pag.get_real(PAGSCA_DIFFCAM).is_zero())
 | 
			
		||||
      return true;
 | 
			
		||||
  }    
 | 
			
		||||
  return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -755,10 +769,16 @@ tipo_movimento TRiga_partite::tipo() const
 | 
			
		||||
  return tm;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tipo_pagamento TRiga_partite::tipo_pag() const 
 | 
			
		||||
{
 | 
			
		||||
  const tipo_pagamento tp = (tipo_pagamento)get_int(PART_TIPOPAG);
 | 
			
		||||
  return tp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Calcola il segno delle ritenute sociali in base alla causale
 | 
			
		||||
char TRiga_partite::sezione_ritsoc() const
 | 
			
		||||
{
 | 
			
		||||
  TString16 key; key << get(PART_CODCAUS) << "|14";  // Riga ritenute sociali
 | 
			
		||||
  TString16 key; key << get(PART_CODCAUS) << '|' << RIGA_PAG_RITSOC;  // Riga ritenute sociali
 | 
			
		||||
  const char sez_cau = cache().get(LF_RCAUSALI, key, RCA_SEZIONE)[0];
 | 
			
		||||
  const char sez_rit = sez_cau > ' ' ? (sez_cau == 'D' ? 'A' : 'D') : sezione();
 | 
			
		||||
  return sez_rit;
 | 
			
		||||
@ -850,8 +870,7 @@ bool TRiga_partite::update(const TImporto& vec, const TImporto& nuo,
 | 
			
		||||
// Certified 99%
 | 
			
		||||
int TRiga_partite::ultima_rata_con_abbuoni_diffcam() const
 | 
			
		||||
{  
 | 
			
		||||
	int s;
 | 
			
		||||
	       
 | 
			
		||||
	int s = 0;    
 | 
			
		||||
  for (s = rate(); s > 0; s--)
 | 
			
		||||
  {
 | 
			
		||||
    const TRiga_scadenze& scad = rata(s);
 | 
			
		||||
@ -870,7 +889,7 @@ const TString& TRiga_partite::codice_valuta() const
 | 
			
		||||
// Determina se una riga e' in valuta in base al codice valuta
 | 
			
		||||
bool TRiga_partite::in_valuta() const 
 | 
			
		||||
{
 | 
			
		||||
  return codice_valuta().not_empty();
 | 
			
		||||
  return !is_firm_value(codice_valuta());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Calcola l'importo in lire o in valuta su di una riga di partita
 | 
			
		||||
@ -902,9 +921,11 @@ TImporto TRiga_partite::importo(bool valuta, int mode) const
 | 
			
		||||
    }
 | 
			
		||||
    else                               // Desidero gli abbuoni in lire
 | 
			
		||||
    {
 | 
			
		||||
      if (in_euro && (mode & 0x8))
 | 
			
		||||
      if (in_euro && (mode & 0x8))     // Ritenute Fiscali e/o sociali
 | 
			
		||||
      {
 | 
			
		||||
        // Ritenute Fiscali
 | 
			
		||||
        i.valore() += get_real(PART_RITENUTE);
 | 
			
		||||
        // Ritenute Sociali
 | 
			
		||||
        if (sezione() == sezione_ritsoc())
 | 
			
		||||
          i.valore() += get_real(PART_RITSOC);
 | 
			
		||||
        else
 | 
			
		||||
@ -928,6 +949,7 @@ TImporto TRiga_partite::importo(bool valuta, int mode) const
 | 
			
		||||
      {
 | 
			
		||||
        const TImporto diffcam(get_char(PART_SEZDIFCAM), get_real(PART_DIFFCAM));
 | 
			
		||||
        i += diffcam;
 | 
			
		||||
        i.valore().round(TCurrency::get_firm_dec());
 | 
			
		||||
      }  
 | 
			
		||||
    }  
 | 
			
		||||
  }
 | 
			
		||||
@ -970,7 +992,7 @@ TImporto TRiga_partite::esposto(bool valuta, const TDate & data_scad, const TDat
 | 
			
		||||
            if (p != nrigp)
 | 
			
		||||
            {             
 | 
			
		||||
              const TRiga_partite & prow = partita().riga(p);
 | 
			
		||||
              const int tp = prow.get_int(PART_TIPOPAG);
 | 
			
		||||
              const tipo_pagamento tp = prow.tipo_pag();
 | 
			
		||||
 | 
			
		||||
							if (tp >= tp_tratta && tp <= tp_rid)
 | 
			
		||||
              {
 | 
			
		||||
@ -1041,6 +1063,7 @@ TImporto TRiga_partite::calcola_pagato_al(bool valuta,const TDate& al, const TDa
 | 
			
		||||
 | 
			
		||||
char TPartita::_cli_align = ' ';
 | 
			
		||||
char TPartita::_for_align = ' ';
 | 
			
		||||
bool TPartita::_diffcam_always = false;
 | 
			
		||||
 | 
			
		||||
TPartita::TPartita(const TBill& clifo, int anno, const char* num) 
 | 
			
		||||
        : _part(LF_PARTITE, PART_NRIGA), _unassigned(LF_PAGSCA, PAGSCA_NRIGP), _align(' ')
 | 
			
		||||
@ -1085,6 +1108,9 @@ void TPartita::carica_allineamento()
 | 
			
		||||
  TConfig cd(CONFIG_DITTA, "cg");
 | 
			
		||||
  _cli_align = cd.get_bool("NrCliDx") ? 'R' : 'L';
 | 
			
		||||
  _for_align = cd.get_bool("NrForDx") ? 'R' : 'L';
 | 
			
		||||
 | 
			
		||||
  // Nel nuovo saldaconto si possono rilevare le differenze cambi su pagamenti non a saldo
 | 
			
		||||
  _diffcam_always = cd.get_bool("EasySal") && cd.get_bool("DiffCamAlways");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
char TPartita::allineamento_richiesto(char tipocf)
 | 
			
		||||
@ -1103,6 +1129,12 @@ char TPartita::allineamento_richiesto(char tipocf)
 | 
			
		||||
  return all;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TPartita::rileva_sempre_differenze_cambi()
 | 
			
		||||
{
 | 
			
		||||
  if (_cli_align <= ' ' || _for_align <= ' ') // Carica il flag insieme agli allineamnti
 | 
			
		||||
     carica_allineamento();
 | 
			
		||||
  return _diffcam_always;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Ritorna l'allineamento corrente del numero partita
 | 
			
		||||
// L = Sinistra, R = Destra, ' ' = indeterminato
 | 
			
		||||
@ -1321,16 +1353,11 @@ bool TPartita::write(bool re) const
 | 
			
		||||
    const char cur_align = allineamento_corrente();
 | 
			
		||||
    const char req_align = allineamento_richiesto(conto().tipo());
 | 
			
		||||
    if (cur_align > ' ' && cur_align != req_align)
 | 
			
		||||
    {
 | 
			
		||||
      if (yesno_box("La partita %d '%s' non rispetta l'allineamento "
 | 
			
		||||
                    "specificato nei parametri ditta: si desidera correggerlo?", 
 | 
			
		||||
                    anno(), (const char*)numero()))
 | 
			
		||||
    {
 | 
			
		||||
      // Riallinea tutti i numeri partita nelle righe. rate e pagamenti
 | 
			
		||||
      ((TPartita*)this)->allinea(req_align);
 | 
			
		||||
    }  
 | 
			
		||||
  }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  int err = _part.write(re);
 | 
			
		||||
  if (err == NOERR)
 | 
			
		||||
@ -1360,12 +1387,15 @@ bool TPartita::write(bool re) const
 | 
			
		||||
			{                                                        
 | 
			
		||||
		    part.put(PART_GRUPPO, conto().gruppo());
 | 
			
		||||
				part.put(PART_CONTO, conto().conto());                   
 | 
			
		||||
		  }                                   
 | 
			
		||||
  		  part.put(PART_SOTTOCONTO, conto().sottoconto());
 | 
			
		||||
		  }   
 | 
			
		||||
      else
 | 
			
		||||
        part.put(PART_SOTTOCONTO, conto().codclifo());                   
 | 
			
		||||
 | 
			
		||||
			part.put(PART_ANNO, anno());
 | 
			
		||||
			part.put(PART_NUMPART, num);
 | 
			
		||||
			
 | 
			
		||||
			TRectype comp(part.curr());
 | 
			
		||||
			const TRectype comp(part.curr());
 | 
			
		||||
 | 
			
		||||
			if (part.read(_isgteq) == NOERR && part.curr().compare_key(comp, 1 ,1) == 0)
 | 
			
		||||
			{
 | 
			
		||||
@ -1438,7 +1468,7 @@ TRiga_scadenze& TPartita::rata(int nriga, int nrata) const
 | 
			
		||||
bool TPartita::rata_chiusa(int nriga, int nrata) const
 | 
			
		||||
{        
 | 
			
		||||
  bool pag = false;
 | 
			
		||||
  if (nriga != UNASSIGNED)
 | 
			
		||||
  if (nriga > 0 && nriga < UNASSIGNED && nrata > 0 && nrata < UNASSIGNED)
 | 
			
		||||
  {
 | 
			
		||||
    const TRiga_scadenze& r = rata(nriga, nrata);
 | 
			
		||||
    pag = r.chiusa();
 | 
			
		||||
@ -1458,7 +1488,7 @@ bool TPartita::esistono_abbuoni_diffcam(long nreg) const
 | 
			
		||||
const TString& TPartita::codice_valuta() const
 | 
			
		||||
{                        
 | 
			
		||||
  const int ultima = last();
 | 
			
		||||
  return ultima > 0 ? riga(ultima).codice_valuta() : (const TString &) EMPTY_STRING;
 | 
			
		||||
  return ultima > 0 ? riga(ultima).codice_valuta() : (const TString&)EMPTY_STRING;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TPartita::in_valuta() const
 | 
			
		||||
@ -1469,7 +1499,7 @@ bool TPartita::in_valuta() const
 | 
			
		||||
 | 
			
		||||
TRectype& TPartita::pagamento(int nriga, int nrata, int nrigp)
 | 
			
		||||
{
 | 
			
		||||
  if (nriga == UNASSIGNED)
 | 
			
		||||
  if (nriga == UNASSIGNED || nrata == UNASSIGNED)
 | 
			
		||||
    return _unassigned.row(nrigp, true);
 | 
			
		||||
  TRiga_scadenze& r = rata(nriga, nrata);
 | 
			
		||||
  return r.row(nrigp);
 | 
			
		||||
@ -1530,6 +1560,8 @@ TImporto TPartita::importo_speso(long nreg, int numrig, bool valuta, int mode) c
 | 
			
		||||
    if (nreg == row.get_long(PART_NREG) && numrig == row.get_int(PART_NUMRIG))
 | 
			
		||||
      imp += row.importo(valuta, mode);
 | 
			
		||||
  }
 | 
			
		||||
  if (!valuta || !in_valuta())
 | 
			
		||||
    imp.valore().round(TCurrency::get_firm_dec());
 | 
			
		||||
  
 | 
			
		||||
  return imp;
 | 
			
		||||
}
 | 
			
		||||
@ -1672,12 +1704,12 @@ void TPartita::calcola_saldo(TImporto& saldo, TImporto& doc, TImporto& pag, TImp
 | 
			
		||||
TImporto TPartita::calcola_saldo(bool valuta) const
 | 
			
		||||
{
 | 
			
		||||
  TImporto saldo;
 | 
			
		||||
 | 
			
		||||
  for (int r = last(); r > 0; r = pred(r))
 | 
			
		||||
  {
 | 
			
		||||
    const TRiga_partite& row = riga(r);
 | 
			
		||||
    saldo += row.importo(valuta);
 | 
			
		||||
  }  
 | 
			
		||||
  saldo.normalize(); // Aggiunto il 26/10/2010 nella 11.0 ed il 13/1/2012 nella 10.0
 | 
			
		||||
  return saldo;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1695,7 +1727,7 @@ TImporto TPartita::calcola_pagato_al(bool valuta,const TDate& al, const TDate &
 | 
			
		||||
      pagato += row.importo(valuta);
 | 
			
		||||
			if (!row.is_fattura())
 | 
			
		||||
      {
 | 
			
		||||
        const int tipopag = row.get_int(PART_TIPOPAG);
 | 
			
		||||
        const tipo_pagamento tipopag = row.tipo_pag();
 | 
			
		||||
 | 
			
		||||
				if (tipopag >= tp_tratta && tipopag <= tp_rid)
 | 
			
		||||
        {
 | 
			
		||||
@ -1722,7 +1754,7 @@ TImporto TPartita::calcola_saldo_al(bool valuta,const TDate& al, const TDate & d
 | 
			
		||||
      saldo += row.importo(valuta);
 | 
			
		||||
      if (!row.is_fattura())
 | 
			
		||||
      {
 | 
			
		||||
        const int tipopag = row.get_int(PART_TIPOPAG);
 | 
			
		||||
        const tipo_pagamento tipopag = row.tipo_pag();
 | 
			
		||||
 | 
			
		||||
				if (tipopag >= tp_tratta && tipopag <= tp_rid)
 | 
			
		||||
        {
 | 
			
		||||
@ -1782,10 +1814,7 @@ real TPartita::calcola_scaduto_al(bool valuta,const TDate& al) const
 | 
			
		||||
    scaduto.normalize(sezione);
 | 
			
		||||
    if (scaduto.valore() > 0)
 | 
			
		||||
      return scaduto.valore();
 | 
			
		||||
    else
 | 
			
		||||
      return ZERO;
 | 
			
		||||
  }  
 | 
			
		||||
  else 
 | 
			
		||||
  return ZERO;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1803,7 +1832,6 @@ TImporto TPartita::importo_pagato_unassigned(bool val, int mode) const
 | 
			
		||||
    const TRectype& pag = _unassigned.row(p);                         // Riga pagamento
 | 
			
		||||
    const TRiga_partite& sum = riga(pag.get_int(PAGSCA_NRIGP));       // Riga partite
 | 
			
		||||
    const char sez = sum.sezione();
 | 
			
		||||
    // const int tipo = sum.get_int(PART_TIPOPAG);
 | 
			
		||||
    
 | 
			
		||||
    if (mode & 0x1)              
 | 
			
		||||
      totale += TImporto(sez, pag.get_real(imp_field));
 | 
			
		||||
@ -2105,11 +2133,11 @@ int TPartita::tipopag2causale(int tipo) const
 | 
			
		||||
const TString& TPartite_array::key(const TBill& clifo, int anno, const char* num)
 | 
			
		||||
{                  
 | 
			
		||||
  if (clifo.tipo() > ' ')
 | 
			
		||||
    _key.format("%c%3d%3d%6ld%4d%*s", clifo.tipo(), 0, 0, clifo.sottoconto(), 
 | 
			
		||||
    _key.format("%c%3d%3d%6ld%4d%*s", clifo.tipo(), 0, 0, clifo.codclifo(), 
 | 
			
		||||
                                      anno, TPartita::NUMLEN, num);
 | 
			
		||||
  else
 | 
			
		||||
    _key.format("%c%3d%3d%6ld%4d%*s", 
 | 
			
		||||
                clifo.tipo(), clifo.gruppo(), clifo.conto(), clifo.sottoconto(), 
 | 
			
		||||
                ' ', clifo.gruppo(), clifo.conto(), clifo.sottoconto(), 
 | 
			
		||||
                anno, TPartita::NUMLEN, num);
 | 
			
		||||
  return _key;
 | 
			
		||||
}
 | 
			
		||||
@ -2239,6 +2267,8 @@ TImporto TPartite_array::importo_speso(long nreg, int numrig, bool valuta, int m
 | 
			
		||||
  for (TPartita* game = first(); game; game = next())
 | 
			
		||||
    imp += game->importo_speso(nreg, numrig, valuta, mode);
 | 
			
		||||
  imp.normalize();
 | 
			
		||||
  if (!valuta)
 | 
			
		||||
    imp.valore().round(TCurrency::get_firm_dec());
 | 
			
		||||
  return imp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -182,6 +182,7 @@ public:
 | 
			
		||||
  TRiga_scadenze& new_row(int r = 0);
 | 
			
		||||
  
 | 
			
		||||
  tipo_movimento tipo() const;
 | 
			
		||||
  tipo_pagamento tipo_pag() const;
 | 
			
		||||
  bool is_fattura() const { return tipo() == tm_fattura; }
 | 
			
		||||
  bool is_nota_credito() const { return tipo() == tm_nota_credito; }
 | 
			
		||||
  int ultima_ratapagata() const;
 | 
			
		||||
@ -222,6 +223,7 @@ class TPartita : public TSortable
 | 
			
		||||
  char _align;        // current _num alignment
 | 
			
		||||
  
 | 
			
		||||
  static char _cli_align, _for_align;  // default _num alignment
 | 
			
		||||
  static bool _diffcam_always;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  char allineamento_iniziale() const { return _align; }
 | 
			
		||||
@ -305,6 +307,7 @@ public:
 | 
			
		||||
  static void carica_allineamento();
 | 
			
		||||
  static char allineamento_richiesto(char tipocf);
 | 
			
		||||
  static int read_saldo(TRectype& riga, TImporto& saldo, TImporto& doc, TImporto& pag, TImporto& imp);
 | 
			
		||||
  static bool rileva_sempre_differenze_cambi();
 | 
			
		||||
  
 | 
			
		||||
  int tipopag2causale(int tipo) const;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user