Patch level : 12.0 972

Files correlati     : f90.exe d181.des f181.dir/.trr f9ProspIntegr.rep masks f90104.sql
Commento            :
- Rimosso controllo vendite in ogni caso. Incompatibilita' con diverse situazioni tra cui note di credito interne che non sono fatture elettroniche.
- Rimosso flag check vendite e il suo utilizzo nel codice.
- Aggiornamento stato estrazione solo dopo scrittura f9iva.
- Migliorata e resa piu' sicura query per iva aggiungendo tipi diversi e controllo lunghezza colonna.
- Corretti nomi campi, che venivano invertiti IVA_ANNPROT e IVA_NUMPROT.
- Aggiunto controllo in apertura controllo estrazione solo se il pacchetto e' in errore diag. gest.
- Spostata in una classe separata la maschera per l'apertura del pacchetto (Apri estr.).
- Corretta modifica f9wa rimaneva vuoto il record in alcuni casi.
- Aggiunta possibilita' di esclusione movimenti dall'Apri estr.
- Aggiunto controllo esistenza categorie documentali, caricamento cat. doc. di default e controllo tipi documento duplicati.
- Aggiunta colonna a F9DRT in caso mancasse (Dovuta a creazione da fp).
- Aggiunta funzione provvisoria per calcolo somma imponibili e imposte da rmoviva.
This commit is contained in:
Simone Palacino 2020-07-01 17:23:56 +02:00
parent a013853f6d
commit 1de19f9346
3 changed files with 31 additions and 11 deletions

View File

@ -269,8 +269,8 @@ bool TEstrazione::is_integr_rev(const int numreg, _Out_ TString& numreg_rev_vend
const TCausale& cau = cached_causale(mov.get(MOV_CODCAUS), mov.get_int(MOV_ANNOES));
const TString4 cau_reg = cau.causale_reg_iva();
TToken_string key(mov.get(MOV_TIPO)); key.add(mov.get_long(MOV_CODCF));
const long codcli = cache().get(LF_CLIFO, key).get_long(CLI_CODCFASS);
//TToken_string key(mov.get(MOV_TIPO)); key.add(mov.get_long(MOV_CODCF));
const long numdoc = mov.get_long(MOV_NUMDOC);// cache().get(LF_CLIFO, key);
TString query("USE ");
query << LF_MOV << " KEY 1 SELECT " << MOV_CODCAUS << "==\"" << cau_reg << "\"\nFROM " << MOV_NUMREG << "==" << numreg;
@ -282,7 +282,7 @@ bool TEstrazione::is_integr_rev(const int numreg, _Out_ TString& numreg_rev_vend
TRectype& curr = (TRectype&)mov_rs.cursor()->curr();
const long movcoll_found = curr.get_long(MOV_MOVCOLL);
if ((curr.get_long(MOV_CODCF) == codcli) && ((movcoll_found == 0L) || (movcoll_found == numreg)))
if ((curr.get_long(MOV_NUMDOC) == numdoc) && ((movcoll_found == 0L) || (movcoll_found == numreg)))
{
movcoll = mov_rs.get(MOV_NUMREG).as_int();
curr.put(MOV_MOVCOLL, numreg);
@ -306,7 +306,7 @@ bool TEstrazione::make_prosp_int_revc(const int numreg, TCategorie_doc::annesso&
mov.put(MOV_NUMREG, numreg);
mov.read();
TString rev_vend = mov.get(MOV_MOVCOLL);
if(rev_vend.full() || is_integr_rev(numreg, rev_vend))
if((rev_vend.full() || is_integr_rev(numreg, rev_vend)) && rev_vend != "0")
{
TF9Prospetto_integr prosp;
TString acq; acq << numreg;

View File

@ -541,6 +541,8 @@ class TProspetto_recset final : public TSQL_recordset
void precarica_tabelle();
public:
void get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte);
TProspetto_recset(const char* numreg_acq, const char* numreg_ven);
~TProspetto_recset();
};

View File

@ -287,6 +287,22 @@ void TProspetto_recset::precarica_tabelle()
}
}
void TProspetto_recset::get_sum_imponibile_imposta(const char* numreg_ven, real& s_imponibili, real& s_imposte)
{
TRecord_array iva(LF_RMOVIVA, RMI_NUMRIG);
TRectype* ivafilter = new TRectype(LF_RMOVIVA);
ivafilter->put(RMI_NUMREG, numreg_ven);
iva.read(ivafilter);
s_imponibili = ZERO;
s_imposte = ZERO;
for (int i = iva.first_row(); i <= iva.rows(); ++i)
{
TRectype& r = iva[i];
s_imponibili += r.get_real("IMPONIBILE");
s_imposte += r.get_real("IMPOSTA");
}
}
TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_ven) : TSQL_recordset("")
{
_numreg = new TString;
@ -383,19 +399,21 @@ TProspetto_recset::TProspetto_recset(const char* numreg_acq, const char* numreg_
// Calcolo dal rmoviva
real s_imponibili, s_imposte;
TMovimento_contabile movimento_pn;
TBaseisamfile mov(LF_MOV);
/*TMovimento_contabile movimento_pn;
TLocalisamfile mov(LF_MOV);
mov.put(MOV_NUMREG, numreg_ven);
mov.read();
if (movimento_pn.read(mov) != NOERR)
bool simo = true;
s_imponibili = movimento_pn.imponibile("");
s_imposte = movimento_pn.imposta("");
s_imposte = movimento_pn.imposta("");*/
/*TRectype& rec = _movimento_pn->curr();
/*TMovimentoPN _movimento_pn;
TRectype& rec = _movimento_pn.curr();
rec.put(MOV_NUMREG, numreg_ven);
if (_movimento_pn->read() != NOERR)
bool simo = true;
_movimento_pn->get_sum_imponibile_imposta(s_imponibili, s_imposte);*/
if (_movimento_pn.read() != NOERR)
bool simo = true;*/
get_sum_imponibile_imposta(numreg_ven, s_imponibili, s_imposte);
format_string(*_totale, TString() << s_imponibili + s_imposte);
format_string(*_totimponibile, s_imponibili.stringa());