//////////////////////////////////////////////////////////////////// /// <summary> /// Draw QR Code /// </summary> /// <param name="QRCode">QR Code resource</param> /// <param name="OriginX">Origin X</param> /// <param name="OriginY">Origin Y</param> /// <param name="Width">Display width and height</param> /// <remarks> /// <para> /// The QR Code is saved in the PDF document as an image. /// </para> /// <para> /// QR Code is a square. The display height is the same as the width. /// </para> /// </remarks> //////////////////////////////////////////////////////////////////// public void DrawQRCode( PdfQRCode QRCode, Double OriginX, Double OriginY, Double Width ) { // add QR code to current list of resources AddToUsedResources(QRCode); // draw QR Code ContentsString.AppendFormat(NFI.PeriodDecSep, "q {0} 0 0 {0} {1} {2} cm {3} Do Q\n", ToPt(Width), ToPt(OriginX), ToPt(OriginY), QRCode.ResourceCode); return; }
private void WebView_DownloadCompleted(object sender, DownloadEventArgs e) { try { if (this.Cancelar) { this.Cursor = System.Windows.Forms.Cursors.Arrow; this.webControl1.Cursor = System.Windows.Forms.Cursors.Arrow; // Mensaje.MostrarMensaje(Constantes.TipoMensaje.Detenido, "Descarga", "Proceso cancelado por el usuario"); } else { DownloadItem archivoXML = e.Item; String full = archivoXML.FullPath; if (new FileInfo(full).Length == 0) { // empty System.Windows.Forms.Clipboard.SetText("archivo vacio"); this.cuantosNoSeInsertaron++; } else { String[] fullArray = full.Split('\\'); String nombreDelArchivo = fullArray.Last(); XmlDocument doc = new XmlDocument(); doc.Load(full); XmlNodeList titles = doc.GetElementsByTagName("tfd:TimbreFiscalDigital"); XmlNode obj = titles.Item(0); String noCertificadoSAT = ""; bool isNoCertificado = obj.Attributes["noCertificadoSAT"] != null; if (isNoCertificado) { noCertificadoSAT = obj.Attributes["noCertificadoSAT"].InnerText; } String selloCFD = ""; bool isselloCFD = obj.Attributes["selloCFD"] != null; if (isselloCFD) { selloCFD = obj.Attributes["selloCFD"].InnerText; } String selloSAT = ""; bool isselloSAT = obj.Attributes["selloSAT"] != null; if (isselloSAT) { selloSAT = obj.Attributes["selloSAT"].InnerText; } String folio_fiscal = obj.Attributes["UUID"].InnerText; folio_fiscal = folio_fiscal.ToUpper(); XmlNodeList titlesx = doc.GetElementsByTagName("cfdi:Receptor"); if (titlesx.Count == 0) { titlesx = doc.GetElementsByTagName("Receptor"); } XmlNode objx = titlesx.Item(0); String rfcReceptor = ""; String nombreReceptor = ""; bool isRFCrfcReceptor = objx.Attributes["rfc"] != null; if (isRFCrfcReceptor) { rfcReceptor = objx.Attributes["rfc"].InnerText.Trim(); } bool isRFCNombreReceptor = objx.Attributes["nombre"] != null; if (isRFCNombreReceptor) { nombreReceptor = objx.Attributes["nombre"].InnerText; } XmlNodeList titles1 = doc.GetElementsByTagName("cfdi:Emisor"); if (titles1.Count == 0) { titles1 = doc.GetElementsByTagName("Emisor"); } XmlNode obj1 = titles1.Item(0); String rfc = ""; bool isRFC = obj1.Attributes["rfc"] != null; if (isRFC) { rfc = obj1.Attributes["rfc"].InnerText.Trim(); } //revisar que el RFC coincida , por lo menos uno de los 2 if (!rfc.Equals(Properties.Settings.Default.RFC)) { if (!rfcReceptor.Equals(Properties.Settings.Default.RFC)) { return;//naranjas } } String razon = ""; bool isRazon = obj1.Attributes["nombre"] != null; if (isRazon) { razon = obj1.Attributes["nombre"].InnerText; razon = razon.Replace('\'', ' '); } XmlNodeList titles2 = doc.GetElementsByTagName("cfdi:Comprobante"); if (titles2.Count == 0) { titles2 = doc.GetElementsByTagName("Comprobante"); } XmlNode obj2 = titles2.Item(0); XmlNodeList titlesY = doc.GetElementsByTagName("cfdi:DomicilioFiscal"); if (titlesY.Count == 0) { titlesY = doc.GetElementsByTagName("DomicilioFiscal"); } String calle = ""; String noExterior = ""; String colonia = ""; String municipio = ""; String estado = ""; if (titlesY.Count > 0) { XmlNode objY = titlesY.Item(0); bool isCalle = objY.Attributes["calle"] != null; if (isCalle) { calle = objY.Attributes["calle"].InnerText; } bool isnoExterior = objY.Attributes["noExterior"] != null; if (isnoExterior) { noExterior = objY.Attributes["noExterior"].InnerText; } bool iscolonia = objY.Attributes["colonia"] != null; if (iscolonia) { colonia = objY.Attributes["colonia"].InnerText; } bool ismunicipio = objY.Attributes["municipio"] != null; if (ismunicipio) { municipio = objY.Attributes["municipio"].InnerText; } bool isestado = objY.Attributes["estado"] != null; if (isestado) { estado = objY.Attributes["estado"].InnerText; } } XmlNodeList titles4 = doc.GetElementsByTagName("cfdi:Impuestos"); if (titles4.Count == 0) { titles4 = doc.GetElementsByTagName("Impuestos"); } XmlNode obj4 = titles4.Item(0); String iva = "0"; bool isIva = obj4.Attributes["totalImpuestosTrasladados"] != null; if (isIva) { iva = obj4.Attributes["totalImpuestosTrasladados"].InnerText; } else { XmlNodeList traslados = doc.GetElementsByTagName("cfdi:Traslado"); if (traslados.Count == 0) { traslados = doc.GetElementsByTagName("Traslado"); } int i; for (i = 0; i < traslados.Count; i++) { XmlNode objn = traslados.Item(i); String cantidad = "0"; bool isCantidad = objn.Attributes["importe"] != null; if (isCantidad) { cantidad = objn.Attributes["importe"].InnerText; } iva = Convert.ToString(float.Parse(iva) + float.Parse(cantidad)); } } String subTotal = ""; bool isSubTotal = obj2.Attributes["subTotal"] != null; if (isSubTotal) { subTotal = obj2.Attributes["subTotal"].InnerText; } String tipoDeComprobante = "INGRESO"; bool istipoDeComprobante = obj2.Attributes["tipoDeComprobante"] != null; if (istipoDeComprobante) { tipoDeComprobante = obj2.Attributes["tipoDeComprobante"].InnerText.Trim().ToUpper(); } String total = ""; bool isTotal = obj2.Attributes["total"] != null; if (isTotal) { total = obj2.Attributes["total"].InnerText; } bool isFecha = obj2.Attributes["fecha"] != null; String fecha = ""; if (isFecha) { fecha = obj2.Attributes["fecha"].InnerText; } bool isFolio = obj2.Attributes["folio"] != null; String folio = ""; if (isFolio) { folio = obj2.Attributes["folio"].InnerText; } if (estoyEnCancelados) { String query1 = "UPDATE [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] set STATUS = '0' WHERE folioFiscal = '" + folio_fiscal + "'"; totalDeCancelados++; try { using (SqlConnection connection = new SqlConnection(connString)) { connection.Open(); SqlCommand cmd = new SqlCommand(query1, connection); cmd.ExecuteNonQuery(); String queryCheck1 = "SELECT BUNIT, JRNAL_NO, JRNAL_LINE, CONCEPTO, FUNCION, PROJECT, descripcionLI, AMOUNT, Consecutivo, FOLIO_FISCAL FROM [" + Properties.Settings.Default.Database + "].[dbo].[FISCAL_xml] WHERE folioFiscal = '" + folio_fiscal + "'"; SqlCommand cmdCheck = new SqlCommand(queryCheck1, connection); SqlDataReader reader = cmdCheck.ExecuteReader(); if (reader.HasRows) { String BUNIT = ""; String JRNAL_NO = ""; String JRNAL_LINE = ""; String CONCEPTO = ""; String FUNCION = ""; String PROJECT = ""; String descripcionLI = ""; String AMOUNT = ""; String Consecutivo = ""; String FOLIO_FISCAL = ""; mensajeParaElCorreo.Append(this.Enters + "Los cancelados estan ligados a los siguientes movimientos: "); while (reader.Read()) { BUNIT = reader.GetString(0).Trim(); JRNAL_NO = Convert.ToString(reader.GetInt32(1)); JRNAL_LINE = Convert.ToString(reader.GetInt32(2)); CONCEPTO = reader.GetString(3).Trim(); FUNCION = reader.GetString(4).Trim(); PROJECT = reader.GetString(5).Trim(); descripcionLI = reader.GetString(6).Trim(); AMOUNT = Convert.ToString(reader.GetDecimal(7)); Consecutivo = reader.GetString(8).Trim(); FOLIO_FISCAL = reader.GetString(9).Trim(); mensajeParaElCorreo.Append(this.Enters + BUNIT + " " + JRNAL_NO + " " + JRNAL_LINE + " " + CONCEPTO + " " + FUNCION + " " + PROJECT + " " + descripcionLI + " " + AMOUNT + " " + FOLIO_FISCAL + " " + Consecutivo); } } } } catch (Exception ex1) { System.Windows.Forms.MessageBox.Show(ex1.ToString(), "Error Message1", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } else { String query = ""; int STATUS = -1; if (this.AnoSel.IndexOf("Emitidos") != -1) { if (tipoDeComprobante.Equals("INGRESO")) { STATUS = 2; query = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] (folioFiscal,nombreArchivoXML,ruta,rfc,razonSocial,total,folio,fechaExpedicion,nombreArchivoPDF,STATUS,ocultaEnLigar,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + nombreDelArchivo + "', '" + carpeta.Text + (object)Path.DirectorySeparatorChar + this.AnoSel + (object)Path.DirectorySeparatorChar + this.MesSel + (object)Path.DirectorySeparatorChar + diaActual + "', '" + rfcReceptor + "', '" + nombreReceptor + "', " + total + ", '" + folio + "' , '" + fecha + "', '" + folio_fiscal + ".pdf','2',0,'" + Properties.Settings.Default.RFC + "')"; } else { STATUS = 1; query = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] (folioFiscal,nombreArchivoXML,ruta,rfc,razonSocial,total,folio,fechaExpedicion,nombreArchivoPDF,STATUS,ocultaEnLigar,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + nombreDelArchivo + "', '" + carpeta.Text + (object)Path.DirectorySeparatorChar + this.AnoSel + (object)Path.DirectorySeparatorChar + this.MesSel + (object)Path.DirectorySeparatorChar + diaActual + "', '" + rfcReceptor + "', '" + nombreReceptor + "', " + total + ", '" + folio + "' , '" + fecha + "', '" + folio_fiscal + ".pdf','1',0,'" + Properties.Settings.Default.RFC + "')"; } insertaProveedor(rfcReceptor, nombreReceptor); sincroniza(fecha, rfcReceptor, nombreReceptor, STATUS, total, folio, folio_fiscal, Properties.Settings.Default.RFC, ""); } else { if (tipoDeComprobante.Equals("INGRESO")) { STATUS = 1; query = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] (folioFiscal,nombreArchivoXML,ruta,rfc,razonSocial,total,folio,fechaExpedicion,nombreArchivoPDF,STATUS,ocultaEnLigar,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + nombreDelArchivo + "', '" + carpeta.Text + (object)Path.DirectorySeparatorChar + this.AnoSel + (object)Path.DirectorySeparatorChar + this.MesSel + (object)Path.DirectorySeparatorChar + diaActual + "', '" + rfc + "', '" + razon + "', " + total + ", '" + folio + "' , '" + fecha + "', '" + folio_fiscal + ".pdf','1',0,'" + Properties.Settings.Default.RFC + "')"; } else { STATUS = 2; query = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] (folioFiscal,nombreArchivoXML,ruta,rfc,razonSocial,total,folio,fechaExpedicion,nombreArchivoPDF,STATUS,ocultaEnLigar,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + nombreDelArchivo + "', '" + carpeta.Text + (object)Path.DirectorySeparatorChar + this.AnoSel + (object)Path.DirectorySeparatorChar + this.MesSel + (object)Path.DirectorySeparatorChar + diaActual + "', '" + rfc + "', '" + razon + "', " + total + ", '" + folio + "' , '" + fecha + "', '" + folio_fiscal + ".pdf','2',0,'" + Properties.Settings.Default.RFC + "')"; } //query = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] (folioFiscal,nombreArchivoXML,ruta,rfc,razonSocial,total,folio,fechaExpedicion,nombreArchivoPDF,STATUS,ocultaEnLigar) VALUES ('" + folio_fiscal + "', '" + nombreDelArchivo + "', '" + carpeta.Text + (object)Path.DirectorySeparatorChar + this.AnoSel + (object)Path.DirectorySeparatorChar + this.MesSel + (object)Path.DirectorySeparatorChar + diaActual + "', '" + rfc + "', '" + razon + "', " + total + ", '" + folio + "' , '" + fecha + "', '" + folio_fiscal + ".pdf','1',0)"; insertaProveedor(rfc, razon); sincroniza(fecha, rfc, razon, STATUS, total, folio, folio_fiscal, Properties.Settings.Default.RFC, ""); } String queryCheck = "SELECT * FROM [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] WHERE folioFiscal = '" + folio_fiscal + "'"; try { using (SqlConnection connection = new SqlConnection(connString)) { connection.Open(); SqlCommand cmdCheck = new SqlCommand(queryCheck, connection); SqlDataReader reader = cmdCheck.ExecuteReader(); if (!reader.Read()) { reader.Close(); connection.Close(); connection.Open(); SqlCommand cmd = new SqlCommand(query, connection); cmd.ExecuteNonQuery(); PdfContents Contents = null; PdfPage Page = null; const Double Width = 5.15; const Double Height = 10.65; const Double FontSize = 9.0; PdfFileWriter.TextBox Box = null; if (cadaCuantasHorasGlobal == 0 || 1 == 1)//no estoy en modo de horas { String FileName = carpeta.Text + (object)Path.DirectorySeparatorChar + this.AnoSel + (object)Path.DirectorySeparatorChar + this.MesSel + (object)Path.DirectorySeparatorChar + diaActual.ToString() + (object)Path.DirectorySeparatorChar + folio_fiscal + ".pdf"; Document = new PdfDocument(PaperType.Letter, false, UnitOfMeasure.Inch, FileName); DefineFontResources(); DefineTilingPatternResource(); Page = new PdfPage(Document); Contents = new PdfContents(Page); Contents.SaveGraphicsState(); Contents.Translate(0.1, 0.1); Box = new PdfFileWriter.TextBox(Width, 0.25); } XmlNodeList conceptos = doc.GetElementsByTagName("cfdi:Concepto"); if (conceptos.Count == 0) { conceptos = doc.GetElementsByTagName("Concepto"); } int i; String conceptosString = ""; for (i = 0; i < conceptos.Count; i++) { XmlNode objy = conceptos.Item(i); String cantidadc = ""; bool isCantidadc = objy.Attributes["cantidad"] != null; if (isCantidadc) { cantidadc = objy.Attributes["cantidad"].InnerText; } String unidadc = ""; bool isUnidadc = objy.Attributes["unidad"] != null; if (isUnidadc) { unidadc = objy.Attributes["unidad"].InnerText; } String descripcionc = ""; bool isdescripcionc = objy.Attributes["descripcion"] != null; if (isdescripcionc) { descripcionc = objy.Attributes["descripcion"].InnerText; } String importec = ""; bool isimportec = objy.Attributes["importe"] != null; if (isimportec) { importec = objy.Attributes["importe"].InnerText; } conceptosString = conceptosString + "\n" + cantidadc + " " + descripcionc + " $" + importec; } String impuestosString = ""; double totalDeRetenciones = 0; XmlNodeList retencionesLocales = doc.GetElementsByTagName("implocal:RetencionesLocales"); if (retencionesLocales.Count == 0) { retencionesLocales = doc.GetElementsByTagName("RetencionesLocales"); } for (i = 0; i < retencionesLocales.Count; i++) { XmlNode objn = retencionesLocales.Item(i); String cantidad = "0"; String impuesto = ""; float tasa = 0; bool isCantidad = objn.Attributes["Importe"] != null; if (isCantidad) { totalDeRetenciones += Convert.ToDouble(objn.Attributes["Importe"].InnerText); cantidad = objn.Attributes["Importe"].InnerText; impuesto = objn.Attributes["ImpLocRetenido"].InnerText; tasa = float.Parse(objn.Attributes["TasadeRetencion"].InnerText); float importe = float.Parse(cantidad); String queryCheckImpuesto = "SELECT * FROM [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] WHERE folioFiscal = '" + folio_fiscal + "' and impuesto = '" + impuesto + "' and tasa = " + tasa + " and importe = " + importe; SqlCommand cmdCheckImpuesto = new SqlCommand(queryCheckImpuesto, connection); SqlDataReader readerImpuesto = cmdCheckImpuesto.ExecuteReader(); impuestosString = impuestosString + "\nImpuesto: " + impuesto + "\nTasa: " + tasa + "\nImporte: " + importe; if (!readerImpuesto.HasRows) { readerImpuesto.Close(); String queryImpuesto = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] (folioFiscal,impuesto,tasa,importe,tipo,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + impuesto + "', " + tasa + ", " + importe + ",2,'" + Properties.Settings.Default.RFC + "')"; SqlCommand cmdImpuesto = new SqlCommand(queryImpuesto, connection); cmdImpuesto.ExecuteNonQuery(); } else { readerImpuesto.Close(); } } iva = Convert.ToString(float.Parse(iva) + float.Parse(cantidad)); } XmlNodeList retenciones = doc.GetElementsByTagName("cfdi:Retencion"); if (retenciones.Count == 0) { retenciones = doc.GetElementsByTagName("Retencion"); } for (i = 0; i < retenciones.Count; i++) { XmlNode objn = retenciones.Item(i); String cantidad = "0"; String impuesto = ""; float tasa = 0; bool isCantidad = objn.Attributes["importe"] != null; if (isCantidad) { totalDeRetenciones += Convert.ToDouble(objn.Attributes["importe"].InnerText); cantidad = objn.Attributes["importe"].InnerText; impuesto = objn.Attributes["impuesto"].InnerText; tasa = 0; float importe = float.Parse(cantidad); String queryCheckImpuesto = "SELECT * FROM [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] WHERE folioFiscal = '" + folio_fiscal + "' and impuesto = '" + impuesto + "' and tasa = " + tasa + " and importe = " + importe; SqlCommand cmdCheckImpuesto = new SqlCommand(queryCheckImpuesto, connection); SqlDataReader readerImpuesto = cmdCheckImpuesto.ExecuteReader(); impuestosString = impuestosString + "\nImpuesto: " + impuesto + "\nImporte: " + importe; if (!readerImpuesto.HasRows) { readerImpuesto.Close(); String queryImpuesto = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] (folioFiscal,impuesto,tasa,importe,tipo,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + impuesto + "', " + tasa + ", " + importe + ",2,'" + Properties.Settings.Default.RFC + "')"; SqlCommand cmdImpuesto = new SqlCommand(queryImpuesto, connection); cmdImpuesto.ExecuteNonQuery(); } else { readerImpuesto.Close(); } } iva = Convert.ToString(float.Parse(iva) + float.Parse(cantidad)); } if (totalDeRetenciones > 0.0) { double nuevoTotal = Math.Round(totalDeRetenciones + Convert.ToDouble(total), 2); String query2 = "UPDATE [" + Properties.Settings.Default.Database + "].[dbo].[facturacion_XML] set total = " + nuevoTotal + " WHERE folioFiscal = '" + folio_fiscal + "'"; try { using (SqlCommand cmdx = new SqlCommand(query2, connection)) { cmd.ExecuteNonQuery(); } } catch (Exception ex3) { ex3.ToString(); } } XmlNodeList trasladosLocales = doc.GetElementsByTagName("implocal:TrasladosLocales"); if (trasladosLocales.Count == 0) { trasladosLocales = doc.GetElementsByTagName("TrasladosLocales"); } for (i = 0; i < trasladosLocales.Count; i++) { XmlNode objn = trasladosLocales.Item(i); String cantidad = "0"; String impuesto = ""; float tasa = 0; bool isCantidad = objn.Attributes["Importe"] != null; if (isCantidad) { cantidad = objn.Attributes["Importe"].InnerText; impuesto = objn.Attributes["ImpLocTrasladado"].InnerText; tasa = float.Parse(objn.Attributes["TasadeTraslado"].InnerText); float importe = float.Parse(cantidad); String queryCheckImpuesto = "SELECT * FROM [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] WHERE folioFiscal = '" + folio_fiscal + "' and impuesto = '" + impuesto + "' and tasa = " + tasa + " and importe = " + importe; SqlCommand cmdCheckImpuesto = new SqlCommand(queryCheckImpuesto, connection); SqlDataReader readerImpuesto = cmdCheckImpuesto.ExecuteReader(); impuestosString = impuestosString + "\nImpuesto: " + impuesto + "\nTasa: " + tasa + "\nImporte: " + importe; if (!readerImpuesto.HasRows) { readerImpuesto.Close(); String queryImpuesto = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] (folioFiscal,impuesto,tasa,importe,tipo,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + impuesto + "', " + tasa + ", " + importe + ",1,'" + Properties.Settings.Default.RFC + "')"; SqlCommand cmdImpuesto = new SqlCommand(queryImpuesto, connection); cmdImpuesto.ExecuteNonQuery(); } else { readerImpuesto.Close(); } } iva = Convert.ToString(float.Parse(iva) + float.Parse(cantidad)); } XmlNodeList traslados = doc.GetElementsByTagName("cfdi:Traslado"); if (traslados.Count == 0) { traslados = doc.GetElementsByTagName("Traslado"); } for (i = 0; i < traslados.Count; i++) { XmlNode objn = traslados.Item(i); String cantidad = "0"; String impuesto = ""; float tasa = 0; bool isCantidad = objn.Attributes["importe"] != null; if (isCantidad) { cantidad = objn.Attributes["importe"].InnerText; impuesto = objn.Attributes["impuesto"].InnerText; tasa = float.Parse(objn.Attributes["tasa"].InnerText); float importe = float.Parse(cantidad); String queryCheckImpuesto = "SELECT * FROM [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] WHERE folioFiscal = '" + folio_fiscal + "' and impuesto = '" + impuesto + "' and tasa = " + tasa + " and importe = " + importe; SqlCommand cmdCheckImpuesto = new SqlCommand(queryCheckImpuesto, connection); SqlDataReader readerImpuesto = cmdCheckImpuesto.ExecuteReader(); impuestosString = impuestosString + "\nImpuesto: " + impuesto + "\nTasa: " + tasa + "\nImporte: " + importe; if (!readerImpuesto.HasRows) { readerImpuesto.Close(); String queryImpuesto = "INSERT INTO [" + Properties.Settings.Default.Database + "].[dbo].[impuestos] (folioFiscal,impuesto,tasa,importe,tipo,rfcRaiz) VALUES ('" + folio_fiscal + "', '" + impuesto + "', " + tasa + ", " + importe + ",1,'" + Properties.Settings.Default.RFC + "')"; SqlCommand cmdImpuesto = new SqlCommand(queryImpuesto, connection); cmdImpuesto.ExecuteNonQuery(); } else { readerImpuesto.Close(); } } iva = Convert.ToString(float.Parse(iva) + float.Parse(cantidad)); } if (cadaCuantasHorasGlobal == 0 || 1 == 1)//no estoy en modo de horas { Box.AddText(ArialNormal, FontSize, "Cliente: " + nombreReceptor + "\n" + "RFC: " + rfcReceptor + "\n" + "Emisor: " + razon + "\n" + "RFC: " + rfc + "\n" + "Domicilio Fiscal: " + calle + " " + noExterior + " " + colonia + " " + municipio + " " + estado + "\n" + "Folio: " + folio + "\nFolio Fiscal: " + folio_fiscal + "\nTotal: $" + total + "\nFecha de Expedicion: " + fecha + conceptosString + impuestosString + "\nNo de Serie del Certificado del SAT: " + noCertificadoSAT + "\nSello digital del CFDI:\n" + selloCFD + "\n\nSello del SAT:\n" + selloSAT + "\n\n\nEste documento es una representación impresa de un CFDI"); Box.AddText(ArialNormal, FontSize, "\n"); Double PosY = Height; Contents.DrawText(0.0, ref PosY, 0.0, 0, 0.015, 0.05, TextBoxJustify.FitToWidth, Box); Contents.RestoreGraphicsState(); Contents.SaveGraphicsState(); String DataString = "?re=" + rfc + "&rr=" + rfcReceptor + "&tt=" + total + "&id=" + folio_fiscal; PdfQRCode QRCode = new PdfQRCode(Document, DataString, ErrorCorrection.M); Contents.DrawQRCode(QRCode, 6.0, 6.8, 1.2); Contents.RestoreGraphicsState(); Document.CreateFile(); } totalDeDescargados++; } else { this.cuantosYaExistian++; totalDeYaExistian++; } } } catch (Exception ex1) { ex1.ToString(); System.Windows.Forms.Clipboard.SetText(query); this.cuantosNoSeInsertaron++; // System.Windows.Forms.MessageBox.Show("Error Message", ex1.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }//else if estoyEnCancelados }//else de empty ++this.posicion; if (this.posicion < this.ligas.Count) { if (!this.Cancelar) { this.Descargados.Add(e.Item); this.proceso.Text = string.Format("Descargando {0} de {1}, Ya existian: {2}, Con errores: {3} ", (object)(this.posicion + 1), (object)this.ligas.Count.ToString() , (object)this.cuantosYaExistian, (object)this.cuantosNoSeInsertaron); this.Descarga(); } else { this.Cursor = System.Windows.Forms.Cursors.Arrow; this.webControl1.Cursor = System.Windows.Forms.Cursors.Arrow; // Mensaje.MostrarMensaje(Constantes.TipoMensaje.Detenido, "Descarga", "Proceso cancelado por el usuario"); } } else { // enQueHoraVoyGlobal // cadaCuantasHorasGlobal int horaQueSigue = enQueHoraVoyGlobal + cadaCuantasHorasGlobal; if(horaQueSigue<24 && cadaCuantasHorasGlobal!=0)//sigue con las horas { enQueHoraVoyGlobal = enQueHoraVoyGlobal + cadaCuantasHorasGlobal; if(estoyEnEmitidos) { tmrDecimoCuarto.Start(); } else { tmrQuintoPrimo.Start(); } } else {//cambia el dia enQueHoraVoyGlobal = 0; //cambia un dia if (modoGlobal == 2 && estoyEnEmitidos) { DateTime now = DateTime.Now; int year = now.Year - anoAnterior; int month = now.Month; if (modoGlobal == 2)//ultrapesado { month = mesActual + 1; } int diaFinal = 28; if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { diaFinal = 31; } else { if (month == 4 || month == 6 || month == 9 || month == 11) { diaFinal = 30; } else { if (year % 4 == 0)//ano bisiesto { diaFinal = 29; } } } if (diaActual < diaFinal) { diaActual++; tmrDecimoCuarto.Start(); return; } else { diaActual = 1; if (mesActual < 11) { mesActual++; tmrDecimoCuarto.Start(); return; } else { tmrDecimoSexto.Start(); return; } } } if (modoGlobal == 1) { if (estoyEnEmitidos) { mandaCorreo(); } else { empiezaConLosEmitidos(); } } else { this.proceso.Text = string.Format("Descargando {0} de {1}, Ya existian: {2}, Con errores: {3}", (object)this.posicion, (object)this.ligas.Count.ToString(), (object)this.cuantosYaExistian, (object)this.cuantosNoSeInsertaron); this.Descargados.Add(e.Item); this.Cursor = System.Windows.Forms.Cursors.Arrow; this.webControl1.Cursor = System.Windows.Forms.Cursors.Arrow; this.proceso.Text = string.Format("Descarga Finalizada {0} de {1}, Ya existian: {2}, Con errores: {3}", (object)this.posicion, (object)this.ligas.Count.ToString(), (object)this.cuantosYaExistian, (object)this.cuantosNoSeInsertaron); if (estoyEnCancelados) { //ya termine mensajeParaElCorreo.Append(totalDeCancelados); return; } if (!estoyEnCancelados && estoyEnEmitidos) { //agregar para debuguear emitidos mensajeParaElCorreo.Append(Enters + Enters + "Facturas Emitidas totales: " + (object)this.ligas.Count.ToString() + " Ya existian: " + (object)this.cuantosYaExistian); tmrDecimoSexto.Start(); return; } DateTime now = DateTime.Now; int year = now.Year - anoAnterior; int month = now.Month; if (modoGlobal == 2)//ultrapesado { month = mesActual + 1; } int diaFinal = 28; if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { diaFinal = 31; } else { if (month == 4 || month == 6 || month == 9 || month == 11) { diaFinal = 30; } else { if (year % 4 == 0)//ano bisiesto { diaFinal = 29; } } } if (diaActual < diaFinal) { diaActual++; if (estoyEnElMesAnterior) { tmrDecimo.Start(); } else { if(cadaCuantasHorasGlobal==0)//sin horas { tmrQuinto.Start(); } else { tmrQuintoPrimo.Start(); } } } else { if (estoyEnElMesAnterior) { estoyEnElMesAnterior = false; diaActual = 1; empiezaConLosCancelados(); } else { if (modoGlobal == 2)//ultrapesado { if (mesActual < 11) { mesActual++; diaActual = 1; tmrDecimo.Start(); } else { estoyEnElMesAnterior = false; diaActual = 1; mesActual = 0; empiezaConLosCancelados(); } } else//modo pesado { empiezaConElMesAnterior(); } } } } }//if cambia un dia } } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show( ex.ToString(), "Error Title2", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); // Logs.Escribir("Error en download complete : " + ex.ToString()); } }