/// <summary> /// Gets the details of an outgoing payment. /// </summary> /// <param name="outgoingPaymentEntry">The entry of the outgoing payment to be returned.</param> /// <returns>A model that represents the outgoing payment info.</returns> public OutgoingPaymentModel GetById(int outgoingPaymentEntry) { // Prepare the object var paymentObj = (Payments)_company.GetBusinessObject(BoObjectTypes.oVendorPayments); // Find the record by its ID OutgoingPaymentModel payment = null; if (paymentObj.GetByKey(outgoingPaymentEntry)) { payment = new OutgoingPaymentModel(); payment.Entry = paymentObj.DocEntry; payment.BusinessPartner = paymentObj.CardCode; payment.DocDate = paymentObj.DocDate; payment.TransferAccount = paymentObj.TransferAccount; payment.TransferDate = paymentObj.TransferDate; payment.TransferSum = paymentObj.TransferSum; // TODO: Add code to retrieve account payments. // TODO: Add code to retrieve invoices corresponds to the payment. } Marshal.ReleaseComObject(paymentObj); return(payment); }
public IHttpActionResult Create([FromBody] OutgoingPaymentModel payment) { if (payment == null) { return(BadRequest()); } try { _payments.Create(payment); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
/// <summary> /// Creates an outgoing payment to the database. /// </summary> /// <param name="outgoingPayment">A model that contains the outgoing payment info /// to be created.</param> public void Create(OutgoingPaymentModel outgoingPayment) { // Prepare the object var paymentObj = (Payments)_company.GetBusinessObject(BoObjectTypes.oVendorPayments); // Set header values paymentObj.CardCode = outgoingPayment.BusinessPartner; paymentObj.DocObjectCode = BoPaymentsObjectType.bopot_OutgoingPayments; paymentObj.DocType = BoRcptTypes.rAccount; paymentObj.DocTypte = BoRcptTypes.rAccount; paymentObj.DocDate = DateTime.Now; paymentObj.TransferAccount = outgoingPayment.TransferAccount; paymentObj.TransferDate = DateTime.Now; paymentObj.TransferSum = outgoingPayment.TransferSum; // Add account payments foreach (var accountPayment in outgoingPayment.AccountPayments) { paymentObj.AccountPayments.AccountCode = accountPayment.AccountCode; paymentObj.AccountPayments.SumPaid = accountPayment.SumPaid; paymentObj.AccountPayments.Add(); } // Add invoices foreach (var invoice in outgoingPayment.Invoices) { paymentObj.Invoices.DocEntry = invoice.Entry; paymentObj.Invoices.InvoiceType = _utility.ConvertOutgoingPaymentInvoiceType(invoice.Type); paymentObj.Invoices.DocLine = outgoingPayment.Invoices.IndexOf(invoice); paymentObj.Invoices.Add(); } // Add it to database var success = paymentObj.Add().Equals(0); if (!success) { // Error handling int code; string msg; _company.GetLastError(out code, out msg); throw new Exception($"Something went wrong\n{code} {msg}"); } Marshal.ReleaseComObject(paymentObj); }
/// <summary> /// Creates an outgoing payment to the database. /// </summary> /// <param name="outgoingPayment">A model that contains the outgoing payment info /// to be created.</param> public void Create(OutgoingPaymentModel outgoingPayment) { }