예제 #1
0
 /// <summary>
 /// Si no encuentra nada devuelve null
 /// </summary>
 /// <returns></returns>
 public List <TipoMovimientoArticulo> BuscarListTiposMovimientos()
 {
     try
     {
         string    sql = "SELECT * FROM tipo_movimiento_articulo tma WHERE tma.fecha_baja IS NULL";
         DataTable dt  = conn.GetDT(sql);
         if (dt == null || dt.Rows.Count == 0)
         {
             return(null);
         }
         else
         {
             List <TipoMovimientoArticulo> listT = new List <TipoMovimientoArticulo>();
             foreach (DataRow row in dt.Rows)
             {
                 TipoMovimientoArticulo tm = mapearTipoMovimiento(row);
                 listT.Add(tm);
             }
             return(listT);
         }
     }
     catch (Npgsql.NpgsqlException ex)
     {
         ControladorExcepcion.tiraExcepcion(ex);
         return(null);
     }
 }
예제 #2
0
        private static TipoMovimientoArticulo mapearTipoMovimiento(DataRow row)
        {
            TipoMovimientoArticulo tm = new TipoMovimientoArticulo();

            tm.Descripcion      = row["descripcion"].ToString();
            tm.EsSuma           = Convert.ToBoolean(row["es_suma"]);
            tm.IdTipoMovimiento = Convert.ToInt32(row["idtipo_movimiento"]);
            tm.FechaBaja        = row["fecha_baja"] as DateTime?;
            return(tm);
        }
예제 #3
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);
            }
        }