Patch level : 12.0 456
Files correlati : tf Commento : Ottimizzata gestione bolle doganali git-svn-id: svn://10.65.10.50/branches/R_10_00@24110 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
49c150e489
commit
30069e6b4d
@ -1117,17 +1117,19 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
|||||||
static TString checkClifo; checkClifo.cut(0);
|
static TString checkClifo; checkClifo.cut(0);
|
||||||
|
|
||||||
// Per le bolle doganali devo fare sempre questo giro
|
// Per le bolle doganali devo fare sempre questo giro
|
||||||
bool foundBolla = false;
|
bool foundBolla = strcmp(strarr->get(_codnum),"BD") == 0, foundBollaCli = false;
|
||||||
if(strcmp(strarr->get(_codnum),"BD") == 0)
|
static TString cfbolladog;
|
||||||
|
if(foundBolla)
|
||||||
{
|
{
|
||||||
TString cfbolladog = cache().get(LF_MOV, strarr->get_long(_numero), "CFBOLLADOG");
|
// Attenzione! Se è una riga inserita a mano dall'utente prendo lo stesso il fornitore della riga!
|
||||||
|
cfbolladog = strarr->get_int(_numero) < MOV_CUSTOM ? cache().get(LF_MOV, strarr->get_long(_numero), "CFBOLLADOG") : strarr->get(_codcf);
|
||||||
if(!cfbolladog.blank())
|
if(!cfbolladog.blank())
|
||||||
{
|
{
|
||||||
foundBolla = true;
|
foundBollaCli = true;
|
||||||
checkClifo << "F" << cfbolladog;
|
checkClifo << "F" << cfbolladog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!foundBolla)
|
if(!foundBollaCli)
|
||||||
{
|
{
|
||||||
static TString tempOcfpi; tempOcfpi.cut(0) << strarr->get(_occas);
|
static TString tempOcfpi; tempOcfpi.cut(0) << strarr->get(_occas);
|
||||||
if(tempOcfpi.blank())
|
if(tempOcfpi.blank())
|
||||||
@ -1154,16 +1156,9 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
|||||||
|
|
||||||
// Con l'uscita di questo programma è stato messo un collegamento in prima nota
|
// Con l'uscita di questo programma è stato messo un collegamento in prima nota
|
||||||
// per il fornitore a cui è riferita la bolla doganale
|
// per il fornitore a cui è riferita la bolla doganale
|
||||||
if(strcmp(strarr->get(_codnum),"BD") == 0)
|
if(foundBollaCli)
|
||||||
{
|
{
|
||||||
TString codcf;
|
r_cedeprest = getCli("F", cfbolladog, "");
|
||||||
// Attenzione! Se è una riga inserita a mano dall'utente prendo lo stesso il fornitore della riga!
|
|
||||||
int movimento = strarr->get_int(_numero);
|
|
||||||
if(movimento >= MOV_CUSTOM)
|
|
||||||
codcf << strarr->get(_codcf);
|
|
||||||
else
|
|
||||||
codcf = cache().get(LF_MOV, movimento, "CFBOLLADOG");
|
|
||||||
r_cedeprest = getCli("F", codcf, "");
|
|
||||||
cedeprest.init(r_cedeprest);
|
cedeprest.init(r_cedeprest);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1182,35 +1177,32 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
|||||||
tff0400f.set("P4_FISCIVACOD", _ditta.partita_IVA());
|
tff0400f.set("P4_FISCIVACOD", _ditta.partita_IVA());
|
||||||
tff0400f.set("P4_CODFISC", _ditta.codice_fiscale());
|
tff0400f.set("P4_CODFISC", _ditta.codice_fiscale());
|
||||||
}
|
}
|
||||||
else // Fattura normale
|
else // Fattura normale, lascio più volte la funzione con il nome del campo per leggibilità
|
||||||
{
|
{
|
||||||
if (cedeprest.stato_partita_IVA().full() && cedeprest.partita_IVA().full())
|
// Ovviamente tutte le bolle doganali fatte prima del rilascio
|
||||||
|
// non avranno questo campo compilato e quindi dovrò passare la partita IVA "OO99999999999"
|
||||||
|
// Controllo anche di essere in una data entro il 31/12/2017, dopo tale data sto ragionamento non è valido
|
||||||
|
if(foundBolla && !foundBollaCli && bd2017())
|
||||||
|
{
|
||||||
|
tff0400f.set("P4_FISCIVAPAESE", "OO");
|
||||||
|
tff0400f.set("P4_FISCIVACOD", "99999999999");
|
||||||
|
}
|
||||||
|
else if (cedeprest.stato_partita_IVA().full() && cedeprest.partita_IVA().full())
|
||||||
{
|
{
|
||||||
tff0400f.set("P4_FISCIVAPAESE", cedeprest.stato_partita_IVA());
|
tff0400f.set("P4_FISCIVAPAESE", cedeprest.stato_partita_IVA());
|
||||||
tff0400f.set("P4_FISCIVACOD", cedeprest.partita_IVA());
|
tff0400f.set("P4_FISCIVACOD", cedeprest.partita_IVA());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Ovviamente tutte le bolle doganali fatte prima del rilascio
|
// Se è un estero non CEE prendo nella partita IVA metto l'identificativo fiscale
|
||||||
// non avranno questo campo compilato e quindi dovrò passare la partita IVA "OO99999999999"
|
if(cedeprest.estero_non_CEE())
|
||||||
// Controllo anche di essere in una data entro il 31/12/2017, dopo tale data sto ragionamento non è valido
|
|
||||||
if(strcmp(strarr->get(_codnum),"BD") == 0 && bd2017())
|
|
||||||
{
|
{
|
||||||
tff0400f.set("P4_FISCIVAPAESE", "OO");
|
tff0400f.set("P4_FISCIVAPAESE", cedeprest.stato_partita_IVA());
|
||||||
tff0400f.set("P4_FISCIVACOD", "99999999999");
|
tff0400f.set("P4_FISCIVACOD", cedeprest.codice_fiscale());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Se è un estero non CEE prendo nella partita IVA metto l'identificativo fiscale
|
tff0400f.set("P4_CODFISC", cedeprest.codice_fiscale());
|
||||||
if(cedeprest.estero_non_CEE())
|
|
||||||
{
|
|
||||||
tff0400f.set("P4_FISCIVAPAESE", cedeprest.stato_partita_IVA());
|
|
||||||
tff0400f.set("P4_FISCIVACOD", cedeprest.codice_fiscale());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tff0400f.set("P4_CODFISC", cedeprest.codice_fiscale());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1220,8 +1212,12 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
|||||||
char tipo = r_cedeprest.get_char(CLI_ALLEG);
|
char tipo = r_cedeprest.get_char(CLI_ALLEG);
|
||||||
bool rsoc = cedeprest.giuridica() || (tipo == '3' || tipo == '7' || tipo == '8' || tipo == '\0');
|
bool rsoc = cedeprest.giuridica() || (tipo == '3' || tipo == '7' || tipo == '8' || tipo == '\0');
|
||||||
bool privato = tipo == '6';
|
bool privato = tipo == '6';
|
||||||
|
|
||||||
if (!rsoc)
|
if(foundBolla && !foundBollaCli)
|
||||||
|
{
|
||||||
|
tff0400f.set("P4_ANADENOM", "Dato Assente");
|
||||||
|
}
|
||||||
|
else if (!rsoc)
|
||||||
{
|
{
|
||||||
// Bisogna fare un ragionamento più complesso, esistono ancora record salvati con Nome e Cognome nella prima parte
|
// Bisogna fare un ragionamento più complesso, esistono ancora record salvati con Nome e Cognome nella prima parte
|
||||||
// e non divisi come si fa adesso quindi farò così:
|
// e non divisi come si fa adesso quindi farò così:
|
||||||
@ -1277,7 +1273,10 @@ bool TTrFa_app::tff0400(TSheet_field& sheet)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ricontrollo!!!! rsoc potrebbe essere cambiato sopra
|
// Ricontrollo!!!! rsoc potrebbe essere cambiato sopra
|
||||||
if(rsoc)
|
// Devo trovare rsoc e:
|
||||||
|
// 1 - Non trovo la bolla
|
||||||
|
// 2 - Trovo il cliente
|
||||||
|
if(rsoc && (!foundBolla || foundBollaCli))
|
||||||
{
|
{
|
||||||
tff0400f.set("P4_ANADENOM", cedeprest.ragione_sociale());
|
tff0400f.set("P4_ANADENOM", cedeprest.ragione_sociale());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user