예제 #1
0
 public FormaPago(Int32 IdViaje,List<Tuple<ClienteDTO,ButacaDTO>> ListaTuplaPasajes,ClienteDTO clienteConEncomienda,Int32 KgEncomienda )
 {
     InitializeComponent();
     this.listaPasajeroButacas = ListaTuplaPasajes;
     this.clienteAcargoDeEncomienda = clienteConEncomienda;
     this.idViaje=IdViaje;
     this.KgsDeEncomienda = KgEncomienda;
 }
예제 #2
0
        private void buttonRegistrar_Click(object sender, EventArgs e)
        {
            if (validar())
            {
                ClienteDTO cliente = new ClienteDTO();
                cliente.Nombre = textBoxNom.Text;
                cliente.Apellido = textBoxApe.Text;
                cliente.Direccion = textBoxDir.Text;
                cliente.Dni =Convert.ToInt32( textBoxDni.Text);
                cliente.Fecha_Nac = dateTimePicker1.Value;
                cliente.Mail = textBoxMail.Text;
                cliente.Telefono = Convert.ToInt32(textBoxTel.Text);

                if (this.clienteExistente)
                {
                    if (!ClienteDAO.Actualizar(cliente))
                    {
                        MessageBox.Show("No se pudo actualizar los datos del cliente");
                    }
                    else
                    {
                        MessageBox.Show("Datos del cliente actualizados con exito");
                    }
                }
                else
                {
                    if (!ClienteDAO.Save(cliente))
                    {
                        MessageBox.Show("No se pudo guardar el cliente");
                    }
                    else
                    {
                        MessageBox.Show("Se guardo el cliente con exito");
                    }
                }
                if (!this.compraEncomienda)
                {

                    SeleccionButaca ventana = new SeleccionButaca(this.gridViaje);
                    ventana.ShowDialog(this);
                    if(ventana.DialogResult == DialogResult.OK)
                    {
                        Tuple<ClienteDTO, ButacaDTO> tuple = new Tuple<ClienteDTO, ButacaDTO>(cliente, this.butaca);
                        ((CompraPasajeEncomienda)this.Owner).listaPasajerosButacas.Add(tuple);
                    }
                }
                else
                {
                    ((CompraPasajeEncomienda)this.Owner).clienteEncomienda = cliente;
                }
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
예제 #3
0
        /// <summary>
        /// Devuelve un cliente a traves de un DNI
        /// </summary>
        /// <param name="cliente"></param>
        /// <returns></returns>
        public static ClienteDTO GetByDNI(ClienteDTO cliente)
        {
            using (SqlConnection conn = Conexion.Conexion.obtenerConexion())
            {
                SqlCommand com = new SqlCommand("[NORMALIZADOS].[GetCliente_SEL_ByDNI]", conn);
                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.AddWithValue("@paramDNI", cliente.Dni);

                SqlDataReader dataReader = com.ExecuteReader();
                return getClientes(dataReader).FirstOrDefault();
            }
        }
예제 #4
0
        public static bool ViajaAMasDeUnDestino(ClienteDTO unCliente, DateTime FechaSalida, DateTime FechaLlegada)
        {
            using (SqlConnection conn = Conexion.Conexion.obtenerConexion())
            {
                SqlCommand comm = new SqlCommand("[NORMALIZADOS].[Validar_PasajesEnCompra]", conn);
                comm.CommandType = CommandType.StoredProcedure;
                SqlParameter rv = new SqlParameter("@retorno", SqlDbType.Bit);
                rv.Direction = ParameterDirection.ReturnValue;
                comm.Parameters.Add(rv);
                comm.Parameters.AddWithValue("@dniPasajero", unCliente.Dni);
                comm.Parameters.AddWithValue("@fecha_salida", FechaSalida);
                comm.Parameters.AddWithValue("@fecha_llegada_estimada", FechaLlegada);
                comm.ExecuteNonQuery();

                int retValue =Convert.ToInt32( comm.Parameters["@retorno"].Value);
                return retValue == 0;
            }
        }
예제 #5
0
        /// <summary>
        /// Registra un cliente
        /// </summary>
        /// <param name="cliente"></param>
        /// <returns></returns>
        public static bool Save(ClienteDTO cliente)
        {
            int retValue = 0;
            using (SqlConnection conn = Conexion.Conexion.obtenerConexion())
            {
                SqlCommand comm = new SqlCommand("[NORMALIZADOS].[SaveCliente_INS]", conn);
                comm.CommandType = CommandType.StoredProcedure;
                comm.Parameters.AddWithValue("@paramNombre", cliente.Nombre);
                comm.Parameters.AddWithValue("@paramApellido", cliente.Apellido);
                comm.Parameters.AddWithValue("@paramDni", cliente.Dni);
                comm.Parameters.AddWithValue("@paramDireccion", cliente.Direccion);
                comm.Parameters.AddWithValue("@paramFechaNac", cliente.Fecha_Nac);
                comm.Parameters.AddWithValue("@paramMail", cliente.Mail);
                comm.Parameters.AddWithValue("@paramTelefono", cliente.Telefono);

                retValue = comm.ExecuteNonQuery();
            }
            return retValue > 0;
        }
        private void buttonRegistrar_Click(object sender, EventArgs e)
        {
            if (validar())
            {
                ClienteDTO cliente = new ClienteDTO();
                cliente.Nombre = textBoxNom.Text;
                cliente.Apellido = textBoxApe.Text;
                cliente.Direccion = textBoxDir.Text;
                cliente.Dni =Convert.ToInt32( textBoxDni.Text);
                cliente.Fecha_Nac = dateTimePicker1.Value;
                cliente.Mail = textBoxMail.Text;
                cliente.Telefono = Convert.ToInt32(textBoxTel.Text);

                if(this.clienteExistente)
                {
                    if (!ClienteDAO.Actualizar(cliente))
                    {
                        MessageBox.Show("No se pudieron actualizar los datos del titular");
                    }
                    else
                    {
                        MessageBox.Show("Se actualizaron los datos del titular con exito");
                        this.Close();
                    }
                }
                else
                {
                    if (!ClienteDAO.Save(cliente))
                    {
                        MessageBox.Show("No se pudieron guardar los datos del titular");
                    }
                    else
                    {
                        MessageBox.Show("Se guardaron los datos del titular con exito");
                        this.Close();
                    }
                }
                ((FormaPago)this.Owner).textBoxDNI.Text = this.textBoxDni.Text;
            }
        }
예제 #7
0
        private bool FinalizarTransaccion()
        {
            bool retValue = true;
            ClienteDTO cliente=new ClienteDTO();
            cliente.Dni=Convert.ToInt32( textBoxDNI.Text);
            CompraDTO compra = new CompraDTO();
            compra.Comprador = ClienteDAO.GetByDNI(cliente);
            compra.MedioPago = (TipoPagoDTO)comboBoxMedioPago.SelectedItem;
            TarjetaCreditoDTO tarjeta = new TarjetaCreditoDTO();
            tarjeta.Numero =Convert.ToInt64( textBoxNro.Text);
            tarjeta.Codigo = Convert.ToInt32(textBoxCodSeg.Text);
            tarjeta.FechaVencimiento = Convert.ToInt32(textBoxFechVenc.Text);
            tarjeta.TipoTarjeta = (TipoTarjetaDTO)comboBoxTipoTarj.SelectedItem;
            compra.TarjetaCredito = tarjeta;
            ViajeDTO viaje = new ViajeDTO();
            viaje.Id = this.idViaje;
            compra.Viaje = viaje;
            compra.IdCompra = 0;
            compra.PNR = "0";
            try
            {
                TarjetaDAO.Save(tarjeta);
                this.compra = CompraDAO.Save(compra);

                if (string.IsNullOrEmpty(this.compra.PNR))
                {
                    MessageBox.Show("No se pudo realizar la compra");
                    retValue = false;
                }
                this.monto = 0;

                if (this.listaPasajeroButacas != null)
                {
                    foreach (Tuple<ClienteDTO, ButacaDTO> tupla in this.listaPasajeroButacas)
                    {
                        PasajeDTO pasaje = new PasajeDTO();
                        pasaje.Pasajero = tupla.Item1;
                        pasaje.Compra = this.compra;
                        pasaje.Butaca = tupla.Item2;
                        pasaje.Precio = 0;

                        this.monto = PasajeDAO.Save(pasaje).Precio + this.monto;
                    }
                }
                if (this.clienteAcargoDeEncomienda != null)
                {
                    EncomiendaDTO encomienda = new EncomiendaDTO();
                    encomienda.Cliente = this.clienteAcargoDeEncomienda;
                    encomienda.Compra = this.compra;
                    encomienda.Precio = 0;
                    encomienda.Kg = this.KgsDeEncomienda;

                    this.monto = EncomiendaDAO.Save(encomienda).Precio + this.monto;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format( "Error al finalizar la transaccion: {0}", ex), "Error Compra", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            this.DialogResult = DialogResult.OK;
            return retValue;
        }
예제 #8
0
        private bool validarPasajero()
        {
            ClienteDTO cliente = new ClienteDTO();
            cliente.Dni =Convert.ToInt32( textBoxDni.Text);
            cliente = ClienteDAO.GetByDNI(cliente);

             return ClienteDAO.ViajaAMasDeUnDestino(cliente, this.gridViaje.FechaSalida,this.gridViaje.FechaLlegadaEstimada);
        }
예제 #9
0
 private void textBoxDni_Leave(object sender, EventArgs e)
 {
     if (textBoxDni.Text == "")
         return;
     ClienteDTO cliente = new ClienteDTO();
     cliente.Dni =Convert.ToInt32( textBoxDni.Text);
     cliente=ClienteDAO.GetByDNI(cliente);
     if (cliente != null)
     {
         textBoxNom.Text = cliente.Nombre;
         textBoxApe.Text = cliente.Apellido;
         textBoxDir.Text = cliente.Direccion;
         textBoxTel.Text = cliente.Telefono.ToString();
         textBoxMail.Text = cliente.Mail;
         dateTimePicker1.Value = cliente.Fecha_Nac;
         this.clienteExistente = true;
     }
 }
예제 #10
0
        /// <summary>
        /// Metodo que carga el contenido de dataReader con clientes
        /// en una lista
        /// </summary>
        /// <param name="dataReader"></param>
        /// <returns></returns>
        private static List<ClienteDTO> getClientes(SqlDataReader dataReader)
        {
            List<ClienteDTO> ListaClientes = new List<ClienteDTO>();
            if (dataReader.HasRows)
            {
                while (dataReader.Read())
                {
                    ClienteDTO cliente = new ClienteDTO();

                    cliente.IdCliente = Convert.ToInt32(dataReader["Id"]);
                    cliente.Dni = Convert.ToInt32(dataReader["Dni"]);
                    cliente.Nombre = Convert.ToString(dataReader["Nombre"]);
                    cliente.Apellido = Convert.ToString(dataReader["Apellido"]);
                    cliente.Direccion = Convert.ToString(dataReader["Direccion"]);
                    cliente.Mail = Convert.ToString(dataReader["Mail"]);
                    cliente.Telefono = Convert.ToInt32(dataReader["Telefono"]);
                    cliente.Fecha_Nac = Convert.ToDateTime(dataReader["Fecha_Nac"]);

                    ListaClientes.Add(cliente);
                }
                dataReader.Close();
                dataReader.Dispose();
            }
            return ListaClientes;
        }
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //Ignora los clicks que no son sobre los elementos de la columna de botones
            if (e.RowIndex < 0 || e.ColumnIndex != dataGridView1.Columns.IndexOf(dataGridView1.Columns["ColumnCompra"]))
                return;
            GridViajesDTO gridViaje = (GridViajesDTO)dataGridView1.Rows[e.RowIndex].DataBoundItem;
            bool compraEncomienda = false;
            bool ret = true;

            if (comboBoxCantPas.SelectedItem != null)
            {
                if (Convert.ToInt32(comboBoxCantPas.SelectedItem.ToString()) > 0)
                {
                    if (gridViaje.CantButacasDisp == 0)
                    {
                        MessageBox.Show("Todos los pasajes de este viaje estan vendidos");
                        return;
                    }
                    if (Convert.ToInt32(comboBoxCantPas.SelectedItem.ToString()) > gridViaje.CantButacasDisp)
                    {
                        MessageBox.Show(string.Format("A la aeronave del viaje seleccionado solo le quedan: {0} pasajes disponibles", gridViaje.CantButacasDisp));
                        return;
                    }
                    bool retValue = true;

                    for (int i = 1; i <= Convert.ToInt32(comboBoxCantPas.SelectedItem.ToString()); i++)
                    {
                        compraEncomienda = false;
                        IngresoDatos ventana = new IngresoDatos(gridViaje, compraEncomienda);
                        ventana.ShowDialog(this);
                        if(ventana.DialogResult != DialogResult.OK)
                        {
                            retValue = false;
                        }
                        ret = ret && retValue;
                    }
                }
            }
            else
            {
                errorProvider1.SetError(comboBoxCantPas,"Ingrese una cantidad de pasajes");
                return;
            }
            if (gridViaje.KgsDisponibles == 0 && numericUpDown1.Value != 0)
            {
                MessageBox.Show("No quedan kgs disponibles");
                return;
            }
            if (numericUpDown1.Value > gridViaje.KgsDisponibles)
            {
                MessageBox.Show(string.Format("A la aeronave del viaje seleccionado solo le quedan: {0} Kgs disponibles",gridViaje.KgsDisponibles));
                return;
            }

            if (numericUpDown1.Value > 0)
            {
                bool retValue = true;
                compraEncomienda = true;
                IngresoDatos vent = new IngresoDatos(gridViaje, compraEncomienda);
                vent.ShowDialog(this);
                if(vent.DialogResult != DialogResult.OK)
                {
                    retValue = false;
                }
                else
                {
                    ClienteDTO clienteEnco = new ClienteDTO();
                    this.clienteEncomienda = clienteEnco;
                }
                ret= ret && retValue;
            }

            if (ret)
            {
                FormaPago formPago = new FormaPago(gridViaje.IdViaje, this.listaPasajerosButacas, this.clienteEncomienda, Convert.ToInt32(numericUpDown1.Value));
                formPago.ShowDialog(this);
                if (formPago.DialogResult == DialogResult.OK)
                {
                    this.Close();
                }
            }
        }