private static void UpdateTransactionDataFromSalesRet(PostTransaction pt, QBResult result) { try { using (var ctx = new RMSModel()) { if (string.IsNullOrEmpty(result.SalesReceiptNumber)) { pt.TransactionData.Status = string.IsNullOrEmpty(result.Comments) ? "QB Posting Error" : result.Comments.Substring(0, result.Comments.Length > 49 ? 49 : result.Comments.Length); } else { pt.TransactionData.ReferenceNumber = "QB#" + result.SalesReceiptNumber; pt.TransactionData.Status = "Posted"; } ctx.TransactionBase.AddOrUpdate(pt.TransactionData); ctx.SaveChanges(); } } catch (Exception ex) { Logger.Log(LoggingLevel.Error, ex.Message + ex.StackTrace); Singleton.Status = "error found for #" + pt.TransactionData.TransactionNumber; throw ex; } }
private static void UpdateTransactionDataFromSalesRet(PostTransaction pt, QBResult result) { try { using (var ctx = new RMSModel()) { if (result == null || string.IsNullOrEmpty(result?.SalesReceiptNumber)) { pt.TransactionData.Status = string.IsNullOrEmpty(result?.Comments) ? "QB Posting Error" : result.Comments.Substring(0, result.Comments.Length > 49 ? 49 : result.Comments.Length); } else { pt.TransactionData.ReferenceNumber = "QB#" + result.SalesReceiptNumber; pt.TransactionData.Status = "Posted"; dynamic trn = pt.TransactionData; if (trn.Patient != null && trn.Patient.QBCustomer != null) { var qbSale = new QBSale() { QBCustomerId = trn.Patient.QBCustomer.Id, SalesRecieptNumber = result.SalesReceiptNumber, }; trn.Patient.QBCustomer.QBSales.Add(qbSale); ctx.QBSales.AddOrUpdate(qbSale); var availableRewards = (ObservableCollection <PatientAvailableReward>)trn.Patient.AvailableRewards; var reward = availableRewards.FirstOrDefault(x => result.Comments.Contains(x.Name)); if (reward != null) { var patientSale = new PatientRewardSale() { Id = reward.PatientRewardId.GetValueOrDefault(), TrackingNumber = result.TrackingNumber, SalesDate = DateTime.Now }; ctx.PatientRewardSales.AddOrUpdate(patientSale); } } } ctx.TransactionBase.AddOrUpdate(pt.TransactionData); ctx.SaveChanges(); } } catch (Exception ex) { Logger.Log(LoggingLevel.Error, ex.Message + ex.StackTrace); Singleton.Status = "error found for #" + pt.TransactionData.TransactionNumber; throw ex; } }
private static QBResult GetQBResult(string response) { try { if (string.IsNullOrEmpty(response)) { return(null); } XmlDocument outputXMLDoc = new XmlDocument(); outputXMLDoc.LoadXml(response); XmlNodeList qbXMLMsgsRsNodeList = outputXMLDoc.GetElementsByTagName("SalesReceiptAddRs"); XmlAttributeCollection rsAttributes = qbXMLMsgsRsNodeList.Item(0).Attributes; GetXmlErrors(rsAttributes); XmlNodeList vendAddRsNodeList = qbXMLMsgsRsNodeList.Item(0).ChildNodes; XmlNodeList vendRetNodeList = vendAddRsNodeList.Item(0).ChildNodes; var res = new QBResult(); foreach (XmlNode itm in vendRetNodeList) { if (itm.Name.Equals("TrackingNumber")) { res.TrackingNumber = itm.InnerText; continue; } if (itm.Name.Equals("SalesReceiptNumber")) { res.SalesReceiptNumber = itm.InnerText; continue; } if (itm.Name.Equals("Comments")) { res.Comments = itm.InnerText; continue; } if (res.TrackingNumber != null && res.Comments != null) { break; } } return(res); } catch (Exception ex) { Logger.Log(LoggingLevel.Error, ex.Message + ":---:" + response); throw new Exception(ex.Message); } }