예제 #1
0
 private void btnFacturar_Click(object sender, EventArgs e)
 {
     if (dgvPacienteMedicoTurno.CurrentRow != null)
     {
         var turnoSeleccionado = ((PacienteTurnoVM)dgvPacienteMedicoTurno.CurrentRow.DataBoundItem);
         if (!turnoSeleccionado.Pagado)
         {
             var deseaFacturarDialog = MessageBox.Show("Desea Facturar el Turno?", "Factura", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
             if (deseaFacturarDialog == DialogResult.Yes)
             {
                 var factura = new Factura
                 {
                     IdTurno       = turnoSeleccionado.TurnoId,
                     Fecha         = DateTime.Now,
                     IdFormaDePago = turnoSeleccionado.FormaDePagoId,
                     Monto         = turnoSeleccionado.PrecioTurno
                 };
                 var formFacturacion = new AgregarFactura(factura);
                 formFacturacion.ShowDialog();
             }
             CargarTurnos();
         }
         else
         {
             MessageBox.Show("El turno seleccionado ya ha sido Facturado", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
     else
     {
         MessageBox.Show("Debe seleccionar una fila", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }
예제 #2
0
        private void saveButton_Click(object sender, EventArgs e)
        {
            errorProvider.Clear();

            if (!ValidarCamposObligatorios())
            {
                return;
            }

            var fechaTurno = new DateTime(dtpFechaTurno.Value.Year, dtpFechaTurno.Value.Month, dtpFechaTurno.Value.Day, horaTurno, minutosTurno, 0);

            if (!ValidarFechaDelTurno(fechaTurno))
            {
                return;
            }

            using (var entidades = new ClinicaEntities())
            {
                using (var entidadesTransaction = entidades.Database.BeginTransaction())
                {
                    try
                    {
                        var turnoDB = entidades.Turno.Single(x => x.IdTurno == this._turnoOriginal.IdTurno);
                        turnoDB.Atendido             = chbAtendido.Checked;
                        turnoDB.FechaYHora           = fechaTurno;
                        turnoDB.Asistio              = chbAsistio.Checked;
                        turnoDB.IdPaciente           = (int)dropDownListaPacientes.SelectedValue;
                        turnoDB.IdMedico             = ((MedicoVM)dgvMedicos.CurrentRow.DataBoundItem).MedicoId;
                        turnoDB.IdEspecialidadMedico = (int)dropDownEspecialidades.SelectedValue;
                        turnoDB.PrecioTurno          = decimal.Parse(tbPrecioTurno.Text);
                        turnoDB.Diagnostico          = textboxDiagnostico.Text;
                        turnoDB.Descripcion          = tbDescripcion.Text;
                        turnoDB.IdFormaDePago        = radiobtnParticular.IsChecked ? 1 /*Particular*/ : 2 /*Seguro Médico*/;
                        turnoDB.IdSeguroMedico       = radioBtnSeguroMedico.IsChecked ? (Nullable <int>)dropDownSegurosMedicos.SelectedValue : null;
                        if (_esAdmin)
                        {
                            entidades.HistoriaClinica.Add(
                                new HistoriaClinica
                            {
                                Descripcion   = "Descripción: " + turnoDB.Descripcion + Environment.NewLine + "Diagnóstico : " + turnoDB.Diagnostico,
                                FechaAtencion = turnoDB.FechaYHora,
                                IdPaciente    = turnoDB.IdPaciente,
                                IdTurno       = turnoDB.IdTurno
                            });
                        }

                        var deseaFacturarDialog = MessageBox.Show("Desea Facturar el Turno?", "Factura", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (deseaFacturarDialog == DialogResult.Yes)
                        {
                            var factura = new Factura
                            {
                                IdTurno       = turnoDB.IdTurno,
                                Fecha         = DateTime.Now,
                                IdFormaDePago = turnoDB.IdFormaDePago,
                                Monto         = turnoDB.PrecioTurno
                            };
                            var formFacturacion = new AgregarFactura(factura);
                            formFacturacion.ShowDialog();
                        }
                        entidades.SaveChanges();
                        EnviarNotificacionesPorEmail(entidades, turnoDB.IdTurno);
                        entidadesTransaction.Commit();
                        MessageBox.Show("Turno modificado y notificación por Correo electrónico enviada!", "Correcto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        _turnoFueModificado = true;
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        entidadesTransaction.Rollback();
                        MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }