private void gridViewAssignableOps_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e) { GridView view = sender as GridView; if (view == null) { return; } int rowIndex = e.ListSourceRowIndex; int opID = Convert.ToInt32(view.GetListSourceRowCellValue(rowIndex, "ID")); Models.OrderItemOperation op = dbContext.OrderItemOperations.Where(o => o.ID == opID).FirstOrDefault(); List <Models.OrderItem> openOrderItems = dbContext.OrderItems.Where(o => o.IsComplete == false).ToList(); Models.OrderItem orderItem = new Models.OrderItem(); foreach (Models.OrderItem oi in openOrderItems) { if (oi.orderItemOps.Contains(op)) { orderItem = oi; } } Models.Order order = dbContext.Orders.Where(o => o.ID == orderItem.OrderID).FirstOrDefault(); if (order != null) { e.Value = order.BatchName + " --- " + orderItem.ProductName; } }
public AddOperationCompleted(Models.User curUser, Models.OrderItemOperation op, Models.Part prt, RadanMaster.DAL.RadanMasterContext ctx) { InitializeComponent(); currentUser = curUser; part = prt; //dbContext = new RadanMaster.DAL.RadanMasterContext(); dbContext = ctx; dbContext.Parts.Load(); dbContext.Operations.Load(); dbContext.OrderItemOperations.Load(); dbContext.OperationPerformeds.Load(); dbContext.OrderItemOperationPerformeds.Load(); textEditUser.Text = currentUser.UserName; textEditItemName.Text = prt.FileName; textEditOperation.Text = op.operation.Name; List <Models.OrderItemOperation> assignableOps = new List <Models.OrderItemOperation>(); assignableOps = dbContext.OrderItemOperations.Where(o => o.operationID == op.operationID).ToList(); //assignableOps = dbContext.OrderItemOperations.ToList(); gridControlAssignableOps.DataSource = null; gridControlAssignableOps.DataSource = assignableOps; }
/// <summary> /// record an operation completed /// </summary> /// <param name="qty"></param> /// <returns></returns> public void RecordOperationCompleted(int qty) { Models.OrderItemOperation orderItemOp = Globals.dbContext.OrderItemOperations.Where(o => o.ID == OrderItemOp.ID).FirstOrDefault(); int qtyDone = qty; Models.OrderItemOperationPerformed itemOpPerformed = new Models.OrderItemOperationPerformed(); Models.OperationPerformed opPerformed = new Models.OperationPerformed(); opPerformed.qtyDone = qtyDone; opPerformed.timePerformed = DateTime.Now; opPerformed.usr = currentUser; opPerformed.OrderItemOperationsPerformed = new List <Models.OrderItemOperationPerformed>(); int totalQtyLeftToDo = qtyDone; // assign operations to order items foreach (Models.OrderItemOperation associatedOrderItemOp in associatedOrderItemOps) { if (associatedOrderItemOp.qtyDone < associatedOrderItemOp.qtyRequired) { int itemQtyLeftToDo = associatedOrderItemOp.qtyRequired - associatedOrderItemOp.qtyDone; Models.OrderItemOperationPerformed orderItemOpPerformed = new Models.OrderItemOperationPerformed(); if (totalQtyLeftToDo <= itemQtyLeftToDo) { orderItemOpPerformed = new Models.OrderItemOperationPerformed(); orderItemOpPerformed.qtyDone = totalQtyLeftToDo; associatedOrderItemOp.qtyDone += totalQtyLeftToDo; associatedOrderItemOp.OrderItemOperationPerformeds.Add(orderItemOpPerformed); opPerformed.OrderItemOperationsPerformed.Add(orderItemOpPerformed); totalQtyLeftToDo -= totalQtyLeftToDo; break; } else { orderItemOpPerformed = new Models.OrderItemOperationPerformed(); orderItemOpPerformed.qtyDone = itemQtyLeftToDo; associatedOrderItemOp.qtyDone = associatedOrderItemOp.qtyRequired; associatedOrderItemOp.OrderItemOperationPerformeds.Add(orderItemOpPerformed); opPerformed.OrderItemOperationsPerformed.Add(orderItemOpPerformed); totalQtyLeftToDo -= itemQtyLeftToDo; } } } // if we've filled all the order items, we need to do something with the rest... if (totalQtyLeftToDo > 0) { Models.Operation overBatchOperation = new Models.Operation(); overBatchOperation.Location = orderItemOp.operation.Location; overBatchOperation.Name = orderItemOp.operation.Name; overBatchOperation.Part = orderItemOp.operation.Part; Globals.dbContext.Operations.Add(overBatchOperation); Models.OrderItemOperation overBatchItemOperation = new Models.OrderItemOperation(); overBatchItemOperation.operation = overBatchOperation; overBatchItemOperation.orderItem = null; overBatchItemOperation.qtyDone = totalQtyLeftToDo; overBatchItemOperation.qtyRequired = 0; Globals.dbContext.OrderItemOperations.Add(overBatchItemOperation); Models.OrderItemOperationPerformed overBatchItemOperatonPerformed = new Models.OrderItemOperationPerformed(); overBatchItemOperatonPerformed.orderItemOperation = overBatchItemOperation; overBatchItemOperatonPerformed.qtyDone = totalQtyLeftToDo; overBatchItemOperatonPerformed.opPerformed = opPerformed; Globals.dbContext.OrderItemOperationPerformeds.Add(overBatchItemOperatonPerformed); opPerformed.OrderItemOperationsPerformed.Add(overBatchItemOperatonPerformed); overBatchOperation.OrderItemOperations.Add(overBatchItemOperation); } Globals.dbContext.OperationPerformeds.Add(opPerformed); Globals.dbContext.SaveChanges(); }
} // a list of operations in associatedOrderItemOps that are not assigned to any batch item /// <summary> /// constructor /// </summary> /// <param name="orderItemOp"></param> /// <param name="curUser"></param> public OperationManager(Models.OrderItemOperation orderItemOp, Models.User curUser) { currentUser = curUser; OrderItemOp = orderItemOp; RefreshDataStructures(); }
/// <summary> /// return all the orderItemOperationPerformeds linked to the orderItemOperation passed in /// </summary> /// <returns></returns> public List <Models.OrderItemOperationPerformed> GetAssociatedOrderItemOperationPerformeds(Models.OrderItemOperation orderItemOp) { return(Globals.dbContext.OrderItemOperationPerformeds.Where(op => op.orderItemOperation.ID == orderItemOp.ID).ToList()); }