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

@@ -345,7 +345,44 @@ namespace AyaNova.Biz
} }
//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] [Required]
public TimeSpan ResponseTime { get; set; } public TimeSpan ResponseTime { get; set; }
[Required] [Required]
public bool ContractRatesOnly { get; set; } public bool ContractServiceRatesOnly { get; set; }
[Required]
public bool ContractTravelRatesOnly { get; set; }
[Required] [Required]
public decimal PartsOverride { get; set; } public decimal PartsOverride { get; set; }
[Required] [Required]

View File

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

View File

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

View File

@@ -200,6 +200,8 @@
"ContractOverrideType": "Tipo de ajuste de precio", "ContractOverrideType": "Tipo de ajuste de precio",
"ContractOverrideTypePriceDiscount": "Precio menos porcentaje", "ContractOverrideTypePriceDiscount": "Precio menos porcentaje",
"ContractOverrideTypeMarkup": "Costo más 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°)", "CoordinateTypesDecimalDegrees": "Grados decimales (GGG,ggg°)",
"CoordinateTypesDegreesDecimalMinutes": "Grados minutos (GGG° MM,mmm)", "CoordinateTypesDegreesDecimalMinutes": "Grados minutos (GGG° MM,mmm)",
"CoordinateTypesDegreesMinutesSeconds": "Grados Minutos Segundos (GGG° MM' SS,sss')", "CoordinateTypesDegreesMinutesSeconds": "Grados Minutos Segundos (GGG° MM' SS,sss')",

View File

@@ -200,6 +200,8 @@
"ContractOverrideType": "Type d'ajustement de prix", "ContractOverrideType": "Type d'ajustement de prix",
"ContractOverrideTypePriceDiscount": "Prix moins pourcentage", "ContractOverrideTypePriceDiscount": "Prix moins pourcentage",
"ContractOverrideTypeMarkup": "Coût plus 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°)", "CoordinateTypesDecimalDegrees": "Degrés décimaux (DDD,ddd°)",
"CoordinateTypesDegreesDecimalMinutes": "Degrés minutes (DDD° MM,mmm)", "CoordinateTypesDegreesDecimalMinutes": "Degrés minutes (DDD° MM,mmm)",
"CoordinateTypesDegreesMinutesSeconds": "Degrés Minutes Secondes (DDD° MM' SS,sss')", "CoordinateTypesDegreesMinutesSeconds": "Degrés Minutes Secondes (DDD° MM' SS,sss')",

View File

@@ -657,7 +657,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
//CONTRACT //CONTRACT
await ExecQueryAsync("CREATE TABLE acontract (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name TEXT NOT NULL UNIQUE, active BOOL NOT NULL, " 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, " + "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, " + "serviceratesoverride DECIMAL(5,5) NOT NULL, serviceratesoverridetype INTEGER NOT NULL, travelratesoverride DECIMAL(5,5) NOT NULL, travelratesoverridetype INTEGER NOT NULL, "
+ "alertnotes text " + "alertnotes text "
+ ")"); + ")");