Patch level : 12.0 980

Files correlati     : f90.exe
Commento            :
- Aggiunto controllo per partite iva che iniziano per 8 o 9 per generare correttamente l'IDFISCALE.
- Corretta esportazione acquisti senza cartaceo.
This commit is contained in:
Simone Palacino 2020-07-22 10:16:09 +02:00
parent cff1fde628
commit 4848a8d1c6
2 changed files with 19 additions and 14 deletions

View File

@ -17,6 +17,8 @@
#define INI_CATDOC "CATDOC"
#define INI_ANNESSI "ANNCAT"
#define IS_ITALIANO(statopaiv) ((statopaiv) == "IT" || !(statopaiv).full())
const TDate today(TODAY);
struct annesso_t
@ -339,7 +341,6 @@ class TEstrazione : public TObject
* il nuovo stato sul db.
*/
bool update_drd_stato_estr() const;
static const char* categoria_doc();
static const char* caus_sos(const TLocalisamfile& mov, TipoIVA iva);
static void check_annessi(movimento_t& mov_i, int numreg); // Controllo se ci sono tutti gli annessi obbligatori.
// Controllo se esistono tutti gli annessi cartacei obbligatori e se ci sono annessi reverse charge li genero.

View File

@ -18,14 +18,9 @@
statistics _stats = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// TEstrazione
////////////////////////////////////////////////////////
const char* TEstrazione::categoria_doc()
{
return ""; // todo:
}
///////////////////////////////////////////////////////////////////////////////
const char* TEstrazione::caus_sos(const TLocalisamfile& mov, const TipoIVA iva)
{
@ -220,14 +215,22 @@ void TEstrazione::fill_id(TLocalisamfile& clifo, TString& statopaiv, TString& id
statopaiv = clifo.get(CLI_STATOPAIV);
paiv = clifo.get(CLI_PAIV);
codfis = clifo.get(CLI_COFI);
// Se ho un codice fiscale che inizia per 8 o 9 e' come un privato e devo considerarlo solo come codice fiscale senza partita IVA.
if (paiv.full() && (paiv[0] == '8' || paiv[0] == '9') ||
codfis.full() && (codfis[0] == '8' || codfis[0] == '9'))
paiv.cut(0);
if (IS_ITALIANO(statopaiv))
{
// Se ho un codice fiscale che inizia per 8 o 9 e' come un privato e devo considerarlo solo come codice fiscale senza partita IVA.
if (codfis.full() && codfis.len() == 11 && (codfis[0] == '8' || codfis[0] == '9'))
paiv.cut(0);
else if (paiv.full() && paiv.len() == 11 && (paiv[0] == '8' || paiv[0] == '9'))
{
codfis = paiv;
paiv.cut(0);
}
}
if (paiv == "0")
paiv.cut(0);
if (statopaiv == "IT" || statopaiv.empty())
if (IS_ITALIANO(statopaiv))
{
idfisc << "IT";
if (paiv.full()) // Se non ho la partita IVA e' privato quindi non metto niente solo cod. ISO
@ -256,7 +259,8 @@ bool TEstrazione::is_doc_xml(const TLocalisamfile& mov)
clifo.put(CLI_TIPOCF, tipocf);
clifo.put(CLI_CODCF, codcf);
clifo.read();
return (clifo.get(CLI_STATOPAIV).empty() || clifo.get(CLI_STATOPAIV) == "IT")
const TString& statopaiv = clifo.get(CLI_STATOPAIV);
return (IS_ITALIANO(statopaiv))
&& clifo.get(CLI_COMCF) != "B513"; // Campione d'Italia
}