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"); } } }
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"); } }