Casos de uso producto

Ahora lo que necesitamos es agregar los productos para continuar con nuestro administrador.
Nos vamos a nuestro proyecto productmarket-core y en src/main/java nos vamos al paquete com.tutosoftware.productmarket.entity creamos la clase llamada Producto y escribimos el siguiente código:
package com.tutosoftware.productmarket.entity;

import java.io.Serializable;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;

@Entity
@Table(name="producto")
public class Producto implements Serializable{
	
private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private long idProducto;
	
	@Column(name="idreferencia")
	private Integer idReferencia;
	
	@Column(name="nombreproducto")
	private String nombreProducto;
	
	@Column(name="codigobarras")
	private String codigoBarras;
	
	@Column(name="descripcion")
	private String descripcion;
	
	@Column(name="cantidad")
	private Integer cantidad;
	
	@Column(name="precio")
	private Double precio;
	
	@Lob @Basic(fetch = FetchType.LAZY)
	@Column(name="imagen")
	private byte[]  imagen;
	
	@Column(name="tipoimagen")
	private String tipoImagen;
	
	@Column(name="unidad")
	private String unidad;

	public long getIdProducto() {
		return idProducto;
	}

	public void setIdProducto(long idProducto) {
		this.idProducto = idProducto;
	}

	public Integer getIdReferencia() {
		return idReferencia;
	}

	public void setIdReferencia(Integer idReferencia) {
		this.idReferencia = idReferencia;
	}

	public String getNombreProducto() {
		return nombreProducto;
	}

	public void setNombreProducto(String nombreProducto) {
		this.nombreProducto = nombreProducto;
	}

	public String getCodigoBarras() {
		return codigoBarras;
	}

	public void setCodigoBarras(String codigoBarras) {
		this.codigoBarras = codigoBarras;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Integer getCantidad() {
		return cantidad;
	}

	public void setCantidad(Integer cantidad) {
		this.cantidad = cantidad;
	}

	public Double getPrecio() {
		return precio;
	}

	public void setPrecio(Double precio) {
		this.precio = precio;
	}

	public byte[] getImagen() {
		return imagen;
	}

	public void setImagen(byte[] imagen) {
		this.imagen = imagen;
	}

	public String getTipoImagen() {
		return tipoImagen;
	}

	public void setTipoImagen(String tipoImagen) {
		this.tipoImagen = tipoImagen;
	}

	public String getUnidad() {
		return unidad;
	}

	public void setUnidad(String unidad) {
		this.unidad = unidad;
	}

}


 

Como vamos a realizar un fileupload a la base de datos, ya que se pretende que suba la imagen a mysql para despues mostrarla en nuestro modulo de venta online creamos en el paquete com.tutosoftware.productmarket.entity la clase ArchivoImagen y escribimos el siguiente código:
package com.tutosoftware.productmarket.entity;

import org.springframework.web.multipart.MultipartFile;

public class ArchivoImagen {
	
	
    MultipartFile file;
	
	private Long idProducto;
	private Integer idReferencia;
	private String nombreProducto;
	private String codigoBarras;
	private String descripcion;
	private Integer cantidad;
	private Double precio;
	private String unidad;
	
	public Long getIdProducto() {
		return idProducto;
	}

	public void setIdProducto(Long idProducto) {
		this.idProducto = idProducto;
	}

	public MultipartFile getFile() {
        return file;
    }
 
    public void setFile(MultipartFile file) {
        this.file = file;
    }

	public Integer getIdReferencia() {
		return idReferencia;
	}

	public void setIdReferencia(Integer idReferencia) {
		this.idReferencia = idReferencia;
	}

	public String getNombreProducto() {
		return nombreProducto;
	}

	public void setNombreProducto(String nombreProducto) {
		this.nombreProducto = nombreProducto;
	}

	public String getCodigoBarras() {
		return codigoBarras;
	}

	public void setCodigoBarras(String codigoBarras) {
		this.codigoBarras = codigoBarras;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Integer getCantidad() {
		return cantidad;
	}

	public void setCantidad(Integer cantidad) {
		this.cantidad = cantidad;
	}

	public Double getPrecio() {
		return precio;
	}

	public void setPrecio(Double precio) {
		this.precio = precio;
	}

	public String getUnidad() {
		return unidad;
	}

	public void setUnidad(String unidad) {
		this.unidad = unidad;
	}


}




 

Ahora en com.tutosoftware.productmarket.dao creamos la interface ProductoDAO y escribimos lo siguiente:
 
  
  package com.tutosoftware.productmarket.dao;

import java.util.List;

import com.tutosoftware.productmarket.entity.Producto;



public interface ProductoDAO {
	
	public long agregarProducto(Producto producto);
	public List<Producto> obtenerProductos();
	public List<Producto> obtenerProductos(String nombreProducto);
	public Producto actualizarProducto(Producto producto);
	public Producto obtenerProducto(long id);
	public void eliminarProducto(long id);

}
  
  
 

Una vez creada nuestra interface nos vamos al paquete com.tutosoftware.productmarket.dao.impl y creamos la clase ProductoDAOImpl y escribimos el siguiente código
 
package com.tutosoftware.productmarket.dao.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.tutosoftware.productmarket.dao.ProductoDAO;
import com.tutosoftware.productmarket.entity.Producto;
import com.tutosoftware.productmarket.util.HibernateUtil;



@Repository
public class ProductoDAOImpl implements ProductoDAO {
	
	
	
	@Autowired
	  private HibernateUtil hibernateUtil;
	 
	 public ProductoDAOImpl(){
		 
	 }
	
	

	@Override
	public long agregarProducto(Producto producto) {
		// TODO Auto-generated method stub
		return (Long) hibernateUtil.create(producto);
	}

	@Override
	public List<Producto> obtenerProductos() {
		// TODO Auto-generated method stub
		return hibernateUtil.fetchAll(Producto.class);
	}

	@Override
	public List<Producto> obtenerProductos(String nombreProducto) {
		// TODO Auto-generated method stub
		String query = "FROM Producto p WHERE p.nombreProducto like '%"+ nombreProducto +"%'";
		return hibernateUtil.fetchAll(query);
	}

	@Override
	public Producto actualizarProducto(Producto producto) {
		// TODO Auto-generated method stub
		return hibernateUtil.update(producto);
	}

	@Override
	public Producto obtenerProducto(long id) {
		// TODO Auto-generated method stub
		return hibernateUtil.fetchById(id,Producto.class);
	}

	@Override
	public void eliminarProducto(long id) {
		// TODO Auto-generated method stub
		Producto producto = new Producto();
		producto.setIdProducto(id);
		hibernateUtil.delete(producto);

	}

}


En com.tutosoftware.productmarket.service creamos la interface ProductoService y escribimos lo siguiente:
 
package com.tutosoftware.productmarket.service;

import java.util.List;

import com.tutosoftware.productmarket.entity.Producto;



public interface ProductoService {
	
	
	public long agregarProducto(Producto producto);
	public List<Producto> obtenerProductos();
	public List<Producto> obtenerProductos(String nombreProducto);
	public Producto actualizarProducto(Producto producto);
	public Producto obtenerProducto(long id);
	public void eliminarProducto(long id);

}



Ahora en el paquete com.tutosoftware.productmarket.service.impl creamos la clase ProductoServiceImpl y escribimos lo siguiente:
 
package com.tutosoftware.productmarket.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.tutosoftware.productmarket.dao.ProductoDAO;
import com.tutosoftware.productmarket.entity.Producto;
import com.tutosoftware.productmarket.service.ProductoService;



@Service
@Transactional
public class ProductoServiceImpl implements ProductoService {
	
	
	@Autowired
	 private ProductoDAO productoDAO;
	
	
	 public ProductoServiceImpl(){
		 
	 }

	@Override
	public long agregarProducto(Producto producto) {
		// TODO Auto-generated method stub
		return productoDAO.agregarProducto(producto);
	}

	@Override
	public List<Producto> obtenerProductos() {
		// TODO Auto-generated method stub
		return productoDAO.obtenerProductos();
	}

	@Override
	public List<Producto> obtenerProductos(String nombreProducto) {
		// TODO Auto-generated method stub
		return productoDAO.obtenerProductos(nombreProducto);
	}

	@Override
	public Producto actualizarProducto(Producto producto) {
		// TODO Auto-generated method stub
		return productoDAO.actualizarProducto(producto);
	}

	@Override
	public Producto obtenerProducto(long id) {
		// TODO Auto-generated method stub
		return productoDAO.obtenerProducto(id);
	}

	@Override
	public void eliminarProducto(long id) {
		// TODO Auto-generated method stub
		productoDAO.eliminarProducto(id);

	}

}



Nuestros archivos en productmarket-core quedarían de la siguiente forma:
java project
Ahora vamos con la vista de nuestros productos.Nos posicionamos sobre el proyecto productmarket-adminen src/main/java en el paquete com.tutosoftware.productmarket.controller creamos la clase ProductoController y escribimos el siguiente código:
 
 package com.tutosoftware.productmarket.controller;

import java.io.IOException;
import java.util.List;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import com.tutosoftware.productmarket.entity.ArchivoImagen;
import com.tutosoftware.productmarket.entity.Producto;
import com.tutosoftware.productmarket.service.ProductoService;



@Controller
public class ProductoController {
	
	
	@Autowired
	private ProductoService productoService;
	
	public ProductoController(){
		
		 
		
	}
	
	
	@RequestMapping("/agregarProducto")
	public  ModelAndView agregarProducto(ModelMap model) {
		
		ArchivoImagen archivoImagen = new ArchivoImagen();
		model.addAttribute("producto", archivoImagen);
		
		return new ModelAndView("agregarProducto");
	}
	
	
	
	@RequestMapping("/guardarProducto")
	public  ModelAndView guardarProducto(ArchivoImagen archivoImagen)throws IOException {
		
		
		agregarProductoBD(archivoImagen);
		
		
		return new ModelAndView("redirect:verProductos.html");
	}
	
	
	private void agregarProductoBD(ArchivoImagen archivoImagen)throws IOException{
		Producto producto = new Producto();
		MultipartFile multipartFile = archivoImagen.getFile();
		producto.setIdReferencia(archivoImagen.getIdReferencia());
		producto.setNombreProducto(archivoImagen.getNombreProducto());
		producto.setCodigoBarras(archivoImagen.getCodigoBarras());
		producto.setDescripcion(archivoImagen.getDescripcion());
		producto.setCantidad(archivoImagen.getCantidad());
		producto.setPrecio(archivoImagen.getPrecio());
		producto.setImagen(multipartFile.getBytes());
		producto.setTipoImagen(multipartFile.getContentType());
		producto.setUnidad(archivoImagen.getUnidad());
		
		
		productoService.agregarProducto(producto);
	}
	
	@RequestMapping("/verProductos")
	public  ModelAndView verProductos() {
		
	
		
	    
	     List<Producto> productoList = productoService.obtenerProductos();
	       
	      
		
		return new ModelAndView("verProductos","productoList",productoList);
	}
	
	
	 @RequestMapping("/buscarProducto")
	    public ModelAndView buscarProducto(@RequestParam("nombreProducto") String nombreProducto) {  
	    	List<Producto> productoList = productoService.obtenerProductos(nombreProducto);
	        return new ModelAndView("verProductos", "productoList",productoList);    	
	    }
	 
	 @RequestMapping("/editarProducto")
		public  ModelAndView verUsuarios(@RequestParam long id,ModelMap model) {
			
		 ArchivoImagen archivoImagen = new ArchivoImagen();
		model.addAttribute("producto", archivoImagen);  
		 
		 
		 
		 Producto producto = null;
			
		 
		     producto= productoService.obtenerProducto(id);
		           
		      
			
			return new ModelAndView("modificarProducto","productoObj",producto);
		}
	 
	 
	 @RequestMapping("/modificarProducto")
	    public  ModelAndView modificarProducto(ArchivoImagen archivoImagen)throws IOException{
		 
		 
		 actualizarProductoBD(archivoImagen);
		 
		 return new ModelAndView("redirect:verProductos.html");
		 
	 }
	 
	 
	 private void actualizarProductoBD(ArchivoImagen archivoImagen)throws IOException{
			Producto producto = new Producto();
			MultipartFile multipartFile = archivoImagen.getFile();
		    System.out.println("Esto es lo que imprime: "+multipartFile.getContentType());
			
		    
		    String tipoArchivo = "application/octet-stream";
		    
		    String tipoArchivoCargado = multipartFile.getContentType();
		    
		    
			if(tipoArchivo.equals(tipoArchivoCargado)){
				
				
               Producto productoImagen=null;
				
				productoImagen= productoService.obtenerProducto(archivoImagen.getIdProducto());
				
				producto.setIdProducto(archivoImagen.getIdProducto());
				producto.setIdReferencia(archivoImagen.getIdReferencia());
				producto.setNombreProducto(archivoImagen.getNombreProducto());
				producto.setCodigoBarras(archivoImagen.getCodigoBarras());
				producto.setDescripcion(archivoImagen.getDescripcion());
				producto.setCantidad(archivoImagen.getCantidad());
				producto.setPrecio(archivoImagen.getPrecio());
				producto.setUnidad(archivoImagen.getUnidad());
				producto.setImagen(productoImagen.getImagen());
				producto.setTipoImagen(productoImagen.getTipoImagen());
				
				
				
				
				
				
				
				
				
			}else{  
				producto.setIdProducto(archivoImagen.getIdProducto());
				producto.setIdReferencia(archivoImagen.getIdReferencia());
				producto.setNombreProducto(archivoImagen.getNombreProducto());
				producto.setCodigoBarras(archivoImagen.getCodigoBarras());
				producto.setDescripcion(archivoImagen.getDescripcion());
				producto.setCantidad(archivoImagen.getCantidad());
				producto.setPrecio(archivoImagen.getPrecio());
				producto.setImagen(multipartFile.getBytes());
				producto.setTipoImagen(multipartFile.getContentType());
				producto.setUnidad(archivoImagen.getUnidad());
				
			}
			
			
		
			
			
			productoService.actualizarProducto(producto);
		}
	 
	 
	 @RequestMapping("/eliminarProducto")
	 public  ModelAndView eliminarUsuario(@RequestParam long id) {
		 
		 productoService.eliminarProducto(id);
		 
		return new ModelAndView("redirect:verProductos.html"); 
	 }
	 
	 
	 @RequestMapping("/imagenProducto")
	  public void imagenProducto(HttpServletRequest request, HttpServletResponse response, Model model,
			  @RequestParam long id)throws IOException{
		 
		 Producto producto = null;
		 
		 producto = productoService.obtenerProducto(id);
		 
		 response.setContentType("image/jpeg, image/jpg, image/png, image/gif");
         response.getOutputStream().write(producto.getImagen());
     
         response.getOutputStream().close();
		 
	 }
	
	


}
 
 

En la parte de la vista hacemos lo siguiente sobre src/main/webapp/WEB-INF/views/ creamos el jsp agregarProducto.jsp no olvidar que anteriormente ya lo declaramos en nuestro archivo tiles.xml ya que esta parte utiliza plantillas o templete. A continuación escribimos lo siguiente:
 
 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:choose>
 <c:when test="${userObj.nombreUsuario != null}">
<h2>Agregar Producto</h2>

<form:form id="productoForm" modelAttribute="producto" enctype="multipart/form-data"  method="post" action="guardarProducto.html" 
cssClass="col s12" >
<table>
<tr>
<td>
 
<form:input  path="idReferencia" id="idReferencia" cssClass="validate"  />  
<label for="idReferencia">Id Referencia(Campo obligatorio)</label>

</td>

</tr>
<tr>
<td>
 
<form:input  path="nombreProducto" id="nombreProducto" cssClass="validate"  />  
<label for="nombreProducto"   >Nombre Producto(Campo obligatorio)</label>

</td>

</tr>

<tr>
<td>
 
<form:input  path="codigoBarras" id="codigoBarras"   />  
<label for="codigoBarras"   >Código de Barras</label>

</td>

</tr>

<tr>
<td>

<form:textarea path="descripcion"  id="descripcion" cssClass="validate" />  
<label for="descripcion"   >Descripción(Campo obligatorio)</label>

</td>

</tr>
<tr>
<td>
 
<form:input  path="cantidad" id="cantidad"   />  
<label for="cantidad"   >Cantidad(Número entero)</label>

</td>

</tr>

<tr>
<td>
 
<form:input  path="precio" id="precio"   />  
<label for="precio"   >Precio</label>

</td>

</tr>
<tr>
<td>
 
 <form:input path="file"   type="file" id="file" />  
<label for="file"   >Agregar imagen producto(menor a 5megas)</label>

</td>

</tr>
<tr>
<td>
 
<form:input  path="unidad" id="unidad"   />  
<label for="unidad"   >Unidad</label>

</td>

</tr>




<tr>
<td>
<button class="btn waves-effect waves-light" type="submit" name="action">guardarProducto
    <i class="material-icons right">send</i>
  </button>

</td>
</tr>

</table>
</form:form>

<script src="js/jquery.validate.js"></script>
<script src="js/additional-methods.js"></script>
<script src="js/messages_es.js"></script>
<script>
$("#productoForm").validate({
    rules: {
      idReferencia: {
    	        required: true,
    	        number: true
    	       },
      nombreProducto: {
        required: true
      },
      descripcion: {
    	           required: true
    	         },
      cantidad: {
          number: true
        },
    	precio: {
    	             number: true
    	           },
        file: {
        	extension: "png|jpe?g|gif"
          }
   },
    submitHandler: function(form) {
    	form.submit();

        //alert("producto enviado");
     }
  });

</script>
</c:when>    
    <c:otherwise>
      <c:redirect  url="salir.html"></c:redirect>  
    </c:otherwise>
</c:choose>
 
 
 

Como se ve en el código la validaciones las realizamos con jquery validation pero es opcional para el programador validar con el java o jquery esto fue para probar si se realiza la validación en jquery aquí dejo la librerías.No olvidar agregarlas en src/main/webapp/js.
Descargar archivos

La parte del código de barras se puede ralizar con un scanner ya que simplemente es una extensión de la computadora ya que automaticamente lee el código de barras sin importar tecnología o framework a utilizar.
El siguiente paso es crear en src/main/webapp/WEB-INF/views/ la vista verProductos.jsp y escribimos el siguiente código:
 
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:choose>
 <c:when test="${userObj.nombreUsuario != null}">
 <c:if test="${empty productoList}">
                No hay productos
            </c:if>
            <c:if test="${not empty productoList}">  
             <form action="buscarProducto.html" >
            		
					   <div class="input-field col s5">
                       <input type='text' name='nombreProducto' id='nombreProducto'/>  
                      <label for="nombreProducto">BuscarProducto</label>
                      </div>
					  
					  <button class="btn waves-effect waves-light" type="submit" name="action">buscar
                    <i class="material-icons right">send</i>
                     </button>
					  
					  
					  
					  
					 
            	</form> 
             
             
             
             
             
             <table class="striped">
                    <thead>
                    <tr>
                        <th>idProducto</th>
                        <th>idReferencia</th>
                        <th>Nombre Producto</th>
                         <th>Código de barras</th>
                         <th>Descripción</th> 
                          <th>Cantidad</th>
                         <th>Precio</th>
                         <th>Imagen</th> 
                         <th>Unidad</th> 
                        <th>Actualizar</th>
                        <th>Eliminar</th>
                    </tr>
                    </thead>
                    <tbody>
                    <c:forEach items="${productoList}" var="pro">
                     
                        
                        <tr>
                         
                            <td><c:out value="${pro.idProducto}"/></td>
                            <td><c:out value="${pro.idReferencia}"/></td>
                            <td><c:out value="${pro.nombreProducto}"/></td>
                            <td><c:out value="${pro.codigoBarras}"/></td>
                            <td><c:out value="${pro.descripcion}"/></td>
                            <td><c:out value="${pro.cantidad}"/></td>
                            <td><c:out value="${pro.precio}"/></td>
                            <td><img src="${pageContext.request.contextPath}/imagenProducto.html?id=${pro.idProducto}" alt="imagen no disponible" height="100" width="100" /></td> 
                             <td><c:out value="${pro.unidad}"/></td>
                            <td><a href="editarProducto.html?id=<c:out value='${pro.idProducto}'/> " 
                            class="waves-effect waves-light btn" >Actualizar</a></td>
                            <td><a href="eliminarProducto.html?id=<c:out value='${pro.idProducto}'/>"
                            class="waves-effect waves-light btn" >Eliminar</a></td>                          
                     
                        </tr>
                      
                    </c:forEach>
                    </tbody>
                </table>
         
            
         
            
       </c:if>
 </c:when>    
    <c:otherwise>
      <c:redirect  url="salir.html"></c:redirect>  
    </c:otherwise>
</c:choose>
 
 
 
 
  

A continuación vamos a crear la vista modificarProducto.jsp y escribimos lo siguiente:
 
 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>


<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:choose>
 <c:when test="${userObj.nombreUsuario != null}">
<h2>Actualizar Producto</h2>

<form:form id="productoForm" modelAttribute="producto" enctype="multipart/form-data"  method="post" action="modificarProducto.html" 
cssClass="col s12" >
<table>
<tr>
<td>
  <form:hidden path="idProducto" value="${productoObj.idProducto}"/>
<form:input  path="idReferencia" id="idReferencia"  value="${productoObj.idReferencia}" cssClass="validate"  />  
<label for="idReferencia">Id Referencia(Campo obligatorio)</label>

</td>

</tr>
<tr>
<td>
 
<form:input  path="nombreProducto" id="nombreProducto" value="${productoObj.nombreProducto}" cssClass="validate"  />  
<label for="nombreProducto"   >Nombre Producto(Campo obligatorio)</label>

</td>

</tr>

<tr>
<td>
 
<form:input  path="codigoBarras" id="codigoBarras" value="${productoObj.codigoBarras}"  />  
<label for="codigoBarras"   >Código de Barras</label>

</td>

</tr>

<tr>
<td>

<form:input  path="descripcion" id="descripcion" value="${productoObj.descripcion}"  />  
<label for="descripcion"   >Descripción(Campo obligatorio)</label>

</td>

</tr>
<tr>
<td>
 
<form:input  path="cantidad" id="cantidad" value="${productoObj.cantidad}"  />  
<label for="cantidad"   >Cantidad(Número entero)</label>

</td>

</tr>

<tr>
<td>
 
<form:input  path="precio" id="precio" value="${productoObj.precio}"  />  
<label for="precio"   >Precio</label>

</td>

</tr>
<tr>
<td>
 <img src="${pageContext.request.contextPath}/imagenProducto.html?id=${productoObj.idProducto}" alt="imagen no disponible" height="100" width="100" />
 <form:input path="file"   type="file" id="file" />  
<label for="file"   >Agregar imagen producto(menor a 5megas)</label>

</td>

</tr>
<tr>
<td>
 
<form:input  path="unidad" id="unidad"  value="${productoObj.unidad}" />  
<label for="unidad"   >Unidad</label>

</td>

</tr>




<tr>
<td>
<button class="btn waves-effect waves-light" type="submit" name="action">Actualizar Producto
    <i class="material-icons right">send</i>
  </button>

</td>
</tr>

</table>
</form:form>

<script src="js/jquery.validate.js"></script>
<script src="js/additional-methods.js"></script>
<script src="js/messages_es.js"></script>
<script>
$("#productoForm").validate({
    rules: {
      idReferencia: {
    	        required: true,
    	        number: true
    	       },
      nombreProducto: {
        required: true
      },
      descripcion: {
    	           required: true
    	         },
      cantidad: {
          number: true
        },
    	precio: {
    	             number: true
    	           },
        file: {
        	extension: "png|jpe?g|gif"
          }
   },
    submitHandler: function(form) {
    	form.submit();

        //alert("producto enviado");
     }
  });

</script>
</c:when>    
    <c:otherwise>
      <c:redirect  url="salir.html"></c:redirect>  
    </c:otherwise>
</c:choose>
 
 
 
 
 

Una vez creado nuestras vistas comenzamos a probar nuestro modulo administrador comenzamos a correr el proyecto.Una vez ya loggueado selecionamos Agregar Producto
java project
Probamos algunas validaciones le damos guardar producto y vemos que se activan.
java project
Ahora comenzamos a capturar nuestro datos y guardamos el producto.
java project
Luego hace un redirect a ver porductos y vemos que se agregado corecctamente el producto.
java project
En caso de que tengamos unos 100 productos registrados podemos buscar el producto con la siguiente accion.En este ejemplo estamos buscando todos tipos de cerveza que tengamos en nuestro inventario.
java project
Este es el resultado que nos arroja.
java project
Ahora vamos a probar la actualización de uno nuestros productos seleccionamos cualquiera de los que esten en ver productos y presionamos actualizar.Aquí cambiamos la descripción y la cantidad de igual manera podemos hasta cambiar la imagen del producto
java project
Por último seria la de eliminar un producto de la lista seleccionamos cualquiera y le damos en eliminar.
Hasta este momento ya tenemos nuestro pequeño inventario ahora vamos modulo de productmarket-ventaonline y queda pendiente la parte de reporte de venta pero este lo vamos a realizar hasta que modulo de venta onlline y caja esten terminados.

Regresar Siguiente