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:
*
* - empresa: Id de la Empresa. [obligatorio]
* - informeProveedor: Id del informe
- * - statusInforme: Estatus del informe. [Si este está presente,
- * se espera que 'statusFactura' también lo esté]
+ * - statusInforme: Estatus del informe. [Si este está
+ * presente, se espera que 'statusFactura' también lo
+ * esté]
* - statusFactura: Estatus de la factura
*
+ *
* @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;
+ }
+
}