diff --git a/build/770.vcxproj b/build/770.vcxproj
index be46eda94..f68783b1b 100644
--- a/build/770.vcxproj
+++ b/build/770.vcxproj
@@ -89,6 +89,7 @@
MachineX86
+ false
true
@@ -307,6 +308,7 @@
+
diff --git a/build/771mod.vcxproj b/build/771mod.vcxproj
index a5c64a7b3..1e0554cc6 100644
--- a/build/771mod.vcxproj
+++ b/build/771mod.vcxproj
@@ -134,6 +134,7 @@
MachineX86
12.0
+ false
true
diff --git a/build/772mod.vcxproj b/build/772mod.vcxproj
index ae5b6eb92..5e12556c1 100644
--- a/build/772mod.vcxproj
+++ b/build/772mod.vcxproj
@@ -133,6 +133,7 @@
MachineX86
12.0
+ false
true
diff --git a/build/773mod.vcxproj b/build/773mod.vcxproj
index 4b7b6cde7..03e172d65 100644
--- a/build/773mod.vcxproj
+++ b/build/773mod.vcxproj
@@ -91,6 +91,7 @@
MachineX86
+ false
true
diff --git a/build/774.vcxproj b/build/774.vcxproj
index 67fbd7510..708143edb 100644
--- a/build/774.vcxproj
+++ b/build/774.vcxproj
@@ -91,6 +91,7 @@
MachineX86
12.0
+ false
true
diff --git a/build/775.vcxproj b/build/775.vcxproj
index 7706488a7..9c8dd9581 100644
--- a/build/775.vcxproj
+++ b/build/775.vcxproj
@@ -133,6 +133,7 @@
MachineX86
+ false
true
diff --git a/build/776mod.vcxproj b/build/776mod.vcxproj
index ae7eb34d9..2f18e5b32 100644
--- a/build/776mod.vcxproj
+++ b/build/776mod.vcxproj
@@ -90,6 +90,7 @@
MachineX86
+ false
true
diff --git a/build/777.vcxproj b/build/777.vcxproj
index 328380ee5..17f112f41 100644
--- a/build/777.vcxproj
+++ b/build/777.vcxproj
@@ -90,6 +90,7 @@
MachineX86
+ false
true
diff --git a/cd/test/770638.txt b/cd/test/770638.txt
new file mode 100644
index 000000000..d12cc4945
--- /dev/null
+++ b/cd/test/770638.txt
@@ -0,0 +1,3 @@
+770.exe
+
+Aggiunti controlli per non generare pagamenti su registrazioni cancellate
diff --git a/cd/test/770638a.ini b/cd/test/770638a.ini
new file mode 100644
index 000000000..4a34ac4dd
--- /dev/null
+++ b/cd/test/770638a.ini
@@ -0,0 +1,29 @@
+[Main]
+Demo=0
+
+[770]
+Edit_38 = 770 -2
+Edit_4 = 770 -3
+File(0) = 770.exe|X
+Patch = 638
+Versione = 21511200
+
+[7799]
+Kill(0) = batbcaf.msk|x
+Kill(1) = batbca7.msk|x
+Kill(2) = batbent.msk|x
+
+[77]
+Data = 06-06-2016
+Descrizione = Percipienti (Mod.770)
+Dischi = 1
+Edit_4 = 770 -3
+Moduli = ba
+OEM =
+Patch = 638
+PostProcess =
+PreProcess =
+Prezzo(1) =
+Prezzo(2) =
+Versione = 21511200
+
diff --git a/cd/test/770638a1.zip b/cd/test/770638a1.zip
new file mode 100644
index 000000000..42015d4a2
Binary files /dev/null and b/cd/test/770638a1.zip differ
diff --git a/cd/test/bs0638.txt b/cd/test/bs0638.txt
new file mode 100644
index 000000000..dc0d06fd1
--- /dev/null
+++ b/cd/test/bs0638.txt
@@ -0,0 +1,3 @@
+bs0.exe
+
+Aggiunti riferimenti fatturazione elettronica
\ No newline at end of file
diff --git a/cd/test/bs0638a.ini b/cd/test/bs0638a.ini
new file mode 100644
index 000000000..b8365528b
--- /dev/null
+++ b/cd/test/bs0638a.ini
@@ -0,0 +1,21 @@
+[Main]
+Demo=0
+
+[bs1]
+File(0) = bs0.exe|X
+Patch = 0638
+Versione = 21511200
+
+[bs]
+Data = 23-10-2018
+Descrizione = Bee Store
+Dischi = 1
+Moduli = ve
+OEM =
+Patch = 638
+PostProcess =
+PreProcess =
+Prezzo(1) =
+Prezzo(2) =
+Versione = 21511200
+
diff --git a/cd/test/bs0638a1.zip b/cd/test/bs0638a1.zip
new file mode 100644
index 000000000..4bdc39dac
Binary files /dev/null and b/cd/test/bs0638a1.zip differ
diff --git a/src/m770/770100.cpp b/src/m770/770100.cpp
index 5d659a010..b10aabfcc 100755
--- a/src/m770/770100.cpp
+++ b/src/m770/770100.cpp
@@ -362,10 +362,10 @@ bool TSchedaPercipienti::agg_pagamenti(const TRectype& sch, const TDate& pag_dal
if (numreg <= 0)
return false;
-#ifdef DBG
- if (numreg == 37788)
- int cazzone = 1;
-#endif
+ const TRectype & mov = cache().get(LF_MOV, numreg);
+
+ if (mov.empty())
+ return false;
TPartite_array partarr;
@@ -426,9 +426,20 @@ bool TSchedaPercipienti::agg_pagamenti(const TRectype& sch, const TDate& pag_dal
for (int rowp = ratapart.last(); rowp > 0; rowp = ratapart.pred(rowp))
{
- const TRectype& pag = ratapart.row(rowp); // Riga pagamento
+ const TRectype& pag = ratapart.row(rowp); // Riga pagamento
+ const TRectype& pagrow = p->riga(pag.get_long(PAGSCA_NRIGP));
+ const long numregpag = pagrow.get_long(PART_NREG);
+
+ if (numregpag > 0L)
+ {
+ const TRectype & movpag = cache().get(LF_MOV, numregpag);
+
+ if (movpag.empty())
+ return false;
+ }
const TRiga_partite& sum = p->riga(rowp); // Riga partite
- if (sum.tipo() == tm_nota_credito)
+
+ if (sum.tipo() == tm_nota_credito)
continue;
if (pag_dal.ok()) // Filtro opzionale su data pagamento