AR Invoice v2

From AutoCount Resource Center
Revision as of 07:02, 18 May 2018 by DanielY (talk | contribs) (Created page with "===Rules in ARInvoice=== # AccNo (Sales A/C) cannot be empty or null. # NetTotal cannot be in negative value. # '''NetTotal''' is the sum of amount & GST from details, this fi...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Rules in ARInvoice

  1. AccNo (Sales A/C) cannot be empty or null.
  2. NetTotal cannot be in negative value.
  3. NetTotal is the sum of amount & GST from details, this field is ReadOnly.
  4. Total GST is the sum of GST & GST Adjustment from details, this field is ReadOnly.

References of AutoCount Accounting version 2.0

AutoCount.Accounting.dll
AutoCount.Accounting.UI.dll
AutoCount.dll
AutoCount.MainEntry.dll
AutoCount.UI.dll
AutoCount.ARAP.dll



Create new AR Invoice

public void NewARInvoiceEntry(AutoCount.Authentication.UserSession userSession, ARInvoiceSource source)
{
    string userID = userSession.LoginUserID;
    AutoCount.ARAP.ARInvoice.ARInvoiceDataAccess cmd = AutoCount.ARAP.ARInvoice.ARInvoiceDataAccess.Create(userSession, userSession.DBSetting);
    AutoCount.ARAP.ARInvoice.ARInvoiceEntity doc = cmd.NewARInvoice();
    AutoCount.ARAP.ARInvoice.ARInvoiceDTLEntity dtl = null;

    doc.DebtorCode = source.CustomerCode;
    doc.Description = source.Description;
    doc.CurrencyRate = source.CurrencyRate;
    doc.DocNo = source.Document;
    doc.DocDate = source.Date;
    doc.SalesAgent = source.SalesPerson;
    doc.JournalType = source.JournalType;
    //Set whether to apply rounding method of either by Document or by Each Line,
    //this may affect different result in GST Calculation due to decimal point rounding.
    doc.RoundingMethod = source.RoundMethod;
    //Document Level Inclusive Tax
    doc.InclusiveTax = source.Inclusive;

    foreach (ARInvoiceDetail ivDtl in source.Details)
    {
        dtl = doc.NewDetail();

        dtl.AccNo = ivDtl.Account;
        dtl.Description = ivDtl.Description;
        dtl.ProjNo = ivDtl.Project;
        dtl.DeptNo = ivDtl.Department;
        dtl.TaxType = ivDtl.GSTCode;
        dtl.Amount = ivDtl.Amount ?? 0;
        dtl.TaxAdjustment = ivDtl.GSTAdjustment;
    }

    try
    {
        cmd.SaveARInvoice(doc, userID);
        //log success
        //AutoCount.AppMessage.ShowMessage(string.Format("{0} is created.", doc.DocNo));
    }
    catch (AutoCount.AppException ex)
    {
        //log ex.Message
        //AutoCount.AppMessage.ShowMessage(ex.Message);
    }
}

Classes of Source

public class ARInvoiceSource
{
    public string CustomerCode { get; set; }
    public string Description { get; set; }
    public decimal CurrencyRate { get; set; } = 1;
    public string Document { get; set; }
    public DateTime Date { get; set; }
    public string SalesPerson { get; set; }
    public string JournalType { get; set; } = "SALES";
    public AutoCount.Document.DocumentRoundingMethod RoundMethod { get; set; } =
        AutoCount.Document.DocumentRoundingMethod.LineByLine_Ver2;
    public bool Inclusive { get; set; } = false;
    public List<ARInvoiceDetail> Details { get; set; } = new List<ARInvoiceDetail>();
}

public class ARInvoiceDetail
{
    public string Account { get; set; }
    public string Description { get; set; }
    public string Project { get; set; }
    public string Department { get; set; }
    public decimal? Amount { get; set; }
    public string GSTCode { get; set; }
    public decimal GSTAdjustment { get; set; }
}

Implementation

GenerateSaleInAR.PNG

public void MainEntry(AutoCount.Authentication.UserSession userSession)
{
    ARInvoiceSource newDoc = new ARInvoiceSource()
    {
        CustomerCode = "300-A001",
        Description = "SALES GENERATED",
        Document = "<<New>>",
        Date = new DateTime(2017, 11, 27),
        Inclusive = true
    };

    newDoc.Details.Add(new ARInvoiceDetail() { Account = "500-0000", Description = "APPLE IPHONE X", Amount = 5000, GSTCode = "SR-S" });
    newDoc.Details.Add(new ARInvoiceDetail() { Account = "520-0000", Description = "Discount 10%", Amount = -500, GSTCode = "SR-S" });
    //No error while the Account is empty, because the amount is zero;
    //Hence no posting to account is required.
    newDoc.Details.Add(new ARInvoiceDetail() { Description = "GIFT", Amount = 0, GSTCode = "SR-S" });
    newDoc.Details.Add(new ARInvoiceDetail() { Account = "500-0000", Description = "FREE Screen Protector", GSTCode = "SR-S" });

    NewARInvoiceEntry(userSession, newDoc);
}

See Also

Go to menu

IconAC81.png Go to top
ProgrammerGo.jpg Resources For AutoCount Software Developers