Buenas tardes el día de hoy voy a publicar como personalizar
el comportamiento de dos botones (Editar / Eliminar) de la barra de Navegacion del Jqgrid, mediante la función processAddEdit la cual ejecutara algún código que necesitemos.
Bien esto es bastante sencillo:
Paso 1:
Definimos nuestro Pager o Barra de Navegacion como ustedes lo
deseen llamar:
jQuery("#grps1").jqGrid('navGrid','#pgrps1',{del:true,add:false,edit:false,search:
false,refresh: false}, //options
Paso 2:
Personalizamos el boton "del"
invocando la function llamada processAddEdit
jQuery("#grps1").jqGrid('navGrid','#pgrps1',{del:true,add:false,edit:false,search:
false,refresh: false}, //options{},// edit{}, //add
{
//del
//beforeSubmit:processAddEdit, (Puedes llamar la function Antes
del Submit)
afterSubmit: processAddEdit, (O Puedes llamar la function despues
del Submit)
closeAfterAdd: true,
closeAfterEdit: true,
reloadAfterSubmit:false,
recreateForm:true
reloadAfterSubmit:false,
recreateForm:true
},{}//search);
Paso 3:
Contruimos la function con el codigo que necesitamos:
function
processAddEdit(response, postdata)
{
//(Obtenemos el valor
de las columnas de la fila que fue borrada:
) por ejemplo:
var sel_id = jQuery("#grps1").jqGrid('getGridParam', 'selrow');
var
Unidades_solicitada=jQuery("#grps1").jqGrid('getCell', sel_id,
'Unidades_Solicitada');
var Peso_Solicitado
=jQuery("#grps1").jqGrid('getCell', sel_id, 'Peso_Solicitado');
//Realizamos alguna operación:
Var total =( Unidades_solicitada* Peso_Solicitado);
Alert(total);
} //
cierra function processAddEdit
Ahora si deseamos trabajar con el boton editar seria algo asi:
jQuery("#grps").jqGrid('navGrid','#pgrps',{}, //options
{
afterSubmit:processAddEdit,
closeAfterAdd: true,
closeAfterEdit: true,
reloadAfterSubmit:false,
recreateForm:true
},
{reloadAfterSubmit:false,closeAfterAdd:true,recreateForm:true}, // add options
{reloadAfterSubmit:false}, // del options
{multipleSearch:true,closeAfterSearch: true, closeOnEscape: true}
);
function processAddEdit(response, postdata)
{
//Observa como podemos manipular el contenido de las columnas de la fila afectada con
postdata
$.getJSON('Busca_Kilos.php',{Codigo:postdata.Articulo},Busca_Texto);
function Busca_Texto(datos1)
{
$.getJSON('Busca_Cantidades.php',{Codigo:postdata.Articulo},Busca_Texto);
function Busca_Texto(datos)
{
var z1 =(parseInt(datos1)*postdata.Cantidad*parseInt(datos));
$("#grps").jqGrid('setCell',postdata.id,'Peso_Total', z1);
var z =(parseInt(datos)*postdata.Cantidad);
$("#grps").jqGrid('setCell',postdata.id,'Total_Unidades', z);
}// cierra $.getJSON('Busca_Cantidades.php'
}// cierra function Busca_Texto(datos)
return [true,"",]; // importante devolver falso o verdadero en funcion del resultado del codigo
}// cierra function processAddEdit
******CODIGO COMPLETO************
$("#grps1").jqGrid({
url:'Sube_Salida.php?filtro='+<?php echo $_GET['rp'];?>,
datatype: 'json',
mtype: 'GET',
colNames: ['Articulo','Presentacion','Medida_Item_Solicitada','Unidades_Solicitada','Peso_Solicitado','Lote','Fecha_Vencimiento'],
colModel: [
{name: 'Articulo', index: 'Articulo', width: 80, align: 'left',editable: false,editrules:{required:true},formatter:'select',edittype:"select",editoptions:{value: darticulo},sortable: true},
{name: 'Presentacion', index: 'Presentacion', width: 80, align: 'left',editable: false,editrules:{required:true},formatter:'select',edittype:"select",editoptions:{value: dpresentacion},sortable: true},
{name: 'Medida_Item_Solicitada', index: 'Medida_Item_Solicitada', width: 85, align: 'left',editable: true,editrules:{number:true},formatter: 'number',edittype:"text"},
{name: 'Unidades_Solicitada', index: 'Unidades_Solicitada', width: 80, align: 'left',editable: true,editrules:{number:true},formatter: 'number',edittype:"text"},
{name: 'Peso_Solicitado', index: 'Peso_Solicitado', width: 80, align: 'left',editable: false,editrules:{number:true},formatter: 'number',edittype:"text"},
{name: 'Lote', index: 'Lote', width: 80, align: 'left',editable: false,editrules:{required:true},formatter:'text',edittype:"text"},
{name: 'Fecha_Vencimiento', index: 'Fecha_Vencimiento', width: 50, align: 'center', editable:false,editrules:{required:true},formatter: 'text', formatoptions: {newformat: 'd-m-Y'}, datefmt: 'd-M-Y'},
],
gridview: true,
rownumbers:true,
pager: '#pgrps1',
rowNum:200,
rowList:[200],
autowidth: true,
viewrecords: true,
width: "98%",
height: "100%",
editurl: "someurl.php",
caption: 'ITEMS A SER DESPACHADOS',
footerrow: true,
cellEdit: true,
cellurl:"otro.php",
gridComplete: function(){
var sum = jQuery("#grps1").jqGrid('getCol', 'Medida_Item_Solicitada', false, 'sum');
var sum1 = jQuery("#grps1").jqGrid('getCol', 'Unidades_Solicitada', false, 'sum');
var sum2 = jQuery("#grps1").jqGrid('getCol', 'Peso_Solicitado', false, 'sum');
$(this).jqGrid('footerData','set',{Medida_Item_Solicitada: sum, Unidades_Solicitada: sum1,Peso_Solicitado: sum2});
},
});// Aqui cierra el Jqgrid $("#grps1")
jQuery("#grps1").jqGrid('navGrid','#pgrps1',{del:true,add:false,edit:false,search: false,refresh: false}, //options
{},// edit
{}, //add
{ //del //beforeSubmit:processAddEdit,
afterSubmit: processAddEdit,
closeAfterAdd: true,
closeAfterEdit: true,
reloadAfterSubmit:false,
recreateForm:true
},
{}//search
);// Aqui cierra el Pager o Barra de Navegacion
function processAddEdit(response, postdata) {
var sel_id = jQuery("#grps1").jqGrid('getGridParam', 'selrow');
var IdArticulo = jQuery("#grps1").jqGrid('getCell', sel_id, 'Articulo');
var Medida_Item =jQuery("#grps1").jqGrid('getCell', sel_id, 'Medida_Item_Solicitada');
var Unidades_solicitada=jQuery("#grps1").jqGrid('getCell', sel_id, 'Unidades_Solicitada');
var Peso_Solicitado =jQuery("#grps1").jqGrid('getCell', sel_id, 'Peso_Solicitado');
var Lote_solicitado =jQuery("#grps1").jqGrid('getCell', sel_id, 'Lote');
var Fecha =jQuery("#grps1").jqGrid('getCell', sel_id, 'Fecha_Vencimiento');
var Contador_Articulo =0;
//alert(Fecha);
var anio=Fecha.substr(6,4);
var mes =Fecha.substr(3,2);
var dia =Fecha.substr(0,2);
var rows = jQuery("#grps1").getDataIDs();
for(a=0;a<rows.length;a++)
{
row=jQuery("#grps1").getRowData(rows[a]);
var anio_comparar =row.Fecha_Vencimiento.substr(6,4);
var mes_comparar =row.Fecha_Vencimiento.substr(3,2);
var dia_comparar =row.Fecha_Vencimiento.substr(0,2);
if(row.Articulo==IdArticulo && eval(anio_comparar)>=eval(anio) && eval(mes_comparar)>=eval(mes) && eval(dia_comparar)>eval(dia))
{
Contador_Articulo++;
}// cierra if
}// cierra for
if(Contador_Articulo==0)
{
var a=0;
var rows = jQuery("#grps").getDataIDs();
for(a=0;a<rows.length;a++)
{
row=jQuery("#grps").getRowData(rows[a]);
if(row.Articulo==IdArticulo && row.Lote==Lote_solicitado && row.Vencimiento==Fecha)
{
$("#grps").jqGrid('setCell', rows[a], 'Existencia_Actual_Medida_Item', (eval(row.Existencia_Actual_Medida_Item)+eval(Medida_Item)));
$("#grps").jqGrid('setCell', rows[a], 'Existencia_Unidades', (eval(row.Existencia_Unidades)+eval(Unidades_solicitada)));
$("#grps").jqGrid('setCell', rows[a], 'Existencia_Peso', (eval(row.Existencia_Peso)+eval(Peso_Solicitado)));
//$("#grps").jqGrid('setCell', rows[a], 'Cantidad', (eval(row.Cantidad)-eval(Medida_Item)));
}// cierra if
}// cierra for
return [true,"",];
}// cierra condicion Contador_Articulo==0
if(Contador_Articulo>0){return [false,"Debe Borrar El Articulo con Fecha vencimiento mas lejana ",null];}
} // cierra function processAddEdit
url:'Sube_Salida.php?filtro='+<?php echo $_GET['rp'];?>,
datatype: 'json',
mtype: 'GET',
colNames: ['Articulo','Presentacion','Medida_Item_Solicitada','Unidades_Solicitada','Peso_Solicitado','Lote','Fecha_Vencimiento'],
colModel: [
{name: 'Articulo', index: 'Articulo', width: 80, align: 'left',editable: false,editrules:{required:true},formatter:'select',edittype:"select",editoptions:{value: darticulo},sortable: true},
{name: 'Presentacion', index: 'Presentacion', width: 80, align: 'left',editable: false,editrules:{required:true},formatter:'select',edittype:"select",editoptions:{value: dpresentacion},sortable: true},
{name: 'Medida_Item_Solicitada', index: 'Medida_Item_Solicitada', width: 85, align: 'left',editable: true,editrules:{number:true},formatter: 'number',edittype:"text"},
{name: 'Unidades_Solicitada', index: 'Unidades_Solicitada', width: 80, align: 'left',editable: true,editrules:{number:true},formatter: 'number',edittype:"text"},
{name: 'Peso_Solicitado', index: 'Peso_Solicitado', width: 80, align: 'left',editable: false,editrules:{number:true},formatter: 'number',edittype:"text"},
{name: 'Lote', index: 'Lote', width: 80, align: 'left',editable: false,editrules:{required:true},formatter:'text',edittype:"text"},
{name: 'Fecha_Vencimiento', index: 'Fecha_Vencimiento', width: 50, align: 'center', editable:false,editrules:{required:true},formatter: 'text', formatoptions: {newformat: 'd-m-Y'}, datefmt: 'd-M-Y'},
],
gridview: true,
rownumbers:true,
pager: '#pgrps1',
rowNum:200,
rowList:[200],
autowidth: true,
viewrecords: true,
width: "98%",
height: "100%",
editurl: "someurl.php",
caption: 'ITEMS A SER DESPACHADOS',
footerrow: true,
cellEdit: true,
cellurl:"otro.php",
gridComplete: function(){
var sum = jQuery("#grps1").jqGrid('getCol', 'Medida_Item_Solicitada', false, 'sum');
var sum1 = jQuery("#grps1").jqGrid('getCol', 'Unidades_Solicitada', false, 'sum');
var sum2 = jQuery("#grps1").jqGrid('getCol', 'Peso_Solicitado', false, 'sum');
$(this).jqGrid('footerData','set',{Medida_Item_Solicitada: sum, Unidades_Solicitada: sum1,Peso_Solicitado: sum2});
},
});// Aqui cierra el Jqgrid $("#grps1")
jQuery("#grps1").jqGrid('navGrid','#pgrps1',{del:true,add:false,edit:false,search: false,refresh: false}, //options
{},// edit
{}, //add
{ //del //beforeSubmit:processAddEdit,
afterSubmit: processAddEdit,
closeAfterAdd: true,
closeAfterEdit: true,
reloadAfterSubmit:false,
recreateForm:true
},
{}//search
);// Aqui cierra el Pager o Barra de Navegacion
function processAddEdit(response, postdata) {
var sel_id = jQuery("#grps1").jqGrid('getGridParam', 'selrow');
var IdArticulo = jQuery("#grps1").jqGrid('getCell', sel_id, 'Articulo');
var Medida_Item =jQuery("#grps1").jqGrid('getCell', sel_id, 'Medida_Item_Solicitada');
var Unidades_solicitada=jQuery("#grps1").jqGrid('getCell', sel_id, 'Unidades_Solicitada');
var Peso_Solicitado =jQuery("#grps1").jqGrid('getCell', sel_id, 'Peso_Solicitado');
var Lote_solicitado =jQuery("#grps1").jqGrid('getCell', sel_id, 'Lote');
var Fecha =jQuery("#grps1").jqGrid('getCell', sel_id, 'Fecha_Vencimiento');
var Contador_Articulo =0;
//alert(Fecha);
var anio=Fecha.substr(6,4);
var mes =Fecha.substr(3,2);
var dia =Fecha.substr(0,2);
var rows = jQuery("#grps1").getDataIDs();
for(a=0;a<rows.length;a++)
{
row=jQuery("#grps1").getRowData(rows[a]);
var anio_comparar =row.Fecha_Vencimiento.substr(6,4);
var mes_comparar =row.Fecha_Vencimiento.substr(3,2);
var dia_comparar =row.Fecha_Vencimiento.substr(0,2);
if(row.Articulo==IdArticulo && eval(anio_comparar)>=eval(anio) && eval(mes_comparar)>=eval(mes) && eval(dia_comparar)>eval(dia))
{
Contador_Articulo++;
}// cierra if
}// cierra for
if(Contador_Articulo==0)
{
var a=0;
var rows = jQuery("#grps").getDataIDs();
for(a=0;a<rows.length;a++)
{
row=jQuery("#grps").getRowData(rows[a]);
if(row.Articulo==IdArticulo && row.Lote==Lote_solicitado && row.Vencimiento==Fecha)
{
$("#grps").jqGrid('setCell', rows[a], 'Existencia_Actual_Medida_Item', (eval(row.Existencia_Actual_Medida_Item)+eval(Medida_Item)));
$("#grps").jqGrid('setCell', rows[a], 'Existencia_Unidades', (eval(row.Existencia_Unidades)+eval(Unidades_solicitada)));
$("#grps").jqGrid('setCell', rows[a], 'Existencia_Peso', (eval(row.Existencia_Peso)+eval(Peso_Solicitado)));
//$("#grps").jqGrid('setCell', rows[a], 'Cantidad', (eval(row.Cantidad)-eval(Medida_Item)));
}// cierra if
}// cierra for
return [true,"",];
}// cierra condicion Contador_Articulo==0
if(Contador_Articulo>0){return [false,"Debe Borrar El Articulo con Fecha vencimiento mas lejana ",null];}
} // cierra function processAddEdit