public override void WriteXml(ref IaXmlWriter xml) { xml.WriteStartElement("function"); xml.WriteAttribute("controlid", ControlId, true); xml.WriteStartElement("create"); xml.WriteStartElement("arpymt"); if (!string.IsNullOrWhiteSpace(UndepositedFundsGlAccountNo)) { xml.WriteElement("undepositedaccountno", BankAccountId); // undepfundsacct } else { xml.WriteElement("financialentity", BankAccountId); // bankaccountid } xml.WriteElement("paymentmethod", PaymentMethod, true); xml.WriteElement("customerid", CustomerId, true); xml.WriteElement("docnumber", ReferenceNumber); // "refid" xml.WriteElement("description", Description); //if (ExchangeRateDate.HasValue) //{ // xml.WriteStartElement("exchratedate"); // xml.WriteDateSplitElements2(ExchangeRateDate.Value); // xml.WriteEndElement(); //exchratedate //} if (!string.IsNullOrWhiteSpace(ExchangeRateType)) { xml.WriteElement("exch_rate_type_id", ExchangeRateType); // "exchratetype" } else if (ExchangeRateValue.HasValue) { xml.WriteElement("exchange_rate", ExchangeRateValue); // "exchrate" } else if (!string.IsNullOrWhiteSpace(BaseCurrency) || !string.IsNullOrWhiteSpace(TransactionCurrency)) { xml.WriteElement("exchratetype", ExchangeRateType, true); } xml.WriteStartElement("receiptdate"); // "datereceived" xml.WriteDateMMddyyyy(ReceivedDate.Value); // Required element xml.WriteEndElement(); //receiptdate if (PaymentDate.HasValue) { xml.WriteStartElement("paymentdate"); xml.WriteDateMMddyyyy(PaymentDate.Value); xml.WriteEndElement(); //paymentdate } xml.WriteElement("amounttopay", BasePaymentAmount, true); // "translatedamount" xml.WriteElement("trx_amounttopay", TransactionPaymentAmount, true); // paymentamount xml.WriteElement("prbatch", SummaryRecordNo); // batchkey if (WhenPaidDate.HasValue) { xml.WriteStartElement("whenpaid"); xml.WriteDateMMddyyyy(WhenPaidDate.Value); xml.WriteEndElement(); //paymentdate } xml.WriteElement("currency", TransactionCurrency); xml.WriteElement("basecurr", BaseCurrency); xml.WriteElement("undepositedaccountno", UndepositedFundsGlAccountNo); xml.WriteElement("overpaymentamount", OverpaymentAmount, true); xml.WriteElement("overpaymentlocationid", OverpaymentLocationId); // "overpaylocid" xml.WriteElement("overpaymentdepartmentid", OverpaymentDepartmentId); // "overpaydeptid" xml.WriteElement("billtopayname", BillToPayName); //xml.WriteElement("cctype", CreditCardType); //xml.WriteElement("authcode", AuthorizationCode); if (ApplyToTransactions.Count > 0) { xml.WriteStartElement("arpymtdetails"); // "arpaymentitem" foreach (ArPaymentItem2 applyToTransaction in ApplyToTransactions) { applyToTransaction.WriteXml(ref xml); } xml.WriteEndElement(); // arpymtdetails } // TODO online payment methods xml.WriteEndElement(); //create xml.WriteEndElement(); //arpymt xml.WriteEndElement(); //function }