friends I have a view that currently through a query with two parameters shows me a result, the problem is that it shows me only one result in the table, I currently receive the parameters and I send the response using object map, in the following way
@RequestMapping("/ajax_consultaProducto")
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response,
@RequestParam("buscarProductoInput") String codigoBarra,
@RequestParam("comboboxSucursales") String sucursal,
@RequestParam("IpCC") String ipControlador
) throws Exception {
logger.info("LLamado a metodos consultaProducto y buscarEstatusProducto Parametros: " + em + ", " + codigoBarra + ", " + sucursal);
int mensajeEnviar;
codigoBarra = codigoBarra.replace(" ", "");
IConsultaProductosRms consultaRms = new ConsultaProductosRms();
Producto producto = null;
Map<Integer, Object> mapRetorno = null;
producto = consultaRms.consultaProducto(em, codigoBarra, sucursal);
mensajeEnviar = consultaRms.buscarEstatusProducto(em, codigoBarra, sucursal);
producto.setStatusProducto(Integer.toString(mensajeEnviar));
mapRetorno = transformObjectToTreeMap(producto);
logger.info("Producto devuelto transformado en map: " + mapRetorno);
return new ModelAndView("ajax_sucursales", "lista", mapRetorno);
}
but I do not know if because of this form it shows me only one record in the view, I was thinking about using List to see if it shows it in list form, something like this:
@RequestMapping("/tabla_consultaProductos")
public ModelAndView consultaProductos(HttpServletRequest request, HttpServletResponse response,
@RequestParam("buscarProductoInput") String codigoBarra,
@RequestParam("comboboxSucursales") String sucursal,
@RequestParam("IpCC") String ipControlador
) throws Exception {
logger.info("Antes de la ejecutar consultaProducto" + codigoBarra + ", " + sucursal + ", "
+ ipControlador);
codigoBarra = codigoBarra.replace(" ", "");
IConsultaProductosRms consultaRms = new ConsultaProductosRms();
List<String> listaBarra = consultaRms.consultaProductos(em, codigoBarra, sucursal);
logger.info("Despu\u00E9s de la ejecutar consultaProductoPromocion retorna: "+ listaBarra);
return new ModelAndView("tabla_consultaProductos", "lista", listaBarra);
}
Will that be how it works? I accept suggestions thanks
here I make the call to the method that performs the query
public interface IConsultaProductosRms {
@Transactional
public List<String> consultarProductosPromocionInactivos(EntityManager em, String codigoPromocion,String sucursal);
public Producto consultaProducto(EntityManager em,String codigoBarra, String sucursal);
public List<String> consultaProductos(EntityManager em,String codigoBarra, String sucursal);
public Mensaje actualizaProductoSistemas(DriverManagerDataSource em, String codigoPrincipal, int numeroSucursal);
public List<String> consultaBarrasSecundarias(EntityManager em, String codigoBarra,String sucursal);
public List<String> consultaProductosPromocion(EntityManager em, String codigoPromocion,String sucursal);
public int buscarEstatusProducto(EntityManager em, String codigoBarra, String sucursal);
}
this one in particular is the one I use
public Producto consultaProducto(EntityManager em,String codigoBarra, String sucursal);
here is the method consultProduct
public Producto consultaProducto(EntityManager em, String codigoBarra,
String sucursal) {
/*Query original en actual funcionamiento
String stringQuery = "SELECT * " + "FROM ( "
+ "SELECT tmp_barra_primaria.codigoPrincipal, "
+ "tmp_barra_primaria.descripcionCorta, "
+ "tmp_barra_primaria.descripcionLarga, " + "im.dept, "
+ "vi.vat_rate, " + "rfr2.selling_retail, "
+ "TO_CHAR(rpile.detail_start_date,'yyyymmdd'), " + "TO_CHAR(rpile.detail_end_date,'yyyymmdd'), "
+ "rpile.promo_comp_id, " + "rpile.promo_id, "
+ "DECODE(uil.uda_value, " + "'0', " + "'Normal', " + "'4', "
+ "'Pesable', " + "'7', " + "'Procesado') estado, "
+ "rfr2.simple_promo_retail,null,im.standard_uom,MFG_REC_RETAIL " + "FROM item_master im, "
+ "vat_item vi, " + "store s, "
+ "uda_item_lov uil, " + "rpm_future_retail rfr2, " +
"(SELECT decode(im.item_number_type, " + "'ITEM', "
+ "im.item, " + "im.item_parent) codigoPrincipal, "
+ "im.item_desc descripcionLarga, "
+ "im.short_desc descripcionCorta " + "FROM item_master im "
+ "WHERE im.item = ?1) tmp_barra_primaria " +
"LEFT OUTER JOIN(item_loc il) "
+ "ON (tmp_barra_primaria.codigoPrincipal = il.item AND "
+ "il.loc = ?2) " +
"LEFT OUTER JOIN(rpm_future_retail rfr) "
+ "ON (tmp_barra_primaria.codigoPrincipal = rfr.item AND "
+ "rfr.location = ?2 AND "
+ "TO_DATE(sysdate, 'DD/MM/YYYY') <= "
+ "TO_DATE(rfr.action_date, 'DD/MM/YYYY') AND "
+ "(to_date(sysdate) - to_date(rfr.action_date)) >= 0) "
+ "LEFT OUTER JOIN(rpm_promo_item_loc_expl rpile) "
+ "ON (tmp_barra_primaria.codigoPrincipal = rpile.item AND "
+ "rpile.location = ?2 AND "
+ "TO_DATE(sysdate, 'DD/MM/YYYY') between "
+ "TO_DATE(rpile.detail_start_date, 'DD/MM/YYYY') AND "
+ "to_date(rpile.detail_end_date, 'DD/MM/YYYY')) " +
"WHERE im.item = tmp_barra_primaria.codigoPrincipal "
+ "AND vi.item = im.item " + "AND s.store = ?2 "
+ "AND s.vat_region = vi.vat_region "
+ "AND uil.item = im.item " + "AND uil.uda_id = 3 "
+ "AND rfr2.item = tmp_barra_primaria.codigoPrincipal "
+ "AND rfr2.location = ?2 " +
"AND (to_date(SYSDATE) - to_date(rfr2.action_date)) >= 0 "
+ " ORDER BY rfr2.action_date DESC ,vi.active_date DESC " +
") tempo " + "WHERE ROWNUM = 1";*/
String query2 = "SELECT temp.codigoPrincipal,"
+"temp.descripcionCorta,"
+"temp.descripcionLarga,"
+"im.dept,"
+"vi.vat_rate,"
+"rfr.selling_retail,"
+"TO_CHAR (rpile.detail_start_date, 'DD/MM/YYYY'),"
+"TO_CHAR (rpile.detail_end_date, 'DD/MM/YYYY'),"
+"rpile.promo_comp_id,"
+"rpile.promo_id,"
+" DECODE (uil.uda_value,"
+" '0',"
+" 'Normal',"
+" '4',"
+" 'Pesable',"
+" '7',"
+" 'Procesado')"
+" estado,"
+" rfr.simple_promo_retail,"
+" NULL,"
+" im.standard_uom,"
+" im.MFG_REC_RETAIL,"
+" s.store_name"
+" FROM item_master im"
+" JOIN"
+" (SELECT DECODE (im.item_number_type,"
+" 'ITEM', im.item,"
+" im.item_parent)"
+" codigoPrincipal,"
+" im.item_desc descripcionLarga,"
+" im.short_desc descripcionCorta"
+" FROM item_master im"
+" WHERE im.item = ?1) temp"
+" ON (im.item = temp.codigoPrincipal)"
+" JOIN"
+" uda_item_lov uil"
+" ON (im.item = uil.item AND uda_id = 3)"
+" LEFT JOIN"
+" item_loc il"
+" ON (im.item = il.item)"
+" LEFT JOIN"
+" rpm_future_retail rfr"
+" ON (rfr.item = il.item AND rfr.location = il.loc)"
+" LEFT JOIN"
+" rpm_promo_item_loc_expl rpile"
+" ON (rfr.item = rpile.item AND rpile.location = rfr.location)"
+" AND TO_DATE (SYSDATE, 'DD/MM/YYYY') BETWEEN TO_DATE (rpile.detail_start_date,"
+" 'DD/MM/YYYY')AND TO_DATE (rpile.detail_end_date,'DD/MM/YYYY')"
+" JOIN"
+" store s"
+" ON (il.loc = s.store)"
+" JOIN"
+" vat_item vi"
+" ON (im.item = vi.item AND s.vat_region = vi.vat_region)"
+"WHERE store = DECODE (?2, '0', s.store, ?2)"
+"AND (TO_DATE (SYSDATE) - TO_DATE(rfr.action_date)) >= '0'"
+"AND VI.VAT_TYPE IN ('R', 'B')"
+"AND vi.active_date IN"
+" (SELECT MAX (active_date)"
+" FROM vat_item vi1"
+" WHERE vi.item = vi1.item"
+" AND vi.vat_type = vi1.vat_type"
+" AND vi1.create_date <= TRUNC (SYSDATE)"
+" AND vi.vat_region = vi1.vat_region)";
Producto productoRetornar = new Producto();
List<Vector<Object>> objetos=new ArrayList();
try
{
Query query = em.createNativeQuery(query2);
query.setParameter(1, codigoBarra);
query.setParameter(2, sucursal);
//query.setParameter(3, sucursal);
objetos = query.getResultList();
}
catch(Exception e)
{
productoRetornar.setMensaje("No se puede conectar"+e.getMessage());
}
for (Vector<Object> resultElement : objetos) {
String codigoPrincipal = null;
try {
codigoPrincipal = resultElement.get(0).toString();
} catch (Exception e) {
}
String descripcionCorta = null;
try {
descripcionCorta = resultElement.get(1).toString();
} catch (Exception e) {
}
String descripcionLarga = null;
try {
descripcionLarga = resultElement.get(2).toString();
} catch (Exception e) {
}
String departamento = null;
try {
departamento = resultElement.get(3).toString();
} catch (Exception e) {
}
String iva = null;
try {
iva = resultElement.get(4).toString();
} catch (Exception e) {
}
String precio = null;
try {
precio = resultElement.get(5).toString();
} catch (Exception e) {
}
String fechaInicioPromocion = null;
try {
fechaInicioPromocion = resultElement.get(6).toString();
} catch (Exception e) {
}
String fechaFinPromocion = null;
try {
fechaFinPromocion = resultElement.get(7).toString();
} catch (Exception e) {
}
String codigoComponente = null;
try {
codigoComponente = resultElement.get(8).toString();
} catch (Exception e) {
}
String codigoPromocion = null;
try {
codigoPromocion = resultElement.get(9).toString();
} catch (Exception e) {
}
String estado = null;
try {
estado = resultElement.get(10).toString();
} catch (Exception e) {
}
String precioPromocion = null;
try {
if(codigoPromocion!= null)
precioPromocion = resultElement.get(11).toString();
} catch (Exception e) {
}
String frecuencia = null;
try {
frecuencia = resultElement.get(12).toString();
} catch (Exception e) {
}
String uom = null;
try {
uom = resultElement.get(13).toString();
} catch (Exception e) {
}
String pvJusto = null;
try {
pvJusto = resultElement.get(14).toString();
} catch (Exception e) {
}
String nombreSucursal = null;
try {
nombreSucursal = resultElement.get(14).toString();
} catch (Exception e) {
}
if(!objetos.isEmpty())
{
productoRetornar.setCodigoPrincipal(codigoPrincipal);
productoRetornar.setDescripcionCorta(descripcionCorta);
productoRetornar.setDescripcionLarga(descripcionLarga);
productoRetornar.setDepartamento(departamento);
productoRetornar.setIva(iva);
productoRetornar.setPrecio(precio);
productoRetornar.setFechaInicioPromocion(fechaInicioPromocion);
productoRetornar.setFechaFinPromocion(fechaFinPromocion);
productoRetornar.setCodigoComponente(codigoComponente);
productoRetornar.setCodigoPromocion(codigoPromocion);
productoRetornar.setEstado(estado);
productoRetornar.setPrecioPromocion(precioPromocion);
productoRetornar.setFrecuencia(frecuencia);
productoRetornar.setUom(uom);
productoRetornar.setMensaje("");
productoRetornar.setPvJusto(pvJusto);
productoRetornar.setNombreSucursal(nombreSucursal);
}
}
return productoRetornar;
}
and here is the view where I call ajax_consultaProduct
.post(
'ConsultasRms/ajax_consultaProducto.html',
formulario.serialize(),
function (data) {
$("#loading").hide();
//borramos el contenido de los option del select
//$("#comboboxSucursales").html("");
//recorremos todas las filas del resultado del proceso que obtenemos en Json
if (data.lista[1].codigoPrincipal == null) {
$("#dialog-NoData").dialog("open");
}
else if (data.lista[1].statusProducto == "1") {
$("#dialog-Inactivo").dialog("open");
}
else {
comboSucursales = document
.getElementById('comboboxSucursales');
sucursalConsulta = comboSucursales.options[comboSucursales.selectedIndex].text;
if (data.lista[1].mensaje == "") {
var datarow = {
sucursal: sucursalConsulta,
numeroSucursal: comboSucursales.options[comboSucursales.selectedIndex].value,
ip: ipControlador,
sistema: tipoSucursal,
codigoPrincipal: data.lista[1].codigoPrincipal,
descripcionCorta: data.lista[1].descripcionCorta,
precio: data.lista[1].precio,
precioPromocion: data.lista[1].precioPromocion,
pvJusto: data.lista[1].pvJusto,
nombreSucursal: data.lista[1].nombreSucursal
};
datarowRmsDetalle[cont] = {
descripcionLarga: data.lista[1].descripcionLarga,
iva: data.lista[1].iva,
estado: data.lista[1].estado,
departamento: data.lista[1].departamento,
codigoComponente: data.lista[1].codigoComponente,
codigoPromocion: data.lista[1].codigoPromocion,
fechaInicioPromocion: data.lista[1].fechaInicioPromocion,
fechaFinPromocion: data.lista[1].fechaFinPromocion
};
}
else {
$("#etiquetaMensajeAlerta").html("No es posible establecer una conexión con el servidor.");
$("#dialog-Alerta").dialog("open");
}
//height : 190,
//width : 865,
var su = jQuery("#tablaProductoRms")
.jqGrid('addRowData', cont, datarow);
//var sub=jQuery("#tablaProducto_1_t").jqGrid('addRowData','newRow',datarow2);
cont++;
}
}, "json");
}
those are the functions