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);
            }

            if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cm_fecha, cl_enumeradores.eModulo.INV, i_validar.IdSucursal, ref msg))
            {
                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

            return(true);
        }
        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);
        }
Beispiel #3
0
        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);
            }
            if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cm_fecha, cl_enumeradores.eModulo.INV, i_validar.IdSucursal, ref msg))
            {
                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

            #region ValidarStock
            var lst_validar = i_validar.lst_in_Ing_Egr_Inven_det.GroupBy(q => new { q.IdProducto, q.pr_descripcion, q.tp_ManejaInven, q.se_distribuye }).Select(q => new in_Producto_Stock_Info
            {
                IdEmpresa      = i_validar.IdEmpresa,
                IdSucursal     = i_validar.IdSucursal,
                IdBodega       = i_validar.IdBodega ?? 0,
                IdProducto     = q.Key.IdProducto,
                pr_descripcion = q.Key.pr_descripcion,
                tp_manejaInven = q.Key.tp_ManejaInven,
                SeDestribuye   = q.Key.se_distribuye,

                Cantidad         = q.Sum(v => v.dm_cantidad_sinConversion),
                CantidadAnterior = q.Sum(v => v.CantidadAnterior),
            }).ToList();

            if (!bus_producto.validar_stock(lst_validar, ref msg))
            {
                return(false);
            }
            #endregion

            #region ValidarCentroCosto
            int IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);
            ct_parametro_Bus bus_parametro = new ct_parametro_Bus();
            var info_ct_parametro          = bus_parametro.get_info(IdEmpresa);

            if (i_validar.lst_in_Ing_Egr_Inven_det.Count > 0)
            {
                if (info_ct_parametro.EsCentroCostoObligatorio == true)
                {
                    foreach (var item in i_validar.lst_in_Ing_Egr_Inven_det)
                    {
                        if (item.IdCentroCosto == "" || item.IdCentroCosto == null)
                        {
                            mensaje = "Debe seleccionar el centro de costo para los items del detalle";
                            return(false);
                        }
                    }
                }
            }
            #endregion

            return(true);
        }