コード例 #1
0
 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;
     }
 }
コード例 #2
0
ファイル: QBClass.cs プロジェクト: Alphaquest2005/HV
        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;
            }
        }
コード例 #3
0
ファイル: QBPOS.cs プロジェクト: Alphaquest2005/HV
        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);
            }
        }