private bool UpdateInvoice(Entities.Invoice invoice) { int clientID = 0; Facade.IInvoice facInvoice = new Facade.Invoice(); Facade.IInvoiceOneLiner facInvoiceOneLiner = new Facade.Invoice(); bool retVal = false; DataSet dsClientID; string userName = ((Entities.CustomPrincipal)Page.User).UserName; //GetClientForOneLinerInvoiceId should work for most invoice types, where as GetClientInvoiceId only works for groupage invoices if (invoice.InvoiceType == eInvoiceType.Normal) { dsClientID = facInvoice.GetClientForInvoiceId(invoice.InvoiceId); } else { dsClientID = facInvoiceOneLiner.GetClientForOneLinerInvoiceId(invoice.InvoiceId); } int.TryParse(dsClientID.Tables[0].Rows[0]["ClientId"].ToString(), out clientID); retVal = facInvoice.Update(invoice, clientID, userName); return(retVal); }
private Entities.Invoice PopulateInvoice(int invoiceId) { Entities.Invoice m_Invoice = null; Facade.IInvoice facInvoice = new Orchestrator.Facade.Invoice(); m_Invoice = facInvoice.GetForInvoiceId(invoiceId); return(m_Invoice); }
/// <summary> /// 更新修改 /// </summary> /// <param name="model"></param> public void updateInvoice(Entities.Invoice model) { var item = _sysInvoiceRepository.getById(model.Id); if (item == null) { return; } _sysInvoiceRepository.update(model); }
public Task <object> Handle(AddNewInvoiceCommand command, CancellationToken cancellationToken) { if (!command.IsValid()) { NotifyValidationErrors(command); } else { List <InvoiceItem> items = new List <InvoiceItem>(); foreach (InvoiceItemModel invoiceItem in command.Items) { InvoiceItem item = new InvoiceItem ( null, new Entities.Product(new Identity((uint)invoiceItem.ProductID), null, null, null, null, null, null, null), new Entities.Unit(new Identity((uint)invoiceItem.UnitID), null), new Price(invoiceItem.Price), new Note(invoiceItem.Note), new Quantity(invoiceItem.Quantity), new Weight(invoiceItem.Weight), new Price(invoiceItem.TotalPrice), new Deliveried(false), new Quantity(0) ); items.Add(item); } Entities.Invoice Invoice = new Entities.Invoice ( null, new Entities.Customer((uint)command.CustomerID, null, null, null, null, null, null, null, null), new DeliveryTime(command.DeliveryTime), new Price(command.TotalPrice), new Note(command.Note), new Weight(command.WeightTotal), new Code(command.Code), items ); InvoiceModel model = _InvoiceRepository.Add(Invoice); if (model != null) { //send sms CustomerModel customer = _CustomerRepository.Get(command.CustomerID); if (customer != null) { string message = "Bạn vừa đặt hàng thành công trên avita. Mã đơn hàng của bạn là: " + Invoice.Code + ". Vui lòng truy cập fanpage để xem tình trạng đơn hàng"; SendSMS.SendSMSCommon.SendSMS(message, "+84" + customer.PhoneNumber.Substring(1)); } return(Task.FromResult(model.ID as object)); } _bus.RaiseEvent(new DomainNotification("Invoice", "Server error", NotificationCode.Error)); } return(Task.FromResult(null as object)); }
public Task <object> Handle(UpdateInvoiceCommand command, CancellationToken cancellationToken) { if (!command.IsValid()) { NotifyValidationErrors(command); } else { List <InvoiceItem> items = new List <InvoiceItem>(); foreach (InvoiceItemModel invoiceItem in command.Items) { InvoiceItem item = new InvoiceItem ( new Identity((uint)invoiceItem.ID), new Entities.Product(new Identity((uint)invoiceItem.ProductID), null, null, null, null, null, null, null), new Entities.Unit(new Identity((uint)invoiceItem.UnitID), null), new Price(invoiceItem.Price), new Note(invoiceItem.Note), new Quantity(invoiceItem.Quantity), new Weight(invoiceItem.Weight), new Price(invoiceItem.TotalPrice), new Deliveried(false), new Quantity(0) ); items.Add(item); } Entities.Invoice Invoice = new Entities.Invoice ( new Identity((uint)command.ID), new Entities.Customer((uint)command.CustomerID, null, null, null, null, null, null, null, null), new DeliveryTime(command.DeliveryTime), new Price(command.TotalPrice), new Note(command.Note), new Weight(command.WeightTotal), new Code(command.Code), items ); bool result = _InvoiceRepository.Update(Invoice); return(Task.FromResult(result as object)); } return(Task.FromResult(null as object)); }
protected void btnEmailOneLiner_Click(object sender, EventArgs e) { if (ViewState["invoice"] != null) { m_Invoice = (Entities.Invoice)ViewState["invoice"]; using (MailMessage mailMessage = new System.Net.Mail.MailMessage()) { mailMessage.From = new MailAddress(Orchestrator.Globals.Configuration.MailFromAddress, Orchestrator.Globals.Configuration.MailFromName); string emailAddress = this.cboEmail.Text; if (this.cboEmail.SelectedValue != String.Empty) { emailAddress = this.cboEmail.SelectedValue; } mailMessage.To.Add(new MailAddress(emailAddress)); mailMessage.Attachments.Add(new Attachment(Server.MapPath(m_Invoice.PDFLocation))); mailMessage.Subject = Orchestrator.Globals.Configuration.InstallationCompanyName + " Invoice Number " + m_Invoice.InvoiceId.ToString(); mailMessage.IsBodyHtml = false; // We need to get/determine what text should be attached to the email for the invoice. string body = string.Format("Please find attached Invoice “{0}” from {1}. If you require POD’s please access the self service website here {2}. Please contact Customer Services on {3} for additional help,\n\n Regards", m_Invoice.InvoiceId.ToString(), Orchestrator.Globals.Configuration.InstallationCompanyName, Orchestrator.Globals.Configuration.OrchestratorURL, Orchestrator.Globals.Configuration.InstallationCustomerServicesNumber); mailMessage.Body = body; SmtpClient smtp = new System.Net.Mail.SmtpClient(); smtp.Host = Globals.Configuration.MailServer; smtp.Credentials = new NetworkCredential(Globals.Configuration.MailUsername, Globals.Configuration.MailPassword); smtp.Send(mailMessage); lblEmailSent.Visible = true; } } }
/// <summary> /// 新增,插入 /// </summary> /// <param name="model"></param> public void insertInvoice(Entities.Invoice model) { //if (existAccount(model.Name)) // return; _sysInvoiceRepository.insert(model); }
/// <summary> /// Load Invoice /// </summary> private void LoadInvoice() { //if (ViewState["invoice"]==null) //{ Facade.IInvoice facInvoice = new Facade.Invoice(); Facade.IInvoiceExtra facInvoiceExtra = new Facade.Invoice(); m_Invoice = facInvoice.GetForInvoiceId(m_InvoiceNo); if (m_Invoice.InvoiceType == eInvoiceType.SelfBill) { m_Invoice.Extras = facInvoiceExtra.GetExtraCollectionForInvoiceId(m_Invoice.InvoiceId); } ViewState["invoice"] = m_Invoice; //} //else // m_Invoice = (Entities.Invoice)ViewState["invoice"]; // Load the report with the relevant details if (m_Invoice != null) { lblInvoiceNo.Text = m_Invoice.InvoiceId.ToString(); lblInvoiceNo.ForeColor = Color.Black; lblInvoiceType.Text = m_Invoice.InvoiceType.ToString(); if (m_Invoice.InvoiceType == eInvoiceType.SelfBill) { lblClientInvoiceSelfBillAmount.Visible = true; lblClientSelfBillInvoiceNumber.Visible = true; txtClientSelfBillAmount.Visible = true; txtClientSelfBillAmount.Text = m_Invoice.ClientInvoiceAmount.ToString("C"); txtClientSelfBillInvoiceNumber.Visible = true; txtClientSelfBillInvoiceNumber.Text = m_Invoice.SelfBillInvoiceNumber; divClientSelfBillAmount.Visible = true; chkSelfBillRemainder.Visible = true; lblRemainder.Visible = true; } if (m_Invoice.OverrideReason != string.Empty) { pnlOverride.Visible = true; chkOverride.Checked = true; txtOverrideReason.Text = m_Invoice.OverrideReason.ToString(); txtOverrideGrossAmount.Text = m_Invoice.OverrideTotalAmountGross.ToString("C"); txtOverrideNetAmount.Text = m_Invoice.OverrideTotalAmountNet.ToString("C"); txtOverrideVAT.Text = m_Invoice.OverrideTotalAmountVAT.ToString("C"); } // Display the invoice date, but only allow the date to be altered if the invoice has not been posted. dteInvoiceDate.SelectedDate = m_Invoice.InvoiceDate; dteInvoiceDate.Enabled = !m_Invoice.Posted; lblDateCreated.Text = m_Invoice.CreatedDate.ToShortDateString(); lblDateCreated.ForeColor = Color.Black; txtInvoiceNotes.Text = m_Invoice.InvoiceDetails; chkIncludePODs.Checked = m_Invoice.IncludePODs; chkIncludeReferences.Checked = m_Invoice.IncludeReferences; if (m_Invoice.IncludeDemurrage) { chkIncludeDemurrage.Checked = true; rdoDemurrageType.SelectedIndex = Convert.ToInt32(m_Invoice.DemurrageType); rdoDemurrageType.Visible = true; } else { chkIncludeDemurrage.Visible = false; lblNoDemurrage.Visible = true; rdoDemurrageType.Visible = false; } if (m_Invoice.IncludeFuelSurcharge) { chkIncludeFuelSurcharge.Checked = true; txtFuelSurchargeRate.Text = m_Invoice.FuelSurchargeRate.ToString(); rdoFuelSurchargeType.SelectedIndex = Convert.ToInt32(m_Invoice.FuelSurchargeType); rdoFuelSurchargeType.Visible = true; divFuelSurcharge.Visible = true; } else { divFuelSurcharge.Visible = false; chkIncludeFuelSurcharge.Checked = false; rdoFuelSurchargeType.Visible = false; } chkJobDetails.Checked = m_Invoice.IncludeJobDetails; chkExtraDetails.Checked = m_Invoice.IncludeExtraDetails; rdoSortType.SelectedIndex = Convert.ToInt32(m_Invoice.InvoiceSortingType) - 1; ViewState[C_JOBIDCSV_VS] = m_Invoice.JobIdCSV; if (m_Invoice.InvoiceType == eInvoiceType.SelfBill && m_Invoice.Extras != null) { if (m_Invoice.Extras.Count != 0) { pnlExtras.Visible = true; dgExtras.DataSource = m_Invoice.Extras; dgExtras.DataBind(); m_extraIdCSV = ""; foreach (Entities.Extra extra in m_Invoice.Extras) { if (m_extraIdCSV.Length > 0) { m_extraIdCSV += ","; } m_extraIdCSV += extra.ExtraId; } ViewState["ExtraIdCSV"] = m_extraIdCSV; chkExtraDetails.Visible = true; } else { pnlExtras.Visible = false; } } if (m_isUpdate) { if (m_Invoice.ForCancellation) { btnAdd.Visible = false; btnSendToAccounts.Visible = false; chkPostToExchequer.Visible = false; chkDelete.Checked = true; } else { if (!chkPostToExchequer.Checked) { btnAdd.Visible = true; btnSendToAccounts.Visible = true; chkPostToExchequer.Visible = true; chkDelete.Checked = false; } } } else { chkPostToExchequer.Visible = true; } if (m_Invoice.Posted) { btnAdd.Visible = false; btnSendToAccounts.Visible = false; chkPostToExchequer.Checked = true; chkPostToExchequer.Visible = true; pnlInvoiceDeleted.Visible = false; chkDelete.Visible = false; pnlExtras.Enabled = false; pnlIncludes.Enabled = false; pnlOverride.Enabled = false; chkOverride.Enabled = false; pnlSelfRemainder.Enabled = false; txtInvoiceNotes.Enabled = false; rdoSortType.Enabled = false; txtClientSelfBillAmount.Enabled = false; chkSelfBillRemainder.Enabled = false; txtClientSelfBillInvoiceNumber.Enabled = false; btnSendToAccounts.Visible = false; btnViewInvoice.Visible = false; dteInvoiceDate.Enabled = false; } else { btnAdd.Visible = true; btnSendToAccounts.Visible = true; chkPostToExchequer.Checked = false; pnlInvoiceDeleted.Visible = true; chkDelete.Visible = true; } } Header1.Title = "Update Invoice"; Header1.subTitle = "Please make any changes neccessary."; btnAdd.Text = "Update"; }
private void PostToAccountsSystem(IEnumerable <int> selectedInvoiceIds) { Entities.Invoice _Invoice = null; Facade.IInvoice facInvoice = new Facade.Invoice(); bool retVal = false; string invoicesPosted = string.Empty; string invoicesFailed = string.Empty; string invoicesAlreadyPosted = string.Empty; //For each selected invoice foreach (int invoiceId in selectedInvoiceIds) { _Invoice = PopulateInvoice(invoiceId); try { // Check to make sure none of the selected invoices have been posted. // If any have been posted, prevent the posting from going ahead again. // Check whether any of the selected invoices are "self bill". // If they are then do not allow them to be posted to accounts. // At the time of writing this code TF and JS agreed that none of our existing clients // actually posted self bill invoices anyway (although some had been posted in the past by mistake!) // so the ability to post self bill invoices has not been made configurable. TF:10/09/2008 if (_Invoice.Posted || _Invoice.InvoiceType == eInvoiceType.SelfBill || _Invoice.ForCancellation == true) { retVal = false; invoicesAlreadyPosted += invoiceId.ToString() + ", "; } else { _Invoice.Posted = true; retVal = UpdateInvoice(_Invoice); } } catch (Exception e) { string err = GetErrorString(e); lblError.Text = "An error occured when posting Invoice Id " + invoiceId.ToString() + ".<br/>" + err; pnlError.Visible = true; return; } if (retVal) { invoicesPosted += invoiceId.ToString() + ", "; btnPost.Enabled = false; } else { invoicesFailed += invoiceId.ToString() + ", "; lblError.Text = "The following Invoices failed to post: " + invoicesFailed + ".<br/>"; pnlError.Visible = true; } if (invoicesAlreadyPosted != string.Empty) { lblError.Text = "The following Invoices were not posted because they are Self Bill, are Cancelled or have already been posted: " + invoicesAlreadyPosted + ".<br/>"; pnlError.Visible = true; } } PopulateInvoices(); }
public ActionResult Index(FormCollection formCollection) { try { var invoice = new invoice(); var invoiceData = new invoiceData(); var currency = _currencySvc.GetById(int.Parse(formCollection["CurrencyId"])); invoice.invoiceData = invoiceData; invoiceData.id = "data"; //Thuộc tính ID của thẻ <invoiceData ID="data"> var sss = Bkav.eHoadon.XML.eHoadon.Entity.Create.invoiceDataInvoiceType.Item01GTKT; //Thông tin chung về hóa đơn invoiceData.invoiceAppRecordId = getRandomNumber(999999); //ID của bản ghi được quản lý bởi phần mềm Lập hóa đơn của DN. invoiceData.invoiceType = sss; //Ký hiệu loại hóa đơn var releaseId = -1; if (int.TryParse(formCollection["ResleaseIdNo"], out releaseId)) { var release = _listReleaseInvoiceSvc.GetById(releaseId); invoiceData.templateCode = release.No; invoiceData.invoiceSeries = release.SerialInvoice; } else { invoiceData.templateCode = formCollection["ResleaseIdNo"]; //"01GTKT0/089"; //Ký hiệu mẫu hóa đơn invoiceData.invoiceSeries = formCollection["Serial"]; //"AC/14E"; } //"01GTKT0/089"; //Ký hiệu mẫu hóa đơn invoiceData.invoiceNumber = formCollection["InvoiceNumber"]; //createUid(20); //Số hóa đơn hiện tại có chiều dài 7 chữ số invoiceData.invoiceName = "Hóa đơn giá trị gia tăng"; //Tên loại hóa đơn invoiceData.invoiceIssuedDate = DateTime.Now; //Ngày xuất hóa đơn invoiceData.signedDate = DateTime.Now; //Ngày ký số lên hóa đơn, có thể lấy là ngày xuất hóa đơn invoiceData.submittedDate = DateTime.Now; //Ngày gửi hóa đơn lên CQT, tương đương với ngày đẩy vào thiết bị xác thực, có thể lấy là ngày xuất hóa đơn invoiceData.currencyCode = currency != null ? currency.CurrencyCode : ""; //Ký hiệu mã tiền tệ sử dụng: VND, USD,... //invoiceData.isAdjusted = 1; //Trạng thái hóa đơn: 1: hóa đơn thường, 5: hóa đơn điều chỉnh,.... trong file Doc mô tả chuẩn XML //Thông tin thanh toán hóa đơn var paymentInfo = new paymentInfo(); paymentInfo.paymentMethodName = formCollection["PaymentsType"]; //"Tiền mặt"; //Thông tin về phương thức thanh toán hóa đơn: Tiền mặt, Tiền mặt/Chuyển khoản, Chuyển khoản List <paymentInfo> payments = invoiceData.payments; payments.Add(paymentInfo); //Thông tin người bán (Seller) //invoiceData.sellerAppRecordId = createUid(20); //Tùy doanh nghiệp có thể dùng chung trường ID của bản ghi được quản lý bởi phần mềm Lập hóa đơn của DN. invoiceData.sellerLegalName = formCollection["CompanyNameAcc"]; //"CÔNG TY TNHH DỊCH VỤ TIN HỌC FPT (Demo)"; //Tên doanh nghiệp bán hàng hóa dịch vụ var random = new Random(); //String tin = allowTin[random.Next(allowTin.Length)]; //invoiceData.sellerTaxCode = tin; //Mã số thuến người bán invoiceData.sellerAddressLine = formCollection["AddressAcc"]; //"Tầng 6 Tòa nhà Thành Công, Dịch Vọng Hậu, Cầu Giấy, Hà Nội"; //Địa chỉ người bán invoiceData.sellerPhoneNumber = formCollection["PhoneAcc"]; //"0812345678"; //Số điện thoại người bán invoiceData.sellerFaxNumber = formCollection["PhoneAcc"]; //"0812345678"; //invoiceData.sellerContactPersonName = formCollection["sellerAddressLine"];// "Đỗ C"; //Tên người đại diện công ty đăng ký kinh doanh //invoiceData.sellerEmail = formCollection["sellerAddressLine"]; //"*****@*****.**"; //email đăng ký kinh doanh //invoiceData.sellerSignedPersonName = formCollection["sellerAddressLine"];// "Phạm A"; //Người bán hàng hoặc người thực hiện việc xuất hóa đơn //invoiceData.sellerSubmittedPersonName = formCollection["sellerAddressLine"]; //"Nguyễn B"; //Người thực hiện phê duyệt hoặc gửi hóa đơn đi xác thực //Thông tin người mua ( Buyer) invoiceData.buyerLegalName = formCollection["CompanyName"]; // "Công ty Thử Nghiệm"; //Tên doanh nghiệp bán hàng hóa dịch vụ invoiceData.buyerDisplayName = formCollection["CustomerName"]; //"Nguyễn Tiến X"; invoiceData.buyerTaxCode = formCollection["CompanyCode"]; //"0104128565"; //Mã số thuến người mua invoiceData.buyerAddressLine = formCollection["Address"]; //"15 Nguyễn Du - Hai Bà Trưng - Hà Nội"; //Địa chỉ người bán invoiceData.buyerPhoneNumber = "0812345678"; //Số điện thoại người mua invoiceData.buyerFaxNumber = "0812345678"; invoiceData.buyerEmail = formCollection["BuyerEmail"]; //"*****@*****.**"; //email đăng ký kinh doanh invoiceData.invoiceNote = formCollection["Comment"]; //Thông tin các mặt hàng invoiceData.items = new List <invoiceItem>(); //Thêm mặt hàng thứ nhất var invoiceItem = new invoiceItem(); //invoiceItemList[0].promotion uint i = 1; var data = formCollection.AllKeys.Count(); for (int j = 0; j < (data - 27) / 10; j++) { invoiceItem = new invoiceItem(); var vatCategoryPercentage = 0; int.TryParse(formCollection[string.Format("invoiceItemList[{0}].vatCategoryPercentage", j)], out vatCategoryPercentage); var itemTotalAmountWithoutVat = 0; int.TryParse(formCollection[string.Format("invoiceItemList[{0}].itemTotalAmountWithoutVat", j)], out itemTotalAmountWithoutVat); invoiceItem.lineNumber = i; //Dòng hóa đơn invoiceItem.itemCode = formCollection[string.Format("invoiceItemList[{0}].itemCode", j)]; //Mã hàng hóa invoiceItem.itemName = formCollection[string.Format("invoiceItemList[{0}].itemName", j)]; //Tên hàng hóa invoiceItem.unitName = formCollection[string.Format("invoiceItemList[{0}].unitCode", j)]; ; //Đơn vị tính try { invoiceItem.quantity = int.Parse(formCollection[string.Format("invoiceItemList[{0}].quantity", j)]); //Số lượng invoiceItem.unitPrice = int.Parse(formCollection[string.Format("invoiceItemList[{0}].unitPrice", j)]); } catch (Exception) { // Cho phép nhập thành tiền invoiceItem.quantity = 0; invoiceItem.unitPrice = 0; } //Đơn giá invoiceItem.vatPercentage = vatCategoryPercentage; //Thuế xuất của mặt hàng: -2: không kê khai thuế, -1: không chịu thuế, 0: 0%, 5:5%, 10:10%..... invoiceItem.itemTotalAmountWithoutVat = itemTotalAmountWithoutVat; //Tổng tiền chưa thuế của dòng hóa đơn: = số lượng * đơn giá invoiceData.items.Add(invoiceItem); i++; } invoiceData.invoiceTaxBreakdowns = new List <invoiceTaxBreakdownInfo>(); //Tạo thông tin cho mức thuế xuất 5% var invoiceTaxBreakdownInfo = new invoiceTaxBreakdownInfo(); var vatCatTaxAmt = 0; var vatCatTaxableAmt = 0; var vatPercentage = 0; int.TryParse(formCollection["invoiceTaxBreakdownList[0].vatCategoryPercentage"] + "", out vatPercentage); int.TryParse(formCollection["invoiceTaxBreakdownList[0].vatCatTaxAmt"], out vatCatTaxAmt); int.TryParse(formCollection["invoiceTaxBreakdownList[0].vatCatTaxableAmt"], out vatCatTaxableAmt); if (vatPercentage == 5) { //invoiceData.totalAmountWithoutVAT = vatCatTaxAmt; invoiceTaxBreakdownInfo.vatPercentage = 5; //Mức thuế invoiceTaxBreakdownInfo.vatTaxableAmount = vatCatTaxableAmt; //Tổng tiền trên hóa đơn chịu mức thuế xuất này invoiceTaxBreakdownInfo.vatTaxAmount = vatCatTaxAmt; //Tổng tiền thuế của mức thuế xuất này invoiceData.invoiceTaxBreakdowns.Add(invoiceTaxBreakdownInfo); } else if (vatPercentage == 10) { int.TryParse(formCollection["invoiceTaxBreakdownList[0].vatCatTaxAmt"], out vatCatTaxAmt); int.TryParse(formCollection["invoiceTaxBreakdownList[0].vatCatTaxableAmt"], out vatCatTaxableAmt); //invoiceData.totalAmountWithoutVAT = vatCatTaxAmt; invoiceTaxBreakdownInfo.vatPercentage = 10; //Mức thuế invoiceTaxBreakdownInfo.vatTaxableAmount = vatCatTaxableAmt; //Tổng tiền trên hóa đơn chịu mức thuế xuất này invoiceTaxBreakdownInfo.vatTaxAmount = vatCatTaxAmt; //Tổng tiền thuế của mức thuế xuất này invoiceData.invoiceTaxBreakdowns.Add(invoiceTaxBreakdownInfo); } if (formCollection.AllKeys.Contains("invoiceTaxBreakdownList[1].vatCategoryPercentage")) { var vatPercentage10 = 0; var vatCatTaxAmt1 = 0; var vatCatTaxableAmt1 = 0; int.TryParse(formCollection["invoiceTaxBreakdownList[1].vatCategoryPercentage"] + "", out vatPercentage10); int.TryParse(formCollection["invoiceTaxBreakdownList[1].vatCatTaxAmt"], out vatCatTaxAmt1); int.TryParse(formCollection["invoiceTaxBreakdownList[1].vatCatTaxableAmt"], out vatCatTaxableAmt1); if (vatPercentage10 == 5) { int.TryParse(formCollection["invoiceTaxBreakdownList[1].vatCatTaxAmt"], out vatCatTaxAmt); int.TryParse(formCollection["invoiceTaxBreakdownList[1].vatCatTaxableAmt"], out vatCatTaxableAmt); //invoiceData.totalAmountWithoutVAT = vatCatTaxAmt; invoiceTaxBreakdownInfo.vatPercentage = vatPercentage10; //Mức thuế invoiceTaxBreakdownInfo.vatTaxableAmount = vatCatTaxableAmt1; //Tổng tiền trên hóa đơn chịu mức thuế xuất này invoiceTaxBreakdownInfo.vatTaxAmount = vatCatTaxAmt1; //Tổng tiền thuế của mức thuế xuất này invoiceData.invoiceTaxBreakdowns.Add(invoiceTaxBreakdownInfo); } else if (vatPercentage10 == 10) { int.TryParse(formCollection["invoiceTaxBreakdownList[1].vatCatTaxAmt"], out vatCatTaxAmt1); int.TryParse(formCollection["invoiceTaxBreakdownList[1].vatCatTaxableAmt"], out vatCatTaxableAmt1); //invoiceData.totalAmountWithoutVAT = vatCatTaxAmt; invoiceTaxBreakdownInfo.vatPercentage = vatPercentage10; //Mức thuế invoiceTaxBreakdownInfo.vatTaxableAmount = vatCatTaxableAmt1; //Tổng tiền trên hóa đơn chịu mức thuế xuất này invoiceTaxBreakdownInfo.vatTaxAmount = vatCatTaxAmt1; //Tổng tiền thuế của mức thuế xuất này invoiceData.invoiceTaxBreakdowns.Add(invoiceTaxBreakdownInfo); } } //var vatCatTaxAmt = 0; //int.TryParse(formCollection["invoiceTaxBreakdownList[0].vatCatTaxAmt"], out vatCatTaxAmt); invoiceData.totalAmountWithoutVAT = vatCatTaxAmt; //Tổng tiền không chịu thuế trên toàn hóa đơn var amountForPaymentVnd = 0; int.TryParse(formCollection["amountForPaymentVnd"], out amountForPaymentVnd); invoiceData.totalVATAmount = amountForPaymentVnd; //Tổng tiền thuế trên toàn hóa đơn var totalAmountWithVat = 0; int.TryParse(formCollection["totalAmountWithVat"], out totalAmountWithVat); invoiceData.totalAmountWithVAT = totalAmountWithVat; //Tổng tiền đã bao gồm cả thuế trên toàn hóa đơn invoiceData.totalAmountWithVATInWords = formCollection["totalAmtWithVatInWords"]; //Tổng tiền đã bao gồm cả thuế trên toàn hóa đơn được viết bằng chữ invoice.invoiceData = invoiceData; string xmlInvoice = invoice.Serialize(Encoding.UTF8); var curentTranId = formCollection["tranId"]; if (!string.IsNullOrEmpty(curentTranId)) { //var tran = _transactionSvc.GetById(int.Parse(curentTranId)); //var invoiceFile = tran.InvoiceXML; //var currentInvoice = _invoiceSvc.GetById(tran.InvoiceID); } var fileName = Guid.NewGuid() + ".xml"; var pathFile = Path.Combine(Server.MapPath("~/Content/File"), fileName); XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlInvoice); doc.Save(pathFile); //lưu vào bảng transaction/invoice/invoicedetail var invoices = new Entities.Invoice(); if (invoice.invoiceData.currencyCode != null) { var currencys = _currencySvc.GetByCode(invoice.invoiceData.currencyCode); if (currencys != null && currencys.Any()) { var cus = currencys.First(); invoices.CurrencyID = cus.Id; //invoices.Currency = cus.BankName; } } invoices.InvoiceNote = invoice.invoiceData.invoiceNote; if (formCollection[string.Format("CustomerId")] != null) { invoices.CustomerInvoiceID = int.Parse(formCollection[string.Format("CustomerId")]); } invoices.AccountId = User.GetAccountId(); invoices.InvoiceNumber = invoiceData.invoiceNumber; invoices.Serial = invoiceData.invoiceSeries; invoices.TotalAmountWithVAT = invoiceData.totalAmountWithVAT; invoices.TotalAmountWithoutVAT = invoiceData.totalAmountWithoutVAT; invoices.TotalVATAmount = invoiceData.totalAmountWithVAT; invoices.TemplateCode = formCollection["templateCode"]; var invoiceDetails = new List <InvoiceDetail>(); foreach (var item in invoiceData.items) { var invoiceDetail = new InvoiceDetail(); //invoiceDetail.AdjustmentVatAmount = ""; // invoiceDetail.TotalAmountWithoutVAT = invoiceData.totalAmountWithoutVAT; //invoiceDetail.TotalVATAmount = invoiceData.totalAmountWithVAT; //invoiceDetail.TemplateCode = formCollection["templateCode"]; invoiceDetails.Add(invoiceDetail); } var transaction = new Transaction(); transaction.InvoiceXML = fileName; transaction.TemplateCode = invoices.TemplateCode; transaction.InvoiceSeries = invoices.Serial; int tranId = _invoiceSvc.Create(invoices, transaction); if (releaseId > 0) { var invoiceNums = _invoiceNumberSvc.GetByReleaseIdAnduseStatus(releaseId, 0); if (invoiceNums != null && invoiceNums.FirstOrDefault() != null) { var invoiceNum = invoiceNums.FirstOrDefault(); invoiceNum.UseStatus = 1; invoiceNum.Status = 1; _invoiceNumberSvc.UpdateInvoiceNumbers(invoiceNum); } } return(Json(new ResultInvoice { Flag = true, Message = "Lưu dữ liệu thành công", TransactionId = tranId })); } catch (Exception ex) { return(Json(new ResultInvoice { Flag = true, Message = ex.Message, TransactionId = 0 })); } }
/// <summary> /// Populate Invoice /// </summary> private void populateInvoice() { if (ViewState["invoice"] == null) { m_Invoice = new Entities.Invoice(); } else { m_Invoice = (Entities.Invoice)ViewState["invoice"]; } if (lblInvoiceNo.Text != "To Be Issued ... (This invoice has not yet been saved, add invoice to allocate Invoice No.)") { m_Invoice.InvoiceId = Convert.ToInt32(lblInvoiceNo.Text); } m_Invoice.InvoiceType = eInvoiceType.OneLiner; m_Invoice.InvoiceDetails = rtbTxtReason.Text; m_Invoice.InvoiceDate = rdiInvoiceDate.SelectedDate.Value; Facade.IExchangeRates facER = new Facade.ExchangeRates(); int exchangeRateId = -1; // the txtNetAmount textbox has had its culture set by the client. if (this.txtNETAmount.Culture.LCID != 2057) { exchangeRateId = facER.GetCurrentExchangeRateID(Facade.Culture.GetCurrencySymbol(this.txtNETAmount.Culture.LCID), this.rdiInvoiceDate.SelectedDate.Value); } m_Invoice.ClientInvoiceAmount = Decimal.Parse(txtNETAmount.Text, System.Globalization.NumberStyles.Currency); if (chkPostToExchequer.Checked) { m_Invoice.Posted = true; } else { m_Invoice.Posted = false; } int vatNo = 0; decimal vatRate = 0.00M; //Get VAT Rate and Vat Type Facade.IInvoice facInv = new Facade.Invoice(); eVATType vatType = (eVATType)int.Parse(cboVATType.SelectedValue); facInv.GetVatRateForVatType(vatType, m_Invoice.InvoiceDate, out vatNo, out vatRate); m_Invoice.VatRate = vatRate; m_Invoice.VatNo = vatNo; m_Invoice.AccountCode = lblAccountCode.Text; m_Invoice.NominalCode = cboNominalCode.SelectedValue; // Deleted checked not required until the Invoice's are allowed to be deleted if (chkDelete.Checked) { m_Invoice.ForCancellation = true; } else { m_Invoice.ForCancellation = false; } }
/// <summary> /// Load Invoice /// </summary> private void LoadInvoice() { if (ViewState["invoice"] == null) { Facade.IInvoice facInvoice = new Facade.Invoice(); m_Invoice = facInvoice.GetForInvoiceId(m_InvoiceNo); ViewState["invoice"] = m_Invoice; } else { m_Invoice = (Entities.Invoice)ViewState["invoice"]; } // Load the report with the relevant details if (m_Invoice != null) { lblInvoiceNo.Text = m_Invoice.InvoiceId.ToString(); lblInvoiceNo.ForeColor = Color.Black; lblInvoiceType.Text = m_Invoice.InvoiceType.ToString(); lblDateCreated.Text = m_Invoice.CreatedDate.ToShortDateString(); lblDateCreated.ForeColor = Color.Black; rdiInvoiceDate.SelectedDate = m_Invoice.InvoiceDate; rtbTxtReason.Text = m_Invoice.InvoiceDetails; txtNETAmount.Text = m_Invoice.ClientInvoiceAmount.ToString("N2"); rdiInvoiceDate.Enabled = !m_Invoice.Posted; lblAccountCode.Text = m_Invoice.AccountCode; if (cboNominalCode.FindItemByValue(m_Invoice.NominalCode) != null) { cboNominalCode.FindItemByValue(m_Invoice.NominalCode).Selected = true; } cboNominalCode.Enabled = !m_Invoice.Posted; //cboVATType.SelectedValue = Convert.ToInt32(m_Invoice.VatRate).ToString(); // Load Client Facade.IInvoiceOneLiner facInv = new Facade.Invoice(); DataSet ds = facInv.GetClientForOneLinerInvoiceId(m_Invoice.InvoiceId); cboClient.SelectedValue = ds.Tables[0].Rows[0]["IdentityId"].ToString(); cboClient.Text = ds.Tables[0].Rows[0]["OrganisationName"].ToString(); cboClient.Enabled = false; Facade.IOrganisation facOrganisation = new Facade.Organisation(); Entities.Organisation client = facOrganisation.GetForIdentityId(int.Parse(cboClient.SelectedValue)); int LCID = Convert.ToInt32(ds.Tables[0].Rows[0]["LCID"]); CultureInfo culture = new CultureInfo(LCID); this.txtNETAmount.Culture = culture; if (client != null && (client.IndividualContacts != null && client.IndividualContacts.Count > 0)) { DataSet emailDataSet = this.GetContactDataSet(client.IndividualContacts, eContactType.Email); cboEmail.DataSource = emailDataSet; cboEmail.DataMember = "contactTable"; cboEmail.DataValueField = "ContactDetail"; cboEmail.DataTextField = "ContactDisplay"; cboEmail.DataBind(); if (this.cboEmail.Items.Count > 0) { this.txtEmail.Text = this.cboEmail.Items[0].Value; } } if (m_isUpdate) { if (m_Invoice.ForCancellation) { btnAdd.Visible = false; btnSendToAccounts.Visible = false; chkPostToExchequer.Visible = false; chkDelete.Checked = true; } else { btnAdd.Visible = true; btnSendToAccounts.Visible = true; chkPostToExchequer.Visible = true; chkDelete.Checked = false; } this.Title = "Update Invoice"; //Header1.subTitle = "Please make any changes neccessary."; btnAdd.Text = "Update"; } else { chkPostToExchequer.Visible = true; } chkPostToExchequer.Visible = true; LoadReport(); if (m_Invoice.Posted) { btnAdd.Visible = false; btnSendToAccounts.Visible = false; chkPostToExchequer.Checked = true; pnlInvoiceDeleted.Visible = false; chkDelete.Visible = false; chkPostToExchequer.Checked = true; chkPostToExchequer.Visible = true; txtNETAmount.Enabled = false; rtbTxtReason.Enabled = false; btnSendToAccounts.Visible = false; btnViewInvoice.Visible = false; rdiInvoiceDate.Enabled = false; txtNETAmount.Enabled = false; cboVATType.Enabled = false; } else { btnAdd.Visible = true; btnSendToAccounts.Visible = true; chkPostToExchequer.Checked = false; pnlInvoiceDeleted.Visible = true; chkDelete.Visible = true; } } else if (cboClient.SelectedValue != null) { Facade.IOrganisation facOrganisation = new Facade.Organisation(); Entities.Organisation client = facOrganisation.GetForIdentityId(int.Parse(cboClient.SelectedValue)); if (client != null && (client.IndividualContacts != null && client.IndividualContacts.Count > 0)) { DataSet emailDataSet = this.GetContactDataSet(client.IndividualContacts, eContactType.Email); cboEmail.DataSource = emailDataSet; cboEmail.DataMember = "contactTable"; cboEmail.DataValueField = "ContactDetail"; cboEmail.DataTextField = "ContactDisplay"; cboEmail.DataBind(); if (this.cboEmail.Items.Count > 0) { this.txtEmail.Text = this.cboEmail.Items[0].Value; } } } this.Title = "Update Invoice"; //Header1.subTitle = "Please make any changes neccessary."; btnAdd.Text = "Update"; }