Merge branch 'R12.00' of http://10.65.20.33/sirio/CAMPO/campo into R12.00

This commit is contained in:
smen 2021-10-26 11:55:48 +02:00
commit 161bbb2b29
13 changed files with 202 additions and 46 deletions

View File

@ -7,7 +7,7 @@ Patch = 1090
Versione = 21511200
[bs]
Data = 15-10-2021
Data = 26-10-2021
Descrizione = Bee Store
Dischi = 1
Moduli = ve

Binary file not shown.

9
cd/test/ve1094.txt Normal file
View File

@ -0,0 +1,9 @@
ve0.exe
ve0200e.msk
ve0200f.msk
ve1.exe
ve3400.msk
Aggiornate segnalazioni nell'inserimento documenti.
Parametro "Separa la riga esenzioni " per avere una riga vuota prima della riga esenzioni.
ridistribuita la maschera ve3400

141
cd/test/ve1094a.ini Normal file
View File

@ -0,0 +1,141 @@
[Main]
Demo=0
[ve0]
Edit_163 = ve0 -6
Edit_33 = ve0 -0
Edit_4 = ve0 -4
Edit_5 = ve0 -4
File(20) = ve0.exe|X
File(31) = ve0200e.msk|X
File(32) = ve0200f.msk|X
Patch = 1094
Versione = 21511200
[ve1]
File(48) = ve1.exe|X
File(77) = ve3400.msk|X
Patch = 1094
Versione = 21511200
[ve99]
Kill(0) = batbcld.msk|x
Kill(1) = bastspp.rep|x
Kill(2) = bastbnp.msk|x
Kill(3) = batbeld.msk|x
Kill(4) = batbgsa.msk|x
Kill(5) = bastfrm.msk|x
Kill(6) = bastcaa.rep|x
Kill(7) = bastcra.rep|x
Kill(8) = batbfrr.msk|x
Kill(9) = bastgcg.rep|x
Kill(10) = bastfrr.rep|x
Kill(11) = batbfrm.msk|x
Kill(12) = bastgca.msk|x
Kill(13) = batbfrd.msk|x
Kill(14) = basttri.rep|x
Kill(15) = batbprv.msk|x
Kill(16) = ve7400conf.ini|x
Kill(17) = bastfca.msk|x
Kill(18) = batbasf.msk|x
Kill(19) = batbpro.msk|x
Kill(20) = batbbnp.msk|x
Kill(21) = bastums.rep|x
Kill(22) = bastctr.msk|x
Kill(23) = ve7.exe|x
Kill(24) = basteld.rep|x
Kill(25) = batbtri.msk|x
Kill(26) = efstbnp.rep|x
Kill(27) = ve7500a.msk|x
Kill(28) = batbgca.msk|x
Kill(29) = basteld.msk|x
Kill(30) = bastasf.rep|x
Kill(31) = batbrfa.msk|x
Kill(32) = batbgcg.msk|x
Kill(33) = bastctr.rep|x
Kill(34) = eftbbnp.msk|x
Kill(35) = batbrfc.msk|x
Kill(36) = basttag.rep|x
Kill(37) = bastgca.rep|x
Kill(38) = batbfca.msk|x
Kill(39) = ve7300a.frm|x
Kill(40) = bastabe.msk|x
Kill(41) = bastfca.rep|x
Kill(42) = bastspp.msk|x
Kill(43) = ve7300a.msk|x
Kill(44) = bastubi.msk|x
Kill(45) = batbcaa.msk|x
Kill(46) = bastcau.rep|x
Kill(47) = bastcaa.msk|x
Kill(48) = bastrfa.msk|x
Kill(49) = bastimb.rep|x
Kill(50) = bastgmc.msk|x
Kill(51) = batbubi.msk|x
Kill(52) = bastgcg.msk|x
Kill(53) = batbstd.msk|x
Kill(54) = batbfid.msk|x
Kill(55) = basttag.msk|x
Kill(56) = batbctr.msk|x
Kill(57) = batbspp.msk|x
Kill(58) = bastums.msk|x
Kill(59) = bastfrm.rep|x
Kill(60) = ve7100a.msk|x
Kill(61) = bastasf.msk|x
Kill(62) = bastabe.rep|x
Kill(63) = bastrfc.msk|x
Kill(64) = batbfsa.msk|x
Kill(65) = batbabe.msk|x
Kill(66) = batbtip.msk|x
Kill(67) = bastubi.rep|x
Kill(68) = bastrfc.rep|x
Kill(69) = batbprs.msk|x
Kill(70) = basttip.rep|x
Kill(71) = bastcau.msk|x
Kill(72) = bastnum.rep|x
Kill(73) = ve7400a.ini|x
Kill(74) = ve7200a.frm|x
Kill(75) = ve7200a.msk|x
Kill(76) = baststd.rep|x
Kill(77) = ve7400a.msk|x
Kill(78) = batbcau.msk|x
Kill(79) = bastrfa.rep|x
Kill(80) = baststd.msk|x
Kill(81) = bastimb.msk|x
Kill(82) = bastprs.msk|x
Kill(83) = bastfrr.msk|x
Kill(84) = ve7600a.msk|x
Kill(85) = batbmre.msk|x
Kill(86) = batbtag.msk|x
Kill(87) = batbnum.msk|x
Kill(88) = bastnum.msk|x
Kill(89) = batbums.msk|x
Kill(90) = bastprs.rep|x
Kill(91) = batbcra.msk|x
Kill(92) = ve7700a.msk|x
Kill(93) = batbspt.msk|x
Kill(94) = basttri.msk|x
Kill(95) = bastbnp.rep|x
Kill(96) = efstbnp.msk|x
Kill(97) = ve7701a.ini|x
Kill(98) = batbacr.msk|x
Kill(99) = batbimb.msk|x
Kill(100) = batbgmc.msk|x
Kill(101) = bastcra.msk|x
Kill(102) = bastgmc.rep|x
Kill(103) = bastfrd.msk|x
Kill(104) = basttip.msk|x
Kill(105) = bastfrd.rep|x
[ve]
Data = 21-10-2021
Descrizione = Vendite
Dischi = 1
Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
OEM =
Patch = 1094
PostProcess = bainst -0 VE
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/ve1094a1.zip Normal file

Binary file not shown.

View File

@ -249,7 +249,7 @@ END
STRING F_CMSCNTFIELD 10
BEGIN
PROMPT 2 20 "Campo commesse per reperire la causale"
FLAGS "U"
FLAGS "U"
FIELD CMSCNTFIELD
END

View File

@ -261,9 +261,15 @@ BEGIN
FIELD DESESENZ
END
BOOLEAN F_SEPARA_ESENZ
BEGIN
PROMPT 2 8 "Separa la riga esenzioni "
FIELD SEPARA_ESENZ
END
STRING F_SCTRIGA 4
BEGIN
PROMPT 2 8 "Tipo riga sconti testa "
PROMPT 2 9 "Tipo riga sconti testa "
FLAGS "U"
USE %TRI SELECT S7=="C"
FIELD TRSCONTI

View File

@ -1377,7 +1377,7 @@ void TMask_generator::genera_testata_1()
else
{
_m->prompt(2, 4, "Fornitore ");
_m->warning("IlFornitore #0 non esiste");
_m->warning("Il Fornitore #0 non esiste");
_m->help("Ragione sociale del fornitore del documento");
}
_m->flag( "R" );

View File

@ -1054,6 +1054,7 @@ bool TMask_anamag::handle_sheet_um(TMask_field &fld, KEY k)
{
TSheet_field &f= (TSheet_field &)fld; // typecast del campo al suo sheet corrispondente
TMask_anamag & m= (TMask_anamag &)(fld.mask());
if (k == K_ENTER && !m.query_mode())
{
const int items = f.items();

View File

@ -41,7 +41,7 @@ int TCopydoc_mask::fill_sheet()
for (t = 0; t < num1.ntipi_doc(); t++)
{
const TString& td = num1.tipo_doc(t);
tipi.add(td, NULL);
tipi.add(td);
}
const TCodice_numerazione num2(n2);

View File

@ -171,6 +171,7 @@
#define F_SPADD 144
#define F_MAXADD 145
#define F_IMPMINEFF 146
#define F_SEPARA_ESENZ 147
// Campi per ve0200g.uml
#define F_EXPLODEDB 101

View File

@ -1066,7 +1066,11 @@ void TDocumento::set_riga_esenzione()
_des_esenz.insert("Fattura non imponibile");
}
TString d = _des_esenz;
if (ini_get_bool(CONFIG_STUDIO, "ve", "SEPARA_ESENZ"))
d.insert(" \n"); // nonè uno spazio ma chr(255)
const int pos = d.len();
TLi_manager & plaf = plafond();
TString protinf;

View File

@ -533,14 +533,14 @@ bool data_hndl( TMask_field& field, KEY key )
const TDate dataprev = doc.get_date(DOC_DATADOC);
same_key = doc.curr().same_key(m.doc().head(), 1, 1);
if (same_key && datadoc < dataprev)
return field.error_box("Data documento inferiore alla data del documento precedente");
return field.error_box("Data documento inferiore alla data del documento precedente(a %s - s %s)", datadoc.stringa(), doc.get_date(DOC_DATADOC).stringa());
}
doc.curr() = m.doc().head();
doc.read(_isgreat);
same_key = doc.curr().same_key(m.doc().head(), 1, 1);
if (doc.good() && same_key && datadoc > doc.get_date(DOC_DATADOC))
return field.error_box("Data documento superiore alla data del documento successivo");
if (doc.good() && same_key && datadoc > doc.get_date(DOC_DATADOC))
return field.error_box("Data documento superiore alla data del documento successivo (a %s - s %s)", datadoc.stringa(), doc.get_date(DOC_DATADOC).stringa());
}
if (key == K_ENTER || field.to_check(key))
{
@ -600,46 +600,40 @@ bool iva_handler( TMask_field& f, KEY key )
if (key == K_ENTER && f.empty())
{
const TString& codiva = mask.condv().clifo().vendite().get(CFV_ASSFIS);
if (codiva.full())
f.set(codiva);
f.check();
}
if (key == K_ENTER && f.empty())
{
const TString& codiva = mask.doc().codesiva();
if (codiva.full())
f.set(codiva);
f.check();
}
if (key == K_ENTER && f.empty())
{
const int r = row_mask.get_sheet()->selected() + 1;
const TRiga_documento& riga = mask.doc()[r];
const int pos_ai = row_mask.id2pos(FR_ADDIVA);
bool addiva = false;
if (pos_ai >= 0)
addiva = row_mask.fld(pos_ai).get() == "X"; // Controlla le righe Omaggio solo se è settato l'addebito IVA
const bool check = riga.is_merce() || riga.is_spese() || riga.is_prestazione() ||
(riga.is_omaggio() && addiva);
const int r = row_mask.get_sheet()->selected() + 1;
const TRiga_documento& riga = mask.doc()[r];
const int pos_ai = row_mask.id2pos(FR_ADDIVA);
const bool addiva = (pos_ai >= 0) && row_mask.fld(pos_ai).get() == "X"; // Controlla le righe Omaggio solo se è settato l'addebito IVA
const bool check = riga.is_merce() || riga.is_spese() || riga.is_prestazione() || (riga.is_omaggio() && addiva);
if (check)
{
const int pos_p = row_mask.id2pos(FR_PREZZO);
const int pos_q = row_mask.id2pos(FR_QTA);
const bool pe = pos_p >= 0 && row_mask.fld(pos_p).enabled();
const bool qe = pos_q >= 0 && row_mask.fld(pos_q).enabled();
const bool pf = pe && row_mask.fld(pos_p).get().not_empty();
const bool qf = qe && row_mask.fld(pos_q).get().not_empty();
const bool required = pf && !(qe && !qf);
if (required)
return f.error_box(TR("Il codice IVA è obbligatorio."));
const TString& codiva = mask.condv().clifo().vendite().get(CFV_ASSFIS);
if (codiva.full())
f.set(codiva);
else
{
const TString& codivaes = mask.doc().codesiva();
if (codivaes.full())
f.set(codivaes);
}
f.check();
if (f.empty())
{
const int pos_p = row_mask.id2pos(FR_PREZZO);
const int pos_q = row_mask.id2pos(FR_QTA);
const bool pe = pos_p >= 0 && row_mask.fld(pos_p).enabled();
const bool qe = pos_q >= 0 && row_mask.fld(pos_q).enabled();
const bool pf = pe && row_mask.fld(pos_p).get().full();
const bool qf = qe && row_mask.fld(pos_q).get().full();
const bool required = pf && !(qe && !qf);
if (required)
return f.error_box(FR("Il codice IVA è obbligatorio nella riga %d"), r);
}
}
}
if (f.running_check(key))