public ActionResult _AjaxList(GridCommand command, IpMasterSearchModel searchModel)
        {
            string whereStatement = "where i.OrderType in (" + (int)com.Sconit.CodeMaster.OrderType.Distribution + "," + (int)com.Sconit.CodeMaster.OrderType.Transfer + "," + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer + ")"
                                    + " and exists (select 1 from IpDetail as d where i.IpNo = d.IpNo and d.Type = " + (int)com.Sconit.CodeMaster.IpDetailType.Gap + ")";

            SearchStatementModel searchStatementModel = this.PrepareSearchStatement(command, searchModel, whereStatement);
            return PartialView(GetAjaxPageData<IpMaster>(searchStatementModel, command));
        }
 public ActionResult List(GridCommand command, IpMasterSearchModel searchModel)
 {
     SearchCacheModel searchCacheModel = this.ProcessSearchModel(command, searchModel);
     if (searchCacheModel.isBack == true)
     {
         ViewBag.Page = searchCacheModel.Command.Page == 0 ? 1 : searchCacheModel.Command.Page;
     }
     ViewBag.PageSize = base.ProcessPageSize(command.PageSize);
     return View();
 }
 public ActionResult List(GridCommand command, IpMasterSearchModel searchModel)
 {
     SearchCacheModel searchCacheModel = this.ProcessSearchModel(command, searchModel);
     if (this.CheckSearchModelIsNull(searchCacheModel.SearchObject))
     {
         TempData["_AjaxMessage"] = "";
     }
     else
     {
         SaveWarningMessage(Resources.ErrorMessage.Errors_NoConditions);
     }
     ViewBag.PageSize = base.ProcessPageSize(command.PageSize);
     return View();
 }
 public ActionResult _AjaxList(GridCommand command, IpMasterSearchModel searchModel)
 {
     this.GetCommand(ref command, searchModel);
     string whereStatement = string.Empty;
     if (searchModel.IpOrderType.HasValue && searchModel.IpOrderType.Value > 0)
     {
         whereStatement = "where i.OrderType =" + searchModel.IpOrderType
            + " and exists (select 1 from IpDetail as d where i.IpNo = d.IpNo and d.Type = "
            + searchModel.IpDetailType + ")";
     }
     else
     {
         whereStatement = "where i.OrderType in ("
            + (int)com.Sconit.CodeMaster.OrderType.Distribution + ","
            + (int)com.Sconit.CodeMaster.OrderType.Transfer + ","
            + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer + ")"
            + " and exists (select 1 from IpDetail as d where i.IpNo = d.IpNo and d.Type = "
            + searchModel.IpDetailType + ")";
     }
     SearchStatementModel searchStatementModel = this.PrepareSearchStatement(command, searchModel, whereStatement);
     return PartialView(GetAjaxPageData<IpMaster>(searchStatementModel, command));
 }
        private ProcedureSearchStatementModel PrepareSearchDetailStatement(GridCommand command, IpMasterSearchModel searchModel, string whereStatement)
        {
            if (string.IsNullOrWhiteSpace(whereStatement))
            {
                whereStatement = "and exists(select 1 from IpMaster  as i where i.OrderSubType = " + (int)com.Sconit.CodeMaster.OrderSubType.Normal + " and i.IpNo=d.IpNo)";
            }
            else
            {
               // whereStatement += "and exists(select 1 from IpMaster  as i where i.OrderSubType = " + (int)com.Sconit.CodeMaster.OrderSubType.Normal + " and i.IpNo=d.IpNo and i.Status in(0,1))";
            }
            if (!string.IsNullOrEmpty(searchModel.ExternalOrderNo))
            {
                whereStatement += " and d.ExtNo='" + searchModel.ExternalOrderNo + "'";
            }
            if (!string.IsNullOrEmpty(searchModel.ExternalSequence))
            {
                whereStatement += " and d.ExtSeq='" + searchModel.ExternalSequence + "'";
            }
            if (searchModel.IsShowGap)
            {
                whereStatement += " and d.RecQty <> d.Qty ";
            }
            List<ProcedureParameter> paraList = new List<ProcedureParameter>();
            List<ProcedureParameter> pageParaList = new List<ProcedureParameter>();
            paraList.Add(new ProcedureParameter { Parameter = searchModel.IpNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Status, Type = NHibernate.NHibernateUtil.Int16 });
            paraList.Add(new ProcedureParameter
            {
                Parameter = (int)(int)com.Sconit.CodeMaster.OrderType.CustomerGoods + "," + (int)com.Sconit.CodeMaster.OrderType.Procurement
                                    + "," + (int)com.Sconit.CodeMaster.OrderType.ScheduleLine,
                Type = NHibernate.NHibernateUtil.String
                // + "," + (int)com.Sconit.CodeMaster.OrderType.SubContract
            });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyFrom, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyTo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.StartDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.EndDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Dock, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Item, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.OrderNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.WMSNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.ManufactureParty, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Flow, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = true, Type = NHibernate.NHibernateUtil.Int64 });
            paraList.Add(new ProcedureParameter { Parameter = CurrentUser.Id, Type = NHibernate.NHibernateUtil.Int32 });
            paraList.Add(new ProcedureParameter { Parameter = whereStatement, Type = NHibernate.NHibernateUtil.String });


            if (command.SortDescriptors.Count > 0)
            {
                if (command.SortDescriptors[0].Member == "ExternalOrderNo")
                {

                    command.SortDescriptors[0].Member = "ExtNo";
                }
                else if (command.SortDescriptors[0].Member == "ExternalSequence")
                {

                    command.SortDescriptors[0].Member = "ExtSeq";
                }
                else if (command.SortDescriptors[0].Member == "LocationTo")
                {

                    command.SortDescriptors[0].Member = "LocTo";
                }
                else if (command.SortDescriptors[0].Member == "ItemDescription")
                {

                    command.SortDescriptors[0].Member = "Item";
                }
                else if (command.SortDescriptors[0].Member == "ReceivedQty")
                {

                    command.SortDescriptors[0].Member = "RecQty";
                }
                else if (command.SortDescriptors[0].Member == "UnitCountDescription")
                {

                    command.SortDescriptors[0].Member = "UCDesc";
                }
                else if (command.SortDescriptors[0].Member == "ContainerDescription")
                {

                    command.SortDescriptors[0].Member = "ContainerDesc";
                }
                else if (command.SortDescriptors[0].Member == "Sequence")
                {

                    command.SortDescriptors[0].Member = "Seq";
                }
            }
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? command.SortDescriptors[0].Member : null, Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? (command.SortDescriptors[0].SortDirection == ListSortDirection.Descending ? "desc" : "asc") : "asc", Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.PageSize, Type = NHibernate.NHibernateUtil.Int32 });
            pageParaList.Add(new ProcedureParameter { Parameter = command.Page, Type = NHibernate.NHibernateUtil.Int32 });

            var procedureSearchStatementModel = new ProcedureSearchStatementModel();
            procedureSearchStatementModel.Parameters = paraList;
            procedureSearchStatementModel.PageParameters = pageParaList;
            procedureSearchStatementModel.CountProcedure = "USP_Search_IpDetCount";
            procedureSearchStatementModel.SelectProcedure = "USP_Search_IpDet";

            return procedureSearchStatementModel;
        }
        public void ExportMstr(IpMasterSearchModel searchModel)
        {
            int value = Convert.ToInt32(base.systemMgr.GetEntityPreferenceValue(EntityPreference.CodeEnum.MaxRowSizeOnPage));
            GridCommand command = new GridCommand();
            command.Page = 1;
            command.PageSize = !this.CheckSearchModelIsNull(searchModel) ? 0 : value;
            if (!this.CheckSearchModelIsNull(searchModel))
            {
                return;
            }

            string whereStatement = " and i.Type=" + (int)com.Sconit.CodeMaster.IpDetailType.Normal;
            ProcedureSearchStatementModel procedureSearchStatementModel = this.PrepareProcedureSearchStatement(command, searchModel, whereStatement);
            ExportToXLS<IpMaster>("DistributionIpMaster.xls", GetAjaxPageDataProcedure<IpMaster>(procedureSearchStatementModel, command).Data.ToList());
        }
        public ActionResult _ReceiveAjaxList(GridCommand command, IpMasterSearchModel searchModel)
        {

            string replaceFrom = "_ReceiveAjaxList";
            string replaceTo = "ReceiveList";
            this.GetCommand(ref command, searchModel, replaceFrom, replaceTo);
            string whereStatement = " and i.Status in (" + (int)com.Sconit.CodeMaster.IpStatus.Submit + "," + (int)com.Sconit.CodeMaster.IpStatus.InProcess + ")"
                                 + " and exists (select 1 from IpDetail as d where d.IsClose = 0 and d.Type = 0 and d.IpNo = i.IpNo) ";

            ProcedureSearchStatementModel procedureSearchStatementModel = this.PrepareReceiveProcedureSearchStatement(command, searchModel, whereStatement);
            return PartialView(GetAjaxPageDataProcedure<IpMaster>(procedureSearchStatementModel, command));
        }
 public ActionResult _AjaxIpDetLists(GridCommand command, IpMasterSearchModel searchModel)
 {
     if (!this.CheckSearchModelIsNull(searchModel))
     {
         return PartialView(new GridModel(new List<IpDetail>()));
     }
     string whereStatement = " and exists (select 1 from IpMaster  as i where  i.Type = " + (int)com.Sconit.CodeMaster.OrderSubType.Normal + " and i.IpNo=d.IpNo) ";
     ProcedureSearchStatementModel procedureSearchStatementModel = PrepareSearchDetailStatement(command, searchModel, whereStatement);
     return PartialView(GetAjaxPageDataProcedure<IpDetail>(procedureSearchStatementModel, command));
 }
        private SearchStatementModel PrepareSearchStatement(GridCommand command, IpMasterSearchModel searchModel, string whereStatement)
        {

            IList<object> param = new List<object>();

            //SecurityHelper.AddPartyFromPermissionStatement(ref whereStatement, "i", "PartyFrom", com.Sconit.CodeMaster.OrderType.Distribution, false);
            //SecurityHelper.AddPartyToPermissionStatement(ref whereStatement, "i", "PartyTo", com.Sconit.CodeMaster.OrderType.Distribution);
            SecurityHelper.AddPartyFromAndPartyToPermissionStatement(ref whereStatement, "i", "OrderType", "i", "PartyFrom", "i", "PartyTo", com.Sconit.CodeMaster.OrderType.Distribution, false);

            HqlStatementHelper.AddLikeStatement("IpNo", searchModel.IpNo, HqlStatementHelper.LikeMatchMode.Start, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Status", searchModel.Status, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("PartyFrom", searchModel.PartyFrom, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("PartyTo", searchModel.PartyTo, "i", ref whereStatement, param);

            if (searchModel.StartDate != null & searchModel.EndDate != null)
            {
                HqlStatementHelper.AddBetweenStatement("CreateDate", searchModel.StartDate, searchModel.EndDate, "i", ref whereStatement, param);
            }
            else if (searchModel.StartDate != null & searchModel.EndDate == null)
            {
                HqlStatementHelper.AddGeStatement("CreateDate", searchModel.StartDate, "i", ref whereStatement, param);
            }
            else if (searchModel.StartDate == null & searchModel.EndDate != null)
            {
                HqlStatementHelper.AddLeStatement("CreateDate", searchModel.EndDate, "i", ref whereStatement, param);
            }

            if (command.SortDescriptors.Count > 0)
            {
                if (command.SortDescriptors[0].Member == "IpMasterStatusDescription")
                {
                    command.SortDescriptors[0].Member = "Status";
                }
            }
            string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors);

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

            return searchStatementModel;
        }
        public ActionResult _AjaxIpDetList(GridCommand command, IpMasterSearchModel searchModel)
        {
            if (!this.CheckSearchModelIsNull(searchModel))
            {
                return PartialView(new GridModel(new List<IpDetail>()));
            }
            string whereStatement = " and exists (select 1 from IpMaster  as i where  i.Type = " + (int)com.Sconit.CodeMaster.OrderSubType.Normal + " and i.IpNo=d.IpNo) ";
            if (!string.IsNullOrEmpty(searchModel.ExternalOrderNo))
            {
                whereStatement += " and d.ExtNo='" + searchModel.ExternalOrderNo + "'";
            }
            if (!string.IsNullOrEmpty(searchModel.ExternalSequence))
            {
                whereStatement += " and d.ExtSeq='" + searchModel.ExternalSequence + "'";
            }
            if (searchModel.IsShowGap)
            {
                whereStatement += " and d.RecQty <> d.Qty ";
            }
            //ProcedureSearchStatementModel procedureSearchStatementModel = PrepareSearchDetailStatement(command, searchModel, whereStatement);
            //return PartialView(GetAjaxPageDataProcedure<IpDetail>(procedureSearchStatementModel, command));
            IList<IpDetail> ipDetList = new List<IpDetail>();
            ProcedureSearchStatementModel procedureSearchStatementModel = PrepareSearchDetailStatement(command, searchModel, whereStatement);
            procedureSearchStatementModel.SelectProcedure = "USP_Search_PrintIpDet";
            GridModel<object[]> gridModel = GetAjaxPageDataProcedure<object[]>(procedureSearchStatementModel, command);
            if (gridModel.Data != null && gridModel.Data.Count() > 0)
            {
                #region
                ipDetList = (from tak in gridModel.Data
                             select new IpDetail
                             {
                                 Id = (int)tak[0],
                                 IpNo = (string)tak[1],
                                 OrderNo = (string)tak[2],
                                 ExternalOrderNo = (string)tak[3],
                                 ExternalSequence = (string)tak[4],
                                 Item = (string)tak[5],
                                 ReferenceItemCode = (string)tak[6],
                                 ItemDescription = (string)tak[7],
                                 Uom = (string)tak[8],
                                 UnitCount = (decimal)tak[9],
                                 Qty = (decimal)tak[10],
                                 ReceivedQty = (decimal)tak[11],
                                 LocationFrom = (string)tak[12],
                                 LocationTo = (string)tak[13],
                                 Flow = (string)tak[14],
                                 IsClose = (bool)tak[15],
                                 IsInspect = (bool)tak[16],
                                 MastPartyFrom = (string)tak[17],
                                 MastPartyTo = (string)tak[18],
                                 MastType = systemMgr.GetCodeDetailDescription(Sconit.CodeMaster.CodeMaster.OrderType, int.Parse((tak[19]).ToString())),
                                 MastStatus = systemMgr.GetCodeDetailDescription(Sconit.CodeMaster.CodeMaster.IpStatus, int.Parse((tak[20]).ToString())),
                                 MastCreateDate = (DateTime)tak[21],
                                 SAPLocation = (string)tak[22],
                             }).ToList();
                #endregion
            }
            procedureSearchStatementModel.PageParameters[2].Parameter = gridModel.Total;
            TempData["IpDetailPrintSearchModel"] = procedureSearchStatementModel;

            GridModel<IpDetail> gridModelOrderDet = new GridModel<IpDetail>();
            gridModelOrderDet.Total = gridModel.Total;
            gridModelOrderDet.Data = ipDetList;

            return PartialView(gridModelOrderDet);
        }
 public void ExportMstr(IpMasterSearchModel searchModel)
 {
     int value = Convert.ToInt32(base.systemMgr.GetEntityPreferenceValue(EntityPreference.CodeEnum.MaxRowSizeOnPage));
     GridCommand command = new GridCommand();
     command.Page = 1;
     command.PageSize = !this.CheckSearchModelIsNull(searchModel) ? 0 : value;
     string whereStatement = string.Empty;
     if (searchModel.IpOrderType.HasValue && searchModel.IpOrderType.Value > 0)
     {
         whereStatement = "where i.OrderType =" + searchModel.IpOrderType
            + " and exists (select 1 from IpDetail as d where i.IpNo = d.IpNo and d.Type = "
            + searchModel.IpDetailType + ")";
     }
     else
     {
         whereStatement = "where i.OrderType in ("
            + (int)com.Sconit.CodeMaster.OrderType.Distribution + ","
            + (int)com.Sconit.CodeMaster.OrderType.Transfer + ","
            + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer + ")"
            + " and exists (select 1 from IpDetail as d where i.IpNo = d.IpNo and d.Type = "
            + searchModel.IpDetailType + ")";
     }
     SearchStatementModel searchStatementModel = this.PrepareSearchStatement(command, searchModel, whereStatement);
     ExportToXLS<IpMaster>("DistributionIpGapMaster.xls", GetAjaxPageData<IpMaster>(searchStatementModel, command).Data.ToList());
 }
        public ActionResult _AdjustAjaxList(GridCommand command, IpMasterSearchModel searchModel)
        {

            string replaceFrom = "_AdjustAjaxList";
            string replaceTo = "AdjustList";
            this.GetCommand(ref command, searchModel, replaceFrom, replaceTo);
            string whereStatement = string.Empty;
            if (searchModel.IpOrderType.HasValue && searchModel.IpOrderType.Value > 0)
            {
                whereStatement = "where i.OrderType =" + searchModel.IpOrderType
                        + " and i.Status in (" + (int)com.Sconit.CodeMaster.IpStatus.Submit + ","
                        + (int)com.Sconit.CodeMaster.IpStatus.InProcess + ")"
                        + " and exists (select 1 from IpDetail as d where d.IsClose = 0  and d.IpNo = i.IpNo and d.Type = "
                        + searchModel.IpDetailType + ") ";
            }
            else
            {
                whereStatement = "where i.OrderType in ("
                        + (int)com.Sconit.CodeMaster.OrderType.Distribution + ","
                        + (int)com.Sconit.CodeMaster.OrderType.Transfer + ","
                        + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer + ")"
                        + " and i.Status in (" + (int)com.Sconit.CodeMaster.IpStatus.Submit + ","
                        + (int)com.Sconit.CodeMaster.IpStatus.InProcess + ")"
                        + " and exists (select 1 from IpDetail as d where d.IsClose = 0  and d.IpNo = i.IpNo and d.Type = "
                        + searchModel.IpDetailType + ") ";
            }
            SearchStatementModel searchStatementModel = this.PrepareSearchStatement(command, searchModel, whereStatement);
            return PartialView(GetAjaxPageData<IpMaster>(searchStatementModel, command));
        }
        public ActionResult _AjaxList(GridCommand command, IpMasterSearchModel searchModel)
        {

            if (!this.CheckSearchModelIsNull(searchModel))
            {
                return PartialView(new GridModel(new List<IpMaster>()));
            }
            //string whereStatement = "where  i.OrderType in ("
            //                        + (int)com.Sconit.CodeMaster.OrderType.Procurement + "," + (int)com.Sconit.CodeMaster.OrderType.CustomerGoods + "," + (int)com.Sconit.CodeMaster.OrderType.ScheduleLine + ","
            //                        + (int)com.Sconit.CodeMaster.OrderType.SubContract + "," + (int)com.Sconit.CodeMaster.OrderType.Transfer + "," + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer + ")";

            string whereStatement = string.Empty;
            if (!string.IsNullOrWhiteSpace(searchModel.Item) && !string.IsNullOrWhiteSpace(searchModel.OrderNo))
            {
                whereStatement = " and exists(select 1 from IpDetail as d where d.IpNo = i.IpNo and d.Item = '" + searchModel.Item + "' and d.OrderNo='"+searchModel.OrderNo+"')";
            }
            else if (!string.IsNullOrWhiteSpace(searchModel.Item) && string.IsNullOrWhiteSpace(searchModel.OrderNo))
            {
                whereStatement += " and exists(select 1 from IpDetail as d where d.IpNo = i.IpNo and d.Item = '" + searchModel.Item + "')";
            }
            else if (string.IsNullOrWhiteSpace(searchModel.Item) && !string.IsNullOrWhiteSpace(searchModel.OrderNo))
            {
                whereStatement = " and exists(select 1 from IpDetail as d where d.IpNo = i.IpNo and  d.OrderNo='" + searchModel.OrderNo + "')";
            }
            ProcedureSearchStatementModel procedureSearchStatementModel = this.PrepareProcedureSearchStatement(command, searchModel, whereStatement);
            return PartialView(GetAjaxPageDataProcedure<IpMaster>(procedureSearchStatementModel, command));

        }
        public ActionResult _AjaxIpDetList(GridCommand command, IpMasterSearchModel searchModel)
        {
            if (!this.CheckSearchModelIsNull(searchModel))
            {
                return PartialView(new GridModel(new List<IpDetail>()));
            }
            #region
            //ProcedureSearchStatementModel procedureSearchStatementModel = PrepareSearchDetailStatement(command, searchModel, string.Empty);
            //GridModel<IpDetail> gridList = GetAjaxPageDataProcedure<IpDetail>(procedureSearchStatementModel, command);
            //int i = 0;
            //foreach (IpDetail ipDetail in gridList.Data)
            //{
            //    if (i > command.PageSize)
            //    {
            //        break;
            //    }
            //    ipDetail.SAPLocationTo = base.genericMgr.FindById<Location>(ipDetail.LocationTo).SAPLocation;

            //}
            //gridList.Data = gridList.Data.Where(o => o.Type == com.Sconit.CodeMaster.IpDetailType.Normal);
            //return PartialView(gridList);
            #endregion
            IList<IpDetail> ipDetList = new List<IpDetail>();
            ProcedureSearchStatementModel procedureSearchStatementModel = PrepareSearchDetailStatement(command, searchModel, string.Empty);
            procedureSearchStatementModel.SelectProcedure = "USP_Search_PrintIpDet";
            GridModel<object[]> gridModel = GetAjaxPageDataProcedure<object[]>(procedureSearchStatementModel, command);
            if (gridModel.Data != null && gridModel.Data.Count() > 0)
            {
                #region
                ipDetList = (from tak in gridModel.Data
                             select new IpDetail
                                {
                                    Id = (int)tak[0],
                                    IpNo = (string)tak[1],
                                    OrderNo = (string)tak[2],
                                    ExternalOrderNo = (string)tak[3],
                                    ExternalSequence = (string)tak[4],
                                    Item = (string)tak[5],
                                    ReferenceItemCode = (string)tak[6],
                                    ItemDescription = (string)tak[7],
                                    Uom = (string)tak[8],
                                    UnitCount = (decimal)tak[9],
                                    Qty = (decimal)tak[10],
                                    ReceivedQty = (decimal)tak[11],
                                    LocationFrom = (string)tak[12],
                                    LocationTo = (string)tak[13],
                                    Flow = (string)tak[14],
                                    IsClose = (bool)tak[15],
                                    IsInspect = (bool)tak[16],
                                    MastPartyFrom = (string)tak[17],
                                    MastPartyTo = (string)tak[18],
                                    MastType = systemMgr.GetCodeDetailDescription(Sconit.CodeMaster.CodeMaster.OrderType, int.Parse((tak[19]).ToString())),
                                    MastStatus = systemMgr.GetCodeDetailDescription(Sconit.CodeMaster.CodeMaster.IpStatus, int.Parse((tak[20]).ToString())),
                                    MastCreateDate = (DateTime)tak[21],
                                    SAPLocation = (string)tak[22],
                                    IsIncludeTax = (bool)tak[23],
                                }).ToList();
                #endregion
            }
            procedureSearchStatementModel.PageParameters[2].Parameter = gridModel.Total;
            TempData["IpDetailPrintSearchModel"] = procedureSearchStatementModel;

            GridModel<IpDetail> gridModelOrderDet = new GridModel<IpDetail>();
            gridModelOrderDet.Total = gridModel.Total;
            gridModelOrderDet.Data = ipDetList;

            return PartialView(gridModelOrderDet);
        }
        private ProcedureSearchStatementModel PrepareProcedureSearchStatement(GridCommand command, IpMasterSearchModel searchModel, string whereStatement)
        {
            List<ProcedureParameter> paraList = new List<ProcedureParameter>();
            List<ProcedureParameter> pageParaList = new List<ProcedureParameter>();
            paraList.Add(new ProcedureParameter { Parameter = searchModel.IpNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Status, Type = NHibernate.NHibernateUtil.Int16 });
            paraList.Add(new ProcedureParameter
            {
                Parameter =  (int)com.Sconit.CodeMaster.OrderType.Procurement
                    + "," + (int)com.Sconit.CodeMaster.OrderType.Transfer + ","  + (int)com.Sconit.CodeMaster.OrderType.ScheduleLine,
                Type = NHibernate.NHibernateUtil.String
            });

            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyFrom, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyTo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.StartDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.EndDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Dock, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Item, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.OrderNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.WMSNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.ManufactureParty, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Flow, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = false, Type = NHibernate.NHibernateUtil.Boolean });
            paraList.Add(new ProcedureParameter { Parameter = CurrentUser.Id, Type = NHibernate.NHibernateUtil.Int32 });
            paraList.Add(new ProcedureParameter { Parameter = whereStatement, Type = NHibernate.NHibernateUtil.String });


            if (command.SortDescriptors.Count > 0)
            {
                if (command.SortDescriptors[0].Member == "IpMasterStatusDescription")
                {
                    command.SortDescriptors[0].Member = "Status";
                }
            }

            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? command.SortDescriptors[0].Member : null, Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? (command.SortDescriptors[0].SortDirection == ListSortDirection.Descending ? "desc" : "asc") : "asc", Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.PageSize, Type = NHibernate.NHibernateUtil.Int32 });
            pageParaList.Add(new ProcedureParameter { Parameter = command.Page, Type = NHibernate.NHibernateUtil.Int32 });

            var procedureSearchStatementModel = new ProcedureSearchStatementModel();
            procedureSearchStatementModel.Parameters = paraList;
            procedureSearchStatementModel.PageParameters = pageParaList;
            procedureSearchStatementModel.CountProcedure = "USP_Search_IpMstrCount";
            procedureSearchStatementModel.SelectProcedure = "USP_Search_IpMstr";

            return procedureSearchStatementModel;
        }
 public ActionResult _AjaxList(GridCommand command, IpMasterSearchModel searchModel)
 {
     if (!this.CheckSearchModelIsNull(searchModel))
     {
         return PartialView(new GridModel(new List<IpMaster>()));
     }
     string whereStatement = string.Empty;
     if (searchModel.Item != null && searchModel.Item != string.Empty)
         whereStatement += " and exists(select 1 from IpDetail as d where d.IpNo = i.IpNo and d.Item = '" + searchModel.Item + "')";
     ProcedureSearchStatementModel procedureSearchStatementModel = this.PrepareProcedureSearchStatement(command, searchModel, whereStatement);
     return PartialView(GetAjaxPageDataProcedure<IpMaster>(procedureSearchStatementModel, command));
 }
 public ActionResult DetailList(GridCommand command, IpMasterSearchModel searchModel)
 {
     TempData["IpMasterSearchModel"] = searchModel;
     if (this.CheckSearchModelIsNull(searchModel))
     {
         ViewBag.PageSize = base.ProcessPageSize(command.PageSize);
         return View();
     }
     else
     {
         SaveWarningMessage(Resources.ErrorMessage.Errors_NoConditions);
         return View(new List<IpDetail>());
     }
 }
 public ActionResult CancelList(GridCommand command, IpMasterSearchModel searchModel)
 {
     SearchCacheModel searchCacheModel = ProcessSearchModel(command, searchModel);
     SearchStatementModel searchStatementModel = this.PrepareCancelSearchStatement(command, (IpMasterSearchModel)searchCacheModel.SearchObject);
     return View(GetPageData<IpMaster>(searchStatementModel, command));
 }
        private ProcedureSearchStatementModel PrepareSearchDetailStatement(GridCommand command, IpMasterSearchModel searchModel, string whereStatement)
        {

            List<ProcedureParameter> paraList = new List<ProcedureParameter>();
            List<ProcedureParameter> pageParaList = new List<ProcedureParameter>();
            paraList.Add(new ProcedureParameter { Parameter = searchModel.IpNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Status, Type = NHibernate.NHibernateUtil.Int16 });
            paraList.Add(new ProcedureParameter
            {
                Parameter = +(int)com.Sconit.CodeMaster.OrderType.Procurement
                   + "," + (int)com.Sconit.CodeMaster.OrderType.Transfer + "," + (int)com.Sconit.CodeMaster.OrderType.ScheduleLine,
                //"," + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer + + "," + (int)com.Sconit.CodeMaster.OrderType.SubContract + "," + (int)com.Sconit.CodeMaster.OrderType.Distribution+ "," + (int)com.Sconit.CodeMaster.OrderType.Production 
                //(int)com.Sconit.CodeMaster.OrderType.CustomerGoods + ","
                Type = NHibernate.NHibernateUtil.String
            });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyFrom, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyTo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.StartDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.EndDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Dock, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Item, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.OrderNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.WMSNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.ManufactureParty, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Flow, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = false, Type = NHibernate.NHibernateUtil.Int64 });
            paraList.Add(new ProcedureParameter { Parameter = CurrentUser.Id, Type = NHibernate.NHibernateUtil.Int32 });
            paraList.Add(new ProcedureParameter { Parameter = whereStatement, Type = NHibernate.NHibernateUtil.String });


            if (command.SortDescriptors.Count > 0)
            {
                if (command.SortDescriptors[0].Member == "ExternalOrderNo")
                {

                    command.SortDescriptors[0].Member = "ExtNo";
                }
                else if (command.SortDescriptors[0].Member == "ExternalSequence")
                {

                    command.SortDescriptors[0].Member = "ExtSeq";
                }
                else if (command.SortDescriptors[0].Member == "LocationTo")
                {

                    command.SortDescriptors[0].Member = "LocTo";
                }
                else if (command.SortDescriptors[0].Member == "ItemDescription")
                {

                    command.SortDescriptors[0].Member = "Item";
                }
                else if (command.SortDescriptors[0].Member == "ReceivedQty")
                {

                    command.SortDescriptors[0].Member = "RecQty";
                }
                else if (command.SortDescriptors[0].Member == "UnitCountDescription")
                {

                    command.SortDescriptors[0].Member = "UCDesc";
                }
                else if (command.SortDescriptors[0].Member == "ContainerDescription")
                {

                    command.SortDescriptors[0].Member = "ContainerDesc";
                }
                else if (command.SortDescriptors[0].Member == "Sequence")
                {

                    command.SortDescriptors[0].Member = "Seq";
                }
            }
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? command.SortDescriptors[0].Member : null, Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? (command.SortDescriptors[0].SortDirection == ListSortDirection.Descending ? "desc" : "asc") : "asc", Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.PageSize, Type = NHibernate.NHibernateUtil.Int32 });
            pageParaList.Add(new ProcedureParameter { Parameter = command.Page, Type = NHibernate.NHibernateUtil.Int32 });

            var procedureSearchStatementModel = new ProcedureSearchStatementModel();
            procedureSearchStatementModel.Parameters = paraList;
            procedureSearchStatementModel.PageParameters = pageParaList;
            procedureSearchStatementModel.CountProcedure = "USP_Search_IpDetCount";
            procedureSearchStatementModel.SelectProcedure = "USP_Search_IpDet";

            return procedureSearchStatementModel;
        }
 public ActionResult _AjaxIpDetList(GridCommand command, IpMasterSearchModel searchModel)
 {
     if (!this.CheckSearchModelIsNull(searchModel))
     {
         return PartialView(new GridModel(new List<IpDetail>()));
     }
     ProcedureSearchStatementModel procedureSearchStatementModel = PrepareSearchDetailStatement(command, searchModel, string.Empty);
     return PartialView(GetAjaxPageDataProcedure<IpDetail>(procedureSearchStatementModel, command));
 }
 public ActionResult List(GridCommand command, IpMasterSearchModel searchModel)
 {
     this.ProcessSearchModel(command, searchModel);
     ViewBag.PageSize = base.ProcessPageSize(command.PageSize);
     return View();
 }
 public ActionResult _CancelAjaxList(GridCommand command, IpMasterSearchModel searchModel)
 {
     SearchStatementModel searchStatementModel = this.PrepareCancelSearchStatement(command, searchModel);
     return PartialView(GetAjaxPageData<IpMaster>(searchStatementModel, command));
 }
 public ActionResult _AjaxList(GridCommand command, IpMasterSearchModel searchModel)
 {
     this.GetCommand(ref command, searchModel);
     if (!this.CheckSearchModelIsNull(searchModel))
     {
         return PartialView(new GridModel(new List<IpMaster>()));
     }
     //string whereStatement = " where i.Type=0";
     //SearchStatementModel searchStatementModel = this.PrepareSearchStatement(command, searchModel, whereStatement);
     //return PartialView(GetAjaxPageData<IpMaster>(searchStatementModel, command));
     string whereStatement = " and i.Type=" + (int)com.Sconit.CodeMaster.IpDetailType.Normal;
     ProcedureSearchStatementModel procedureSearchStatementModel = this.PrepareProcedureSearchStatement(command, searchModel, whereStatement);
     return PartialView(GetAjaxPageDataProcedure<IpMaster>(procedureSearchStatementModel, command));
 }
        private ProcedureSearchStatementModel PrepareSearchDetailStatement(GridCommand command, IpMasterSearchModel searchModel, string whereStatement)
        {
            whereStatement = "and exists(select 1 from IpMaster  as i where i.OrderSubType = " + (int)com.Sconit.CodeMaster.OrderSubType.Normal + " and i.IpNo=d.IpNo)";
            List<ProcedureParameter> paraList = new List<ProcedureParameter>();
            List<ProcedureParameter> pageParaList = new List<ProcedureParameter>();
            paraList.Add(new ProcedureParameter { Parameter = searchModel.IpNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Status, Type = NHibernate.NHibernateUtil.Int16 });
            paraList.Add(new ProcedureParameter
            {
                Parameter = (int)(int)com.Sconit.CodeMaster.OrderType.CustomerGoods + "," + (int)com.Sconit.CodeMaster.OrderType.Procurement
                                    + "," + (int)com.Sconit.CodeMaster.OrderType.SubContract + "," + (int)com.Sconit.CodeMaster.OrderType.ScheduleLine,
                Type = NHibernate.NHibernateUtil.String
            });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.OrderSubType, Type = NHibernate.NHibernateUtil.Int16 });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyFrom, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyTo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.StartDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.EndDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Dock, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Item, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.OrderNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.ExternalIpNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.ManufactureParty, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Flow, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = true, Type = NHibernate.NHibernateUtil.Int64 });
            paraList.Add(new ProcedureParameter { Parameter = CurrentUser.Id, Type = NHibernate.NHibernateUtil.Int32 });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.CreateUserName, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = whereStatement, Type = NHibernate.NHibernateUtil.String });


            if (command.SortDescriptors.Count > 0)
            {
                if (command.SortDescriptors[0].Member == "OrderTypeDescription")
                {
                    command.SortDescriptors[0].Member = "Type";
                }
                else if (command.SortDescriptors[0].Member == "OrderStatusDescription")
                {
                    command.SortDescriptors[0].Member = "Status";
                }
            }
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? command.SortDescriptors[0].Member : null, Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? (command.SortDescriptors[0].SortDirection == ListSortDirection.Descending ? "desc" : "asc") : "asc", Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.PageSize, Type = NHibernate.NHibernateUtil.Int32 });
            pageParaList.Add(new ProcedureParameter { Parameter = command.Page, Type = NHibernate.NHibernateUtil.Int32 });

            var procedureSearchStatementModel = new ProcedureSearchStatementModel();
            procedureSearchStatementModel.Parameters = paraList;
            procedureSearchStatementModel.PageParameters = pageParaList;
            procedureSearchStatementModel.CountProcedure = "USP_Search_IpDetCount";
            procedureSearchStatementModel.SelectProcedure = "USP_Search_IpDet";

            return procedureSearchStatementModel;
        }
        public void Export(IpMasterSearchModel searchModel)
        {
            int value = Convert.ToInt32(base.systemMgr.GetEntityPreferenceValue(EntityPreference.CodeEnum.MaxRowSizeOnPage));
            GridCommand command = new GridCommand();
            command.Page = 1;
            command.PageSize = !this.CheckSearchModelIsNull(searchModel) ? 0 : value;
            string whereStatement = " and exists (select 1 from IpMaster  as i where  i.Type = " + (int)com.Sconit.CodeMaster.OrderSubType.Normal + " and i.IpNo=d.IpNo) ";
            ProcedureSearchStatementModel procedureSearchStatementModel = PrepareSearchDetailStatement(command, searchModel, whereStatement);
            var list = GetAjaxPageDataProcedure<IpDetail>(procedureSearchStatementModel, command);

            ExportToXLS<IpDetail>("DistributionIpDetail.xls", list.Data.ToList());
        }
        private SearchStatementModel PrepareCancelSearchStatement(GridCommand command, IpMasterSearchModel searchModel)
        {
            string whereStatement = "where  i.OrderType in ("
                                    + (int)com.Sconit.CodeMaster.OrderType.Procurement + "," + (int)com.Sconit.CodeMaster.OrderType.CustomerGoods + "," + (int)com.Sconit.CodeMaster.OrderType.ScheduleLine + ","
                                    + (int)com.Sconit.CodeMaster.OrderType.SubContract + "," + (int)com.Sconit.CodeMaster.OrderType.Transfer + "," + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer + ")"
                                    + " and i.Status = " + (int)com.Sconit.CodeMaster.IpStatus.Submit;

            IList<object> param = new List<object>();

            HqlStatementHelper.AddLikeStatement("IpNo", searchModel.IpNo, HqlStatementHelper.LikeMatchMode.Start, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("PartyFrom", searchModel.PartyFrom, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("PartyTo", searchModel.PartyTo, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("OrderType", searchModel.IpOrderType, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Flow", searchModel.Flow, "i", ref whereStatement, param);

            SecurityHelper.AddPartyFromAndPartyToPermissionStatement(ref whereStatement, "i", "OrderType", "i", "PartyFrom", "i", "PartyTo", com.Sconit.CodeMaster.OrderType.Procurement, true);
            if (searchModel.StartDate != null & searchModel.EndDate != null)
            {
                HqlStatementHelper.AddBetweenStatement("CreateDate", searchModel.StartDate, searchModel.EndDate, "i", ref whereStatement, param);
            }
            else if (searchModel.StartDate != null & searchModel.EndDate == null)
            {
                HqlStatementHelper.AddGeStatement("CreateDate", searchModel.StartDate, "i", ref whereStatement, param);
            }
            else if (searchModel.StartDate == null & searchModel.EndDate != null)
            {
                HqlStatementHelper.AddLeStatement("CreateDate", searchModel.EndDate, "i", ref whereStatement, param);
            }

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


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

            return searchStatementModel;
        }
        private ProcedureSearchStatementModel PrepareSearchDetailStatement(GridCommand command, IpMasterSearchModel searchModel, string whereStatement)
        {

            List<ProcedureParameter> paraList = new List<ProcedureParameter>();
            List<ProcedureParameter> pageParaList = new List<ProcedureParameter>();
            paraList.Add(new ProcedureParameter { Parameter = searchModel.IpNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Status, Type = NHibernate.NHibernateUtil.Int16 });
            if (searchModel.IpOrderType.HasValue)
            {
                paraList.Add(new ProcedureParameter { Parameter = searchModel.IpOrderType, Type = NHibernate.NHibernateUtil.String });
            }
            else
            {
                paraList.Add(new ProcedureParameter
                {
                    Parameter = (int)com.Sconit.CodeMaster.OrderType.Distribution + ","
                    + (int)com.Sconit.CodeMaster.OrderType.Transfer + ","
                    + (int)com.Sconit.CodeMaster.OrderType.SubContractTransfer,
                    Type = NHibernate.NHibernateUtil.String
                });
            }
            paraList.Add(new ProcedureParameter { Parameter = searchModel.OrderSubType, Type = NHibernate.NHibernateUtil.Int16 });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyFrom, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.PartyTo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.StartDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.EndDate, Type = NHibernate.NHibernateUtil.DateTime });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Dock, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Item, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.OrderNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.ExternalIpNo, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.ManufactureParty, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.Flow, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = false, Type = NHibernate.NHibernateUtil.Int64 });
            paraList.Add(new ProcedureParameter { Parameter = CurrentUser.Id, Type = NHibernate.NHibernateUtil.Int32 });
            paraList.Add(new ProcedureParameter { Parameter = searchModel.CreateUserName, Type = NHibernate.NHibernateUtil.String });
            paraList.Add(new ProcedureParameter { Parameter = whereStatement, Type = NHibernate.NHibernateUtil.String });


            if (command.SortDescriptors.Count > 0)
            {
                if (command.SortDescriptors[0].Member == "OrderTypeDescription")
                {
                    command.SortDescriptors[0].Member = "Type";
                }
                else if (command.SortDescriptors[0].Member == "OrderStatusDescription")
                {
                    command.SortDescriptors[0].Member = "Status";
                }
            }
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? command.SortDescriptors[0].Member : null, Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.SortDescriptors.Count > 0 ? (command.SortDescriptors[0].SortDirection == ListSortDirection.Descending ? "desc" : "asc") : "asc", Type = NHibernate.NHibernateUtil.String });
            pageParaList.Add(new ProcedureParameter { Parameter = command.PageSize, Type = NHibernate.NHibernateUtil.Int32 });
            pageParaList.Add(new ProcedureParameter { Parameter = command.Page, Type = NHibernate.NHibernateUtil.Int32 });

            var procedureSearchStatementModel = new ProcedureSearchStatementModel();
            procedureSearchStatementModel.Parameters = paraList;
            procedureSearchStatementModel.PageParameters = pageParaList;
            procedureSearchStatementModel.CountProcedure = "USP_Search_IpDetCount";
            procedureSearchStatementModel.SelectProcedure = "USP_Search_IpDet";

            return procedureSearchStatementModel;
        }
 public void ExportMstr(IpMasterSearchModel searchModel)
 {
     int value = Convert.ToInt32(base.systemMgr.GetEntityPreferenceValue(EntityPreference.CodeEnum.MaxRowSizeOnPage));
     GridCommand command = new GridCommand();
     command.Page = 1;
     command.PageSize = !this.CheckSearchModelIsNull(searchModel) ? 0 : value;
     if (!this.CheckSearchModelIsNull(searchModel))
     {
         return;
     }
     ProcedureSearchStatementModel procedureSearchStatementModel = this.PrepareProcedureSearchStatement(command, searchModel, string.Empty);
     ExportToXLS<IpMaster>("SupplierIpMaster.xls", GetAjaxPageDataProcedure<IpMaster>(procedureSearchStatementModel, command).Data.ToList());
 }
        public void ExportMstrRec(IpMasterSearchModel searchModel)
        {
            int value = Convert.ToInt32(base.systemMgr.GetEntityPreferenceValue(EntityPreference.CodeEnum.MaxRowSizeOnPage));
            GridCommand command = new GridCommand();
            command.Page = 1;
            command.PageSize = !this.CheckSearchModelIsNull(searchModel) ? 0 : value;
            string replaceFrom = "_ReceiveAjaxList";
            string replaceTo = "ReceiveList";
            this.GetCommand(ref command, searchModel, replaceFrom, replaceTo);
            string whereStatement = " and i.Status in (" + (int)com.Sconit.CodeMaster.IpStatus.Submit + "," + (int)com.Sconit.CodeMaster.IpStatus.InProcess + ")"
                                 + " and exists (select 1 from IpDetail as d where d.IsClose = 0 and d.Type = 0 and d.IpNo = i.IpNo) ";
            ProcedureSearchStatementModel procedureSearchStatementModel = this.PrepareReceiveProcedureSearchStatement(command, searchModel, whereStatement);
            ExportToXLS<IpMaster>("DistributionIpGapMaster.xls", GetAjaxPageDataProcedure<IpMaster>(procedureSearchStatementModel, command).Data.ToList());

        }
        private SearchStatementModel PrepareSearchStatement(GridCommand command, IpMasterSearchModel searchModel)
        {
            string whereStatement = " where i.OrderType in ("
                             + (int)com.Sconit.CodeMaster.OrderType.Procurement + "," + (int)com.Sconit.CodeMaster.OrderType.CustomerGoods + ","
                             + (int)com.Sconit.CodeMaster.OrderType.SubContract + "," + (int)com.Sconit.CodeMaster.OrderType.ScheduleLine + ")";

            IList<object> param = new List<object>();
            HqlStatementHelper.AddLikeStatement("WMSNo", searchModel.WMSNo, HqlStatementHelper.LikeMatchMode.Start, "i", ref whereStatement, param);
            HqlStatementHelper.AddLikeStatement("Dock", searchModel.Dock, HqlStatementHelper.LikeMatchMode.Start, "i", ref whereStatement, param);
            HqlStatementHelper.AddLikeStatement("IpNo", searchModel.IpNo, HqlStatementHelper.LikeMatchMode.Start, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Status", searchModel.Status, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("PartyFrom", searchModel.PartyFrom, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("PartyTo", searchModel.PartyTo, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("OrderType", searchModel.IpOrderType, "i", ref whereStatement, param);
            HqlStatementHelper.AddEqStatement("Flow", searchModel.Flow, "i", ref whereStatement, param);
            SecurityHelper.AddPartyFromPermissionStatement(ref whereStatement, "i", "PartyFrom", com.Sconit.CodeMaster.OrderType.Procurement, true);
            SecurityHelper.AddPartyFromAndPartyToPermissionStatement(ref whereStatement, "i", "OrderType", "i", "PartyFrom", "i", "PartyTo", com.Sconit.CodeMaster.OrderType.Procurement, true);

            if (searchModel.StartDate != null & searchModel.EndDate != null)
            {
                HqlStatementHelper.AddBetweenStatement("CreateDate", searchModel.StartDate, searchModel.EndDate, "i", ref whereStatement, param);
            }
            else if (searchModel.StartDate != null & searchModel.EndDate == null)
            {
                HqlStatementHelper.AddGeStatement("CreateDate", searchModel.StartDate, "i", ref whereStatement, param);
            }
            else if (searchModel.StartDate == null & searchModel.EndDate != null)
            {
                HqlStatementHelper.AddLeStatement("CreateDate", searchModel.EndDate, "i", ref whereStatement, param);
            }

            if (command.SortDescriptors.Count > 0)
            {
                if (command.SortDescriptors[0].Member == "IpMasterStatusDescription")
                {
                    command.SortDescriptors[0].Member = "Status";
                }
            }
            string sortingStatement = HqlStatementHelper.GetSortingStatement(command.SortDescriptors);

            if (command.SortDescriptors.Count == 0)
            {
                sortingStatement = " order by i.CreateDate desc";
            }

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

            return searchStatementModel;
        }