public HttpResponseMessage Create_M(RequestServiceContractPerHour contract) { var result = Manager.CreateNewContract(contract); return(OkResponse <ReturnData>(new ReturnData() { State = true, Data = new { contract = result } })); }
public HttpResponseMessage CreateNewContract(RequestServiceContractPerHour contract) { ServiceContractPerHourManager manager = new ServiceContractPerHourManager(); Entity contractEntity = manager.CastToCrmEntity(contract); Guid newContractGuid = GlobalCode.Service.Create(contractEntity); Entity newEntity = manager.GetCrmEntity(newContractGuid.ToString()); return(OkResponse(contract)); }
public RequestServiceContractPerHour CreateNewContract(RequestServiceContractPerHour contract) { var contractEntity = CastToCrmEntity(contract); //MIB for making Status waiting paid contractEntity["statuscode"] = new OptionSetValue(100000006); contractEntity["new_contractconfirm"] = true; Guid contractId = GlobalCode.Service.Create(contractEntity); contract.ContractId = contractId.ToString(); Entity CreatedContract = GetCrmEntity(contractId.ToString()); contract.ContractNum = CreatedContract["new_contractnumber"].ToString(); contract.FinalPrice = CreatedContract["new_finalprice"].ToString(); #region MIB //to be changed this for making online payment URL try { Entity Contractupdate = GlobalCode.Service.Retrieve("new_hindvcontract", contractId, new ColumnSet(false)); //Contractupdate["new_onlinepaymenturl"] = "https://abdal.sa/ar/Payment/DalalShopperResult/" + contractId.ToString(); Contractupdate["new_onlinepaymenturl"] = String.Format("{0}/{1}/{2}/{3}", ConfigurationManager.AppSettings["OnlineAbdalPortalUrl"], GeneralAppSettings.RequestLang, ConfigurationManager.AppSettings["OnlineUserDalalPaymentUrl"], contractId.ToString()); GlobalCode.Service.Update(Contractupdate); } catch (Exception) { } #endregion return(contract); // if (!string.IsNullOrEmpty(contractId.ToString())) // { // //Send SMS To confirm // try // { // string contsql = @" // select new_HIndvContract.new_ContractNumber ,Contact.FirstName from new_HIndvContract,Contact // where Contact.ContactId =new_HIndvContract.new_HIndivClintname and // new_HIndvContract.new_HIndvContractId='@id'"; // contsql = contsql.Replace("@id", contractId.ToString()); // System.Data.DataTable dtcontract = CRMAccessDB.SelectQ(contsql).Tables[0]; // string Sql = @"select MobilePhone,new_deviceid from Contact where ContactId='@id' "; // Sql = Sql.Replace("@id", CustomerNo); // System.Data.DataTable dt = CRMAccessDB.SelectQ(Sql).Tables[0]; // //send Notification // string result = SendNotifications.SendNotify("," + CustomerNo, "عزيزى العميل /" + dtcontract.Rows[0]["FirstName"].ToString() + " " + "شكرا لاختياركم شركة ناس سيتم التواصل معكم قريبا لتاكيد الموعد للعقد رقم " + dtcontract.Rows[0]["new_ContractNumber"].ToString()); // string body = "عزيزى العميل /" + dtcontract.Rows[0]["FirstName"].ToString() + " " + "شكرا لاختياركم شركة ناس سيتم التواصل معكم قريبا لتاكيد الموعد للعقد رقم " + dtcontract.Rows[0]["new_ContractNumber"].ToString(); // AppleNotifications.SendPushNotification(dt.Rows[0]["new_deviceid"].ToString(), body, "شركة ناس للاستقدام"); // //Send To SMS // /* Entity SMS = new Entity("new_smsns"); // string UserName = ConfigurationManager.AppSettings["SMSUserName"]; // string SMSPassword = ConfigurationManager.AppSettings["SMSPassword"]; // string TagName = ConfigurationManager.AppSettings["TagName"]; // SMSRef.SMSServiceSoapClient sms = new SMSRef.SMSServiceSoapClient(); // string MobileNumber = dt.Rows[0][0].ToString(); // string Message = "https://nasmanpower.com/HourlyServiceContract/Maps.aspx?id=" + contractId + " برجاء تاكيد الموقع باستخدام الرابط المرسل . شكرا لاستخدامكم شركة ناس "; // string res = sms.SendBulkSMS(UserName, SMSPassword, TagName, MobileNumber, Message);*/ // } // catch (Exception) // { // return contractId.ToString(); // } // } //return contractId.ToString(); }
public Entity CastToCrmEntity(RequestServiceContractPerHour contract) { Entity contractEntity = new Entity(CrmEntityName); contractEntity["new_hindivclintname"] = new EntityReference(CrmEntityNamesMapping.Contact, new Guid(contract.CustomerId.ToString())); contractEntity["new_nationality"] = new EntityReference(CrmEntityNamesMapping.Nationality, new Guid(contract.NationalityId)); contractEntity["new_houlrypricing"] = new EntityReference(CrmEntityNamesMapping.HourlyPricing, new Guid(contract.HourlyPricingId)); contractEntity["new_city"] = new EntityReference(CrmEntityNamesMapping.City, new Guid(contract.CityId)); contractEntity["new_district"] = new EntityReference(CrmEntityNamesMapping.District, new Guid(contract.DistrictId)); RequestHourlyPricing pricingObj = new RequestHourlyPricing(); pricingObj.PromotionCode = contract.PromotionCode; var promotion = PromotionMgr.GetPromotionByCode(pricingObj, UserLanguage.Arabic); contractEntity["new_promotionid"] = new EntityReference(CrmEntityNamesMapping.Promotion, new Guid(promotion.Id)); var totalVisits = contract.ContractDuration * contract.NumOfVisits; var extraVisits = (promotion.FreeVisitsFactor ?? 0) == 0 ? 0 : Math.Truncate((decimal)totalVisits / promotion.FreeVisitsFactor.Value); var totalPlusExtraVisits = totalVisits + extraVisits; contractEntity["new_contractsource"] = new OptionSetValue(contract.Who == 1 ? 1 : 2); // why? contractEntity["new_housetype"] = new OptionSetValue(contract.HouseType); contractEntity["new_floorno"] = new OptionSetValue(contract.FloorNo); contractEntity["new_partmentnumber"] = contract.PartmentNo; contractEntity["new_houseno"] = contract.HouseNo; contractEntity["new_notes"] = contract.AddressNotes; //if (contract.Who == 1) // contractEntity["new_contractsource"] = new OptionSetValue(contract.Who); //else // contractEntity["new_contractsource"] = new OptionSetValue(2); contractEntity["new_new_contractdate"] = DateTime.Now; contractEntity["new_contractconfirm"] = DefaultValues.ServiceContractPerHour_IsConfirmed; contractEntity["statuscode"] = new OptionSetValue(DefaultValues.ServiceContractPerHour_StatusCode); contract.StartDay = contract.StartDay.Replace('/', '-'); contractEntity["new_contractstartdate"] = DateTime.ParseExact(contract.StartDay, "dd-MM-yyyy", CultureInfo.InvariantCulture); contractEntity["new_customerdays"] = contract.AvailableDays; contractEntity["new_selecteddays"] = contract.AvailableDays; contractEntity["new_latitude"] = contract.Latitude; contractEntity["new_longitude"] = contract.Longitude; contractEntity["new_mapurl"] = "http://maps.google.com/maps?q=" + contract.Latitude + "," + contract.Longitude + "&z=15"; contractEntity["new_paymentcode"] = new Random().Next(0, 1000000).ToString("D6"); Entity hourlyPricing = HourlyPricingManager.GetCrmEntity(contract.HourlyPricingId); var hourlyPricingCost = HourlyPricingManager.CalculateHourlyPricingCost(hourlyPricing, contract.NumOfHours, contract.NumOfVisits, contract.ContractDuration, contract.NumOfWorkers, promotion); contractEntity["new_shift"] = bool.Parse(hourlyPricing["new_shift"].ToString()); contractEntity["new_hoursnumber"] = new OptionSetValue(contract.NumOfHours); contractEntity["new_visitcount_def"] = contract.NumOfVisits; contractEntity["new_weeklyvisits"] = new OptionSetValue(contract.NumOfVisits); contractEntity["new_contractmonth"] = new OptionSetValue(contract.ContractDuration); contractEntity["new_employeenumber"] = new OptionSetValue(contract.NumOfWorkers); contractEntity["new_visitprice_def"] = int.Parse(MathNumber.RoundDeciamlToInt(hourlyPricingCost.HourRate.ToString())) * contract.NumOfHours; contractEntity["new_visittotalprice"] = hourlyPricingCost.HourRate * contract.NumOfHours; contractEntity["new_monthvisits_def"] = contract.NumOfVisits * 4; // contractEntity["new_totalvisits_def"] = contract.NumOfVisits * contract.ContractDuration; MIB Must be int contractEntity["new_totalvisits_def"] = (int)Math.Round(totalPlusExtraVisits, 0); contractEntity["new_hindivcount"] = contract.NumOfHours; contractEntity["new_discount_def"] = hourlyPricingCost.Discount; contractEntity["new_totalprice_def"] = (int)Math.Round(hourlyPricingCost.TotalPriceAfterPromotion, 0); //decimal value string 180 = 180m as string not using parse contractEntity["new_vatrate"] = hourlyPricingCost.VatRate / 100m; contractEntity["new_vatamount"] = hourlyPricingCost.VatAmount; contractEntity["new_finalprice"] = hourlyPricingCost.TotalPriceWithVat; contractEntity["new_onevisitprice"] = hourlyPricingCost.TotalPriceWithVat / (((int)Math.Round(totalPlusExtraVisits, 0)) * contract.NumOfWorkers); return(contractEntity); }
public HttpResponseMessage Post(RequestServiceContractPerHour contract) { var result = Manager.CreateNewContract(contract); return(OkResponse <RequestServiceContractPerHour>(result)); }