Package com.finiac.controller

Source Code of com.finiac.controller.PointOfSaleController

package com.finiac.controller;



import java.util.Calendar;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.ui.ModelMap;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import com.finiac.dao.BillDAO;
import com.finiac.dao.PartialPaymentDAO;
import com.finiac.dao.ProductDAO;
import com.finiac.dao.SalesDAO;
import com.finiac.dao.StockAlertSettingsDAO;
import com.finiac.dao.StudentDAO;

import com.finiac.model.Bill;
import com.finiac.model.PartialPayment;
import com.finiac.model.Product;
import com.finiac.model.Sales;
import com.finiac.model.StockAlertSettings;
import com.finiac.model.Student;


public class PointOfSaleController extends MultiActionController {

  SalesDAO salesDAO;
  ProductDAO productDAO;
  BillDAO billDAO;
  PartialPaymentDAO partialPaymentDAO;
  StudentDAO studentDAO;
  StockAlertSettingsDAO stockAlertSettingsDAO;
 
  public void setStockAlertSettingsDAO(StockAlertSettingsDAO stockAlertSettingsDAO) {
    this.stockAlertSettingsDAO = stockAlertSettingsDAO;
  }

  public void setStudentDAO(StudentDAO studentDAO) {
    this.studentDAO = studentDAO;
  }

  public void setPartialPaymentDAO(PartialPaymentDAO partialPaymentDAO) {
    this.partialPaymentDAO = partialPaymentDAO;
  }

  public void setBillDAO(BillDAO billDAO) {
    this.billDAO = billDAO;
  }

  public void setSalesDAO(SalesDAO salesDAO) {
    this.salesDAO = salesDAO;
  }
 
  public void setProductDAO(ProductDAO productDAO) {
    this.productDAO = productDAO;
  }
 
  public ModelAndView createNewBill(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
  //  final DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        final Calendar c = Calendar.getInstance();
        long billId;
        int month;
        Bill bill1 = new Bill();
        Sales sales= new Sales();
        String dateInFormat;
        month=c.get(Calendar.MONTH)+1;
        if(month<10)
          dateInFormat="0"+month+"/";
        else
          dateInFormat=month+"/";
        if(c.get(Calendar.DAY_OF_MONTH)<10) // value of month starts fro        
          dateInFormat+="0"+c.get(Calendar.DAY_OF_MONTH)+"/";
        else
          dateInFormat+=c.get(Calendar.DAY_OF_MONTH)+"/";
       
      dateInFormat+= c.get(Calendar.YEAR);
      if(request.getSession().getAttribute("billId")!=null)
      {
        float amount=0;
        billId=Long.parseLong(request.getSession().getAttribute("billId").toString());
        System.out.println("control in " +billId);
        List<Sales> salesList= salesDAO.selectByBillId(billId);
        for(int i=0;i<salesList.size();i++)
      {
        sales = salesList.get(i);
        amount+=sales.getTotal();
     
        bill1=billDAO.selectBill(billId);
        bill1.setAmount(amount);
        billDAO.updateBill(bill1);
      }
    Bill bill= new Bill(0, dateInFormat);
    billId= billDAO.createBill(bill);
    request.getSession().setAttribute("billId", billId);
    return new ModelAndView("redirect:listBill.htm");
  }
  public ModelAndView newBill(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    float qtySold,total,price;
    int productId;
    long billId;
    Product product = new Product();
    try{
      qtySold=Float.parseFloat(request.getParameter("qtySold"));
      price=Float.parseFloat(request.getParameter("price"));
      productId=Integer.parseInt(request.getParameter("productId"));
    }catch(NullPointerException e){
      qtySold=0;
      price=0;
      productId=0;
      System.out.println("Null pointer eexception");
    }
   
    total=qtySold*price;
    List<Product> productList= productDAO.selectById(productId);
    for(int i=0;i<productList.size();i++)
    {
      product = productList.get(i);
    }
    float temp= product.getQtyAvail();
    if(qtySold == 0)
      return new ModelAndView("redirect:listBill.htm?noQty=true");
    if(temp<qtySold || temp == 0)
    {
      return new ModelAndView("redirect:listBill.htm?noStock="+(temp-qtySold));
      
    }
    else
    {
      product.setQtyAvail(temp-qtySold);
      productDAO.updateProduct(product);
      StockAlertSettings stockAlertLimit;
      String stockAlertString="";
      try{
         stockAlertLimit = stockAlertSettingsDAO.getSettings();
      }catch (NullPointerException e) {
        StockAlertSettings settings= new StockAlertSettings();
        settings.setVariable("min_qty");
        settings.setValue("10");
        stockAlertLimit = stockAlertSettingsDAO.getSettings();
      }
        if(product.getQtyAvail()< Float.parseFloat(stockAlertLimit.getValue()))
          stockAlertString="stockAlert="+temp;   
      billId= Long.parseLong(request.getSession().getAttribute("billId").toString());
      Bill bill = new Bill();
      bill= billDAO.selectBill(billId);
      Sales sales= new Sales(product, qtySold, total,bill ,1); //Sales(Product productId, float qtySold, float total, long billId , int isActive)
      salesDAO.newSalesEntry(sales)
      return new ModelAndView("redirect:listBill.htm?"+stockAlertString);
    }

   
  }
 
  public ModelAndView listBill(HttpServletRequest request, HttpServletResponse response)throws Exception
 
    long billId;
    billId= Long.parseLong(request.getSession().getAttribute("billId").toString());
    ModelMap modelMap = new ModelMap();
    modelMap.addAttribute("items", salesDAO.getSalesEntries(billId));
    modelMap.addAttribute("bill", new Sales());
    return new ModelAndView("newBill",modelMap);
  }
 
  public ModelAndView stockAlertPage(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    StockAlertSettings stockAlert = new StockAlertSettings();
    stockAlert = stockAlertSettingsDAO.getSettings();
    return new ModelAndView("stockAlertSettings", "settings", stockAlert);
  }
  public ModelAndView updateStockAlertSettings(HttpServletRequest request, HttpServletResponse response, StockAlertSettings settings)throws Exception
  {
    stockAlertSettingsDAO.updateSettings(settings);
    return new ModelAndView("redirect:stockAlertPage.htm?success=yes");
  }
 
  public ModelAndView autoComplete(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    String text=request.getParameter("queryString");
    ModelMap modelMap = new ModelMap();
    modelMap.addAttribute("productList",productDAO.autoCom(text));
    modelMap.addAttribute("product", new Product());
    return new ModelAndView("autoCompleteProducts",modelMap);
   
  }
 
  public ModelAndView deleteSalesEntry(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    int id=Integer.parseInt(request.getParameter("id"));
    float qtySold,qtyAvail;
    Product productId;
    Sales sales= new Sales();
    List<Sales> salesList= salesDAO.selectById(id);
    for(int i=0;i<salesList.size();i++)
    {
      sales = salesList.get(i);
    }
    sales.setIsActive(0);
    qtySold = sales.getQtySold();
    productId=sales.getProductId();
    qtyAvail=productId.getQtyAvail();
    productId.setQtyAvail(qtyAvail+qtySold);
    productDAO.updateProduct(productId);
    salesDAO.updateSalesEntry(sales);
    return new ModelAndView("redirect:listBill.htm");
  }
  public ModelAndView viewPrevBill(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    ModelMap modelMap = new ModelMap();
    if(request.getParameter("billNo") !=null)
    {
      long billId=Long.parseLong(request.getParameter("billNo"));
      System.out.println(billId);
      modelMap.addAttribute("items", salesDAO.selectByBillId(billId));
    }
   
    modelMap.addAttribute("bill", new Sales());
    return new ModelAndView("prevEntry",modelMap);
  }
  public ModelAndView lastEntry(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    long billId= billDAO.lastBillId();
    return new ModelAndView("redirect:viewPrevBill.htm?billNo="+billId);
  }
  public ModelAndView autoComStudent(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    long admissionNo= Long.parseLong(request.getParameter("adNo"));
    Student student = new Student();
    student= studentDAO.selectByAdmissionNo(admissionNo);
    return new ModelAndView("autoCompleteStudent", "student", student);
  }
  public ModelAndView listPartialPay(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    if(request.getSession().getAttribute("billId")!=null// to update total field of bill table of request is comming
      {    System.out.println("control in ");                       // from add new list;
        float amt=0;
        long billId;
        Sales sales= new Sales();
        Bill bill1= new Bill();
        billId=Long.parseLong(request.getSession().getAttribute("billId").toString());
        System.out.println("control in " +billId);
        List<Sales> salesList= salesDAO.selectByBillId(billId);
        for(int i=0;i<salesList.size();i++)
      {
        sales = salesList.get(i);
        amt+=sales.getTotal();
     
        bill1=billDAO.selectBill(billId);
        bill1.setAmount(amt);
        billDAO.updateBill(bill1);
      }
    ModelMap modelMap = new ModelMap();
    modelMap.addAttribute("items", partialPaymentDAO.listAll());
    modelMap.addAttribute("partialPay", new PartialPayment());
    return new ModelAndView("partialPayment",modelMap);
  }
  public ModelAndView addPartialPay(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    long billNo =Long.parseLong(request.getParameter("billNo"));
    long admissionNo=Long.parseLong(request.getParameter("admissionNo"));
    float amount = Long.parseLong(request.getParameter("amount"));
    float balanceAmt;
    Bill bill= new Bill();
    Student student= new Student();
    bill=billDAO.selectBill(billNo);
    student=studentDAO.selectByAdmissionNo(admissionNo);
    balanceAmt=bill.getAmount()-amount;
    PartialPayment pay = new PartialPayment(student, bill, balanceAmt);
    partialPaymentDAO.addDetails(pay);
    return new ModelAndView("redirect:listPartialPay.htm");
  }
  public ModelAndView updatePartialPayPage(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    long id=Long.parseLong(request.getParameter("id"));
    PartialPayment partialPay = new PartialPayment();
    partialPay= partialPaymentDAO.selectById(id);
    if(request.getParameter("from").equals("search"))
      request.getSession().setAttribute("from",partialPay.getStudentId().getId());
    else
      request.getSession().setAttribute("from","main");
    return new ModelAndView("updatePartialPay", "partialPay", partialPay);
  }
  public ModelAndView updatePartialPay(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    float newAmount = Float.parseFloat(request.getParameter("newAmount"));
    long id=Long.parseLong(request.getParameter("partialPayId"));
    PartialPayment partialPay = new PartialPayment();
    partialPay= partialPaymentDAO.selectById(id);
    if(partialPay.getAmount()> newAmount)
      partialPay.setAmount(partialPay.getAmount()-newAmount);
    partialPaymentDAO.addDetails(partialPay);
    if(partialPay.getAmount()== newAmount)
      partialPaymentDAO.deletePartialPay(id);
    if(request.getSession().getAttribute("from").equals("main"))
      return new ModelAndView("redirect:listPartialPay.htm");
    return new ModelAndView("redirect:searchPartialPay.htm?studentId="+request.getSession().getAttribute("from"));
  }
  public ModelAndView deletePartialPay(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    long id=Long.parseLong(request.getParameter("id"));
    partialPaymentDAO.deletePartialPay(id);
    return new ModelAndView();
  }
  public ModelAndView searchPartialPay(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    long studentId;
    if(request.getParameter("studentId")==null)
      studentId=0;
    else
      studentId=Long.parseLong(request.getParameter("studentId"));
    ModelMap modelMap = new ModelMap();
    modelMap.addAttribute("items", partialPaymentDAO.selectByStudent(studentId));
    modelMap.addAttribute("partialPay", new PartialPayment());
    return new ModelAndView("searchPartialPay",modelMap);
   
  }
  public ModelAndView printBill(HttpServletRequest request, HttpServletResponse response)throws Exception
  {
    long id=Long.parseLong(request.getParameter("billNo"));
    ModelMap modelMap = new ModelMap();
    modelMap.addAttribute("salesList", salesDAO.selectByBillId(id));
    modelMap.addAttribute("bill", billDAO.selectBill(id));
 
    return new ModelAndView("printBill", modelMap);
  }
}
TOP

Related Classes of com.finiac.controller.PointOfSaleController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.