private void CreateTwilioNotificationActivity(ARInvoiceEntry invGraph, string Subject, string MessageBody) { try { invGraph.Actions["NewActivity"].Press(); } catch (Exception ex) { if (ex is PXRedirectRequiredException) { try { CRActivityMaint graph = (ex as PXRedirectRequiredException).Graph as CRActivityMaint; if (graph != null) { CRActivity callActivity = graph.Activities.Current; callActivity.Type = "P"; callActivity.Subject = Subject; callActivity.Body = MessageBody; callActivity = graph.Activities.Update(callActivity); graph.Actions.PressSave(); } } catch (Exception graphErr) { throw graphErr; } } } }
public IEnumerable AddMailActivity(PXAdapter adapter, string emailAddress) { if (!IsCurrentRedy) { return(adapter.Get()); } PrepareGraph(); CRActivityMaint graph = CreateSpecGraph <CRActivityMaint>(); CRActivity activity = CreateActivity(); CRSetup setup = PXSelect <CRSetup> .Select(this.Graph); activity.Type = setup.EMailActivityType; activity.Status = ActivityStatus.NotStarted; graph.Activites.Current = graph.Activites.Insert(activity); PXAdapter mailCreate = new PXAdapter(graph.Activites); mailCreate.StartRow = 0; mailCreate.MaximumRows = 1; foreach (object e in graph.CreateMail.Press(mailCreate)) { ; } if (!string.IsNullOrEmpty(emailAddress)) { graph.Message.Current.MailTo = emailAddress; } throw new PXPopupRedirectException(true, graph, Messages.CRActivityMaint); }
public IEnumerable AddActivity(PXAdapter adapter) { if (!IsCurrentRedy) { return(adapter.Get()); } PrepareGraph(); CRActivityMaint graph = CreateSpecGraph <CRActivityMaint>(); CRActivity var1 = CreateActivity(); graph.Activites.Current = graph.Activites.Insert(var1); throw new PXPopupRedirectException(true, graph, Messages.CRActivityMaint); }
public void MyPut(string phoneNumber) { CRSetupExt ext = setup.Current.GetExtension <CRSetupExt>(); string url = ext.UsrVOIPUrl; EPEmployee employee = PXSelect <EPEmployee, Where <EPEmployee.userID, Equal <Required <EPEmployee.userID> > > > .Select(Base, Base.Accessinfo.UserID); BAccountExt baccountExtension = employee.GetExtension <BAccountExt>(); string phoneExt = baccountExtension.UsrPhoneExtension; HttpClient client = new HttpClient( new HttpClientHandler { UseCookies = true, CookieContainer = new CookieContainer() }) { BaseAddress = new Uri("http://" + url + "/"), DefaultRequestHeaders = { Accept = { MediaTypeWithQualityHeaderValue.Parse("text/json") } } }; var response = client.PostAsync("http://" + url + "/call.php?exten=" + phoneExt + "&number=" + phoneNumber, new StringContent("", System.Text.Encoding.UTF8, "application/json")).Result; var content = response.Content.ReadAsStringAsync().Result; response.EnsureSuccessStatusCode(); CRActivityMaint graph = PXGraph.CreateInstance <CRActivityMaint>(); CRActivity activity = new CRActivity(); activity = graph.Activities.Insert(activity); activity.Type = "P"; activity.Subject = "Outbound Call"; activity.OwnerID = employee.UserID; activity.RefNoteID = Base.ContactCurrent.Current.NoteID; graph.Activities.Update(activity); PXRedirectHelper.TryRedirect(graph, PXRedirectHelper.WindowMode.NewWindow); }
public bool Delete(EPActivity current) { if (current == null) { return(false); } switch (current.ClassID.Value) { case 1: case CRActivityClass.CRCaseEvent: return(Delete(PXSelect <CREvent, Where <CREvent.taskID, Equal <Required <CREvent.taskID> > > > .Select(this.Graph, current.TaskID))); case 0: case CRActivityClass.CRCaseTask: return(Delete(PXSelect <CRTask, Where <CRTask.taskID, Equal <Required <CRTask.taskID> > > > .Select(this.Graph, current.TaskID))); case CRActivityClass.CRActivity: break; default: return(false); } if (current.IsHold == false) { throw new PXException(Messages.ActivityNotOnHoldCannotBeDeleted); } PrepareGraph(); CRActivityMaint graph = CreateSpecGraph <CRActivityMaint>(); graph.Activites.Current = (CRActivity)current; if (!graph.Activites.Cache.AllowDelete) { throw new PXException(Messages.ActivityNotOnHoldCannotBeDeleted); } graph.Activites.Delete((CRActivity)current); graph.Persist(); return(true); }
protected void Page_Load(object sender, EventArgs e) { ContactMaint graph = PXGraph.CreateInstance <ContactMaint>(); var search_phone = Request.QueryString["phone"]; var default_callID = Request.QueryString["cid"]; BusinessAccountMaint baccount_graph = PXGraph.CreateInstance <BusinessAccountMaint>(); Int32?contactId = null; Guid? contactGuid = null; var contacts = PXSelect <Contact, Where <Contact.phone1, Equal <Required <Contact.phone1> >, Or <Contact.phone2, Equal <Required <Contact.phone2> >, Or <Contact.phone3, Equal <Required <Contact.phone3> > > > > > .Select(graph, search_phone, search_phone, search_phone); // For now, just grab the first result if (contacts.Count() > 0) { var contact = ((Contact)contacts.First()); contactName = contact.DisplayName; var customers = PXSelect <BAccount, Where <BAccount.bAccountID, Equal <Required <Contact.bAccountID> > > > .Select(graph, contact.BAccountID); // There should only be one bAccount that matches if (customers.Count() > 0) { accountCD = ((BAccount)customers.First()).AcctCD; } contactId = contact.ContactID; contactGuid = contact.NoteID; } else { var contact = new Contact(); contact.LastName = default_callID; contact.Phone1 = search_phone; contact = graph.Contact.Insert(contact); //graph.Contact.Cache.Persist(PXDBOperation.Insert); graph.Save.Press(); contactName = default_callID; contactId = graph.Contact.Current.ContactID; contactGuid = graph.Contact.Current.NoteID; } // Save an audit record of the phone call var audit_graph = PXGraph.CreateInstance <PhoneAudit>(); var audit = new PhoneCallerAudit(); audit.PhoneNubmer = search_phone; audit.CallerID = contactName; audit.ContactID = contactId; audit_graph.Audit.Insert(audit); audit_graph.Save.Press(); CRActivityMaint activity_graph = PXGraph.CreateInstance <CRActivityMaint>(); CRActivity activity = new CRActivity(); activity = activity_graph.Activities.Insert(activity); activity.Type = "P"; activity.Subject = "Inbound Call"; activity.OwnerID = new Guid("B5344897-037E-4D58-B5C3-1BDFD0F47BF9"); activity.ContactID = contactId; activity.RefNoteID = contactGuid; activity_graph.Activities.Update(activity); activity_graph.Save.Press(); var json = string.Format("{{\"baccount\": \"{0}\", \"contact\": \"{1}\"}}", accountCD, contactName); Response.Clear(); Response.ContentType = "application/json; charset=utf-8"; Response.Write(json); Response.End(); }