private static tblOutgoing CreateOutgoing(TreatmentOrder order, tblMoveDetail oldDetail, int quantitySign = 1) { var quantity = oldDetail.Quantity * quantitySign; var result = new tblOutgoing { EntryDate = DateTime.UtcNow.ConvertUTCToLocal().RoundMillisecondsForSQL(), Lot = oldDetail.Lot, TTypeID = (int?)TransType.FrmTrmt, PkgID = oldDetail.PkgID, Tote = null, Quantity = quantity, NetWgt = oldDetail.tblPackaging.NetWgt, TtlWgt = quantity * oldDetail.tblPackaging.NetWgt, LocID = oldDetail.LocID, TrtmtID = oldDetail.TrtmtID, EmployeeID = order.InventoryShipmentOrder.PickedInventory.EmployeeId, BOMID = 0, BatchLot = 0, MoveNum = order.InventoryShipmentOrder.MoveNum, MDetail = oldDetail.MDetail, CustProductCode = oldDetail.CustProductCode }; return(result); }
private void SetPickedInventory(InventoryShipmentOrder newOrder, tblMove oldOrder, ref bool commitNewContext) { var MDetail = OldContext.tblMoveDetails.Any() ? OldContext.tblMoveDetails.Max(m => m.MDetail).AddSeconds(1) : DateTime.UtcNow.ConvertUTCToLocal(); var oldDetailsToRemove = oldOrder.tblMoveDetails.ToList(); foreach (var newItem in newOrder.PickedInventory.Items) { var oldItem = oldDetailsToRemove.FirstOrDefault(d => d.MDetail == newItem.DetailID) ?? oldDetailsToRemove.FirstOrDefault(); if (oldItem == null) { oldItem = new tblMoveDetail { MDetail = MDetail }; OldContext.tblMoveDetails.AddObject(oldItem); MDetail = MDetail.AddSeconds(1); } else { oldDetailsToRemove.Remove(oldItem); } oldItem.MoveNum = newOrder.MoveNum.Value; oldItem.Lot = LotNumberParser.BuildLotNumber(newItem); oldItem.TTypeID = (int?)newOrder.OrderType.ToTransType(); oldItem.PkgID = OldContextHelper.GetPackaging(newItem.PackagingProduct).PkgID; oldItem.Quantity = newItem.Quantity; oldItem.NetWgt = (decimal?)newItem.PackagingProduct.Weight; oldItem.TtlWgt = (decimal?)(newItem.Quantity * newItem.PackagingProduct.Weight); oldItem.LocID = newItem.FromLocation.LocID.Value; oldItem.Move2 = newItem.CurrentLocation.LocID.Value; oldItem.TrtmtID = OldContextHelper.GetTreatment(newItem).TrtmtID; oldItem.EmployeeID = newOrder.PickedInventory.EmployeeId; oldItem.CustProductCode = newItem.CustomerProductCode; oldItem.CustLot = newItem.CustomerLotCode; if (newItem.DetailID != oldItem.MDetail) { commitNewContext = true; newItem.DetailID = oldItem.MDetail; } } foreach (var o in oldDetailsToRemove) { OldContext.tblMoveDetails.DeleteObject(o); } }