Example #1
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;
            }
        }