private void BtnAnularVenta_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show("Esta Seguro de Anular esta venta?", "Anular Venta", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
     {
         if (dgdListaVentas.Items.Count > 0 && dgdListaVentas.SelectedItem != null)
         {
             //Realizamos Get
             try
             {
                 DataRowView dataRow = (DataRowView)dgdListaVentas.SelectedItem;
                 idVen = int.Parse(dataRow.Row.ItemArray[0].ToString());
                 brl   = new VentaBRL();
                 venta = brl.Get(idVen);
                 LoadDataGridIdItems();
                 MotivoAnulacionVenta motivoAnulacionVenta = new MotivoAnulacionVenta();
                 motivoAnulacionVenta.ShowDialog();
                 txtmotivodeAnulacion.Text = motivoAnulacionVenta.txtmotivoAnulacion.Text;
                 //Anular Venta
                 DateTime fecha = DateTime.Now;
                 brl = new VentaBRL();
                 DataTable   dt    = brl.SelectIdItemsAnular(idVen);
                 List <Item> items = new List <Item>();
                 for (int i = 0; i < dt.Rows.Count; i++)
                 {
                     items.Add(new Item()
                     {
                         IdItem = int.Parse(dt.Rows[i][0].ToString())
                     });
                 }
                 Venta ventaa = new Venta()
                 {
                     IdVenta = idVen
                 };
                 Garantia garantia = new Garantia()
                 {
                     IdGarantia = idVen
                 };
                 VentaAnulada ventaNull = new VentaAnulada()
                 {
                     IdVentaAnulada = idVen, IdEmpleado = Sesion.idSesion, FechaRegistro = fecha, Motivo = txtmotivodeAnulacion.Text
                 };
                 brl.AnularVentas(ventaa, garantia, items, ventaNull);
                 LoadDataGrid();
             }
             catch (Exception ex)
             {
                 MessageBox.Show("Ocurrio un error comuniquese con el administrador de sistemas");
             }
         }
     }
 }
예제 #2
0
        /// <summary>
        /// Metodo Anular Venta
        /// </summary>
        /// <param name="venta"></param>
        /// <param name="garantia"></param>
        /// <param name="items"></param>
        /// <param name="ventaAnulada"></param>
        public void AnularVenta(Venta venta, Garantia garantia, List <Item> items, VentaAnulada ventaAnulada)
        {
            SqlConnection connection = Methods.GetConnection();

            connection.Open();

            SqlCommand command = connection.CreateCommand();
            //inicio transaccion
            SqlTransaction transaction;

            transaction         = connection.BeginTransaction("AnularVenta");
            command.Connection  = connection;
            command.Transaction = transaction;

            try
            {
                //query 1 Venta
                Methods.GenerateLogsActivities(DateTime.Now, "Inicio del Metodo Anular Venta con transacciones", Sesion.usuarioSesion);
                command.CommandText = "UPDATE Venta SET estadoVenta=0, total=0 WHERE idVenta=@idVenta";
                command.Parameters.AddWithValue("@idVenta", venta.IdVenta);
                command.ExecuteNonQuery();



                //query Venta Item
                command.CommandText = "UPDATE Item SET estadoItem=1 WHERE idItem=@idItem";
                int cont = 0;
                foreach (Item producto in items)
                {
                    command.Parameters.AddWithValue("@idItem", producto.IdItem);
                    command.ExecuteNonQuery();
                    command.Parameters.Clear();
                    cont++;
                }

                //query Garantia
                command.CommandText = "UPDATE Garantia SET estadoGarantia=0 WHERE idGarantia=@idGarantia";
                command.Parameters.AddWithValue("@idGarantia", garantia.IdGarantia);
                command.ExecuteNonQuery();

                //query Venta Anulada
                command.CommandText = "INSERT INTO VentaAnulada(idVentaAnulada,idEmpleado,fechaHora,motivo) VALUES (@idVentaAnulada,@idEmpleado,@fechaHora,@motivo)";
                command.Parameters.AddWithValue("@idVentaAnulada", ventaAnulada.IdVentaAnulada);
                command.Parameters.AddWithValue("@idEmpleado", Sesion.idSesion);
                command.Parameters.AddWithValue("@fechaHora", ventaAnulada.FechaRegistro);
                command.Parameters.AddWithValue("@motivo", ventaAnulada.Motivo);
                command.ExecuteNonQuery();

                //query Auditoria Proceso principal
                string descripcionVenta = "ID Venta:  " + venta.IdVenta + ",  Venta de: " + cont + "  Items" + ",  Total: " + venta.Total + ",  ID Garantia: " + venta.IdVenta + ",  Motivo de Anulacion: " + ventaAnulada.Motivo;
                string tabla            = "Venta";
                char   c = 'D';
                command.CommandText = "INSERT INTO AuditoriaPrincipal (tabla,creaDele,descripcion,idUsuario)VALUES(@tabla,@creaDele,@descripcion,@idUsuario)";
                command.Parameters.AddWithValue("@tabla", tabla);
                command.Parameters.AddWithValue("@creaDele", c);
                command.Parameters.AddWithValue("@descripcion", descripcionVenta);
                command.Parameters.AddWithValue("@idUsuario", Sesion.idSesion);
                command.ExecuteNonQuery();

                // Attempt to commit the transaction.
                transaction.Commit();
                Methods.GenerateLogsActivities(DateTime.Now, "Anular Venta con transacciones Realizada", Sesion.usuarioSesion);
            }
            catch (SqlException ex)
            {
                Methods.GenerateLogsErrors(DateTime.Now, ex.Message);
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                Methods.GenerateLogsErrors(DateTime.Now, ex.Message);
            }
        }
예제 #3
0
 /// <summary>
 /// Metodo AnularVentas VentaBRL
 /// </summary>
 /// <param name="venta"></param>
 /// <param name="garantia"></param>
 /// <param name="items"></param>
 /// <param name="ventaAnulada"></param>
 public void AnularVentas(Venta venta, Garantia garantia, List <Item> items, VentaAnulada ventaAnulada)
 {
     dal.AnularVenta(venta, garantia, items, ventaAnulada);
 }