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:
AlexBonazzi 2019-01-15 12:37:16 +01:00
parent e9bac721ef
commit 7d93b65814
5 changed files with 88 additions and 58 deletions

View File

@ -1317,6 +1317,7 @@ void TMotore_application::preview()
int TMotore_application::checkPlafondWrite(TDocumento& d) int TMotore_application::checkPlafondWrite(TDocumento& d)
{ {
TLi_manager plafond(d.tipocf(), d.codcf(), d.data()); TLi_manager plafond(d.tipocf(), d.codcf(), d.data());
if(!plafond.hasValidPlafond()) // Se il cliente non mi interessa if(!plafond.hasValidPlafond()) // Se il cliente non mi interessa
return NOERR; return NOERR;

View File

@ -46,7 +46,7 @@ STRING F_SPINCODCON2V 3
BEGIN BEGIN
PROMPT 29 4 "" PROMPT 29 4 ""
FIELD SPINCODCONV[2] FIELD SPINCODCONV[2]
USE LF_PCON SELECT INDBIL=="4" USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="2")||(INDBIL=="4"))
INPUT GRUPPO F_SPINCODCON1V INPUT GRUPPO F_SPINCODCON1V
INPUT CONTO F_SPINCODCON2V INPUT CONTO F_SPINCODCON2V
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
@ -55,6 +55,7 @@ DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
OUTPUT F_SPINCODCON1V GRUPPO OUTPUT F_SPINCODCON1V GRUPPO
OUTPUT F_SPINCODCON2V CONTO OUTPUT F_SPINCODCON2V CONTO
WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
@ -62,7 +63,7 @@ STRING F_SPINCODCON3V 6
BEGIN BEGIN
PROMPT 35 4 "" PROMPT 35 4 ""
FIELD SPINCODCONV[3] 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPINCODCON2V COPY INPUT F_SPINCODCON2V
INPUT SOTTOCONTO F_SPINCODCON3V INPUT SOTTOCONTO F_SPINCODCON3V
@ -73,13 +74,14 @@ DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPINCODCON2V COPY OUTPUT F_SPINCODCON2V
OUTPUT F_SPINCODCON3V SOTTOCONTO OUTPUT F_SPINCODCON3V SOTTOCONTO
OUTPUT F_SPINDESCONV DESCR OUTPUT F_SPINDESCONV DESCR
WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_SPINDESCONV 50 STRING F_SPINDESCONV 50
BEGIN BEGIN
PROMPT 2 5 "Descrizione " 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPINDESCONV INPUT DESCR F_SPINDESCONV
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
@ -101,7 +103,7 @@ STRING F_SPINCODCON2A 3
BEGIN BEGIN
PROMPT 29 6 "" PROMPT 29 6 ""
FIELD SPINCODCONA[2] FIELD SPINCODCONA[2]
USE LF_PCON SELECT INDBIL=="3" USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="1")||(INDBIL=="3"))
INPUT GRUPPO F_SPINCODCON1A INPUT GRUPPO F_SPINCODCON1A
INPUT CONTO F_SPINCODCON2A INPUT CONTO F_SPINCODCON2A
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
@ -117,7 +119,7 @@ STRING F_SPINCODCON3A 6
BEGIN BEGIN
PROMPT 35 6 "" PROMPT 35 6 ""
FIELD SPINCODCONA[3] 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPINCODCON2A COPY INPUT F_SPINCODCON2A
INPUT SOTTOCONTO F_SPINCODCON3A INPUT SOTTOCONTO F_SPINCODCON3A
@ -128,13 +130,14 @@ DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPINCODCON2A COPY OUTPUT F_SPINCODCON2A
OUTPUT F_SPINCODCON3A SOTTOCONTO OUTPUT F_SPINCODCON3A SOTTOCONTO
OUTPUT F_SPINDESCONA DESCR OUTPUT F_SPINDESCONA DESCR
WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_SPINDESCONA 50 STRING F_SPINDESCONA 50
BEGIN BEGIN
PROMPT 2 7 "Descrizione " 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPINDESCONA INPUT DESCR F_SPINDESCONA
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
@ -142,6 +145,7 @@ DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SPINCODCON3A COPY OUTPUT F_SPINCODCON3A
WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
@ -186,7 +190,7 @@ STRING F_SPBOCODCON2V 3
BEGIN BEGIN
PROMPT 29 12 "" PROMPT 29 12 ""
FIELD SPBOCODCONV[2] FIELD SPBOCODCONV[2]
USE LF_PCON SELECT INDBIL=="4" USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="2")||(INDBIL=="4"))
INPUT GRUPPO F_SPBOCODCON1V INPUT GRUPPO F_SPBOCODCON1V
INPUT CONTO F_SPBOCODCON2V INPUT CONTO F_SPBOCODCON2V
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
@ -202,7 +206,7 @@ STRING F_SPBOCODCON3V 6
BEGIN BEGIN
PROMPT 35 12 "" PROMPT 35 12 ""
FIELD SPBOCODCONV[3] 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPBOCODCON2V COPY INPUT F_SPBOCODCON2V
INPUT SOTTOCONTO F_SPBOCODCON3V INPUT SOTTOCONTO F_SPBOCODCON3V
@ -213,14 +217,14 @@ DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPBOCODCON2V COPY OUTPUT F_SPBOCODCON2V
OUTPUT F_SPBOCODCON3V SOTTOCONTO OUTPUT F_SPBOCODCON3V SOTTOCONTO
OUTPUT F_SPBODESCONV DESCR OUTPUT F_SPBODESCONV DESCR
WARNING "Il conto deve essere un ricavo" WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_SPBODESCONV 50 STRING F_SPBODESCONV 50
BEGIN BEGIN
PROMPT 2 13 "Descrizione " 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPBODESCONV INPUT DESCR F_SPBODESCONV
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
@ -228,7 +232,7 @@ DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SPBOCODCON3V COPY OUTPUT F_SPBOCODCON3V
WARNING "Il conto deve essere un ricavo" WARNING "Il conto deve essere un ricavo o una passività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
@ -243,7 +247,7 @@ STRING F_SPBOCODCON2A 3
BEGIN BEGIN
PROMPT 29 14 "" PROMPT 29 14 ""
FIELD SPBOCODCONA[2] FIELD SPBOCODCONA[2]
USE LF_PCON SELECT INDBIL=="3" USE LF_PCON SELECT ((CONTO!="") && (SOTTOCONTO=="")) && ((INDBIL=="1")||(INDBIL=="3"))
INPUT GRUPPO F_SPBOCODCON1A INPUT GRUPPO F_SPBOCODCON1A
INPUT CONTO F_SPBOCODCON2A INPUT CONTO F_SPBOCODCON2A
DISPLAY "Gruppo" GRUPPO DISPLAY "Gruppo" GRUPPO
@ -259,7 +263,7 @@ STRING F_SPBOCODCON3A 6
BEGIN BEGIN
PROMPT 35 14 "" PROMPT 35 14 ""
FIELD SPBOCODCONA[3] 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
COPY INPUT F_SPBOCODCON2A COPY INPUT F_SPBOCODCON2A
INPUT SOTTOCONTO F_SPBOCODCON3A INPUT SOTTOCONTO F_SPBOCODCON3A
@ -270,14 +274,14 @@ DISPLAY "Descrizione@50" DESCR
COPY OUTPUT F_SPBOCODCON2A COPY OUTPUT F_SPBOCODCON2A
OUTPUT F_SPBOCODCON3A SOTTOCONTO OUTPUT F_SPBOCODCON3A SOTTOCONTO
OUTPUT F_SPBODESCONA DESCR OUTPUT F_SPBODESCONA DESCR
WARNING "Il conto deve essere un costo" WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END
STRING F_SPBODESCONA 50 STRING F_SPBODESCONA 50
BEGIN BEGIN
PROMPT 2 15 "Descrizione " 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 JOIN LF_PCON ALIAS 500 INTO GRUPPO==GRUPPO CONTO==CONTO
INPUT DESCR F_SPBODESCONA INPUT DESCR F_SPBODESCONA
DISPLAY "Descrizione@50" DESCR DISPLAY "Descrizione@50" DESCR
@ -285,7 +289,7 @@ DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT F_SPBOCODCON3A COPY OUTPUT F_SPBOCODCON3A
WARNING "Il conto deve essere un costo" WARNING "Il conto deve essere un costo o una attività"
CHECKTYPE NORMAL CHECKTYPE NORMAL
END END

View File

@ -565,7 +565,10 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const
importo = -prezzo(false, lordo, ALL_DECIMALS); importo = -prezzo(false, lordo, ALL_DECIMALS);
TGeneric_distrib d(importo, ALL_DECIMALS); TGeneric_distrib d(importo, ALL_DECIMALS);
TRiepilogo_iva * aliquota; TRiepilogo_iva * aliquota;
const TString4 codiva = get(RDOC_CODIVA);
if (codiva.blank())
{
if (doc_al_lordo) if (doc_al_lordo)
{ {
if (!lordo) if (!lordo)
@ -609,6 +612,23 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const
} }
} }
} }
else
{
TCodiceIVA i(codiva);
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; break;
default: default:
break; break;

View File

@ -1197,9 +1197,9 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
} }
// Codice registro IVA // Codice registro IVA
const TRegistro& registro = _caus->reg(); TRegistro& registro = _caus->reg();
const bool iva_mov = registro.ok(); const bool iva_mov = registro.ok();
long ult_prot = 0; long ult_prot = registro.protocol();
if (iva_mov) if (iva_mov)
{ {
@ -1212,8 +1212,10 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
{ {
if (_nump_iva) // Reperisce l'ultimo numero di protocollo dal registro IVA 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); TRegistro reg(registro);
if (upd_prot)
ult_prot = reg.protocol(); ult_prot = reg.protocol();
ult_prot++; ult_prot++;
if (ult_prot <= 0) if (ult_prot <= 0)
@ -1221,7 +1223,10 @@ error_type TContabilizzazione::compile_head_mov(TDocumento& doc)
_error = ultprot_error; _error = ultprot_error;
return _error; return _error;
} }
if (upd_prot)
reg.update(ult_prot, doc.data()); reg.update(ult_prot, doc.data());
else
registro.update(ult_prot, doc.data());
} }
else // oppure dal numero di documento else // oppure dal numero di documento
ult_prot = doc.numero(); ult_prot = doc.numero();

View File

@ -75,12 +75,12 @@ Caption = "Stampa tabelle personalizzazione documenti"
Picture = <ba03> Picture = <ba03>
Module = 0 Module = 0
Flags = "" Flags = ""
Item_01 = "Tipo documento", "ve1 -3 %TIP", "F" Item_01 = "Tipo documento", "ba3 -1 %TIP", "F"
Item_02 = "Numerazione documenti", "ve1 -3 %NUM", "F" Item_02 = "Numerazione documenti", "ba3 -1 %NUM", "F"
Item_03 = "Tipo riga documento", "ve1 -3 %TRI", "F" Item_03 = "Tipo riga documento", "ba3 -1 %TRI", "F"
Item_04 = "Formule documento", "ve1 -3 %FRD", "F" Item_04 = "Formule documento", "ba3 -1 %FRD", "F"
Item_05 = "Formule righe documento", "ve1 -3 %FRR", "F" Item_05 = "Formule righe documento", "ba3 -1 %FRR", "F"
Item_06 = "Formule ricalcolo magazzino", "ve1 -3 %FRM", "F" Item_06 = "Formule ricalcolo magazzino", "ba3 -1 %FRM", "F"
Item_07 = "Elaborazioni differite", "ve1 -3 %ELD", "F" Item_07 = "Elaborazioni differite", "ba3 -1 %ELD", "F"
Item_08 = "Stati documento", "ve1 -3 %STD", "F" Item_08 = "Stati documento", "ba3 -1 %STD", "F"