Merge branch 'R12.00.1136' of http://10.65.20.33/sirio/CAMPO/campo into R12.00.1136

This commit is contained in:
New_Macchina_Compilatrice 2022-12-12 14:57:09 +01:00
commit 80707440f4
3 changed files with 37 additions and 42 deletions

View File

@ -75,28 +75,22 @@ int TEstrai_mask::estrai()
for (bool ok = mov.move_first(); progr->add_status() && ok; ok = mov.move_next())
{
TToken_string elab_f9(mov.get_string(MOV_ELABF9), ';'); // Stringa del campo elaborazione f9 nel file mov
const bool escluso = (elab_f9.items() == 3 && elab_f9.get_bool(2));
bool escluso = (elab_f9.items() == 3 && elab_f9.get_bool(2));
const TCausale & caus = cached_causale(mov.get_string(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year());
const bool stampato = mov.get_bool(MOV_REGST);
const TRegistro& reg = caus.reg();
const TipoIVA& iva = reg.iva();
TString numdoc = mov.get_string(MOV_NUMDOCEXT);
long nreg = mov.get_long(MOV_NUMREG);
if (nreg == 207)
int here = 0;
if (escluso)
int here = 0;
if (caus.escludi2archiviazione())
escluso = true;
if (numdoc.blank())
numdoc = mov.get_string(MOV_NUMDOC);
// Se definitivo controllo il flag di stampato REGST
if ((flagpro || stampato) && numdoc.full() && iva == tipo)
{
if (numdoc.blank())
int here = 0;
// Creo il movimento da inserire e lo inserisco
_estrazione->add_mov(new TMovimento_estr(mov, tipo, escluso));
++count;
@ -120,14 +114,14 @@ int TEstrai_mask::estrai()
{
msg << "Movimenti estratti : " << (int)_stats.fa_estr << "\n";
msg << "Movimenti in errore : " << (int)_stats.fa_err << "\n";
msg << "Movimenti saltati : " << (int)_stats.fa_skip;
msg << "Movimenti saltati : " << (int)_stats.fa_skip;
//msg << "Movimenti senza cat. doc.: " << (int)_stats.fa_nocatdoc;
}
else
{
msg << "Movimenti saltati poiche' cartacei: " << (int)_stats.fv_cart_skip << "\n";
msg << "Movimenti in errore: " << (int)_stats.fv_err << "\n";
msg << "Movimenti estratti: " << (int)_stats.fv_estr << "\n";
msg << "Movimenti estratt : " << (int)_stats.fv_estr << "\n";
msg << "Cartacei saltati : " << (int)_stats.fv_cart_skip << "\n";
msg << "Movimenti in errore : " << (int)_stats.fv_err;
//msg << "Movimenti senza cat. doc.: " << (int)_stats.fv_nocatdoc;
}
message_box(msg);

View File

@ -306,8 +306,9 @@ enum err_mov
mov_no_cartaceo, // Movimento cartaceo che non ha bisogno di essere estratto.
mov_pura_iva, // Movimento di sola IVA (integrazione Rev. Charge)
mov_no_filecart, // Il documento cartaceo non ha associato un file, o questo non e' stato trovato.
mov_annesso_nexist, // Un annesso obbligatorio e' mancante.
mov_nocat_butok // Non è stata trovata nessuna categoria documentale per il seguente documento. Verra usato il TIPODOCSDI presente nel FPPRO
mov_annesso_nexist, // Un annesso obbligatorio e' mancante.
mov_nocat_butok, // Non è stata trovata nessuna categoria documentale per il seguente documento. Verra usato il TIPODOCSDI presente nel FPPRO
mov_no_sdi // Nessuno tipo doc SDI abbinato
};
class TMovimento_estr : public TObject // aggiungere metodi per TArray

View File

@ -63,6 +63,8 @@ const char* TMovimento_estr::err_mov2name(const err_mov descr_estr)
return "Un annesso obbligatorio e' mancante.";
case mov_nocat_butok:
return "OK (Nessuna categoria documentale trovata ma l'abbinamento è riuscito)";
case mov_no_sdi:
return "Tipo documento SDI non identificato";
default: return "";
}
}
@ -884,11 +886,6 @@ const char* TEstrazione::diagnostica_mov()
{
const long numreg = mov_i.numreg();
if (numreg == 210) {
int here = 0;
}
const TRectype & mov =cache().get(LF_MOV, numreg);
mov_i.set_cartaceo(!is_doc_xml(mov));
@ -983,12 +980,12 @@ const char* TEstrazione::diagnostica_mov()
}
else if (tipo == iva_vendite)
{
// Controlli per le fatture di vendita
// Controlli per le fatture di vendita (AGGIORNARE STATS QUI)
TProgress_monitor bar(_movs.items(), "Controllo stato movimenti di vendita");
FOR_EACH_ARRAY_ITEM(_movs, r, obj)
{
if (!bar.add_status())
if (bar.add_status())
{
TMovimento_estr & mov_i = (TMovimento_estr &) *obj;
@ -1003,14 +1000,16 @@ const char* TEstrazione::diagnostica_mov()
*/
if (!mov_i.err() && mov_i.estratto())
{
// mov_i.set_cartaceo(!is_doc_xml(mov)); ci deve essere ?
mov_i.set_cartaceo(!is_doc_xml(mov)); // ci deve essere ?
unsigned short skip = 0;
if (!_has_cartacei && mov_i.cartaceo()) skip |= 0x1;
else
if (pura_iva(mov)) skip |= 0x2;
else if (mov_i.datadoc().empty() || mov_i.numdoc().empty()) skip |= 0x4;
if (_has_cartacei && mov_i.cartaceo())
skip |= 0x1;
else if (pura_iva(mov))
skip |= 0x2;
else if (mov_i.datadoc().empty() || mov_i.numdoc().empty())
skip |= 0x4;
if(skip)
{
@ -1025,15 +1024,6 @@ const char* TEstrazione::diagnostica_mov()
default: break;
}
}
/*else if(!mov_i.cartaceo && _has_checkvend && !check_documento_vendita(mov, exist_doc))
{
mov_i.err = true;
mov_i.estratto = false;
mov_i.descr_err = !exist_doc ?
"Il movimento non ha un documento generatore. (Escludere? o Rimuovere flag controllo vendite)"
: "Non e' stato trovato il documento elettronico nel database delle F.E. (Escludere? o Rimuovere flag controllo vendite)";
mov_i.descr_estr = !exist_doc ? TMovimento_estr::no_doc : TMovimento_estr::notfound_elet;
}*/
else
{
TClasse_doc* cd = categorie_doc().mov2cat(mov_i.numreg());
@ -1191,7 +1181,8 @@ bool TEstrazione::estrazione_iva(bool escluso)
const TRectype& cli = cache().get(LF_CLIFO, key);
const char tipodoc = _head.tipo_doc;
const TString& name_registro = TRegistro(TCausale(mov.get(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year()).reg()).name();
const TCausale & caus = cached_causale(mov.get(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year());
const TString& name_registro = caus.reg().name();;
fill_id(cli, statopaiv, idfisc, paiv, codfis);
TDate datadoc = mov.get_date(MOV_DATADOC);
TDate datareg = mov.get_date(MOV_DATAREG);
@ -1219,21 +1210,27 @@ bool TEstrazione::estrazione_iva(bool escluso)
if (reg.iva() == iva_vendite)
{
int anno = mov.get_int(MOV_DANNO);
if (anno > 0)
int anno = mov.get_int(MOV_DANNO);
TString tipodocsdi;
if (anno > 0)
{
const char provv = mov.get(MOV_DPROVV)[0];
const TString& codnum = mov.get(MOV_DCODNUM);
const long ndoc = mov.get_long(MOV_DNDOC);
TDocumento doc(provv, anno, codnum, ndoc);
iva_query.add(IVA_CAUSSOS, tipo_doc_sdi(doc) , 6);
iva_query.add(IVA_CAUSSOS, tipo_doc_sdi(doc), 6);
}
else
iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6);
tipodocsdi = caus.tipodocsdi();
if (tipodocsdi.blank())
tipodocsdi = mov_i.catdoc(categorie_doc())->caus_sost();
if (tipodocsdi.full())
iva_query.add(IVA_CAUSSOS, tipodocsdi, 6);
}
//
else
{
TToken_string key(mov.get((MOV_KEYFPPRO)), ';');
@ -1335,6 +1332,9 @@ bool TEstrazione::estrazione_iva(bool escluso)
}
TString sql;
//DA MIGLIORARE IL LOG DI ERRORE
long a = mov_i.numreg();
bool ok = iva_query.get(sql);
if (ok)