private void btnEliminarIngreso_Click(object sender, EventArgs e)
        {
            int          idIngresoAEliminar = int.Parse(dgvListadoIngresos.SelectedRows[0].Cells[0].Value.ToString());
            DialogResult resultadoDialgo    = MetroMessageBox.Show(this, "¿Desea eliminar esta compra?", "¡Aviso!",
                                                                   MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);

            if (resultadoDialgo == DialogResult.Yes)
            {
                List <DetalleIngreso> listadoDetalles = DetalleIngresoBL.ObtenerTodos(idIngresoAEliminar);
                if (listadoDetalles.Count >= 1)
                {
                    DialogResult resultado = MetroMessageBox.Show(this, "Se eliminarán la compra y todos sus detalles.", "¡Advertencia!",
                                                                  MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
                    if (resultado == DialogResult.OK)
                    {
                        foreach (var item in listadoDetalles)
                        {
                            DetalleIngresoBL.Eliminar(item.Id);
                        }
                        IngresoBL.Eliminar(idIngresoAEliminar);
                    }
                }
                else
                {
                    IngresoBL.Eliminar(idIngresoAEliminar);
                }
                CargarIngresos();
            }
        }
Esempio n. 2
0
        void GuardarCompra()
        {
            Cursor = Cursors.WaitCursor;
            //  try
            //{
            if (dgvListadoDetallesIngreso.Rows.Count < 1)
            {
                epValidadorControles.SetError(dgvListadoDetallesIngreso, "Debe agregar al menos un detalle.");
            }
            else
            {
                if (idIngreso == null)
                {
                    int     resultIngreso        = 0;
                    int     resultDetalleIngreso = 0;
                    Ingreso ingresoARegistrar    = new Ingreso();
                    ingresoARegistrar.IdUsuario    = FrmPrincipal.usuarioActual.Id;
                    ingresoARegistrar.IdMarca      = marca.Id;
                    ingresoARegistrar.FechaIngreso = dtpFechaIngreso.Value;
                    ingresoARegistrar.NumeroCCF    = txtNumeroCCF.Text.Trim();
                    resultIngreso += IngresoBL.Guardar(ingresoARegistrar);
                    for (int i = 0; i < listadoDetallesIngreso.Count; i++)
                    {
                        DetalleIngreso detalleIngresoARegistrar = new DetalleIngreso();
                        detalleIngresoARegistrar.IdIngreso      = IngresoBL.BuscarPorNumeroCCF(marca.Id, dtpFechaIngreso.Value, txtNumeroCCF.Text).Id;
                        detalleIngresoARegistrar.IdProducto     = listadoDetallesIngreso[i].IdProducto;
                        detalleIngresoARegistrar.Cantidad       = listadoDetallesIngreso[i].Cantidad;
                        detalleIngresoARegistrar.PrecioUnitario = listadoDetallesIngreso[i].PrecioUnitario;
                        resultDetalleIngreso += DetalleIngresoBL.Guardar(detalleIngresoARegistrar);
                    }
                    MetroMessageBox.Show(this, $"{resultIngreso} ingreso registrado.\n{resultDetalleIngreso} detalle(s) registrado(s).",
                                         "Registro de ingresos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Limpiar();
                }
                else
                {
                    int resultIngreso             = 0;
                    int resultDetallesModificados = 0;
                    int resultDetallesAñadidos    = 0;
                    int resultadoEliminados       = 0;
                    ingresoEditando.IdUsuario    = FrmPrincipal.usuarioActual.Id;
                    ingresoEditando.IdMarca      = marca.Id;
                    ingresoEditando.FechaIngreso = dtpFechaIngreso.Value;
                    ingresoEditando.NumeroCCF    = txtNumeroCCF.Text.Trim();
                    resultIngreso += IngresoBL.Modificar(ingresoEditando);
                    for (int i = 0; i < listadoDetallesIngreso.Count; i++)
                    {
                        DetalleIngreso detalleIngresoARegistrar = new DetalleIngreso();
                        detalleIngresoARegistrar.IdProducto     = listadoDetallesIngreso[i].IdProducto;
                        detalleIngresoARegistrar.Cantidad       = listadoDetallesIngreso[i].Cantidad;
                        detalleIngresoARegistrar.PrecioUnitario = listadoDetallesIngreso[i].PrecioUnitario;
                        if (listadoViejoDetallesIngreso.Find(x => x.Id == listadoViejoDetallesIngreso[i].Id) != null)
                        {
                            resultDetallesModificados += DetalleIngresoBL.Modificar(detalleIngresoARegistrar);
                        }
                        else
                        {
                            resultDetallesAñadidos += DetalleIngresoBL.Guardar(detalleIngresoARegistrar);
                        }
                    }
                    if (detallesViejosAEliminarDeLaBD.Count >= 1)
                    {
                        for (int i = 0; i < detallesViejosAEliminarDeLaBD.Count; i++)
                        {
                            resultadoEliminados += DetalleIngresoBL.Eliminar(detallesViejosAEliminarDeLaBD[i]);
                        }
                    }
                    objetoIngresosActual.CargarIngresos();
                    DialogResult resultadoDelDialgo = MetroMessageBox.Show
                                                          (this, $"{resultIngreso} ingreso actualizado.\n{resultDetallesModificados} detalle(s) actualizado(s).\n" +
                                                          $"{resultDetallesAñadidos} detalle(s) registrado(s).\n{resultadoEliminados} detalle(s) eliminado(s).\n¿Desea cerrar el editor?",
                                                          "Actualización de ingresos", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                    if (resultadoDelDialgo == DialogResult.Yes)
                    {
                        Close();
                    }
                }
            }

            /*   }
             *  catch (Exception error)
             *  {
             *      MetroMessageBox.Show(this, $"¡Ha ocurrido un error!\nMÁS INFORMACIÓN: {error.Message}", "Error", MessageBoxButtons.OK,
             *          MessageBoxIcon.Error);
             *      Close();
             *  }*/
            Cursor = Cursors.Arrow;
        }