public IHttpActionResult GetHistory([FromBody] string userName) { var list = _repository.FindBy(s => s.UserName == userName).Select(i => new { count = i.SalePos.Count, date = i.DateSale, summa = i.Summa, orders = i.SalePos.Select(p => p.ClassificationGood.Good.GoodNameRu) }).ToList(); return(Ok(JsonConvert.SerializeObject(list))); }
private CheckConditionResponse CheckLevelCondition(Level newLevel, Customer customer) { IEnumerable <Condition> conditions = newLevel.Conditions; CheckConditionResponse response = new CheckConditionResponse(); Infrastructure.Querying.Query query = new Infrastructure.Querying.Query(); Criterion criteria = new Criterion("Customer.ID", customer.ID, CriteriaOperator.Equal); query.Add(criteria); IEnumerable <Sale> sales = _saleRepository.FindBy(query); response.CanEnter = true; foreach (Condition condition in conditions) { // اگر کوئری از نوع هایبرنیت باشد if (condition.nHibernate) { bool canEnter = _customerRepository.CheckCondition(condition, newLevel, customer); response.CanEnter = response.CanEnter & canEnter; if (!canEnter) { response.ErrorMessages.Add(condition.ErrorText); } } // اگر کوئری از نوع هایبرنیت نباشد else { // StatusIsAdameEmkan // وضعیت مرکز تحت پوشش باشد if (condition.QueryText == "CenterStatusIsSupport") { response.CanEnter = customer.Center.StatusKey == "Support" ? true : false; response.ErrorMessages.Add(condition.ErrorText); } // وضعیت مرکز تحت پوشش نباشد if (condition.QueryText == "StatusIsNotSupport") { response.CanEnter = customer.Center.StatusKey == "NotSupport" ? true : false; response.ErrorMessages.Add(condition.ErrorText); } // وضعیت مرکز عدم امکان موقت باشد if (condition.QueryText == "StatusIsAdameEmkan") { response.CanEnter = customer.Center.StatusKey == "AdameEmkan" ? true : false; response.ErrorMessages.Add(condition.ErrorText); } // کالا تحویل نشده نداشته باشد و یا برگشت شده باشد if (condition.QueryText == "HasNoUndeliveredProductsOrAllRollbacked") { foreach (var sale in sales) { foreach (var saleDetail in sale.ProductSaleDetails) { // تحویل نشده ی برگشت نشده فالس است if (!saleDetail.Delivered && !saleDetail.Rollbacked && !saleDetail.IsRollbackDetail) { response.CanEnter = false; } } //foreach (var saleDetail in sale.CreditSaleDetails) //{ // // تحویل نشده ی برگشت نشده فالس است // if (!saleDetail.Delivered && !saleDetail.Rollbacked && !saleDetail.IsRollbackDetail) // { // response.CanEnter = false; // } //} //foreach (var saleDetail in sale.UncreditSaleDetails) //{ // // تحویل نشده ی برگشت نشده فالس است // if (!saleDetail.Delivered && !saleDetail.Rollbacked && !saleDetail.IsRollbackDetail) // { // response.CanEnter = false; // } //} response.ErrorMessages.Add(condition.ErrorText); } } // خدمات اعتباری تحویل نشده نداشته باشد و یا برگشت شده باشد else if (condition.QueryText == "HasNoUndeliveredCreditOrAllRollbacked") { foreach (var sale in sales) { foreach (var saleDetail in sale.CreditSaleDetails) { // تحویل نشده ی برگشت نشده فالس است if (!saleDetail.Delivered && !saleDetail.Rollbacked && !saleDetail.IsRollbackDetail) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } } } // خدمات غیر اعتباری تحویل نشده نداشته باشد و یا برگشت شده باشد else if (condition.QueryText == "HasNoUndeliveredUncreditOrAllRollbacked") { foreach (var sale in sales) { foreach (var saleDetail in sale.UncreditSaleDetails) { // تحویل نشده ی برگشت نشده فالس است if (!saleDetail.Delivered && !saleDetail.Rollbacked && !saleDetail.IsRollbackDetail) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } } } // آخرین خدمات اعتباری که فروخته شده منقضی شده باشد else if (condition.QueryText == "LastCreditExpired") { CreditSaleDetail saleDetail = sales.OrderByDescending(o => o.CreateDate).FirstOrDefault().CreditSaleDetails.OrderByDescending(o => o.CreateDate).FirstOrDefault(); // شرط عدم انقضاء if (saleDetail.CreditService.ExpDays >= PersianDateTime.DateDiff(PersianDateTime.Now, saleDetail.CreateDate)) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } //آخرین خدمات اعتباری که فروخته شده منقضی نشده باشد else if (condition.QueryText == "LastCreditNotExpired") { CreditSaleDetail saleDetail = sales.OrderByDescending(o => o.CreateDate).FirstOrDefault().CreditSaleDetails.OrderByDescending(o => o.CreateDate).FirstOrDefault(); // شرط انقضاء if (saleDetail.CreditService.ExpDays < PersianDateTime.DateDiff(PersianDateTime.Now, saleDetail.CreateDate)) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } // شبکه انتخاب شده برای مشتری تحت پوشش باشد else if (condition.QueryText == "NetworkOfCustomerIsSupport") { if (customer.Network != null) { if (!customer.Network.NetworkCenters.Where(w => w.Status == NetworkCenterStatus.Support && w.Center == customer.Center).Any()) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } else { response.CanEnter = false; response.ErrorMessages.Add("برای انتقال مشتری به این مرحله ، حتما باید شبکه مشتری مشخص باشد. لطفا در ثبت نام کامل ، شبکه مشتری را انتخاب کنید."); } } // شبکه انتخاب شده برای مشتری عدم پوشش باشد else if (condition.QueryText == "NetworkOfCustomerIsNotSupport") { if (!customer.Network.NetworkCenters.Where(w => w.Status == NetworkCenterStatus.NotSupport && w.Center == customer.Center).Any()) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } // شبکه انتخاب شده برای مشتری عدم امکان موقت باشد else if (condition.QueryText == "NetworkOfCustomerIsAdameEmkan") { if (!customer.Network.NetworkCenters.Where(w => w.Status == NetworkCenterStatus.NotSupport && w.Center == customer.Center).Any()) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } // امکان تحویل حداقل یک کالا یا خدمات فروخته شده وجود داشته باشد else if (condition.QueryText == "CanDeliverAtLeastOnItem") { foreach (Sale sale in sales) { if (sale.Closed) { foreach (var saleDetail in sale.CreditSaleDetails) { // جمع سطر کمتر از مانده قابل تحویل باشد if (saleDetail.LineTotal <= customer.CanDeliverCost) { response.CanEnter = true; } } foreach (var saleDetail in sale.UncreditSaleDetails) { // جمع سطر کمتر از مانده قابل تحویل باشد if (saleDetail.LineTotal <= customer.CanDeliverCost) { response.CanEnter = true; } } foreach (var saleDetail in sale.ProductSaleDetails) { // جمع سطر کمتر از مانده قابل تحویل باشد if (saleDetail.LineTotal <= customer.CanDeliverCost) { response.CanEnter = true; } } response.ErrorMessages.Add(condition.ErrorText); } } } else if (condition.QueryText == "HasNoOpenCSupport") { if (customer.Supports.Any()) { IEnumerable <Support> support = customer.Supports.Where(x => x.SupportStatus.IsLastSupportState != true); if (support.Count() > 0) { response.CanEnter = false; response.ErrorMessages.Add(condition.ErrorText); } } } } } return(response); }
public GeneralResponse AddCourier(AddCourierRequest request, Guid CreateEmployeeID) { GeneralResponse response = new GeneralResponse(); try { Courier courier = new Courier(); courier.ID = Guid.NewGuid(); courier.CreateDate = PersianDateTime.Now; courier.CreateEmployee = _employeeRepository.FindBy(CreateEmployeeID); courier.Amount = request.Amount; courier.BuildingUnits = request.BuildingUnits; courier.CourierCost = request.CourierCost; courier.CourierEmployee = null; courier.CourierStatuse = Courier.CourierStatuses.Pending; courier.CourierType = (Courier.CourierTypes)request.CourierType; courier.DeliverDate = request.DeliverDate; courier.DeliverTime = request.DeliverTime; courier.SaleComment = request.SaleComment; courier.Sale = _saleRepository.FindBy(request.SaleID); courier.RowVersion = 1; Sale sale = _saleRepository.FindBy(request.SaleID); #region Getting Sale Details //Query query = new Query(); //Criterion SaleIDCriteria = new Criterion("Sale.ID", sale.ID, CriteriaOperator.Equal); //query.Add(SaleIDCriteria); //ProductSaleDetail productSaleDetail = _productSaleDetailRepository.FindBy(query).FirstOrDefault(); //CreditSaleDetail creditSaleDetail = _creditSaleDetailRepository.FindBy(query).FirstOrDefault(); //UncreditSaleDetail uncreditSaleDetail = _uncreditSaleDetailRepository.FindBy(query).FirstOrDefault(); //long bonus = 0; //if (creditSaleDetail != null) //{ // Query query1 = new Query(); // Criterion SaleIDCriteria1 = new Criterion("CreditSaleDetail.ID", creditSaleDetail.ID, CriteriaOperator.Equal); // query1.Add(SaleIDCriteria1); // BonusComission temp= _bonusComissionRepository.FindBy(query1).FirstOrDefault(); // bonus += temp.Bonus; //} //if (productSaleDetail != null) //{ // Query query1 = new Query(); // Criterion SaleIDCriteria1 = new Criterion("ProductSaleDetail.ID", productSaleDetail.ID, CriteriaOperator.Equal); // query1.Add(SaleIDCriteria1); // BonusComission temp = _bonusComissionRepository.FindBy(query1).FirstOrDefault(); // bonus += temp.Bonus; //} //if (uncreditSaleDetail != null) //{ // Query query1 = new Query(); // Criterion SaleIDCriteria1 = new Criterion("UnCreditSaleDetail.ID", uncreditSaleDetail.ID, CriteriaOperator.Equal); // query1.Add(SaleIDCriteria1); // BonusComission temp = _bonusComissionRepository.FindBy(query1).FirstOrDefault(); // bonus += temp.Bonus; //} #endregion //courier.Bonus = bonus; courier.Sale.Couriers = courier; courier.Sale.HasCourier = true; _courierRepository.Add(courier); _uow.Commit(); } catch (Exception ex) { response.ErrorMessages.Add(ex.Message); if (ex.InnerException != null) { response.ErrorMessages.Add(ex.InnerException.Message); } } return(response); }