//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.312
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by Microsoft.VSDesigner, Version 2.0.50727.312.
// 
#pragma warning disable 1591

namespace KashFlowPayPal.uk.co.kashflow.secure {
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name="KashFlowAPISoap", Namespace="KashFlow")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(InvoiceLine))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NominalItem))]
    public partial class KashFlowAPI : System.Web.Services.Protocols.SoapHttpClientProtocol {
        
        private System.Threading.SendOrPostCallback GetInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback PrintInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback EmailInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetInvoicesByDateRangeOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetInvoicesForCustomerOperationCompleted;
        
        private System.Threading.SendOrPostCallback InsertInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateInvoiceOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetInvoicePaymentOperationCompleted;
        
        private System.Threading.SendOrPostCallback InsertInvoicePaymentOperationCompleted;
        
        private System.Threading.SendOrPostCallback DeleteInvoicePaymentOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetInvPayMethodsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetPaypalLinkOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomerOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomerByIDOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomerByEmailOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetCustomersOperationCompleted;
        
        private System.Threading.SendOrPostCallback InsertCustomerOperationCompleted;
        
        private System.Threading.SendOrPostCallback UpdateCustomerOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetBankAccountsOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetBankTxTypesOperationCompleted;
        
        private System.Threading.SendOrPostCallback InsertBankTransactionOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProfitAndLossOperationCompleted;
        
        private System.Threading.SendOrPostCallback isUserVATRegisteredOperationCompleted;
        
        private System.Threading.SendOrPostCallback GetProductsOperationCompleted;
        
        private bool useDefaultCredentialsSetExplicitly;
        
        /// <remarks/>
        public KashFlowAPI() {
            this.Url = global::KashFlowPayPal.Properties.Settings.Default.WindowsApplication1_uk_co_kashflow_secure_KashFlowAPI;
            if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
                this.UseDefaultCredentials = true;
                this.useDefaultCredentialsSetExplicitly = false;
            }
            else {
                this.useDefaultCredentialsSetExplicitly = true;
            }
        }
        
        public new string Url {
            get {
                return base.Url;
            }
            set {
                if ((((this.IsLocalFileSystemWebService(base.Url) == true) 
                            && (this.useDefaultCredentialsSetExplicitly == false)) 
                            && (this.IsLocalFileSystemWebService(value) == false))) {
                    base.UseDefaultCredentials = false;
                }
                base.Url = value;
            }
        }
        
        public new bool UseDefaultCredentials {
            get {
                return base.UseDefaultCredentials;
            }
            set {
                base.UseDefaultCredentials = value;
                this.useDefaultCredentialsSetExplicitly = true;
            }
        }
        
        /// <remarks/>
        public event GetInvoiceCompletedEventHandler GetInvoiceCompleted;
        
        /// <remarks/>
        public event PrintInvoiceCompletedEventHandler PrintInvoiceCompleted;
        
        /// <remarks/>
        public event EmailInvoiceCompletedEventHandler EmailInvoiceCompleted;
        
        /// <remarks/>
        public event GetInvoicesByDateRangeCompletedEventHandler GetInvoicesByDateRangeCompleted;
        
        /// <remarks/>
        public event GetInvoicesForCustomerCompletedEventHandler GetInvoicesForCustomerCompleted;
        
        /// <remarks/>
        public event InsertInvoiceCompletedEventHandler InsertInvoiceCompleted;
        
        /// <remarks/>
        public event UpdateInvoiceCompletedEventHandler UpdateInvoiceCompleted;
        
        /// <remarks/>
        public event GetInvoicePaymentCompletedEventHandler GetInvoicePaymentCompleted;
        
        /// <remarks/>
        public event InsertInvoicePaymentCompletedEventHandler InsertInvoicePaymentCompleted;
        
        /// <remarks/>
        public event DeleteInvoicePaymentCompletedEventHandler DeleteInvoicePaymentCompleted;
        
        /// <remarks/>
        public event GetInvPayMethodsCompletedEventHandler GetInvPayMethodsCompleted;
        
        /// <remarks/>
        public event GetPaypalLinkCompletedEventHandler GetPaypalLinkCompleted;
        
        /// <remarks/>
        public event GetCustomerCompletedEventHandler GetCustomerCompleted;
        
        /// <remarks/>
        public event GetCustomerByIDCompletedEventHandler GetCustomerByIDCompleted;
        
        /// <remarks/>
        public event GetCustomerByEmailCompletedEventHandler GetCustomerByEmailCompleted;
        
        /// <remarks/>
        public event GetCustomersCompletedEventHandler GetCustomersCompleted;
        
        /// <remarks/>
        public event InsertCustomerCompletedEventHandler InsertCustomerCompleted;
        
        /// <remarks/>
        public event UpdateCustomerCompletedEventHandler UpdateCustomerCompleted;
        
        /// <remarks/>
        public event GetBankAccountsCompletedEventHandler GetBankAccountsCompleted;
        
        /// <remarks/>
        public event GetBankTxTypesCompletedEventHandler GetBankTxTypesCompleted;
        
        /// <remarks/>
        public event InsertBankTransactionCompletedEventHandler InsertBankTransactionCompleted;
        
        /// <remarks/>
        public event GetProfitAndLossCompletedEventHandler GetProfitAndLossCompleted;
        
        /// <remarks/>
        public event isUserVATRegisteredCompletedEventHandler isUserVATRegisteredCompleted;
        
        /// <remarks/>
        public event GetProductsCompletedEventHandler GetProductsCompleted;
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetInvoice", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Invoice GetInvoice(string UserName, string Password, int InvoiceNumber, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetInvoice", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Invoice)(results[0]));
        }
        
        /// <remarks/>
        public void GetInvoiceAsync(string UserName, string Password, int InvoiceNumber) {
            this.GetInvoiceAsync(UserName, Password, InvoiceNumber, null);
        }
        
        /// <remarks/>
        public void GetInvoiceAsync(string UserName, string Password, int InvoiceNumber, object userState) {
            if ((this.GetInvoiceOperationCompleted == null)) {
                this.GetInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetInvoiceOperationCompleted);
            }
            this.InvokeAsync("GetInvoice", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber}, this.GetInvoiceOperationCompleted, userState);
        }
        
        private void OnGetInvoiceOperationCompleted(object arg) {
            if ((this.GetInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetInvoiceCompleted(this, new GetInvoiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/PrintInvoice", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string PrintInvoice(string UserName, string Password, int InvoiceNumber, string InvoiceNumberList, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("PrintInvoice", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber,
                        InvoiceNumberList});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void PrintInvoiceAsync(string UserName, string Password, int InvoiceNumber, string InvoiceNumberList) {
            this.PrintInvoiceAsync(UserName, Password, InvoiceNumber, InvoiceNumberList, null);
        }
        
        /// <remarks/>
        public void PrintInvoiceAsync(string UserName, string Password, int InvoiceNumber, string InvoiceNumberList, object userState) {
            if ((this.PrintInvoiceOperationCompleted == null)) {
                this.PrintInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnPrintInvoiceOperationCompleted);
            }
            this.InvokeAsync("PrintInvoice", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber,
                        InvoiceNumberList}, this.PrintInvoiceOperationCompleted, userState);
        }
        
        private void OnPrintInvoiceOperationCompleted(object arg) {
            if ((this.PrintInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.PrintInvoiceCompleted(this, new PrintInvoiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/EmailInvoice", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("Status")]
        public string EmailInvoice(string UserName, string Password, int InvoiceNumber, string FromEmail, string FromName, string SubjectLine, string Body, string RecipientEmail, out string StatusDetail) {
            object[] results = this.Invoke("EmailInvoice", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber,
                        FromEmail,
                        FromName,
                        SubjectLine,
                        Body,
                        RecipientEmail});
            StatusDetail = ((string)(results[1]));
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void EmailInvoiceAsync(string UserName, string Password, int InvoiceNumber, string FromEmail, string FromName, string SubjectLine, string Body, string RecipientEmail) {
            this.EmailInvoiceAsync(UserName, Password, InvoiceNumber, FromEmail, FromName, SubjectLine, Body, RecipientEmail, null);
        }
        
        /// <remarks/>
        public void EmailInvoiceAsync(string UserName, string Password, int InvoiceNumber, string FromEmail, string FromName, string SubjectLine, string Body, string RecipientEmail, object userState) {
            if ((this.EmailInvoiceOperationCompleted == null)) {
                this.EmailInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEmailInvoiceOperationCompleted);
            }
            this.InvokeAsync("EmailInvoice", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber,
                        FromEmail,
                        FromName,
                        SubjectLine,
                        Body,
                        RecipientEmail}, this.EmailInvoiceOperationCompleted, userState);
        }
        
        private void OnEmailInvoiceOperationCompleted(object arg) {
            if ((this.EmailInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.EmailInvoiceCompleted(this, new EmailInvoiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetInvoicesByDateRange", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Invoice[] GetInvoicesByDateRange(string UserName, string Password, System.DateTime StartDate, System.DateTime EndDate, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetInvoicesByDateRange", new object[] {
                        UserName,
                        Password,
                        StartDate,
                        EndDate});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Invoice[])(results[0]));
        }
        
        /// <remarks/>
        public void GetInvoicesByDateRangeAsync(string UserName, string Password, System.DateTime StartDate, System.DateTime EndDate) {
            this.GetInvoicesByDateRangeAsync(UserName, Password, StartDate, EndDate, null);
        }
        
        /// <remarks/>
        public void GetInvoicesByDateRangeAsync(string UserName, string Password, System.DateTime StartDate, System.DateTime EndDate, object userState) {
            if ((this.GetInvoicesByDateRangeOperationCompleted == null)) {
                this.GetInvoicesByDateRangeOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetInvoicesByDateRangeOperationCompleted);
            }
            this.InvokeAsync("GetInvoicesByDateRange", new object[] {
                        UserName,
                        Password,
                        StartDate,
                        EndDate}, this.GetInvoicesByDateRangeOperationCompleted, userState);
        }
        
        private void OnGetInvoicesByDateRangeOperationCompleted(object arg) {
            if ((this.GetInvoicesByDateRangeCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetInvoicesByDateRangeCompleted(this, new GetInvoicesByDateRangeCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetInvoicesForCustomer", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Invoice[] GetInvoicesForCustomer(string UserName, string Password, int CustID, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetInvoicesForCustomer", new object[] {
                        UserName,
                        Password,
                        CustID});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Invoice[])(results[0]));
        }
        
        /// <remarks/>
        public void GetInvoicesForCustomerAsync(string UserName, string Password, int CustID) {
            this.GetInvoicesForCustomerAsync(UserName, Password, CustID, null);
        }
        
        /// <remarks/>
        public void GetInvoicesForCustomerAsync(string UserName, string Password, int CustID, object userState) {
            if ((this.GetInvoicesForCustomerOperationCompleted == null)) {
                this.GetInvoicesForCustomerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetInvoicesForCustomerOperationCompleted);
            }
            this.InvokeAsync("GetInvoicesForCustomer", new object[] {
                        UserName,
                        Password,
                        CustID}, this.GetInvoicesForCustomerOperationCompleted, userState);
        }
        
        private void OnGetInvoicesForCustomerOperationCompleted(object arg) {
            if ((this.GetInvoicesForCustomerCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetInvoicesForCustomerCompleted(this, new GetInvoicesForCustomerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/InsertInvoice", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int InsertInvoice(string UserName, string Password, Invoice Inv, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("InsertInvoice", new object[] {
                        UserName,
                        Password,
                        Inv});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void InsertInvoiceAsync(string UserName, string Password, Invoice Inv) {
            this.InsertInvoiceAsync(UserName, Password, Inv, null);
        }
        
        /// <remarks/>
        public void InsertInvoiceAsync(string UserName, string Password, Invoice Inv, object userState) {
            if ((this.InsertInvoiceOperationCompleted == null)) {
                this.InsertInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnInsertInvoiceOperationCompleted);
            }
            this.InvokeAsync("InsertInvoice", new object[] {
                        UserName,
                        Password,
                        Inv}, this.InsertInvoiceOperationCompleted, userState);
        }
        
        private void OnInsertInvoiceOperationCompleted(object arg) {
            if ((this.InsertInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.InsertInvoiceCompleted(this, new InsertInvoiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/UpdateInvoice", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("Status")]
        public string UpdateInvoice(string UserName, string Password, Invoice Inv, out string StatusDetail) {
            object[] results = this.Invoke("UpdateInvoice", new object[] {
                        UserName,
                        Password,
                        Inv});
            StatusDetail = ((string)(results[1]));
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateInvoiceAsync(string UserName, string Password, Invoice Inv) {
            this.UpdateInvoiceAsync(UserName, Password, Inv, null);
        }
        
        /// <remarks/>
        public void UpdateInvoiceAsync(string UserName, string Password, Invoice Inv, object userState) {
            if ((this.UpdateInvoiceOperationCompleted == null)) {
                this.UpdateInvoiceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateInvoiceOperationCompleted);
            }
            this.InvokeAsync("UpdateInvoice", new object[] {
                        UserName,
                        Password,
                        Inv}, this.UpdateInvoiceOperationCompleted, userState);
        }
        
        private void OnUpdateInvoiceOperationCompleted(object arg) {
            if ((this.UpdateInvoiceCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateInvoiceCompleted(this, new UpdateInvoiceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetInvoicePayment", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Payment[] GetInvoicePayment(string UserName, string Password, int InvoiceNumber, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetInvoicePayment", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Payment[])(results[0]));
        }
        
        /// <remarks/>
        public void GetInvoicePaymentAsync(string UserName, string Password, int InvoiceNumber) {
            this.GetInvoicePaymentAsync(UserName, Password, InvoiceNumber, null);
        }
        
        /// <remarks/>
        public void GetInvoicePaymentAsync(string UserName, string Password, int InvoiceNumber, object userState) {
            if ((this.GetInvoicePaymentOperationCompleted == null)) {
                this.GetInvoicePaymentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetInvoicePaymentOperationCompleted);
            }
            this.InvokeAsync("GetInvoicePayment", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber}, this.GetInvoicePaymentOperationCompleted, userState);
        }
        
        private void OnGetInvoicePaymentOperationCompleted(object arg) {
            if ((this.GetInvoicePaymentCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetInvoicePaymentCompleted(this, new GetInvoicePaymentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/InsertInvoicePayment", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int InsertInvoicePayment(string UserName, string Password, Payment InvoicePayment, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("InsertInvoicePayment", new object[] {
                        UserName,
                        Password,
                        InvoicePayment});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void InsertInvoicePaymentAsync(string UserName, string Password, Payment InvoicePayment) {
            this.InsertInvoicePaymentAsync(UserName, Password, InvoicePayment, null);
        }
        
        /// <remarks/>
        public void InsertInvoicePaymentAsync(string UserName, string Password, Payment InvoicePayment, object userState) {
            if ((this.InsertInvoicePaymentOperationCompleted == null)) {
                this.InsertInvoicePaymentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnInsertInvoicePaymentOperationCompleted);
            }
            this.InvokeAsync("InsertInvoicePayment", new object[] {
                        UserName,
                        Password,
                        InvoicePayment}, this.InsertInvoicePaymentOperationCompleted, userState);
        }
        
        private void OnInsertInvoicePaymentOperationCompleted(object arg) {
            if ((this.InsertInvoicePaymentCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.InsertInvoicePaymentCompleted(this, new InsertInvoicePaymentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/DeleteInvoicePayment", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("Status")]
        public string DeleteInvoicePayment(string UserName, string Password, int InvoicePaymentNumber, out string StatusDetail) {
            object[] results = this.Invoke("DeleteInvoicePayment", new object[] {
                        UserName,
                        Password,
                        InvoicePaymentNumber});
            StatusDetail = ((string)(results[1]));
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void DeleteInvoicePaymentAsync(string UserName, string Password, int InvoicePaymentNumber) {
            this.DeleteInvoicePaymentAsync(UserName, Password, InvoicePaymentNumber, null);
        }
        
        /// <remarks/>
        public void DeleteInvoicePaymentAsync(string UserName, string Password, int InvoicePaymentNumber, object userState) {
            if ((this.DeleteInvoicePaymentOperationCompleted == null)) {
                this.DeleteInvoicePaymentOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteInvoicePaymentOperationCompleted);
            }
            this.InvokeAsync("DeleteInvoicePayment", new object[] {
                        UserName,
                        Password,
                        InvoicePaymentNumber}, this.DeleteInvoicePaymentOperationCompleted, userState);
        }
        
        private void OnDeleteInvoicePaymentOperationCompleted(object arg) {
            if ((this.DeleteInvoicePaymentCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteInvoicePaymentCompleted(this, new DeleteInvoicePaymentCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetInvPayMethods", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public PaymentMethod[] GetInvPayMethods(string UserName, string Password, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetInvPayMethods", new object[] {
                        UserName,
                        Password});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((PaymentMethod[])(results[0]));
        }
        
        /// <remarks/>
        public void GetInvPayMethodsAsync(string UserName, string Password) {
            this.GetInvPayMethodsAsync(UserName, Password, null);
        }
        
        /// <remarks/>
        public void GetInvPayMethodsAsync(string UserName, string Password, object userState) {
            if ((this.GetInvPayMethodsOperationCompleted == null)) {
                this.GetInvPayMethodsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetInvPayMethodsOperationCompleted);
            }
            this.InvokeAsync("GetInvPayMethods", new object[] {
                        UserName,
                        Password}, this.GetInvPayMethodsOperationCompleted, userState);
        }
        
        private void OnGetInvPayMethodsOperationCompleted(object arg) {
            if ((this.GetInvPayMethodsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetInvPayMethodsCompleted(this, new GetInvPayMethodsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetPaypalLink", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string GetPaypalLink(string UserName, string Password, int InvoiceNumber, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetPaypalLink", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void GetPaypalLinkAsync(string UserName, string Password, int InvoiceNumber) {
            this.GetPaypalLinkAsync(UserName, Password, InvoiceNumber, null);
        }
        
        /// <remarks/>
        public void GetPaypalLinkAsync(string UserName, string Password, int InvoiceNumber, object userState) {
            if ((this.GetPaypalLinkOperationCompleted == null)) {
                this.GetPaypalLinkOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPaypalLinkOperationCompleted);
            }
            this.InvokeAsync("GetPaypalLink", new object[] {
                        UserName,
                        Password,
                        InvoiceNumber}, this.GetPaypalLinkOperationCompleted, userState);
        }
        
        private void OnGetPaypalLinkOperationCompleted(object arg) {
            if ((this.GetPaypalLinkCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetPaypalLinkCompleted(this, new GetPaypalLinkCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetCustomer", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Customer GetCustomer(string UserName, string Password, string CustomerCode, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetCustomer", new object[] {
                        UserName,
                        Password,
                        CustomerCode});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Customer)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomerAsync(string UserName, string Password, string CustomerCode) {
            this.GetCustomerAsync(UserName, Password, CustomerCode, null);
        }
        
        /// <remarks/>
        public void GetCustomerAsync(string UserName, string Password, string CustomerCode, object userState) {
            if ((this.GetCustomerOperationCompleted == null)) {
                this.GetCustomerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomerOperationCompleted);
            }
            this.InvokeAsync("GetCustomer", new object[] {
                        UserName,
                        Password,
                        CustomerCode}, this.GetCustomerOperationCompleted, userState);
        }
        
        private void OnGetCustomerOperationCompleted(object arg) {
            if ((this.GetCustomerCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomerCompleted(this, new GetCustomerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetCustomerByID", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Customer GetCustomerByID(string UserName, string Password, int CustomerID, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetCustomerByID", new object[] {
                        UserName,
                        Password,
                        CustomerID});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Customer)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomerByIDAsync(string UserName, string Password, int CustomerID) {
            this.GetCustomerByIDAsync(UserName, Password, CustomerID, null);
        }
        
        /// <remarks/>
        public void GetCustomerByIDAsync(string UserName, string Password, int CustomerID, object userState) {
            if ((this.GetCustomerByIDOperationCompleted == null)) {
                this.GetCustomerByIDOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomerByIDOperationCompleted);
            }
            this.InvokeAsync("GetCustomerByID", new object[] {
                        UserName,
                        Password,
                        CustomerID}, this.GetCustomerByIDOperationCompleted, userState);
        }
        
        private void OnGetCustomerByIDOperationCompleted(object arg) {
            if ((this.GetCustomerByIDCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomerByIDCompleted(this, new GetCustomerByIDCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetCustomerByEmail", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Customer GetCustomerByEmail(string UserName, string Password, string CustomerEmail, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetCustomerByEmail", new object[] {
                        UserName,
                        Password,
                        CustomerEmail});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Customer)(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomerByEmailAsync(string UserName, string Password, string CustomerEmail) {
            this.GetCustomerByEmailAsync(UserName, Password, CustomerEmail, null);
        }
        
        /// <remarks/>
        public void GetCustomerByEmailAsync(string UserName, string Password, string CustomerEmail, object userState) {
            if ((this.GetCustomerByEmailOperationCompleted == null)) {
                this.GetCustomerByEmailOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomerByEmailOperationCompleted);
            }
            this.InvokeAsync("GetCustomerByEmail", new object[] {
                        UserName,
                        Password,
                        CustomerEmail}, this.GetCustomerByEmailOperationCompleted, userState);
        }
        
        private void OnGetCustomerByEmailOperationCompleted(object arg) {
            if ((this.GetCustomerByEmailCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomerByEmailCompleted(this, new GetCustomerByEmailCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetCustomers", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Customer[] GetCustomers(string UserName, string Password, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetCustomers", new object[] {
                        UserName,
                        Password});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Customer[])(results[0]));
        }
        
        /// <remarks/>
        public void GetCustomersAsync(string UserName, string Password) {
            this.GetCustomersAsync(UserName, Password, null);
        }
        
        /// <remarks/>
        public void GetCustomersAsync(string UserName, string Password, object userState) {
            if ((this.GetCustomersOperationCompleted == null)) {
                this.GetCustomersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetCustomersOperationCompleted);
            }
            this.InvokeAsync("GetCustomers", new object[] {
                        UserName,
                        Password}, this.GetCustomersOperationCompleted, userState);
        }
        
        private void OnGetCustomersOperationCompleted(object arg) {
            if ((this.GetCustomersCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetCustomersCompleted(this, new GetCustomersCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/InsertCustomer", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int InsertCustomer(string UserName, string Password, Customer custr, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("InsertCustomer", new object[] {
                        UserName,
                        Password,
                        custr});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void InsertCustomerAsync(string UserName, string Password, Customer custr) {
            this.InsertCustomerAsync(UserName, Password, custr, null);
        }
        
        /// <remarks/>
        public void InsertCustomerAsync(string UserName, string Password, Customer custr, object userState) {
            if ((this.InsertCustomerOperationCompleted == null)) {
                this.InsertCustomerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnInsertCustomerOperationCompleted);
            }
            this.InvokeAsync("InsertCustomer", new object[] {
                        UserName,
                        Password,
                        custr}, this.InsertCustomerOperationCompleted, userState);
        }
        
        private void OnInsertCustomerOperationCompleted(object arg) {
            if ((this.InsertCustomerCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.InsertCustomerCompleted(this, new InsertCustomerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/UpdateCustomer", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        [return: System.Xml.Serialization.XmlElementAttribute("Status")]
        public string UpdateCustomer(string UserName, string Password, Customer custr, out string StatusDetail) {
            object[] results = this.Invoke("UpdateCustomer", new object[] {
                        UserName,
                        Password,
                        custr});
            StatusDetail = ((string)(results[1]));
            return ((string)(results[0]));
        }
        
        /// <remarks/>
        public void UpdateCustomerAsync(string UserName, string Password, Customer custr) {
            this.UpdateCustomerAsync(UserName, Password, custr, null);
        }
        
        /// <remarks/>
        public void UpdateCustomerAsync(string UserName, string Password, Customer custr, object userState) {
            if ((this.UpdateCustomerOperationCompleted == null)) {
                this.UpdateCustomerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateCustomerOperationCompleted);
            }
            this.InvokeAsync("UpdateCustomer", new object[] {
                        UserName,
                        Password,
                        custr}, this.UpdateCustomerOperationCompleted, userState);
        }
        
        private void OnUpdateCustomerOperationCompleted(object arg) {
            if ((this.UpdateCustomerCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateCustomerCompleted(this, new UpdateCustomerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetBankAccounts", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public BankAccount[] GetBankAccounts(string UserName, string Password, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetBankAccounts", new object[] {
                        UserName,
                        Password});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((BankAccount[])(results[0]));
        }
        
        /// <remarks/>
        public void GetBankAccountsAsync(string UserName, string Password) {
            this.GetBankAccountsAsync(UserName, Password, null);
        }
        
        /// <remarks/>
        public void GetBankAccountsAsync(string UserName, string Password, object userState) {
            if ((this.GetBankAccountsOperationCompleted == null)) {
                this.GetBankAccountsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBankAccountsOperationCompleted);
            }
            this.InvokeAsync("GetBankAccounts", new object[] {
                        UserName,
                        Password}, this.GetBankAccountsOperationCompleted, userState);
        }
        
        private void OnGetBankAccountsOperationCompleted(object arg) {
            if ((this.GetBankAccountsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetBankAccountsCompleted(this, new GetBankAccountsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetBankTxTypes", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public BankTXType[] GetBankTxTypes(string UserName, string Password, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetBankTxTypes", new object[] {
                        UserName,
                        Password});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((BankTXType[])(results[0]));
        }
        
        /// <remarks/>
        public void GetBankTxTypesAsync(string UserName, string Password) {
            this.GetBankTxTypesAsync(UserName, Password, null);
        }
        
        /// <remarks/>
        public void GetBankTxTypesAsync(string UserName, string Password, object userState) {
            if ((this.GetBankTxTypesOperationCompleted == null)) {
                this.GetBankTxTypesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetBankTxTypesOperationCompleted);
            }
            this.InvokeAsync("GetBankTxTypes", new object[] {
                        UserName,
                        Password}, this.GetBankTxTypesOperationCompleted, userState);
        }
        
        private void OnGetBankTxTypesOperationCompleted(object arg) {
            if ((this.GetBankTxTypesCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetBankTxTypesCompleted(this, new GetBankTxTypesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/InsertBankTransaction", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int InsertBankTransaction(string UserName, string Password, BankTransaction bp, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("InsertBankTransaction", new object[] {
                        UserName,
                        Password,
                        bp});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((int)(results[0]));
        }
        
        /// <remarks/>
        public void InsertBankTransactionAsync(string UserName, string Password, BankTransaction bp) {
            this.InsertBankTransactionAsync(UserName, Password, bp, null);
        }
        
        /// <remarks/>
        public void InsertBankTransactionAsync(string UserName, string Password, BankTransaction bp, object userState) {
            if ((this.InsertBankTransactionOperationCompleted == null)) {
                this.InsertBankTransactionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnInsertBankTransactionOperationCompleted);
            }
            this.InvokeAsync("InsertBankTransaction", new object[] {
                        UserName,
                        Password,
                        bp}, this.InsertBankTransactionOperationCompleted, userState);
        }
        
        private void OnInsertBankTransactionOperationCompleted(object arg) {
            if ((this.InsertBankTransactionCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.InsertBankTransactionCompleted(this, new InsertBankTransactionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetProfitAndLoss", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public ProfitAndLoss GetProfitAndLoss(string UserName, string Password, System.DateTime StartDate, System.DateTime EndDate, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetProfitAndLoss", new object[] {
                        UserName,
                        Password,
                        StartDate,
                        EndDate});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((ProfitAndLoss)(results[0]));
        }
        
        /// <remarks/>
        public void GetProfitAndLossAsync(string UserName, string Password, System.DateTime StartDate, System.DateTime EndDate) {
            this.GetProfitAndLossAsync(UserName, Password, StartDate, EndDate, null);
        }
        
        /// <remarks/>
        public void GetProfitAndLossAsync(string UserName, string Password, System.DateTime StartDate, System.DateTime EndDate, object userState) {
            if ((this.GetProfitAndLossOperationCompleted == null)) {
                this.GetProfitAndLossOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProfitAndLossOperationCompleted);
            }
            this.InvokeAsync("GetProfitAndLoss", new object[] {
                        UserName,
                        Password,
                        StartDate,
                        EndDate}, this.GetProfitAndLossOperationCompleted, userState);
        }
        
        private void OnGetProfitAndLossOperationCompleted(object arg) {
            if ((this.GetProfitAndLossCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProfitAndLossCompleted(this, new GetProfitAndLossCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/isUserVATRegistered", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool isUserVATRegistered(string UserName, string Password, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("isUserVATRegistered", new object[] {
                        UserName,
                        Password});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((bool)(results[0]));
        }
        
        /// <remarks/>
        public void isUserVATRegisteredAsync(string UserName, string Password) {
            this.isUserVATRegisteredAsync(UserName, Password, null);
        }
        
        /// <remarks/>
        public void isUserVATRegisteredAsync(string UserName, string Password, object userState) {
            if ((this.isUserVATRegisteredOperationCompleted == null)) {
                this.isUserVATRegisteredOperationCompleted = new System.Threading.SendOrPostCallback(this.OnisUserVATRegisteredOperationCompleted);
            }
            this.InvokeAsync("isUserVATRegistered", new object[] {
                        UserName,
                        Password}, this.isUserVATRegisteredOperationCompleted, userState);
        }
        
        private void OnisUserVATRegisteredOperationCompleted(object arg) {
            if ((this.isUserVATRegisteredCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.isUserVATRegisteredCompleted(this, new isUserVATRegisteredCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("KashFlow/GetProducts", RequestNamespace="KashFlow", ResponseNamespace="KashFlow", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public Product[] GetProducts(string UserName, string Password, out string Status, out string StatusDetail) {
            object[] results = this.Invoke("GetProducts", new object[] {
                        UserName,
                        Password});
            Status = ((string)(results[1]));
            StatusDetail = ((string)(results[2]));
            return ((Product[])(results[0]));
        }
        
        /// <remarks/>
        public void GetProductsAsync(string UserName, string Password) {
            this.GetProductsAsync(UserName, Password, null);
        }
        
        /// <remarks/>
        public void GetProductsAsync(string UserName, string Password, object userState) {
            if ((this.GetProductsOperationCompleted == null)) {
                this.GetProductsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProductsOperationCompleted);
            }
            this.InvokeAsync("GetProducts", new object[] {
                        UserName,
                        Password}, this.GetProductsOperationCompleted, userState);
        }
        
        private void OnGetProductsOperationCompleted(object arg) {
            if ((this.GetProductsCompleted != null)) {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetProductsCompleted(this, new GetProductsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }
        
        /// <remarks/>
        public new void CancelAsync(object userState) {
            base.CancelAsync(userState);
        }
        
        private bool IsLocalFileSystemWebService(string url) {
            if (((url == null) 
                        || (url == string.Empty))) {
                return false;
            }
            System.Uri wsUri = new System.Uri(url);
            if (((wsUri.Port >= 1024) 
                        && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) {
                return true;
            }
            return false;
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class Invoice {
        
        private int invoiceDBIDField;
        
        private int invoiceNumberField;
        
        private System.DateTime invoiceDateField;
        
        private System.DateTime dueDateField;
        
        private string customerField;
        
        private int customerIDField;
        
        private int paidField;
        
        private string customerReferenceField;
        
        private string readableStringField;
        
        private object[] linesField;
        
        private decimal netAmountField;
        
        private decimal vATAmountField;
        
        private decimal amountPaidField;
        
        /// <remarks/>
        public int InvoiceDBID {
            get {
                return this.invoiceDBIDField;
            }
            set {
                this.invoiceDBIDField = value;
            }
        }
        
        /// <remarks/>
        public int InvoiceNumber {
            get {
                return this.invoiceNumberField;
            }
            set {
                this.invoiceNumberField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime InvoiceDate {
            get {
                return this.invoiceDateField;
            }
            set {
                this.invoiceDateField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime DueDate {
            get {
                return this.dueDateField;
            }
            set {
                this.dueDateField = value;
            }
        }
        
        /// <remarks/>
        public string Customer {
            get {
                return this.customerField;
            }
            set {
                this.customerField = value;
            }
        }
        
        /// <remarks/>
        public int CustomerID {
            get {
                return this.customerIDField;
            }
            set {
                this.customerIDField = value;
            }
        }
        
        /// <remarks/>
        public int Paid {
            get {
                return this.paidField;
            }
            set {
                this.paidField = value;
            }
        }
        
        /// <remarks/>
        public string CustomerReference {
            get {
                return this.customerReferenceField;
            }
            set {
                this.customerReferenceField = value;
            }
        }
        
        /// <remarks/>
        public string ReadableString {
            get {
                return this.readableStringField;
            }
            set {
                this.readableStringField = value;
            }
        }
        
        /// <remarks/>
        public object[] Lines {
            get {
                return this.linesField;
            }
            set {
                this.linesField = value;
            }
        }
        
        /// <remarks/>
        public decimal NetAmount {
            get {
                return this.netAmountField;
            }
            set {
                this.netAmountField = value;
            }
        }
        
        /// <remarks/>
        public decimal VATAmount {
            get {
                return this.vATAmountField;
            }
            set {
                this.vATAmountField = value;
            }
        }
        
        /// <remarks/>
        public decimal AmountPaid {
            get {
                return this.amountPaidField;
            }
            set {
                this.amountPaidField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class Product {
        
        private int productIDField;
        
        private string productNameField;
        
        private int productCodeField;
        
        private string productDescriptionField;
        
        private int manageStockLevelsField;
        
        private int qtyInStockField;
        
        private decimal productPriceField;
        
        /// <remarks/>
        public int ProductID {
            get {
                return this.productIDField;
            }
            set {
                this.productIDField = value;
            }
        }
        
        /// <remarks/>
        public string ProductName {
            get {
                return this.productNameField;
            }
            set {
                this.productNameField = value;
            }
        }
        
        /// <remarks/>
        public int ProductCode {
            get {
                return this.productCodeField;
            }
            set {
                this.productCodeField = value;
            }
        }
        
        /// <remarks/>
        public string ProductDescription {
            get {
                return this.productDescriptionField;
            }
            set {
                this.productDescriptionField = value;
            }
        }
        
        /// <remarks/>
        public int ManageStockLevels {
            get {
                return this.manageStockLevelsField;
            }
            set {
                this.manageStockLevelsField = value;
            }
        }
        
        /// <remarks/>
        public int QtyInStock {
            get {
                return this.qtyInStockField;
            }
            set {
                this.qtyInStockField = value;
            }
        }
        
        /// <remarks/>
        public decimal ProductPrice {
            get {
                return this.productPriceField;
            }
            set {
                this.productPriceField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class ProfitAndLoss {
        
        private System.DateTime startDateField;
        
        private System.DateTime endDateField;
        
        private object[] turnoverField;
        
        private decimal turnoverTotalField;
        
        private object[] costOfSalesField;
        
        private decimal costOfSalesTotalField;
        
        private decimal grossProfitField;
        
        private object[] expensesField;
        
        private decimal expensesTotalField;
        
        private decimal netProfitField;
        
        /// <remarks/>
        public System.DateTime StartDate {
            get {
                return this.startDateField;
            }
            set {
                this.startDateField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime EndDate {
            get {
                return this.endDateField;
            }
            set {
                this.endDateField = value;
            }
        }
        
        /// <remarks/>
        public object[] Turnover {
            get {
                return this.turnoverField;
            }
            set {
                this.turnoverField = value;
            }
        }
        
        /// <remarks/>
        public decimal TurnoverTotal {
            get {
                return this.turnoverTotalField;
            }
            set {
                this.turnoverTotalField = value;
            }
        }
        
        /// <remarks/>
        public object[] CostOfSales {
            get {
                return this.costOfSalesField;
            }
            set {
                this.costOfSalesField = value;
            }
        }
        
        /// <remarks/>
        public decimal CostOfSalesTotal {
            get {
                return this.costOfSalesTotalField;
            }
            set {
                this.costOfSalesTotalField = value;
            }
        }
        
        /// <remarks/>
        public decimal GrossProfit {
            get {
                return this.grossProfitField;
            }
            set {
                this.grossProfitField = value;
            }
        }
        
        /// <remarks/>
        public object[] Expenses {
            get {
                return this.expensesField;
            }
            set {
                this.expensesField = value;
            }
        }
        
        /// <remarks/>
        public decimal ExpensesTotal {
            get {
                return this.expensesTotalField;
            }
            set {
                this.expensesTotalField = value;
            }
        }
        
        /// <remarks/>
        public decimal NetProfit {
            get {
                return this.netProfitField;
            }
            set {
                this.netProfitField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class BankAccount {
        
        private int accountIDField;
        
        private string accountNameField;
        
        private int accountCodeField;
        
        /// <remarks/>
        public int AccountID {
            get {
                return this.accountIDField;
            }
            set {
                this.accountIDField = value;
            }
        }
        
        /// <remarks/>
        public string AccountName {
            get {
                return this.accountNameField;
            }
            set {
                this.accountNameField = value;
            }
        }
        
        /// <remarks/>
        public int AccountCode {
            get {
                return this.accountCodeField;
            }
            set {
                this.accountCodeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class Customer {
        
        private int customerIDField;
        
        private string codeField;
        
        private string nameField;
        
        private string contactField;
        
        private string telephoneField;
        
        private string mobileField;
        
        private string faxField;
        
        private string emailField;
        
        private string address1Field;
        
        private string address2Field;
        
        private string address3Field;
        
        private string address4Field;
        
        private string postcodeField;
        
        private string websiteField;
        
        private int ecField;
        
        private string notesField;
        
        private int sourceField;
        
        private decimal discountField;
        
        private bool showDiscountField;
        
        private int paymentTermsField;
        
        private string extraText1Field;
        
        private string extraText2Field;
        
        private int checkBox1Field;
        
        private int checkBox2Field;
        
        private System.DateTime createdField;
        
        private System.DateTime updatedField;
        
        /// <remarks/>
        public int CustomerID {
            get {
                return this.customerIDField;
            }
            set {
                this.customerIDField = value;
            }
        }
        
        /// <remarks/>
        public string Code {
            get {
                return this.codeField;
            }
            set {
                this.codeField = value;
            }
        }
        
        /// <remarks/>
        public string Name {
            get {
                return this.nameField;
            }
            set {
                this.nameField = value;
            }
        }
        
        /// <remarks/>
        public string Contact {
            get {
                return this.contactField;
            }
            set {
                this.contactField = value;
            }
        }
        
        /// <remarks/>
        public string Telephone {
            get {
                return this.telephoneField;
            }
            set {
                this.telephoneField = value;
            }
        }
        
        /// <remarks/>
        public string Mobile {
            get {
                return this.mobileField;
            }
            set {
                this.mobileField = value;
            }
        }
        
        /// <remarks/>
        public string Fax {
            get {
                return this.faxField;
            }
            set {
                this.faxField = value;
            }
        }
        
        /// <remarks/>
        public string Email {
            get {
                return this.emailField;
            }
            set {
                this.emailField = value;
            }
        }
        
        /// <remarks/>
        public string Address1 {
            get {
                return this.address1Field;
            }
            set {
                this.address1Field = value;
            }
        }
        
        /// <remarks/>
        public string Address2 {
            get {
                return this.address2Field;
            }
            set {
                this.address2Field = value;
            }
        }
        
        /// <remarks/>
        public string Address3 {
            get {
                return this.address3Field;
            }
            set {
                this.address3Field = value;
            }
        }
        
        /// <remarks/>
        public string Address4 {
            get {
                return this.address4Field;
            }
            set {
                this.address4Field = value;
            }
        }
        
        /// <remarks/>
        public string Postcode {
            get {
                return this.postcodeField;
            }
            set {
                this.postcodeField = value;
            }
        }
        
        /// <remarks/>
        public string Website {
            get {
                return this.websiteField;
            }
            set {
                this.websiteField = value;
            }
        }
        
        /// <remarks/>
        public int EC {
            get {
                return this.ecField;
            }
            set {
                this.ecField = value;
            }
        }
        
        /// <remarks/>
        public string Notes {
            get {
                return this.notesField;
            }
            set {
                this.notesField = value;
            }
        }
        
        /// <remarks/>
        public int Source {
            get {
                return this.sourceField;
            }
            set {
                this.sourceField = value;
            }
        }
        
        /// <remarks/>
        public decimal Discount {
            get {
                return this.discountField;
            }
            set {
                this.discountField = value;
            }
        }
        
        /// <remarks/>
        public bool ShowDiscount {
            get {
                return this.showDiscountField;
            }
            set {
                this.showDiscountField = value;
            }
        }
        
        /// <remarks/>
        public int PaymentTerms {
            get {
                return this.paymentTermsField;
            }
            set {
                this.paymentTermsField = value;
            }
        }
        
        /// <remarks/>
        public string ExtraText1 {
            get {
                return this.extraText1Field;
            }
            set {
                this.extraText1Field = value;
            }
        }
        
        /// <remarks/>
        public string ExtraText2 {
            get {
                return this.extraText2Field;
            }
            set {
                this.extraText2Field = value;
            }
        }
        
        /// <remarks/>
        public int CheckBox1 {
            get {
                return this.checkBox1Field;
            }
            set {
                this.checkBox1Field = value;
            }
        }
        
        /// <remarks/>
        public int CheckBox2 {
            get {
                return this.checkBox2Field;
            }
            set {
                this.checkBox2Field = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime Created {
            get {
                return this.createdField;
            }
            set {
                this.createdField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime Updated {
            get {
                return this.updatedField;
            }
            set {
                this.updatedField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class Payment {
        
        private int payIDField;
        
        private int payInvoiceField;
        
        private System.DateTime payDateField;
        
        private string payNoteField;
        
        private int payMethodField;
        
        private int payAccountField;
        
        private decimal payAmountField;
        
        /// <remarks/>
        public int PayID {
            get {
                return this.payIDField;
            }
            set {
                this.payIDField = value;
            }
        }
        
        /// <remarks/>
        public int PayInvoice {
            get {
                return this.payInvoiceField;
            }
            set {
                this.payInvoiceField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime PayDate {
            get {
                return this.payDateField;
            }
            set {
                this.payDateField = value;
            }
        }
        
        /// <remarks/>
        public string PayNote {
            get {
                return this.payNoteField;
            }
            set {
                this.payNoteField = value;
            }
        }
        
        /// <remarks/>
        public int PayMethod {
            get {
                return this.payMethodField;
            }
            set {
                this.payMethodField = value;
            }
        }
        
        /// <remarks/>
        public int PayAccount {
            get {
                return this.payAccountField;
            }
            set {
                this.payAccountField = value;
            }
        }
        
        /// <remarks/>
        public decimal PayAmount {
            get {
                return this.payAmountField;
            }
            set {
                this.payAmountField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class InvoiceLine {
        
        private decimal quantityField;
        
        private string descriptionField;
        
        private decimal rateField;
        
        private int chargeTypeField;
        
        private decimal vatRateField;
        
        private decimal vatAmountField;
        
        private int lineIDField;
        
        /// <remarks/>
        public decimal Quantity {
            get {
                return this.quantityField;
            }
            set {
                this.quantityField = value;
            }
        }
        
        /// <remarks/>
        public string Description {
            get {
                return this.descriptionField;
            }
            set {
                this.descriptionField = value;
            }
        }
        
        /// <remarks/>
        public decimal Rate {
            get {
                return this.rateField;
            }
            set {
                this.rateField = value;
            }
        }
        
        /// <remarks/>
        public int ChargeType {
            get {
                return this.chargeTypeField;
            }
            set {
                this.chargeTypeField = value;
            }
        }
        
        /// <remarks/>
        public decimal VatRate {
            get {
                return this.vatRateField;
            }
            set {
                this.vatRateField = value;
            }
        }
        
        /// <remarks/>
        public decimal VatAmount {
            get {
                return this.vatAmountField;
            }
            set {
                this.vatAmountField = value;
            }
        }
        
        /// <remarks/>
        public int LineID {
            get {
                return this.lineIDField;
            }
            set {
                this.lineIDField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class PaymentMethod {
        
        private int methodIDField;
        
        private string methodNameField;
        
        /// <remarks/>
        public int MethodID {
            get {
                return this.methodIDField;
            }
            set {
                this.methodIDField = value;
            }
        }
        
        /// <remarks/>
        public string MethodName {
            get {
                return this.methodNameField;
            }
            set {
                this.methodNameField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class BankTXType {
        
        private int typeIDField;
        
        private string typeNameField;
        
        private int typeCodeField;
        
        /// <remarks/>
        public int TypeID {
            get {
                return this.typeIDField;
            }
            set {
                this.typeIDField = value;
            }
        }
        
        /// <remarks/>
        public string TypeName {
            get {
                return this.typeNameField;
            }
            set {
                this.typeNameField = value;
            }
        }
        
        /// <remarks/>
        public int TypeCode {
            get {
                return this.typeCodeField;
            }
            set {
                this.typeCodeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class BankTransaction {
        
        private int idField;
        
        private int accidField;
        
        private System.DateTime transactionDateField;
        
        private decimal moneyinField;
        
        private decimal moneyoutField;
        
        private int vatableField;
        
        private decimal vatRateField;
        
        private decimal vatAmountField;
        
        private int transactionTypeField;
        
        private string commentField;
        
        /// <remarks/>
        public int ID {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
            }
        }
        
        /// <remarks/>
        public int accid {
            get {
                return this.accidField;
            }
            set {
                this.accidField = value;
            }
        }
        
        /// <remarks/>
        public System.DateTime TransactionDate {
            get {
                return this.transactionDateField;
            }
            set {
                this.transactionDateField = value;
            }
        }
        
        /// <remarks/>
        public decimal moneyin {
            get {
                return this.moneyinField;
            }
            set {
                this.moneyinField = value;
            }
        }
        
        /// <remarks/>
        public decimal moneyout {
            get {
                return this.moneyoutField;
            }
            set {
                this.moneyoutField = value;
            }
        }
        
        /// <remarks/>
        public int Vatable {
            get {
                return this.vatableField;
            }
            set {
                this.vatableField = value;
            }
        }
        
        /// <remarks/>
        public decimal VatRate {
            get {
                return this.vatRateField;
            }
            set {
                this.vatRateField = value;
            }
        }
        
        /// <remarks/>
        public decimal VatAmount {
            get {
                return this.vatAmountField;
            }
            set {
                this.vatAmountField = value;
            }
        }
        
        /// <remarks/>
        public int TransactionType {
            get {
                return this.transactionTypeField;
            }
            set {
                this.transactionTypeField = value;
            }
        }
        
        /// <remarks/>
        public string Comment {
            get {
                return this.commentField;
            }
            set {
                this.commentField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.312")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="KashFlow")]
    public partial class NominalItem {
        
        private int codeField;
        
        private string nameField;
        
        private decimal valueField;
        
        /// <remarks/>
        public int Code {
            get {
                return this.codeField;
            }
            set {
                this.codeField = value;
            }
        }
        
        /// <remarks/>
        public string Name {
            get {
                return this.nameField;
            }
            set {
                this.nameField = value;
            }
        }
        
        /// <remarks/>
        public decimal Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetInvoiceCompletedEventHandler(object sender, GetInvoiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetInvoiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetInvoiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Invoice Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Invoice)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void PrintInvoiceCompletedEventHandler(object sender, PrintInvoiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class PrintInvoiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal PrintInvoiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void EmailInvoiceCompletedEventHandler(object sender, EmailInvoiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class EmailInvoiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal EmailInvoiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetInvoicesByDateRangeCompletedEventHandler(object sender, GetInvoicesByDateRangeCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetInvoicesByDateRangeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetInvoicesByDateRangeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Invoice[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Invoice[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetInvoicesForCustomerCompletedEventHandler(object sender, GetInvoicesForCustomerCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetInvoicesForCustomerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetInvoicesForCustomerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Invoice[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Invoice[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void InsertInvoiceCompletedEventHandler(object sender, InsertInvoiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class InsertInvoiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal InsertInvoiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void UpdateInvoiceCompletedEventHandler(object sender, UpdateInvoiceCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateInvoiceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateInvoiceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetInvoicePaymentCompletedEventHandler(object sender, GetInvoicePaymentCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetInvoicePaymentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetInvoicePaymentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Payment[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Payment[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void InsertInvoicePaymentCompletedEventHandler(object sender, InsertInvoicePaymentCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class InsertInvoicePaymentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal InsertInvoicePaymentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void DeleteInvoicePaymentCompletedEventHandler(object sender, DeleteInvoicePaymentCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DeleteInvoicePaymentCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal DeleteInvoicePaymentCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetInvPayMethodsCompletedEventHandler(object sender, GetInvPayMethodsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetInvPayMethodsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetInvPayMethodsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public PaymentMethod[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((PaymentMethod[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetPaypalLinkCompletedEventHandler(object sender, GetPaypalLinkCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetPaypalLinkCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetPaypalLinkCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetCustomerCompletedEventHandler(object sender, GetCustomerCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Customer Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Customer)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetCustomerByIDCompletedEventHandler(object sender, GetCustomerByIDCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomerByIDCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomerByIDCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Customer Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Customer)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetCustomerByEmailCompletedEventHandler(object sender, GetCustomerByEmailCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomerByEmailCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomerByEmailCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Customer Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Customer)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetCustomersCompletedEventHandler(object sender, GetCustomersCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetCustomersCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetCustomersCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Customer[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Customer[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void InsertCustomerCompletedEventHandler(object sender, InsertCustomerCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class InsertCustomerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal InsertCustomerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void UpdateCustomerCompletedEventHandler(object sender, UpdateCustomerCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class UpdateCustomerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal UpdateCustomerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public string Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetBankAccountsCompletedEventHandler(object sender, GetBankAccountsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetBankAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetBankAccountsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public BankAccount[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((BankAccount[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetBankTxTypesCompletedEventHandler(object sender, GetBankTxTypesCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetBankTxTypesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetBankTxTypesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public BankTXType[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((BankTXType[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void InsertBankTransactionCompletedEventHandler(object sender, InsertBankTransactionCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class InsertBankTransactionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal InsertBankTransactionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public int Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((int)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetProfitAndLossCompletedEventHandler(object sender, GetProfitAndLossCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProfitAndLossCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProfitAndLossCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public ProfitAndLoss Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((ProfitAndLoss)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void isUserVATRegisteredCompletedEventHandler(object sender, isUserVATRegisteredCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class isUserVATRegisteredCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal isUserVATRegisteredCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public bool Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    public delegate void GetProductsCompletedEventHandler(object sender, GetProductsCompletedEventArgs e);
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.312")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetProductsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
        
        private object[] results;
        
        internal GetProductsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
                base(exception, cancelled, userState) {
            this.results = results;
        }
        
        /// <remarks/>
        public Product[] Result {
            get {
                this.RaiseExceptionIfNecessary();
                return ((Product[])(this.results[0]));
            }
        }
        
        /// <remarks/>
        public string Status {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[1]));
            }
        }
        
        /// <remarks/>
        public string StatusDetail {
            get {
                this.RaiseExceptionIfNecessary();
                return ((string)(this.results[2]));
            }
        }
    }
}

#pragma warning restore 1591