Exemple #1
0
 void DataCallbackThreadHelper(MMM.Readers.FullPage.DataType aDataType, object aData)
 {
     if (_threadHelperControl.InvokeRequired)
     {
         _threadHelperControl.Invoke(
             new MMM.Readers.FullPage.DataDelegate(DataCallback),
             new object[] { aDataType, aData }
             );
     }
     else
     {
         DataCallback(aDataType, aData);
     }
 }
Exemple #2
0
        void DataCallback(MMM.Readers.FullPage.DataType aDataType, object aData)
        {
            pic_scan.Focus();
            bool ok = false;

            try
            {
                if (aData != null)
                {
                    switch (aDataType)
                    {
                    case MMM.Readers.FullPage.DataType.CD_CODELINE_DATA:
                    {
                        MMM.Readers.CodelineData codeline = (MMM.Readers.CodelineData)aData;
                        if (codeline.Surname != "")
                        {
                            identificadorDoc = codeline.DocType.Substring(0, 1);
                            datok            = true;
                            apellido         = codeline.Surname;
                            if (apellido.Contains(" "))
                            {
                                int endIndexDos = apellido.IndexOf(" ", 0);
                                apellido = apellido.Substring(0, endIndexDos);
                            }
                            nombre       = codeline.Forename;
                            codPais      = codeline.Nationality;
                            numPasaporte = codeline.DocNumber;

                            // obtengo el año actual
                            DateTime Hoy2       = DateTime.Today;
                            string   anioActual = Hoy2.ToString("yy");
                            int      anioA      = Convert.ToInt16(anioActual);
                            DateTime dt         = new DateTime(codeline.DateOfBirth.Year, codeline.DateOfBirth.Month, codeline.DateOfBirth.Day);
                            fecha_nac = dt.ToString("dd-MMM-yyyy", CultureInfo.CreateSpecificCulture("en-US"));
                            edad      = DateTime.Today.AddTicks(-dt.Ticks).Year - 1;
                            if (codeline.DateOfBirth.Year > anioA)
                            {
                                edad = edad - 1900;
                            }
                            else
                            {
                                edad = edad + 2000;
                            }
                            // fin fecha nacimiento
                        }

                        break;
                    }

                    case MMM.Readers.FullPage.DataType.CD_IMAGEVIS:
                    {
                        pic_scan.Image = aData as Bitmap;
                        imagenReal     = aData as Bitmap;
                        // reduzco la imagen en 150 ppp para guardarla
                        imagenReal = ScaleByPercent(imagenReal, 50);
                        if (datok && tipoMov != 1)
                        {
                            busca_reserva(); datok = false;
                        }
                        else if (datok && tipoMov == 1)
                        {
                            guarda_datos(); datok = false;
                        }
                        else if (!datok)
                        {
                            // WinAPI.SiempreEncima(this.Handle.ToInt32());
                            //WinAPI.NoSiempreEncima(this.Handle.ToInt32());
                            if (MessageBox.Show("DESEA GUARDAR COMO IDENTIFICACIÓN U OTRO TIPO LA IMAGEN?", "!ALERTA¡", MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                int filasI = 0;
                                foreach (DataGridViewRow row in dgvHuespedes.Rows)
                                {
                                    if (ToStringNullSafe(row.Cells["ESCANEAR"].Value) == "Y")
                                    {
                                        // obtengo la secuencia seleccionada en el grid
                                        string secuencia = row.Cells[1].Value.ToString();
                                        // marco el registro en freserno con "ID" para que no sobreescriba la información
                                        UConnection DB2         = new UConnection(Properties.Settings.Default.ipBD, Properties.Settings.Default.serverBD, Properties.Settings.Default.usuarioBD, Properties.Settings.Default.passBD);
                                        string      comandoSql3 = string.Format("update freserno set vn_pasaporte = 'ID' where vn_reserva = '{0}' and vn_secuencia = {1}", Program.Reserva, secuencia);
                                        ok = DB2.EjecutaSQL(comandoSql3, ref filasI);
                                    }
                                }
                                // si no inserto el identificador, quiere decir que ya existe una imagen
                                if (filasI == 1)
                                {
                                    // creo un numero aleatorio para que no se repita
                                    Random randomID       = new Random();
                                    int    randomNumberID = randomID.Next(0, 100);
                                    // Obtengo la ruta para la imagen final y la guardo
                                    var    image_name = nombreImagen + Program.Reserva + "ID" + Convert.ToString(randomNumberID) + ".jpg";
                                    byte[] imgb       = ImageToByte(imagenReal);
                                    wsimg.Img_save(carpeta, imgb, image_name);
                                    MessageBox.Show("SE GUARDÓ LA IMAGEN SATISFACTORIAMENTE.", "¡ÉXITO!");
                                }
                                else
                                {
                                    guarda_imagen();
                                }
                            }
                        }

                        msgsplash.Text = "Coloque el siguiente documento o cierre para continuar con el Check-in...";

                        break;
                    }

                        /* case MMM.Readers.FullPage.DataType.CD_IMAGEUV:
                         *   {
                         *       uvImage.Image = aData as Bitmap;
                         *       break;
                         *   }*/
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(
                    e.ToString(),
                    "Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error
                    );
            }
        }