Erro na transferencia de estoque fixes bug#Al-3998

master
fabio.fbarreto 2024-03-15 00:56:36 -03:00
parent eb547c38cf
commit a5ed36e1b0
9 changed files with 67 additions and 18 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ModelWeb</artifactId> <artifactId>ModelWeb</artifactId>
<version>1.41.2</version> <version>1.41.3</version>
<distributionManagement> <distributionManagement>
<repository> <repository>

View File

@ -4,6 +4,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Caja; import com.rjconsultores.ventaboletos.entidad.Caja;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
@ -36,4 +37,6 @@ public interface CajaDAO {
public List<RelatorioVendaCartaoCashMonitorVO> buscarVendaCartaoCashMonitor(Date dataIncial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta); public List<RelatorioVendaCartaoCashMonitorVO> buscarVendaCartaoCashMonitor(Date dataIncial, Date dataFinal, Empresa empresa, PuntoVenta puntoVenta);
public String validarEstoqueUtilizado(Aidf aidf, String folioInicial, String folioFinal);
} }

View File

@ -23,7 +23,7 @@ public interface DetAbastoBoletoDAO extends GenericDAO<DetAbastoBoleto, Integer>
public List<Object> buscabDetAbastoBoletoToVerifyIfAidfCanBeEditable(com.rjconsultores.ventaboletos.entidad.Aidf aidf); public List<Object> buscabDetAbastoBoletoToVerifyIfAidfCanBeEditable(com.rjconsultores.ventaboletos.entidad.Aidf aidf);
public DetAbastoBoleto buscarPorAidf(Long aidfId, String folioInicial, String folioFinal); public DetAbastoBoleto buscarPorAidf(Long aidfId, Integer puntoVenta, String folioInicial, String folioFinal);
public List<Aidf> buscarAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta origem); public List<Aidf> buscarAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta origem);

View File

@ -30,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.CajaDAO; import com.rjconsultores.ventaboletos.dao.CajaDAO;
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Caja; import com.rjconsultores.ventaboletos.entidad.Caja;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Marca;
@ -703,4 +704,20 @@ public class CajaHibernateDAO extends GenericHibernateDAO<Object, Long> implemen
return query.list(); return query.list();
} }
@Override
public String validarEstoqueUtilizado(Aidf aidf, String folioInicial, String folioFinal) {
StringBuilder sql = new StringBuilder();
sql.append(" SELECT coalesce(min( numfoliosistema), '0') ");
sql.append(" FROM caja ");
sql.append(" where activo = 1 ");
sql.append(" and numseriepreimpresa = :serie ");
sql.append(" and numfoliosistema between :folioInicial and :folioFinal ");
SQLQuery query = getSession().createSQLQuery(sql.toString());
query.setString("serie", aidf.getSerie());
query.setString("folioInicial", folioInicial);
query.setString("folioFinal", folioFinal);
return (String)query.uniqueResult();
}
} }

View File

@ -130,12 +130,32 @@ public class DetAbastoBoletoHibernateDAO extends GenericHibernateDAO<DetAbastoBo
} }
@Override @Override
public DetAbastoBoleto buscarPorAidf(Long aidfId, String folioInicial, String folioFinal) { public DetAbastoBoleto buscarPorAidf(Long aidfId, Integer puntoVenta, String folioInicial, String folioFinal) {
List<DetAbastoBoleto> detAbastoBoletos = findByCriteria(
Restrictions.eq("aidf.aidfId", aidfId),
Restrictions.sqlRestriction("cast(numfolioinicial as integer) <= "+folioInicial), StringBuilder qs = new StringBuilder();
Restrictions.sqlRestriction("cast(numfoliofinal as integer) >= "+folioFinal), qs.append(" from DetAbastoBoleto det ");
Restrictions.eq("activo", Boolean.TRUE)); qs.append(" where det.activo = 1 ");
qs.append(" and det.abastoBoleto.puntoventa.puntoventaId = :puntoventaId ");
qs.append(" and det.aidf.aidfId = :aidfId ");
qs.append(" and cast(det.numfolioinicial as integer) <= :folioInicial ");
qs.append(" and cast(det.numfoliofinal as integer) >= :folioFinal ");
qs.append(" order by detabastoboletoId ");
Query query = getSession().createQuery(qs.toString());
query.setInteger("puntoventaId", puntoVenta);
query.setLong("aidfId", aidfId);
query.setString("folioInicial", folioInicial);
query.setString("folioFinal", folioFinal);
query.setFetchSize(1);
List<DetAbastoBoleto> detAbastoBoletos = query.list();
if( detAbastoBoletos.isEmpty() ) {
return null;
}
return detAbastoBoletos.get(0); return detAbastoBoletos.get(0);
} }

View File

@ -20,9 +20,9 @@ public interface DetAbastoBoletoService extends GenericService<DetAbastoBoleto,
public List<Object> buscabDetAbastoBoletoToVerifyIfAidfCanBeEditable(Aidf Aidf); public List<Object> buscabDetAbastoBoletoToVerifyIfAidfCanBeEditable(Aidf Aidf);
public DetAbastoBoleto buscarPorAidf(Long aidfId, String folioInicial, String folioFinal); public DetAbastoBoleto buscarPorAidf(Long aidfId, Integer puntoVentaId, String folioInicial, String folioFinal);
public DetAbastoBoleto movimentaDetAbasto(Aidf aidf, AbastoBoleto abasto, String folioInicial, String folioFinal) throws BusinessException; public DetAbastoBoleto movimentaDetAbasto(DetAbastoBoleto detAbasto, AbastoBoleto abasto, String folioInicial, String folioFinal) throws BusinessException;
public List<Aidf> buscarAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta origem); public List<Aidf> buscarAidfsPorEmpresaAgencia(Empresa empresa, PuntoVenta origem);
} }

View File

@ -29,5 +29,6 @@ public interface MovimentacionBilhetesService {
public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String numSerie, String formInicial, String formFinal, TipoMovimentacion tipoMovimentacion); public void realizaMovimentacionBilhetes(PuntoVenta puntoVentaBilhetes, Estacion origem, Estacion destino, String numSerie, String formInicial, String formFinal, TipoMovimentacion tipoMovimentacion);
public List<String> buscarSeriesBilhetesPorEstacion(Estacion estacion); public List<String> buscarSeriesBilhetesPorEstacion(Estacion estacion);
public String validarEstoqueUtilizado(Aidf aidf, String folioInicial, String folioFinal);
} }

View File

@ -98,15 +98,13 @@ public class DetAbastoBoletoServiceImpl implements DetAbastoBoletoService {
@Override @Override
public DetAbastoBoleto movimentaDetAbasto( public DetAbastoBoleto movimentaDetAbasto(
Aidf aidf, DetAbastoBoleto detAbasto,
AbastoBoleto abasto, AbastoBoleto abasto,
String folioInicial, String folioInicial,
String folioFinal) throws BusinessException { String folioFinal) throws BusinessException {
DetAbastoBoleto detAbasto = buscarPorAidf(aidf.getAidfId(), folioInicial, folioFinal);
if( detAbasto == null ) { if( detAbasto == null ) {
throw new BusinessException("detAbastoService.msg.semOrigem"); throw new BusinessException("movimentacionBilhetesController.MSG.origemNaoEncontrada");
} }
try { try {
@ -130,8 +128,8 @@ public class DetAbastoBoletoServiceImpl implements DetAbastoBoletoService {
} }
@Override @Override
public DetAbastoBoleto buscarPorAidf(Long aidfId, String folioInicial, String folioFinal) { public DetAbastoBoleto buscarPorAidf(Long aidfId, Integer puntoVenta, String folioInicial, String folioFinal) {
return detAbastoBoletoDAO.buscarPorAidf(aidfId, folioInicial, folioFinal); return detAbastoBoletoDAO.buscarPorAidf(aidfId, puntoVenta, folioInicial, folioFinal);
} }
@Override @Override
@ -139,4 +137,5 @@ public class DetAbastoBoletoServiceImpl implements DetAbastoBoletoService {
return detAbastoBoletoDAO.buscarAidfsPorEmpresaAgencia(empresa, origem); return detAbastoBoletoDAO.buscarAidfsPorEmpresaAgencia(empresa, origem);
} }
} }

View File

@ -11,6 +11,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.AbastoCentralDAO; import com.rjconsultores.ventaboletos.dao.AbastoCentralDAO;
import com.rjconsultores.ventaboletos.dao.AbastoHistoDAO; import com.rjconsultores.ventaboletos.dao.AbastoHistoDAO;
import com.rjconsultores.ventaboletos.dao.CajaDAO;
import com.rjconsultores.ventaboletos.dao.PtovtaTipoEstoqueDAO; import com.rjconsultores.ventaboletos.dao.PtovtaTipoEstoqueDAO;
import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO; import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO;
import com.rjconsultores.ventaboletos.dao.TipoMovimentacionDAO; import com.rjconsultores.ventaboletos.dao.TipoMovimentacionDAO;
@ -43,6 +44,9 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe
@Autowired @Autowired
private PtovtaTipoEstoqueDAO ptovtaTipoEstoqueDAO; private PtovtaTipoEstoqueDAO ptovtaTipoEstoqueDAO;
@Autowired
private CajaDAO cajaDAO;
@Autowired @Autowired
private AutorizaFolioService autorizaFolioService; private AutorizaFolioService autorizaFolioService;
@ -196,4 +200,9 @@ public class MovimentacionBilhetesServiceImpl implements MovimentacionBilhetesSe
return seriesEstacion; return seriesEstacion;
} }
@Override
public String validarEstoqueUtilizado(Aidf aidf, String folioInicial, String folioFinal) {
return cajaDAO.validarEstoqueUtilizado(aidf, folioInicial, folioFinal);
}
} }