fixes bug#23996
dev: VALDEVIR qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@110362 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
40b6dcb260
commit
fcade5d279
|
@ -6,6 +6,7 @@ public interface CtrlSerieBPeDAO extends GenericDAO<CtrlSerieBPe, Long> {
|
|||
|
||||
public Boolean gerarSeqSerieBPe(Integer empresaId, String estado, Integer minvalue) throws RuntimeException;
|
||||
public Integer buscarSequencia(Integer empresaId, String estado);
|
||||
public Integer buscarSerieEmb(Integer empresaId, String estado) throws RuntimeException;
|
||||
|
||||
public CtrlSerieBPe buscarPorEmpresaEstado(Integer empresaId, Integer estadoId);
|
||||
|
||||
|
|
|
@ -72,6 +72,33 @@ public class CtrlSerieBPeHibernateDAO extends GenericHibernateDAO<CtrlSerieBPe,
|
|||
return retorno;
|
||||
}
|
||||
|
||||
public Integer buscarSerieEmb(Integer empresaId, String estadoId) throws RuntimeException {
|
||||
|
||||
log.info(String.format("Conferindo sequence empresaId:%s, estado:%s",empresaId,estadoId));
|
||||
|
||||
try {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("select se.serie ");
|
||||
sb.append("from CtrlSerieEmbarcada se ");
|
||||
sb.append("where se.activo = 1 ");
|
||||
sb.append("and se.empresa.empresaId = :empresaId ");
|
||||
sb.append("and se.estado.estadoId = :estadoId ");
|
||||
sb.append(" order by cast(se.serie as integer) DESC ");
|
||||
|
||||
Query qry = getSession().createQuery(sb.toString());
|
||||
qry.setLong("empresaId", empresaId);
|
||||
qry.setString("estadoId", estadoId);
|
||||
qry.setMaxResults(1);
|
||||
Integer serie = Integer.valueOf((String) (qry.uniqueResult() == null ? "1" : qry.uniqueResult()));
|
||||
|
||||
return (serie == 0 ? 1 : serie);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer buscarSequencia(Integer empresaId, String estado) {
|
||||
Integer retorno = null;
|
||||
|
||||
|
@ -121,10 +148,12 @@ public class CtrlSerieBPeHibernateDAO extends GenericHibernateDAO<CtrlSerieBPe,
|
|||
sb.append("SELECT ctrl ");
|
||||
sb.append("FROM CtrlSerieBPe ctrl ");
|
||||
sb.append("WHERE ctrl.activo = 1 AND ctrl.empresa.empresaId = :empresaId AND ctrl.estado.estadoId = :estadoId ");
|
||||
sb.append(" order by cast(ctrl.serie as integer) DESC ");
|
||||
|
||||
Query qr = getSession().createQuery(sb.toString());
|
||||
qr.setInteger("empresaId", empresaId);
|
||||
qr.setInteger("estadoId", estadoId);
|
||||
qr.setMaxResults(1);
|
||||
|
||||
return (CtrlSerieBPe) qr.uniqueResult();
|
||||
}
|
||||
|
|
|
@ -53,10 +53,12 @@ public class ControleSerieEmbarcadaServiceImpl implements ControleSerieEmbarcada
|
|||
// Caso não haja reaproveitamento de série, devo buscar a próxima série disponível na sequência padrão
|
||||
if (serieembarcada == null) {
|
||||
log.info("BuscarSerieEmbarcada :: Reaproveitamento nao disponivel");
|
||||
|
||||
Integer serieVlmax, SerieEmbarcada, serieBpe, serie;
|
||||
CtrlSerieBPe ctrlSerieBpe = ctrlSerieBPeDAO.buscarPorEmpresaEstado(controleSerieEmbarcada.getEmpresa().getEmpresaId(), controleSerieEmbarcada.getEstado().getEstadoId());
|
||||
|
||||
Integer serie = (ctrlSerieBpe == null ? 1 : Integer.valueOf(ctrlSerieBpe.getSerie()) + 1);
|
||||
serieBpe = Integer.valueOf(ctrlSerieBpe.getSerie());
|
||||
SerieEmbarcada = ctrlSerieBPeDAO.buscarSerieEmb(controleSerieEmbarcada.getEmpresa().getEmpresaId(), controleSerieEmbarcada.getEstado().getEstadoId().toString());
|
||||
serieVlmax = (serieBpe < SerieEmbarcada ? SerieEmbarcada : serieBpe);
|
||||
serie = (serieVlmax == null ? 1 : serieVlmax + 1);
|
||||
|
||||
log.info(String.format("BuscarSerieEmbarcada :: Serie em uso [%d]", serie));
|
||||
|
||||
|
|
Loading…
Reference in New Issue