POS-28: Invoice vat calculation discount calculation using Javascript ASP.NET MVC | Invoice crud

Part-1: Point of Sale(POS) Inventory Super Shop Management System using ASP.NET MVC Part-2: Point of Sale(POS) Setup template to your project | Super Shop Management System|ASP.NET MVC Part-3: Point of Sale(POS) Database & table analysis | Super Shop Management System|ASP.NET MVC Part-4: Point of Sale(POS) Database Create in SQL Server | Super Shop Management System|ASP.NET MVC Part-5: Point of Sale(POS) Login using AJAX ASP.NET MVC | JQUERY Part-6: Point of Sale(POS) Login and Authorization with Session variables in ASP.NET | JQUERY | AJAX Part-7: Point of Sale(POS) Convert Password to MD5 Hash string in ASP.NET | Encrypt password in ASP.NET MVC C# Part-8: Point of Sale(POS) Role based authentication and authorization in ASP.NET MVC|Redirect to not found page if not authorized|C# Part-9: Point of Sale(POS) Create user & Account management UI UX in ASP.NET MVC Part-10: Point of Sale(POS) User Creation & user registration using ASP.NET MVC | Jquery | Ajax Part-11: Point of Sale(POS) Get user list using ASP.NET MVC | Jquery | Ajax Part-12: Point of Sale(POS) Update user using ASP.NET MVC | Jquery | Ajax Part-13: Inventory and POS Login logout session using ASP.NET | Supershop management system Part-14: Inventory Category CRUD Create,Retrieve,Update,View | POS Category CRUD using ASP.NET JQuery AJAX Part-15: Inventory and POS batch tracking and control table create in SQL Server 2012 Part-16: Inventory Product CRUD List | Point of sale Products Crud using MVC Part-17: Inventory and POS Batch CRUD using MVC JQUERY AJAX | CSharp Part-18: Inventory management and stock control using mvc | Jquery AngularJs Part-19: Inventory & POS Stock edit and validation using AngularJS POS 20: Inventory & POS AngularJS error fix POS-21: Inventory & POS Invoice template setup using Bootstrap POS-22: Invoice Adding input fields & adding rows Dynamically using Javascript | ASP.NET MVC | AngularJs POS-23: Inventory Onclick get selected data & Calculate line total using Javascript ASP.NET MVC JQUERY POS-24: Inventory Invoice Configuration and Calculation using JavaScript AngularJS ASP.NET MVC POS-25: Inventory sale from invoice using ASP.NET MVC | Jquery AngularJS POS-26: Get data using ASP.NET MVC AngularJS JQUERY POS-27: Invoice sales page edit using ASP.NET MVC JQUERY AngularJS POS-28: Invoice vat calculation discount calculation using Javascript ASP.NET MVC | Invoice crud POS-29: Invoice calculate subtotal add row remove row using AngularJS ASP.NET MVC

10/30/2021 12:00:00 AM

Post your any code related problem to

Go end of tutorial for Project Download

Follow the previous video and articles to complete the POS tutorials


  • Change the scope name $scope.SalesList to $scope.InvoiceCart inside the HomeInvoiceListController.js inside the method of GetInvoiceSalesBySalesId
  • Put the below code inside the HomeInvoiceListController.js and call it from GetInvoiceSalesBySalesId() method.
         function GetProducts() {
                .then(function (response) {
                    var data =;
                    $scope.ProductList = data;
  • We will keep selected the product which already purchase in this invoice. Put this below code inside the <option> tag


  • Pull subtotal from table. Given method is highlighted the additional field that we are newly added to this return object.
    public JsonResult GetInvoiceBySalesId(int salesId)
            POS_TutorialEntities db = new POS_TutorialEntities();
            List<Sale> dataList = (from sd in db.SalesDetails.ToList()
                           join s in db.Sales on sd.SalesId equals s.SalesId
                           where sd.SalesId==salesId
                           select new Sale {
                               CustomerPhone = s.CustomerPhone,
                               CustomerAddress = s.CustomerAddress,
                               PaymentMethod = s.PaymentMethod,
                               TotalAmout = s.TotalAmout,
                               SalesDetailId = sd.SalesDetailId,
                               VatParcentage = s.VatParcentage
            return Json(dataList, JsonRequestBehavior.AllowGet);
  • Vat & Discount calculation method will be place inside the HomeInvoiceListController.js and it will be call from GetInvoiceSalesBySalesId when edit button will be click.
$scope.CalculateDiscount = function () {
            $scope.Sale.DiscountAmount = ($scope.Sale.Subtotal * $scope.Sale.DiscountParcentage) / 100;
        $scope.CalculateVat = function () {
            $scope.Sale.VatAmount = (($scope.Sale.Subtotal - $scope.Sale.DiscountAmount) * $scope.Sale.VatParcentage) / 100;
            //$scope.Sale.TotalAmount = ($scope.Sale.Subtotal - $scope.Sale.DiscountAmount) + $scope.Sale.VatAmount;
            //$scope.Sale.TotalAmout = ($scope.Sale.Subtotal - $scope.Sale.DiscountAmount) + $scope.Sale.VatAmount;


  • Run the project and see the output.

Download Project

About Teacher

Reza Karim

Software Engineer

More about him