/// <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); }
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)); }