public void AppsOnDeriveQuantityDecreased(IDerivation derivation, ShipmentItem shipmentItem, SalesOrderItem orderItem, decimal correction) { var remainingCorrection = correction; foreach (OrderShipment orderShipment in shipmentItem.OrderShipmentsWhereShipmentItem) { if (orderShipment.OrderItem.Equals(orderItem) && remainingCorrection > 0) { decimal quantity; if (orderShipment.Quantity < remainingCorrection) { quantity = orderShipment.Quantity; remainingCorrection -= quantity; } else { quantity = remainingCorrection; remainingCorrection = 0; } orderShipment.Quantity -= quantity; shipmentItem.Quantity -= quantity; var itemIssuanceCorrection = quantity; foreach (ItemIssuance itemIssuance in shipmentItem.ItemIssuancesWhereShipmentItem) { if (!itemIssuance.PickListItem.PickListWherePickListItem.ExistPicker) { decimal subQuantity; if (itemIssuance.Quantity < itemIssuanceCorrection) { subQuantity = itemIssuance.Quantity; itemIssuanceCorrection -= quantity; } else { subQuantity = itemIssuanceCorrection; itemIssuanceCorrection = 0; } itemIssuance.Quantity -= subQuantity; if (itemIssuanceCorrection == 0) { break; } } } if (orderShipment.Quantity == 0) { foreach (ItemIssuance itemIssuance in orderShipment.ShipmentItem.ItemIssuancesWhereShipmentItem) { if (!itemIssuance.PickListItem.PickListWherePickListItem.ExistPicker) { itemIssuance.Delete(); } } orderShipment.Delete(); } } } if (this.PendingPickList == null) { var shipment = (CustomerShipment)shipmentItem.ShipmentWhereShipmentItem; this.CreateNegativePickList(derivation, shipment, orderItem, correction); } if (shipmentItem.Quantity == 0) { shipmentItem.Delete(); } if (!this.ExistShipmentItems) { this.Cancel(); if (this.PendingPickList != null) { this.PendingPickList.Cancel(); } } }
public void BaseOnDeriveQuantityDecreased(ShipmentItem shipmentItem, SalesOrderItem orderItem, decimal correction) { var remainingCorrection = correction; var inventoryAssignment = orderItem.SalesOrderItemInventoryAssignments.FirstOrDefault(); if (inventoryAssignment != null) { inventoryAssignment.Quantity = orderItem.QuantityCommittedOut - correction; } foreach (OrderShipment orderShipment in shipmentItem.OrderShipmentsWhereShipmentItem) { if (orderShipment.OrderItem.Equals(orderItem) && remainingCorrection > 0) { decimal quantity; if (orderShipment.Quantity < remainingCorrection) { quantity = orderShipment.Quantity; remainingCorrection -= quantity; } else { quantity = remainingCorrection; remainingCorrection = 0; } shipmentItem.Quantity -= quantity; var itemIssuanceCorrection = quantity; foreach (ItemIssuance itemIssuance in shipmentItem.ItemIssuancesWhereShipmentItem) { decimal subQuantity; if (itemIssuance.Quantity < itemIssuanceCorrection) { subQuantity = itemIssuance.Quantity; itemIssuanceCorrection -= quantity; } else { subQuantity = itemIssuanceCorrection; itemIssuanceCorrection = 0; } itemIssuance.Quantity -= subQuantity; if (itemIssuanceCorrection == 0) { break; } } } } if (shipmentItem.Quantity == 0) { foreach (OrderShipment orderShipment in shipmentItem.OrderShipmentsWhereShipmentItem) { foreach (ItemIssuance itemIssuance in orderShipment.ShipmentItem.ItemIssuancesWhereShipmentItem) { if (!itemIssuance.PickListItem.PickListWherePickListItem.ExistPicker && itemIssuance.Quantity == 0) { itemIssuance.Delete(); } } orderShipment.Delete(); } shipmentItem.Delete(); } if (!this.ExistShipmentItems) { this.Cancel(); if (this.PendingPickList != null) { this.PendingPickList.Cancel(); } } }
public void AppsOnDeriveQuantityDecreased(IDerivation derivation, ShipmentItem shipmentItem, Allors.Domain.SalesOrderItem orderItem, decimal correction) { var remainingCorrection = correction; foreach (OrderShipment orderShipment in shipmentItem.OrderShipmentsWhereShipmentItem) { if (orderShipment.SalesOrderItem.Equals(orderItem) && remainingCorrection > 0) { decimal quantity; if (orderShipment.Quantity < remainingCorrection) { quantity = orderShipment.Quantity; remainingCorrection -= quantity; } else { quantity = remainingCorrection; remainingCorrection = 0; } orderShipment.Quantity -= quantity; shipmentItem.Quantity -= quantity; var itemIssuanceCorrection = quantity; foreach (ItemIssuance itemIssuance in shipmentItem.ItemIssuancesWhereShipmentItem) { if (!itemIssuance.PickListItem.PickListWherePickListItem.ExistPicker) { decimal subQuantity; if (itemIssuance.Quantity < itemIssuanceCorrection) { subQuantity = itemIssuance.Quantity; itemIssuanceCorrection -= quantity; } else { subQuantity = itemIssuanceCorrection; itemIssuanceCorrection = 0; } itemIssuance.Quantity -= subQuantity; if (itemIssuanceCorrection == 0) { break; } } } if (orderShipment.Quantity == 0) { foreach (ItemIssuance itemIssuance in orderShipment.ShipmentItem.ItemIssuancesWhereShipmentItem) { if (!itemIssuance.PickListItem.PickListWherePickListItem.ExistPicker) { itemIssuance.Delete(); } } orderShipment.Delete(); } } } if (this.PendingPickList == null) { var shipment = (CustomerShipment)shipmentItem.ShipmentWhereShipmentItem; this.CreateNegativePickList(derivation, shipment, orderItem, correction); } if (shipmentItem.Quantity == 0) { shipmentItem.Delete(); } if (!this.ExistShipmentItems) { this.Cancel(); if (this.PendingPickList != null) { this.PendingPickList.Cancel(); } } }