Example #1
0
        public bool bajarStock(ModeloLineaPedido p_lineaPedido)
        {
            ModeloArticuloProveedores lcl_mod_articuloProveedores = new ModeloArticuloProveedores()
            {
                codigoOriginal          = p_lineaPedido.articulo.codigoOriginal,
                codigoArticuloProveedor = p_lineaPedido.articulo.codigoArticuloProveedor
            };

            lcl_mod_articuloProveedores = ControladorBusqueda.getOne(lcl_mod_articuloProveedores, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.One);
            //Si no se encuentra artículo tira excepción de índice

            lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual - p_lineaPedido.cantidadArticulos;
            //Excepcion si stock negativo y no esta permitido
            if (lcl_mod_articuloProveedores.stockActual < 0 && !p_lineaPedido.permitirStockNegativo)
            {
                errorActual = "La cantidad solicitada es mayor al stock actual para el artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " +
                              lcl_mod_articuloProveedores.codigoArticuloProveedor;
                return(false);
            }

            //Si hay error al modificar la base de datos agregando linea o modificando stock
            if (!new ControladorModificacion().modificar(lcl_mod_articuloProveedores))
            {
                errorActual = "Error al modificar stock en la base de datos de artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " +
                              lcl_mod_articuloProveedores.codigoArticuloProveedor;
                return(false);
            }

            return(true);
        }
        public bool devolverStock(ModeloPedido p_mod_pedido)
        {
            ModeloArticuloProveedores lcl_mod_articuloProveedores;
            ControladorModificacion   lcl_con_modificacion = new ControladorModificacion();

            if (p_mod_pedido.tipoComprobante != 0)
            {
                foreach (ModeloLineaPedido lp in p_mod_pedido.lineasPedido)
                {
                    //se debe modificar stock
                    lcl_mod_articuloProveedores = new ModeloArticuloProveedores();

                    lcl_mod_articuloProveedores.codigoOriginal          = lp.articulo.codigoOriginal;
                    lcl_mod_articuloProveedores.codigoArticuloProveedor = lp.articulo.codigoArticuloProveedor;

                    lcl_mod_articuloProveedores = ControladorBusqueda.getOne(lcl_mod_articuloProveedores, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.One);
                    //Si no se encuentra artículo tira excepción de índice
                    if (p_mod_pedido.tipoComprobante != 8 && p_mod_pedido.tipoComprobante != 3)//Se agrega para que cuando sea devolucion no suba Stock.
                    {
                        if (p_mod_pedido.tipoComprobante != 2001)
                        {
                            lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual + lp.cantidadArticulos;
                            //Excepcion si stock negativo y no esta permitido
                        }
                        else
                        {
                            lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual - lp.cantidadArticulos;
                            if (lcl_mod_articuloProveedores.stockActual < 0 && !lp.permitirStockNegativo)
                            {
                                errorActual = "La cantidad solicitada es mayor al stock actual para el artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " +
                                              lcl_mod_articuloProveedores.codigoArticuloProveedor;
                                return(false);
                            }
                        }

                        //Si hay error al modificar la base de datos agregando linea o modificando stock
                        if (!lcl_con_modificacion.modificar(lcl_mod_articuloProveedores))
                        {
                            errorActual = "Error al modificar stock en la base de datos de artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " +
                                          lcl_mod_articuloProveedores.codigoArticuloProveedor;
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }
Example #3
0
        /// <summary>
        /// Retorna multiples pedidos (e inicializa propiedad pedidosProveedores) de acuerdo al proveedor de cada articulo en las lineas de pedido
        /// </summary>
        /// <param name="p_mod_pedido"></param>
        /// <returns></returns>
        public List <ModeloPedido> getPedidosProveedores(ModeloPedido p_mod_pedido)
        {
            List <ModeloPedido> lcl_lst_mod_pedidos = new List <ModeloPedido>();

            bool lineaAgregada = false;

            foreach (ModeloLineaPedido lp in p_mod_pedido.lineasPedido)
            {
                lineaAgregada = false;
                foreach (ModeloPedido pedido in lcl_lst_mod_pedidos)
                {
                    if (lp.articulo.codigoEntidad == pedido.entidad.codigo)
                    {
                        //Se agrega linea al pedido que tenga como entidad al proveedor del articulo proveedor y se marca la bandera
                        pedido.lineasPedido.Add(lp);
                        lineaAgregada = true;
                        break;
                    }
                }

                if (!lineaAgregada)
                {
                    ModeloEntidad p_mod_entidadAuxiliar = new ModeloProveedor();
                    p_mod_entidadAuxiliar.codigo = lp.articulo.codigoEntidad;
                    //Se crea pedido con proveedor como entidad del pedido
                    ModeloPedido p_mod_pedidoAuxiliar = new ModeloPedido(ControladorBusqueda.getOne(p_mod_entidadAuxiliar, Constantes.ParametrosBusqueda.One));
                    p_mod_pedidoAuxiliar.lineasPedido.Add(lp);

                    lcl_lst_mod_pedidos.Add(p_mod_pedidoAuxiliar);
                }
            }
            this.pedidosProveedores = lcl_lst_mod_pedidos;
            foreach (ModeloPedido p in this.pedidosProveedores)
            {
                p.actualizarMontos();
            }

            this.pedidosProveedores.Insert(0, new ModeloPedido());
            this.pedidosProveedores[0] = this.getPedidoGlobal();
            return(lcl_lst_mod_pedidos);
        }
Example #4
0
        public bool subirStock(ModeloLineaPedido p_lineaPedido)
        {
            ModeloArticuloProveedores lcl_mod_articuloProveedores = new ModeloArticuloProveedores()
            {
                codigoOriginal          = p_lineaPedido.articulo.codigoOriginal,
                codigoArticuloProveedor = p_lineaPedido.articulo.codigoArticuloProveedor
            };

            lcl_mod_articuloProveedores = ControladorBusqueda.getOne(lcl_mod_articuloProveedores, LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.One);
            //Si no se encuentra artículo tira excepción de índice

            lcl_mod_articuloProveedores.stockActual = lcl_mod_articuloProveedores.stockActual + p_lineaPedido.cantidadArticulos;

            //Si hay error al modificar la base de datos agregando linea o modificando stock
            if (!this.modificar(lcl_mod_articuloProveedores))
            {
                errorActual = "Error al modificar stock en la base de datos de artículo " + lcl_mod_articuloProveedores.getDescripciones() + ", " +
                              lcl_mod_articuloProveedores.codigoArticuloProveedor;
                return(false);
            }

            return(true);
        }