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;
            }
        }
Exemple #2
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;
            }
        }