This commit is contained in:
2022-01-23 19:43:49 +00:00
parent 80d73fc711
commit c7d85751dc
3 changed files with 28 additions and 20 deletions

View File

@@ -823,17 +823,17 @@ namespace AyaNova.Biz
List<FormField> l = new List<FormField>();
l.Add(new FormField { TKey = "WorkOrderSummary", FieldKey = "Notes" });
l.Add(new FormField { TKey = "WorkOrderStatus", FieldKey = "WorkOrderStatus" });
l.Add(new FormField { TKey = "WorkOrderStatus", FieldKey = "LastStatusId" });
l.Add(new FormField { TKey = "Address", FieldKey = "Address" });
l.Add(new FormField { TKey = "WorkOrderCloseByDate", FieldKey = "WorkOrderCloseByDate" });
l.Add(new FormField { TKey = "Project", FieldKey = "Project" });
l.Add(new FormField { TKey = "Contract", FieldKey = "Contract" });
l.Add(new FormField { TKey = "WorkOrderInvoiceNumber", FieldKey = "WorkOrderInvoiceNumber" });
l.Add(new FormField { TKey = "WorkOrderServiceDate", FieldKey = "WorkOrderServiceDate" });
l.Add(new FormField { TKey = "WorkOrderCustomerContactName", FieldKey = "WorkOrderCustomerContactName" });
l.Add(new FormField { TKey = "WorkOrderCustomerReferenceNumber", FieldKey = "WorkOrderCustomerReferenceNumber" });
l.Add(new FormField { TKey = "WorkOrderInternalReferenceNumber", FieldKey = "WorkOrderInternalReferenceNumber" });
l.Add(new FormField { TKey = "WorkOrderOnsite", FieldKey = "WorkOrderOnsite" });
l.Add(new FormField { TKey = "WorkOrderCloseByDate", FieldKey = "CompleteByDate" });
l.Add(new FormField { TKey = "Project", FieldKey = "ProjectId" });
l.Add(new FormField { TKey = "Contract", FieldKey = "ContractId" });
l.Add(new FormField { TKey = "WorkOrderInvoiceNumber", FieldKey = "InvoiceNumber" });
l.Add(new FormField { TKey = "WorkOrderServiceDate", FieldKey = "ServiceDate" });
l.Add(new FormField { TKey = "WorkOrderCustomerContactName", FieldKey = "CustomerContactName" });
l.Add(new FormField { TKey = "WorkOrderCustomerReferenceNumber", FieldKey = "CustomerReferenceNumber" });
l.Add(new FormField { TKey = "WorkOrderInternalReferenceNumber", FieldKey = "InternalReferenceNumber" });
l.Add(new FormField { TKey = "WorkOrderOnsite", FieldKey = "Onsite" });
l.Add(new FormField { TKey = "CustomerSignature", FieldKey = "CustomerSignature" });
l.Add(new FormField { TKey = "TechSignature", FieldKey = "TechSignature" });
l.Add(new FormField { TKey = "Tags", FieldKey = "Tags" });
@@ -856,16 +856,15 @@ namespace AyaNova.Biz
l.Add(new FormField { TKey = "WorkOrderCustom15", FieldKey = "WorkOrderCustom15", IsCustomField = true });
l.Add(new FormField { TKey = "WorkOrderCustom16", FieldKey = "WorkOrderCustom16", IsCustomField = true });
//WORKORDER ITEM
l.Add(new FormField { TKey = "WorkOrderItemSummary", FieldKey = "WorkOrderItemSummary", TKeySection = "WorkOrderItem", Hideable = false });
l.Add(new FormField { TKey = "Sequence", FieldKey = "WorkOrderItemSequence", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemTechNotes", FieldKey = "WorkOrderItemTechNotes", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "Tags", FieldKey = "WorkOrderItemTags", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "Wiki", FieldKey = "WorkOrderItemWiki", TKeySection = "WorkOrderItem" });
//WORKORDER ITEM
l.Add(new FormField { TKey = "Sequence", FieldKey = "Sequence", TKeySection = "WorkOrderItem", Requireable = false });//already required
l.Add(new FormField { TKey = "WorkOrderItemTechNotes", FieldKey = "TechNotes", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "Tags", FieldKey = "WorkOrderItemTags", TKeySection = "WorkOrderItem", ModelProperty="Tags" });
l.Add(new FormField { TKey = "Wiki", FieldKey = "WorkOrderItemWiki", TKeySection = "WorkOrderItem", ModelProperty="Wiki" });
l.Add(new FormField { TKey = "Attachments", FieldKey = "WorkOrderItemAttachments", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemWorkOrderStatusID", FieldKey = "WorkOrderItemWorkOrderStatusID", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemPriorityID", FieldKey = "WorkOrderItemPriorityID", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemRequestDate", FieldKey = "WorkOrderItemRequestDate", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemRequestDate", FieldKey = "RequestDate", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemWarrantyService", FieldKey = "WorkOrderItemWarrantyService", TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemCustom1", FieldKey = "WorkOrderItemCustom1", IsCustomField = true, TKeySection = "WorkOrderItem" });
l.Add(new FormField { TKey = "WorkOrderItemCustom2", FieldKey = "WorkOrderItemCustom2", IsCustomField = true, TKeySection = "WorkOrderItem" });
@@ -1686,9 +1685,15 @@ namespace AyaNova.Biz
public class FormField
{
//CLIENT / SERVER Unique identifier used at BOTH client and server
//MUST MATCH MODEL PROPERTY NAME EXACTLY OR REQUIRED FIELD VALIDATION WON"T WORK
//MUST MATCH MODEL PROPERTY NAME EXACTLY UNLESS ModelProperty is set OR REQUIRED FIELD VALIDATION WON"T WORK
public string FieldKey { get; set; }
//This exists to handle things like workorderitemtags which
//need to use a unique fieldkey but it can't match the model property becuase then
//it would need to be "Tags" but there is already a "Tags" on the workorder header and in units
//so here we can specify an exact property tag to check
public string ModelProperty { get; set; } = null;
//CLIENT Use only for display in customization form
public string TKey { get; set; }

View File

@@ -13,7 +13,7 @@ namespace AyaNova.Biz
{
//No form custom = no template to check against so nothing to do
if (formCustom == null || string.IsNullOrWhiteSpace(formCustom.Template))
return;
return;
var FormTemplate = JArray.Parse(formCustom.Template);
var FormFields = Biz.FormFieldOptionalCustomizableReference.FormFieldReferenceList(formCustom.FormKey);
@@ -33,6 +33,9 @@ namespace AyaNova.Biz
{
//Now get the actual property name from the available fields using the lt key
string RequiredPropertyName = FF.FieldKey;
//there might be a more specific model property due to being a workorder sub item duplicate such as WorkOrderItemTags vs WorkOrderTags
if (FF.ModelProperty != null)
RequiredPropertyName = FF.ModelProperty;
//Is it an indexed collection field?
if (RequiredPropertyName.Contains("."))

View File

@@ -2238,7 +2238,7 @@ namespace AyaNova.Biz
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Notes");
//Any form customizations to validate?
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.WorkOrderItem.ToString());
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.WorkOrder.ToString());//all workorder sub items use the workorder key for customization
if (FormCustomization != null)
{
//Yeppers, do the validation, there are two, the custom fields and the regular fields that might be set to required