/// <summary>
        /// PO List page use this method
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public SearchInvoiceResponse SearchPOlist(SearchInvoiceRequest request)
        {
            StringBuilder sqlStr = new StringBuilder();

            sqlStr.Append(@"SELECT C.CompanyName,PT.PONo,PT.Title,PT.ApprovedOn,i.Milestone,i.InvoiceNo,i.Status  
                            FROM dbo.Companys C,dbo.ProposalTracker PT,dbo.Projects P,dbo.Invoices i
                            WHERE C.ComID=P.CompanyID AND P.ProjectID=PT.ProjectID AND pt.ProposalTrackerID=i.ProposalId AND pt.ApprovedOn IS NOT NULL ");
            switch (request.Searchtype)
            {
            case InvoiceSearchType.ProposalOnly:
                sqlStr.Append("AND i.ProposalId !=0 ");
                break;

            case InvoiceSearchType.AwitingPayment:
                sqlStr.Append("AND i.Status =" + (int)InvoiceStatus.Awaiting_Payment + " ");
                break;

            case InvoiceSearchType.PassDue:
                sqlStr.Append("AND i.DueOn <  (select getdate() )");
                break;

            case InvoiceSearchType.All:
                break;
            }
            if (request.Keywords != "")
            {
                sqlStr.Append("AND (");
                sqlStr.Append(" PT.PONo LIKE @Keywords ");
                sqlStr.Append(") ");
            }
            if (request.CompanyId != 0)
            {
                sqlStr.Append("AND c.ComID=@CompanyId ");
            }
            if ((int)request.InvoiceStatus != 0)
            {
                sqlStr.Append("AND i.Status=@Status ");
            }
            if (!string.IsNullOrEmpty(request.ApproveOn))
            {
                sqlStr.Append(" AND PT.ApprovedOn=@ApprovedOn ");
            }

            if (request.OrderExpression != "")
            {
                sqlStr.AppendFormat("ORDER BY {0} ", request.OrderExpression);
            }
            else
            {
                sqlStr.Append("ORDER BY  PT.ApprovedOn ");
            }

            if (request.OrderDirection != "")
            {
                sqlStr.Append(request.OrderDirection);
            }
            else
            {
                sqlStr.Append("DESC;");
            }

            List <POListModel>    list;
            SearchInvoiceResponse response = new SearchInvoiceResponse();
            Database db = DatabaseFactory.CreateDatabase();

            using (DbCommand dbCommand = db.GetSqlStringCommand(sqlStr.ToString()))
            {
                try
                {
                    db.AddInParameter(dbCommand, "Keywords", DbType.String, string.Format("%{0}%", request.Keywords.FilterSqlString()));
                    db.AddInParameter(dbCommand, "CompanyId", DbType.Int32, request.CompanyId);
                    db.AddInParameter(dbCommand, "OrderExpression", DbType.String, request.OrderExpression);
                    db.AddInParameter(dbCommand, "OrderDirection", DbType.String, request.OrderDirection);
                    db.AddInParameter(dbCommand, "Status", DbType.Int32, request.InvoiceStatus);
                    db.AddInParameter(dbCommand, "ApprovedOn", DbType.String, request.ApproveOn);
                    using (IDataReader dataReader = db.ExecuteReader(dbCommand))
                    {
                        list = new List <POListModel>();
                        while (dataReader.Read())
                        {
                            list.Add(POListModel.ReaderBind(dataReader));
                        }
                        response.POList      = list;
                        response.POListCount = list.Count;
                    }
                }
                catch (Exception ex)
                {
                    WebLogAgent.Write(string.Format("[SQLText:{0},{1}Messages:\r\n{2}]",
                                                    sqlStr.ToString(),
                                                    base.FormatParameters(dbCommand.Parameters),
                                                    ex.Message));
                }
            }
            return(response);
        }
Esempio n. 2
0
        public JsonResult ApprovePO(POApproveRejectModel objPOApproveRejectModel, POListModel objListData, List <POTypeDataModel> ProductListData)
        {
            var  ObjLoginModel = new eTracLoginModel();
            long LocationId = 0; string result = "";
            long POId = 0;

            try
            {
                if (Session != null && Session["eTrac"] != null)
                {
                    ObjLoginModel = (eTracLoginModel)(Session["eTrac"]);
                    if (objPOApproveRejectModel.LocationId == 0)
                    {
                        LocationId = ObjLoginModel.LocationID;
                    }
                }
                if (!string.IsNullOrEmpty(objPOApproveRejectModel.POApproveRemoveId))
                {
                    objPOApproveRejectModel.POApproveRemoveId = Cryptography.GetDecryptedData(objPOApproveRejectModel.POApproveRemoveId, true);
                    long.TryParse(objPOApproveRejectModel.POApproveRemoveId, out POId);
                }
                objPOApproveRejectModel.UserId       = ObjLoginModel.UserId;
                objPOApproveRejectModel.POModifiedId = POId;
                if (objPOApproveRejectModel.POModifiedId > 0)
                {
                    //var getResponseForQB = _IPOTypeDetails.GetApprovalResponseToSaveQBKId(objPOApproveRejectModel, objListData);
                    result = _IPOTypeDetails.ApprovePOByPOId(objPOApproveRejectModel, objListData);
                    if (objPOApproveRejectModel.Comment != null)
                    {
                        string realmId = CallbackController.RealMId.ToString();//Session["realmId"].ToString();
                        if (realmId != null)
                        {
                            try
                            {
                                string AccessToken  = CallbackController.AccessToken.ToString();// Session["access_token"].ToString();
                                string refreshToken = CallbackController.RefreshToken;
                                var    principal    = User as ClaimsPrincipal;
                                OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(AccessToken);
                                ServiceContext         serviceContext = new ServiceContext(realmId, IntuitServicesType.QBO, oauthValidator);
                                serviceContext.IppConfiguration.MinorVersion.Qbo = "23";
                                DataService commonServiceQBO = new DataService(serviceContext);
                                QueryService <PurchaseOrder> querySvcCompany = new QueryService <PurchaseOrder>(serviceContext);
                                List <PurchaseOrder>         listPO          = querySvcCompany.ExecuteIdsQuery("SELECT * FROM PurchaseOrder MaxResults 1000")
                                                                               .ToList();
                                var getResponseForQB = _IPOTypeDetails.GetApprovalResponseToSaveQBKId(objPOApproveRejectModel, objListData);
                                if (getResponseForQB != null)
                                {
                                    var dataget = listPO.Where(x => x.Id == getResponseForQB.POD_QBKId.ToString()).FirstOrDefault();
                                    if (dataget != null)
                                    {
                                        dataget.POStatus = PurchaseOrderStatusEnum.Closed;
                                        var update = commonServiceQBO.Update(dataget) as PurchaseOrder;
                                    }
                                }
                                else
                                {
                                    result = CommonMessage.NoRecordMessage();
                                }
                            }
                            catch (Exception ex)
                            {
                                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
                            }
                        }
                    }
                }
                else
                {
                    result = "Not getting PO Number";
                }
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }