コード例 #1
0
        public JsonResult EditingAddNew(string IDs = "", decimal IdTransaccionSession = 0, int IdEmpresa = 0)
        {
            string ObservacionOC = string.Empty;

            if (IDs != "")
            {
                int      IdEmpresaSesion = Convert.ToInt32(SessionFixed.IdEmpresa);
                var      lst_x_ingresar  = ListaPorIngresar.get_list(IdTransaccionSession);
                string[] array           = IDs.Split(',');
                foreach (var item in array)
                {
                    int IdEmpresaOC   = Convert.ToInt32(item.Substring(0, 3));
                    int IdSucursalOC  = Convert.ToInt32(item.Substring(3, 3));
                    int IdOrdenCompra = Convert.ToInt32(item.Substring(6, 6));
                    int Secuencia     = Convert.ToInt32(item.Substring(12, 6));

                    var info_det = lst_x_ingresar.Where(q => q.IdEmpresa == IdEmpresaOC && q.IdSucursal == IdSucursalOC && q.IdOrdenCompra == IdOrdenCompra && q.Secuencia == Secuencia).FirstOrDefault();

                    in_Ing_Egr_Inven_det_Info info_det_inv;
                    com_parametro_Info        info_param_oc = bus_com_param.get_info(IdEmpresaSesion);
                    if (info_det != null)
                    {
                        info_det_inv = new in_Ing_Egr_Inven_det_Info
                        {
                            IdEmpresa      = info_det.IdEmpresa,
                            IdSucursal     = info_det.IdSucursal,
                            IdOrdenCompra  = info_det.IdOrdenCompra,
                            IdProducto     = info_det.IdProducto,
                            pr_descripcion = info_det.pr_descripcion,

                            mv_costo_sinConversion       = info_det.do_precioFinal,
                            dm_cantidad_sinConversion    = info_det.do_Cantidad_vw,
                            IdUnidadMedida_sinConversion = info_det.IdUnidadMedida,
                            Saldo = info_det.Saldo,

                            IdEmpresa_oc        = IdEmpresaOC,
                            IdSucursal_oc       = IdSucursalOC,
                            Secuencia_oc        = Secuencia,
                            IdCentroCosto       = info_det.IdCentroCosto,
                            IdPunto_cargo       = info_det.IdPunto_cargo,
                            IdPunto_cargo_grupo = info_det.IdPunto_cargo_grupo,
                            cc_Descripcion      = info_det.cc_Descripcion,
                            SecuenciaTipo       = info_det.SecuenciaTipo
                        };
                        ObservacionOC = "OC# " + info_det.SecuenciaTipo + " " + info_det.oc_observacion;
                        List_in_Ing_Egr_Inven_det.AddRow(info_det_inv, IdTransaccionSession);
                    }
                }
            }
            //var model = List_in_Ing_Egr_Inven_det.get_list(IdTransaccionSession);
            return(Json(ObservacionOC, JsonRequestBehavior.AllowGet));
        }
コード例 #2
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);
            }
            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);
        }
コード例 #3
0
        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));
        }