AR Received Payment: Difference between revisions

From AutoCount Resource Center
Content added Content deleted
No edit summary
No edit summary
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Technical Specification==
{{NavigateDeveloper}}
# Payment '''Knockoff Date''' must be equal or greater than the '''Payment Date'''.
{{Warn|Incomplete (new document flow writing)}}

==Rules in AR Payment==
# Payment '''Knockoff Date''' must be greater than the '''Payment Date'''.
# Payment net total must be greater than 0.
# Payment net total must be greater than 0.
# Payment net total must be the sum of Payment Amount in '''Payment Detail'''
# Payment net total must be the sum of Payment Amount in '''Payment Detail'''
Line 9: Line 6:
# '''Payment Method''' is created in ''General Maintenance | '''Payment Method Maintenance'''''.
# '''Payment Method''' is created in ''General Maintenance | '''Payment Method Maintenance'''''.


==Assemblies in AutoCount Accounting version 1.8==
==References of AutoCount Accounting version 1.8, 1.9==
{{BaseReferenceAC18}}
<pre>
BCE.AutoCount.dll
'''BCE.AutoCount.ARAP.dll'''
BCE.AutoCount.CommonAccounting.dll
BCE.AutoCount.MainEntry.dll
BCE.Utils.dll
BCE.Utils.UI.dll
BCE.AutoCount.ARAP.dll
</pre>


==AR Payment API Usage==
==AR Payment API Usage==
Line 26: Line 17:
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.NewARPayment();
BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.NewARPayment();

//If you want to set your own Payment Voucher number, uncomment the next line, otherwise, the system will use running number.
//If you want to set your own Payment Voucher number, uncomment doc.DocNo, otherwise, the system will use running number.
//doc.DocNo = “RC-0001″;
//doc.DocNo = “RC-0001″;
doc.DebtorCode = "300-A001";
doc.DebtorCode = "300-A001";
Line 35: Line 27:
paymentDetail.PaymentAmt = 100;
paymentDetail.PaymentAmt = 100;
paymentDetail.ChequeNo = "MBB 123456";
paymentDetail.ChequeNo = "MBB 123456";

//Knockoff Invoice
//Knockoff Invoice
doc.KnockOff(BCE.AutoCount.Document.DocumentType.ARInvoice, "IV-0001", 100);
//doc.KnockOff(BCE.AutoCount.Document.DocumentType.ARInvoice, "IV-0001", 100);


try
cmd.SaveARPayment(doc, BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
{
cmd.SaveARPayment(doc, BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
BCE.Application.AppMessage.ShowMessage($"Success: {doc.DocNo}");
}
catch (BCE.Application.AppException ex)
{
BCE.Application.AppMessage.ShowMessage(ex.Message);
}
}
}
</syntaxhighlight>
</syntaxhighlight>
Line 47: Line 48:
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.GetARPayment("RC-0001");
BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.GetARPayment("RC-0001");

//If doc (arPayment) is null, doc (arPayment) does not exist in AR Payment;
//If doc (arPayment) is null, doc (arPayment) does not exist in AR Payment;
//Then exit this function
//Then exit this function
Line 59: Line 61:
}
}
</syntaxhighlight>
</syntaxhighlight>

===Cancel===
<syntaxhighlight lang="csharp">
private void CancelARPayment(BCE.Data.DBSetting dbSetting)
{
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
cmd.CancelARPayment("RC-0001", BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
}
</syntaxhighlight>

===Delete===
===Delete===
<syntaxhighlight lang="csharp">
<syntaxhighlight lang="csharp">
Line 67: Line 79:
}
}
</syntaxhighlight>
</syntaxhighlight>

===Cancel===
===Knockoff===
<syntaxhighlight lang="csharp">
<syntaxhighlight lang="csharp">
doc.KnockOff(knockoff.DocType, knockoff.DocNo, knockoff.Amount, knockoff.Date.Value);

</syntaxhighlight>
</syntaxhighlight>
See [[AR Received Payment#Create New ARPayment|Example of ARPayment Knockoff]]
<br /><br />


==Sample Code with Data for Testing==
This sample code provides the example of creating new AR Payment with tested data.


==Sample Code with Data Model for Testing==
===Source Data (Example for reference Only)===
'''Source Data''' is implemented to hold data that is to be updated into AutoCount Accounting.
In this sample code provide the concept of how to create a new AR Payment with tested data.
The Source Data designed here is for reference only.
===Test Sample Result===
You may either create your own data source, or read from your database and assign value to transaction/document of AutoCount Accounting without source data.

===Test Sample Data===


===Source Data Modal (Example for reference Only)===
'''Source''' is the '''DataModel''' of your source data that is implemented to update data to AutoCount Accounting.
The Source DataModal designed here is for reference only.
You may either create your own data source modal, or read from your database and assign value to transaction/document of AutoCount Accounting without source data modal.


<syntaxhighlight lang="csharp">
<syntaxhighlight lang="csharp">
Line 123: Line 133:
public string BankChargeBillNoForGst { get; set; }
public string BankChargeBillNoForGst { get; set; }
public string PaymentBy { get; set; }
public string PaymentBy { get; set; }

//If this cheque is returned/bounced cheque
//If this cheque is returned/bounced cheque
//Set the returned/bounced date. Otherwise it is null
//Set the returned/bounced date. Otherwise it is null
Line 158: Line 169:
//Get the login user id
//Get the login user id
string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;
string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;

//Create command object of ARPayment
//Create command object of ARPayment
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd =
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd =
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);

//Create a new ARPayment transaction
//Create a new ARPayment transaction
BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.NewARPayment();
BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.NewARPayment();
Line 166: Line 179:
//Assign value to master table
//Assign value to master table
doc.DebtorCode = source.DebtorCode;
doc.DebtorCode = source.DebtorCode;
doc.DocNo = source.DocumentNo;
doc.DocNo = source.DocumentNo ?? doc.DocNo;
doc.DocNo2 = source.ReceiptNo2;
doc.DocNo2 = source.ReceiptNo2 ?? doc.DocNo2;
doc.DocDate = source.DocumentDate;
doc.DocDate = source.DocumentDate;
doc.CurrencyCode = source.PaymentCurrencyCode ?? doc.CurrencyCode;
doc.CurrencyCode = source.PaymentCurrencyCode ?? doc.CurrencyCode;
Line 226: Line 239:
</syntaxhighlight>
</syntaxhighlight>


===Example of AR Payment in Home currency only===
====Test Data Result Screenshot====
[[File:ProgrammerNewARPayment1.PNG|link=]]
====Test Data====
<syntaxhighlight lang="csharp">
public void MainEntry(BCE.Data.DBSetting dbSetting)
{
ARPaymentSource source = new ARPaymentSource()
{
//Home Currency Debtor, payment with home currency
DebtorCode = "300-A001",
Description = "Payment Received",
DocumentDate = new DateTime(2017, 12, 20),
};


source.PaymentDetail.Add(new ARPaymentDetailSource()
==See Also==
{
* [[AR Debtor]]
PaymentMethod = "BANK",
* [[AR Invoice]]
ChequeNo = "CHQ00012",
* [[AR Received Payment]]
PaymentAmount = 100,
* [[AR Debit Note]]
BankCharge = 0.50M
* [[AR Credit Note]]
});
* [[AR Refund]]
* [[AR Deposit]]
* [[AR Deposit - Create New or Update with Refund & Forfeit]]


//Document type is required for document knockoff
source.PaymentKnockoff.Add(new PaymentKnockoffSource()
{
DocType = PaymentKnockoffSource.ARInvoiceDocType,
DocNo = "I-000002",
Amount = 70
});
source.PaymentKnockoff.Add(new PaymentKnockoffSource()
{
DocType = PaymentKnockoffSource.ARInvoiceDocType,
DocNo = "I-000003",
Amount = 30
});

//Create New ARPayment in AutoCount Accounting
NewARPayment(source, dbSetting);
}
</syntaxhighlight>
----

===Example of Foreign Customer and payment in customer currency===
====Test Data Result Screenshot====
[[File:ProgrammerNewARPayment2.PNG|link=]]<br/>
A payment of SGD100.00 knockoff 2 outstanding invoices, which both invoices currency rate is 3.2.

[[File:ProgrammerNewARPayment3.PNG|link=]]<br />
AutoCount Accounting auto generate Loss in foreign currency transaction.<br />
This is because the currency rate when invoice was issued is 3.2, whereas the payment currency rate is 3.1.
====Test Data====
<syntaxhighlight lang="csharp">
public void MainEntry(BCE.Data.DBSetting dbSetting)
{
ARPaymentSource source = new ARPaymentSource()
{
//Singapore customer, payment in Singapore Dollar
DebtorCode = "300-S001",
Description = "Payment Received - Test Data",
DocumentDate = new DateTime(2017, 12, 21),

//If Payment Currency is same as Debtor Currency,
//"PaymentCurrencyCode" can be excluded
PaymentCurrencyCode = "SGD",
PaymentToHomeCurrencyRate = 3.1M,
};

source.PaymentDetail.Add(new ARPaymentDetailSource()
{
PaymentMethod = "BANK",
ChequeNo = "SGB0009",
PaymentAmount = 100, //Currency in SGD
});

//Document type is required for document knockoff
source.PaymentKnockoff.Add(new PaymentKnockoffSource()
{
DocType = PaymentKnockoffSource.ARInvoiceDocType,
DocNo = "I-000017",
Amount = 70
});
source.PaymentKnockoff.Add(new PaymentKnockoffSource()
{
DocType = PaymentKnockoffSource.ARInvoiceDocType,
DocNo = "I-000018",
Amount = 30
});

NewARPayment(source, dbSetting);
}
</syntaxhighlight>

<br />
{{SeeAlsoAPIAccount}}
[[Category:Programmer]]
[[Category:Programmer]]
[[Category:API]]
[[Category:API]]
[[Category:Integrate]]
[[Category:Integrate]]
[[Category:Plug-In]]
[[Category:Plug-In]]
{{NavigateDeveloper}}

Latest revision as of 04:59, 20 February 2019

Technical Specification

  1. Payment Knockoff Date must be equal or greater than the Payment Date.
  2. Payment net total must be greater than 0.
  3. Payment net total must be the sum of Payment Amount in Payment Detail
  4. Total of knockoff Amount must not exceed the sum of Payment Amount.
  5. Payment Method is created in General Maintenance | Payment Method Maintenance.

References of AutoCount Accounting version 1.8, 1.9

BCE.AutoCount.dll
BCE.AutoCount.CommonAccounting.dll
BCE.AutoCount.MainEntry.dll
BCE.Utils.dll
BCE.Utils.UI.dll
BCE.AutoCount.ARAP.dll

AR Payment API Usage

New

public void NewARPayment(BCE.Data.DBSetting dbSetting)
{
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
    BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.NewARPayment();

    //If you want to set your own Payment Voucher number, uncomment doc.DocNo, otherwise, the system will use running number.
    //doc.DocNo = “RC-0001″;
    doc.DebtorCode = "300-A001";

    // Add one payment detail
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDTLEntity paymentDetail = doc.NewDetail();
    paymentDetail.PaymentMethod = "CASH";
    paymentDetail.PaymentAmt = 100;
    paymentDetail.ChequeNo = "MBB 123456";

    //Knockoff Invoice
    //doc.KnockOff(BCE.AutoCount.Document.DocumentType.ARInvoice, "IV-0001", 100);

    try
    {
        cmd.SaveARPayment(doc, BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
        BCE.Application.AppMessage.ShowMessage($"Success: {doc.DocNo}");
    }
    catch (BCE.Application.AppException ex)
    {
        BCE.Application.AppMessage.ShowMessage(ex.Message);
    }
}

Edit

public void EditARPayment(BCE.Data.DBSetting dbSetting)
{
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
    BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.GetARPayment("RC-0001");

    //If doc (arPayment) is null, doc (arPayment) does not exist in AR Payment;
    //Then exit this function
    if (doc == null)
        return;

    doc.ClearDetails();
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDTLEntity paymentDetail = doc.NewDetail();
    paymentDetail.PaymentMethod = "CARD";
    paymentDetail.PaymentAmt = 600;
    cmd.SaveARPayment(doc, BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
}

Cancel

private void CancelARPayment(BCE.Data.DBSetting dbSetting)
{
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
    cmd.CancelARPayment("RC-0001", BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
}

Delete

private void DeleteARPayment(BCE.Data.DBSetting dbSetting)
{
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd = BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);
    cmd.DeleteARPayment("RC-0001", BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
}

Knockoff

doc.KnockOff(knockoff.DocType, knockoff.DocNo, knockoff.Amount, knockoff.Date.Value);
See Example of ARPayment Knockoff



Sample Code with Data for Testing

This sample code provides the example of creating new AR Payment with tested data.

Source Data (Example for reference Only)

Source Data is implemented to hold data that is to be updated into AutoCount Accounting.
The Source Data designed here is for reference only.
You may either create your own data source, or read from your database and assign value to transaction/document of AutoCount Accounting without source data.
public class ARPaymentSource
{
    public string DebtorCode { get; set; }
    public string DocumentNo { get; set; }
    public string ReceiptNo2 { get; set; }
    public DateTime DocumentDate { get; set; } = DateTime.Today.Date;
    public string Description { get; set; }
    public string DepositMethod { get; set; }

    //PaymentCurrencyCode will be the currency code of Debtor's Account.
    //Need to define only when PaymentCurrencyCode is different from Debtor's Account Currency
    public string PaymentCurrencyCode { get; set; }

    //Require PaymentToHomeCurrencyRate,
    //when PaymentCurrencyCode is in Foreign Currency 
    public decimal? PaymentToHomeCurrencyRate { get; set; }

    //Require PaymentToDebtorCurrencyRate,
    //when PaymentCurrencyCode is different from Debtor CurrencyCode
    public decimal? PaymentToDebtorCurrencyRate { get; set; }

    public string Project { get; set; }
    public string Department { get; set; }

    public List<ARPaymentDetailSource> PaymentDetail = new List<ARPaymentDetailSource>();
    public List<PaymentKnockoffSource> PaymentKnockoff = new List<PaymentKnockoffSource>();
}

public class ARPaymentDetailSource
{
    public string PaymentMethod { get; set; }
    public string ChequeNo { get; set; }
    public decimal PaymentAmount { get; set; }
    public decimal? BankCharge { get; set; }
    public string BankChargeTaxCode { get; set; }
    public string BankChargeBillNoForGst { get; set; }
    public string PaymentBy { get; set; }

    //If this cheque is returned/bounced cheque
    //Set the returned/bounced date. Otherwise it is null
    public DateTime? ReturnChequeDate { get; set; }
}

public class PaymentKnockoffSource
{
    //Document Type of ARPayment knockoff
    public const string ARInvoiceDocType = BCE.AutoCount.Document.DocumentType.ARInvoice;
    public const string ARDebitNoteDocType = BCE.AutoCount.Document.DocumentType.ARDN;

    //Must assign with valid document type
    //in this class, you may find both possible document type for ARPayment Knockoff
    //(1) ARInvoiceDocType, and (2) ARDebitNoteDocType
    public string DocType { get; set; }

    //The DocNo must already exist in the respective document type
    public string DocNo { get; set; }

    //The amount to be used to knockoff invoice,
    //the total must not be more than sum of Payment Amount
    public decimal Amount { get; set; }

    //When knockoff date is null,
    //system will use Payment Date as knockoff date
    public DateTime? Date { get; set; }
}

Create New ARPayment

public void NewARPayment(ARPaymentSource source, BCE.Data.DBSetting dbSetting)
{
    //Get the login user id
    string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;

    //Create command object of ARPayment
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess cmd =
        BCE.AutoCount.ARAP.ARPayment.ARPaymentDataAccess.Create(dbSetting);

    //Create a new ARPayment transaction
    BCE.AutoCount.ARAP.ARPayment.ARPaymentEntity doc = cmd.NewARPayment();

    //Assign value to master table
    doc.DebtorCode = source.DebtorCode;
    doc.DocNo = source.DocumentNo ?? doc.DocNo;
    doc.DocNo2 = source.ReceiptNo2 ?? doc.DocNo2;
    doc.DocDate = source.DocumentDate;
    doc.CurrencyCode = source.PaymentCurrencyCode ?? doc.CurrencyCode;
    doc.ToHomeRate = source.PaymentToHomeCurrencyRate ?? doc.ToHomeRate;
    doc.ToDebtorRate = source.PaymentToDebtorCurrencyRate ?? doc.ToDebtorRate;
    doc.ProjNo = source.Project;
    doc.DeptNo = source.Department;

    //Loop and assign value to payment detail
    source.PaymentDetail.ForEach(s => AddARPaymentDetail(s, doc.NewDetail));

    //Knockoff document
    foreach (PaymentKnockoffSource knockoff in source.PaymentKnockoff)
    {
        if (knockoff.Date.HasValue)
        {
            doc.KnockOff(knockoff.DocType, knockoff.DocNo, knockoff.Amount, knockoff.Date.Value);
        }
        else
        {
            //If Knockoff date is not defined, system will assign Payment Date to Knockoff Date
            doc.KnockOff(knockoff.DocType, knockoff.DocNo, knockoff.Amount);
        }
    }

    try
    {
        cmd.SaveARPayment(doc, userID);
        //BCE.Application.AppMessage.ShowMessage(string.Format("{0} is created.", doc.DocNo));
    }
    catch (BCE.Application.AppException ex)
    {
        //BCE.Application.AppMessage.ShowMessage(ex.Message);
        //log error
    }
}

Add New AR Payment Detail

private void AddARPaymentDetail(ARPaymentDetailSource source, Func<BCE.AutoCount.ARAP.ARPayment.ARPaymentDTLEntity> addPaymentDetail)
{
    BCE.AutoCount.ARAP.ARPayment.ARPaymentDTLEntity dtl = addPaymentDetail();
    dtl.PaymentMethod = source.PaymentMethod;
    dtl.ChequeNo = source.ChequeNo ?? dtl.ChequeNo;
    dtl.PaymentAmt = source.PaymentAmount;
    dtl.BankCharge = source.BankCharge ?? dtl.BankCharge;
    dtl.BankChargeTaxType = source.BankChargeTaxCode ?? dtl.BankChargeTaxType;
    dtl.BankChargeTaxRefNo = source.BankChargeBillNoForGst ?? dtl.BankChargeTaxRefNo;
    dtl.PaymentBy = source.PaymentBy ?? source.PaymentBy;

    if (source.ReturnChequeDate.HasValue)
    {
        dtl.IsRCHQ = true;
        dtl.RCHQDate = source.ReturnChequeDate.Value;
    }
}

Example of AR Payment in Home currency only

Test Data Result Screenshot

Test Data

public void MainEntry(BCE.Data.DBSetting dbSetting)
{
    ARPaymentSource source = new ARPaymentSource()
    {
        //Home Currency Debtor, payment with home currency
        DebtorCode = "300-A001",
        Description = "Payment Received",
        DocumentDate = new DateTime(2017, 12, 20),
    };

    source.PaymentDetail.Add(new ARPaymentDetailSource()
    {
        PaymentMethod = "BANK",
        ChequeNo = "CHQ00012",
        PaymentAmount = 100,
        BankCharge = 0.50M
    });

    //Document type is required for document knockoff
    source.PaymentKnockoff.Add(new PaymentKnockoffSource()
    {
        DocType = PaymentKnockoffSource.ARInvoiceDocType,
        DocNo = "I-000002",
        Amount = 70
    });
    source.PaymentKnockoff.Add(new PaymentKnockoffSource()
    {
        DocType = PaymentKnockoffSource.ARInvoiceDocType,
        DocNo = "I-000003",
        Amount = 30
    });

    //Create New ARPayment in AutoCount Accounting
    NewARPayment(source, dbSetting);
}

Example of Foreign Customer and payment in customer currency

Test Data Result Screenshot


A payment of SGD100.00 knockoff 2 outstanding invoices, which both invoices currency rate is 3.2.


AutoCount Accounting auto generate Loss in foreign currency transaction.
This is because the currency rate when invoice was issued is 3.2, whereas the payment currency rate is 3.1.

Test Data

public void MainEntry(BCE.Data.DBSetting dbSetting)
{
    ARPaymentSource source = new ARPaymentSource()
    {
        //Singapore customer, payment in Singapore Dollar
        DebtorCode = "300-S001",
        Description = "Payment Received - Test Data",
        DocumentDate = new DateTime(2017, 12, 21),

        //If Payment Currency is same as Debtor Currency,
        //"PaymentCurrencyCode" can be excluded
        PaymentCurrencyCode = "SGD",
        PaymentToHomeCurrencyRate = 3.1M,
    };

    source.PaymentDetail.Add(new ARPaymentDetailSource()
    {
        PaymentMethod = "BANK",
        ChequeNo = "SGB0009",
        PaymentAmount = 100,    //Currency in SGD
    });

    //Document type is required for document knockoff
    source.PaymentKnockoff.Add(new PaymentKnockoffSource()
    {
        DocType = PaymentKnockoffSource.ARInvoiceDocType,
        DocNo = "I-000017",
        Amount = 70
    });
    source.PaymentKnockoff.Add(new PaymentKnockoffSource()
    {
        DocType = PaymentKnockoffSource.ARInvoiceDocType,
        DocNo = "I-000018",
        Amount = 30
    });

    NewARPayment(source, dbSetting);
}


See Also

AutoCount Accounting Account API
AR AP
Transactions Version Transactions Version
AR Debtor (Customer) 1.8, 1.9
2.0
AP Creditor (Supplier) 1.8, 1.9
2.0
AR Invoice 1.8, 1.9
2.0
AP Invoice 1.8, 1.9
2.0
AR Received Payment 1.8, 1.9
2.0
AP Payment 1.8, 1.9
2.0
AR Debit Note 1.8, 1.9
2.0
AP Debit Note 1.8, 1.9
2.0
AR Credit Note 1.8, 1.9
2.0
AP Credit Note 1.8, 1.9
2.0
AR Refund 1.8, 1.9
2.0
AP Refund 1.8, 1.9
2.0
AR Deposit 1.8, 1.9
2.0
AP Deposit 1.8, 1.9
2.0
AR Deposit - Create New or Update
with Refund & Forfeit
1.8, 1.9
2.0
A/R and A/P Contra Entry 1.8, 1.9
2.0

Go to menu

Go to top
Resources For AutoCount Software Developers