Patch level : 12.0 676
Files correlati : ve Commento : Se in una riga di sconto metto l'aliquota viene usata questa invece di suddividere l'imponibile tra le aliquote della fqttura La stampa tabelle vendite chiamava un programma sbagliato Aggiunto un parametro di configurazione nascosto (UpdateProtocol=[ |X]) che forza la rilettura del protocollo IVA a ogni documento contabilizzato Si puòora indicare un conto patrimoniale per le spese di incasso e bolli
This commit is contained in:
parent
e9bac721ef
commit
7d93b65814
@ -1317,6 +1317,7 @@ void TMotore_application::preview()
|
||||
int TMotore_application::checkPlafondWrite(TDocumento& d)
|
||||
{
|
||||
TLi_manager plafond(d.tipocf(), d.codcf(), d.data());
|
||||
|
||||
if(!plafond.hasValidPlafond()) // Se il cliente non mi interessa
|
||||
return NOERR;
|
||||
|
||||
|
@ -46,7 +46,7 @@ STRING F_SPINCODCON2V 3
|
||||
BEGIN
|
||||
PROMPT 29 4 ""
|
||||
FIELD SPINCODCONV[2]
|
||||
USE LF_PCON SELECT INDBIL=="4"
|
||||
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="2")||(INDBIL=="4"))
|
||||
INPUT GRUPPO F_SPINCODCON1V
|
||||
INPUT CONTO F_SPINCODCON2V
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
@ -55,6 +55,7 @@ DISPLAY "Sottoconto" SOTTOCONTO
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
OUTPUT F_SPINCODCON1V GRUPPO
|
||||
OUTPUT F_SPINCODCON2V CONTO
|
||||
WARNING "Il conto deve essere un ricavo o una passività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
@ -62,7 +63,7 @@ STRING F_SPINCODCON3V 6
|
||||
BEGIN
|
||||
PROMPT 35 4 ""
|
||||
FIELD SPINCODCONV[3]
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4")
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
COPY INPUT F_SPINCODCON2V
|
||||
INPUT SOTTOCONTO F_SPINCODCON3V
|
||||
@ -73,13 +74,14 @@ DISPLAY "Descrizione@50" DESCR
|
||||
COPY OUTPUT F_SPINCODCON2V
|
||||
OUTPUT F_SPINCODCON3V SOTTOCONTO
|
||||
OUTPUT F_SPINDESCONV DESCR
|
||||
WARNING "Il conto deve essere un ricavo o una passività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_SPINDESCONV 50
|
||||
BEGIN
|
||||
PROMPT 2 5 "Descrizione "
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4")
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
INPUT DESCR F_SPINDESCONV
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -101,7 +103,7 @@ STRING F_SPINCODCON2A 3
|
||||
BEGIN
|
||||
PROMPT 29 6 ""
|
||||
FIELD SPINCODCONA[2]
|
||||
USE LF_PCON SELECT INDBIL=="3"
|
||||
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="1")||(INDBIL=="3"))
|
||||
INPUT GRUPPO F_SPINCODCON1A
|
||||
INPUT CONTO F_SPINCODCON2A
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
@ -117,7 +119,7 @@ STRING F_SPINCODCON3A 6
|
||||
BEGIN
|
||||
PROMPT 35 6 ""
|
||||
FIELD SPINCODCONA[3]
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3")
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
COPY INPUT F_SPINCODCON2A
|
||||
INPUT SOTTOCONTO F_SPINCODCON3A
|
||||
@ -128,13 +130,14 @@ DISPLAY "Descrizione@50" DESCR
|
||||
COPY OUTPUT F_SPINCODCON2A
|
||||
OUTPUT F_SPINCODCON3A SOTTOCONTO
|
||||
OUTPUT F_SPINDESCONA DESCR
|
||||
WARNING "Il conto deve essere un costo o una attività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_SPINDESCONA 50
|
||||
BEGIN
|
||||
PROMPT 2 7 "Descrizione "
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3")
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
INPUT DESCR F_SPINDESCONA
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -142,6 +145,7 @@ DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT F_SPINCODCON3A
|
||||
WARNING "Il conto deve essere un costo o una attività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
@ -186,7 +190,7 @@ STRING F_SPBOCODCON2V 3
|
||||
BEGIN
|
||||
PROMPT 29 12 ""
|
||||
FIELD SPBOCODCONV[2]
|
||||
USE LF_PCON SELECT INDBIL=="4"
|
||||
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="2")||(INDBIL=="4"))
|
||||
INPUT GRUPPO F_SPBOCODCON1V
|
||||
INPUT CONTO F_SPBOCODCON2V
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
@ -202,7 +206,7 @@ STRING F_SPBOCODCON3V 6
|
||||
BEGIN
|
||||
PROMPT 35 12 ""
|
||||
FIELD SPBOCODCONV[3]
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4")
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
COPY INPUT F_SPBOCODCON2V
|
||||
INPUT SOTTOCONTO F_SPBOCODCON3V
|
||||
@ -213,14 +217,14 @@ DISPLAY "Descrizione@50" DESCR
|
||||
COPY OUTPUT F_SPBOCODCON2V
|
||||
OUTPUT F_SPBOCODCON3V SOTTOCONTO
|
||||
OUTPUT F_SPBODESCONV DESCR
|
||||
WARNING "Il conto deve essere un ricavo"
|
||||
WARNING "Il conto deve essere un ricavo o una passività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_SPBODESCONV 50
|
||||
BEGIN
|
||||
PROMPT 2 13 "Descrizione "
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="4")
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="2")||(500@->INDBIL=="4"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
INPUT DESCR F_SPBODESCONV
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -228,7 +232,7 @@ DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT F_SPBOCODCON3V
|
||||
WARNING "Il conto deve essere un ricavo"
|
||||
WARNING "Il conto deve essere un ricavo o una passività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
@ -243,7 +247,7 @@ STRING F_SPBOCODCON2A 3
|
||||
BEGIN
|
||||
PROMPT 29 14 ""
|
||||
FIELD SPBOCODCONA[2]
|
||||
USE LF_PCON SELECT INDBIL=="3"
|
||||
USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="1")||(INDBIL=="3"))
|
||||
INPUT GRUPPO F_SPBOCODCON1A
|
||||
INPUT CONTO F_SPBOCODCON2A
|
||||
DISPLAY "Gruppo" GRUPPO
|
||||
@ -259,7 +263,7 @@ STRING F_SPBOCODCON3A 6
|
||||
BEGIN
|
||||
PROMPT 35 14 ""
|
||||
FIELD SPBOCODCONA[3]
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3")
|
||||
USE LF_PCON SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
COPY INPUT F_SPBOCODCON2A
|
||||
INPUT SOTTOCONTO F_SPBOCODCON3A
|
||||
@ -270,14 +274,14 @@ DISPLAY "Descrizione@50" DESCR
|
||||
COPY OUTPUT F_SPBOCODCON2A
|
||||
OUTPUT F_SPBOCODCON3A SOTTOCONTO
|
||||
OUTPUT F_SPBODESCONA DESCR
|
||||
WARNING "Il conto deve essere un costo"
|
||||
WARNING "Il conto deve essere un costo o una attività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
STRING F_SPBODESCONA 50
|
||||
BEGIN
|
||||
PROMPT 2 15 "Descrizione "
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && (500@->INDBIL=="3")
|
||||
USE LF_PCON KEY 2 SELECT (SOTTOCONTO!="") && ((500@->INDBIL=="1")||(500@->INDBIL=="3"))
|
||||
JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
|
||||
INPUT DESCR F_SPBODESCONA
|
||||
DISPLAY "Descrizione@50" DESCR
|
||||
@ -285,7 +289,7 @@ DISPLAY "Gruppo" GRUPPO
|
||||
DISPLAY "Conto" CONTO
|
||||
DISPLAY "Sottoconto" SOTTOCONTO
|
||||
COPY OUTPUT F_SPBOCODCON3A
|
||||
WARNING "Il conto deve essere un costo"
|
||||
WARNING "Il conto deve essere un costo o una attività"
|
||||
CHECKTYPE NORMAL
|
||||
END
|
||||
|
||||
|
@ -565,48 +565,68 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const
|
||||
importo = -prezzo(false, lordo, ALL_DECIMALS);
|
||||
TGeneric_distrib d(importo, ALL_DECIMALS);
|
||||
TRiepilogo_iva * aliquota;
|
||||
const TString4 codiva = get(RDOC_CODIVA);
|
||||
|
||||
if (doc_al_lordo)
|
||||
if (codiva.blank())
|
||||
{
|
||||
if (!lordo)
|
||||
if (doc_al_lordo)
|
||||
{
|
||||
TAssoc_array & table = ((TDocumento &) doc()).tabella_iva(true);
|
||||
importo = ZERO;
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *) table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *) table.get())
|
||||
d.add(aliquota->imp_orig());
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *) table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *) table.get())
|
||||
if (!lordo)
|
||||
{
|
||||
const TCodiceIVA & iva = aliquota->cod_iva();
|
||||
real slice = d.get();
|
||||
TAssoc_array & table = ((TDocumento &)doc()).tabella_iva(true);
|
||||
importo = ZERO;
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *)table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *)table.get())
|
||||
d.add(aliquota->imp_orig());
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *)table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *)table.get())
|
||||
{
|
||||
const TCodiceIVA & iva = aliquota->cod_iva();
|
||||
real slice = d.get();
|
||||
|
||||
iva.scorpora(slice, ALL_DECIMALS, ((TDocumento &) doc()).valuta());
|
||||
importo += slice;
|
||||
iva.scorpora(slice, ALL_DECIMALS, ((TDocumento &)doc()).valuta());
|
||||
importo += slice;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lordo)
|
||||
{
|
||||
TAssoc_array & table = ((TDocumento &)doc()).tabella_iva(true);
|
||||
importo = ZERO;
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *)table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *)table.get())
|
||||
d.add(aliquota->imp_orig());
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *)table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *)table.get())
|
||||
{
|
||||
const TCodiceIVA & iva = aliquota->cod_iva();
|
||||
|
||||
importo += iva.lordo(d.get(), ALL_DECIMALS, ((TDocumento &)doc()).valuta());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lordo)
|
||||
{
|
||||
TAssoc_array & table = ((TDocumento &) doc()).tabella_iva(true);
|
||||
importo = ZERO;
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *) table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *) table.get())
|
||||
d.add(aliquota->imp_orig());
|
||||
table.restart();
|
||||
for (aliquota = (TRiepilogo_iva *) table.get(); aliquota != NULL;
|
||||
aliquota = (TRiepilogo_iva *) table.get())
|
||||
{
|
||||
const TCodiceIVA & iva = aliquota->cod_iva();
|
||||
TCodiceIVA i(codiva);
|
||||
|
||||
importo += iva.lordo(d.get(), ALL_DECIMALS, ((TDocumento &) doc()).valuta());
|
||||
}
|
||||
if (doc_al_lordo)
|
||||
{
|
||||
if (!lordo)
|
||||
importo += i.imposta(importo, ALL_DECIMALS, ((TDocumento &)doc()).valuta());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lordo)
|
||||
importo += i.imposta(importo, ALL_DECIMALS, ((TDocumento &)doc()).valuta());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1197,9 +1197,9 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
|
||||
}
|
||||
|
||||
// Codice registro IVA
|
||||
const TRegistro& registro = _caus->reg();
|
||||
TRegistro& registro = _caus->reg();
|
||||
const bool iva_mov = registro.ok();
|
||||
long ult_prot = 0;
|
||||
long ult_prot = registro.protocol();
|
||||
|
||||
if (iva_mov)
|
||||
{
|
||||
@ -1212,16 +1212,21 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
|
||||
{
|
||||
if (_nump_iva) // Reperisce l'ultimo numero di protocollo dal registro IVA
|
||||
{
|
||||
const bool upd_prot = ini_get_bool(CONFIG_DITTA, "ve", "UpdateProtocol", true);
|
||||
TRegistro reg(registro);
|
||||
|
||||
ult_prot = reg.protocol();
|
||||
if (upd_prot)
|
||||
ult_prot = reg.protocol();
|
||||
ult_prot++;
|
||||
if (ult_prot <= 0)
|
||||
{
|
||||
_error = ultprot_error;
|
||||
return _error;
|
||||
}
|
||||
reg.update(ult_prot, doc.data());
|
||||
if (upd_prot)
|
||||
reg.update(ult_prot, doc.data());
|
||||
else
|
||||
registro.update(ult_prot, doc.data());
|
||||
}
|
||||
else // oppure dal numero di documento
|
||||
ult_prot = doc.numero();
|
||||
|
@ -75,12 +75,12 @@ Caption = "Stampa tabelle personalizzazione documenti"
|
||||
Picture = <ba03>
|
||||
Module = 0
|
||||
Flags = ""
|
||||
Item_01 = "Tipo documento", "ve1 -3 %TIP", "F"
|
||||
Item_02 = "Numerazione documenti", "ve1 -3 %NUM", "F"
|
||||
Item_03 = "Tipo riga documento", "ve1 -3 %TRI", "F"
|
||||
Item_04 = "Formule documento", "ve1 -3 %FRD", "F"
|
||||
Item_05 = "Formule righe documento", "ve1 -3 %FRR", "F"
|
||||
Item_06 = "Formule ricalcolo magazzino", "ve1 -3 %FRM", "F"
|
||||
Item_07 = "Elaborazioni differite", "ve1 -3 %ELD", "F"
|
||||
Item_08 = "Stati documento", "ve1 -3 %STD", "F"
|
||||
Item_01 = "Tipo documento", "ba3 -1 %TIP", "F"
|
||||
Item_02 = "Numerazione documenti", "ba3 -1 %NUM", "F"
|
||||
Item_03 = "Tipo riga documento", "ba3 -1 %TRI", "F"
|
||||
Item_04 = "Formule documento", "ba3 -1 %FRD", "F"
|
||||
Item_05 = "Formule righe documento", "ba3 -1 %FRR", "F"
|
||||
Item_06 = "Formule ricalcolo magazzino", "ba3 -1 %FRM", "F"
|
||||
Item_07 = "Elaborazioni differite", "ba3 -1 %ELD", "F"
|
||||
Item_08 = "Stati documento", "ba3 -1 %STD", "F"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user