/// <summary> /// This method used for nsert into posReturnBillItem and return primary key. -An /// </summary> /// <param name="posReturnBillItem">posReturnBillItem Contains POSBiillItemID,ReturnedQuantity</param> /// <returns></returns> public int AddPOSReturnBillItem(POSReturnBillItem posReturnBillItem) { try { _posReturnBillItemContext.Add(posReturnBillItem); _posReturnBillItemContext.SaveChanges(); return(posReturnBillItem.Id); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
/// <summary> /// This method used for update pos return bill item and return primary key. -An /// </summary> /// <param name="posRetunrBillItem"></param> /// <returns>id of bill</returns> public int UpdatePosReturnBillItem(POSReturnBillItem posRetunrBillItem) { try { posRetunrBillItem.ModifiedDateTime = DateTime.UtcNow; _posReturnBillItemContext.Update(posRetunrBillItem); _posReturnBillItemContext.SaveChanges(); return(posRetunrBillItem.Id); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
public IHttpActionResult SubmitPOSBill(POSReturnBillAC posReturnBillAC) { try { if (HttpContext.Current.User.Identity.IsAuthenticated) { if (posReturnBillAC != null) { int branchId; if (posReturnBillAC.BranchId != 0) { branchId = posReturnBillAC.BranchId; } else { branchId = Convert.ToInt32(MerchantContext.UserDetails.BranchId); } POSReturnBill posReturnBill = new POSReturnBill(); posReturnBill.CreatedDateTime = DateTime.UtcNow; posReturnBill.IsProcessed = false; posReturnBill.IssuingBranchID = Convert.ToInt32(MerchantContext.UserDetails.BranchId); posReturnBill.POSBillId = posReturnBillAC.POSBillId; posReturnBill.ProcessingBranchID = branchId; posReturnBill.ProcessingDate = posReturnBill.CreatedDateTime; posReturnBill.ProcessorID = MerchantContext.UserDetails.Id; posReturnBill.ReturneBy = posReturnBill.ProcessorID; posReturnBill.ReturnedBillNo = GetReturnBillNumber(posReturnBillAC.ReturnBillNumber); posReturnBill.ReturnedCash = posReturnBillAC.ReturnCashAmount; posReturnBill.ReturningComments = posReturnBillAC.Comment; posReturnBill.ReturningDate = posReturnBill.ProcessingDate; posReturnBill.ReturningType = Convert.ToInt32(POSBillPaymentType.Cash); posReturnBill.SubstituteItemsAmount = posReturnBillAC.ReturnSubtituteItemsAmount; int posReturnBillId = _iReturnBillRepository.AddPOSReturnBill(posReturnBill); if (posReturnBillId != 0) { if (posReturnBillAC.ReturnBillItemList.Any()) { foreach (var returnBillItem in posReturnBillAC.ReturnBillItemList) //this foreach used for add pos return bill item. { if (returnBillItem.ReturnQunatity > 0) { POSReturnBillItem posReturnBillItem = new POSReturnBillItem(); posReturnBillItem.CreatedDateTime = DateTime.UtcNow; posReturnBillItem.POSBiillItemID = returnBillItem.POSBillItemId; posReturnBillItem.ReturnedBillID = posReturnBillId; posReturnBillItem.ReturnedQuantity = returnBillItem.ReturnQunatity; int id = _iReturnBillRepository.AddPOSReturnBillItem(posReturnBillItem); if (id != 0) { POSReturnBillItem returnPOSRetunBillItem = _iReturnBillRepository.GetPOSReturnBillItemById(id); if (returnPOSRetunBillItem != null)//this for maintain branch item qunatity,when client return quantity add quantity item in actual quantity. { var posBillItem = _iReturnBillRepository.GetPOSBillItemById(returnPOSRetunBillItem.POSBiillItemID); ItemProfile itemProfile = _iItemRepository.GetItemProfileObjectById(posBillItem.ItemID); ItemQuantity itemQuantity = new ItemQuantity(); if (itemProfile != null) { if (itemProfile.IsParentItem) { itemQuantity = _iItemRepository.GetItemQunatityByBranchIdAndItemId(posBillItem.ItemID, branchId); if (itemQuantity != null) { itemQuantity.ActualQuantity = (itemQuantity.ActualQuantity + returnBillItem.ReturnQunatity); } } else // for sub item { itemQuantity = _iItemRepository.GetItemQunatityByBranchIdAndItemId(Convert.ToInt32(itemProfile.ParentItemId), branchId); if (itemQuantity != null) { int systemQuantity = itemQuantity.ActualQuantity + (itemProfile.BaseUnit * returnBillItem.ReturnQunatity); itemQuantity.ActualQuantity = systemQuantity > 0 ? systemQuantity : 0; } } _iItemRepository.UpdateItemQunatity(itemQuantity); } } } } } } return(Ok(new { isResult = posReturnBill.ReturnedBillNo })); } } return(Ok(new { isResult = false })); } else { return(BadRequest()); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }