//ICP010 /// <summary> /// Force issue a receipt for unpaid invoice. /// </summary> /// <param name="doInvoice"></param> /// <param name="taxInvoiceDate"></param> /// <param name="batchId"></param> /// <param name="batchDate"></param> /// <returns></returns> public tbt_TaxInvoice IssueTaxInvoice(doInvoice doInvoice, DateTime taxInvoiceDate, string batchId, DateTime batchDate) { string runningNo = this.GetNextRunningNoByTypeMonthYear(RunningType.C_RUNNING_TYPE_TAX_INVOICE, batchId, taxInvoiceDate /*batchDate*/); //Edit by Patcharee T. For issue Tax invoice no. in month of taxInvoiceDate //Determin receipt issue flag bool receiptIssueFlag = doInvoice.IssueReceiptTiming == IssueRecieptTime.C_ISSUE_REC_TIME_NOT_ISSUE ? false : true; tbt_TaxInvoice doTaxInvoice = new tbt_TaxInvoice() { TaxInvoiceNo = runningNo, InvoiceNo = doInvoice.InvoiceNo, InvoiceOCC = (int?)doInvoice.InvoiceOCC, ReceiptNo = null, TaxInvoiceDate = taxInvoiceDate, TaxInvoiceCanceledFlag = false, TaxInvoiceIssuedFlag = receiptIssueFlag, CreateDate = batchDate, CreateBy = batchId, UpdateDate = batchDate, UpdateBy = batchId }; List <tbt_TaxInvoice> doTaxInvoices = new List <tbt_TaxInvoice>(); doTaxInvoices.Add(doTaxInvoice); List <tbt_TaxInvoice> result = this.InsertTbt_TaxInvoice(CommonUtil.ConvertToXml_Store <tbt_TaxInvoice>(doTaxInvoices)); if (result != null && result.Count > 0) { //success return(result[0]); } //no insert data return(null); }
/// <summary> /// Function for checking that whether tax invoice has been issued for the invoice. /// </summary> /// <param name="doInvoice"></param> /// <returns></returns> public bool CheckTaxInvoiceIssued(doInvoice doInvoice) { ObjectParameter paramIsIssued = new ObjectParameter("IsIssued", false); base.CheckTaxInvoiceIssued(doInvoice.InvoiceNo, doInvoice.InvoiceOCC, paramIsIssued); bool isIssued = Convert.ToBoolean(paramIsIssued.Value); return(isIssued); }
//ICS040 /// <summary> /// Register billing exemption by updating payment status to invoice and billing detail. /// </summary> /// <param name="doInvoiceExemption"></param> /// <returns></returns> public bool RegisterInvoiceExemption(doInvoice doInvoiceExemption) { if (doInvoiceExemption == null) { return(false); } //Invoice List <tbt_Invoice> result = base.RegisterInvoiceExemption(doInvoiceExemption.InvoiceNo, doInvoiceExemption.InvoiceOCC, PaymentStatus.C_PAYMENT_STATUS_BILLING_EXEMPTION, doInvoiceExemption.ExemptApproveNo, CommonUtil.dsTransData.dtUserData.EmpNo, CommonUtil.dsTransData.dtOperationData.ProcessDateTime); if (result == null || result.Count == 0) { return(false); } ILogHandler logHand = ServiceContainer.GetService <ILogHandler>() as ILogHandler; doTransactionLog logData = new doTransactionLog() { TransactionType = doTransactionLog.eTransactionType.Update, TableName = TableName.C_TBL_NAME_INVOICE, TableData = null }; logData.TableData = CommonUtil.ConvertToXml(result); logHand.WriteTransactionLog(logData); //Billing details if (doInvoiceExemption.Tbt_BillingDetails != null && doInvoiceExemption.Tbt_BillingDetails.Count > 0) { List <tbt_BillingDetail> billingDetailResult = base.RegisterBillingDetailExemption(doInvoiceExemption.InvoiceNo, doInvoiceExemption.InvoiceOCC, PaymentStatus.C_PAYMENT_STATUS_BILLING_EXEMPTION, CommonUtil.dsTransData.dtUserData.EmpNo, CommonUtil.dsTransData.dtOperationData.ProcessDateTime); if (billingDetailResult == null || billingDetailResult.Count == 0 || billingDetailResult.Count != billingDetailResult.Count) { return(false); } logData = new doTransactionLog() { TransactionType = doTransactionLog.eTransactionType.Update, TableName = TableName.C_TBL_NAME_INVOICE, TableData = null }; logData.TableData = CommonUtil.ConvertToXml(billingDetailResult); logHand.WriteTransactionLog(logData); } //Success return(true); }
/// <summary> /// Get invoice and billing detail of invoice /// </summary> /// <param name="invoiceNo"></param> /// <returns></returns> public doInvoice GetInvoice(string invoiceNo) { doInvoice invoice = base.GetInvoice(invoiceNo, CurrencyUtil.C_CURRENCY_LOCAL, CurrencyUtil.C_CURRENCY_US).FirstOrDefault(); if (invoice != null) { invoice.Tbt_BillingDetails = GetTbt_BillingDetailOfInvoice(invoiceNo, invoice.InvoiceOCC); } return(invoice); }
//ICS050 /// <summary> /// To force issue tax invoice /// </summary> /// <param name="doInvoice"></param> /// <param name="taxInvoiceDate"></param> /// <returns></returns> public tbt_TaxInvoice ForceIssueTaxInvoice(doInvoice doInvoice, DateTime taxInvoiceDate) { string runningNo = this.GetNextRunningNoByTypeMonthYear(RunningType.C_RUNNING_TYPE_TAX_INVOICE , CommonUtil.dsTransData.dtUserData.EmpNo , taxInvoiceDate /*CommonUtil.dsTransData.dtOperationData.ProcessDateTime*/); //Edit by Patcharee T. For get Tax invoice no. in month of taxInvoiceDate 11-Jun-2013 tbt_TaxInvoice doTaxInvoice = new tbt_TaxInvoice() { TaxInvoiceNo = runningNo, InvoiceNo = doInvoice.InvoiceNo, InvoiceOCC = (int?)doInvoice.InvoiceOCC, ReceiptNo = null, TaxInvoiceDate = taxInvoiceDate, TaxInvoiceCanceledFlag = false, TaxInvoiceIssuedFlag = true, CreateDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime, CreateBy = CommonUtil.dsTransData.dtUserData.EmpNo, UpdateDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime, UpdateBy = CommonUtil.dsTransData.dtUserData.EmpNo }; //Modify by Jutarat A. on 30072013 //List<tbt_TaxInvoice> doTaxInvoices = new List<tbt_TaxInvoice>(); //doTaxInvoices.Add(doTaxInvoice); //List<tbt_TaxInvoice> result = this.InsertTbt_TaxInvoice(CommonUtil.ConvertToXml_Store<tbt_TaxInvoice>(doTaxInvoices)); List <tbt_TaxInvoice> result = CreateTbt_TaxInvoice(doTaxInvoice); //End Modify if (result != null && result.Count > 0) { //success return(result[0]); } //no insert data return(null); }
/// <summary> /// To update invoice correction reason /// </summary> /// <param name="doInvoice"></param> /// <param name="correctionReason"></param> /// <returns></returns> public bool UpdateInvoiceCorrectionReason(doInvoice doInvoice, string correctionReason) { List <tbt_Invoice> result = base.UpdateInvoiceCorrectionReason(doInvoice.InvoiceNo, (int?)doInvoice.InvoiceOCC, correctionReason , CommonUtil.dsTransData.dtUserData.EmpNo , CommonUtil.dsTransData.dtOperationData.ProcessDateTime ); if (result != null && result.Count > 0) { ILogHandler logHand = ServiceContainer.GetService <ILogHandler>() as ILogHandler; doTransactionLog logData = new doTransactionLog() { TransactionType = doTransactionLog.eTransactionType.Update, TableName = TableName.C_TBL_NAME_INVOICE, TableData = CommonUtil.ConvertToXml(result) }; logHand.WriteTransactionLog(logData); //Updated return(true); } //No updated data return(false); }