private void btnFormatoRide_Click(object sender, EventArgs e) { try { if (dbAyudaFacturas.iId == 0) { ok.LblMensaje.Text = "No ha seleccionado ninguna factura."; ok.ShowDialog(); } else { //OBTENGO EL LOGO //------------------------------------------------------------------------------------- logo = new Clases_Factura_Electronica.ClaseObtenerLogo(); if (logo.obtenerRutaLogo() == false) { ok = new VentanasMensajes.frmMensajeOK(); ok.LblMensaje.Text = logo.sRespuesta; ok.ShowDialog(); return; } else { sRutaLogo = logo.sRespuesta; } //------------------------------------------------------------------------------------- dtConsulta = new DataTable(); dtConsulta.Clear(); this.Cursor = Cursors.WaitCursor; bRespuesta = conexion.GFun_Lo_Genera_Ride(dtConsulta, dbAyudaFacturas.iId); if (bRespuesta == true) { //bRespuesta = ride.generarRide(dtConsulta, "", dbAyudaFacturas.iId); //if (bRespuesta == false) //{ // ok.LblMensaje.Text = "Error al crear el reporte RIDE de la factura "; // ok.ShowDialog(); //} if (sRutaLogo == "") { Bitmap My_Logo = Properties.Resources.SIN_LOGO; var ms = new MemoryStream(); My_Logo.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Logo_Factura = ms.ToArray(); } else { if (File.Exists(sRutaLogo)) { Logo_Factura = File.ReadAllBytes(sRutaLogo); } else { Bitmap My_Logo = Properties.Resources.SIN_LOGO; var ms = new MemoryStream(); My_Logo.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Logo_Factura = ms.ToArray(); } } Facturacion_Electronica.frmVistaPreviaFacturaElectronica vista = new frmVistaPreviaFacturaElectronica(dtConsulta, "", dbAyudaFacturas.iId, Logo_Factura); vista.ShowDialog(); } this.Cursor = Cursors.Default; } } catch (Exception ex) { catchMensaje.LblMensaje.Text = ex.Message; catchMensaje.ShowDialog(); this.Cursor = Cursors.Default; } }
private async void btnReenviar_Click(object sender, EventArgs e) { iNumeroRegistros = 0; iErrorGenerados = 0; iErrorFirmados = 0; iErrorEnviarSRI = 0; iErrorConsultarXMLSRI = 0; iErrorEnviarMail = 0; iEnviadosExitosamente = 0; Task <bool> task; bool bConsulta; for (int i = 0; i < dgvDatos.Rows.Count; i++) { if (Convert.ToBoolean(dgvDatos.Rows[i].Cells["colMarca"].Value) == true) { iNumeroRegistros++; } } if (dgvDatos.Rows.Count == 0) { ok = new VentanasMensajes.frmMensajeOK(); ok.LblMensaje.Text = "No existen comprobantes electrónicos para procesar."; ok.ShowDialog(); return; } else if (iNumeroRegistros == 0) { ok = new VentanasMensajes.frmMensajeOK(); ok.LblMensaje.Text = "No hay registros seleccionados para procesar la información."; ok.ShowDialog(); return; } else { if (conexionInternet() == false) { ok = new VentanasMensajes.frmMensajeOK(); ok.LblMensaje.Text = "No hay una conexión a internet. Favor verifique la conectividad."; ok.ShowDialog(); return; } else { SiNo = new VentanasMensajes.frmMensajeSiNo(); SiNo.LblMensaje.Text = "¿Desea procesar los comprobantes electrónicos emitidos?"; SiNo.ShowDialog(); if (SiNo.DialogResult == DialogResult.OK) { this.Cursor = Cursors.WaitCursor; buscarDirectorio(); //AQUI TRAER EL LOGO //----------------------------------------------------------------- logo = new Clases_Factura_Electronica.ClaseObtenerLogo(); if (logo.obtenerRutaLogo() == false) { ok = new VentanasMensajes.frmMensajeOK(); ok.LblMensaje.Text = logo.sRespuesta; ok.ShowDialog(); return; } else { sRutaLogo = logo.sRespuesta; } //SE INSTANCIA EL LOGO EN MEMORIA PARA ENVIAR if (sRutaLogo == "") { Bitmap My_Logo = Properties.Resources.SIN_LOGO; var ms = new MemoryStream(); My_Logo.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Logo_Factura = ms.ToArray(); } else { if (File.Exists(sRutaLogo)) { Logo_Factura = File.ReadAllBytes(sRutaLogo); } else { Bitmap My_Logo = Properties.Resources.SIN_LOGO; var ms = new MemoryStream(); My_Logo.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Logo_Factura = ms.ToArray(); } } //----------------------------------------------------------------- //AQUI SE INICIA EL PROCESO DE SINCRONIZACION CON EL SRI for (int i = 0; i < dgvDatos.Rows.Count; i++) { if (Convert.ToBoolean(dgvDatos.Rows[i].Cells["colMarca"].Value) == true) { sNumeroDocumento = "F" + dgvDatos.Rows[i].Cells["colEstablecimiento"].Value.ToString() + dgvDatos.Rows[i].Cells["colPtoEmision"].Value.ToString() + dgvDatos.Rows[i].Cells["colNumeroComprobante"].Value.ToString().PadLeft(9, '0'); //USANDO TASK ASYNC AWAIT // PASO 1.- INVOCAR A FUNCION PARA PRIMERO GENERAR EL XML task = new Task <bool>(() => generarXML(Convert.ToInt64(dgvDatos.Rows[i].Cells["colIdFactura"].Value))); task.Start(); dgvDatos.Rows[i].Cells["colEstado"].Value = "Generando XML..."; bConsulta = await task; if (bConsulta == true) { dgvDatos.Rows[i].Cells["colEstado"].Value = "XML Generado."; dgvDatos.Rows[i].Cells["colEstado"].Style.BackColor = Color.Lime; } else { dgvDatos.Rows[i].Cells["colEstado"].Value = "Error generar XML."; dgvDatos.Rows[i].Cells["colEstado"].Style.BackColor = Color.Red; goto retorna; } // PASO 2.- INVOCAR A FUNCION PARA FIRMAR EL XML task = new Task <bool>(() => firmarArchivoXML(sNumeroDocumento)); task.Start(); dgvDatos.Rows[i].Cells["colEstado"].Value = "Firmando XML..."; bConsulta = await task; if (bConsulta == true) { dgvDatos.Rows[i].Cells["colEstado"].Value = "XML Firmado."; dgvDatos.Rows[i].Cells["colEstado"].Style.BackColor = Color.Lime; } else { dgvDatos.Rows[i].Cells["colEstado"].Value = "Error firmar XML."; dgvDatos.Rows[i].Cells["colEstado"].Style.BackColor = Color.Red; goto retorna; } Thread.Sleep(3000); //PASO 5.- ENVIAR AL CORREO ELECTRONICO DEL CLIENTE task = new Task <bool>(() => enviarMailReenvio(i, Convert.ToInt64(dgvDatos.Rows[i].Cells["colIdFactura"].Value), sNumeroDocumento)); task.Start(); dgvDatos.Rows[i].Cells["colEstado"].Value = "Enviando al correo..."; bConsulta = await task; if (bConsulta == true) { dgvDatos.Rows[i].Cells["colEstado"].Value = "Correo enviado."; dgvDatos.Rows[i].Cells["colEstado"].Style.BackColor = Color.Yellow; } else { dgvDatos.Rows[i].Cells["colEstado"].Value = "Error al enviar al correo."; dgvDatos.Rows[i].Cells["colEstado"].Style.BackColor = Color.Red; goto retorna; } dgvDatos.Rows[i].Cells["colMarca"].Value = false; } retorna : { } } this.Cursor = Cursors.Default; chkSeleccionar.Checked = false; chkSeleccionar.Text = "Seleccionar todos los registros"; } } } }
private async void btnReenviarFactura_Click(object sender, EventArgs e) { Task <bool> task; bool bConsulta; if (conexionInternet() == false) { ok = new VentanasMensajes.frmMensajeNuevoOk(); ok.lblMensaje.Text = "No hay una conexión a internet. Favor verifique la conectividad."; ok.ShowDialog(); return; } SiNo = new VentanasMensajes.frmMensajeNuevoSiNo(); SiNo.lblMensaje.Text = "¿Desea reenviar el comprobante seleccionado?"; SiNo.ShowDialog(); if (SiNo.DialogResult == DialogResult.OK) { this.Cursor = Cursors.WaitCursor; buscarDirectorio(); //AQUI TRAER EL LOGO //----------------------------------------------------------------- logo = new Clases_Factura_Electronica.ClaseObtenerLogo(); if (logo.obtenerRutaLogo() == false) { this.Cursor = Cursors.Default; ok = new VentanasMensajes.frmMensajeNuevoOk(); ok.lblMensaje.Text = logo.sRespuesta; ok.ShowDialog(); return; } else { sRutaLogo = logo.sRespuesta; } //SE INSTANCIA EL LOGO EN MEMORIA PARA ENVIAR if (sRutaLogo == "") { Bitmap My_Logo = Properties.Resources.SIN_LOGO; var ms = new MemoryStream(); My_Logo.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Logo_Factura = ms.ToArray(); } else { if (File.Exists(sRutaLogo)) { Logo_Factura = File.ReadAllBytes(sRutaLogo); } else { Bitmap My_Logo = Properties.Resources.SIN_LOGO; var ms = new MemoryStream(); My_Logo.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); Logo_Factura = ms.ToArray(); } } //----------------------------------------------------------------- if (actualizarCorreo() == false) { return; } string sNumeroDocumento = "F" + sSecuenciaFactura; //USANDO TASK ASYNC AWAIT // PASO 1.- INVOCAR A FUNCION PARA PRIMERO GENERAR EL XML task = new Task <bool>(() => generarXML(Convert.ToInt64(iIdFactura))); task.Start(); lblEstadoReenvio.Text = "Generando XML."; bConsulta = await task; if (bConsulta == true) { lblEstadoReenvio.Text = "XML Generado."; } else { lblEstadoReenvio.Text = "Error generar XML."; return; } // PASO 2.- INVOCAR A FUNCION PARA FIRMAR EL XML task = new Task <bool>(() => firmarArchivoXML(sNumeroDocumento)); task.Start(); lblEstadoReenvio.Text = "Firmando XML"; bConsulta = await task; if (bConsulta == true) { lblEstadoReenvio.Text = "XML Firmado."; } else { lblEstadoReenvio.Text = "Error firmar XML."; return; } Thread.Sleep(3000); //PASO 5.- ENVIAR AL CORREO ELECTRONICO DEL CLIENTE task = new Task <bool>(() => enviarMailReenvio(Convert.ToInt64(iIdFactura), sNumeroDocumento)); task.Start(); lblEstadoReenvio.Text = "Enviando al correo."; bConsulta = await task; if (bConsulta == true) { lblEstadoReenvio.Text = "Correo enviado."; ok = new VentanasMensajes.frmMensajeNuevoOk(); ok.lblMensaje.Text = "Se ha enviado la factura éxitosamente."; ok.ShowDialog(); this.Cursor = Cursors.Default; limpiar(); return; } else { lblEstadoReenvio.Text = "Error al enviar al correo."; ok = new VentanasMensajes.frmMensajeNuevoOk(); ok.lblMensaje.Text = "Error al enviar la factura al correo."; ok.ShowDialog(); this.Cursor = Cursors.Default; return; } this.Cursor = Cursors.Default; } }