This commit is contained in:
@@ -1110,7 +1110,7 @@ namespace AyaNova.Biz
|
||||
l.Add(new FormField { TKey = "QuoteValidUntilDate", FieldKey = "QuoteValidUntilDate" });
|
||||
l.Add(new FormField { TKey = "QuoteDateSubmitted", FieldKey = "QuoteDateSubmitted" });
|
||||
l.Add(new FormField { TKey = "QuoteDateApproved", FieldKey = "QuoteDateApproved" });
|
||||
|
||||
|
||||
|
||||
l.Add(new FormField { TKey = "WorkOrderSummary", FieldKey = "WorkOrderSummary" });
|
||||
l.Add(new FormField { TKey = "QuoteQuoteStatusType", FieldKey = "QuoteQuoteStatusType" });
|
||||
@@ -1389,6 +1389,262 @@ namespace AyaNova.Biz
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#region PM
|
||||
{
|
||||
|
||||
//PM
|
||||
List<FormField> l = new List<FormField>();
|
||||
|
||||
//Several mandatory fields in PM header not listed here
|
||||
|
||||
l.Add(new FormField { TKey = "WorkOrderSummary", FieldKey = "WorkOrderSummary" });
|
||||
l.Add(new FormField { TKey = "Address", FieldKey = "Address" });
|
||||
l.Add(new FormField { TKey = "Project", FieldKey = "Project" });
|
||||
l.Add(new FormField { TKey = "Contract", FieldKey = "Contract" });
|
||||
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 = "Tags", FieldKey = "Tags" });
|
||||
l.Add(new FormField { TKey = "Wiki", FieldKey = "Wiki" });
|
||||
l.Add(new FormField { TKey = "Attachments", FieldKey = "Attachments" });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom1", FieldKey = "WorkOrderCustom1", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom2", FieldKey = "WorkOrderCustom2", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom3", FieldKey = "WorkOrderCustom3", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom4", FieldKey = "WorkOrderCustom4", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom5", FieldKey = "WorkOrderCustom5", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom6", FieldKey = "WorkOrderCustom6", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom7", FieldKey = "WorkOrderCustom7", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom8", FieldKey = "WorkOrderCustom8", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom9", FieldKey = "WorkOrderCustom9", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom10", FieldKey = "WorkOrderCustom10", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom11", FieldKey = "WorkOrderCustom11", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom12", FieldKey = "WorkOrderCustom12", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom13", FieldKey = "WorkOrderCustom13", IsCustomField = true });
|
||||
l.Add(new FormField { TKey = "WorkOrderCustom14", FieldKey = "WorkOrderCustom14", IsCustomField = true });
|
||||
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" });
|
||||
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 = "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" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom3", FieldKey = "WorkOrderItemCustom3", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom4", FieldKey = "WorkOrderItemCustom4", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom5", FieldKey = "WorkOrderItemCustom5", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom6", FieldKey = "WorkOrderItemCustom6", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom7", FieldKey = "WorkOrderItemCustom7", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom8", FieldKey = "WorkOrderItemCustom8", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom9", FieldKey = "WorkOrderItemCustom9", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom10", FieldKey = "WorkOrderItemCustom10", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom11", FieldKey = "WorkOrderItemCustom11", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom12", FieldKey = "WorkOrderItemCustom12", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom13", FieldKey = "WorkOrderItemCustom13", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom14", FieldKey = "WorkOrderItemCustom14", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom15", FieldKey = "WorkOrderItemCustom15", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemCustom16", FieldKey = "WorkOrderItemCustom16", IsCustomField = true, TKeySection = "WorkOrderItem" });
|
||||
|
||||
//WORKORDER ITEM SUB SECTIONS BLOCK
|
||||
//(used to remove an entire child collection at once)
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitList", FieldKey = "WorkOrderItemUnitList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemScheduledUserList", FieldKey = "WorkOrderItemScheduledUserList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTasks", FieldKey = "WorkOrderItemTasks", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartList", FieldKey = "WorkOrderItemPartList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartRequestList", FieldKey = "WorkOrderItemPartRequestList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborList", FieldKey = "WorkOrderItemLaborList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelList", FieldKey = "WorkOrderItemTravelList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseList", FieldKey = "WorkOrderItemExpenseList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanList", FieldKey = "WorkOrderItemLoanList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceList", FieldKey = "WorkOrderItemOutsideServiceList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
|
||||
//WORKORDER ITEM UNIT
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitNotes", FieldKey = "WorkOrderItemUnitNotes", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "Unit", FieldKey = "WorkOrderItemUnit", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "UnitModelModelNumber", FieldKey = "UnitModelModelNumber", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "UnitModelVendorID", FieldKey = "UnitModelVendorID", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "UnitModelName", FieldKey = "UnitModelName", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "UnitDescription", FieldKey = "UnitDescription", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "Tags", FieldKey = "WorkOrderItemUnitTags", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "UnitWarrantyInfo", FieldKey = "UnitWarrantyInfo", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "Wiki", FieldKey = "WorkOrderItemUnitWiki", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "Attachments", FieldKey = "WorkOrderItemUnitAttachments", TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom1", FieldKey = "WorkOrderItemUnitCustom1", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom2", FieldKey = "WorkOrderItemUnitCustom2", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom3", FieldKey = "WorkOrderItemUnitCustom3", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom4", FieldKey = "WorkOrderItemUnitCustom4", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom5", FieldKey = "WorkOrderItemUnitCustom5", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom6", FieldKey = "WorkOrderItemUnitCustom6", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom7", FieldKey = "WorkOrderItemUnitCustom7", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom8", FieldKey = "WorkOrderItemUnitCustom8", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom9", FieldKey = "WorkOrderItemUnitCustom9", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom10", FieldKey = "WorkOrderItemUnitCustom10", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom11", FieldKey = "WorkOrderItemUnitCustom11", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom12", FieldKey = "WorkOrderItemUnitCustom12", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom13", FieldKey = "WorkOrderItemUnitCustom13", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom14", FieldKey = "WorkOrderItemUnitCustom14", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom15", FieldKey = "WorkOrderItemUnitCustom15", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemUnitCustom16", FieldKey = "WorkOrderItemUnitCustom16", IsCustomField = true, TKeySection = "WorkOrderItemUnit" });
|
||||
|
||||
//WORKORDER ITEM SCHEDULED USER
|
||||
l.Add(new FormField { TKey = "WorkOrderItemScheduledUserEstimatedQuantity", FieldKey = "WorkOrderItemScheduledUserEstimatedQuantity", TKeySection = "WorkOrderItemScheduledUser" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemScheduledUserServiceRateID", FieldKey = "WorkOrderItemScheduledUserServiceRateID", TKeySection = "WorkOrderItemScheduledUser" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemScheduledUserStartDate", FieldKey = "WorkOrderItemScheduledUserStartDate", TKeySection = "WorkOrderItemScheduledUser" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemScheduledUserStopDate", FieldKey = "WorkOrderItemScheduledUserStopDate", TKeySection = "WorkOrderItemScheduledUser" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemScheduledUserUserID", FieldKey = "WorkOrderItemScheduledUserUserID", TKeySection = "WorkOrderItemScheduledUser" });
|
||||
|
||||
//WORKORDER ITEM TASKS
|
||||
l.Add(new FormField { TKey = "Sequence", FieldKey = "WorkOrderItemTaskSequence", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskTaskID", FieldKey = "WorkOrderItemTaskTaskID", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskUser", FieldKey = "WorkOrderItemTaskUser", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskCompletedDate", FieldKey = "WorkOrderItemTaskCompletedDate", TKeySection = "WorkOrderItemTask" });
|
||||
|
||||
//WORKORDER ITEM PART
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartDescription", FieldKey = "WorkOrderItemPartDescription", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "PurchaseOrderItemSerialNumbers", FieldKey = "WorkOrderItemPartSerials", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartPartID", FieldKey = "WorkOrderItemPartPartID", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartPartWarehouseID", FieldKey = "WorkOrderItemPartPartWarehouseID", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartQuantity", FieldKey = "WorkOrderItemPartQuantity", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartTaxPartSaleID", FieldKey = "WorkOrderItemPartTaxPartSaleID", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "PartName", FieldKey = "PartName", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "PartUPC", FieldKey = "PartUPC", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "Cost", FieldKey = "PartCost", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "ListPrice", FieldKey = "PartListPrice", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "Price", FieldKey = "PartPriceViz", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "PriceOverride", FieldKey = "PartPriceOverride", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "UnitOfMeasure", FieldKey = "PartUnitOfMeasureViz", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "NetPrice", FieldKey = "PartNetViz", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "TaxAAmt", FieldKey = "PartTaxAViz", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "TaxBAmt", FieldKey = "PartTaxBViz", TKeySection = "WorkOrderItemParts" });
|
||||
l.Add(new FormField { TKey = "LineTotal", FieldKey = "PartLineTotalViz", TKeySection = "WorkOrderItemParts" });
|
||||
|
||||
//WORKORDER ITEM PART REQUEST
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartRequestPartID", FieldKey = "WorkOrderItemPartRequestPartID", TKeySection = "WorkOrderItemPartRequests" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartRequestPartWarehouseID", FieldKey = "WorkOrderItemPartRequestPartWarehouseID", TKeySection = "WorkOrderItemPartRequests" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartRequestQuantity", FieldKey = "WorkOrderItemPartRequestQuantity", TKeySection = "WorkOrderItemPartRequests" });
|
||||
l.Add(new FormField { TKey = "PartUPC", FieldKey = "PartRequestPartUPC", TKeySection = "WorkOrderItemPartRequests" });
|
||||
l.Add(new FormField { TKey = "PurchaseOrder", FieldKey = "WorkOrderItemPartRequestPurchaseOrder", TKeySection = "WorkOrderItemPartRequests" });
|
||||
l.Add(new FormField { TKey = "PurchaseOrderExpectedReceiveDate", FieldKey = "WorkOrderItemPartRequestExpectedReceiveDate", TKeySection = "WorkOrderItemPartRequests" });
|
||||
l.Add(new FormField { TKey = "PurchaseOrderOrderedDate", FieldKey = "WorkOrderItemPartRequestOrderedDate", TKeySection = "WorkOrderItemPartRequests" });
|
||||
// l.Add(new FormField { TKey = "WorkOrderItemPartRequestOnOrder", FieldKey = "WorkOrderItemPartRequestOnOrder", TKeySection = "WorkOrderItemPartRequests" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemPartRequestReceived", FieldKey = "WorkOrderItemPartRequestReceived", TKeySection = "WorkOrderItemPartRequests" });
|
||||
|
||||
//WORKORDER ITEM LABOR
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborServiceStartDate", FieldKey = "WorkOrderItemLaborServiceStartDate", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborServiceStopDate", FieldKey = "WorkOrderItemLaborServiceStopDate", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborServiceRateQuantity", FieldKey = "WorkOrderItemLaborServiceRateQuantity", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborServiceRateID", FieldKey = "WorkOrderItemLaborServiceRateID", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborServiceDetails", FieldKey = "WorkOrderItemLaborServiceDetails", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborUserID", FieldKey = "WorkOrderItemLaborUserID", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborNoChargeQuantity", FieldKey = "WorkOrderItemLaborNoChargeQuantity", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborTaxRateSaleID", FieldKey = "WorkOrderItemLaborTaxRateSaleID", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "Cost", FieldKey = "LaborCostViz", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "ListPrice", FieldKey = "LaborListPriceViz", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "Price", FieldKey = "LaborPriceViz", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "PriceOverride", FieldKey = "LaborPriceOverride", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "UnitOfMeasure", FieldKey = "LaborUnitOfMeasureViz", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "NetPrice", FieldKey = "LaborNetViz", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "TaxAAmt", FieldKey = "LaborTaxAViz", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "TaxBAmt", FieldKey = "LaborTaxBViz", TKeySection = "WorkOrderItemLabors" });
|
||||
l.Add(new FormField { TKey = "LineTotal", FieldKey = "LaborLineTotalViz", TKeySection = "WorkOrderItemLabors" });
|
||||
|
||||
//WORKORDER ITEM TRAVEL
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelStartDate", FieldKey = "WorkOrderItemTravelStartDate", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelStopDate", FieldKey = "WorkOrderItemTravelStopDate", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelRateQuantity", FieldKey = "WorkOrderItemTravelRateQuantity", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelServiceRateID", FieldKey = "WorkOrderItemTravelServiceRateID", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelDetails", FieldKey = "WorkOrderItemTravelDetails", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelUserID", FieldKey = "WorkOrderItemTravelUserID", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelNoChargeQuantity", FieldKey = "WorkOrderItemTravelNoChargeQuantity", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelTaxRateSaleID", FieldKey = "WorkOrderItemTravelTaxRateSaleID", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "Cost", FieldKey = "TravelCostViz", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "ListPrice", FieldKey = "TravelListPriceViz", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "Price", FieldKey = "TravelPriceViz", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "PriceOverride", FieldKey = "TravelPriceOverride", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "UnitOfMeasure", FieldKey = "TravelUnitOfMeasureViz", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "NetPrice", FieldKey = "TravelNetViz", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "TaxAAmt", FieldKey = "TravelTaxAViz", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "TaxBAmt", FieldKey = "TravelTaxBViz", TKeySection = "WorkOrderItemTravels" });
|
||||
l.Add(new FormField { TKey = "LineTotal", FieldKey = "TravelLineTotalViz", TKeySection = "WorkOrderItemTravels" });
|
||||
|
||||
//WORKORDER ITEM EXPENSES
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeAmount", FieldKey = "WorkOrderItemExpenseChargeAmount", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeTaxCodeID", FieldKey = "WorkOrderItemExpenseChargeTaxCodeID", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseTaxPaid", FieldKey = "WorkOrderItemExpenseTaxPaid", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeToCustomer", FieldKey = "WorkOrderItemExpenseChargeToCustomer", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseDescription", FieldKey = "WorkOrderItemExpenseDescription", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseName", FieldKey = "WorkOrderItemExpenseName", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseReimburseUser", FieldKey = "WorkOrderItemExpenseReimburseUser", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseTotalCost", FieldKey = "WorkOrderItemExpenseTotalCost", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseUserID", FieldKey = "WorkOrderItemExpenseUserID", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "TaxAAmt", FieldKey = "ExpenseTaxAViz", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "TaxBAmt", FieldKey = "ExpenseTaxBViz", TKeySection = "WorkOrderItemExpense" });
|
||||
l.Add(new FormField { TKey = "LineTotal", FieldKey = "ExpenseLineTotalViz", TKeySection = "WorkOrderItemExpense" });
|
||||
|
||||
//WORKORDER ITEM LOAN
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanNotes", FieldKey = "WorkOrderItemLoanNotes", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanOutDate", FieldKey = "WorkOrderItemLoanOutDate", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanDueDate", FieldKey = "WorkOrderItemLoanDueDate", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanReturnDate", FieldKey = "WorkOrderItemLoanReturnDate", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanTaxCodeID", FieldKey = "WorkOrderItemLoanTaxCodeID", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanUnit", FieldKey = "WorkOrderItemLoanUnit", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanQuantity", FieldKey = "WorkOrderItemLoanQuantity", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLoanRate", FieldKey = "WorkOrderItemLoanRate", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "Cost", FieldKey = "LoanCost", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "ListPrice", FieldKey = "LoanListPrice", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "Price", FieldKey = "LoanPriceViz", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "PriceOverride", FieldKey = "LoanPriceOverride", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "UnitOfMeasure", FieldKey = "LoanUnitOfMeasureViz", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "NetPrice", FieldKey = "LoanNetViz", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "TaxAAmt", FieldKey = "LoanTaxAViz", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "TaxBAmt", FieldKey = "LoanTaxBViz", TKeySection = "WorkOrderItemLoans" });
|
||||
l.Add(new FormField { TKey = "LineTotal", FieldKey = "LoanLineTotalViz", TKeySection = "WorkOrderItemLoans" });
|
||||
|
||||
//WORKORDER ITEM OUTSIDE SERVICES
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceNotes", FieldKey = "WorkOrderItemOutsideServiceNotes", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "Unit", FieldKey = "WorkOrderItemOutsideServiceUnit", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceVendorSentToID", FieldKey = "WorkOrderItemOutsideServiceVendorSentToID", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceVendorSentViaID", FieldKey = "WorkOrderItemOutsideServiceVendorSentViaID", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceRMANumber", FieldKey = "WorkOrderItemOutsideServiceRMANumber", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceTrackingNumber", FieldKey = "WorkOrderItemOutsideServiceTrackingNumber", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceRepairCost", FieldKey = "WorkOrderItemOutsideServiceRepairCost", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceRepairPrice", FieldKey = "WorkOrderItemOutsideServiceRepairPrice", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceShippingCost", FieldKey = "WorkOrderItemOutsideServiceShippingCost", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceShippingPrice", FieldKey = "WorkOrderItemOutsideServiceShippingPrice", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceDateSent", FieldKey = "WorkOrderItemOutsideServiceDateSent", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceDateETA", FieldKey = "WorkOrderItemOutsideServiceDateETA", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceDateReturned", FieldKey = "WorkOrderItemOutsideServiceDateReturned", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "TaxCode", FieldKey = "WorkOrderItemOutsideServiceTaxCode", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "Cost", FieldKey = "OutsideServiceCostViz", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "Price", FieldKey = "OutsideServicePriceViz", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "NetPrice", FieldKey = "OutsideServiceNetViz", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "TaxAAmt", FieldKey = "OutsideServiceTaxAViz", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "TaxBAmt", FieldKey = "OutsideServiceTaxBViz", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
l.Add(new FormField { TKey = "LineTotal", FieldKey = "OutsideServiceLineTotalViz", TKeySection = "WorkOrderItemOutsideServiceList" });
|
||||
|
||||
|
||||
_formFields.Add(AyaType.PM.ToString(), l);
|
||||
|
||||
}
|
||||
#endregion quote
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#region CustomerServiceRequest
|
||||
{
|
||||
List<FormField> l = new List<FormField>();
|
||||
|
||||
@@ -13,7 +13,406 @@ using System.Collections.Generic;
|
||||
namespace AyaNova.Biz
|
||||
{
|
||||
|
||||
#region v7 code for Generate service workorder from PM
|
||||
/* /// <summary>
|
||||
/// Generates a service workorder from a PM type Workorder
|
||||
/// </summary>
|
||||
/// <param name="SourceWorkorderID">ID of PM</param>
|
||||
/// <returns>A new service workorder</returns>
|
||||
public static Workorder NewServiceWorkorderFromPM(Guid SourceWorkorderID)
|
||||
{
|
||||
//Fetch the source workorder and verify it's a PM
|
||||
Workorder source = Workorder.GetItemNoMRU(SourceWorkorderID);
|
||||
if (source.WorkorderType != WorkorderTypes.PreventiveMaintenance)
|
||||
throw new NotSupportedException(LocalizedTextTable.GetLocalizedTextDirect("Workorder.Label.Error.SourceInvalidType"));
|
||||
|
||||
//if it's inactive then there is nothing to Process
|
||||
//this is a backstop, the list the pm is being generated off of
|
||||
//should have already selected only active items that have not reached their
|
||||
//expiry date
|
||||
if (source.WorkorderPreventiveMaintenance.Active == false)
|
||||
{
|
||||
throw new System.ApplicationException("NewServiceWorkorderFromPM: source PM workorder is not active");
|
||||
}
|
||||
|
||||
if (source.WorkorderPreventiveMaintenance.StopGeneratingDate != System.DBNull.Value &&
|
||||
source.WorkorderPreventiveMaintenance.dtStopGeneratingDate < DBUtil.CurrentWorkingDateTime)
|
||||
{
|
||||
throw new System.ApplicationException("NewServiceWorkorderFromPM: source PM workorder is past StopGeneratingDate");
|
||||
}
|
||||
|
||||
//Ok, so far so good, create the new one
|
||||
bool bUseInventory = AyaBizUtils.GlobalSettings.UseInventory;
|
||||
|
||||
//case 1387
|
||||
Workorder dest = Workorder.NewItem(WorkorderTypes.Service);
|
||||
|
||||
////NOTE: THIS DOESN'T CALL THE SHARED NEW ITEM METHOD
|
||||
//Workorder dest = new Workorder();
|
||||
//dest.WorkorderType=WorkorderTypes.Service;
|
||||
//dest.mService=WorkorderService.NewItem(dest);
|
||||
|
||||
#region copy workorder data
|
||||
|
||||
//WORKORDER HEADER
|
||||
dest.ClientID = source.ClientID;
|
||||
dest.CustomerContactName = source.CustomerContactName;
|
||||
dest.CustomerReferenceNumber = source.CustomerReferenceNumber;
|
||||
dest.mFromPMID = source.WorkorderPreventiveMaintenance.ID;
|
||||
dest.InternalReferenceNumber = source.InternalReferenceNumber;
|
||||
dest.Onsite = source.Onsite;
|
||||
dest.ProjectID = source.ProjectID;
|
||||
//dest.RegionID=source.RegionID;
|
||||
dest.Summary = source.Summary;
|
||||
dest.WorkorderCategoryID = source.WorkorderCategoryID;
|
||||
|
||||
//PM SPECIFIC
|
||||
dest.WorkorderService.WorkorderStatusID = source.WorkorderPreventiveMaintenance.WorkorderStatusID;
|
||||
//Date stuff (note that date is assumed to have been advanced the last time a workorder was
|
||||
//generated off the pm (see bottom of this method for that))
|
||||
dest.WorkorderService.ServiceDate = source.WorkorderPreventiveMaintenance.NextServiceDate;
|
||||
|
||||
|
||||
//WORKORDERITEMS
|
||||
foreach (WorkorderItem wisource in source.WorkorderItems)
|
||||
{
|
||||
WorkorderItem widest = dest.WorkorderItems.Add(dest);
|
||||
widest.Custom0 = wisource.Custom0;
|
||||
widest.Custom1 = wisource.Custom1;
|
||||
widest.Custom2 = wisource.Custom2;
|
||||
widest.Custom3 = wisource.Custom3;
|
||||
widest.Custom4 = wisource.Custom4;
|
||||
widest.Custom5 = wisource.Custom5;
|
||||
widest.Custom6 = wisource.Custom6;
|
||||
widest.Custom7 = wisource.Custom7;
|
||||
widest.Custom8 = wisource.Custom8;
|
||||
widest.Custom9 = wisource.Custom9;
|
||||
widest.PriorityID = wisource.PriorityID;
|
||||
widest.RequestDate = wisource.RequestDate;
|
||||
widest.Summary = wisource.Summary;
|
||||
widest.TechNotes = wisource.TechNotes;
|
||||
widest.TypeID = wisource.TypeID;
|
||||
widest.UnitID = wisource.UnitID;
|
||||
widest.WarrantyService = wisource.WarrantyService;
|
||||
widest.WorkorderItemUnitServiceTypeID = wisource.WorkorderItemUnitServiceTypeID;
|
||||
widest.WorkorderStatusID = wisource.WorkorderStatusID;
|
||||
|
||||
//PARTS
|
||||
foreach (WorkorderItemPart partsource in wisource.Parts)
|
||||
{
|
||||
WorkorderItemPart partdest = widest.Parts.Add(widest);
|
||||
partdest.Cost = partsource.Cost;
|
||||
partdest.Description = partsource.Description;
|
||||
partdest.Discount = partsource.Discount;
|
||||
partdest.DiscountType = partsource.DiscountType;
|
||||
partdest.PartID = partsource.PartID;
|
||||
partdest.PartWarehouseID = partsource.PartWarehouseID;
|
||||
partdest.Price = partsource.Price;
|
||||
if (bUseInventory)
|
||||
{
|
||||
partdest.QuantityReserved = partsource.Quantity;
|
||||
partdest.Quantity = 0;
|
||||
}
|
||||
else
|
||||
partdest.Quantity = partsource.Quantity;
|
||||
partdest.TaxPartSaleID = partsource.TaxPartSaleID;
|
||||
|
||||
|
||||
}
|
||||
|
||||
//**********************************************************
|
||||
//Part requests would be here if copying a service workorder
|
||||
//**********************************************************
|
||||
|
||||
//SCHEDULED USERS
|
||||
foreach (WorkorderItemScheduledUser usersource in wisource.ScheduledUsers)
|
||||
{
|
||||
WorkorderItemScheduledUser userdest = widest.ScheduledUsers.Add(widest);
|
||||
userdest.EstimatedQuantity = usersource.EstimatedQuantity;
|
||||
userdest.ServiceRateID = usersource.ServiceRateID;
|
||||
userdest.StartDate = usersource.StartDate;
|
||||
userdest.StopDate = usersource.StopDate;
|
||||
userdest.UserID = usersource.UserID;
|
||||
|
||||
}
|
||||
|
||||
//LABOR
|
||||
foreach (WorkorderItemLabor laborsource in wisource.Labors)
|
||||
{
|
||||
WorkorderItemLabor labordest = widest.Labors.Add(widest);
|
||||
labordest.NoChargeQuantity = laborsource.NoChargeQuantity;
|
||||
labordest.ServiceDetails = laborsource.ServiceDetails;
|
||||
labordest.ServiceRateID = laborsource.ServiceRateID;
|
||||
labordest.ServiceRateQuantity = laborsource.ServiceRateQuantity;
|
||||
labordest.ServiceStartDate = laborsource.ServiceStartDate;
|
||||
labordest.ServiceStopDate = laborsource.ServiceStopDate;
|
||||
labordest.TaxRateSaleID = laborsource.TaxRateSaleID;
|
||||
labordest.UserID = laborsource.UserID;
|
||||
|
||||
}
|
||||
|
||||
//**********************************************************
|
||||
//Expenses would be here if copying a service workorder
|
||||
//**********************************************************
|
||||
|
||||
|
||||
//**********************************************************
|
||||
//Loans would be here if copying a service workorder
|
||||
//**********************************************************
|
||||
|
||||
//TRAVEL
|
||||
foreach (WorkorderItemTravel travelsource in wisource.Travels)
|
||||
{
|
||||
WorkorderItemTravel traveldest = widest.Travels.Add(widest);
|
||||
traveldest.TravelDetails = travelsource.TravelDetails;
|
||||
traveldest.TravelRateID = travelsource.TravelRateID;
|
||||
traveldest.TravelRateQuantity = travelsource.TravelRateQuantity;
|
||||
traveldest.TravelStartDate = travelsource.TravelStartDate;
|
||||
traveldest.TravelStopDate = travelsource.TravelStopDate;
|
||||
traveldest.TaxRateSaleID = travelsource.TaxRateSaleID;
|
||||
traveldest.UserID = travelsource.UserID;
|
||||
traveldest.Distance = travelsource.Distance;
|
||||
traveldest.Notes = travelsource.Notes;
|
||||
traveldest.NoChargeQuantity = travelsource.NoChargeQuantity;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//TASKS
|
||||
foreach (WorkorderItemTask tasksource in wisource.Tasks)
|
||||
{
|
||||
WorkorderItemTask taskdest = widest.Tasks.Add(widest);
|
||||
taskdest.TaskGroupID = tasksource.TaskGroupID;
|
||||
taskdest.TaskID = tasksource.TaskID;
|
||||
|
||||
}
|
||||
|
||||
//**********************************************************
|
||||
//Outside service would be here if copying a service workorder
|
||||
//**********************************************************
|
||||
|
||||
}//foreach workorderitem loop
|
||||
|
||||
//case 1387
|
||||
|
||||
//Delete the auto-created dummy workorder item
|
||||
//if there are more than it present
|
||||
if (dest.WorkorderItems.Count > 1)
|
||||
dest.WorkorderItems.RemoveAt(0);
|
||||
|
||||
#endregion copy workorder data
|
||||
|
||||
//Now save it to ensure it was created properly so
|
||||
//that we know it's now safe to advance the next service date and all others
|
||||
|
||||
//case 868 previously didn't set dest to result of save causing it to be a copy
|
||||
dest = (Workorder)dest.Save();
|
||||
|
||||
|
||||
|
||||
|
||||
#region Calculate reschedule dates
|
||||
//Get the current next service date for calcs
|
||||
DateTime dtNext = GetDateFromSpanAndUnit(source.WorkorderPreventiveMaintenance.dtNextServiceDate,
|
||||
source.WorkorderPreventiveMaintenance.GenerateSpanUnit,
|
||||
source.WorkorderPreventiveMaintenance.GenerateSpan);
|
||||
|
||||
//Get to the desired day of the week if necessary...
|
||||
if (source.mWorkorderPreventiveMaintenance.DayOfTheWeek != AyaDayOfWeek.AnyDayOfWeek)
|
||||
{
|
||||
DayOfWeek desired = AyaToSystemDayOfWeek(source.mWorkorderPreventiveMaintenance.DayOfTheWeek);
|
||||
while (dtNext.DayOfWeek != desired)
|
||||
{
|
||||
dtNext = dtNext.AddDays(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Get the time span to add to all the other relevant dates on teh workorder to match
|
||||
//the amount the next service date has been advanced
|
||||
System.TimeSpan tsToNext = dtNext - source.WorkorderPreventiveMaintenance.dtNextServiceDate;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
//Will the next workorder service date fall after the
|
||||
//stop generating date?
|
||||
if (source.WorkorderPreventiveMaintenance.StopGeneratingDate != System.DBNull.Value &&
|
||||
source.WorkorderPreventiveMaintenance.dtStopGeneratingDate < dtNext)
|
||||
{
|
||||
//Yes it will, so set it to inactive and bail out
|
||||
source.WorkorderPreventiveMaintenance.Active = false;
|
||||
source.Save();
|
||||
return dest;
|
||||
}
|
||||
|
||||
#region Reschedule PM
|
||||
|
||||
source.WorkorderPreventiveMaintenance.dtNextServiceDate = dtNext;
|
||||
//Calcs the generate date (threshold date)
|
||||
source.WorkorderPreventiveMaintenance.SetGenerateDate();
|
||||
//WORKORDERITEMS
|
||||
foreach (WorkorderItem wisource in source.WorkorderItems)
|
||||
{
|
||||
|
||||
wisource.RequestDate = wisource.RequestDate;
|
||||
|
||||
|
||||
//PARTS
|
||||
//no date changes required
|
||||
|
||||
|
||||
//SCHEDULED USERS
|
||||
foreach (WorkorderItemScheduledUser usersource in wisource.ScheduledUsers)
|
||||
{
|
||||
//Changed: 2-Oct-2006
|
||||
//check to not add a date if the original date was empty
|
||||
if (usersource.StartDate != System.DBNull.Value)
|
||||
usersource.dtStartDate = usersource.dtStartDate.Add(tsToNext);
|
||||
|
||||
if (usersource.StopDate != System.DBNull.Value)
|
||||
usersource.dtStopDate = usersource.dtStopDate.Add(tsToNext);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//LABOR
|
||||
foreach (WorkorderItemLabor laborsource in wisource.Labors)
|
||||
{
|
||||
//Changed: 2-Oct-2006
|
||||
//check to not add a date if the original date was empty
|
||||
if (laborsource.ServiceStartDate != System.DBNull.Value)
|
||||
laborsource.dtServiceStartDate = laborsource.dtServiceStartDate.Add(tsToNext);
|
||||
|
||||
if (laborsource.ServiceStopDate != System.DBNull.Value)
|
||||
laborsource.dtServiceStopDate = laborsource.dtServiceStopDate.Add(tsToNext);
|
||||
|
||||
}
|
||||
|
||||
//**********************************************************
|
||||
//Expenses would be here if copying a service workorder
|
||||
//**********************************************************
|
||||
|
||||
|
||||
//**********************************************************
|
||||
//Loans would be here if copying a service workorder
|
||||
//**********************************************************
|
||||
|
||||
//TRAVEL
|
||||
foreach (WorkorderItemTravel travelsource in wisource.Travels)
|
||||
{
|
||||
//Changed: 2-Oct-2006
|
||||
//check to not add a date if the original date was empty
|
||||
if (travelsource.TravelStartDate != DBNull.Value)
|
||||
travelsource.dtTravelStartDate = travelsource.dtTravelStartDate.Add(tsToNext);
|
||||
|
||||
if (travelsource.TravelStopDate != DBNull.Value)
|
||||
travelsource.dtTravelStopDate = travelsource.dtTravelStopDate.Add(tsToNext);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//TASKS
|
||||
|
||||
|
||||
//**********************************************************
|
||||
//Outside service would be here if copying a service workorder
|
||||
//**********************************************************
|
||||
|
||||
}//foreach workorderitem loop
|
||||
#endregion reschedule pm
|
||||
|
||||
//Ok, Source PM is now rescheduled, save it
|
||||
|
||||
|
||||
|
||||
//case 1959 try catch block added to prevent infinite generation issue
|
||||
try
|
||||
{
|
||||
source = (Workorder)source.Save();
|
||||
}
|
||||
catch (Exception exx)
|
||||
{
|
||||
dest.Delete();
|
||||
dest.Save();
|
||||
//crack the exception
|
||||
while (exx.InnerException != null)
|
||||
exx = exx.InnerException;
|
||||
|
||||
Memo mwarn = Memo.NewItem();
|
||||
mwarn.ToID = User.AdministratorID;
|
||||
|
||||
//case 3826
|
||||
if (User.CurrentUserType == UserTypes.Utility)
|
||||
{
|
||||
//Utility accounts should not be sending memos, it fucks up downstream
|
||||
//trying to view the memo, also it's confusing
|
||||
mwarn.FromID = User.AdministratorID;
|
||||
}
|
||||
else
|
||||
{
|
||||
mwarn.FromID = User.CurrentThreadUserID;
|
||||
}
|
||||
|
||||
|
||||
mwarn.Subject = "SYSTEM WARNING: Preventive Maintenance WO PROBLEM";
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.AppendLine("This is an automated message sent on behalf of the current user from the \"NewServiceWorkorderFromPM\" module.");
|
||||
sb.AppendLine("This message concerns Preventive Maintenance workorder number " + source.WorkorderPreventiveMaintenance.PreventiveMaintenanceNumber.ToString());
|
||||
sb.AppendLine("The Preventive Maintenance workorder had an error when trying to save it during generation of a service workorder.");
|
||||
sb.AppendLine("This kind of problem could result in loop which generates a very large number of identical service workorders.");
|
||||
sb.AppendLine("In order to prevent this the operation has been stopped and this message generated so you can fix the problem with the source PM workorder.");
|
||||
sb.AppendLine("See below for details and examine the PM workorder for problems or contact support@ayanova.com for help with the information in this message.");
|
||||
sb.AppendLine("Here are the details of the error preventing save:");
|
||||
sb.AppendLine("=================================");
|
||||
sb.AppendLine("Exception saving source PM:");
|
||||
sb.AppendLine(exx.Message);
|
||||
sb.AppendLine("=================================");
|
||||
string sSourceErr = source.GetBrokenRulesString();
|
||||
if (!string.IsNullOrWhiteSpace(sSourceErr))
|
||||
{
|
||||
sb.AppendLine("Broken business rules on PM object:");
|
||||
sb.AppendLine(sSourceErr);
|
||||
sb.AppendLine("==============================");
|
||||
}
|
||||
mwarn.Message = sb.ToString();
|
||||
mwarn.Save();
|
||||
throw new System.ApplicationException("Workorder->NewServiceWorkorderFromPM: Error during service workorder generation. Memo with details sent to Administrator account.");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
//case 1630
|
||||
//copy wikipage from pm to service workorder
|
||||
if (dest.CanWiki && source.HasWiki)
|
||||
{
|
||||
try
|
||||
{
|
||||
WikiPage wpSource = WikiPage.GetItem(new TypeAndID(RootObjectTypes.WorkorderPreventiveMaintenance, source.ID));
|
||||
WikiPage wpDest = WikiPage.GetItem(new TypeAndID(RootObjectTypes.WorkorderService, dest.ID));
|
||||
wpDest.SetContent(wpSource.GetContent());
|
||||
wpDest.Save();
|
||||
}
|
||||
catch { };
|
||||
|
||||
}
|
||||
|
||||
return dest;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
#endregion gen service wo from pm
|
||||
|
||||
internal class PMBiz : BizObject, IJobObject, ISearchAbleObject, IReportAbleObject, IExportAbleObject
|
||||
{
|
||||
internal PMBiz(AyContext dbcontext, long currentUserId, long userTranslationId, AuthorizationRoles UserRoles, UserType currentUserType)
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace AyaNova.Models
|
||||
public DateTime NextServiceDate { get; set; }
|
||||
public TimeSpan Repeat { get; set; }//was generate span
|
||||
public TimeSpan GenerateBefore { get; set; }//was threshold span
|
||||
public DateTime? GenerateDate { get; set; }
|
||||
public DateTime? GenerateDate { get; set; }//Internal, not exposed to UI and is the date to do the next generate on that takes into account generatebefore and next service date and is calcd when generate happens for next time see pmbiz top with reference v7 code
|
||||
//----
|
||||
|
||||
[Required]
|
||||
|
||||
Reference in New Issue
Block a user