Patch level : 12.0 897
Files correlati : ve2.exe tp0.exe tutti i profili Commento to : Gestione conai
This commit is contained in:
parent
94dd6e348f
commit
d255f2e26d
@ -185,8 +185,8 @@ class TArticolo_pack : public TRectype
|
|||||||
{
|
{
|
||||||
TString _cust_code, _paper_comp;
|
TString _cust_code, _paper_comp;
|
||||||
|
|
||||||
TString4 _conai_scat[CONAI_CLASSES];
|
TArray _conai_scat;
|
||||||
real _conai_peso[CONAI_CLASSES];
|
TArray _conai_peso;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void set_customer_code(const TString& cc) { _cust_code = cc; }
|
void set_customer_code(const TString& cc) { _cust_code = cc; }
|
||||||
@ -195,10 +195,11 @@ public:
|
|||||||
void set_paper_composition(const TString& pc) { _paper_comp = pc; }
|
void set_paper_composition(const TString& pc) { _paper_comp = pc; }
|
||||||
const TString& paper_composition() const { return _paper_comp; }
|
const TString& paper_composition() const { return _paper_comp; }
|
||||||
|
|
||||||
const TString& conai_subclass(TCONAI_class cc) const { CHECK_CONAI(cc); return _conai_scat[cc]; }
|
const TString& conai_subclass(int i) const { return _conai_scat.objptr(i) ? (const TString &)_conai_scat[i] : EMPTY_STRING; }
|
||||||
const real& conai_weight(TCONAI_class cc) const { CHECK_CONAI(cc); return _conai_peso[cc]; }
|
const real& conai_weight(int i) const { return _conai_peso.objptr(i) ? (const real &) _conai_peso[i] : ZERO; }
|
||||||
bool set_conai(TCONAI_class cc, const TString& scat, const real& weight);
|
bool set_conai(const TString& scat, const real& weight);
|
||||||
|
void reset_conai();
|
||||||
|
|
||||||
TArticolo_pack(const TRectype& anamag);
|
TArticolo_pack(const TRectype& anamag);
|
||||||
TArticolo_pack();
|
TArticolo_pack();
|
||||||
};
|
};
|
||||||
|
@ -2,34 +2,38 @@
|
|||||||
|
|
||||||
#include "../cg/cfban.h"
|
#include "../cg/cfban.h"
|
||||||
#include "../mg/codcorr.h"
|
#include "../mg/codcorr.h"
|
||||||
|
#include "../include/conart.h"
|
||||||
|
|
||||||
// Assegna sottocategoria e peso di una classe CONAI solo se non vuoti
|
// Assegna sottocategoria e peso di una classe CONAI solo se non vuoti
|
||||||
bool TArticolo_pack::set_conai(TCONAI_class cc, const TString& scat, const real& weight)
|
bool TArticolo_pack::set_conai(const TString& scat, const real& weight)
|
||||||
{
|
{
|
||||||
const bool ok = conai_configured_class(cc) && scat.full(); // && !weight.is_zero();
|
const bool ok = scat.full(); // && !weight.is_zero();
|
||||||
if (ok)
|
|
||||||
|
if (ok)
|
||||||
{
|
{
|
||||||
_conai_scat[cc] = scat;
|
_conai_scat.add(scat);
|
||||||
_conai_peso[cc] = weight;
|
_conai_peso.add(weight);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
_conai_scat[cc] = EMPTY_STRING;
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TArticolo_pack::reset_conai()
|
||||||
|
{
|
||||||
|
_conai_scat.destroy();
|
||||||
|
_conai_peso.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
TArticolo_pack::TArticolo_pack(const TRectype& anamag) : TRectype(anamag)
|
TArticolo_pack::TArticolo_pack(const TRectype& anamag) : TRectype(anamag)
|
||||||
{
|
{
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
TArticolo_conai ac(get(ANAMAG_CODART));
|
||||||
set_conai(cc, EMPTY_STRING, ZERO);
|
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
reset_conai();
|
||||||
|
for (int i = 0; i < FR_CMAX; i++)
|
||||||
{
|
{
|
||||||
const TFieldref anamag_sotcat(conai_sottocat_name(cc, LF_ANAMAG), LF_ANAMAG);
|
const TString4 sotcat = ac.get_scat(i); // Usually CA40
|
||||||
const TFieldref anamag_weight(conai_peso_name(cc, LF_ANAMAG), LF_ANAMAG);
|
const real peso = ac.get_peso(i); // Should be > 0
|
||||||
|
|
||||||
const TString4 sotcat = anamag_sotcat.read(anamag); // Usually CA40
|
set_conai(sotcat, peso); // Validates all parameters
|
||||||
const real peso = anamag_weight.read(anamag); // Should be > 0
|
|
||||||
|
|
||||||
set_conai(cc, sotcat, peso); // Validates all parameters
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,44 +124,43 @@ int TCache_art::get_extra_info(const char* key, TArticolo_pack& art)
|
|||||||
<< "FROM Articles_environmentTax\n"
|
<< "FROM Articles_environmentTax\n"
|
||||||
<< "WHERE Articles_environmentTax.ArticleCode=" << article_code << ';';
|
<< "WHERE Articles_environmentTax.ArticleCode=" << article_code << ';';
|
||||||
TODBC_recordset envtax(qry);
|
TODBC_recordset envtax(qry);
|
||||||
for (bool et = envtax.move_first(); et; et = envtax.move_next())
|
|
||||||
|
art.reset_conai();
|
||||||
|
for (bool et = envtax.move_first(); et; et = envtax.move_next())
|
||||||
{
|
{
|
||||||
const TString& sc = envtax.get(0u).as_string();
|
const TString& sc = envtax.get(0u).as_string();
|
||||||
const real wkg = envtax.get(1).as_real();
|
const real wkg = envtax.get(1).as_real();
|
||||||
const TCONAI_class cc = conai_str2class(sc);
|
if (art.set_conai(sc, wkg))
|
||||||
if (cc == TCONAI_class::CONAI_NONE)
|
|
||||||
{
|
|
||||||
TString err = "ATTENZIONE!! Classe conai errata per articolo "; err << article_code;
|
|
||||||
warning_box(err);
|
|
||||||
}
|
|
||||||
if (art.set_conai(cc, sc, wkg))
|
|
||||||
info = 2;
|
info = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (info == 2) // Ho trovato dati sul CONAI
|
if (info == 2) // Ho trovato dati sul CONAI
|
||||||
{
|
{
|
||||||
bool update = false;
|
TRecord_array conart(article_code, LF_CONART);
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
TRectype conrec(LF_CONART);
|
||||||
{
|
int r = 1;
|
||||||
const TFieldref anamag_sotcat(conai_sottocat_name(cc, LF_ANAMAG), LF_ANAMAG);
|
|
||||||
const TFieldref anamag_weight(conai_peso_name(cc, LF_ANAMAG), LF_ANAMAG);
|
conart.destroy_rows();
|
||||||
const TString4 sotcat = anamag_sotcat.read(art);
|
// Infine salvo i nuovi dati in conart
|
||||||
const TString16 peso = anamag_weight.read(art); // Faccio i confronti su stringa per evitare decimali impazziti
|
for (int i = 0; i < FR_CMAX; i++)
|
||||||
if (sotcat != art.conai_subclass(cc) || peso != art.conai_weight(cc).string())
|
{
|
||||||
{
|
const TString4 sotcat = art.conai_subclass(i);
|
||||||
anamag_sotcat.write(art.conai_subclass(cc), art);
|
const real peso = art.conai_weight(i); // Faccio i confronti su stringa per evitare decimali impazziti
|
||||||
anamag_weight.write(art.conai_weight(cc).string(), art);
|
|
||||||
update = true;
|
if (sotcat.full())
|
||||||
}
|
{
|
||||||
}
|
conrec.zero();
|
||||||
if (update) // Aggiorno anagrafica se necessario
|
conrec.put(CONART_CODART, article_code);
|
||||||
{
|
conrec.put(CONART_NRIGA, r++);
|
||||||
_anamag.curr() = art;
|
conrec.put(CONART_CATEGORIA, sotcat.left(2));
|
||||||
test_rewrite(_anamag);
|
conrec.put(CONART_SOTTOCAT, sotcat.mid(2));
|
||||||
}
|
conrec.put(CONART_PESO, peso);
|
||||||
}
|
conart.add_row(conrec);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
conart.write(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,25 +179,27 @@ TObject* TCache_art::key2obj(const char* key)
|
|||||||
const TString& desc = get_str("ArtDesc");
|
const TString& desc = get_str("ArtDesc");
|
||||||
_anamag.put(ANAMAG_DESCR, desc);
|
_anamag.put(ANAMAG_DESCR, desc);
|
||||||
|
|
||||||
TString4 conai_class = get_str("SubclassCode");
|
// Basic CONAI info
|
||||||
if (conai_class.blank())
|
|
||||||
{
|
|
||||||
conai_class = get_str("ClassCode");
|
|
||||||
if (conai_class.full())
|
|
||||||
conai_class << 99;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Basic CONAI info
|
{
|
||||||
const TCONAI_class cc = conai_str2class(conai_class);
|
TFast_isamfile conart(LF_CONART);
|
||||||
if (conai_configured_class(cc))
|
TString4 sotcat = get_str("SubclassCode");
|
||||||
{
|
|
||||||
const TFieldref fld_sc(conai_sottocat_name(cc, LF_ANAMAG), LF_ANAMAG);
|
|
||||||
fld_sc.write(conai_class, _anamag.curr());
|
|
||||||
|
|
||||||
const TFieldref fld_wt(conai_peso_name(cc, LF_ANAMAG), LF_ANAMAG);
|
if (sotcat.blank())
|
||||||
fld_wt.write(get_real_str("WeightETUnit"), _anamag.curr());
|
{
|
||||||
}
|
sotcat = get_str("ClassCode");
|
||||||
|
if (sotcat.full())
|
||||||
|
sotcat << 99;
|
||||||
|
}
|
||||||
|
|
||||||
|
conart.zero();
|
||||||
|
conart.put(CONART_CODART, key);
|
||||||
|
conart.put(CONART_NRIGA, 1);
|
||||||
|
conart.put(CONART_CATEGORIA, sotcat.left(2));
|
||||||
|
conart.put(CONART_SOTTOCAT, sotcat.mid(2));
|
||||||
|
conart.put(CONART_PESO, get_real_str("WeightETUnit"));
|
||||||
|
conart.write_rewrite(true);
|
||||||
|
}
|
||||||
const long gruconto = get_long("AccountCode");
|
const long gruconto = get_long("AccountCode");
|
||||||
const long sottoconto = get_long("AccountSubCode");
|
const long sottoconto = get_long("AccountSubCode");
|
||||||
_anamag.put(ANAMAG_GRUPPOV, gruconto / 1000);
|
_anamag.put(ANAMAG_GRUPPOV, gruconto / 1000);
|
||||||
@ -827,27 +832,28 @@ bool TPack_ddt::trasferisci()
|
|||||||
if (conai_scheme == 1)
|
if (conai_scheme == 1)
|
||||||
{
|
{
|
||||||
// La sottocategoria della bolla prevale su quella anagrafica
|
// La sottocategoria della bolla prevale su quella anagrafica
|
||||||
|
int i = 0;
|
||||||
if (conai_subclass.len() == 4)
|
if (conai_subclass.len() == 4)
|
||||||
{
|
{
|
||||||
rdoc.put(conai_sottocat_name(ct, LF_RIGHEDOC), conai_subclass);
|
rdoc.put(conai_sottocat_name(1), conai_subclass);
|
||||||
peso_imballo_ddt = real(get_real_str("WeightETUnit"));
|
peso_imballo_ddt = real(get_real_str("WeightETUnit"));
|
||||||
if (peso_imballo_ddt.is_zero())
|
if (peso_imballo_ddt.is_zero())
|
||||||
peso_imballo_ddt = peso_imballo_anamag;
|
peso_imballo_ddt = peso_imballo_anamag;
|
||||||
}
|
}
|
||||||
if (conai_subclass.blank())
|
if (conai_subclass.blank())
|
||||||
{
|
{
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
for (int i = 1; i < FR_CMAX; i++)
|
||||||
{
|
{
|
||||||
const TString& cs = art.conai_subclass(cc); // Codice sottocategoria su ANAMAG
|
const TString& cs = art.conai_subclass(i - 1); // Codice sottocategoria su ANAMAG
|
||||||
|
|
||||||
if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
|
if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
|
||||||
{
|
{
|
||||||
const real& weight = art.conai_weight(cc); // Peso imballo su ANAMAG
|
const real& weight = art.conai_weight(i - 1); // Peso imballo su ANAMAG
|
||||||
|
|
||||||
rdoc.put(conai_sottocat_name(cc, LF_RIGHEDOC), cs);
|
rdoc.put(conai_sottocat_name(i + 1), cs);
|
||||||
rdoc.put(conai_peso_name(cc, LF_RIGHEDOC), weight); // ex QTAGG1
|
rdoc.put(conai_peso_name(i + 1), weight); // ex QTAGG1
|
||||||
rdoc.put(conai_esenzione_name(cc, LF_RIGHEDOC),
|
rdoc.put(conai_esenzione_name(conai_str2class(cs.left(2)), LF_RIGHEDOC),
|
||||||
cfven.get(conai_esenzione_name(cc, LF_CFVEN))); // ex QTAGG2
|
cfven.get(conai_esenzione_name(conai_str2class(cs.left(2)), LF_CFVEN))); // ex QTAGG2
|
||||||
peso_imballo_anamag += weight;
|
peso_imballo_anamag += weight;
|
||||||
pesi_anamag++;
|
pesi_anamag++;
|
||||||
}
|
}
|
||||||
@ -856,18 +862,18 @@ bool TPack_ddt::trasferisci()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
for (int i = 1; i < FR_CMAX; i++)
|
||||||
{
|
{
|
||||||
const TString& cs = art.conai_subclass(cc); // Codice sottocategoria su ANAMAG
|
const TString& cs = art.conai_subclass(i - 1); // Codice sottocategoria su ANAMAG
|
||||||
|
|
||||||
if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
|
if (cs.full()) // la presenza della sottoclasse implica anche un peso positivo
|
||||||
{
|
{
|
||||||
const real& weight = art.conai_weight(cc); // Peso imballo su ANAMAG
|
const real& weight = art.conai_weight(i - 1); // Peso imballo su ANAMAG
|
||||||
|
|
||||||
rdoc.put(conai_sottocat_name(cc, LF_RIGHEDOC), cs);
|
rdoc.put(conai_sottocat_name(i + 1), cs);
|
||||||
rdoc.put(conai_peso_name(cc, LF_RIGHEDOC), weight); // ex QTAGG1
|
rdoc.put(conai_peso_name(i + 1), weight); // ex QTAGG1
|
||||||
rdoc.put(conai_esenzione_name(cc, LF_RIGHEDOC),
|
rdoc.put(conai_esenzione_name(conai_str2class(cs.left(2)), LF_RIGHEDOC),
|
||||||
cfven.get(conai_esenzione_name(cc, LF_CFVEN))); // ex QTAGG2
|
cfven.get(conai_esenzione_name(conai_str2class(cs.left(2)), LF_CFVEN))); // ex QTAGG2
|
||||||
peso_imballo_anamag += weight;
|
peso_imballo_anamag += weight;
|
||||||
pesi_anamag++;
|
pesi_anamag++;
|
||||||
}
|
}
|
||||||
@ -875,14 +881,13 @@ bool TPack_ddt::trasferisci()
|
|||||||
// La sottocategoria della bolla prevale su quella anagrafica impostata sopra
|
// La sottocategoria della bolla prevale su quella anagrafica impostata sopra
|
||||||
if (conai_subclass.len() == 4)
|
if (conai_subclass.len() == 4)
|
||||||
{
|
{
|
||||||
rdoc.put(conai_sottocat_name(ct, LF_RIGHEDOC), conai_subclass);
|
rdoc.put(conai_sottocat_name(1), conai_subclass);
|
||||||
peso_imballo_ddt = real(get_real_str("WeightETUnit"));
|
peso_imballo_ddt = real(get_real_str("WeightETUnit"));
|
||||||
if (peso_imballo_ddt.is_zero())
|
if (peso_imballo_ddt.is_zero())
|
||||||
peso_imballo_ddt = peso_imballo_anamag;
|
peso_imballo_ddt = peso_imballo_anamag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// if (pesi_anamag > 1) // Con imballi composti da vari materiali devo riportare o riproporzionare
|
// if (pesi_anamag > 1) // Con imballi composti da vari materiali devo riportare o riproporzionare
|
||||||
// {
|
// {
|
||||||
// Arrotondo la eventuale differenza di pesi al grammo
|
// Arrotondo la eventuale differenza di pesi al grammo
|
||||||
@ -891,19 +896,20 @@ bool TPack_ddt::trasferisci()
|
|||||||
if (!diff.is_zero() && !peso_imballo_ddt.is_zero())
|
if (!diff.is_zero() && !peso_imballo_ddt.is_zero())
|
||||||
{
|
{
|
||||||
TGeneric_distrib d(peso_imballo_ddt, 3);
|
TGeneric_distrib d(peso_imballo_ddt, 3);
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
|
||||||
if (rdoc.get(conai_sottocat_name(cc, LF_RIGHEDOC)).full())
|
for (int i = 1; i < FR_CMAX; i++)
|
||||||
d.add(art.conai_weight(cc));
|
if (rdoc.get(conai_sottocat_name(i + 1)).full())
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
d.add(art.conai_weight(i - 1));
|
||||||
if (rdoc.get(conai_sottocat_name(cc, LF_RIGHEDOC)).full())
|
for (int i = 1; i < FR_CMAX; i++)
|
||||||
rdoc.put(conai_peso_name(cc), d.get());
|
if (rdoc.get(conai_sottocat_name(i + 1)).full())
|
||||||
|
rdoc.put(conai_peso_name(i - 1), d.get());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Il peso in bolla coincide con quello in anagrafica: devo riportarli
|
// Il peso in bolla coincide con quello in anagrafica: devo riportarli
|
||||||
FOR_EACH_CONFIGURED_CONAI_CLASS(cc)
|
for (int i = 0; i < FR_CMAX; i++)
|
||||||
if (rdoc.get(conai_sottocat_name(cc, LF_RIGHEDOC)).full())
|
if (rdoc.get(conai_sottocat_name(i + 1)).full())
|
||||||
rdoc.put(conai_peso_name(cc), art.conai_weight(cc));
|
rdoc.put(conai_peso_name(i + 1), art.conai_weight(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
rdoc.put("FAMILY", get_str("FamilyCode")); // Uso campo virtuale RG1:FAMILY
|
rdoc.put("FAMILY", get_str("FamilyCode")); // Uso campo virtuale RG1:FAMILY
|
||||||
|
@ -255,7 +255,7 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(const TDocumento& doc, TDichi
|
|||||||
//prende il cliente ed i suoi dati
|
//prende il cliente ed i suoi dati
|
||||||
const TCli_for& clifo = doc.clifor();
|
const TCli_for& clifo = doc.clifor();
|
||||||
TString80 clifo_paiv;
|
TString80 clifo_paiv;
|
||||||
//cerca la percentuale di esenzione conai sul cliente (controllo)
|
//cerca la percentuale di esenzione conai sul cliente (controllo
|
||||||
const real cfven_perc_conai = clifo_conai(clifo, conai_specie, clifo_paiv);
|
const real cfven_perc_conai = clifo_conai(clifo, conai_specie, clifo_paiv);
|
||||||
|
|
||||||
const int nrighe = doc.rows();
|
const int nrighe = doc.rows();
|
||||||
@ -563,13 +563,19 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
|
|||||||
//..le quantita' etc) e le righe generate da CONAI (per avere i prezzi)
|
//..le quantita' etc) e le righe generate da CONAI (per avere i prezzi)
|
||||||
|
|
||||||
TString16 scat_fieldname = conai_sottocat_name(conai_specie);
|
TString16 scat_fieldname = conai_sottocat_name(conai_specie);
|
||||||
|
|
||||||
if (scat_fieldname.blank())
|
if (scat_fieldname.blank())
|
||||||
return;
|
return;
|
||||||
scat_fieldname.insert("RG1:");
|
scat_fieldname.insert("RG1:");
|
||||||
|
TString16 peso_fieldname = conai_peso_name(conai_specie);
|
||||||
|
|
||||||
|
if (peso_fieldname.blank())
|
||||||
|
return;
|
||||||
|
peso_fieldname.insert("RG1:");
|
||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RDOC";
|
query << "USE RDOC";
|
||||||
query << "\nSELECT BETWEEN(33.DATADOC,#DADATA,#ADATA)&&BETWEEN(33.TIPODOC,#TIPODOC,#TIPODOC)&&(" << scat_fieldname <<"!=\"\")";
|
query << "\nSELECT BETWEEN(33.DATADOC,#DADATA,#ADATA)&&BETWEEN(33.TIPODOC,#TIPODOC,#TIPODOC)&&((" << scat_fieldname <<"!=\"\")||(" << peso_fieldname << "!=0.00))";
|
||||||
query << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC";
|
query << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC";
|
||||||
query << "\nFROM PROVV=D ANNO=#ANNO CODNUM=#CODNUM";
|
query << "\nFROM PROVV=D ANNO=#ANNO CODNUM=#CODNUM";
|
||||||
query << "\nTO PROVV=D ANNO=#ANNO CODNUM=#CODNUM";
|
query << "\nTO PROVV=D ANNO=#ANNO CODNUM=#CODNUM";
|
||||||
@ -583,6 +589,8 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
|
|||||||
rdoc.set_var("#ADATA", datafin);
|
rdoc.set_var("#ADATA", datafin);
|
||||||
//rdoc.set_var("#CODART", codart);
|
//rdoc.set_var("#CODART", codart);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//creazione del csv recordset che verra' riempito dai record del recordset rdoc
|
//creazione del csv recordset che verra' riempito dai record del recordset rdoc
|
||||||
TDichiarazione_CONAI_csv_recordset* csv = new TDichiarazione_CONAI_csv_recordset;
|
TDichiarazione_CONAI_csv_recordset* csv = new TDichiarazione_CONAI_csv_recordset;
|
||||||
|
|
||||||
@ -611,6 +619,7 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
|
|||||||
{
|
{
|
||||||
if (!pi.add_status())
|
if (!pi.add_status())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
const long ndoc = rdoc.get(RDOC_NDOC).as_int();
|
const long ndoc = rdoc.get(RDOC_NDOC).as_int();
|
||||||
if (ndoc != last_ndoc)
|
if (ndoc != last_ndoc)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user