public GetProductSaleDetailResponse GetProductSaleDetail(GetRequest request) { GetProductSaleDetailResponse response = new GetProductSaleDetailResponse(); try { ProductSaleDetail productSaleDetail = new ProductSaleDetail(); //ProductSaleDetailView productSaleDetailView = new ProductSaleDetailView(); productSaleDetail = _productSaleDetailRepository.FindBy(request.ID); if (productSaleDetail != null) { ProductSaleDetailView productSaleDetailView = productSaleDetail.ConvertToProductSaleDetailView(); response.ProductSaleDetailView = productSaleDetailView; } } catch (Exception ex) { } return(response); }
private ProductSaleDetail GetProductSales(string productID, List <LineItemDetailData> lineItemList) { var result = new ProductSaleDetail(); if (!lineItemList.HasItem()) { return(result); } List <LineItemDetailData> twelveMonthLineItems = lineItemList?.Where(x => x.Data.LineItems.Any(y => y.Product.ID == productID)).ToList(); List <LineItemDetailData> sixMonthLineItems = twelveMonthLineItems.Where(x => x.Data.Order.DateCreated > DateTime.Now.AddMonths(-6)).ToList(); List <LineItemDetailData> threeMonthLineItems = twelveMonthLineItems.Where(x => x.Data.Order.DateCreated > DateTime.Now.AddMonths(-3)).ToList(); //3MO sales foreach (LineItemDetailData lineItemDetail in threeMonthLineItems) { result.ThreeMonthQuantity = lineItemDetail.Data.LineItems.Sum(x => x.Quantity); result.ThreeMonthTotal = lineItemDetail.Data.LineItems.Sum(x => x.LineSubtotal); } //6MO sales foreach (LineItemDetailData lineItemDetail in sixMonthLineItems) { result.SixMonthQuantity = lineItemDetail.Data.LineItems.Sum(x => x.Quantity); result.SixMonthTotal = lineItemDetail.Data.LineItems.Sum(x => x.LineSubtotal); } //12MO sales foreach (LineItemDetailData lineItemDetail in twelveMonthLineItems) { result.TwelveMonthQuantity = lineItemDetail.Data.LineItems.Sum(x => x.Quantity); result.TwelveMonthTotal = lineItemDetail.Data.LineItems.Sum(x => x.LineSubtotal); } return(result); }
public GetGeneralResponse <IEnumerable <GetSaleDetailReportView> > GetSaleReport(IList <FilterData> filters) { GetGeneralResponse <IEnumerable <GetSaleDetailReportView> > response = new GetGeneralResponse <IEnumerable <GetSaleDetailReportView> >(); string query = FilterUtilityService.GenerateFilterHQLQuery(filters, "ProductSaleDetail", null); Response <ProductSaleDetail> productSaleDetails = _productSaleDetailRepository.FindAll(query); IList <GetSaleDetailReportView> Report = new List <GetSaleDetailReportView>(); foreach (ProductSaleDetail _productSaleDetail in productSaleDetails.data) { GetSaleDetailReportView item = new GetSaleDetailReportView(); item.ADSLPhone = _productSaleDetail.Sale.Customer.ADSLPhone; item.CenterName = _productSaleDetail.Sale.Customer.Center == null ? "" : _productSaleDetail.Sale.Customer.Center.CenterName; item.Name = _productSaleDetail.Sale.Customer.Name; item.ProductPriceName = _productSaleDetail.ProductPrice.ProductPriceTitle; item.ProductName = _productSaleDetail.ProductPrice.Product.ProductName; item.BonusDate = _productSaleDetail.BonusDate; item.ComissionDate = _productSaleDetail.ComissionDate; if (_productSaleDetail.IsRollbackDetail) { item.Bonus = _productSaleDetail.Bonus; item.Comission = _productSaleDetail.Comission; item.DeliverDate = _productSaleDetail.MainSaleDetail.DeliverDate; item.DeliverEmployeeName = _productSaleDetail.MainSaleDetail.DeliverEmployee == null ? "" : (string)_productSaleDetail.MainSaleDetail.DeliverEmployee.Name; item.Discount = _productSaleDetail.MainSaleDetail.LineDiscount; item.Imposition = _productSaleDetail.MainSaleDetail.LineImposition; item.Price = _productSaleDetail.MainSaleDetail.UnitPrice; item.Count = _productSaleDetail.MainSaleDetail.Units; item.RollBackEmployeeName = _productSaleDetail.CreateEmployee.Name; item.RollBackPrice = _productSaleDetail.RollbackPrice; item.RoolBackDate = _productSaleDetail.CreateDate; item.SaleDate = _productSaleDetail.MainSaleDetail.CreateDate; item.Total = _productSaleDetail.LineTotal; item.TotalRollBack = _productSaleDetail.Units; item.SaleEmployeeName = _productSaleDetail.MainSaleDetail.CreateEmployee.Name; } else { item.Bonus = _productSaleDetail.Bonus; item.Comission = _productSaleDetail.Comission; item.DeliverDate = _productSaleDetail.DeliverDate; item.DeliverEmployeeName = _productSaleDetail.DeliverEmployee == null ? "" : (string)_productSaleDetail.DeliverEmployee.Name; item.Discount = _productSaleDetail.LineDiscount; item.Imposition = _productSaleDetail.LineImposition; item.Price = _productSaleDetail.UnitPrice; item.Count = _productSaleDetail.Units; item.SaleDate = _productSaleDetail.CreateDate; item.Total = _productSaleDetail.LineTotal; item.SaleDate = _productSaleDetail.Sale.CreateDate; item.SaleEmployeeName = _productSaleDetail.CreateEmployee.Name; item.CustomerID = _productSaleDetail.Sale.Customer.ID; if (_productSaleDetail.Rollbacked) { Infrastructure.Querying.Query q = new Query(); Criterion crt = new Criterion("MainSaleDetail.ID", _productSaleDetail.ID, CriteriaOperator.Equal); q.Add(crt); ProductSaleDetail RollbakedProductSaleDetail = _productSaleDetailRepository.FindBy(q).FirstOrDefault(); if (RollbakedProductSaleDetail != null) { item.RollBackEmployeeName = RollbakedProductSaleDetail.CreateEmployee.Name; item.RollBackPrice = RollbakedProductSaleDetail.LineTotal; item.RoolBackDate = RollbakedProductSaleDetail.CreateDate; item.TotalRollBack = RollbakedProductSaleDetail.Units; } } } Report.Add(item); } response.data = Report; response.totalCount = Report.Count(); return(response); }
public static ProductSaleDetailView ConvertToProductSaleDetailView(this ProductSaleDetail productSaleDetail) { return(Mapper.Map <ProductSaleDetail, ProductSaleDetailView>(productSaleDetail)); }
public GeneralResponse DoCourierAction(Guid CourierID, int CourierStatuse, string ExpertComment, Guid CourierEmployeeID, Guid ModifiedEmployeeID) { GeneralResponse response = new GeneralResponse(); try { Courier courier = new Courier(); courier = _courierRepository.FindBy(CourierID); if (courier.CourierStatuse == Courier.CourierStatuses.Confirmed) { response.ErrorMessages.Add("این اعزام پیک تایید شده است. لذا دیگر قادر به تغییر وضعیت آن نیستید"); return(response); } courier.ExpertComment = ExpertComment; courier.CourierStatuse = (Courier.CourierStatuses)CourierStatuse; courier.ModifiedDate = PersianDateTime.Now; courier.ModifiedEmployee = _employeeRepository.FindBy((ModifiedEmployeeID)); courier.CourierEmployee = _courierEmployeeRepository.FindBy(CourierEmployeeID); #region Add Courier To Bonus An Comissions if ((Courier.CourierStatuses)CourierStatuse == Courier.CourierStatuses.Confirmed) { //برای خدمات غیر اعتباری foreach (var item in courier.Sale.UncreditSaleDetails.Where(x => x.Rollbacked == false)) { Query query = new Query(); Criterion UncreditSaleDetailID = new Criterion("ID", item.ID, CriteriaOperator.Equal); query.Add(UncreditSaleDetailID); UncreditSaleDetail unCreditSaleDetail = _uncreditSaleDetailRepository.FindBy(query).FirstOrDefault(); if (unCreditSaleDetail != null) { unCreditSaleDetail.BonusDate = PersianDateTime.Now; _uncreditSaleDetailRepository.Save(unCreditSaleDetail); } } //برای خدمات اعتباری foreach (var item in courier.Sale.CreditSaleDetails.Where(x => x.Rollbacked == false)) { Query query = new Query(); Criterion UncreditSaleDetailID = new Criterion("ID", item.ID, CriteriaOperator.Equal); query.Add(UncreditSaleDetailID); CreditSaleDetail creditSaleDetail = _creditSaleDetailRepository.FindBy(query).FirstOrDefault(); if (creditSaleDetail != null) { creditSaleDetail.BonusDate = PersianDateTime.Now; _creditSaleDetailRepository.Save(creditSaleDetail); } } //برای کالاها foreach (var item in courier.Sale.ProductSaleDetails.Where(x => x.Rollbacked == false)) { Query query = new Query(); Criterion UncreditSaleDetailID = new Criterion("ID", item.ID, CriteriaOperator.Equal); query.Add(UncreditSaleDetailID); ProductSaleDetail productsaleDetail = _productSaleDetailRepository.FindBy(query).FirstOrDefault(); if (productsaleDetail != null) { productsaleDetail.BonusDate = PersianDateTime.Now; _productSaleDetailRepository.Save(productsaleDetail); } } } #endregion _courierRepository.Save(courier); _uow.Commit(); } catch (Exception ex) { response.ErrorMessages.Add(ex.Message); if (ex.InnerException != null) { response.ErrorMessages.Add(ex.InnerException.Message); } } return(response); }