Value must be maintained at Stock > Stock Location Maintenance
BatchNo
string
20
No
Value must be maintained at Stock > Item Maintenance > Item Batch Requires enable "Item Batch No." module, and Item is controlled by BatchNo. Default: DBNull.Value
Description
string
100
No
FurtherDescription
string
Max
No
Payment Table
Columns Table
Column Name
Data Type
Size
Mandatory
Remark
PaymentMethod
string
20
No
Value must be maintained in General Maintenance -> Payment Method Maintenance.
PaymentBy
string
20
No
ChequeNo
string
20
No
PaymentAmt
decimal
18,4
Yes
References of AutoCount Accounting version 1.8, 1.9
publicvoidNewCashSaleWithCash(BCE.Data.DBSettingdbSetting){BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleCommandcmd=BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleCommand.Create(dbSetting);BCE.AutoCount.Invoicing.Sales.CashSale.CashSaledoc=cmd.AddNew();BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleDetaildtl;//doc.DocNo = "CS-00011";doc.DebtorCode="300-C001";doc.DocDate=DateTime.Today.Date;//Enable 5 cents rounding in this document//Ensure the "5 Cents Rounding Adjustment Account" is set to an account,//in Tools | Options > G/L | G/L Posting...doc.IsRoundAdj=true;dtl=doc.AddDetail();dtl.ItemCode="FG00001";dtl.Qty=1;dtl.UOM="UNIT";dtl.UnitPrice=50.20M;dtl.TaxType="S-10";dtl=doc.AddDetail();dtl.ItemCode="FG00002";dtl.Qty=10;dtl.UOM="UNIT";dtl.UnitPrice=60.20M;dtl.Discount="30%";dtl.TaxType="S-10";//FinalTotal is the total after 5 cents roundingMakeCashPayment(doc,doc.FinalTotal,dbSetting);try{doc.Save();BCE.Application.AppMessage.ShowMessage($"{doc.DocNo} is created.");}catch(Exceptionex){BCE.Application.AppMessage.ShowErrorMessage($"Failed to save Cash Sale.\n{ex.Message}");}}//Create a Cash Payment for a Cash SaleprivatevoidMakeCashPayment(BCE.AutoCount.Invoicing.Sales.CashSale.CashSalecs,decimalcashAmt,BCE.Data.DBSettingdbSetting){//PaymentMode 1 indicate the payment in this Cash Sale is by Cashcs.PaymentMode=1;cs.CashPayment=cashAmt;cs.CCApprovalCode=DBNull.Value;cs.CashSalePayment.ARPayment.ClearDetails();cs.CashSalePayment=BCE.AutoCount.Invoicing.Sales.SalesPayment.Create(cs.ReferPaymentDocKey,cs.DocKey,BCE.AutoCount.Document.DocumentType.CashSale,dbSetting);cs.CashSalePayment.DebtorCode=cs.DebtorCode;cs.CashSalePayment.CurrencyCode=cs.CurrencyCode;cs.CashSalePayment.DocDate=cs.DocDate;BCE.AutoCount.ARAP.ARPayment.ARPaymentDTLEntitypayDtl=cs.CashSalePayment.ARPayment.NewDetail();//"CASH" must be maintained//in General Maintenance | Payment Method MaintenancepayDtl.PaymentMethod="CASH";payDtl.PaymentAmt=cashAmt;if(cs.CashSalePayment.PaymentAmt>0)cs.ReferPaymentDocKey=cs.CashSalePayment.DocKey;}
publicvoidNewCashSaleWithCreditCard(BCE.Data.DBSettingdbSetting){BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleCommandcmd=BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleCommand.Create(dbSetting);BCE.AutoCount.Invoicing.Sales.CashSale.CashSaledoc=cmd.AddNew();BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleDetaildtl;//doc.DocNo = "CS-00011";doc.DebtorCode="300-C001";doc.DocDate=DateTime.Today.Date;//Enable 5 cents rounding in this document//Ensure the "5 Cents Rounding Adjustment Account" is set to an account,//in Tools | Options > G/L | G/L Posting...doc.IsRoundAdj=true;dtl=doc.AddDetail();dtl.ItemCode="FG00001";dtl.Qty=1;dtl.UOM="UNIT";dtl.UnitPrice=50.20M;dtl.TaxType="S-10";dtl=doc.AddDetail();dtl.ItemCode="FG00002";dtl.Qty=10;dtl.UOM="UNIT";dtl.UnitPrice=60.20M;dtl.Discount="30%";dtl.TaxType="S-10";MakeCreditCardPayment(doc,doc.FinalTotal,dbSetting);try{doc.Save();BCE.Application.AppMessage.ShowMessage($"{doc.DocNo} is created.");}catch(Exceptionex){BCE.Application.AppMessage.ShowErrorMessage($"Failed to save Cash Sale.\n{ex.Message}");}}privatevoidMakeCreditCardPayment(BCE.AutoCount.Invoicing.Sales.CashSale.CashSalecs,decimalcardAmt,BCE.Data.DBSettingdbSetting){//PaymentMode 2 indicate the payment with Card//or similar payment mode that requires "Approval Code" and "Card No".cs.PaymentMode=2;cs.CashPayment=0M;cs.CCApprovalCode="ABC0100123";cs.CashSalePayment.ARPayment.ClearDetails();cs.CashSalePayment=BCE.AutoCount.Invoicing.Sales.SalesPayment.Create(cs.ReferPaymentDocKey,cs.DocKey,BCE.AutoCount.Document.DocumentType.CashSale,dbSetting);cs.CashSalePayment.DebtorCode=cs.DebtorCode;cs.CashSalePayment.CurrencyCode=cs.CurrencyCode;cs.CashSalePayment.DocDate=cs.DocDate;BCE.AutoCount.ARAP.ARPayment.ARPaymentDTLEntitypayDtl=cs.CashSalePayment.ARPayment.NewDetail();//"MASTER" must be maintained//in General Maintenance | Payment Method MaintenancepayDtl.PaymentMethod="MASTER";payDtl.ChequeNo="12XXXX-YYY-ZZZ-1234";payDtl.PaymentAmt=cardAmt;if(cs.CashSalePayment.PaymentAmt>0)cs.ReferPaymentDocKey=cs.CashSalePayment.DocKey;}
classPaymentInfo{publicstringPaymentMethod{get;set;}publicstringChequeNo{get;set;}publicdecimalAmount{get;set;}}publicvoidNewCashSaleWithMultiPayments(BCE.Data.DBSettingdbSetting){BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleCommandcmd=BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleCommand.Create(dbSetting);BCE.AutoCount.Invoicing.Sales.CashSale.CashSaledoc=cmd.AddNew();BCE.AutoCount.Invoicing.Sales.CashSale.CashSaleDetaildtl;List<PaymentInfo>payments=newList<PaymentInfo>();//doc.DocNo = "CS-00011";doc.DebtorCode="300-C001";doc.DocDate=DateTime.Today.Date;doc.IsRoundAdj=true;dtl=doc.AddDetail();dtl.ItemCode="FG00001";dtl.Qty=1;dtl.UOM="UNIT";dtl.UnitPrice=50.20M;dtl.TaxType="S-10";dtl=doc.AddDetail();dtl.ItemCode="FG00002";dtl.Qty=10;dtl.UOM="UNIT";dtl.UnitPrice=60.20M;dtl.Discount="30%";dtl.TaxType="S-10";//Create payments with collection of PaymentInfopayments.AddRange(newPaymentInfo[]{newPaymentInfo(){PaymentMethod="CASH",Amount=18M},newPaymentInfo(){PaymentMethod="MASTER",ChequeNo="MB1839232",Amount=500.75M}});MakeMultiPayments(doc,payments,dbSetting);try{doc.Save();BCE.Application.AppMessage.ShowMessage($"{doc.DocNo} is created.");}catch(Exceptionex){BCE.Application.AppMessage.ShowErrorMessage($"Failed to save Cash Sale.\n{ex.Message}");}}privatevoidMakeMultiPayments(BCE.AutoCount.Invoicing.Sales.CashSale.CashSalecs,List<PaymentInfo>payments,BCE.Data.DBSettingdbSetting){BCE.AutoCount.ARAP.ARPayment.ARPaymentDTLEntitypayDtl;//PaymentMode 3 indicate the cash sale is paid by more than one type of payments.cs.PaymentMode=3;//cs.CashPayment = 0M;cs.CCApprovalCode=DBNull.Value;cs.CashSalePayment.ARPayment.ClearDetails();cs.CashSalePayment=BCE.AutoCount.Invoicing.Sales.SalesPayment.Create(cs.ReferPaymentDocKey,cs.DocKey,BCE.AutoCount.Document.DocumentType.CashSale,dbSetting);cs.CashSalePayment.DebtorCode=cs.DebtorCode;cs.CashSalePayment.CurrencyCode=cs.CurrencyCode;cs.CashSalePayment.DocDate=cs.DocDate;payments.ForEach(p=>{payDtl=cs.CashSalePayment.ARPayment.NewDetail();payDtl.PaymentMethod=p.PaymentMethod;payDtl.ChequeNo=p.ChequeNo;payDtl.PaymentAmt=p.Amount;});if(cs.CashSalePayment.PaymentAmt>0)cs.ReferPaymentDocKey=cs.CashSalePayment.DocKey;}
Use method GetFirstCashAccount(BCE.Data.DBSetting) can retrieve the first row of the payment type that is Cash.
//Get the first row payment type that is "CASH"//Must have a Payment Method's "Payment Type" that is "CASH"//in General Maintenance | Payment Method MaintenancepayDtl.PaymentMethod=BCE.AutoCount.Invoicing.CommonFunction.GetFirstCashAccount(dbSetting);