public EstimateResponse EstimateFinalPrice(EstimateRequest estimateRequest) { EstimateResponse resp = new EstimateResponse(); var customerObj = _context.Customers.Where(x => x.Email == estimateRequest.Email).FirstOrDefault(); if (customerObj == null) { resp.Success = false; resp.FailureInformation = "User not found!"; } else { resp.Success = true; resp.SellingPrice = estimateRequest.GoldPrice * estimateRequest.Weight; if (estimateRequest.OwnerDiscount != 0.0) { resp.Discount = (estimateRequest.OwnerDiscount / 100) * resp.SellingPrice; } else { resp.Discount = customerObj.DiscountPercentage * resp.SellingPrice; } resp.TotalPrice = resp.SellingPrice - resp.Discount; resp.FailureInformation = "No errors, estimation calculated successfully!"; } return(resp); }
public IActionResult CalculateFinalPrice(EstimateRequest estimateRequest) { IActionResult res = null; var response = new EstimateResponse(); //Validation if (!Regex.IsMatch(estimateRequest.Email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$")) { response.Success = false; response.FailureInformation = "EMail ID not in proper format!"; } if (!(estimateRequest.GoldPrice > 0.0 && estimateRequest.Weight > 0.0)) { response.Success = false; response.FailureInformation = "GoldPrice and/or Weight should be greater than 0!"; } else { response = _shoppingRepository.EstimateFinalPrice(estimateRequest); } res = Ok(response); return(res); }
/// <summary> /// Gets the estimates. /// </summary> /// <param name="request">The request.</param> /// <returns>EstimateResponse.</returns> public EstimateResponse GetEstimates(EstimateRequest request) { var response = new EstimateResponse(); if (request.LoadOptions.Contains("Estimates")) { if (request.LoadOptions.Contains("RefType")) { response.Estimates = EstimateDao.GetEstimatesByRefTypeId(request.RefType); } else if (request.LoadOptions.Contains("RefDate")) { response.Estimates = EstimateDao.GetEstimatesByYearOfRefDate(request.RefType, (short)DateTime.Parse(request.RefDate).Year); } else if (request.LoadOptions.Contains("CheckPaymentEstimate")) { response.Estimates = EstimateDao.GetEstimatesByYearOfPlaning(request.RefType, request.YearOfEstimate, request.BudgetSourceCategoryId); } else if (request.LoadOptions.Contains("CheckReceiptEstimate")) { response.Estimates = EstimateDao.GetEstimatesByYearOfPlaning(request.RefType, request.YearOfEstimate); } else if (request.LoadOptions.Contains("CheckPaymentEstimateNoBudget")) { response.Estimates = EstimateDao.GetEstimatesByYearOfPlaning(request.RefType, request.YearOfEstimate); } else { response.Estimates = EstimateDao.GetEstimates(); } } if (request.LoadOptions.Contains("Estimate")) { var estimate = EstimateDao.GetEstimate(request.RefId); if (request.LoadOptions.Contains("IncludeDetail")) { estimate = estimate ?? new EstimateEntity(); estimate.EstimateDetails = EstimateDetailDao.GetEstimateDetailsByEstimateIncludeBudgetItemName(estimate.RefId); } if (request.LoadOptions.Contains("Option")) { estimate = estimate ?? new EstimateEntity(); estimate.EstimateDetails = EstimateDetailDao.GetEstimateDetailsByEstimateOption(request.RefId, request.Option, request.BudgetSourceCategoryId, request.YearOfPlaning); } if (request.LoadOptions.Contains("PlanTemplateListId")) { estimate = estimate ?? new EstimateEntity(); var estimateExchangeRate = EstimateExchangeRateDao.GetEstimateExchangeRate(request.YearOfPlaning); if (estimateExchangeRate != null) { estimate.ExchangeRateLastYear = estimateExchangeRate.ExchangeRateLastYear; estimate.ExchangeRateThisYear = estimateExchangeRate.ExchangeRateThisYear; } estimate.EstimateDetails = EstimateDetailDao.GetEstimateDetailsByEstimateOption((int)request.RefId); } response.Estimate = estimate; } return(response); }
/// <summary> /// Sets the estimates. /// </summary> /// <param name="request">The request.</param> /// <returns>EstimateResponse.</returns> public EstimateResponse SetEstimates(EstimateRequest request) { var response = new EstimateResponse(); var estimateEntity = request.Estimate; //var auditingLog = new AudittingLogEntity { ComponentName = "DU TOAN NGAN SACH", EventAction = (int)request.Action }; if (request.Action != PersistType.Delete) { if (!estimateEntity.Validate()) { foreach (string error in estimateEntity.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } } try { if (request.Action == PersistType.Insert) { using (var scope = new TransactionScope()) { #region //estimateEntity.TotalEstimateAmount = 0; //estimateEntity.NextYearOfTotalEstimateAmount = 0; ////calculate total estimate //foreach (var estimateDetail in estimateEntity.EstimateDetails) //{ // if (estimateEntity.RefTypeId == 110) // { // //estimateEntity.TotalEstimateAmount += estimateDetail.YearOfEstimateAmount; // //estimateEntity.NextYearOfTotalEstimateAmount += estimateDetail.NextYearOfEstimateAmount; // var receiptVoucherDetailForTotal = (from r in estimateEntity.EstimateDetails where !r.BudgetItemCode.Contains("000100") && !r.BudgetItemCode.Contains("000101") && !r.BudgetItemCode.Contains("000107") && !r.BudgetItemCode.Contains("000115") && !r.BudgetItemCode.Contains("000120") select r).ToList(); // estimateEntity.TotalEstimateAmount = receiptVoucherDetailForTotal.Select(c => c.YearOfEstimateAmount).Sum(); // estimateEntity.NextYearOfTotalEstimateAmount = receiptVoucherDetailForTotal.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // else // { // estimateEntity.TotalEstimateAmount += estimateDetail.YearOfEstimateAmount; // estimateEntity.NextYearOfTotalEstimateAmount += estimateDetail.TotalAmountThisYear; // } //} //estimateEntity.RefId = EstimateDao.InsertEstimate(estimateEntity); //foreach (var receiptVoucherDetail in estimateEntity.EstimateDetails) //{ // if (!receiptVoucherDetail.Validate()) // { // foreach (string error in receiptVoucherDetail.ValidationErrors) // response.Message += error + Environment.NewLine; // response.Acknowledge = AcknowledgeType.Failure; // return response; // } // receiptVoucherDetail.RefId = estimateEntity.RefId; // var budgetItemCode = receiptVoucherDetail.BudgetItemCode; // if (budgetItemCode == "000100") // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000102") || r.BudgetItemCode.Contains("000103") || r.BudgetItemCode.Contains("000104") || r.BudgetItemCode.Contains("000105") || r.BudgetItemCode.Contains("000106") select r).ToList(); // receiptVoucherDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // receiptVoucherDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // receiptVoucherDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // if (budgetItemCode == "000101") // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000102") || r.BudgetItemCode.Contains("000103") || r.BudgetItemCode.Contains("000104") select r).ToList(); // receiptVoucherDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // receiptVoucherDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // receiptVoucherDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // if (budgetItemCode == "000107") // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000108") || r.BudgetItemCode.Contains("000109") || r.BudgetItemCode.Contains("000110") || r.BudgetItemCode.Contains("000111") || r.BudgetItemCode.Contains("000112") || r.BudgetItemCode.Contains("000113") || r.BudgetItemCode.Contains("000114") select r).ToList(); // receiptVoucherDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // receiptVoucherDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // receiptVoucherDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // if (budgetItemCode == "000115") // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000116") || r.BudgetItemCode.Contains("000117") || r.BudgetItemCode.Contains("000118") || r.BudgetItemCode.Contains("000119") select r).ToList(); // receiptVoucherDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // receiptVoucherDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // receiptVoucherDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // EstimateDetailDao.InsertEstimateDetail(receiptVoucherDetail); //} //var autoNumber = AutoNumberDao.GetAutoNumberByRefType(estimateEntity.RefTypeId); //autoNumber.Value += 1; //response.Message = AutoNumberDao.UpdateAutoNumber(autoNumber); //if (response.Message != null) //{ // response.Acknowledge = AcknowledgeType.Failure; // scope.Dispose(); // return response; //} ////insert log ////auditingLog.Reference = "Thêm mới CT dự toán " + estimateEntity.RefNo; ////auditingLog.Amount = estimateEntity.TotalEstimateAmount; ////AudittingLogDao.InsertAudittingLog(auditingLog); #endregion if (estimateEntity != null) { estimateEntity.RefId = EstimateDao.InsertEstimate(estimateEntity); if (estimateEntity.RefId == 0) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } if (estimateEntity.EstimateDetails != null && estimateEntity.EstimateDetails.Count > 0) { foreach (var item in estimateEntity.EstimateDetails) { if (!item.Validate()) { foreach (string error in item.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } item.RefId = estimateEntity.RefId; EstimateDetailDao.InsertEstimateDetail(item); } } } response.RefId = estimateEntity.RefId; var autoNumber = AutoNumberDao.GetAutoNumberByRefType(estimateEntity.RefTypeId); autoNumber.Value += 1; response.Message = AutoNumberDao.UpdateAutoNumber(autoNumber); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } scope.Complete(); } } else if (request.Action == PersistType.Update) { using (var scope = new TransactionScope()) { #region //estimateEntity.TotalEstimateAmount = 0; //estimateEntity.NextYearOfTotalEstimateAmount = 0; //// estimateEntity. = 0; //foreach (var estimateDetail in estimateEntity.EstimateDetails) //{ // //estimateEntity.TotalEstimateAmount += estimateDetail.YearOfEstimateAmount; // //estimateEntity.NextYearOfTotalEstimateAmount += estimateDetail.NextYearOfEstimateAmount; // if (estimateEntity.RefTypeId == 110) // { // if (estimateDetail.BudgetItemCode.Contains("000100")) // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000102") || r.BudgetItemCode.Contains("000103") || r.BudgetItemCode.Contains("000104") || r.BudgetItemCode.Contains("000105") || r.BudgetItemCode.Contains("000106") select r).ToList(); // estimateDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // estimateDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // estimateDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // if (estimateDetail.BudgetItemCode.Contains("000101")) // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000102") || r.BudgetItemCode.Contains("000103") || r.BudgetItemCode.Contains("000104") select r).ToList(); // estimateDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // estimateDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // estimateDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // if (estimateDetail.BudgetItemCode.Contains("000107")) // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000108") || r.BudgetItemCode.Contains("000109") || r.BudgetItemCode.Contains("000110") || r.BudgetItemCode.Contains("000111") || r.BudgetItemCode.Contains("000112") || r.BudgetItemCode.Contains("000113") || r.BudgetItemCode.Contains("000114") select r).ToList(); // estimateDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // estimateDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // estimateDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // if (estimateDetail.BudgetItemCode.Contains("000115")) // { // var receiptVoucherDetailPartI = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000116") || r.BudgetItemCode.Contains("000117") || r.BudgetItemCode.Contains("000118") || r.BudgetItemCode.Contains("000119") select r).ToList(); // estimateDetail.TotalEstimateAmountUSD = receiptVoucherDetailPartI.Select(c => c.TotalEstimateAmountUSD).Sum(); // estimateDetail.YearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.YearOfEstimateAmount).Sum(); // estimateDetail.NextYearOfEstimateAmount = receiptVoucherDetailPartI.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // var receiptVoucherDetailForTotal = (from r in estimateEntity.EstimateDetails where r.BudgetItemCode.Contains("000100") || r.BudgetItemCode.Contains("000107") || r.BudgetItemCode.Contains("000115") select r).ToList(); // estimateEntity.TotalEstimateAmount = receiptVoucherDetailForTotal.Select(c => c.YearOfEstimateAmount).Sum(); // estimateEntity.NextYearOfTotalEstimateAmount = receiptVoucherDetailForTotal.Select(c => c.NextYearOfEstimateAmount).Sum(); // } // else // { // estimateEntity.TotalEstimateAmount += estimateDetail.YearOfEstimateAmount; // estimateEntity.NextYearOfTotalEstimateAmount += estimateDetail.TotalAmountThisYear; // } //} //response.Message = EstimateDao.UpdateEstimate(estimateEntity); //if (response.Message != null) //{ // response.Acknowledge = AcknowledgeType.Failure; // scope.Dispose(); // return response; //} //foreach (var estimateDetail in estimateEntity.EstimateDetails) //{ // if (!estimateDetail.Validate()) // { // foreach (string error in estimateDetail.ValidationErrors) // response.Message += error + Environment.NewLine; // response.Acknowledge = AcknowledgeType.Failure; // return response; // } // estimateDetail.RefId = estimateEntity.RefId; // if (estimateDetail.IsInserted) // { // EstimateDetailDao.InsertEstimateDetail(estimateDetail); // } // else // { // response.Message = EstimateDetailDao.UpdateEstimateDetail(estimateDetail); // } // if (response.Message != null) // { // response.Acknowledge = AcknowledgeType.Failure; // scope.Dispose(); // return response; // } //} #endregion response.Message = EstimateDao.UpdateEstimate(estimateEntity); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } response.Message = EstimateDetailDao.DeleteEstimateDetailByRefId(estimateEntity.RefId); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } foreach (var estimateDetail in estimateEntity.EstimateDetails) { if (!estimateDetail.Validate()) { foreach (string error in estimateDetail.ValidationErrors) { response.Message += error + Environment.NewLine; } response.Acknowledge = AcknowledgeType.Failure; return(response); } estimateDetail.RefId = estimateEntity.RefId; EstimateDetailDao.InsertEstimateDetail(estimateDetail); } scope.Complete(); } } else { using (var scope = new TransactionScope()) { var estimaterEntityForDelete = EstimateDao.GetEstimate(request.RefId); response.Message = EstimateDao.DeleteEstimate(estimaterEntityForDelete); if (response.Message != null) { response.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(response); } scope.Complete(); } } } catch (Exception ex) { response.Acknowledge = AcknowledgeType.Failure; response.Message = ex.Message; return(response); } response.RefId = estimateEntity != null ? estimateEntity.RefId : 0; response.Acknowledge = response.Message != null ? AcknowledgeType.Failure : AcknowledgeType.Success; return(response); }