private bool ValidarTarjetaCTS(string sNumberCardCTS, TextBox txtGenerico)
        {
            try
            {
                WsMyCTS wsServ = new WsMyCTS();
                BuildElectronicTicketContract getDK  = new BuildElectronicTicketContract();
                GetInfoPassengerByPNR         getPNR = new GetInfoPassengerByPNR();
                var respuesta = getPNR.GetInfoPassengerPNR(recLoc);
                ucFirstValidations.DK = respuesta.CustomerIdentifier;
                MyCTS.Services.ValidateDKsAndCreditCards.ClientCreditCard clientCreditCard = wsServ.GetClientCreditCardNumber(sNumberCardCTS, ucFirstValidations.DK);

                if (string.IsNullOrEmpty(sNumberCardCTS))
                {
                    this.Focus();
                    MessageBox.Show("Debes ingresar un número de tarjeta. Ingrese", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtGenerico.Text = string.Empty;
                    return(false);
                }
                if (!string.IsNullOrEmpty(sNumberCardCTS))
                {
                    string creditCard = wsServ.GetCreditCardNumberCTS(txtNumberCardCTS.Text);
                    if (!string.IsNullOrEmpty(creditCard))
                    {
                        this.Focus();
                        MessageBox.Show("Debes ingresar un número de tarjeta diferente a una de CTS. Reingrese", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        txtGenerico.Text = string.Empty;
                        return(false);
                    }

                    if (string.IsNullOrEmpty(creditCard))
                    {
                        string clientCreditCardNumber = wsServ.GetClientCreditCardNumberATT(txtNumberCardCTS.Text);
                        if (string.IsNullOrEmpty(clientCreditCardNumber))
                        {
                            if (ValidateCreditCardNumber)
                            {
                                // No hace nada
                            }
                        }
                        else
                        if (clientCreditCard.CreditCardNumber != txtNumberCardCTS.Text)
                        {
                            MessageBox.Show("El número de tarjeta ingresado pertenece a un cliente diferente, ingrese un número de tarjeta válido", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            txtNumberCardCTS.Focus();
                            return(false);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                this.Focus();
                MessageBox.Show("Error al validar tarjeta. Reintente");
                txtGenerico.Text = string.Empty;
                return(false);
            }
            return(true);
        }
Пример #2
0
        private void ValidacionTarjeta()
        {
            string textoCreditCardTextBoxText = creditCardTextBox.Text;
            string textoCodigoSeguridad       = txtCodigoSeguridad.Text;
            string textoNombreTitular         = txtNombreTitular.Text;
            string textoAmountTextBox         = amountTextBox.Text;
            string textoCreditCardCombo       = creditCardCombo.Text;

            double monto = 0;

            double.TryParse(textoAmountTextBox, out monto);

            if (!string.IsNullOrEmpty(textoAmountTextBox) && monto > 0)
            {
                switch (textoCreditCardCombo)
                {
                case "TRANSFERENCIA":
                case "CHEQUE":
                    if (textoCreditCardTextBoxText.Length != 4)
                    {
                        ErroresValidacionTarjeta("El número de la tarjeta debe ser de 4 digitos. Reingrese");
                    }
                    break;

                case "EFECTIVO":
                    break;

                default:

                    if (string.IsNullOrEmpty(textoCreditCardTextBoxText))
                    {
                        ErroresValidacionTarjeta("Debe ingresar el numero de tarjeta. Ingrese");
                        break;
                    }

                    string sNumberCardCTS = creditCardTextBox.EditValue.ToString();
                    MyCTS.Services.ValidateDKsAndCreditCards.ClientCreditCard clientCreditCard = wsServ.GetClientCreditCardNumber(sNumberCardCTS, ucFirstValidations.DK);
                    if (!string.IsNullOrEmpty(sNumberCardCTS))
                    {
                        string creditCard = wsServ.GetCreditCardNumberCTS(sNumberCardCTS);
                        if (!string.IsNullOrEmpty(creditCard))
                        {
                            ErroresValidacionTarjeta("Debes ingresar un número de tarjeta diferente a una de CTS. Reingrese");
                            creditCardTextBox.Focus();
                        }
                        if (string.IsNullOrEmpty(creditCard))
                        {
                            string clientCreditCardNumber = wsServ.GetClientCreditCardNumberATT(textoCreditCardTextBoxText);

                            if (string.IsNullOrEmpty(clientCreditCardNumber))
                            {
                                if (ValidateCreditCardNumber)
                                {
                                    if (clientCreditCard.CreditCardNumber == textoCreditCardTextBoxText && (clientCreditCard.Client == ucFirstValidations.DK && clientCreditCard.Type != textoCreditCardCombo))
                                    {
                                        ErroresValidacionTarjeta("El número de tarjeta capturado no corresponde a la tarjeta de tipo " + textoCreditCardCombo + " ligada al cliente DK: " + ucFirstValidations.DK);
                                        creditCardTextBox.Focus();
                                    }
                                }
                            }
                            else
                            if (clientCreditCard.CreditCardNumber != textoCreditCardTextBoxText)
                            {
                                ErroresValidacionTarjeta("El número de tarjeta ingresado pertenece a un cliente diferente, ingrese un número de tarjeta válido");
                                creditCardTextBox.Focus();
                            }
                        }
                    }
                    break;
                }
            }
        }
        private void ValidacionFormasDePago()
        {
            switch (cmbTypeCard.Text)
            {
            case "TR - TRANSFERENCIA":
            case "CASH - EFECTIVO":
            case "CH - CHEQUE":
                DeterminaValidacionGeneracionCargo();
                break;

            case "TP - TC UATP":
                ///Validación para la FoP TP - TC UATP para que al validar las tarjetas, no valide
                ///todos los campos existentes en la plantilla aunque esten ocultos. Para cualquier
                ///otro caso se validan todos los campos en la plantilla.
                if (ValidateCreditCardNumber)
                {
                }
                break;

            default:
                if ((string.IsNullOrEmpty(cmbTypeCard.Text) || string.IsNullOrEmpty(txtDigitoSeguridad.Text) || string.IsNullOrEmpty(txtNombreTarjetahabiente.Text) || string.IsNullOrEmpty(cmbTypeCard.Text) || string.IsNullOrEmpty(cmbMesVencimiento.Text) || string.IsNullOrEmpty(cmbAnioVencimiento.Text) || string.IsNullOrEmpty(cmbTypeCard.Text)))
                {
                    MessageBox.Show("¡Debes ingresar todos los campos!");
                    return;
                }
                //Se validan las fechas ingresadas por el usuario. No deben ser menor a los de la fecha actual
                int cmboFecYear = Convert.ToInt32(DateTime.Now.Year);
                int cmboFecMes  = Convert.ToInt32(DateTime.Now.Month);
                int cmbFecYear  = Convert.ToInt32(cmbAnioVencimiento.Text);
                if (cmbTypeCard.Text == "- Selecciona Forma de Pago -")
                {
                    MessageBox.Show("¡Ingrese la Forma de Pago!", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                cmbFecMes = seleccionaMes();

                if (cmbFecYear < cmboFecYear)
                {
                    MessageBox.Show("¡Datos de vigencia de la tarjeta invalido, verifica el año!", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    cmbAnioVencimiento.Focus();
                    return;
                }
                if (cmbFecMes < cmboFecMes & cmboFecYear == cmbFecYear)
                {
                    MessageBox.Show("¡Datos de vigencia de la tarjeta invalido, verifica el mes!", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    cmbMesVencimiento.Focus();
                    return;
                }

                if (string.IsNullOrEmpty(txtNumberCardCTS.Text))
                {
                    MessageBox.Show("Debes ingresar un número de tarjeta. Ingrese", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtNumberCardCTS.Text = string.Empty;
                    txtNumberCardCTS.Focus();
                    return;
                }

                ChargesPerService.RecuperarDK();
                WsMyCTS wsServ = new WsMyCTS();
                MyCTS.Services.ValidateDKsAndCreditCards.ClientCreditCard clientCreditCard = wsServ.GetClientCreditCardNumber(txtNumberCardCTS.Text, ChargesPerService.DKActual);

                string creditCard = wsServ.GetCreditCardNumberCTS(txtNumberCardCTS.Text);
                if (!string.IsNullOrEmpty(creditCard))
                {
                    this.Focus();
                    MessageBox.Show("Debes ingresar un número de tarjeta diferente a una de CTS. Reingrese", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtNumberCardCTS.Text = string.Empty;
                    txtNumberCardCTS.Focus();
                    return;
                }
                string clientCreditCardNumber = wsServ.GetClientCreditCardNumberATT(txtNumberCardCTS.Text);

                if (string.IsNullOrEmpty(clientCreditCardNumber))
                {
                    if (ValidateCreditCardNumber)
                    {
                        // No hace nada
                    }
                }
                else
                {
                    if (clientCreditCard.CreditCardNumber != txtNumberCardCTS.Text)
                    {
                        MessageBox.Show("El número de tarjeta ingresado pertenece a un cliente diferente, ingrese un número de tarjeta válido", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        txtNumberCardCTS.Text = string.Empty;
                        txtNumberCardCTS.Focus();
                        return;
                    }
                }

                if (txtNumberCardCTS.Text == clientCreditCard.CreditCardNumber & ChargesPerService.DKActual == clientCreditCard.Client)
                {
                    DeterminaValidacionGeneracionCargo();
                }
                break;
            }

            if (!VerificarCargoPrevio())
            {
                Pagar();
            }
            else
            {
                MessageBox.Show("Ya cuenta con un intento de cargo por servicio previo para hoteles, no es posible realizar un nuevo cargo por servicio para hoteles mediante la interfaz", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
        }
        private void creditCardTextBox_Leave(object sender, EventArgs e)
        {
            try
            {
                string sNumberCardCTS = creditCardTextBox.EditValue.ToString();
                if (!string.IsNullOrEmpty(sNumberCardCTS))
                {
                    WsMyCTS wsServ     = new WsMyCTS();
                    string  creditCard = wsServ.GetCreditCardNumberCTS(sNumberCardCTS);

                    if (ctsCheckBox.Checked == true)
                    {
                        if (string.IsNullOrEmpty(creditCard))
                        {
                            this.Focus();
                            MessageBox.Show("Debes ingresar un número de tarjeta perteneciente a CTS. Reingrese", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            creditCardTextBox.EditValue = string.Empty;
                        }
                    }
                    else if (clientCheckBox.Checked == true)
                    {
                        if (!string.IsNullOrEmpty(creditCard))
                        {
                            MyCTS.Services.ValidateDKsAndCreditCards.ClientCreditCard clientCreditCard = wsServ.GetClientCreditCardNumber(creditCardTextBox.Text, ucFirstValidations.dk);

                            if (clientCreditCard.CreditCardNumber != null)
                            {
                                if (clientCreditCard.CreditCardNumber != creditCardTextBox.Text && clientCreditCard.Client != ucFirstValidations.dk)
                                {
                                    MessageBox.Show("El número de tarjeta ingresado pertenece a un cliente diferente, ingrese un número de tarjeta válido", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    creditCardTextBox.Focus();
                                }
                                else if (ValidateCreditCardNumber)
                                {
                                }
                            }
                            else
                            {
                                this.Focus();
                                MessageBox.Show("Debes ingresar un número de tarjeta diferente a una de CTS. Reingrese", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information);
                                creditCardTextBox.EditValue = string.Empty;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                this.Focus();
                MessageBox.Show("Error al validar tarjeta. Reintente"); creditCardTextBox.EditValue = string.Empty;
            }
        }