Corretta cancellazione righe con importo nullo nelle righe contabili
git-svn-id: svn://10.65.10.50/trunk@566 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
251957f9c5
commit
02a6029dbe
@ -6,8 +6,6 @@
|
|||||||
|
|
||||||
int main(int argc,char** argv)
|
int main(int argc,char** argv)
|
||||||
{
|
{
|
||||||
check_parameters(argc, argv);
|
|
||||||
|
|
||||||
const int n = (argc > 1) ? atoi(&argv[1][1]) : 0;
|
const int n = (argc > 1) ? atoi(&argv[1][1]) : 0;
|
||||||
|
|
||||||
switch(n)
|
switch(n)
|
||||||
|
@ -148,10 +148,8 @@ bool TPrimanota_application::save_and_new() const
|
|||||||
|
|
||||||
bool TPrimanota_application::user_destroy()
|
bool TPrimanota_application::user_destroy()
|
||||||
{
|
{
|
||||||
if (_msk[3] != NULL) delete _msk[3];
|
for (int m = 3; m >= 0; m--)
|
||||||
if (_msk[2] != NULL) delete _msk[2];
|
if (_msk[m] != NULL) delete _msk[m];
|
||||||
if (_msk[1] != NULL) delete _msk[1];
|
|
||||||
if (_msk[0] != NULL) delete _msk[0];
|
|
||||||
|
|
||||||
delete _rel;
|
delete _rel;
|
||||||
delete _nditte;
|
delete _nditte;
|
||||||
@ -165,6 +163,7 @@ bool TPrimanota_application::user_destroy()
|
|||||||
delete _caus;
|
delete _caus;
|
||||||
delete _tab;
|
delete _tab;
|
||||||
delete _tabcom;
|
delete _tabcom;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -484,18 +483,18 @@ int TPrimanota_application::read(TMask& m)
|
|||||||
const TString16 occode(_rel->lfile().get("OCFPI"));
|
const TString16 occode(_rel->lfile().get("OCFPI"));
|
||||||
occas_mask().set(O_CODICE, occode);
|
occas_mask().set(O_CODICE, occode);
|
||||||
|
|
||||||
real cambio(_rel->lfile().get("CAMBIO"));
|
const char clifo = _rel->lfile().get_char("TIPO");
|
||||||
if (cambio < 1.0) cambio = 1.0;
|
|
||||||
m.set_exchange(FALSE, cambio);
|
|
||||||
|
|
||||||
const char clifo = toupper(m.get(F_CLIFO)[0]);
|
|
||||||
if (_iva == iva_acquisti && clifo == 'C')
|
if (_iva == iva_acquisti && clifo == 'C')
|
||||||
error_box("Registrazione di acquisto attribuita ad un cliente"); else
|
error_box("Registrazione di acquisto attribuita ad un cliente"); else
|
||||||
if (_iva == iva_vendite && clifo == 'F')
|
if (_iva == iva_vendite && clifo == 'F')
|
||||||
error_box("Registrazione di vendita attribuita ad un fornitore");
|
error_box("Registrazione di vendita attribuita ad un fornitore");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Inizializza cambio
|
||||||
|
real cambio(_rel->lfile().get("CAMBIO"));
|
||||||
|
if (cambio < 1.0) cambio = 1.0;
|
||||||
|
m.set_exchange(FALSE, cambio);
|
||||||
|
|
||||||
_saldi.reset(); // Azzera saldi
|
_saldi.reset(); // Azzera saldi
|
||||||
_saldi.set_movprovv(_rel->lfile().get_bool("PROVVIS"));
|
_saldi.set_movprovv(_rel->lfile().get_bool("PROVVIS"));
|
||||||
_saldi.set_movap(_causale.apertura());
|
_saldi.set_movap(_causale.apertura());
|
||||||
@ -573,7 +572,8 @@ int TPrimanota_application::read(TMask& m)
|
|||||||
if (to_swap) imposta = -imposta;
|
if (to_swap) imposta = -imposta;
|
||||||
if (imponibile.sign() * imposta.sign() < 0)
|
if (imponibile.sign() * imposta.sign() < 0)
|
||||||
{
|
{
|
||||||
warning_box("Registrazione con imponibile e imposta discordi: correzione effettuata");
|
warning_box("Registrazione con imponibile e imposta con segni discordi:\n"
|
||||||
|
"assegnato il segno dell'imponibile");
|
||||||
imposta = -imposta;
|
imposta = -imposta;
|
||||||
}
|
}
|
||||||
riga.add(imposta.string()); // Imposta 104
|
riga.add(imposta.string()); // Imposta 104
|
||||||
@ -668,6 +668,8 @@ void TPrimanota_application::mask2rel(const TMask& m)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
_rel->lfile().put("TIPO", clifo());
|
||||||
|
|
||||||
int err = ~NOERR;
|
int err = ~NOERR;
|
||||||
if (m.get_bool(F_OCCASIONALE))
|
if (m.get_bool(F_OCCASIONALE))
|
||||||
{
|
{
|
||||||
|
@ -784,12 +784,12 @@ bool TPrimanota_application::iva_notify(int r, KEY k)
|
|||||||
if (oldpos >= 0) // Se il conto esisteva anche prima ...
|
if (oldpos >= 0) // Se il conto esisteva anche prima ...
|
||||||
{ // sottrai il vecchio imponibile
|
{ // sottrai il vecchio imponibile
|
||||||
const TImporto imp = app().sub_cgs_imp(oldpos, oldimp);
|
const TImporto imp = app().sub_cgs_imp(oldpos, oldimp);
|
||||||
if (imp.is_zero) delimp = oldpos;
|
if (imp.is_zero()) delimp = oldpos;
|
||||||
}
|
}
|
||||||
if (oldposiva >= 0) // Se conto IVA esisteva anche prima ...
|
if (oldposiva >= 0) // Se conto IVA esisteva anche prima ...
|
||||||
{ // sottrai la vecchia imposta
|
{ // sottrai la vecchia imposta
|
||||||
const TImporto imp = app().sub_cgs_imp(oldposiva, oldiva);
|
const TImporto imp = app().sub_cgs_imp(oldposiva, oldiva);
|
||||||
if (imp.is_zero) deliva = oldposiva;
|
if (imp.is_zero()) deliva = oldposiva;
|
||||||
}
|
}
|
||||||
|
|
||||||
real imponibile(row.get(0)); // Nuovo imponibile
|
real imponibile(row.get(0)); // Nuovo imponibile
|
||||||
@ -1243,22 +1243,21 @@ void TPrimanota_application::add_cgs_tot(TMask& m)
|
|||||||
int conto = m.get_int(F_CONTOCLIFO);
|
int conto = m.get_int(F_CONTOCLIFO);
|
||||||
long codice = m.get_long(tipo == 'C' ? F_CLIENTE : F_FORNITORE);
|
long codice = m.get_long(tipo == 'C' ? F_CLIENTE : F_FORNITORE);
|
||||||
|
|
||||||
// Se l'utente non ha ancora specificato un conto lo prendo dalla prima riga della causale
|
if (conto == 0 || causale().corrispettivi())
|
||||||
TBill bill; _causale.bill(1, bill);
|
{
|
||||||
if (conto == 0)
|
// Se l'utente non ha ancora specificato un conto lo prendo dalla prima riga della causale
|
||||||
{
|
TBill bill; _causale.bill(1, bill);
|
||||||
gruppo = bill.gruppo(); m.set(F_GRUPPOCLIFO, gruppo);
|
gruppo = bill.gruppo();
|
||||||
conto = bill.conto(); m.set(F_CONTOCLIFO, conto);
|
conto = bill.conto();
|
||||||
codice = bill.sottoconto();
|
if (causale().corrispettivi())
|
||||||
|
{
|
||||||
|
tipo = ' ';
|
||||||
|
codice = bill.sottoconto();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tipo == 'C' && causale().corrispettivi())
|
|
||||||
{
|
|
||||||
codice = bill.sottoconto();
|
|
||||||
tipo = ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
TBill nuovo(gruppo, conto, codice, tipo);
|
TBill nuovo(gruppo, conto, codice, tipo);
|
||||||
|
|
||||||
real tot(m.get(F_TOTALE));
|
real tot(m.get(F_TOTALE));
|
||||||
|
|
||||||
const int pos = type2pos('T');
|
const int pos = type2pos('T');
|
||||||
@ -1267,7 +1266,7 @@ void TPrimanota_application::add_cgs_tot(TMask& m)
|
|||||||
TSheet_field& ss = cgs();
|
TSheet_field& ss = cgs();
|
||||||
TToken_string& row = ss.row(pos);
|
TToken_string& row = ss.row(pos);
|
||||||
const TBill vecchio(row, 2, 0x1);
|
const TBill vecchio(row, 2, 0x1);
|
||||||
if (vecchio.ok() && nuovo != vecchio) // Se cambio cliente/fornitore
|
if (!vecchio.empty() && nuovo != vecchio) // Se cambio cliente/fornitore
|
||||||
{
|
{
|
||||||
for (int i = 0; i < ss.items(); i++) if (i != pos)
|
for (int i = 0; i < ss.items(); i++) if (i != pos)
|
||||||
{
|
{
|
||||||
|
@ -17,6 +17,7 @@ BEGIN
|
|||||||
DISPLAY "Tipo" S1
|
DISPLAY "Tipo" S1
|
||||||
OUTPUT 102 CODTAB
|
OUTPUT 102 CODTAB
|
||||||
OUTPUT 211 S0
|
OUTPUT 211 S0
|
||||||
|
CHECKTYPE NORMAL
|
||||||
WARNING "Codice IVA assente"
|
WARNING "Codice IVA assente"
|
||||||
VALIDATE REQIF_FUNC 1 101
|
VALIDATE REQIF_FUNC 1 101
|
||||||
END
|
END
|
||||||
|
Loading…
x
Reference in New Issue
Block a user