Corretta gestione esercizi contabili
git-svn-id: svn://10.65.10.50/trunk@2170 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0e625361e3
commit
30314e7e70
@ -1,7 +1,5 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <mailbox.h>
|
#include <mailbox.h>
|
||||||
#include <tabutil.h>
|
|
||||||
#include <utility.h>
|
|
||||||
#include <urldefid.h>
|
#include <urldefid.h>
|
||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
|
|
||||||
@ -402,9 +400,12 @@ TMask* TPrimanota_application::get_mask(int mode)
|
|||||||
|
|
||||||
void TPrimanota_application::on_firm_change()
|
void TPrimanota_application::on_firm_change()
|
||||||
{
|
{
|
||||||
TRelation_application::on_firm_change();
|
TRelation_application::on_firm_change(); // May be useful, who knows?
|
||||||
|
|
||||||
_rel->lfile().last();
|
_rel->lfile().last();
|
||||||
_lastreg = _rel->lfile().get_long(MOV_NUMREG); // Init last registration number
|
_lastreg = _rel->lfile().get_long(MOV_NUMREG); // Init last registration number
|
||||||
|
|
||||||
|
_esercizi.update(); // Init exercises
|
||||||
}
|
}
|
||||||
|
|
||||||
void TPrimanota_application::on_config_change()
|
void TPrimanota_application::on_config_change()
|
||||||
@ -505,30 +506,30 @@ void TPrimanota_application::fill_sheet(TMask& m) const
|
|||||||
// Certified 100%
|
// Certified 100%
|
||||||
const char* TPrimanota_application::get_next_key()
|
const char* TPrimanota_application::get_next_key()
|
||||||
{
|
{
|
||||||
TToken_string k(80);
|
_tmp.cut(0);
|
||||||
k.add(F_NUMREG); k.add(_lastreg+1);
|
_tmp.add(F_NUMREG); _tmp.add(_lastreg+1);
|
||||||
|
|
||||||
if (_rel->good()) // Not reinsert
|
if (_rel->good()) // Not reinsert
|
||||||
{
|
{
|
||||||
TMask& m = curr_mask();
|
TMask& m = curr_mask();
|
||||||
if (m.insert_mode())
|
if (m.insert_mode())
|
||||||
{
|
{
|
||||||
k.add(F_CODCAUS); k.add(m.get(F_CODCAUS)); // Ricopia causale
|
_tmp.add(F_CODCAUS); _tmp.add(m.get(F_CODCAUS)); // Ricopia causale
|
||||||
k.add(F_DATAREG); k.add(m.get(F_DATAREG)); // data operazione
|
_tmp.add(F_DATAREG); _tmp.add(m.get(F_DATAREG)); // data operazione
|
||||||
k.add(F_DATACOMP); k.add(m.get(F_DATACOMP)); // competenza
|
_tmp.add(F_DATACOMP); _tmp.add(m.get(F_DATACOMP)); // competenza
|
||||||
|
|
||||||
if (iva() == iva_vendite)
|
if (iva() == iva_vendite)
|
||||||
{
|
{
|
||||||
k.add(F_DATADOC); k.add(m.get(F_DATADOC)); // Ricopia data documento
|
_tmp.add(F_DATADOC); _tmp.add(m.get(F_DATADOC)); // Ricopia data documento
|
||||||
|
|
||||||
const long n = m.get_long(F_NUMDOC);
|
const long n = m.get_long(F_NUMDOC);
|
||||||
if (n > 0)
|
if (n > 0)
|
||||||
{ k.add(F_NUMDOC); k.add(n+1); } // incrementa numero documento
|
{ _tmp.add(F_NUMDOC); _tmp.add(n+1); } // incrementa numero documento
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return strcpy(__tmp_string, k);
|
return _tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -864,21 +865,26 @@ int TPrimanota_application::write(const TMask& m)
|
|||||||
causale().reg().reread(); // Aggiorna protocollo IVA
|
causale().reg().reread(); // Aggiorna protocollo IVA
|
||||||
if (is_saldaconto())
|
if (is_saldaconto())
|
||||||
{
|
{
|
||||||
if (m.page_enabled(2))
|
switch (causale().tipomov())
|
||||||
write_scadenze(m);
|
{
|
||||||
|
case 1:
|
||||||
|
write_scadenze(m); break; // Salva fattura
|
||||||
|
case 2:
|
||||||
|
salvaconto = TRUE; break; // Salva nota credito
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!m.get_bool(F_SOLAIVA) && !is_saldaconto())
|
// Genera incasso immediato se e' una fattura e non c'e' gestione saldaconto
|
||||||
|
if (!m.get_bool(F_SOLAIVA) && !gestione_saldaconto())
|
||||||
{
|
{
|
||||||
const TString16 causimm(causale().causale_inc_imm());
|
const TString causimm(causale().causale_inc_imm());
|
||||||
if (causimm.not_empty())
|
if (causimm.not_empty())
|
||||||
genera_incasso(causimm); // Genera incasso immediato
|
genera_incasso(causimm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (causale().tipomov() == 2)
|
|
||||||
salvaconto = TRUE;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <rmoviva.h>
|
#include <rmoviva.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
|
||||||
|
/*
|
||||||
// Calcola l'anno di esercizio di una data, e se prevesc != NULL calcola anche l'anno precedente
|
// Calcola l'anno di esercizio di una data, e se prevesc != NULL calcola anche l'anno precedente
|
||||||
// Certified 99%
|
// Certified 99%
|
||||||
int date2esc(const TDate& d, int* prevesc)
|
int date2esc(const TDate& d, int* prevesc)
|
||||||
@ -45,6 +46,7 @@ int date2esc(const TDate& d, int* prevesc)
|
|||||||
|
|
||||||
return anno;
|
return anno;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Movimento di prima nota
|
// Movimento di prima nota
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int date2esc(const TDate& d, int* prevesc = NULL);
|
|
||||||
|
|
||||||
class TMovimentoPN : public TRelation
|
class TMovimentoPN : public TRelation
|
||||||
{
|
{
|
||||||
// class TMovimentoPN : public TRelation
|
// class TMovimentoPN : public TRelation
|
||||||
|
@ -1418,12 +1418,12 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
if ((key == K_TAB && m.is_running()) || key == K_ENTER)
|
if ((key == K_TAB && m.is_running()) || key == K_ENTER)
|
||||||
{
|
{
|
||||||
const TDate dr(f.get()); // Data dell'operazione
|
const TDate dr(f.get()); // Data dell'operazione
|
||||||
if (dr > TDate(TODAY))
|
if (dr > TDate(TODAY))
|
||||||
return f.error_box("La data dell'operazione e' superiore quella di sistema");
|
return f.error_box("La data dell'operazione e' superiore quella di sistema");
|
||||||
|
|
||||||
const int ae = date2esc(dr); // Anno esercizio
|
const int ae = app()._esercizi.date2esc(dr); // Anno esercizio
|
||||||
if (ae == 0)
|
if (ae <= 0)
|
||||||
return f.error_box("La data dell'operazione non appartiene a nessun esercizio");
|
return f.error_box("La data dell'operazione non appartiene a nessun esercizio");
|
||||||
|
|
||||||
if (m.query_mode() || app().giornale().year() != ae)
|
if (m.query_mode() || app().giornale().year() != ae)
|
||||||
@ -1488,8 +1488,8 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
if (reg.iva() != nessuna_iva && app()._rel->controlla_liquidazione(dr) == TRUE)
|
if (reg.iva() != nessuna_iva && app()._rel->controlla_liquidazione(dr) == TRUE)
|
||||||
{
|
{
|
||||||
const char* m = itom(dr.month());
|
const char* const mese = itom(dr.month());
|
||||||
f.warning_box("La liquidazione IVA relativa al mese di %s e' gia' stata calcolata", m);
|
f.warning_box("La liquidazione IVA relativa al mese di %s e' gia' stata calcolata", mese);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1513,9 +1513,9 @@ bool TPrimanota_application::datacomp_handler(TMask_field& f, KEY key)
|
|||||||
datacomp = dr.string();
|
datacomp = dr.string();
|
||||||
f.set(datacomp);
|
f.set(datacomp);
|
||||||
}
|
}
|
||||||
const TDate dc(datacomp); // Data di competenza
|
const TDate dc(datacomp); // Data di competenza
|
||||||
TEsercizi_contabili esc;
|
TEsercizi_contabili& esc = app()._esercizi;
|
||||||
const int ae = esc.date2esc(dc); // Esercizio corrispondente
|
const int ae = esc.date2esc(dc); // Esercizio corrispondente
|
||||||
|
|
||||||
const char* data = "del 74/ter";
|
const char* data = "del 74/ter";
|
||||||
if (f.dlg() == F_DATACOMP)
|
if (f.dlg() == F_DATACOMP)
|
||||||
@ -1569,12 +1569,12 @@ bool TPrimanota_application::doc_handler(TMask_field& f, KEY key)
|
|||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
|
|
||||||
if (key == K_TAB && m.is_running())
|
if (key == K_TAB && m.insert_mode() && app().is_saldaconto())
|
||||||
{
|
{
|
||||||
const TString16 val(f.get());
|
const TString16 val(f.get());
|
||||||
|
|
||||||
if (val.not_empty() && m.insert_mode() && m.field(F_ANNORIF).active())
|
if (val.not_empty())
|
||||||
{ // Se c'e' gestione saldaconto
|
{
|
||||||
if (f.dlg() == F_DATADOC)
|
if (f.dlg() == F_DATADOC)
|
||||||
{
|
{
|
||||||
const TDate dd(val);
|
const TDate dd(val);
|
||||||
|
@ -61,7 +61,10 @@ class TPrimanota_application : public TRelation_application
|
|||||||
|
|
||||||
TBill _conto_ricavo; // Conto di ricavo del clifo
|
TBill _conto_ricavo; // Conto di ricavo del clifo
|
||||||
|
|
||||||
TString_array _pag_rows;
|
TToken_string _tmp; // Stringa temporanea da ritornare
|
||||||
|
TString_array _pag_rows; // Copia dello sheet delle rate
|
||||||
|
|
||||||
|
TEsercizi_contabili _esercizi; // Tabella degli esercizi contabili
|
||||||
|
|
||||||
static bool showpartite_handler(TMask_field& f, KEY k);
|
static bool showpartite_handler(TMask_field& f, KEY k);
|
||||||
static bool speserimb_handler(TMask_field& f, KEY k);
|
static bool speserimb_handler(TMask_field& f, KEY k);
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
#include <applicat.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#include <prefix.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
|
|
||||||
#include "cg2103.h"
|
#include "cg2103.h"
|
||||||
@ -138,7 +140,7 @@ bool TRegistro::read_att()
|
|||||||
|
|
||||||
TLocalisamfile attiv(LF_ATTIV);
|
TLocalisamfile attiv(LF_ATTIV);
|
||||||
attiv.setkey(1);
|
attiv.setkey(1);
|
||||||
attiv.put("CODDITTA", main_app().get_firm());
|
attiv.put("CODDITTA", prefix().get_codditta());
|
||||||
attiv.put("CODATT", attivita());
|
attiv.put("CODATT", attivita());
|
||||||
const int err = attiv.read();
|
const int err = attiv.read();
|
||||||
_att = attiv.curr();
|
_att = attiv.curr();
|
||||||
@ -146,7 +148,7 @@ bool TRegistro::read_att()
|
|||||||
_att.zero();
|
_att.zero();
|
||||||
|
|
||||||
TString16 chiave; // Ditta - Anno - Attivita' - Tipo Attivita' (fissata a 1)
|
TString16 chiave; // Ditta - Anno - Attivita' - Tipo Attivita' (fissata a 1)
|
||||||
chiave.format("%05ld", main_app().get_firm());
|
chiave.format("%05ld", prefix().get_codditta());
|
||||||
chiave << year(); // non fare << year() << attivita()
|
chiave << year(); // non fare << year() << attivita()
|
||||||
chiave << attivita() << "1";
|
chiave << attivita() << "1";
|
||||||
|
|
||||||
|
@ -3,8 +3,6 @@
|
|||||||
// fv 24/8/94
|
// fv 24/8/94
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include <sheet.h>
|
|
||||||
#include <utility.h>
|
|
||||||
#include "pagament.h"
|
#include "pagament.h"
|
||||||
#include "saldacon.h"
|
#include "saldacon.h"
|
||||||
|
|
||||||
@ -579,7 +577,7 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
partita.put(PART_SPESE, pag.spese());
|
partita.put(PART_SPESE, pag.spese());
|
||||||
|
|
||||||
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
TSheet_field& ps = (TSheet_field&)m.field(FS_RATESHEET);
|
||||||
partita.elimina_rate();
|
partita.elimina_rata(-1);
|
||||||
for (int i = 0; i < pag.n_rate(); i++)
|
for (int i = 0; i < pag.n_rate(); i++)
|
||||||
{
|
{
|
||||||
TToken_string& row = ps.row(i);
|
TToken_string& row = ps.row(i);
|
||||||
@ -638,7 +636,7 @@ void TPrimanota_application::write_scadenze(const TMask& m)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newgame != NULL) // Se ho cancellato il numero partita ...
|
if (newgame != NULL) // Se non ho cancellato il numero partita ...
|
||||||
newgame->write(); // Salva nuova partita
|
newgame->write(); // Salva nuova partita
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
// cglib01.cpp
|
// cglib01.cpp
|
||||||
// calcolo dei saldi
|
// calcolo dei saldi
|
||||||
|
|
||||||
#include <applicat.h>
|
// La compilazione e' gia' lenta da sola: evitare include inutili (Guy)
|
||||||
|
// #include <applicat.h>
|
||||||
|
// #include <utility.h>
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
#include <isam.h>
|
|
||||||
#include <tabutil.h>
|
#include "cglib.h"
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include <rmov.h>
|
#include <rmov.h>
|
||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
@ -14,7 +16,6 @@
|
|||||||
#include <causali.h>
|
#include <causali.h>
|
||||||
#include <clifo.h>
|
#include <clifo.h>
|
||||||
|
|
||||||
#include "cglib.h"
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Causale
|
// Causale
|
||||||
@ -56,23 +57,12 @@ bool TCaus::apertura() const
|
|||||||
//
|
//
|
||||||
// Cerca l'esercizio precedente di EseCorr
|
// Cerca l'esercizio precedente di EseCorr
|
||||||
// Se EseCorr e' gia' il primo ritorna 0
|
// Se EseCorr e' gia' il primo ritorna 0
|
||||||
// senno' ritorna, astutamente, EseCorr - 1
|
// senno' ritorna il precedente (Stavolta meno astutamente, ma correttamente)
|
||||||
//
|
//
|
||||||
const int EsePre(const int EseCorr)
|
const int EsePre(const int EseCorr)
|
||||||
{
|
{
|
||||||
TTable ese("ESC");
|
TEsercizi_contabili esc;
|
||||||
TString first(30);
|
return esc.pred(EseCorr);
|
||||||
TString16 codtab;
|
|
||||||
|
|
||||||
ese.first();
|
|
||||||
first = ese.get("CODTAB");
|
|
||||||
|
|
||||||
codtab.format("%04d", EseCorr);
|
|
||||||
|
|
||||||
if (codtab == first)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return EseCorr - 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// aep e' l'esercizio precedente
|
// aep e' l'esercizio precedente
|
||||||
@ -361,7 +351,7 @@ bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDat
|
|||||||
// "I mov. di puro riferimento (= con importo = 0) vanno scartati"
|
// "I mov. di puro riferimento (= con importo = 0) vanno scartati"
|
||||||
if (importo == ZERO) continue;
|
if (importo == ZERO) continue;
|
||||||
|
|
||||||
gcs_corr = format ("%3d%3d%6ld", gruppo, conto, sottoconto);
|
gcs_corr.format ("%3d%3d%6ld", gruppo, conto, sottoconto);
|
||||||
|
|
||||||
if (gcs_corr != gcs_prec)
|
if (gcs_corr != gcs_prec)
|
||||||
{
|
{
|
||||||
@ -560,10 +550,10 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
|
|||||||
|
|
||||||
TRectype& TSaldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
TRectype& TSaldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
||||||
{
|
{
|
||||||
TLocalisamfile saldi(LF_SALDI, FALSE);
|
TLocalisamfile saldi(LF_SALDI);
|
||||||
|
|
||||||
|
// Tre righe inutili che vengono gia' eseguite da TLocalisamfile (Guy)
|
||||||
const int oldkey = saldi.getkey();
|
const int oldkey = saldi.getkey();
|
||||||
|
|
||||||
saldi.setkey(1);
|
saldi.setkey(1);
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
|
|
||||||
@ -580,15 +570,15 @@ TRectype& TSaldo::ricerca_progr_prec (int annoesprec, int g, int c, long s)
|
|||||||
_rec_presente_ep = FALSE;
|
_rec_presente_ep = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
(*_saldo_ep) = saldi.curr();
|
*_saldo_ep = saldi.curr();
|
||||||
saldi.setkey(oldkey);
|
|
||||||
|
|
||||||
// riposiziona...
|
// riposiziona... 7 righe inutili (Guy)
|
||||||
|
saldi.setkey(oldkey);
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
saldi.put(SLD_GRUPPO,g);
|
saldi.put(SLD_GRUPPO,g);
|
||||||
saldi.put(SLD_CONTO,c);
|
saldi.put(SLD_CONTO,c);
|
||||||
saldi.put(SLD_SOTTOCONTO,s);
|
saldi.put(SLD_SOTTOCONTO,s);
|
||||||
saldi.put(SLD_ANNOES,annoesprec+1);
|
saldi.put(SLD_ANNOES,annoesprec+1); // Astuto anche questo (Guy)
|
||||||
saldi.read(_isequal);
|
saldi.read(_isequal);
|
||||||
|
|
||||||
return (*_saldo_ep);
|
return (*_saldo_ep);
|
||||||
|
@ -5,10 +5,11 @@
|
|||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <stdlib.h>
|
// La compilazione e' gia' lenta da sola: evitare include inutili (Guy)
|
||||||
|
// #include <stdlib.h>
|
||||||
|
// #include <utility.h>
|
||||||
|
|
||||||
#include <applicat.h>
|
#include <prefix.h>
|
||||||
#include <utility.h>
|
|
||||||
|
|
||||||
#include "cglib.h"
|
#include "cglib.h"
|
||||||
|
|
||||||
@ -165,7 +166,7 @@ void TSaldo_agg::registra()
|
|||||||
CHECK(tcon.ok(), "Tentavi di saldare un conto incompleto, eh?");
|
CHECK(tcon.ok(), "Tentavi di saldare un conto incompleto, eh?");
|
||||||
|
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
saldi.put(SLD_ANNOES, atoi(hobj->key().left(4)) );
|
saldi.put(SLD_ANNOES, hobj->key().left(4));
|
||||||
saldi.put(SLD_GRUPPO, tcon.gruppo());
|
saldi.put(SLD_GRUPPO, tcon.gruppo());
|
||||||
saldi.put(SLD_CONTO, tcon.conto());
|
saldi.put(SLD_CONTO, tcon.conto());
|
||||||
saldi.put(SLD_SOTTOCONTO, tcon.sottoconto());
|
saldi.put(SLD_SOTTOCONTO, tcon.sottoconto());
|
||||||
@ -175,7 +176,7 @@ void TSaldo_agg::registra()
|
|||||||
if (saldi.read(_isequal, _lock) != NOERR)
|
if (saldi.read(_isequal, _lock) != NOERR)
|
||||||
{
|
{
|
||||||
saldi.zero();
|
saldi.zero();
|
||||||
saldi.put(SLD_ANNOES, atoi(hobj->key().left(4)));
|
saldi.put(SLD_ANNOES, hobj->key().left(4));
|
||||||
saldi.put(SLD_GRUPPO, tcon.gruppo());
|
saldi.put(SLD_GRUPPO, tcon.gruppo());
|
||||||
saldi.put(SLD_CONTO, tcon.conto());
|
saldi.put(SLD_CONTO, tcon.conto());
|
||||||
saldi.put(SLD_SOTTOCONTO, tcon.sottoconto());
|
saldi.put(SLD_SOTTOCONTO, tcon.sottoconto());
|
||||||
@ -279,8 +280,7 @@ TEsercizi_contabili::TEsercizi_contabili() : _firm(0)
|
|||||||
|
|
||||||
void TEsercizi_contabili::update()
|
void TEsercizi_contabili::update()
|
||||||
{
|
{
|
||||||
_firm = main_app().get_firm();
|
_firm = prefix().get_codditta();
|
||||||
|
|
||||||
destroy();
|
destroy();
|
||||||
TTable esc("ESC");
|
TTable esc("ESC");
|
||||||
for (int err = esc.first(); err == NOERR; err = esc.next())
|
for (int err = esc.first(); err == NOERR; err = esc.next())
|
||||||
@ -293,7 +293,7 @@ void TEsercizi_contabili::update()
|
|||||||
|
|
||||||
void TEsercizi_contabili::check()
|
void TEsercizi_contabili::check()
|
||||||
{
|
{
|
||||||
if (_firm != main_app().get_firm())
|
if (_firm != prefix().get_codditta())
|
||||||
{
|
{
|
||||||
#ifdef DBG
|
#ifdef DBG
|
||||||
if (_firm != 0)
|
if (_firm != 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user