示例#1
0
        private void btnFinalizar_Click(object sender, EventArgs e)
        {
            if (dgvHoy.SelectedRows.Count > 0)
            {
                string msj;
                bool   pago = (bool)dgvHoy.SelectedRows[0].Cells["Pago"].Value;
                if (!pago)
                {
                    msj = "Desea marcar como pago y finalizar el alquiler?";
                }
                else
                {
                    msj = "El alquiler ya esta pago. \n desea finalizar el alquiler?";
                }

                DialogResult result = MessageBox.Show(msj, "Finalizar Alquiler", MessageBoxButtons.YesNo);

                if (result == DialogResult.Yes)
                {
                    string excepcion = string.Empty;
                    //Baja alquiler
                    int IdAlq = (int)dgvHoy.SelectedRows[0].Cells["IdAlq"].Value;
                    try
                    {
                        excepcion = misAlquileres.marcarPago(IdAlq);
                        excepcion = misAlquileres.darBaja(IdAlq);
                        MessageBox.Show("Ha finalizado el alquiler.", "Operacion Exitosa");


                        decimal costo = (decimal)dgvHoy.SelectedRows[0].Cells["Precio"].Value;

                        string nombre = dgvHoy.SelectedRows[0].Cells["Dueño"].Value.ToString();
                        string tipo   = misVehiculos.existe(dgvHoy.SelectedRows[0].Cells["Patente"].Value.ToString()).Tipo;

                        excepcion = misFacturas.GrabarFactura(DateTime.Today, Convert.ToDecimal(costo), nombre, tipo);
                    }

                    catch (Exception ex) {
                        MessageBox.Show(excepcion, "Se ha producido el siguiente error:");
                    }

                    setVistas();
                }
                else
                {
                    //Salvado
                    MessageBox.Show("El estado del Alquiler no ha cambiado", "Operacion Cancelada");
                }
            }
        }
示例#2
0
        private void btnFinalizar_Click(object sender, EventArgs e)
        {
            if (dgvAlquileres.SelectedRows.Count > 0)
            {
                DateTime salida  = (DateTime)dgvAlquileres.SelectedRows[0].Cells["Salida"].Value;
                DateTime entrada = (DateTime)dgvAlquileres.SelectedRows[0].Cells["Entrada"].Value;

                bool   pago  = (bool)dgvAlquileres.SelectedRows[0].Cells["Pago"].Value;
                double costo = Convert.ToDouble(dgvAlquileres.SelectedRows[0].Cells["Precio"].Value);


                if (salida != DateTime.Today)
                {
                    double totales;
                    double parcial;
                    if (salida.Year != 1)
                    {
                        totales = 1 + (salida - entrada).TotalDays;
                    }
                    else
                    {
                        totales = 1 + (DateTime.Today - entrada).TotalDays;
                    }
                    if (totales != 0)
                    {
                        parcial = costo / totales;
                    }
                    else
                    {
                        parcial = 0;
                    }
                    string msj;
                    if (salida.Year != 1)
                    {
                        if (salida > DateTime.Today)
                        {
                            int dias = (int)(DateTime.Today - entrada).TotalDays;
                            dias++;//por si se cobra el dia de entrada, a criterio.
                            msj = " El alquiler tiene fecha de salida: " + salida.ToShortDateString();
                            if (!pago)
                            {
                                msj  += "\n Finalizar el alquiler ahora, tendra un costo de: $" + parcial * dias;
                                msj  += "\n Desea marcar pago y finalizar el alquiler?";
                                costo = parcial * dias;
                            }
                            else
                            {
                                double vuelto = costo - (parcial * dias);
                                msj   += "\n El alquiler ya se encuentra pago.";
                                msj   += "\n El vuelto sera de : $" + vuelto;
                                msj   += "\n  Desea finalizar el alquiler?";
                                costo -= vuelto;
                            }
                        }
                        else
                        {
                            int n = (int)(DateTime.Today - entrada).TotalDays;
                            msj  = "El alquiler tiene fecha de salida: " + salida.ToShortDateString();
                            msj += "\n Tiene una recargo de " + n + " dias";
                            double diferencia = n * parcial;
                            if (!pago)
                            {
                                msj   += "Debera abonar un total de: $" + (costo + diferencia);
                                costo += diferencia;
                            }
                            else
                            {
                                msj   += "Teniendo pago lo estipulado, debera pagar un recargo de: $" + diferencia;
                                costo += diferencia;
                            }
                        }
                    }
                    else
                    {
                        msj = "El alquiler indefinido con entrada :" + entrada.ToShortDateString() +
                              "\n tendra un costo de :$" + costo;

                        msj += "\n   Desea marcar pago y finalizar el alquiler?";
                    }


                    DialogResult result = MessageBox.Show(msj, "Finalizar Alquiler Antes", MessageBoxButtons.YesNo);

                    if (result == DialogResult.Yes)
                    {
                        //Baja alquiler
                        int IdAlq = (int)dgvAlquileres.SelectedRows[0].Cells["IdAlq"].Value;
                        misAlquileres.marcarPago(IdAlq);
                        misAlquileres.darBaja(IdAlq);
                        MessageBox.Show("Ha finalizado el alquiler.", "Operacion Exitosa");

                        string nombre = dgvAlquileres.SelectedRows[0].Cells["Dueño"].Value.ToString();
                        string tipo   = misVehiculos.existe(dgvAlquileres.SelectedRows[0].Cells["Patente"].Value.ToString()).Tipo;

                        misFacturas.GrabarFactura(DateTime.Today, Convert.ToDecimal(costo), nombre, tipo);

                        setVistas();
                    }
                    else
                    {
                        //Salvado
                        MessageBox.Show("El estado del Alquiler no ha cambiado", "Operacion Cancelada");
                    }
                }
                //fin de if no es fecha hoy

                else
                {
                    string msj;

                    if (!pago)
                    {
                        msj = "Desea marcar como pago y finalizar el alquiler?";
                    }
                    else
                    {
                        msj = "El alquiler ya esta pago. \n desea finalizar el alquiler?";
                    }

                    DialogResult result = MessageBox.Show(msj, "Finalizar Alquiler", MessageBoxButtons.YesNo);

                    if (result == DialogResult.Yes)
                    {
                        //Baja alquiler
                        int IdAlq = (int)dgvAlquileres.SelectedRows[0].Cells["IdAlq"].Value;
                        misAlquileres.marcarPago(IdAlq);
                        misAlquileres.darBaja(IdAlq);

                        MessageBox.Show("Ha finalizado el alquiler.", "Operacion Exitosa");
                        string nombre = dgvAlquileres.SelectedRows[0].Cells["Dueño"].Value.ToString();
                        string tipo   = misVehiculos.existe(dgvAlquileres.SelectedRows[0].Cells["Dueño"].Value.ToString()).Tipo;

                        misFacturas.GrabarFactura(DateTime.Today, Convert.ToDecimal(costo), nombre, tipo);

                        setVistas();
                    }
                    else
                    {
                        //Salvado
                        MessageBox.Show("El estado del Alquiler no ha cambiado", "Operacion Cancelada");
                    }
                }
            }

            else
            {
                MessageBox.Show("Seleccione el alquiler para finalizar", "Seleccione un Alquiler");
            }
        }