/* * The MIT License * * Copyright 2012 J. David Mendoza <jdmendoza@um.edu.mx>. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package mx.edu.um.mateo.general.web; import mx.edu.um.mateo.general.dao.ClienteDao; import mx.edu.um.mateo.general.dao.EmpresaDao; import mx.edu.um.mateo.general.dao.MigracionDao; import mx.edu.um.mateo.general.dao.OrganizacionDao; import mx.edu.um.mateo.general.dao.ProveedorDao; import mx.edu.um.mateo.general.dao.ReporteDao; import mx.edu.um.mateo.general.dao.RolDao; import mx.edu.um.mateo.general.dao.TipoClienteDao; import mx.edu.um.mateo.general.dao.UsuarioDao; import mx.edu.um.mateo.general.model.Usuario; import mx.edu.um.mateo.general.utils.Ambiente; import mx.edu.um.mateo.inventario.dao.AlmacenDao; import mx.edu.um.mateo.inventario.dao.EntradaDao; import mx.edu.um.mateo.inventario.dao.ProductoDao; import mx.edu.um.mateo.inventario.dao.TipoProductoDao; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; /** * * @author J. David Mendoza <jdmendoza@um.edu.mx> */ @Controller @RequestMapping("/prueba") public class PruebaController { private static final Logger log = LoggerFactory .getLogger(PruebaController.class); @Autowired private OrganizacionDao organizacionDao; @Autowired private RolDao rolDao; @Autowired private UsuarioDao usuarioDao; @Autowired private EmpresaDao empresaDao; @Autowired private ProveedorDao proveedorDao; @Autowired private TipoClienteDao tipoClienteDao; @Autowired private ClienteDao clienteDao; @Autowired private AlmacenDao almacenDao; @Autowired private TipoProductoDao tipoProductoDao; @Autowired private ProductoDao productoDao; @Autowired private EntradaDao entradaDao; @Autowired private ReporteDao reporteDao; @Autowired private SessionFactory sessionFactory; @Autowired private MigracionDao migracionDao; @Autowired private Ambiente ambiente; private Session currentSession() { return sessionFactory.getCurrentSession(); } @RequestMapping public String inicia() { return "/prueba/index"; } @RequestMapping(method = RequestMethod.POST) public String guarda(@RequestParam String username, @RequestParam String password) { Transaction transaction = null; try { transaction = currentSession().beginTransaction(); // reporteDao.inicializa(); // Organizacion organizacion = new Organizacion("UM", "UM", // "Universidad de Montemorelos"); // organizacion = organizacionDao.crea(organizacion); // Rol rol = new Rol("ROLE_ADMIN"); // rol = rolDao.crea(rol); // Usuario usuario = new Usuario( // username, // password, // "Admin", // "User", // username); // Long almacenId = 0l; // actualizaUsuario: // for (Empresa empresa : organizacion.getEmpresas()) { // for (Almacen almacen : empresa.getAlmacenes()) { // almacenId = almacen.getId(); // break actualizaUsuario; // } // } // usuarioDao.crea(usuario, almacenId, new // String[]{rol.getAuthority()}); // rol = new Rol("ROLE_ORG"); // rolDao.crea(rol); // rol = new Rol("ROLE_EMP"); // rolDao.crea(rol); // rol = new Rol("ROLE_USER"); // rolDao.crea(rol); // // Estatus estatus = new Estatus(Constantes.ABIERTA, 100); // currentSession().save(estatus); // estatus = new Estatus(Constantes.PENDIENTE, 200); // currentSession().save(estatus); // estatus = new Estatus(Constantes.CERRADA, 300); // currentSession().save(estatus); // estatus = new Estatus(Constantes.FACTURADA, 400); // currentSession().save(estatus); // estatus = new Estatus(Constantes.CANCELADA, 500); // currentSession().save(estatus); Usuario usuario = usuarioDao.obtiene(username); migracionDao.hazlo(usuario); // reporteDao.inicializa(); // Organizacion organizacion = new Organizacion("UM", "UM", // "Universidad de Montemorelos"); // organizacion = organizacionDao.crea(organizacion); // Rol rol = new Rol("ROLE_ADMIN"); // rol = rolDao.crea(rol); // Usuario usuario = new Usuario( // username, // password, // "Admin", // "User"); // Long almacenId = 0l; // actualizaUsuario: // for (Empresa empresa : organizacion.getEmpresas()) { // for (Almacen almacen : empresa.getAlmacenes()) { // almacenId = almacen.getId(); // break actualizaUsuario; // } // } // usuarioDao.crea(usuario, almacenId, new // String[]{rol.getAuthority()}); // rol = new Rol("ROLE_ORG"); // rolDao.crea(rol); // rol = new Rol("ROLE_EMP"); // rolDao.crea(rol); // rol = new Rol("ROLE_USER"); // rolDao.crea(rol); // // Estatus estatus = new Estatus(Constantes.ABIERTA, 100); // currentSession().save(estatus); // Estatus estatus2 = new Estatus(Constantes.PENDIENTE, 200); // currentSession().save(estatus2); // estatus2 = new Estatus(Constantes.CERRADA, 300); // currentSession().save(estatus2); // estatus2 = new Estatus(Constantes.FACTURADA, 400); // currentSession().save(estatus2); // estatus2 = new Estatus(Constantes.CANCELADA, 500); // currentSession().save(estatus2); // // organizacion = new Organizacion("TEST", "TEST", "TEST"); // organizacionDao.crea(organizacion, usuario); // // Empresa emp = usuario.getEmpresa(); // Almacen alm = usuario.getAlmacen(); // Query query = // currentSession().createQuery("select tp from TipoProducto tp where almacen.id = :almacenId"); // query.setLong("almacenId", alm.getId()); // TipoProducto tp = (TipoProducto) query.uniqueResult(); // // NumberFormat nf = NumberFormat.getInstance(); // nf.setMinimumIntegerDigits(2); // nf.setMaximumFractionDigits(0); // nf.setGroupingUsed(false); // for (int i = 1; i <= 29; i++) { // String numero = nf.format(i); // StringBuilder sb = new StringBuilder(); // sb.append("TST-").append(numero); // StringBuilder sb2 = new StringBuilder(); // sb2.append("TEST-").append(numero); // Empresa empresa = new Empresa(sb.toString(), sb2.toString(), // sb2.toString(), "0000000000" + numero, organizacion); // empresaDao.crea(empresa); // } // // Proveedor prov1 = null; // for (int i = 1; i < 20; i++) { // String numero = nf.format(i); // StringBuilder sb = new StringBuilder(); // sb.append("TEST-").append(numero); // Proveedor proveedor = new Proveedor(sb.toString(), sb.toString(), // "0000000000" + numero, null); // proveedor = proveedorDao.crea(proveedor, usuario); // if (prov1 == null) { // prov1 = proveedor; // } // // TipoCliente tipoCliente = new TipoCliente(sb.toString(), // sb.toString(), new BigDecimal("0.16"), null); // tipoClienteDao.crea(tipoCliente, usuario); // // Cliente cliente = new Cliente(sb.toString(), sb.toString(), // "0000000000" + numero, tipoCliente, null); // clienteDao.crea(cliente, usuario); // // Almacen almacen = new Almacen("TST-" + numero, sb.toString(), // emp); // almacenDao.crea(almacen); // // TipoProducto tipoProducto = new TipoProducto(sb.toString(), // sb.toString(), alm); // tipoProductoDao.crea(tipoProducto); // // Producto producto = new Producto("TST-" + numero, sb.toString(), // sb.toString(), sb.toString(), tp, alm); // productoDao.crea(producto); // } // // Map<String, Object> params = productoDao.lista(null); // int i = 0; // for (Producto producto : (List<Producto>) // params.get("productos")) { // Entrada entrada = new Entrada("TEST" + (++i), "TEST" + i, new // Date(), estatus, prov1, alm); // entrada.setIva(new BigDecimal("16.00")); // entrada.setTotal(new BigDecimal("116.00")); // entrada = entradaDao.crea(entrada, usuario); // LoteEntrada lote = new LoteEntrada(new BigDecimal("10"), new // BigDecimal("10"), producto, entrada); // entradaDao.creaLote(lote); // currentSession().refresh(entrada); // entradaDao.cierra(entrada, usuario); // } transaction.commit(); // } catch (HibernateException | ProductoNoSoportaFraccionException // | NoEstaAbiertaException | NoSePuedeCerrarException | // NoCuadraException e) { } catch (Exception e) { log.error("No se pudo cargar los datos de prueba", e); if (transaction != null) { transaction.rollback(); } throw new RuntimeException( "No se pudieron cargar los datos de prueba", e); } return "redirect:/"; } @RequestMapping("/migracion") public String migracion() { log.debug("Iniciando migracion"); migracionDao.hazlo(ambiente.obtieneUsuario()); log.debug("Regresando a home"); return "redirect:/"; } }