public static void Save(MiscellaneousTransactionModel miscellaneousTransactionModel) { var savedDetail = getMiscellaneousTransaction(miscellaneousTransactionModel.SOBId, miscellaneousTransactionModel.TransactionType, miscellaneousTransactionModel.CodeCombinationId, miscellaneousTransactionModel.TransactionDate); if (SessionHelper.MiscellaneousTransaction != null) { if (savedDetail.Count() > miscellaneousTransactionModel.MiscellaneousTransactionDetail.Count()) { var tobeDeleted = savedDetail.Take(savedDetail.Count() - miscellaneousTransactionModel.MiscellaneousTransactionDetail.Count()); foreach (var item in tobeDeleted) { service.Delete(item.Id.ToString(), AuthenticationHelper.CompanyId.Value); IEnumerable <LotNumber> lotNum = lotNumService.CheckLotNumAvailability(AuthenticationHelper.CompanyId.Value, item.LotNo, item.ItemId, SessionHelper.SOBId); if (lotNum.Any()) { LotNumberHelper.Delete(lotNum.FirstOrDefault().Id.ToString()); } //IEnumerable<SerialNumber> serialNum = lotNumService.CheckSerialNumAvailability(AuthenticationHelper.CompanyId.Value, item.LotNo, item.SerialNo); //if (serialNum.Any()) //{ // LotNumberHelper.DeleteSerialNumber(serialNum.FirstOrDefault().Id.ToString()); //} } savedDetail = getMiscellaneousTransaction(miscellaneousTransactionModel.SOBId, miscellaneousTransactionModel.TransactionType, miscellaneousTransactionModel.CodeCombinationId, miscellaneousTransactionModel.TransactionDate); } foreach (var detail in miscellaneousTransactionModel.MiscellaneousTransactionDetail) { MiscellaneousTransaction detailEntity = GetEntityByModel(detail, savedDetail.Count()); if (detailEntity.IsValid()) { if (savedDetail.Count() > 0) { detailEntity.Id = savedDetail.FirstOrDefault().Id; savedDetail.Remove(savedDetail.FirstOrDefault(rec => rec.Id == detailEntity.Id)); service.Update(detailEntity); IEnumerable <LotNumber> lotNum = lotNumService.CheckLotNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.ItemId, SessionHelper.SOBId); if (lotNum.Any()) { LotNumberHelper.Update(lotNum.FirstOrDefault()); } //IEnumerable<SerialNumber> serialNum = lotNumService.CheckSerialNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.SerialNo); //if (serialNum.Any()) //{ // LotNumberHelper.UpdateSerialNumber(serialNum.FirstOrDefault()); //} } else { service.Insert(detailEntity); IEnumerable <LotNumber> lotNum = lotNumService.CheckLotNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.ItemId, SessionHelper.SOBId); if (!lotNum.Any()) { LotNumberHelper.Insert(new MiscellaneousTransactionDetailModel(detailEntity)); } //IEnumerable<SerialNumber> serialNum = lotNumService.CheckSerialNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.SerialNo); //if (!serialNum.Any()) //{ // LotNumberHelper.InsertSerialNumber(new MiscellaneousTransactionDetailModel(detailEntity)); //} } } } } }
public static void Save(MoveOrderModel moveOrderModel) { MoveOrder entity = GetEntityByModel(moveOrderModel); string result = string.Empty; if (entity.IsValid()) { if (moveOrderModel.Id > 0) { result = service.Update(entity); } else { result = service.Insert(entity); } if (!string.IsNullOrEmpty(result)) { var savedDetail = GetMoveOrderLines(result); if (savedDetail.Count() > moveOrderModel.MoveOrderDetail.Count()) { var tobeDeleted = savedDetail.Take(savedDetail.Count() - moveOrderModel.MoveOrderDetail.Count()); foreach (var item in tobeDeleted) { service.Delete(item.Id); IEnumerable <LotNumber> lotNum = lotNumService.CheckLotNumAvailability(AuthenticationHelper.CompanyId.Value, item.LotNo, item.ItemId, SessionHelper.SOBId); if (lotNum.Any()) { LotNumberHelper.Delete(lotNum.FirstOrDefault().Id.ToString()); } //IEnumerable<SerialNumber> serialNum = lotNumService.CheckSerialNumAvailability(AuthenticationHelper.CompanyId.Value, item.LotNo, item.SerialNo); //if (serialNum.Any()) //{ // LotNumberHelper.DeleteSerialNumber(serialNum.FirstOrDefault().Id.ToString()); //} } savedDetail = GetMoveOrderLines(result); } foreach (var detail in moveOrderModel.MoveOrderDetail) { MoveOrderDetail detailEntity = GetEntityByModel(detail, savedDetail.Count()); if (detailEntity.IsValid()) { detailEntity.MoveOrderId = Convert.ToInt64(result); if (savedDetail.Count() > 0) { detailEntity.Id = savedDetail.FirstOrDefault().Id; savedDetail.Remove(savedDetail.FirstOrDefault(rec => rec.Id == detailEntity.Id)); service.Update(detailEntity); IEnumerable <LotNumber> lotNum = lotNumService.CheckLotNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.ItemId, SessionHelper.SOBId); if (lotNum.Any()) { LotNumberHelper.Update(lotNum.FirstOrDefault()); } //IEnumerable<SerialNumber> serialNum = lotNumService.CheckSerialNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.SerialNo); //if (serialNum.Any()) //{ // LotNumberHelper.UpdateSerialNumber(serialNum.FirstOrDefault()); //} } else { service.Insert(detailEntity); IEnumerable <LotNumber> lotNum = lotNumService.CheckLotNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.ItemId, SessionHelper.SOBId); if (!lotNum.Any()) { LotNumberHelper.Insert(new MoveOrderDetailModel(detailEntity)); } //IEnumerable<SerialNumber> serialNum = lotNumService.CheckSerialNumAvailability(AuthenticationHelper.CompanyId.Value, detailEntity.LotNo, detailEntity.SerialNo); //if (!serialNum.Any()) //{ // LotNumberHelper.InsertSerialNumber(new MoveOrderDetailModel(detailEntity)); //} } } } } } }
public static string Save(OrderShipmentModel model) { List <long> orderIds = new List <long>(); string result = ""; if (model.OrderShipments != null && model.OrderShipments.Count() > 0) { model.OrderShipments = model.OrderShipments.Where(rec => rec.LocatorId > 0).ToList(); } List <Shipment> currentShipments = getEntitiesByModel(model); if (currentShipments != null && currentShipments.Count() > 0) { if (model.DeliveryNo != "New") { List <Shipment> savedShipment = service.GetDelivery(AuthenticationHelper.CompanyId.Value, SessionHelper.SOBId, model.DeliveryNo, model.DeliveryDate).ToList(); if (savedShipment != null && savedShipment.Count() > 0) { if (savedShipment.Count() > currentShipments.Count()) { List <Shipment> tobeDeleted = savedShipment.Take(savedShipment.Count() - currentShipments.Count()).ToList(); foreach (var deleteSingle in tobeDeleted) { if (!string.IsNullOrEmpty(deleteSingle.SerialNo)) { List <string> serials = deleteSingle.SerialNo.Split(new char[] { ',' }).ToList(); deleteSerials(serials, deleteSingle.LotNoId.Value); } orderIds.Add(deleteSingle.OrderId); service.Delete(deleteSingle.Id.ToString(), AuthenticationHelper.CompanyId.Value); } } } } foreach (var item in currentShipments) { List <ShipmentModel> shipments = GetShipments(item.LineId); OrderDetailModel orderDetail = OrderHelper.GetSingleOrderDetail(item.LineId); decimal savedQty = 0; if (shipments != null && shipments.Count() > 0) { savedQty = shipments.Sum(x => x.Quantity); } orderIds.Add(item.OrderId); if (item.LotNoId != null && item.LotNoId > 0) { long lotNoId = 0; string lotNumResult = updateLots(item); int outVal; bool isNumeric = int.TryParse(lotNumResult, out outVal); if (isNumeric) { lotNoId = int.Parse(lotNumResult); } item.LotNoId = lotNoId; } updateSerials(item); if (item.Id > 0) { result = service.Update(item); } else { result = service.Insert(item); } //Update lot num to set the sourceId.. if (item.LotNoId != null && item.LotNoId > 0) { LotNumber tobeUpdated = LotNumberHelper.GetLotNumber(item.LotNoId.Value); tobeUpdated.SourceId = item.Id; LotNumberHelper.Update(tobeUpdated); } } updateOrders(orderIds); } else { result = "Please select order to ship!"; } return(result); }