diff --git a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/InformeProveedorDetallesDao.java b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/InformeProveedorDetallesDao.java index 9a2c77b0e..d373254ed 100644 --- a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/InformeProveedorDetallesDao.java +++ b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/InformeProveedorDetallesDao.java @@ -15,22 +15,22 @@ public interface InformeProveedorDetallesDao { /** - * Regresa listado de detalles por encabezado. - * En params espera lo siguiente:
+ * Regresa listado de detalles por encabezado. En params espera lo + * siguiente:
*
    *
  1. empresa: Id de la Empresa. [obligatorio]
  2. *
  3. informeProveedor: Id del informe
  4. - *
  5. statusInforme: Estatus del informe. [Si este está presente, - * se espera que 'statusFactura' también lo esté]
  6. + *
  7. statusInforme: Estatus del informe. [Si este está + * presente, se espera que 'statusFactura' también lo + * esté]
  8. *
  9. statusFactura: Estatus de la factura
  10. *
+ * * @param params - * @return + * @return */ public Map lista(Map params); - - /** * Gets informe's information based on primary key. An * ObjectRetrievalFailureException Runtime Exception is thrown if nothing is @@ -41,6 +41,16 @@ public interface InformeProveedorDetallesDao { */ public InformeProveedorDetalle obtiene(final Long id); + /** + * Gets informe's information based on the name of the files. An + * ObjectRetrievalFailureException Runtime Exception is thrown if nothing is + * found. + * + * @param NombreFactura el nombre del archivo + * @return informe populated informe object + */ + public InformeProveedorDetalle obtiene(final String nombreFactura); + /** * Saves a informe's information * diff --git a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/impl/InformeProveedorDetalleDaoHibernate.java b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/impl/InformeProveedorDetalleDaoHibernate.java index fcabe0c74..1a0564bac 100644 --- a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/impl/InformeProveedorDetalleDaoHibernate.java +++ b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/dao/impl/InformeProveedorDetalleDaoHibernate.java @@ -33,7 +33,9 @@ public class InformeProveedorDetalleDaoHibernate extends BaseDao implements InformeProveedorDetallesDao { /** - * @see mx.edu.um.mateo.contabilidad.facturas.dao.InformeProveedorDetallesDao#lista(Map params) + * @see + * mx.edu.um.mateo.contabilidad.facturas.dao.InformeProveedorDetallesDao#lista(Map params) */ @Override public Map lista(Map params) { @@ -57,20 +59,20 @@ public Map lista(Map params) { if (!params.containsKey("offset")) { params.put("offset", 0); } - + Criteria criteria = currentSession().createCriteria(InformeProveedorDetalle.class) .createAlias("informeProveedor", "ip"); Criteria countCriteria = currentSession().createCriteria(InformeProveedorDetalle.class) .createAlias("informeProveedor", "ip"); - if (params.containsKey("empresa")) { + if (params.containsKey("empresa")) { criteria.createCriteria("empresa").add( Restrictions.idEq(params.get("empresa"))); countCriteria.createCriteria("empresa").add( Restrictions.idEq(params.get("empresa"))); } if (params.containsKey("informeProveedor")) { - criteria.add(Restrictions.eq("ip.id",params.get("informeProveedor"))); + criteria.add(Restrictions.eq("ip.id", params.get("informeProveedor"))); countCriteria.add(Restrictions.eq("ip.id", params.get("informeProveedor"))); } //Estatus del informeProveedor @@ -131,8 +133,6 @@ public Map lista(Map params) { return params; } - - @Override public InformeProveedorDetalle obtiene(final Long id) { InformeProveedorDetalle proveedorDetalle = (InformeProveedorDetalle) currentSession().get(InformeProveedorDetalle.class, id); @@ -143,6 +143,16 @@ public InformeProveedorDetalle obtiene(final Long id) { return proveedorDetalle; } + @Override + public InformeProveedorDetalle obtiene(final String nombreFactura) { + InformeProveedorDetalle proveedorDetalle = (InformeProveedorDetalle) currentSession().get(InformeProveedorDetalle.class, nombreFactura); + if (proveedorDetalle == null) { + log.warn("uh oh, Informe Empleado Detalle with id '" + nombreFactura + "' not found..."); + throw new ObjectRetrievalFailureException(InformeProveedorDetalle.class, nombreFactura); + } + return proveedorDetalle; + } + @Override public void crea(final InformeProveedorDetalle proveedorDetalle, Usuario usuario) { Session session = currentSession(); diff --git a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/InformeProveedorDetalleManager.java b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/InformeProveedorDetalleManager.java index 89956f31a..5f903ec99 100644 --- a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/InformeProveedorDetalleManager.java +++ b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/InformeProveedorDetalleManager.java @@ -45,6 +45,14 @@ public interface InformeProveedorDetalleManager { */ public InformeProveedorDetalle obtiene(final Long id); + /** + * Obtiene una InformeProveedor + * + * @param id + * @return + */ + public InformeProveedorDetalle obtiene(String nombreFactura); + /** * graba informacion sobre un proveedor * diff --git a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/impl/InformeProveedorDetalleManagerImpl.java b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/impl/InformeProveedorDetalleManagerImpl.java index 62657b711..d4189adc6 100644 --- a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/impl/InformeProveedorDetalleManagerImpl.java +++ b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/service/impl/InformeProveedorDetalleManagerImpl.java @@ -35,18 +35,18 @@ @Transactional @Service public class InformeProveedorDetalleManagerImpl extends BaseManager implements InformeProveedorDetalleManager { - + @Autowired private InformeProveedorDetallesDao dao; @Autowired private ContrareciboManager contrareciboManager; - + @Override public Map lista(Map params) { params.put("statusFactura", Constants.STATUS_ACTIVO); return dao.lista(params); } - + @Override public Map revisar(Map params) { //Agregamos al params el estatus de finalizado @@ -54,34 +54,39 @@ public Map revisar(Map params) { params.put("statusFactura", Constants.STATUS_ACTIVO); return dao.lista(params); } - + @Override public Map contrarecibo(Map params) { return dao.lista(params); } - + @Override public InformeProveedorDetalle obtiene(final Long id) { return dao.obtiene(new Long(id)); } - + + @Override + public InformeProveedorDetalle obtiene(final String nombreFactura) { + return dao.obtiene(nombreFactura); + } + @Override public void graba(InformeProveedorDetalle proveedorDetalle, Usuario usuario) { dao.crea(proveedorDetalle, usuario); } - + @Override public void actualiza(InformeProveedorDetalle proveedorDetalle, Usuario usuario) { dao.actualiza(proveedorDetalle, usuario); } - + @Override public String elimina(final Long id) { InformeProveedorDetalle proveedorDetalle = dao.obtiene(id); dao.elimina(new Long(id)); return proveedorDetalle.getNombreProveedor(); } - + @Override public Contrarecibo autorizar(List ids, Usuario usuario) throws Exception { String cuentaCheque; @@ -93,7 +98,7 @@ public Contrarecibo autorizar(List ids, Usuario usuario) throws Exception { contrarecibo.setStatus("A"); contrarecibo.setFechaAlta(new Date()); contrarecibo.setUsuarioAlta(usuario); - + String id = (String) ids.get(ids.size() - 1); InformeProveedorDetalle detalle = dao.obtiene(Long.valueOf(id)); ProveedorFacturas proveedorFacturas = detalle.getInformeProveedor().getProveedorFacturas(); @@ -148,7 +153,7 @@ public Contrarecibo autorizar(List ids, Usuario usuario) throws Exception { contrareciboManager.graba(contrarecibo, usuario); return contrarecibo; } - + @Override public void rechazar(List ids, Usuario usuario) throws Exception { String proveedor; @@ -168,7 +173,8 @@ public void rechazar(List ids, Usuario usuario) throws Exception { detalle2.setStatus(Constantes.STATUS_RECHAZADO); } } - @Override + + @Override public void crea(InformeProveedorDetalle detalle, Usuario usuario) throws AutorizacionCCPlInvalidoException { graba(detalle, usuario); } diff --git a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/web/InformeProveedorDetalleController.java b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/web/InformeProveedorDetalleController.java index e164eb54f..be3adb680 100644 --- a/src/main/java/mx/edu/um/mateo/contabilidad/facturas/web/InformeProveedorDetalleController.java +++ b/src/main/java/mx/edu/um/mateo/contabilidad/facturas/web/InformeProveedorDetalleController.java @@ -6,11 +6,13 @@ import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.sql.Blob; -import java.sql.SQLException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -45,11 +47,8 @@ import mx.edu.um.mateo.rh.model.Empleado; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; -import org.hibernate.Hibernate; -import org.hibernate.SessionFactory; import org.hibernate.exception.ConstraintViolationException; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; @@ -1120,4 +1119,24 @@ public String eliminaContrarecibo(@PathVariable Long id, Model modelo) { return "redirect:" + Constantes.PATH_INFORMEPROVEEDOR_DETALLE_CONTRARECIBOS; } + + @RequestMapping("/asignarFacturas") + public String asignarArchivos() throws FileNotFoundException, IOException { + String path = "/home/facturas/2014/06/19/"; + File dir = new File(path); + String[] ficheros = dir.list(); + for (String nombreArchivo : ficheros) { + InformeProveedorDetalle detalle = manager.obtiene(nombreArchivo); + Path hubicacion = Paths.get("path/to/file"); + byte[] bytes = Files.readAllBytes(hubicacion); + if (nombreArchivo.contains(".pdf")) { + detalle.setPdfFile(bytes); + } + if (nombreArchivo.contains(".xml")) { + detalle.setXmlFile(bytes); + } + } + return "redirect:" + Constantes.PATH_INFORMEPROVEEDOR_DETALLE_CONTRARECIBOS; + } + }