private bool validar(in_Ing_Egr_Inven_Info i_validar, ref string msg) { if (i_validar.lst_in_Ing_Egr_Inven_det.Count == 0) { mensaje = "Debe ingresar al menos un producto"; return(false); } else { com_ordencompra_local_det_List Lista_OC = new com_ordencompra_local_det_List(); List <com_ordencompra_local_Info> lista_detalle_oc = Lista_OC.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)); if (i_validar.IdNumMovi == 0) { foreach (var item in i_validar.lst_in_Ing_Egr_Inven_det) { com_ordencompra_local_Info info_oc = lista_detalle_oc.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdOrdenCompra == item.IdOrdenCompra && q.IdProducto == item.IdProducto).FirstOrDefault(); if (item.dm_cantidad_sinConversion > info_oc.Saldo) { mensaje = "La cantidad ingresada supera al saldo pendiente del producto: " + item.pr_descripcion; return(false); } } var Cant_OC = i_validar.lst_in_Ing_Egr_Inven_det.GroupBy(q => q.IdOrdenCompra).Count(); if (Cant_OC > 1) { mensaje = "Debe ingresar items de una sola orden de compra"; return(false); } #region ValidarExisteProductoxBodega var param = bus_in_param.get_info(i_validar.IdEmpresa); mensaje = bus_producto_x_bodega.ValidarProductoPorBodega(new List <in_producto_x_tb_bodega_Info>(i_validar.lst_in_Ing_Egr_Inven_det.Select(q => new in_producto_x_tb_bodega_Info { IdEmpresa = i_validar.IdEmpresa, IdSucursal = i_validar.IdSucursal, IdBodega = i_validar.IdBodega ?? 0, IdProducto = q.IdProducto, pr_descripcion = q.pr_descripcion }).ToList()), (param.ValidarCtaCbleTransacciones ?? false)); if (!string.IsNullOrEmpty(mensaje)) { return(false); } #endregion } } if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cm_fecha, cl_enumeradores.eModulo.INV, i_validar.IdSucursal, ref msg)) { return(false); } return(true); }
public ActionResult EditingUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] in_Ing_Egr_Inven_det_Info info_det) { com_ordencompra_local_det_List Lista_OC = new com_ordencompra_local_det_List(); int IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa); List <in_Ing_Egr_Inven_det_Info> lista_detalle = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)); List <com_ordencompra_local_Info> lista_detalle_oc = Lista_OC.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)); in_Ing_Egr_Inven_det_Info info_det_editar = lista_detalle.Where(q => q.Secuencia == info_det.Secuencia).FirstOrDefault(); com_ordencompra_local_Info info_oc = lista_detalle_oc.Where(q => q.IdEmpresa == info_det_editar.IdEmpresa && q.IdSucursal == info_det_editar.IdSucursal && q.IdOrdenCompra == info_det_editar.IdOrdenCompra && q.IdProducto == info_det_editar.IdProducto).FirstOrDefault(); info_det_editar.dm_cantidad_sinConversion = info_det.dm_cantidad_sinConversion; if (info_det_editar != null) { if (info_det_editar.IdProducto != 0) { in_Producto_Info info_producto = bus_producto.get_info(IdEmpresa, info_det_editar.IdProducto); if (info_producto != null) { info_det.Saldo = info_det_editar.Saldo; info_det.IdProducto = info_det_editar.IdProducto; info_det.pr_descripcion = info_producto.pr_descripcion_combo; info_det.IdUnidadMedida_sinConversion = info_producto.IdUnidadMedida; } } } if (info_det_editar.dm_cantidad_sinConversion > 0 && info_det_editar.dm_cantidad_sinConversion <= info_det_editar.Saldo) { List_in_Ing_Egr_Inven_det.UpdateRow(info_det_editar, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)); } var model = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)); cargar_combos_detalle(); return(PartialView("_GridViewPartial_inv_det", model)); }