This commit is contained in:
2021-03-05 19:10:53 +00:00
parent 4dcc6ebeff
commit f1dbe5c752
7 changed files with 61 additions and 14 deletions

View File

@@ -273,10 +273,10 @@ namespace AyaNova.Biz
}
}
}
if (item.Override == 0)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override");
if (item.OverrideType == ContractOverrideType.NotSet)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType");
if (item.Override == 0)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override");
if (item.OverrideType == ContractOverrideType.NotSet)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType");
}
}
@@ -305,10 +305,10 @@ namespace AyaNova.Biz
}
}
}
if (item.Override == 0)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override");
if (item.OverrideType == ContractOverrideType.NotSet)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType");
if (item.Override == 0)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override");
if (item.OverrideType == ContractOverrideType.NotSet)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType");
}
}
@@ -337,15 +337,52 @@ namespace AyaNova.Biz
}
}
}
if (item.Override == 0)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override");
if (item.OverrideType == ContractOverrideType.NotSet)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType");
if (item.Override == 0)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override");
if (item.OverrideType == ContractOverrideType.NotSet)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType");
}
}
//VALIDATE CONTRACT RATE / PART ITEMS
if (proposedObj.ServiceRateItems.Count ==0)
{
if(proposedObj.ContractServiceRatesOnly){
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, $"ContractRatesOnly");
}
}
else
{
List<string> allTags = new List<string>();
for (int i = 0; i < proposedObj.ContractPartOverrideItems.Count; i++)
{
var item = proposedObj.ContractPartOverrideItems[i];
if (item.Tags.Count < 1)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Tags");
else
{
//add to list, check for dupes
foreach (string s in item.Tags)
{
if (allTags.Contains(s))
{
AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, $"ContractPartOverrideItems[{i}].Tags");
break;
}
else
{
allTags.Add(s);
}
}
}
if (item.Override == 0)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].Override");
if (item.OverrideType == ContractOverrideType.NotSet)
AddError(ApiErrorCode.VALIDATION_REQUIRED, $"ContractPartOverrideItems[{i}].OverrideType");
}
}

View File

@@ -26,7 +26,9 @@ namespace AyaNova.Models
[Required]
public TimeSpan ResponseTime { get; set; }
[Required]
public bool ContractRatesOnly { get; set; }
public bool ContractServiceRatesOnly { get; set; }
[Required]
public bool ContractTravelRatesOnly { get; set; }
[Required]
public decimal PartsOverride { get; set; }
[Required]

View File

@@ -200,6 +200,8 @@
"ContractOverrideType": "Preisanpassungsart",
"ContractOverrideTypePriceDiscount": "Preis minus Prozentsatz",
"ContractOverrideTypeMarkup": "Kosten plus Prozentsatz",
"ContractServiceRatesOnly":"Nur auf Vertragsservicetarife beschränkt",
"ContractTravelRatesOnly":"Nur für vertraglich vereinbarte Reisetarife",
"CoordinateTypesDecimalDegrees": "Dezimalgrad (DDD,ddd°)",
"CoordinateTypesDegreesDecimalMinutes": "Grad Minuten (DDD° MM,mmm)",
"CoordinateTypesDegreesMinutesSeconds": "Grad Minuten Sekunden (DDD° MM' SS,sss')",

View File

@@ -200,6 +200,8 @@
"ContractOverrideType": "Price adjustment type",
"ContractOverrideTypePriceDiscount": "Price minus percentage",
"ContractOverrideTypeMarkup": "Cost plus percentage",
"ContractServiceRatesOnly":"Restricted to contract Service rates only",
"ContractTravelRatesOnly":"Restricted to contract Travel rates only",
"CoordinateTypesDecimalDegrees": "Decimal degrees (DDD.ddd°)",
"CoordinateTypesDegreesDecimalMinutes": "Degrees minutes (DDD° MM.mmm)",
"CoordinateTypesDegreesMinutesSeconds": "Degrees Minutes Seconds (DDD° MM' SS.sss')",

View File

@@ -200,6 +200,8 @@
"ContractOverrideType": "Tipo de ajuste de precio",
"ContractOverrideTypePriceDiscount": "Precio menos porcentaje",
"ContractOverrideTypeMarkup": "Costo más porcentaje",
"ContractServiceRatesOnly":"Restringido a tarifas de servicio contratadas únicamente",
"ContractTravelRatesOnly":"Restringido a contratar tarifas de viaje únicamente",
"CoordinateTypesDecimalDegrees": "Grados decimales (GGG,ggg°)",
"CoordinateTypesDegreesDecimalMinutes": "Grados minutos (GGG° MM,mmm)",
"CoordinateTypesDegreesMinutesSeconds": "Grados Minutos Segundos (GGG° MM' SS,sss')",

View File

@@ -200,6 +200,8 @@
"ContractOverrideType": "Type d'ajustement de prix",
"ContractOverrideTypePriceDiscount": "Prix moins pourcentage",
"ContractOverrideTypeMarkup": "Coût plus pourcentage",
"ContractServiceRatesOnly":"Limité aux tarifs de service contractuels uniquement",
"ContractTravelRatesOnly":"Limité aux tarifs contractuels de voyage uniquement",
"CoordinateTypesDecimalDegrees": "Degrés décimaux (DDD,ddd°)",
"CoordinateTypesDegreesDecimalMinutes": "Degrés minutes (DDD° MM,mmm)",
"CoordinateTypesDegreesMinutesSeconds": "Degrés Minutes Secondes (DDD° MM' SS,sss')",

View File

@@ -657,7 +657,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
//CONTRACT
await ExecQueryAsync("CREATE TABLE acontract (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name TEXT NOT NULL UNIQUE, active BOOL NOT NULL, "
+ "notes TEXT, wiki TEXT, customfields TEXT, tags VARCHAR(255) ARRAY, "
+ "responsetime INTERVAL NOT NULL, contractratesonly BOOL NOT NULL, partsoverride DECIMAL(5,5) NOT NULL, partsoverridetype INTEGER NOT NULL, "
+ "responsetime INTERVAL NOT NULL, contractserviceratesonly BOOL NOT NULL, contracttravelratesonly BOOL NOT NULL, partsoverride DECIMAL(5,5) NOT NULL, partsoverridetype INTEGER NOT NULL, "
+ "serviceratesoverride DECIMAL(5,5) NOT NULL, serviceratesoverridetype INTEGER NOT NULL, travelratesoverride DECIMAL(5,5) NOT NULL, travelratesoverridetype INTEGER NOT NULL, "
+ "alertnotes text "
+ ")");