public IEnumerable masterView() { MasterTable mt = new MasterTable(); if (PXView.Filters != null && PXView.Filters.Length > 0) { PhoneCallerAudit pca = new PhoneCallerAudit(); for (int i = 0; i < PXView.Filters.Length; i++) { var fr = PXView.Filters[i]; if (fr.DataField == "PhoneNbr") { pca.PhoneNubmer = fr.Value.ToString(); mt.PhoneNbr = pca.PhoneNubmer; } if (fr.DataField == "CallerID") { pca.CallerID = fr.Value.ToString(); mt.CallerID = pca.CallerID; } } PXResultset <BAccount> resultset = PXSelectJoin <BAccount, InnerJoin <Contact, On <Contact.bAccountID, Equal <BAccount.bAccountID> > >, Where <Contact.phone1, Equal <Required <Contact.phone1> > > > .Select(this, pca.PhoneNubmer); if (resultset.Count > 0) { PXResult <BAccount, Contact> res = (PXResult <BAccount, Contact>)resultset[0]; Contact contact = res; BAccount bacct = res; pca.ContactID = contact.ContactID; if (bacct != null) { mt.AcctName = bacct.AcctName; } } if (savingRequired) { Audit.Insert(pca); //Caches[typeof(PhoneCallerAudit)].Persist(PXDBOperation.Insert); Save.Press(); savingRequired = false; } } List <MasterTable> result = new List <MasterTable>(); result.Add(mt); return(result); }
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(); }