BillingData: Fix collapsing tested with permutations
All checks were successful
Test / Run tests (push) Successful in 3m7s
All checks were successful
Test / Run tests (push) Successful in 3m7s
This commit is contained in:
@ -306,7 +306,8 @@ namespace Elwig.Helpers.Billing {
|
||||
if ((ks.Count > vaributes.Count() * 0.5 && useDefault) || ks.Count == vaributes.Count()) {
|
||||
foreach (var k in ks) {
|
||||
if (!(originalData[$"{k[..2]}/"]?.AsValue().TryGetValue<string>(out var o) ?? false) || o == v)
|
||||
data.Remove(k);
|
||||
if (!(originalData[k.Split('-')[0]]?.AsValue().TryGetValue<string>(out var o2) ?? false) || o2 == v)
|
||||
data.Remove(k);
|
||||
}
|
||||
data["default"] = v;
|
||||
CollapsePaymentData(data, originalData, vaributes, useDefault);
|
||||
@ -317,7 +318,8 @@ namespace Elwig.Helpers.Billing {
|
||||
if ((ks.Count > vaributes.Count() * 0.5 && useDefault) || ks.Count == vaributes.Count()) {
|
||||
foreach (var k in ks) {
|
||||
if (!(originalData[$"{k[..2]}/"]?.AsValue().TryGetValue<decimal>(out var o) ?? false) || o == v)
|
||||
data.Remove(k);
|
||||
if (!(originalData[k.Split('-')[0]]?.AsValue().TryGetValue<decimal>(out var o2) ?? false) || o2 == v)
|
||||
data.Remove(k);
|
||||
}
|
||||
data["default"] = v;
|
||||
CollapsePaymentData(data, originalData, vaributes, useDefault);
|
||||
@ -371,6 +373,15 @@ namespace Elwig.Helpers.Billing {
|
||||
} else if (k.Contains("/-")) {
|
||||
data.Remove(k, out var val);
|
||||
data.Add(k.Replace("/-", "-"), val);
|
||||
if (k[0] == '/' || k.Contains('-')) {
|
||||
foreach (var (k2, o) in originalData) {
|
||||
if (!data.ContainsKey(k2) && k2.Contains('-') && k2.Contains("-" + k.Split('-')[1]) && !k2.Contains("/-")
|
||||
&& (!k2.Contains('/') || k2.Length <= 4 || !data.ContainsKey(k2[2..])))
|
||||
{
|
||||
data[k2] = o?.DeepClone();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user