private void metroButtonConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                ProveedorManager prov = new ProveedorManager();

                //textBoxImportePago.Text.Replace(".",".");
                //textBoxIIBB.Text.Replace(",",".");
                //textBoxRetenciones.Text.Replace(".",",");
                if (string.IsNullOrEmpty(metroTextBoxPuntoV.Text) || string.IsNullOrEmpty(metroTextBoxNoFactura.Text) || metroGridProductosServicios.Rows.Count == 0)
                {
                    MessageBox.Show("Error, No posee ningun comprobante para Confirmar", "Sistema de Gestion de Compras", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    if ((int)metroComboBoxCondicionCompra.SelectedValue == 1)
                    {
                        ComprobantesManager c = new ComprobantesManager();
                        PagosManager        p = new PagosManager();

                        double iibb        = Convert.ToDouble(metroTextBoxIIBB.Text.Replace(".", ","));
                        double retenciones = Convert.ToDouble(metroTextBoxRetenciones.Text.Replace(".", ","));
                        double otrosgastos = Convert.ToDouble(metroTextBoxOtrosGastos.Text.Replace(".", ","));
                        double roundednum  = Convert.ToDouble(metroTextBoxImporte.Text.Replace(".", ","));
                        double retiva1     = Convert.ToDouble(metroTextBoxPercepcion.Text.Replace(".", ","));

                        c.ActualizarImporteComprobante(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)));
                        c.ActualizarEstado(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)), 1);
                        c.ActualizarOtrosGastosComprobante(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)), Math.Round(iibb, 2), Math.Round(retenciones, 2), Math.Round(otrosgastos, 2), Math.Round(retiva1, 2));

                        //insertar un pago en efectivo



                        int idpago = p.InsertarPagoContado(metroDateTimeFecha.Value, metroTextBoxConceptoPago.Text, Math.Round(roundednum, 2));

                        p.InsertarDetallePago(idpago, c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)));

                        p.InsertarMediosPagoContado(int.Parse(metroComboBoxMedioPago.SelectedValue.ToString()), Math.Round(roundednum, 2), idpago);

                        MessageBox.Show("Se Actualizaron todos los Datos del Comprobante con el pago", "Sistema de Gestion de Compras", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        metroTextBoxPuntoV.Clear();
                        metroTextBoxNoFactura.Clear();
                        metroTextBoxConceptoPago.Clear();
                        metroTextBoxPercepcion.Clear();
                        metroTextBoxIIBB.Clear();
                        metroTextBoxRetenciones.Clear();
                        metroTextBoxImporte.Clear();
                        metroTextBoxIIBB.Text        = "00,00";
                        metroTextBoxRetenciones.Text = "00,00";
                        metroTextBoxOtrosGastos.Text = "00,00";
                        metroTextBoxImporte.Text     = "00,00";
                        metroTextBoxPercepcion.Text  = "00,00";

                        metroGridProductosServicios.DataSource = null;
                        metroTextBoxProveedor.Enabled          = true;
                        metroTextBoxPuntoV.Enabled             = true;
                        metroTextBoxNoFactura.Enabled          = true;
                        metroComboBoxCondicionCompra.Enabled   = true;
                        metroComboBoxTipoComprobante.Enabled   = true;
                        metroComboBoxContable.Enabled          = true;
                        metroComboBoxCentroCosto.Enabled       = true;

                        metroComboBoxTipoFactura.Enabled = true;
                        metroDateTimeFecha.Enabled       = true;
                        metroDateTimeVencimiento.Enabled = true;
                        metroPanelProducto.Enabled       = false;
                        metroPanelPago.Enabled           = false;
                        metroPanelGastos.Enabled         = false;
                    }
                    if ((int)metroComboBoxCondicionCompra.SelectedValue == 2)
                    {
                        ComprobantesManager c = new ComprobantesManager();
                        double iibb           = Convert.ToDouble(metroTextBoxIIBB.Text.Replace(".", ","));
                        double retenciones    = Convert.ToDouble(metroTextBoxRetenciones.Text.Replace(".", ","));
                        double otrosgastos    = Convert.ToDouble(metroTextBoxOtrosGastos.Text.Replace(".", ","));
                        double roundednum     = Convert.ToDouble(metroTextBoxImporte.Text.Replace(".", ","));
                        double retiva1        = Convert.ToDouble(metroTextBoxPercepcion.Text.Replace(".", ","));

                        c.ActualizarImporteComprobante(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)));
                        c.ActualizarEstado(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)), 2);
                        c.ActualizarOtrosGastosComprobante(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)), Math.Round(iibb, 2), Math.Round(retenciones, 2), Math.Round(otrosgastos, 2), Math.Round(retiva1, 2));

                        //Como es condicion de compra cuenta corriente no se ingresa ningun pago
                        MessageBox.Show("Insertado con exito", "Sistema de Gestion de Compras", MessageBoxButtons.OK, MessageBoxIcon.Information);



                        metroTextBoxPuntoV.Clear();
                        metroTextBoxNoFactura.Clear();
                        metroTextBoxPercepcion.Clear();
                        metroTextBoxIIBB.Clear();
                        metroTextBoxRetenciones.Clear();
                        metroTextBoxImporte.Clear();
                        metroTextBoxOtrosGastos.Clear();

                        metroTextBoxIIBB.Text        = "00,00";
                        metroTextBoxRetenciones.Text = "00,00";
                        metroTextBoxOtrosGastos.Text = "00,00";
                        metroTextBoxPercepcion.Text  = "00,00";
                        metroTextBoxImporte.Text     = "00,00";

                        metroGridProductosServicios.DataSource = null;
                        metroTextBoxProveedor.Enabled          = true;
                        metroTextBoxPuntoV.Enabled             = true;
                        metroTextBoxNoFactura.Enabled          = true;
                        metroComboBoxCondicionCompra.Enabled   = true;
                        metroComboBoxTipoComprobante.Enabled   = true;
                        metroComboBoxContable.Enabled          = true;
                        metroComboBoxCentroCosto.Enabled       = true;

                        metroComboBoxTipoFactura.Enabled = true;
                        metroDateTimeFecha.Enabled       = true;
                        metroDateTimeVencimiento.Enabled = true;
                        metroPanelProducto.Enabled       = false;
                        metroPanelPago.Enabled           = false;
                        metroPanelGastos.Enabled         = false;
                    }
                    else
                    {
                        //if (metroComboBoxCondicionCompra.SelectedValue.ToString() == "2")
                        //{
                        //    ComprobantesManager c = new ComprobantesManager();
                        //    Double iibb = Math.Round(Convert.ToDouble(metroTextBoxIIBB.Text.Replace(".", ",")), 2);
                        //    Double retenciones = Math.Round(Convert.ToDouble(metroTextBoxRetenciones.Text.Replace(".", ",")), 2);
                        //    Double otrosgastos = Math.Round(Convert.ToDouble(metroTextBoxOtrosGastos.Text.Replace(".", ",")), 2);
                        //    double ivaRet = Math.Round(Convert.ToDouble(metroTextBoxIva.Text.Replace(".", ",")), 2);

                        //    c.ActualizarImporteComprobante(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)));
                        //    c.ActualizarEstado(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)), 2);
                        //    c.ActualizarOtrosGastosComprobante(c.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)), iibb, retenciones, otrosgastos, ivaRet);

                        //    //Como es condicion de compra cuenta corriente no se ingresa ningun pago



                        //    metroTextBoxPuntoV.Clear();
                        //    metroTextBoxNoFactura.Clear();
                        //    metroTextBoxPercepcion.Clear();
                        //    metroTextBoxIIBB.Clear();
                        //    metroTextBoxRetenciones.Clear();
                        //    metroTextBoxImporte.Clear();
                        //    metroTextBoxOtrosGastos.Clear();

                        //    metroTextBoxIIBB.Text = "00,00";
                        //    metroTextBoxRetenciones.Text = "00,00";
                        //    metroTextBoxOtrosGastos.Text = "00,00";
                        //    metroTextBoxPercepcion.Text = "00,00";
                        //    metroTextBoxImporte.Text = "00,00";

                        //    metroGridProductosServicios.DataSource = null;
                        //    metroTextBoxProveedor.Enabled = true;
                        //    metroTextBoxPuntoV.Enabled = true;
                        //    metroTextBoxNoFactura.Enabled = true;
                        //    metroComboBoxCondicionCompra.Enabled = true;
                        //    metroComboBoxTipoComprobante.Enabled = true;
                        //    metroComboBoxContable.Enabled = true;
                        //    metroComboBoxCentroCosto.Enabled = true;

                        //    metroComboBoxTipoFactura.Enabled = true;
                        //    metroDateTimeFecha.Enabled = true;
                        //    metroDateTimeVencimiento.Enabled = true;


                        //}
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void metroButtonCancelarProducto_Click(object sender, EventArgs e)
        {
            try
            {
                ProveedorManager prov = new ProveedorManager();
                if (metroGridProductosServicios.Rows.Count == 0)
                {
                    MessageBox.Show("Error, no tiene articulo para eliminar", "Sistema de Gestion", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    ArticulosComprobanteManager a    = new ArticulosComprobanteManager();
                    ComprobantesManager         comp = new ComprobantesManager();
                    if (a.EliminarArticuloComprobante(int.Parse(metroGridProductosServicios.CurrentRow.Cells["ID"].Value.ToString())) == 1)
                    {
                        MessageBox.Show("Se ha eliminado Correctamente", "Sistema de Gestion Integral", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        List <SeleccionarDetalleComprobantesArticulos_Result> listarticulo = a.SeleccionarDetallesComprobantesArticulos(comp.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, prov.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)));
                        metroGridProductosServicios.AutoGenerateColumns = false;
                        metroGridProductosServicios.DataSource          = listarticulo;
                        metroGridProductosServicios.AutoSize            = true;

                        foreach (var item in listarticulo)
                        {
                            ID.DataPropertyName            = "idTable_DetallesComprobanteArticulos";
                            IDComprobante.DataPropertyName = "IdComprobante";
                            Producto.DataPropertyName      = "Nombre";
                            Cantidad.DataPropertyName      = "Cantidad";
                            PrecioCompra.DataPropertyName  = "Precio";
                            Iva.DataPropertyName           = "Iva";
                            Importe.DataPropertyName       = "Importe";
                        }
                    }
                    else
                    {
                        MessageBox.Show("Error Al eliminar el Proveedor");
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void metroTextBoxPrecio_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                try
                {
                    DetallesComprobanteArticulos art = new DetallesComprobanteArticulos();
                    ArticuloManager             a    = new ArticuloManager();
                    ArticulosComprobanteManager detalleTableArticulocomprobantes = new ArticulosComprobanteManager();
                    ComprobantesManager         comp = new ComprobantesManager();

                    ProveedorManager p = new ProveedorManager();
                    if (string.IsNullOrEmpty(metroTextBoxProducto.Text) == true || string.IsNullOrEmpty(metroTextBoxCantidad.Text) == true || String.IsNullOrEmpty(metroTextBoxPuntoV.Text) == true || string.IsNullOrEmpty(metroTextBoxNoFactura.Text) == true)
                    {
                        MessageBox.Show("Debe Ingresar el Articulo", "Sistema de Gestion de Compras", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        if (metroCheckBoxIvaExento.Checked == true)
                        {
                            ////INSERTAR EN LA TABLA ARTICULOS COMPROBANTES
                            //DetallesComprobanteArticulos art = new DetallesComprobanteArticulos();
                            //ArticuloManager a = new ArticuloManager();
                            //ArticulosComprobanteManager detalleTableArticulocomprobantes = new ArticulosComprobanteManager();
                            //ComprobantesManager comp = new ComprobantesManager();

                            double precioxcant  = 0;
                            double ivacalculado = 0;



                            precioxcant = Convert.ToDouble(metroTextBoxPrecio.Text.Replace(".", ",")) * Convert.ToDouble(metroTextBoxCantidad.Text.Replace(".", ","));



                            detalleTableArticulocomprobantes.InsertarTableArticuloComprobante(comp.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, p.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)),
                                                                                              a.DevolverIDporNombre(metroTextBoxProducto.Text), Convert.ToDouble(metroTextBoxCantidad.Text.Replace(".", ",")),
                                                                                              Math.Round(Convert.ToDouble(metroTextBoxPrecio.Text.Replace(".", ",")), 2), 0,
                                                                                              ivacalculado,
                                                                                              Math.Round(precioxcant + ivacalculado, 2));

                            List <View_DetalleArticuloComprobante> listarticulo = comp.VistaComprobantesArticulos(comp.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, p.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)));
                            metroGridProductosServicios.AutoGenerateColumns = false;
                            metroGridProductosServicios.DataSource          = listarticulo;
                            metroGridProductosServicios.AutoSize            = false;

                            foreach (var item in listarticulo)
                            {
                                ID.DataPropertyName            = "idTable_DetallesComprobanteArticulos";
                                IDComprobante.DataPropertyName = "IdComprobante";
                                Producto.DataPropertyName      = "Nombre";
                                Cantidad.DataPropertyName      = "Cantidad";
                                PrecioCompra.DataPropertyName  = "Precio";
                                Iva.DataPropertyName           = "Iva";
                                Importe.DataPropertyName       = "Importe";
                            }
                            metroTextBoxProducto.Text = "";

                            metroTextBoxCantidad.Clear();
                            metroTextBoxPrecio.Clear();

                            metroCheckBoxIvaExento.Checked = false;
                            metroPanelPago.Enabled         = true;
                            metroPanelGastos.Enabled       = true;
                            metroButtonConfirmar.Enabled   = true;
                            metroButtonDescartar.Enabled   = true;
                        }

                        else
                        {
                            //INSERTAR EN LA TABLA ARTICULOS COMPROBANTES
                            //DetallesComprobanteArticulos art = new DetallesComprobanteArticulos();
                            //ArticuloManager a = new ArticuloManager();
                            //ArticulosComprobanteManager detalleTableArticulocomprobantes = new ArticulosComprobanteManager();
                            //ComprobantesManager comp = new ComprobantesManager();

                            double precioxcant  = 0;
                            double ivacalculado = 0;


                            ivacalculado = Convert.ToDouble(metroTextBoxPrecio.Text.Replace(".", ",")) * Convert.ToDouble(metroTextBoxCantidad.Text.Replace(".", ",")) * Convert.ToDouble(metroTextBoxIva.Text.Replace(".", ",")) / 100;
                            precioxcant  = Convert.ToDouble(metroTextBoxPrecio.Text.Replace(".", ",")) * Convert.ToDouble(metroTextBoxCantidad.Text.Replace(".", ","));



                            detalleTableArticulocomprobantes.InsertarTableArticuloComprobante(comp.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, p.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)),
                                                                                              a.DevolverIDporNombre(metroTextBoxProducto.Text), Convert.ToDouble(metroTextBoxCantidad.Text.Replace(".", ",")),
                                                                                              Math.Round(Convert.ToDouble(metroTextBoxPrecio.Text.Replace(".", ",")), 2), Convert.ToDouble(metroTextBoxIva.Text.Replace(".", ",")),
                                                                                              ivacalculado,
                                                                                              Math.Round(precioxcant + ivacalculado, 2));
                            List <View_DetalleArticuloComprobante> listarticulo = comp.VistaComprobantesArticulos(comp.DevolverIDporNoFactura(metroTextBoxPuntoV.Text, metroTextBoxNoFactura.Text, p.DevolverIdPRoveedorporNombre(metroTextBoxProveedor.Text)));
                            metroGridProductosServicios.AutoGenerateColumns = false;
                            metroGridProductosServicios.DataSource          = listarticulo;
                            metroGridProductosServicios.AutoSize            = false;

                            foreach (var item in listarticulo)
                            {
                                ID.DataPropertyName            = "idTable_DetallesComprobanteArticulos";
                                IDComprobante.DataPropertyName = "IdComprobante";
                                Producto.DataPropertyName      = "Nombre";
                                Cantidad.DataPropertyName      = "Cantidad";
                                PrecioCompra.DataPropertyName  = "Precio";
                                Iva.DataPropertyName           = "Iva";
                                Importe.DataPropertyName       = "Importe";
                            }
                            metroTextBoxProducto.Text = "";

                            metroTextBoxCantidad.Clear();
                            metroTextBoxPrecio.Clear();

                            metroButtonConfirmar.Enabled = true;
                            metroButtonDescartar.Enabled = true;
                            metroPanelPago.Enabled       = true;
                            metroPanelGastos.Enabled     = true;
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }
Example #4
0
        private void metroButtonAgregarPago_Click(object sender, EventArgs e)
        {
            try
            {
                //Declaro las variable que voy a usar
                Double totalmediospago  = 0;
                double totalcomprobante = 0;
                int    idpago           = 0;
                //Declaro los Controladores ComprobanteManager y Pagos Manager
                ComprobantesManager c = new ComprobantesManager();
                PagosManager        p = new PagosManager();

                //Verifico si no estan vacios los DatagridGastospendientes y Medios de Pago
                if (metroGridComprobantes.Rows.Count == 0 || metroGridMedioPAgo.Rows.Count == 0)
                {
                    MessageBox.Show("Error, Inserte los Medios de Pago y los comprobantes a aplicarle el pago", "Sistema de Gestion de Compras", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    //Calculo el Total de Comprobantes
                    foreach (DataGridViewRow row1 in metroGridComprobantes.Rows)
                    {
                        DataGridViewCheckBoxCell ck = row1.Cells["column7"] as DataGridViewCheckBoxCell;
                        if (Convert.ToBoolean(ck.Value) == true)
                        {
                            totalcomprobante += Math.Round(Convert.ToDouble(row1.Cells["column5"].Value.ToString()), 2);
                        }
                    }
                    //Calculo el Total de Medios de Pago
                    foreach (DataGridViewRow rown1 in metroGridMedioPAgo.Rows)
                    {
                        totalmediospago += Convert.ToDouble(rown1.Cells["ImportePago"].Value.ToString().Replace(".", ","));
                    }

                    if (totalcomprobante > totalmediospago)
                    {
                        //mensaje de Warning el o los el total de los comprobantes son mayores que los medios de pago

                        DialogResult dialogResult1 = MessageBox.Show("Precaucion,El total de Comprobantes es mayor que el total de medios de pago ¿Deseas Confirmarla como Pagada?", "Sistema de Gestios de Compras v1.0", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                        if (dialogResult1 == DialogResult.Yes)
                        {
                            //aplico el pago a los comprobantes

                            //INSERTAR EN LA TABLE PAGOS
                            //INSERTO EN LA TABLA PAGOS Y OBTENGO EL ULTIMO IDPAGO INSERTADO
                            if (string.IsNullOrEmpty(metroTextBoxIDRet.Text) == true)
                            {
                                idpago = p.InsertarPagossinRetencion(metroDateTimeFechaPago.Value, totalmediospago, metroTextBoxConcepto.Text);
                            }
                            else
                            {
                                idpago = p.InsertarPagos(metroDateTimeFechaPago.Value, totalmediospago, metroTextBoxConcepto.Text, int.Parse(metroTextBoxIDRet.Text));
                            }

                            //APLICO LOS PAGOS A CADA COMPROBANTE
                            //INSERTO EN LA TABLA DETALLE DE PAGOS Y ACTUALIZO EL ESTADO DE LOS COMPROBANTES A 1
                            DialogResult dialogResult = MessageBox.Show("Pago Realizado, Deseas Confirmarla como Pagada", "Sistema de Gestios de Compras v1.0", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                            if (dialogResult == DialogResult.Yes)
                            {
                                //si se aplica la cancelacion del comprobante se actualiza el estado del comprobante
                                foreach (DataGridViewRow row2 in metroGridComprobantes.Rows)
                                {
                                    DataGridViewCheckBoxCell ck3 = row2.Cells["Column7"] as DataGridViewCheckBoxCell;
                                    if (Convert.ToBoolean(ck3.Value) == true)
                                    {
                                        int idProveedor = new ProveedorManager().DevolverIdPRoveedorporNombre(metroTextBoxNOMBRE.Text);



                                        p.InsertarDetallePago(idpago, c.DevolverIDporNoFactura2(row2.Cells["column3"].Value.ToString(), row2.Cells["column4"].Value.ToString(), idProveedor));

                                        //Actualizar EStado de Comprobante
                                        c.ActualizarEstado(c.DevolverIDporNoFactura2(row2.Cells["column3"].Value.ToString(), row2.Cells["column4"].Value.ToString(), idProveedor), 1);
                                    }
                                }
                            }


                            //INSERTO EN LA TABLA MEDIOS DE PAGO
                            foreach (DataGridViewRow row3 in metroGridMedioPAgo.Rows)
                            {
                                p.InsertarMediosPago(p.DevolverMedioPago(row3.Cells["MedioPago"].Value.ToString()), Convert.ToDateTime(row3.Cells["FechaVencimiento"].Value), row3.Cells["ChequeTransferencia"].Value.ToString(), p.DevolverBanco(row3.Cells["Banco"].Value.ToString()), Convert.ToDouble(row3.Cells["ImportePago"].Value.ToString().Replace(".", ",")), idpago);
                            }

                            //Declaro la instancia del ReporteViwer y lo llamo
                            ReportesForm reporte = new ReportesForm();
                            reporte.idpagoprop = idpago;
                            reporte.idpagoprop = idpago;
                            reporte.ShowDialog();

                            //BORRO TODOS LOS DATOS DEL DATA GRID Y DE LOS TEXTBOXES
                            metroGridMedioPAgo.Rows.Clear();
                            metroGridComprobantes.DataSource = "";
                            metroTextBoxConcepto.Clear();
                            metroTextBoxChque.Clear();
                            metroTextBoxiMPORTE.Clear();
                        }
                        //Si no se cancela el comprobante no se actualiza el estado del comprobante
                        else if (dialogResult1 == DialogResult.No)
                        {
                            MessageBox.Show("Vuelva a Intentarlo", "Sistema de Gestion de Compras", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                    else
                    {
                        if (totalmediospago >= totalcomprobante)
                        {
                            //INSERTAR EN LA TABLE PAGOS
                            //INSERTO EN LA TABLA PAGOS Y OBTENGO EL ULTIMO IDPAGO INSERTADO
                            if (string.IsNullOrEmpty(metroTextBoxIDRet.Text))
                            {
                                idpago = p.InsertarPagossinRetencion(metroDateTimeFechaPago.Value, totalmediospago, metroTextBoxConcepto.Text);
                            }
                            else
                            {
                                idpago = p.InsertarPagos(metroDateTimeFechaPago.Value, totalmediospago, metroTextBoxConcepto.Text, int.Parse(metroTextBoxIDRet.Text));
                            }

                            //APLICO LOS PAGOS A CADA COMPROBANTE
                            //INSERTO EN LA TABLA DETALLE DE PAGOS Y ACTUALIZO EL ESTADO DE LOS COMPROBANTES A 1
                            DialogResult dialogResult = MessageBox.Show("Pago Realizado, Deseas Confirmarla como Pagada", "Sistema de Gestios de Compras v1.0", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);
                            if (dialogResult == DialogResult.Yes)
                            {
                                //si se aplica la cancelacion del comprobante se actualiza el estado del comprobante
                                foreach (DataGridViewRow row2 in metroGridComprobantes.Rows)
                                {
                                    DataGridViewCheckBoxCell ck3 = row2.Cells["column7"] as DataGridViewCheckBoxCell;
                                    if (Convert.ToBoolean(ck3.Value) == true)
                                    {
                                        p.InsertarDetallePago(idpago, c.DevolverIDporNoFactura(row2.Cells["column3"].Value.ToString(), row2.Cells["column4"].Value.ToString(), int.Parse(row2.Cells["IdProveedor"].Value.ToString())));

                                        //Actualizar EStado de Comprobante
                                        c.ActualizarEstado(c.DevolverIDporNoFactura(row2.Cells["column3"].Value.ToString(), row2.Cells["column4"].Value.ToString(), int.Parse(row2.Cells["IdProveedor"].Value.ToString())), 1);
                                    }
                                }
                            }
                            //Si no se cancela el comprobante no se actualiza el estado del comprobante
                            else if (dialogResult == DialogResult.No)
                            {
                                foreach (DataGridViewRow row2 in metroGridComprobantes.Rows)
                                {
                                    DataGridViewCheckBoxCell ck3 = row2.Cells["Column7"] as DataGridViewCheckBoxCell;
                                    if (Convert.ToBoolean(ck3.Value) == true)
                                    {
                                        p.InsertarDetallePago(idpago, c.DevolverIDporNoFactura(row2.Cells["column3"].Value.ToString(), row2.Cells["column4"].Value.ToString(), int.Parse(row2.Cells["IdProveedor"].Value.ToString())));
                                        //Actualizar EStado de Comprobante

                                        //c.ActualizarEstado(c.DevolverIDporNoFactura(row2.Cells["Column2"].Value.ToString(), row2.Cells["Column3"].Value.ToString()), 1);
                                    }
                                }
                            }

                            //INSERTO EN LA TABLA MEDIOS DE PAGO
                            foreach (DataGridViewRow row3 in metroGridMedioPAgo.Rows)
                            {
                                p.InsertarMediosPago(p.DevolverMedioPago(row3.Cells["MedioPago"].Value.ToString()), Convert.ToDateTime(row3.Cells["FechaVencimiento"].Value), row3.Cells["ChequeTransferencia"].Value.ToString(), p.DevolverBanco(row3.Cells["Banco"].Value.ToString()), Convert.ToDouble(row3.Cells["ImportePago"].Value.ToString().Replace(".", ",")), idpago);
                            }

                            //Declaro la instancia del ReporteViwer y lo llamo
                            ReportesForm reporte = new ReportesForm();
                            reporte.idpagoprop = idpago;
                            reporte.idpagoprop = idpago;
                            reporte.ShowDialog();

                            //BORRO TODOS LOS DATOS DEL DATA GRID Y DE LOS TEXTBOXES
                            metroGridMedioPAgo.Rows.Clear();
                            metroGridComprobantes.DataSource = "";
                            metroTextBoxConcepto.Clear();
                            metroTextBoxChque.Clear();
                            metroTextBoxiMPORTE.Clear();
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }