예제 #1
0
        /// <summary>
        /// Devuelve movimientos de sucursales, en los q este presente la sucursal indicada
        /// Si no encuentra nada devuelve null
        /// </summary>
        /// <param name="fechaDesde"></param>
        /// <param name="fechaHasta"></param>
        /// <param name="idSucursal"></param>
        /// <returns></returns>
        private List <MovimientosArticulos> buscarListMovSucursales(DateTime fechaDesde, DateTime fechaHasta, int idSucursal)
        {
            string    sql = "SELECT * FROM movimiento_articulos_sucursales mas WHERE  (mas.idsucursal_desde =:p3 OR mas.idsucursal_hasta=:p4) and  mas.fecha BETWEEN :p1 AND :p2";
            DataTable dt  = conn.GetDT(sql, idSucursal, idSucursal, fechaDesde, fechaHasta);

            if (dt == null || dt.Rows.Count == 0)
            {
                return(null);
            }
            ControladorArticulos        c_art  = new ControladorArticulos(conn);
            ControladorSucursal         c_suc  = new ControladorSucursal(conn);
            List <MovimientosArticulos> listMa = new List <MovimientosArticulos>();

            foreach (DataRow row in dt.Rows)
            {
                MovimientosArticulos m = new MovimientosArticulos();
                m.IdMovimiento  = Convert.ToInt32(row["idmovimiento"]);
                m.Articulo_     = c_art.BuscarArticulo(Convert.ToInt32(row["idarticulo"]));
                m.Cantidad      = Convert.ToInt32(row["cantidad"]);
                m.Fecha         = Convert.ToDateTime(row["fecha"]);
                m.IdUsuario     = Convert.ToInt32(row["idusuario"]);
                m.Observacion   = row["observacion"].ToString();
                m.SucursalDesde = c_suc.BuscarSucursal(Convert.ToInt32(row["idsucursal_desde"]));
                m.SucursalHasta = c_suc.BuscarSucursal(Convert.ToInt32(row["idsucursal_hasta"]));
                listMa.Add(m);
            }
            return(listMa);
        }
예제 #2
0
        public void AgregarAjusteStock(MovimientosArticulos m)
        {
            BeginTransaction();
            try
            {
                ///inserto el movimiento
                string sql = @"INSERT INTO movimiento_articulos
                                (                               
                                idsucursal_desde,
                                idartciulo,
                                idtipo_movimiento,
                                cantidad,
                                fecha,
                                idusuario,
                                observacion
                                )
                                VALUES
                                (
                                :idsucursal_desde,
                                :idartciulo,
                                :idtipo_movimiento,
                                :cantidad,
                                :fecha,
                                :idusuario,
                                :observacion
                                )";
                conn.Execute(sql, m.IdSucursalDesde, m.IdArticulo_, m.IdTipoMovimiento, m.Cantidad, DateTime.Today, m.IdUsuario, m.Observacion);

                ///Ahora actualizo el stock del articulo
                TipoMovimientoArticulo tm = BuscarTipoMovimiento((int)m.IdTipoMovimiento);

                ControladorArticulos c_Art = new ControladorArticulos(conn);
                if (tm.EsSuma)
                {
                    c_Art.ActualizarStockArticulo(m.IdArticulo_, m.Cantidad, m.IdSucursalDesde);
                }
                else
                {
                    c_Art.ActualizarStockArticulo(m.IdArticulo_, -m.Cantidad, m.IdSucursalDesde);
                }

                CommitTransaction();
            }
            catch (Npgsql.NpgsqlException ex)
            {
                RollbackTransaction();
                ControladorExcepcion.tiraExcepcion(ex);
            }
            catch (FormatException ex)
            {
                RollbackTransaction();
                ControladorExcepcion.tiraExcepcion(ex.Message);
            }
        }
예제 #3
0
        public void AgregarMovimientoEntreSucursales(MovimientosArticulos m)
        {
            BeginTransaction();
            try
            {
                string sql = @"INSERT INTO movimiento_articulos_sucursales
                                (	
	                                idsucursal_desde,
	                                idsucursal_hasta,
	                                idarticulo,
	                                cantidad,
	                                fecha,
	                                idusuario,
	                                observacion
                                )
                                VALUES
                                (
	                                :idsucursal_desde,
	                                :idsucursal_hasta,
	                                :idarticulo,
	                                :cantidad,
	                                :fecha,
	                                :idusuario,
	                                :observacion
                                )";
                conn.Execute(sql, m.IdSucursalDesde, m.IdSucursalHasta, m.IdArticulo_, m.Cantidad, m.Fecha, m.IdUsuario, m.Observacion);
                ControladorArticulos c_Art = new ControladorArticulos(conn);
                ///Resto articulo en sucursal Desde
                c_Art.ActualizarStockArticulo(m.IdArticulo_, -m.Cantidad, m.IdSucursalDesde);
                ///Sumo Articulkos en sucursal hasta
                c_Art.ActualizarStockArticulo(m.IdArticulo_, m.Cantidad, (int)m.IdSucursalHasta);
                CommitTransaction();
            }
            catch (Npgsql.NpgsqlException ex)
            {
                RollbackTransaction();
                ControladorExcepcion.tiraExcepcion(ex);
            }
        }
예제 #4
0
    protected void btnAceptarModal_Click(object sender, EventArgs e)
    {
        try
        {
            if (esAjujsteStock)
            {
                MovimientosArticulos m = new MovimientosArticulos();
                m.Articulo_            = new Articulo();
                m.Articulo_.Idarticulo = Convert.ToInt32(hfIdArticuloStock.Value);

                m.Cantidad  = Convert.ToInt32(txtCantidadStock.Text);
                m.Fecha     = DateTime.Today;
                m.IdUsuario = ApplicationSesion.ActiveUser.Idusuario;

                m.Observacion              = txtObservacionesStock.Text;
                m.SucursalDesde            = new Sucursal();
                m.SucursalDesde.IdSucursal = ucCbxSucursalesStock.SelectedValue;

                m.TipoMovimiento = new TipoMovimientoArticulo();
                m.TipoMovimiento.IdTipoMovimiento = ucCbxTipoMovimientoArticulo.SelectedValue;

                using (ControladorMovimientos c_mov = new ControladorMovimientos())
                {
                    c_mov.AgregarAjusteStock(m);
                }

                txtDescArtciuloStock.Text  = "";
                txtObservacionesStock.Text = "";
                txtCantidadStock.Text      = "";
                hfIdArticuloStock.Value    = "";
                cerrarModal(modalConfirmacion);

                mostrarMensaje("Ajuste de Stock agregado con exito");
            }
            else
            {
                MovimientosArticulos m = new MovimientosArticulos();
                m.Articulo_            = new Articulo();
                m.Articulo_.Idarticulo = Convert.ToInt32(hfIdArticuloDescripcion.Value);

                m.Cantidad  = Convert.ToInt32(txtCantidadSucursal.Text);
                m.Fecha     = DateTime.Today;
                m.IdUsuario = ApplicationSesion.ActiveUser.Idusuario;

                m.Observacion              = txtObservacionesSucursal.Text;
                m.SucursalDesde            = new Sucursal();
                m.SucursalDesde.IdSucursal = ucCbxSucursalesDesde.SelectedValue;

                m.SucursalHasta            = new Sucursal();
                m.SucursalHasta.IdSucursal = ucCbxSucursalHasta.SelectedValue;

                using (ControladorMovimientos c_mov = new ControladorMovimientos())
                {
                    c_mov.AgregarMovimientoEntreSucursales(m);
                }

                txtDescArticulo.Text          = "";
                txtCantidadSucursal.Text      = "";
                txtObservacionesSucursal.Text = "";
                hfIdArticuloDescripcion.Value = "";

                cerrarModal(modalConfirmacion);

                mostrarMensaje("Movimiento de Articulo entre sucursal realizado con exito");
            }
            bindGrillaMovimientos();
        }
        catch (ExcepcionPropia ex)
        {
            mostrarExcepcion(ex.Message);
            cerrarModal(modalConfirmacion);
        }
    }