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); } }
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 ); } }