private async void btnEliminar_Clicked(object sender, EventArgs e) { //Si se esta eliminando un pedido ya persistido if (btnEliminar.Text == "Eliminar") { //Se confirma la eliminacion del pedido var respuesta = await DisplayAlert("Confirmar eliminacion del pedido", "¿Está seguro que desea eliminar este pedido con sus respectivos detalles?", "Si", "Cancelar"); if (respuesta) { //Se eliminan todos los detalles de ese pedido using (var detControlador = new ControladorDetalle()) { var detallesAEliminar = detControlador.FindByPedido(this.tempPedido.IdPedido); foreach (Detalle det in detallesAEliminar) { detControlador.Delete(det); } } //Se elimina el pedido en si using (var pedControlador = new ControladorPedido()) { pedControlador.Delete(this.tempPedido); } await Navigation.PopModalAsync(); } } else { //Se confirma que se quiera cancelar la creacion del pedido if (this.tempPedido.Editable) { var respuesta = await DisplayAlert("Confirmar cancelacion del pedido", "¿Está seguro que desea cancelar la creacion de ste pedido?", "Si", "Cancelar"); if (respuesta) { await Navigation.PopModalAsync(); } } else { await Navigation.PopModalAsync(); } } }
//Cuando se presiona el boton guardar pedido private void btnGuardar_Clicked(object sender, EventArgs e) { bool puedoGuardar = validarCamposObligatorios(); if (puedoGuardar) { if (lblTitulo.Text == "Agregar Pedido") { //Se crea un pedido nuevo y se guardan los datos ingresados tempPedido.IdPedido = Convert.ToInt32(lblNumero.Text); tempPedido.Editable = true; tempPedido.IdCliente = clientes[pickerCliente.SelectedIndex].IdCliente; using (var cliControlador = new ControladorCliente()) { var clienteSeleccionado = cliControlador.FindById(tempPedido.IdCliente); tempPedido.Cliente = clienteSeleccionado.RazonSocial; } tempPedido.IdVendedor = this.IdVendedor; tempPedido.Estado = pickerEstado.Items[pickerEstado.SelectedIndex]; tempPedido.FechaPedido = dateFechaPedido.Date; tempPedido.FechaEntrega = dateFechaEntrega.Date; tempPedido.Subtotal = Convert.ToDouble(lblSubTotal.Text); tempPedido.GastosEnvio = Convert.ToDouble(txtGastosEnvio.Text); tempPedido.Total = Convert.ToDouble(lblTotal.Text); tempPedido.Pagado = switchPagado.IsToggled; //Se persiste el pedido a la base de datos using (var pedControlador = new ControladorPedido()) { pedControlador.Insert(tempPedido); } } else { tempPedido.IdCliente = clientes[pickerCliente.SelectedIndex].IdCliente; using (var cliControlador = new ControladorCliente()) { var clienteSeleccionado = cliControlador.FindById(tempPedido.IdCliente); tempPedido.Cliente = clienteSeleccionado.RazonSocial; } tempPedido.Estado = pickerEstado.Items[pickerEstado.SelectedIndex]; tempPedido.FechaPedido = dateFechaPedido.Date; tempPedido.FechaEntrega = dateFechaEntrega.Date; tempPedido.Subtotal = Convert.ToDouble(lblSubTotal.Text); tempPedido.GastosEnvio = Convert.ToDouble(txtGastosEnvio.Text); tempPedido.Total = Convert.ToDouble(lblTotal.Text); tempPedido.Pagado = switchPagado.IsToggled; //Se persiste el pedido a la base de datos using (var pedControlador = new ControladorPedido()) { pedControlador.Update(tempPedido); } } //Persistir detalles foreach (Detalle det in detalles) { if (det.IdDetalle == 0) { det.IdPedido = tempPedido.IdPedido; using (var detControlador = new ControladorDetalle()) { detControlador.Insert(det); } } else { using (var detControlador = new ControladorDetalle()) { detControlador.Update(det); } } } //Eliminar detalles eliminados foreach (Detalle det in detallesEliminados) { using (var detControlador = new ControladorDetalle()) { detControlador.Delete(det); } } Navigation.PopModalAsync(); } }