/// <summary>
        /// Busca articuloProveedor por descripción de Articulo. Habría que hacerlo en el catálogo
        /// </summary>
        /// <param name="p_mod_articuloProveedores"></param>
        /// <returns></returns>
        private static List <ModeloArticuloProveedores> buscarArticuloProveedor_descripcionArticulo(ModeloArticuloProveedores p_mod_articuloProveedores)
        {
            /*
             * Para buscar articuloProveedor por descripcion de articulo empezamos buscando
             * todos los articulos que tengan esa descripcion por métodos de CatalogoArticulos
             */
            ModeloArticulos lcl_mod_articulo = new ModeloArticulos();

            lcl_mod_articulo.descripcion = "";//Falta determinar de donde sacar valor de descripcion   //p_mod_articuloProveedores.;
            CatalogoArticulos lcl_cat_articulos = new CatalogoArticulos();

            List <ModeloArticuloProveedores> lcl_lst_mod_articulosProveedores = new List <ModeloArticuloProveedores>();
            ModeloArticuloProveedores        lcl_mod_articuloProveedor        = null;

            /*
             * Obtenemos codigoOriginal de cada articulo encontrado y
             * buscamos articulos de proveedores por métodos de CatalogoArticuloProveedores
             */
            foreach (ModeloArticulos a in ControladorBusqueda.buscar(lcl_mod_articulo, Constantes.ParametrosBusqueda.Articulos.Descripcion))
            {
                lcl_mod_articuloProveedor.codigoOriginal = a.codigoOriginal;
                foreach (ModeloArticuloProveedores ap in ControladorBusqueda.buscar(lcl_mod_articuloProveedor, Constantes.ParametrosBusqueda.ArticulosProveedores.CodigoOriginal))
                {
                    lcl_lst_mod_articulosProveedores.Add(ap);
                }
            }
            if (lcl_lst_mod_articulosProveedores.Count > 0)
            {
                return(lcl_lst_mod_articulosProveedores);
            }
            {
                return(null);
            }
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        public void addArticulo(ModeloArticuloProveedores p_articulo, Int32 p_cantidad)
        {
            //le cambio el formato  y lo agrego a la lista de articulos ya seleccionados
            ModeloLineaPedido lcl_mod_nuevaLinea = new ModeloLineaPedido(p_articulo, p_cantidad, this.tipoPedido);

            this.pedidoActual.addLineaPedido(lcl_mod_nuevaLinea);
        }
        /// <summary>
        /// Se comunica con la capa de datos para realizar INSERT en la base de datos.
        /// </summary>
        /// <param name="p_mod_articuloProveedor"></param>
        /// <returns>true si se ha insertado, false y excepción si ha habido fallo</returns>
        public bool agregar(ModeloArticuloProveedores p_mod_articuloProveedor)
        {
            CatalogoArticuloProveedores lcl_cat_articuloProveedores = new CatalogoArticuloProveedores();

            bool respuesta = false;

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    respuesta = lcl_cat_articuloProveedores.add(p_mod_articuloProveedor);
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                errorActual = "TransactionAbortedException Message: " + ex.Message;
            }
            catch (ApplicationException ex)
            {
                errorActual = "ApplicationException Message: " + ex.Message;
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                errorActual = "SQLexception Message: " + ex.Message;
            }
            catch (Exception ex)
            {
                errorActual = ex.Message;
            }
            return(respuesta);
        }
Esempio n. 5
0
        public bool modificarValorArticulo(ModeloArticuloProveedores p_mod_articuloProveedor, string p_tipoValorArticulo)
        {
            CatalogoArticuloProveedores lcl_cat_articuloProveedores = new CatalogoArticuloProveedores();
            bool respuesta = false;

            errorActual = "No se ha podido realizar la actualizacion.";
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    respuesta = lcl_cat_articuloProveedores.updateValor(p_mod_articuloProveedor, p_tipoValorArticulo);
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                errorActual = "TransactionAbortedException Message: " + ex.Message;
            }
            catch (ApplicationException ex)
            {
                errorActual = "ApplicationException Message: " + ex.Message;
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                errorActual = "SQLexception Message: " + ex.Message;
            }
            catch (Exception ex)
            {
                errorActual = ex.Message;
            }
            return(respuesta);
        }
        public static ModeloArticuloProveedores getOne(ModeloArticuloProveedores p_mod_articuloProveedor, string p_parametroBusqueda)
        {
            List <ModeloArticuloProveedores> lcl_lst_mod_articuloProveedor = ControladorBusqueda.buscar(p_mod_articuloProveedor, p_parametroBusqueda);

            if (lcl_lst_mod_articuloProveedor.Count > 0)
            {
                return(lcl_lst_mod_articuloProveedor[0]);
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// Busca artículos de proveedores que cumplan con un parámetro de búsqueda
        /// </summary>
        /// <param name="p_mod_articuloProveedores">Proveedor con variable a buscar inicializada con algún valor</param>
        /// <param name="p_paramentroBusqueda">Constante dentro de LibreriaClasesCompartidas.Constantes.ParametrosBusqueda</param>
        /// <returns>Lista de artículos de proveedores</returns>
        public static List <ModeloArticuloProveedores> buscar(ModeloArticuloProveedores p_mod_articuloProveedores, string p_paramentroBusqueda)
        {
            CatalogoArticuloProveedores lcl_cat_articulosProveedores = new CatalogoArticuloProveedores();

            switch (p_paramentroBusqueda)
            {
            case Constantes.ParametrosBusqueda.ArticulosProveedores.Descripcion:
                return(ControladorBusqueda.buscarArticuloProveedor_descripcionArticulo(p_mod_articuloProveedores));

            default:
                return(lcl_cat_articulosProveedores.buscar(p_mod_articuloProveedores, p_paramentroBusqueda));
            }
        }
        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);
        }
Esempio n. 9
0
        private void insertarDatosEnDataTableRow(DataRow row, ModeloArticuloProveedores p_articuloProveedor)
        {
            row["Código Original"]           = p_articuloProveedor.codigoOriginal;
            row["Código Artículo Proveedor"] = p_articuloProveedor.codigoArticuloProveedor;
            row["Código Entidad"]            = p_articuloProveedor.codigoEntidad.ToString();
            row["Descripción"]   = p_articuloProveedor.descripcionArticuloProveedor;
            row["Precio Compra"] = p_articuloProveedor.valorCompra.valorArticulo != null?p_articuloProveedor.valorCompra.valorArticulo.ToString() : null;

            row["Precio Venta"] = p_articuloProveedor.valorVenta.valorArticulo != null?p_articuloProveedor.valorVenta.valorArticulo.ToString() : null;

            row["Stock Mínimo"] = p_articuloProveedor.stockMinimo != null?p_articuloProveedor.stockMinimo.ToString() : null;

            row["Stock Actual"] = p_articuloProveedor.stockActual != null?p_articuloProveedor.stockActual.ToString() : null;

            row["Ubicación"]     = p_articuloProveedor.ubicacion;
            row["Observaciones"] = p_articuloProveedor.observacionesArticuloProveedor;
        }
Esempio n. 10
0
        public bool eliminar(ModeloArticuloProveedores p_mod_articuloProveedor)
        {
            CatalogoArticuloProveedores lcl_cat_articuloProveedores = new CatalogoArticuloProveedores();
            bool respuesta = false;

            errorActual = "No se ha podido realizar la eliminación.";
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    respuesta = lcl_cat_articuloProveedores.remove(p_mod_articuloProveedor);
                    scope.Complete();
                }
            }
            catch (TransactionAbortedException ex)
            {
                errorActual = "TransactionAbortedException Message: " + ex.Message;
            }
            catch (ApplicationException ex)
            {
                errorActual = "ApplicationException Message: " + ex.Message;
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                switch (ex.Number)
                {
                case 547:
                    errorActual = "No es posible eliminar artículo ya que tiene pedidos o descuentos asociados.";
                    break;

                default:
                    errorActual = "SQLexception Message: " + ex.Message;
                    break;
                }
            }
            catch (Exception ex)
            {
                errorActual = ex.Message;
            }
            return(respuesta);
        }
Esempio n. 11
0
        private List <ModeloArticuloProveedores> importarDatos_getModelosValoresArticulosProveedores(DataTable p_dataTable)
        {
            //ver si agregar a una lista diferente los que tienen precios null. Considerar la conexión a base de datos posterior
            List <ModeloArticuloProveedores> lcl_lst_mod_articulosProveedores             = new List <ModeloArticuloProveedores>();
            List <ModeloArticuloProveedores> lcl_lst_mod_articulosProveedores_noAgregados = new List <ModeloArticuloProveedores>();
            ModeloArticuloProveedores        lcl_mod_articuloProveedore;
            decimal dec_aux;
            decimal?dec_nullable_aux;

            foreach (DataRow row in p_dataTable.Rows)
            {
                lcl_mod_articuloProveedore = new ModeloArticuloProveedores();

                lcl_mod_articuloProveedore.codigoOriginal          = row["Código Original"].ToString();
                lcl_mod_articuloProveedore.codigoArticuloProveedor = row["Código Artículo Proveedor"].ToString();

                if (Transformar.ToDecimal(row["valor"].ToString(), out dec_aux))
                {
                    dec_nullable_aux = dec_aux;
                }
                else
                {
                    dec_nullable_aux = null;
                    //lcl_lst_mod_articulosProveedores_noAgregados.Add(lcl_mod_articuloProveedore);
                    //continue;
                }

                if (esValorVenta)
                {
                    lcl_mod_articuloProveedore.valorVenta.valorArticulo = dec_nullable_aux;
                }
                else
                {
                    lcl_mod_articuloProveedore.valorCompra.valorArticulo = dec_nullable_aux;
                }

                lcl_lst_mod_articulosProveedores.Add(lcl_mod_articuloProveedore);
            }

            return(lcl_lst_mod_articulosProveedores);
        }
Esempio n. 12
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);
        }
Esempio n. 13
0
        /// <summary>
        /// Busca artículos proveedores y retorna cantidad encontrada
        /// </summary>
        /// <param name="p_categoriaBusquedaSeleccionada"></param>
        /// <param name="p_descripcionParcialArticulo"></param>
        /// <returns></returns>
        public int buscarArticulos(string p_categoriaBusquedaSeleccionada, string p_descripcionParcialArticulo)
        {
            var lcl_mod_ArticuloProveedor = new ModeloArticuloProveedores();

            switch (p_categoriaBusquedaSeleccionada)
            {
            case Constantes.ParametrosBusqueda.ArticulosProveedores.CodigoOriginal:
                lcl_mod_ArticuloProveedor.codigoOriginal = p_descripcionParcialArticulo; break;

            case Constantes.ParametrosBusqueda.ArticulosProveedores.DescripcionArticuloProveedor:
                p_categoriaBusquedaSeleccionada = LibreriaClasesCompartidas.Constantes.ParametrosBusqueda.ArticulosProveedores.DescripcionAmbas;
                lcl_mod_ArticuloProveedor.descripcionArticuloProveedor = p_descripcionParcialArticulo; break;

            case Constantes.ParametrosBusqueda.ArticulosProveedores.CodigoArticuloProveedor:
                lcl_mod_ArticuloProveedor.codigoArticuloProveedor = p_descripcionParcialArticulo; break;

            default:
                return(0);
            }

            resultadoBusquedaArticulosProveedores = ControladorBusqueda.buscar(lcl_mod_ArticuloProveedor, p_categoriaBusquedaSeleccionada);
            return(resultadoBusquedaArticulosProveedores.Count);
        }
Esempio n. 14
0
        private List <ModeloArticuloProveedores> importarDatos_getModelosArticulosProveedores(DataTable p_dataTable)
        {
            List <ModeloArticuloProveedores> lcl_lst_mod_articulosProveedores = new List <ModeloArticuloProveedores>();

            ModeloArticuloProveedores lcl_mod_articuloProveedor;
            int     int_aux;
            decimal dec_aux;

            foreach (DataRow row in p_dataTable.Rows)
            {
                lcl_mod_articuloProveedor = new ModeloArticuloProveedores();

                lcl_mod_articuloProveedor.codigoOriginal          = row["Código Original"].ToString();
                lcl_mod_articuloProveedor.codigoArticuloProveedor = row["Código Artículo Proveedor"].ToString();
                if (Int32.TryParse(row["Código Entidad"].ToString(), out int_aux))
                {
                    lcl_mod_articuloProveedor.codigoEntidad = int_aux;
                }
                else
                {
                    lcl_mod_articuloProveedor.codigoEntidad = 0;
                }
                lcl_mod_articuloProveedor.descripcionArticuloProveedor = string.IsNullOrWhiteSpace(row["Descripción"].ToString()) ? null : row["Descripción"].ToString();

                if (Transformar.ToDecimal(row["Precio Compra"].ToString(), out dec_aux))
                {
                    lcl_mod_articuloProveedor.valorCompra.valorArticulo = dec_aux;
                }
                else
                {
                    lcl_mod_articuloProveedor.valorCompra.valorArticulo = null;
                }

                if (Transformar.ToDecimal(row["Precio Venta"].ToString(), out dec_aux))
                {
                    lcl_mod_articuloProveedor.valorVenta.valorArticulo = dec_aux;
                }
                else
                {
                    lcl_mod_articuloProveedor.valorVenta.valorArticulo = null;
                }

                if (Int32.TryParse(row["Stock Mínimo"].ToString(), out int_aux))
                {
                    lcl_mod_articuloProveedor.stockMinimo = int_aux;
                }
                else
                {
                    lcl_mod_articuloProveedor.stockMinimo = null;
                }
                if (Int32.TryParse(row["Stock Actual"].ToString(), out int_aux))
                {
                    lcl_mod_articuloProveedor.stockActual = int_aux;
                }
                else
                {
                    lcl_mod_articuloProveedor.stockActual = null;
                }

                lcl_mod_articuloProveedor.ubicacion     = string.IsNullOrWhiteSpace(row["Ubicación"].ToString()) ? null : row["Ubicación"].ToString();
                lcl_mod_articuloProveedor.observaciones = string.IsNullOrWhiteSpace(row["Observaciones"].ToString()) ? null : row["Observaciones"].ToString();

                lcl_lst_mod_articulosProveedores.Add(lcl_mod_articuloProveedor);
            }

            return(lcl_lst_mod_articulosProveedores);
        }
Esempio n. 15
0
 public bool exists(ModeloArticuloProveedores p_articulo)
 {
     return(this.pedidoActual.existeLineaPedido(p_articulo));
 }
        /// <summary>
        /// Retorna todos los ArticulosProveedores de la base de datos
        /// </summary>
        /// <returns>Lista de Articulos de proveedores</returns>
        public static List <ModeloArticuloProveedores> getArticulosProveedores()
        {
            ModeloArticuloProveedores lcl_mod_articuloProveedor = new ModeloArticuloProveedores();

            return(ControladorBusqueda.buscar(lcl_mod_articuloProveedor, Constantes.ParametrosBusqueda.All));
        }
        /// <summary>
        /// Retorna artículos de proveedores en base a los valores inicializados en los atributos del modelo
        /// </summary>
        /// <param name="p_mod_articuloProveedores"></param>
        /// <returns>Lista de Artículos de proveedores</returns>
        public static List <ModeloArticuloProveedores> buscar(ModeloArticuloProveedores p_mod_articuloProveedores)
        {
            CatalogoArticuloProveedores lcl_cat_articuloProveedores = new CatalogoArticuloProveedores();

            return(lcl_cat_articuloProveedores.buscar(p_mod_articuloProveedores, Constantes.ParametrosBusqueda.Any));
        }