co.edu.unal.arqdsoft.presentacion.servlet.ServletVentas.java Source code

Java tutorial

Introduction

Here is the source code for co.edu.unal.arqdsoft.presentacion.servlet.ServletVentas.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.edu.unal.arqdsoft.presentacion.servlet;

import co.edu.unal.arqdsoft.control.*;
import co.edu.unal.arqdsoft.entidad.*;
import co.edu.unal.arqdsoft.presentacion.Contenido;
import co.edu.unal.arqdsoft.presentacion.JSON;
import co.edu.unal.arqdsoft.presentacion.Respuesta;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;

/**
 *
 * @author dmlr
 */
@WebServlet(name = "ServletVentas", urlPatterns = { "/ventas" })
public class ServletVentas extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            JSONObject obj = JSON.toObject(request);
            Respuesta r;
            if (obj.get("accion").equals("getCliente")) {
                r = getCliente(obj);
            } else if (obj.get("accion").equals("setVenta")) {
                r = setVenta(obj);
            } else {
                r = new Respuesta("Error de comunicacin", new Contenido());
            }
            response.setContentType("application/json;charset=UTF-8");
            try (PrintWriter out = response.getWriter()) {
                out.write(r.toJSON());
            } catch (Exception ex) {
                Logger.getLogger(ServletProductos.class.getName()).log(Level.SEVERE, null, ex);
            } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        } catch (Exception ex) {
            Logger.getLogger(ServletProductos.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Error con el request, no es valido:" + ex);

            response.setContentType("application/json;charset=UTF-8");
            try (PrintWriter out = response.getWriter()) {
                out.write(new Respuesta("Error de comunicacin", new Contenido()).toJSON());
            } catch (Exception ex1) {
                Logger.getLogger(ServletProductos.class.getName()).log(Level.SEVERE, null, ex1);
            } //</editor-fold>
        }

    }

    private Respuesta getCliente(JSONObject obj) {
        String error = "Problemas con la comunicacin";
        try {
            int idCliente = Integer.parseInt(obj.get("datos").toString());
            Cliente cliente = ControlVentas.getcliente(idCliente);

            /*TEST*/
            //Cliente p = new Cliente(0, "Telefono", "muy comunicativo", null, null);
            /*TEST FIN*/
            if (cliente != null) {
                JSONObject t = new JSONObject();
                t.put("nombre", cliente.getNombre());
                t.put("id", cliente.getId());
                t.put("informacion", cliente.getInformacion());
                return new Respuesta("", new Contenido(t, ""));
            } else {
                error = "No existe el cliente";//ERROR de SEGURIDAD
                throw new SecurityException(obj.get("datos").toString());
            }
        } catch (Exception ex) {
            Logger.getLogger(ServletProductos.class.getName()).log(Level.SEVERE, null, ex);
            return new Respuesta(error, new Contenido());
        }
    }

    private Respuesta setVenta(JSONObject ventaJson) {
        String error = "Problemas con la comunicacin";
        try {
            ventaJson = (JSONObject) JSONValue.parse(ventaJson.get("datos").toString());

            int idEmpleado = Integer.parseInt(ventaJson.get("empleado").toString());
            int idPlan = Integer.parseInt(ventaJson.get("plan").toString());
            String direccionVenta = ventaJson.get("dirInstal").toString();
            int idCliente = 0;
            String nombreCliente = "";
            String informacionCliente = "";
            try {
                JSONObject clienteJson = (JSONObject) JSONValue.parse(ventaJson.get("cliente").toString());
                idCliente = Integer.parseInt(clienteJson.get("id").toString());
                nombreCliente = clienteJson.get("nombre").toString();
                informacionCliente = clienteJson.get("informacion").toString();
            } catch (Exception e) {
                error = "Problemas con el cliente";
            }
            boolean respuesta = ControlVentas.setVenta(idEmpleado, idCliente, nombreCliente, informacionCliente,
                    idPlan, direccionVenta);
            /*TEST*/
            //        respuesta = true;
            //        respuesta = false;
            /*TEST FIN*/

            if (respuesta) {
                //                t.put("nombre", p.getCliente().getNombre());
                //                t.put("id", p.getId());
                //                t.put("informacion", p.getCliente().getInformacion());
                //                t.put("empleado", p.getVendedor().getId());
                //                t.put("plan", p.getPlan());
                //                t.put("dirInstal", p.getDireccionInstalacion());
                return new Respuesta("", new Contenido(null, "Venta realizada exitosamente"));
            } else {
                error = "No se realiz la venta";
                throw new Exception();
            }
        } catch (Exception ex) {
            Logger.getLogger(ServletProductos.class.getName()).log(Level.SEVERE, null, ex);
            return new Respuesta(error, new Contenido());
        }
    }

    /**
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
}