private SearchStatementModel PrepareActingBillToListSearchStatement(GridCommand command, ActingBillSearchModel searchModel)
        {
            string whereStatement = string.Empty;
            IList<object> param = new List<object>();
            HqlStatementHelper.AddLikeStatement("ReceiptNo", searchModel.ReceiptNo, HqlStatementHelper.LikeMatchMode.Start, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Item", searchModel.Item, "a", ref whereStatement, param);

            HqlStatementHelper.AddEqStatement("Party", searchModel.Party, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Currency", searchModel.Currency, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("IsProvisionalEstimate", false, "a", ref whereStatement, param);
            if (searchModel.StartTime != null & searchModel.EndTime != null)
            {
                HqlStatementHelper.AddBetweenStatement("CreateDate", searchModel.StartTime, searchModel.EndTime, "a", ref whereStatement, param);
            }
            else if (searchModel.StartTime != null & searchModel.EndTime == null)
            {
                HqlStatementHelper.AddGeStatement("CreateDate", searchModel.StartTime, "a", ref whereStatement, param);
            }
            else if (searchModel.StartTime == null & searchModel.EndTime != null)
            {
                HqlStatementHelper.AddLeStatement("CreateDate", searchModel.EndTime, "a", ref whereStatement, param);
            }

            string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors);

            SearchStatementModel searchStatementModel = new SearchStatementModel();
            searchStatementModel.SelectCountStatement = selectCountActingBillStatement;
            searchStatementModel.SelectStatement = selectActingBillStatement;
            searchStatementModel.WhereStatement = whereStatement;
            searchStatementModel.SortingStatement = sortingStatement;
            searchStatementModel.Parameters = param.ToArray<object>();

            return searchStatementModel;
        }
        public ActionResult _AjaxCalculateDetailList(GridCommand command, ActingBillSearchModel searchModel)
        {

            var actingBillList = this.billMgr.GetRecalculatePrice(CodeMaster.BillType.Distribution, searchModel.Party,
                searchModel.Flow, searchModel.ReceiptNo, searchModel.ExtReceiptNo, searchModel.Item, searchModel.Currency,
                searchModel.StartTime.HasValue ? searchModel.StartTime.Value : DateTime.Now,
                searchModel.EndTime.HasValue ? searchModel.EndTime.Value : DateTime.Now, searchModel.IncludeNoEstPrice);

            return PartialView(new GridModel(actingBillList));
        }
 public ActionResult _ReCalculateDetailList(GridCommand command, ActingBillSearchModel searchModel)
 {
     TempData["ActingBillSearchModel"] = searchModel;
     ViewBag.Party = searchModel.Party;
     ViewBag.ReceiptNo = searchModel.ReceiptNo;
     ViewBag.Currency = searchModel.Currency;
     ViewBag.Item = searchModel.Item;
     ViewBag.StartTime = searchModel.StartTime;
     ViewBag.EndTime = searchModel.EndTime;
     ViewBag.IncludeNoEstPrice = searchModel.IncludeNoEstPrice;
     return PartialView();
 }
        public void ExportXLS(ActingBillSearchModel searchModel)
        {
            if (string.IsNullOrEmpty(searchModel.Party))
            {
                SaveErrorMessage(Resources.EXT.ControllerLan.Con_PleaseChooseCustomer);
                return;
            }

            IList<object> param = new List<object>();
            string hql = "from ActingBill where IsClose=? and  Type=? ";
            param.Add(false);
            param.Add((int)Sconit.CodeMaster.BillType.Distribution);

            if (!string.IsNullOrEmpty(searchModel.ReceiptNo))
            {
                hql += " and ReceiptNo=?";
                param.Add(searchModel.ReceiptNo);
            }
            if (!string.IsNullOrEmpty(searchModel.Item))
            {
                hql += " and Item=?";
                param.Add(searchModel.Item);
            }
            if (!string.IsNullOrEmpty(searchModel.Flow))
            {
                hql += " and Flow=?";
                param.Add(searchModel.Flow);
            }
            if (!string.IsNullOrEmpty(searchModel.Party))
            {
                hql += " and Party=?";
                param.Add(searchModel.Party);
            }
            if (!string.IsNullOrEmpty(searchModel.Currency))
            {
                hql += " and Currency=?";
                param.Add(searchModel.Currency);
            }
            if (!string.IsNullOrEmpty(searchModel.ExtReceiptNo))
            {
                hql += " and ExternalReceiptNo=?";
                param.Add(searchModel.ExtReceiptNo);
            }
            if (searchModel.StartTime != null & searchModel.EndTime != null)
            {
                hql += " and CreateDate Between ? and ? ";
                param.Add(searchModel.StartTime);
                param.Add(searchModel.EndTime);
            }
            else if (searchModel.StartTime != null & searchModel.EndTime == null)
            {
                hql += " and CreateDate>=?";
                param.Add(searchModel.StartTime);
            }
            else if (searchModel.StartTime == null & searchModel.EndTime != null)
            {
                hql += " and CreateDate<=?";
                param.Add(searchModel.EndTime);
            }

            IList<ActingBill> actingBillList = this.genericMgr.FindAll<ActingBill>(hql, param.ToArray());
            ExportToXLS<ActingBill>("SalesActBill.xls", actingBillList);
        }
        public ActionResult _AjaxActBillList(GridCommand command, ActingBillSearchModel searchModel)
        {
            if (string.IsNullOrEmpty(searchModel.Party))
            {
                return PartialView(new GridModel(new List<ActingBill>()));
            }
            string whereStatement = string.Empty;
            IList<object> param = new List<object>();
            HqlStatementHelper.AddEqStatement("ReceiptNo", searchModel.ReceiptNo, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("ExternalReceiptNo", searchModel.ExtReceiptNo, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Item", searchModel.Item, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Flow", searchModel.Flow, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Party", searchModel.Party, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Currency", searchModel.Currency, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("IsClose", false, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("IsProvisionalEstimate", false, "a", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Type", (int)Sconit.CodeMaster.BillType.Distribution, "a", ref whereStatement, param);
            if (searchModel.StartTime != null & searchModel.EndTime != null)
            {
                HqlStatementHelper.AddBetweenStatement("CreateDate", searchModel.StartTime, searchModel.EndTime, "a", ref whereStatement, param);
            }
            else if (searchModel.StartTime != null & searchModel.EndTime == null)
            {
                HqlStatementHelper.AddGeStatement("CreateDate", searchModel.StartTime, "a", ref whereStatement, param);
            }
            else if (searchModel.StartTime == null & searchModel.EndTime != null)
            {
                HqlStatementHelper.AddLeStatement("CreateDate", searchModel.EndTime, "a", ref whereStatement, param);
            }

            IList<ActingBill> actingBillList = genericMgr.FindAll<ActingBill>
                (string.Format(" from ActingBill a {0}", whereStatement), param.ToArray());

            GridModel<ActingBill> gdList = new GridModel<ActingBill>();
            foreach (var actingBill in actingBillList)
            {
                actingBill.CurrentBillAmount = actingBill.UnitPrice * (actingBill.BillQty - actingBill.BillingQty);
            }
            gdList.Data = actingBillList.OrderBy(p=>p.ExternalReceiptNo);
            return PartialView(gdList);
        }
        public ActionResult _ActingBillList(GridCommand command, ActingBillSearchModel searchModel)
        {
            SearchCacheModel searchCacheModel = this.ProcessSearchModel(command, searchModel);
            if (!string.IsNullOrEmpty(searchModel.Party))
            {
                TempData["_AjaxMessage"] = "";
            }
            else
            {
                SaveWarningMessage(Resources.EXT.ControllerLan.Con_SupplierCanNotBeEmpty);
            }
            ViewBag.Party = searchModel.Party;
            ViewBag.ReceiptNo = searchModel.ReceiptNo;
            ViewBag.ExternalReceiptNo = searchModel.ExtReceiptNo;
            ViewBag.Flow = searchModel.Flow;
            ViewBag.Item = searchModel.Item;
            ViewBag.StartTime = searchModel.StartTime;
            ViewBag.EndTime = searchModel.EndTime;
            ViewBag.EndTime = searchModel.Currency;

            return PartialView();
        }