public string sendRequestXML(string ticket, string strHCPResponse, string strCompanyFileName, string qbXMLCountry, int qbXMLMajorVers, int qbXMLMinorVers) { try { if (!QBManager.QBIsEnabled || !Ticket.Equals(ticket) || !IsTicketActive) { return(String.Empty); } QBEntity entity = QBManager.GetQBEntityForSynchronization(); if (entity == null) { return(String.Empty); } XmlDocument req = null; switch (entity.EntityType) { case EntityTypeEnum.Customer: req = String.IsNullOrEmpty(entity.QBEntityId) ? QBXMLHelper.CreateCustomerAddRq(entity) : QBXMLHelper.CreateCustomerModRq(entity); break; case EntityTypeEnum.Invoice: req = String.IsNullOrEmpty(entity.QBEntityId) ? QBXMLHelper.CreateInvoiceAddRq(entity) : QBXMLHelper.CreateInvoiceModRq(entity); break; case EntityTypeEnum.ReceivePayment: req = QBXMLHelper.CreateReceivePaymentAddRq(entity); break; case EntityTypeEnum.TxnVoid: req = QBXMLHelper.CreateTxnVoidRq(entity); break; case EntityTypeEnum.TxnDel: req = QBXMLHelper.CreateTxnDelRq(entity); break; default: return(String.Empty); } if (req == null) { return(String.Empty); } QBXMLHelper.SetRequestId(req, entity.EntityId); return(req.OuterXml); } catch (Exception ex) { LogManager.InsertLog(LogTypeEnum.CommonError, ex.Message, ex); return(String.Empty); } }
public static XmlDocument CreateReceivePaymentAddRq(QBEntity entity) { Order order = entity.NopEnity as Order; if (order == null) { return(null); } XmlDocument xml = new XmlDocument(); XmlElement elRoot = InitializeDocument(xml); XmlElement elReceivePaymentAddRq = xml.CreateElement("ReceivePaymentAddRq"); elRoot.AppendChild(elReceivePaymentAddRq); XmlElement elReceivePaymentAdd = xml.CreateElement("ReceivePaymentAdd"); elReceivePaymentAddRq.AppendChild(elReceivePaymentAdd); elReceivePaymentAdd.AppendChild(CreateCustomerRefNode(xml, order.Customer)); elReceivePaymentAdd.AppendChild(CreateDateTypeNode(xml, "TxnDate", order.CreatedOn)); elReceivePaymentAdd.AppendChild(CreateStrTypeNode(xml, "RefNumber", order.OrderId.ToString())); elReceivePaymentAdd.AppendChild(CreateAmtTypeNode(xml, "TotalAmount", order.OrderTotal)); XmlElement elAppliedToTxnAdd = xml.CreateElement("AppliedToTxnAdd"); elReceivePaymentAdd.AppendChild(elAppliedToTxnAdd); elAppliedToTxnAdd.AppendChild(CreateIDTypeNode(xml, "TxnID", QBManager.GetQBEntityByNopId(EntityTypeEnum.Invoice, order.OrderId))); elAppliedToTxnAdd.AppendChild(CreateAmtTypeNode(xml, "PaymentAmount", order.OrderTotal)); decimal discTotal = order.OrderDiscount; if (order.RedeemedRewardPoints != null) { discTotal += order.RedeemedRewardPoints.UsedAmount; } foreach (var gc in OrderManager.GetAllGiftCardUsageHistoryEntries(null, null, order.OrderId)) { discTotal += gc.UsedValue; } if (discTotal != Decimal.Zero) { elAppliedToTxnAdd.AppendChild(CreateAmtTypeNode(xml, "DiscountAmount", discTotal)); elAppliedToTxnAdd.AppendChild(CreateRefNode(xml, "DiscountAccountRef", QBManager.QBDiscountAccountRef)); } return(xml); }
public static XmlDocument CreateTxnDelRq(QBEntity entity) { Order order = entity.NopEnity as Order; if (order == null) { return(null); } XmlDocument xml = new XmlDocument(); XmlElement elRoot = InitializeDocument(xml); XmlElement elTxnVoidRq = xml.CreateElement("TxnDelRq"); elRoot.AppendChild(elTxnVoidRq); elTxnVoidRq.AppendChild(CreateStrTypeNode(xml, "TxnDelType", "Invoice")); elTxnVoidRq.AppendChild(CreateIDTypeNode(xml, "TxnID", QBManager.GetQBEntityByNopId(EntityTypeEnum.Invoice, order.OrderId))); return(xml); }
public int receiveResponseXML(string ticket, string response, string hresult, string message) { try { if (!QBManager.QBIsEnabled || !Ticket.Equals(ticket) || !IsTicketActive) { return(-1); } if (!String.IsNullOrEmpty(hresult)) { LogManager.InsertLog(LogTypeEnum.CommonError, message, hresult); return(-1); } XmlDocument xml = new XmlDocument(); xml.LoadXml(response); int requestId = QBXMLHelper.GetRequestId(xml); QBEntity entity = QBManager.GetQBEntityById(requestId); if (entity == null) { return(-1); } int statusCode = QBXMLHelper.GetStatusCode(xml); switch (statusCode) { case 0: case 530: case 531: case 550: case 560: case 570: string qbId = entity.QBEntityId; string seqNum = entity.SeqNum; switch (QBXMLHelper.GetResponseType(xml)) { case "TxnVoidRs": case "TxnDelRs": qbId = QBXMLHelper.GetTxnID(xml); break; case "ReceivePaymentAddRs": case "InvoiceAddRs": qbId = QBXMLHelper.GetTxnID(xml); seqNum = QBXMLHelper.GetSeqNum(xml); break; case "CustomerAddRs": qbId = QBXMLHelper.GetListID(xml); seqNum = QBXMLHelper.GetSeqNum(xml); break; case "CustomerModRs": case "InvoiceModRs": seqNum = QBXMLHelper.GetSeqNum(xml); break; } QBManager.UpdateQBEntity(entity.EntityId, qbId, entity.EntityType, entity.NopEntityId, SynStateEnum.Success, seqNum); break; case 3175: LogManager.InsertLog(LogTypeEnum.CommonError, QBXMLHelper.GetStatusMessage(xml), statusCode.ToString()); break; default: LogManager.InsertLog(LogTypeEnum.CommonError, QBXMLHelper.GetStatusMessage(xml), statusCode.ToString()); QBManager.UpdateQBEntity(entity.EntityId, entity.QBEntityId, entity.EntityType, entity.NopEntityId, SynStateEnum.Failed, entity.SeqNum); break; } return(0); } catch (Exception ex) { LogManager.InsertLog(LogTypeEnum.CommonError, ex.Message, ex); return(-1); } }