public int InsertarCompra(Modelo.Compras.Compra c)
        {
            SqlConnection  connection  = null;
            SqlCommand     cmd         = null;
            SqlTransaction transaction = null;

            try
            {
                connection = GetConnection();
                connection.Open();

                transaction = connection.BeginTransaction();

                cmd             = connection.CreateCommand();
                cmd.Transaction = transaction;

                cmd.CommandText = "INSERT INTO [Compras].[Compras] VALUES (@Proveedor,GETDATE(),null,@CompradoPor)" + Environment.NewLine +
                                  "SELECT CAST(SCOPE_IDENTITY() as int)";

                cmd.Parameters.AddWithValue("@Proveedor", c.Proveedor.IdProveedor);
                cmd.Parameters.AddWithValue("@CompradoPor", c.CompradoPor.IdUsuario);

                var id = cmd.ExecuteScalar();
                c.IdCompra = (int)id;

                foreach (Modelo.Compras.DetalleCompra d in c.DetalleCompras)
                {
                    cmd.CommandText = "INSERT INTO [Compras].[DetalleCompra] VALUES (@Compra,@Material,@Cantidad,@Costo)" + Environment.NewLine +
                                      "SELECT CAST(SCOPE_IDENTITY() as int)";

                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@Compra", id);
                    cmd.Parameters.AddWithValue("@Material", d.Material.IdMaterial);
                    cmd.Parameters.AddWithValue("@Cantidad", d.Cantidad);
                    cmd.Parameters.AddWithValue("@Costo", d.Costo);

                    d.IdDetalleCompra = (int)cmd.ExecuteScalar();
                }

                transaction.Commit();

                return((int)id);
            }
            catch (Exception ex)
            {
                if (transaction != null)
                {
                    transaction.Rollback();
                }
                throw ex;
            }
            finally
            {
                if (connection != null)
                {
                    connection.Close();
                    connection.Dispose();
                }
            }
        }
Exemple #2
0
        public Compras(Modelo.Compras.Compra c) : this()
        {
            if (c == null)
            {
                return;
            }

            this.CurrentCompra = c;

            txtIdCompra.EditValue   = c.IdCompra;
            CmbProveedor.EditValue  = c.Proveedor.IdProveedor;
            DtpFechaOrden.EditValue = c.FechaOrden;
            foreach (Modelo.Compras.DetalleCompra d in c.DetalleCompras)
            {
                DataRow row = DetalleCompra.NewRow();
                row["Material"] = d.Material.IdMaterial;
                row["Cantidad"] = d.Cantidad;
                row["Precio"]   = d.Costo;
                DetalleCompra.Rows.Add(row);
            }

            DtpFechaOrden.ReadOnly       = true;
            CmbProveedor.ReadOnly        = true;
            LciEntregar.Visibility       = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            LciGuardar.Visibility        = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            LciFechaRecepcion.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;


            BtnGuardar.Enabled = false;
            GvCompras.OptionsBehavior.Editable       = false;
            GvCompras.OptionsView.NewItemRowPosition = DevExpress.XtraGrid.Views.Grid.NewItemRowPosition.None;


            GvCompras.OptionsBehavior.Editable = false;
        }
Exemple #3
0
        public Compras()
        {
            InitializeComponent();
            ctrlMaterial  = new Controlador.Produccion.ControladorMaterial();
            ctrlProveedor = new Controlador.Compras.ControladorProveedor();
            ctrlCompra    = new Controlador.Compras.ControladorCompra();

            this.CurrentCompra = null;

            Limpiar();
        }
        public Modelo.Compras.Compra GetById(int id)
        {
            SqlConnection connection = null;
            SqlCommand    cmd        = null;
            SqlDataReader reader     = null;

            Modelo.Compras.Compra c = null;

            try
            {
                connection = GetConnection();
                connection.Open();
                cmd = connection.CreateCommand();

                cmd.CommandText = "SELECT c.* " +
                                  "FROM [Compras].[Compras] c " +
                                  "WHERE c.IdCompra = @Id";

                cmd.Parameters.AddWithValue("@Id", id);

                reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    c                = new Modelo.Compras.Compra();
                    c.IdCompra       = (int)reader["IdCompra"];
                    c.Proveedor      = new Controlador.Compras.ControladorProveedor().GetById((int)reader["Proveedor"]);
                    c.FechaOrden     = (DateTime)reader["FechaOrden"];
                    c.FechaRecepcion = reader["FechaRecepcion"] != DBNull.Value ? (DateTime)reader["FechaRecepcion"] : DateTime.Today;
                    c.CompradoPor    = new Controlador.Usuarios.ControladorUsuario().GetById((int)reader["CompradoPor"]);
                    c.DetalleCompras = new Controlador.Compras.ControladorDetalleCompra().GetByCompra(c.IdCompra);
                }

                return(c);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (connection != null)
                {
                    connection.Close();
                    connection.Dispose();
                }
            }
        }
Exemple #5
0
        public void Limpiar()
        {
            this.CurrentCompra = null;

            DtpFechaOrden.ReadOnly                = false;
            DtpFechaOrden.Properties.MinValue     = DateTime.Today;
            DtpFechaRecepcion.Properties.MinValue = DateTime.Today;
            CmbProveedor.ReadOnly        = false;
            LciEntregar.Visibility       = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            LciGuardar.Visibility        = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            LciFechaRecepcion.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;

            DtpFechaOrden.EditValue     = DateTime.Today;
            DtpFechaRecepcion.EditValue = DateTime.Today;

            txtIdCompra.EditValue  = null;
            CmbProveedor.EditValue = null;
            InitGrid();
        }
Exemple #6
0
        private Modelo.Compras.Compra GenerarCompra()
        {
            Modelo.Compras.Compra c = new Modelo.Compras.Compra()
            {
                CompradoPor    = Session.UsuarioEnCurso,
                Proveedor      = ctrlProveedor.GetById((int)CmbProveedor.EditValue),
                DetalleCompras = new List <Modelo.Compras.DetalleCompra>()
            };

            foreach (DataRow row in DetalleCompra.Rows)
            {
                Modelo.Compras.DetalleCompra d = new Modelo.Compras.DetalleCompra();
                d.Material = ctrlMaterial.GetById((int)row["Material"]);
                d.Cantidad = (double)(int)row["Cantidad"];
                d.Costo    = (double)row["Precio"];

                c.DetalleCompras.Add(d);
            }

            return(c);
        }
        public void UpdateCompra(Modelo.Compras.Compra c)
        {
            SqlConnection  connection  = null;
            SqlCommand     cmd         = null;
            SqlTransaction transaction = null;

            try
            {
                connection = GetConnection();
                connection.Open();

                transaction = connection.BeginTransaction();

                cmd             = connection.CreateCommand();
                cmd.Transaction = transaction;

                cmd.CommandText = "UPDATE [Compras].[Compras] SET " +
                                  "Proveedor = @Proveedor," +
                                  "FechaRecepcion = @FechaRecepcion," +
                                  "CompradoPor = @CompradoPor" + Environment.NewLine +
                                  "WHERE IdCompra = @IdCompra";

                cmd.Parameters.AddWithValue("@Proveedor", c.Proveedor.IdProveedor);
                cmd.Parameters.AddWithValue("@FechaRecepcion", c.FechaRecepcion);
                cmd.Parameters.AddWithValue("@CompradoPor", c.CompradoPor);
                cmd.Parameters.AddWithValue("@IdCompra", c.IdCompra);

                cmd.ExecuteNonQuery();

                if (c.DetalleCompras != null)
                {
                    foreach (Modelo.Compras.DetalleCompra d in c.DetalleCompras)
                    {
                        cmd.CommandText = "UPDATE [Compras].[DetalleCompra] SET " +
                                          "Material = @Material," +
                                          "Cantidad = @Cantidad," +
                                          "Costo = @Costo)" + Environment.NewLine +
                                          "WHERE IdDetalleCompra = @IdDetalle";

                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("@IdDetalleCompra", d.IdDetalleCompra);
                        cmd.Parameters.AddWithValue("@Material", d.Material.IdMaterial);
                        cmd.Parameters.AddWithValue("@Cantidad", d.Cantidad);
                        cmd.Parameters.AddWithValue("@Costo", d.Costo);

                        cmd.ExecuteNonQuery();
                    }
                }

                transaction.Commit();
            }
            catch (Exception ex)
            {
                if (transaction != null)
                {
                    transaction.Rollback();
                }
                throw ex;
            }
            finally
            {
                if (connection != null)
                {
                    connection.Close();
                    connection.Dispose();
                }
            }
        }
Exemple #8
0
        private void GuardarCompra()
        {
            Modelo.Compras.Compra c = GenerarCompra();

            ctrlCompra.InsertarCompra(c);
        }