AP Invoice: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 204: | Line 204: | ||
===Implementation=== |
===Implementation=== |
||
<syntaxhighlight lang="csharp |
<syntaxhighlight lang="csharp"> |
||
public void MainEntry(BCE.Data.DBSetting dbSetting) |
public void MainEntry(BCE.Data.DBSetting dbSetting) |
||
{ |
{ |
||
APInvoiceSource newDoc = new APInvoiceSource() |
|||
{ |
{ |
||
SupplierCode = "400-X001", |
|||
Description = " |
Description = "PURCHASE GENERATED", |
||
Document = "<<New>>", |
Document = "<<New>>", |
||
Date = new DateTime( |
Date = new DateTime(2018, 5, 28), |
||
PurchaseAgent = "TOM", |
|||
JournalType = "PURCHASE", |
|||
RoundMethod = BCE.AutoCount.Document.DocumentRoundingMethod.LineByLine_Ver2, |
|||
Inclusive = true |
Inclusive = true |
||
}; |
}; |
||
newDoc.Details.Add(new |
newDoc.Details.Add(new APInvoiceDetail() { Account = "700-1010", Description = "Raw Material Metal", Amount = 1000M }); |
||
newDoc.Details.Add(new |
newDoc.Details.Add(new APInvoiceDetail() { Account = "700-1010", Description = "Process Cost", Project = "Project A", Amount = 150M}); |
||
//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" }); |
|||
NewAPInvoiceEntry(dbSetting, newDoc); |
|||
} |
} |
||
</syntaxhighlight> |
</syntaxhighlight> |
Revision as of 09:53, 28 May 2018
Under Construction
Rules in APInvoice
- AccNo (Purchase A/C) cannot be empty or null.
- AccNo (Purchase A/C) cannot be Creditor Account No.
- NetTotal cannot be in negative value.
- NetTotal is the sum of amount & GST from details, this field is ReadOnly.
- Total GST is the sum of GST & GST Adjustment from details, this field is ReadOnly.
References of AutoCount Accounting version 1.8
BCE.AutoCount.dll BCE.AutoCount.CommonAccounting.dll BCE.AutoCount.MainEntry.dll BCE.Utils.dll BCE.Utils.UI.dll BCE.AutoCount.ARAP.dll
API Usage
New AP Invoice
public void NewAPInvoiceEntry(BCE.Data.DBSetting dbSetting)
{
string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess cmd = BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess.Create(dbSetting);
BCE.AutoCount.ARAP.APInvoice.APInvoiceEntity doc = cmd.NewAPInvoice();
BCE.AutoCount.ARAP.APInvoice.APInvoiceDTLEntity dtl = null;
doc.CreditorCode = "400-X001";
doc.Description = "Purchase Generated";
doc.DocNo = "<<New>>";
doc.DocDate = new DateTime(2018, 5, 28);
doc.PurchaseAgent = "TOM";
doc.JournalType = "PURCHASE";
doc.RoundingMethod = BCE.AutoCount.Document.DocumentRoundingMethod.LineByLine_Ver2;
//Document Level Inclusive Tax
doc.InclusiveTax = true;
//Add two lines of detail
dtl = doc.NewDetail();
dtl.AccNo = "700-1010";
dtl.Description = "Raw Material Metal";
dtl.ProjNo = DBNull.Value;
dtl.Amount = 1000.00M;
dtl = doc.NewDetail();
dtl.AccNo = "700-1010";
dtl.Description = "Process Cost";
dtl.ProjNo = DBNull.Value;
dtl.Amount = 150.00M;
try
{
cmd.SaveAPInvoice(doc, userID);
//log success
//BCE.Application.AppMessage.ShowMessage(string.Format("{0} is created.", doc.DocNo));
}
catch (BCE.Application.AppException ex)
{
//log ex.Message
//BCE.Application.AppMessage.ShowMessage(ex.Message);
}
}
Edit AP Invoice
public void EditAPInvoiceEntry(BCE.Data.DBSetting dbSetting)
{
string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess cmd =
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess.Create(dbSetting);
BCE.AutoCount.ARAP.APInvoice.APInvoiceEntity doc = cmd.GetAPInvoice("PI-000001");
BCE.AutoCount.ARAP.APInvoice.APInvoiceDTLEntity dtl = null;
//if this AP Invoice has been knockoff(offset) with payment or credit note,
//Changing of CreditorCode is not allowed.
//Therefore, when such case arise, it is advised to issue Credit Note and issue a new AP Invoice
//doc.CreditorCode = "400-X001";
doc.Description = "Purchase Generated";
doc.DocDate = new DateTime(2018, 5, 28);
doc.PurchaseAgent = "TOM";
doc.JournalType = "PURCHASE";
doc.RoundingMethod = BCE.AutoCount.Document.DocumentRoundingMethod.LineByLine_Ver2;
//Document Level Inclusive Tax
doc.InclusiveTax = true;
doc.ClearDetails();
//Add two lines of detail
dtl = doc.NewDetail();
dtl.AccNo = "700-1010";
dtl.Description = "Raw Material Metal";
dtl.ProjNo = DBNull.Value;
dtl.Amount = 1000.00M;
dtl = doc.NewDetail();
dtl.AccNo = "700-1010";
dtl.Description = "Process Cost";
dtl.ProjNo = "Project A";
dtl.Amount = 150.00M;
try
{
cmd.SaveAPInvoice(doc, userID);
//log success
//BCE.Application.AppMessage.ShowMessage(string.Format("{0} is created.", doc.DocNo));
}
catch (BCE.Application.AppException ex)
{
//log ex.Message
//BCE.Application.AppMessage.ShowMessage(ex.Message);
}
}
Cancel (void) AP Invoice
public void CancelAPInvoice(BCE.Data.DBSetting dbSetting)
{
string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess cmd =
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess.Create(dbSetting);
try
{
cmd.CancelAPInvoice("PI-000001", userID);
}
catch (BCE.Application.AppException ex)
{
BCE.Application.AppMessage.ShowMessage(ex.Message);
}
}
Delete AP Invoice
public void DeleteAPInvoice(BCE.Data.DBSetting dbSetting)
{
string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess cmd =
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess.Create(dbSetting);
try
{
cmd.DeleteAPInvoice("PI-000001");
}
catch (BCE.Application.AppException ex)
{
BCE.Application.AppMessage.ShowMessage(ex.Message);
}
}
Sample
Create new AP Invoice
public void DeleteAPInvoice(BCE.Data.DBSetting dbSetting)
{
string userID = BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID;
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess cmd =
BCE.AutoCount.ARAP.APInvoice.APInvoiceDataAccess.Create(dbSetting);
try
{
cmd.DeleteAPInvoice("PI-000001");
}
catch (BCE.Application.AppException ex)
{
BCE.Application.AppMessage.ShowMessage(ex.Message);
}
}
Classes of Source
public class APInvoiceSource
{
public string SupplierCode { 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 PurchaseAgent { get; set; }
public string JournalType { get; set; } = "PURCHASE";
public BCE.AutoCount.Document.DocumentRoundingMethod RoundMethod { get; set; } =
BCE.AutoCount.Document.DocumentRoundingMethod.LineByLine_Ver2;
public bool Inclusive { get; set; } = false;
public List<APInvoiceDetail> Details { get; set; } = new List<APInvoiceDetail>();
}
public class APInvoiceDetail
{
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
public void MainEntry(BCE.Data.DBSetting dbSetting)
{
APInvoiceSource newDoc = new APInvoiceSource()
{
SupplierCode = "400-X001",
Description = "PURCHASE GENERATED",
Document = "<<New>>",
Date = new DateTime(2018, 5, 28),
PurchaseAgent = "TOM",
JournalType = "PURCHASE",
RoundMethod = BCE.AutoCount.Document.DocumentRoundingMethod.LineByLine_Ver2,
Inclusive = true
};
newDoc.Details.Add(new APInvoiceDetail() { Account = "700-1010", Description = "Raw Material Metal", Amount = 1000M });
newDoc.Details.Add(new APInvoiceDetail() { Account = "700-1010", Description = "Process Cost", Project = "Project A", Amount = 150M});
NewAPInvoiceEntry(dbSetting, newDoc);
}
Go to top
|
Resources For AutoCount Software Developers
|