public MsCrmResult GetQuote(string QuoteNumber) { MsCrmResult result = new MsCrmResult(); QuoteDetail qd = new QuoteDetail(); try { IOrganizationService service = MSCRM.GetOrgService(true); ConditionExpression con1 = new ConditionExpression(); con1.AttributeName = "quotenumber"; con1.Operator = ConditionOperator.Equal; con1.Values.Add(QuoteNumber); ConditionExpression con2 = new ConditionExpression(); con2.AttributeName = "statuscode"; con2.Operator = ConditionOperator.NotEqual; con2.Values.Add(7);//Düzeltilmiş olmayacak FilterExpression filter = new FilterExpression(); filter.FilterOperator = LogicalOperator.And; filter.Conditions.Add(con1); filter.Conditions.Add(con2); QueryExpression Query = new QueryExpression("quote"); Query.ColumnSet = new ColumnSet(true); Query.Criteria.FilterOperator = LogicalOperator.And; Query.Criteria.Filters.Add(filter); EntityCollection Result = service.RetrieveMultiple(Query); if (Result.Entities.Count > 0) { Entity q = Result.Entities[0]; Entity product = GetProductByQuoteId(service, q.Id); GetCustomerByQuote(service, q, qd); qd.SalesId = Result.Entities[0].Id.ToString(); qd.ApartmentIdentificationNumber = product.Contains("productnumber") ? product.Attributes["productnumber"].ToString() : string.Empty; qd.Block = product.Contains("new_blockid") ? ((EntityReference)product.Attributes["new_blockid"]).Name : string.Empty; qd.ContractDate = q.Contains("new_contractdate") ? ((DateTime)q.Attributes["new_contractdate"]).ToLocalTime() : (DateTime?)null; qd.CustomerName = q.Contains("customerid") ? ((EntityReference)q.Attributes["customerid"]).Name : string.Empty; qd.HomeNumber = product.Contains("new_homenumber") ? product.Attributes["new_homenumber"].ToString() : string.Empty; qd.PerQquareMeterAmount = product.Contains("new_persquaremeter") ? ((Money)product.Attributes["new_persquaremeter"]).Value.ToString("N2") : string.Empty; qd.PrePaymentAmount = q.Contains("new_prepaymentamount") ? ((Money)q.Attributes["new_prepaymentamount"]).Value.ToString("N2") : string.Empty; qd.ProjectName = product.Contains("new_projectid") ? ((EntityReference)product.Attributes["new_projectid"]).Name : string.Empty; qd.SalesConsultant = q.Contains("ownerid") ? ((EntityReference)q.Attributes["ownerid"]).Name : string.Empty; qd.SalesConsultantEmail = GetSalesConsultantEmail(((EntityReference)q.Attributes["ownerid"]).Id, service); qd.SalesProcessDate = q.Contains("new_salesprocessdate") ? ((DateTime)q.Attributes["new_salesprocessdate"]).ToLocalTime() : (DateTime?)null; qd.TotalAmountLessFreight = q.Contains("totalamountlessfreight") ? ((Money)q.Attributes["totalamountlessfreight"]).Value.ToString("N2") : string.Empty; qd.TransactionCurrency = q.Contains("transactioncurrencyid") ? ((EntityReference)q.Attributes["transactioncurrencyid"]).Name : string.Empty; qd.SalesStatus = q.Contains("statuscode") ? GetOptionSetValue(1084, "statuscode", ((OptionSetValue)q.Attributes["statuscode"]).Value, service) : string.Empty; qd.KonutStatus = product.Contains("statuscode") ? GetOptionSetValue(1024, "statuscode", ((OptionSetValue)product.Attributes["statuscode"]).Value, service) : string.Empty; qd.HouseCrmLink = q.Contains("new_productid") ? (Globals.HouseCrmLink + ((EntityReference)q.Attributes["new_productid"]).Id.ToString()) : string.Empty; ConditionExpression con3 = new ConditionExpression(); con3.AttributeName = "new_quoteid"; con3.Operator = ConditionOperator.Equal; con3.Values.Add(q.Id); ConditionExpression con4 = new ConditionExpression(); con4.AttributeName = "statecode"; con4.Operator = ConditionOperator.Equal; con4.Values.Add(0); FilterExpression filter2 = new FilterExpression(); filter2.FilterOperator = LogicalOperator.And; filter2.Conditions.Add(con3); filter2.Conditions.Add(con4); QueryExpression Query2 = new QueryExpression("new_salescanceldetail"); Query2.ColumnSet = new ColumnSet(true); Query2.Criteria.FilterOperator = LogicalOperator.And; Query2.Criteria.Filters.Add(filter2); EntityCollection Result2 = service.RetrieveMultiple(Query2); if (Result2.Entities.Count > 0) { Entity r = Result2.Entities[0]; qd.CalcelReasonId = Result2.Entities[0].Id.ToString(); qd.SubCanceledReason = r.Contains("new_subcanceledreasonid") ? ((EntityReference)r.Attributes["new_subcanceledreasonid"]).Name : string.Empty; qd.CanceledReason = r.Contains("new_canceledreasonid") ? ((EntityReference)r.Attributes["new_canceledreasonid"]).Name : string.Empty; qd.CanceledDate = r.Contains("createdon") ? ((DateTime)r.Attributes["createdon"]).ToLocalTime() : (DateTime?)null; qd.CanceledDescription = r.Contains("new_canceldescription") ? r.Attributes["new_canceldescription"].ToString() : string.Empty; qd.ContractAccessOffice = r.Contains("new_contractaccessoffice") ? r.Attributes["new_contractaccessoffice"].ToString() : string.Empty; qd.contractAccessDate = r.Contains("new_contractaccessdate") ? ((DateTime)r.Attributes["new_contractaccessdate"]).ToLocalTime() : (DateTime?)null; qd.WageNumber = r.Contains("new_wagenumber") ? r.Attributes["new_wagenumber"].ToString() : string.Empty; qd.ProtestDate = r.Contains("new_protestdate") ? ((DateTime)r.Attributes["new_protestdate"]).ToLocalTime() : (DateTime?)null; qd.ContractCanceledOffice = r.Contains("new_contractcanceledoffice") ? r.Attributes["new_contractcanceledoffice"].ToString() : string.Empty; qd.NotaryStatus = r.Contains("new_notarystatus") ? GetOptionsSetTextFromValue(service, "new_salescanceldetail", "new_notarystatus", ((OptionSetValue)r.Attributes["new_notarystatus"]).Value) : string.Empty; } result.Result = qd; result.Success = true; result.Message = "Satış Detayları Başarıyla Çekildi."; } else { result.Success = false; result.Message = QuoteNumber + " Numaralı Satış Bulunamadı"; } } catch (Exception ex) { result.Success = false; result.Message = ex.Message; } return(result); }