/// <summary> /// Genera codigo QR /// </summary> /// <param name="link"></param> /// <param name="ruc"></param> /// <param name="tipoCFE"></param> /// <param name="serie"></param> /// <param name="nroCFE"></param> /// <param name="monto"></param> /// <param name="fecha"></param> /// <param name="hash1"></param> /// <returns></returns> //public bool generadorQR(string link, string ruc, string tipoCFE, // string serie, string nroCFE, string monto, string fecha, string hash1) public bool generadorQR(string link, CFE pComprobante, string monto) { bool resultado = false; string rutaQ = RutasCarpetas.RutaCarpetaComprobantes + Mensaje.nomImagenQr; try { DateTime fechaFormateada = DateTime.Parse(pComprobante.FechaComprobante); //hash1 = Uri.EscapeDataString(hash1); //string informacion = link + "?" + ruc + "," + tipoCFE + "," + serie + // "," + nroCFE + "," + monto + "," + fecha + "," + hash1; pComprobante.CodigoSeguridad = Uri.EscapeDataString(pComprobante.CodigoSeguridad); string informacion = link + "?" + pComprobante.RucEmisor + "," + pComprobante.TipoCFEInt + "," + pComprobante.SerieComprobante + "," + pComprobante.NumeroComprobante + "," + monto + "," + fechaFormateada.ToString("dd/MM/yyyy") + "," + pComprobante.CodigoSeguridad; var qrEncoder = new QrEncoder(ErrorCorrectionLevel.H); var qrCode = qrEncoder.Encode(informacion); var renderer = new GraphicsRenderer(new FixedModuleSize (10, QuietZoneModules.Two), Brushes.Black, Brushes.White); using (var stream = new FileStream(rutaQ, FileMode.Create)) renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream); resultado = true; } catch (Exception) { } return(resultado); }
/// <summary> /// Realiza el envio de los sobre por medio del web service de DGI. /// </summary> /// <param name="sobre"></param> public void EnviarSobre(Sobre sobre, Sobre sobreDgi, CFE cfe, CAE cae) { ParametrosJobWsDGI parametrosJobWsDGI = new ParametrosJobWsDGI(RUTA_CERTIFICADO, CLAVE_CERTIFICADO, URL_ENVIO, URL_CONSULTAS, cfe, cae); try { parametrosJobWsDGI.Sobre = sobre; parametrosJobWsDGI.SobreDgi = sobreDgi; comunicacionDGI.ConsumirWsEnviarSobre(parametrosJobWsDGI); } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString()); } finally { //if (parametrosJobWsDGI != null) //{ // //Libera de memoria el objeto factura // GC.SuppressFinalize(parametrosJobWsDGI); // GC.Collect(); //} } }
/// <summary> /// Crea un xml previo para un certificado /// </summary> /// <param name="cfe"></param> /// <returns></returns> public static string CrearXmlCFE(CFE cfe) { List <CFE> listaCfe = new List <CFE>(); listaCfe.Add(cfe); try { //Crear objeto serializador XmlSerializer serializer = new XmlSerializer(typeof(List <CFE>)); //Serializar lista de objetos y obtener texto using (StringWriter writer = new StringWriter()) { serializer.Serialize(writer, listaCfe); return(writer.ToString()); } } catch (SerializationException ex) { return(ex.Message.ToString()); } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString()); return(ex.Message.ToString()); } }
public static object getCFEByFactura(int Numero, string Serie) { CFE Temporal = null; using (SqlConnection Con = new SqlConnection(GlobalConnectionString)) { Con.Open(); using (SqlCommand Com = new SqlCommand("SELECT top 1 * from TESORERIACFE where SERIEFAC = @SERIE and NUMEROFAC = @NUMERO", (SqlConnection)Con)) { Com.Parameters.Add(new SqlParameter("@NUMERO", Numero)); Com.Parameters.Add(new SqlParameter("@SERIE", Serie)); using (IDataReader Reader = Com.ExecuteReader()) { if (Reader.Read()) { int Tipo = (int)(Reader["TIPOCFE"] is DBNull ? 0 : Reader["TIPOCFE"]); string CFESerie = (string)(Reader["SERIECFE"] is DBNull ? string.Empty : Reader["SERIECFE"]); int CFENumero = (int)(Reader["NUMEROCFE"] is DBNull ? 0 : Reader["NUMEROCFE"]); string Link = (string)(Reader["LINKCFE"] is DBNull ? string.Empty : Reader["LINKCFE"]); string Albaran = (string)(Reader["SERIEALB"] is DBNull ? string.Empty : Reader["SERIEALB"]); int NAlbaran = (int)(Reader["NUMEROALB"] is DBNull ? 0 : Reader["NUMEROALB"]); string SerieF = (string)(Reader["SERIEFAC"] is DBNull ? string.Empty : Reader["SERIEFAC"]); int NumeroF = (int)(Reader["NUMEROFAC"] is DBNull ? 0 : Reader["NUMEROFAC"]); Temporal = new CFE(Tipo, CFESerie, CFENumero, Link, Albaran, NAlbaran, SerieF, NumeroF); } } } } return(Temporal); }
/// <summary> /// Metodo para alamcenar los comprobantes creados /// </summary> /// <param name="cfe"></param> private void AlmacenarCFECreado(CFE cfe) { string MayorUI = "N"; if ((cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicketContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicketContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicketContingencia))) { if (cfe.TipoModena.Equals("UYU") || cfe.TipoModena.Equals("$")) { if (ValorUI.valorUI * 10000 < (cfe.TotalMontoNoGravado + cfe.TotalMontoNetoIVATasaMinima + cfe.TotalMontoNetoIVATasaBasica)) { MayorUI = "Y"; } } else { if (ValorUI.valorUI * 10000 < (cfe.TotalMontoNoGravado + cfe.TotalMontoNetoIVATasaMinima + cfe.TotalMontoNetoIVATasaBasica) * cfe.TipoCambio) { MayorUI = "Y"; } } } //Almacena el cfe creado manteUdoCfe.Almacenar(cfe, MayorUI); }
public EventosPagina(CFE pInfoComprobante, CAE pInfoCAE, string pDomicilioFiscal, string pLogo, string pDocNum) { this.infoCAE = pInfoCAE; this.infoComprobantes = pInfoComprobante; this.domicilioFiscal = pDomicilioFiscal; this.logo = pLogo; this.docNum = pDocNum; }
public Sobre(CFE cfe) { RucReceptor = cfe.NumDocReceptor; RUCEmisor = cfe.RucEmisor; Nombre = cfe.TipoCFEInt + "" + cfe.SerieComprobante + "" + cfe.NumeroComprobante; Idemisor = generarIdReceptor(); }
private void ActualizarCodSeguridad(CFE cfe) { string tabla = ""; string consulta = ""; if (cfe.CodigoSeguridad.Length > 0) { if ((cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicketContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.EFactura)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.EFacturaContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDEFactura)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDEFacturaContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicketContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.EFacturaExportacion)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.EFacturaExportacionContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDEFacturaExportacion)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDEFacturaExportacionContingencia))) { tabla = "OINV"; } else if ((cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCEFactura)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCEFacturaContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicketContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCEFacturaExportacion)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCEFacturaExportacionContingencia))) { tabla = "ORIN"; } else if (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ERemito) || cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ERemitoContingencia) || cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ERemitoExportacion) || cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ERemitoExportacionContingencia)) { tabla = "ODLN"; } else if (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.EResguardo) || cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.EResguardoContingencia)) { tabla = DocumentosB1.DocumentoB1.TABLA_RESGUARDO_COMPRA; } consulta = "update " + tabla + " set U_CodSeguridad = '" + cfe.CodigoSeguridad.Substring(0, 6) + "' where DocEntry = " + cfe.DocumentoSAP; Recordset oRecordSet = null; try { oRecordSet = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset); oRecordSet.DoQuery(consulta); } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("CodSeguridad/Error: " + ex.ToString()); } finally { if (oRecordSet != null) { //Libera de memoria el objeto factura System.Runtime.InteropServices.Marshal.ReleaseComObject(oRecordSet); GC.Collect(); } } } }
/// <summary> /// Metodo que genera un archivo Xml /// </summary> /// <returns></returns> public bool generarXml(CFE infoCFE, CAE infoCAE) { bool resultado = false; try { XDocument documentoXml = new XDocument( new XDeclaration("1.0", "UTF-8", string.Empty), new XElement("Comprobantes", new XElement("Comprobante", new XElement("ruc", infoCFE.RucEmisor.ToString()), new XElement("compania", infoCFE.NombreEmisor.ToString()), new XElement("serie", infoCFE.SerieComprobante.ToString()), new XElement("tipoCFE", infoCFE.TipoCFE.ToString()), new XElement("numero", infoCFE.NumeroComprobante.ToString()), new XElement("numeroCAE", infoCAE.NumeroAutorizacion.ToString()), new XElement("vencimientoCAE", infoCAE.FechaVencimiento.ToString()), new XElement("fechaEmision", infoCFE.FechaComprobante.ToString()), new XElement("fechaFirma", infoCFE.FechaHoraFirma.ToString()), new XElement("rangoDesde", infoCAE.NumeroDesde.ToString()), new XElement("rangoHasta", infoCAE.NumeroHasta.ToString()), new XElement("moneda", infoCFE.TipoModena.ToString()), new XElement("tasaBasica", infoCFE.TasaBasicaIVA.ToString()), new XElement("tasaMinima", infoCFE.TasaMinimaIVA.ToString()), new XElement("montoTotal", infoCFE.TotalMontoTotal.ToString()), new XElement("montoNoFacturable", infoCFE.MontoNoFacturable.ToString()), new XElement("montoTotalPagar", infoCFE.MontoTotalPagar.ToString()), new XElement("totalMontoNoGravado", infoCFE.TotalMontoNoGravado.ToString()), new XElement("codigoSeguridad", infoCFE.CodigoSeguridad), new XElement("IVATasaBAsica", infoCFE.TotalIVATasaBasica.ToString()), new XElement("netoIVATasaBasica", infoCFE.TotalMontoNetoIVATasaBasica.ToString()) ) ) ); if (!FrmEstadoContingencia.estadoContingencia.Equals("Y")) { rutaXml = RutasCarpetas.RutaCarpetaComprobantes + infoCFE.TipoCFEInt + infoCFE.SerieComprobante + infoCFE.NumeroComprobante + ".xml"; } else { rutaXml = RutasCarpetas.RutaCarpetaContingenciaComprobantes + infoCFE.TipoCFEInt + infoCFE.SerieComprobante + infoCFE.NumeroComprobante + ".xml"; } documentoXml.Save(rutaXml); resultado = true; } catch (Exception) { } return(resultado); }
/// <summary> /// Ejecuta una serie de tareas /// </summary> /// <param name="parametros"></param> private void EjecutarTareas(object parametros) { CFE cfe = parametros as CFE; CAE cae = AdminEventosUI.caePrueba; ObtenerFirmaDigital(); ObtenerUrlWebService(); cfe.CodigoSeguridad = CrearCertificado(cfe); //cfe.CodigoSeguridad = ObtenerCodigoSeguridad(cfe.TipoCFEInt + "" + cfe.SerieComprobante + "" + cfe.NumeroComprobante); #region Proceso_WebService ActualizarCodSeguridad(cfe); #endregion Proceso_WebService sobreDgi = CrearSobre(cfe, true); //Se genera el archivo xml ArchivoXml archXml = new ArchivoXml(); archXml.generarXml(cfe, cae); AlmacenarCFECreado(cfe); sobre = CrearSobre(cfe, false); double topeUI = Convert.ToDouble(ValorUI.valorUI * 10000, System.Globalization.CultureInfo.InvariantCulture); // if (!FrmEstadoContingencia.estadoContingencia.Equals("Y")) // { if ((cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.ETicketContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NCETicketContingencia)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicket)) || (cfe.TipoCFE.Equals(CFE.ESTipoCFECFC.NDETicketContingencia))) { if (cfe.TipoModena.Equals("UYU") || cfe.TipoModena.Equals("$")) { if (ValorUI.valorUI * 10000 < (cfe.TotalMontoTotal - cfe.TotalIVATasaMinima - cfe.TotalIVATasaBasica)) { EnviarSobre(sobre, sobreDgi, cfe, cae); } } else { if (ValorUI.valorUI * 10000 < (cfe.TotalMontoTotal - cfe.TotalIVATasaMinima - cfe.TotalIVATasaBasica) * cfe.TipoCambio) { EnviarSobre(sobre, sobreDgi, cfe, cae); } } } else { //Enviar sobre a DGI EnviarSobre(sobre, sobreDgi, cfe, cae); } // } }
/// <summary> /// Ingresa un nuevo registro a la tabla @TFECFE. /// </summary> /// <param name="comp"></param> /// <param name="idCFE"></param> /// <param name="idSobre"></param> /// <param name="tipo"></param> /// <param name="idReceptor"></param> /// <param name="fechaCreacion"></param> /// <param name="estado"></param> /// <returns></returns> public bool Almacenar(CFE cfe, string MayorUI) { bool resultado = false; GeneralService servicioGeneral = null; GeneralData dataGeneral = null; try { //Obtener el servicio de la compañia servicioGeneral = ProcConexion.Comp.GetCompanyService().GetGeneralService("TTFECFE"); //Apuntar a la cabecera del UDO dataGeneral = servicioGeneral.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData); //Asiganar valor a cada una de la propiedades del udo dataGeneral.SetProperty("U_DocSap", cfe.DocumentoSAP); dataGeneral.SetProperty("U_TipoDoc", cfe.TipoCFEInt.ToString()); dataGeneral.SetProperty("U_NumCFE", cfe.NumeroComprobante.ToString()); dataGeneral.SetProperty("U_Serie", cfe.SerieComprobante); dataGeneral.SetProperty("U_EstadoDgi", cfe.EstadoDGI.ToString()); dataGeneral.SetProperty("U_EstadoRec", cfe.EstadoReceptor.ToString()); dataGeneral.SetProperty("U_Sucursal", cfe.CodigoCasaPrincipalEmisor.ToString()); dataGeneral.SetProperty("U_FechaFirma", cfe.FechaFirma.ToString()); dataGeneral.SetProperty("U_MayorUI", MayorUI); //Agregar el nuevo registro a la base de datos mediante el servicio general servicioGeneral.Add(dataGeneral); resultado = true; } catch (Exception ex) { // SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ManteUdoCFE/Error: " + ex.ToString()); } finally { if (dataGeneral != null) { //Liberar memoria utlizada por dataGeneral System.Runtime.InteropServices.Marshal.ReleaseComObject(dataGeneral); System.GC.Collect(); } if (servicioGeneral != null) { //Liberar memoria utlizada por servicioGeneral System.Runtime.InteropServices.Marshal.ReleaseComObject(servicioGeneral); System.GC.Collect(); } } return(resultado); }
private void enviarNC(int numeroDocumento, string formaPago, string adenda, string razonRef) { AdminEventosUI eventos = new AdminEventosUI(true); NotaCreditoB1 notaCreditoB1 = new NotaCreditoB1(); DatosPDF datosPdf = new DatosPDF(); datosPdf = DocumentoB1.ObtenerkilosFactura(numeroDocumento, "RIN1", datosPdf); datosPdf = DocumentoB1.ObtenerDatosPDF(numeroDocumento, "ORIN", datosPdf); datosPdf.NombreVendedor = DocumentoB1.ObtenerNombreVendedor(numeroDocumento, "ORIN"); datosPdf.NombreExtranjero = DocumentoB1.ObtenerNombreExtranjero(numeroDocumento, "ORIN"); datosPdf.Titular = DocumentoB1.Titular(numeroDocumento, "ORIN"); datosPdf = DocumentoB1.ObtenerDatosDireccion(datosPdf); datosPdf = DocumentoB1.ActualizarEstado(datosPdf); datosPdf = DocumentoB1.ActualizarCodigo(datosPdf); datosPdf = DocumentoB1.ActualizarNumPedido(datosPdf); datosPdf.FormaPago = formaPago; //Obtener el objeto cfe a partir de los datos del documento creado cfe = notaCreditoB1.ObtenerDatosNotaCredito(numeroDocumento, Objetos.CAE.ESTipoCFECFC.NCEFactura, formaPago, adenda, razonRef); if (cfe != null) { if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { //Obtener el objeto cae utilizado en el documento creado cae = manteUdoCae.Consultar("999", cfe.SerieComprobante); } else { //Obtener el objeto cae utilizado en el documento creado cae = manteUdoCae.Consultar(cfe.TipoCFEInt.ToString(), cfe.SerieComprobante); } //Actualizar datos del CFE en el documento creado notaCreditoB1.ActualizarDatosCFENotaCredito(int.Parse(cfe.DocumentoSAP), cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), cfe.InfoReferencia); DocumentoB1.ActualizarCAEAsiento(int.Parse(datosPdf.DocNum), cfe.TipoCFEInt.ToString(), cfe.SerieComprobante, cfe.NumeroComprobante.ToString(), "14", ""); datosPdf.DescuentoGeneral = NotaCreditoB1.descuentoGeneral; datosPdf.DescuentoExtranjero = NotaCreditoB1.descuentoGeneralExtranjero; datosPdf.PorcentajeDescuento = NotaCreditoB1.porcentajeDescuento; eventos.EnviarDocumento(cfe, cae, datosPdf, "RIN1", null, "ORIN"); //Cambio el estado a Procesado para no volver a enviarlo notaCreditoB1.ActualizarEstadoDocumento(numeroDocumento, PROCESADO, cfe.CodigoSeguridad); cfe = null; cae = null; } }
/// <summary> /// Obtiene el listado cfe utilizados por fecha /// </summary> /// <param name="comp"></param> /// <returns></returns> public List <CFE> ObtenerCertificadosUtilizados() { Recordset recSet = null; string consulta = ""; List <CFE> listaCertificados = new List <CFE>(); CFE cfe; try { //Obtener objeto estandar de record set recSet = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset); //Establecer consulta consulta = "SELECT T1.U_DocSap, T1.U_TipoDoc, T1.U_Serie, T1.U_NumCFE, T1.U_Sucursal FROM [@TFECFE] AS T1 WHERE CONVERT(DATE, T1.CreateDate, 103) = CONVERT(DATE, GETDATE(), 103) ORDER BY U_DocSap, U_Sucursal"; //Ejecutar consulta recSet.DoQuery(consulta); recSet.MoveFirst(); for (int i = 0; i < recSet.RecordCount; i++) { cfe = new CFE(); cfe.DocumentoSAP = recSet.Fields.Item("U_DocSap").Value + ""; cfe.TipoCFEInt = int.Parse(recSet.Fields.Item("U_TipoDoc").Value + ""); cfe.SerieComprobante = recSet.Fields.Item("U_Serie").Value + ""; cfe.NumeroComprobante = int.Parse(recSet.Fields.Item("U_NumCFE").Value + ""); cfe.CodigoCasaPrincipalEmisor = int.Parse(recSet.Fields.Item("U_Sucursal").Value + ""); listaCertificados.Add(cfe); recSet.MoveNext(); } } catch (Exception) { listaCertificados = null; } finally { if (recSet != null) { //Liberar memoria utilizada por el objeto record set System.Runtime.InteropServices.Marshal.ReleaseComObject(recSet); System.GC.Collect(); } } return(listaCertificados); }
/// <summary> /// Obtiene la adenda en caso de que exista /// </summary> /// <param name="cfe"></param> /// <returns></returns> public static string ObtenerAdenda(CFE cfe) { string resultado = ""; if (cfe != null) { if (!cfe.TextoLibreAdenda.Equals("")) { resultado = cfe.TextoLibreAdenda; } } return(resultado); }
/// <summary> /// Ingresa un nuevo registro a la tabla @TFECERCON /// </summary> /// <param name="comp"></param> /// <param name="idCFE"></param> /// <param name="idSobre"></param> /// <param name="tipo"></param> /// <param name="idReceptor"></param> /// <param name="fechaCreacion"></param> /// <param name="estado"></param> /// <returns></returns> public bool Almacenar(CFE cfe) { bool resultado = false; GeneralService servicioGeneral = null; GeneralData dataGeneral = null; try { //Obtener el servicio de la compañia servicioGeneral = ProcConexion.Comp.GetCompanyService().GetGeneralService("TTFECERCON"); //Apuntar a la cabecera del UDO dataGeneral = servicioGeneral.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData); //Asiganar valor a cada una de la propiedades del udo dataGeneral.SetProperty("U_DocSap", cfe.DocumentoSAP); dataGeneral.SetProperty("U_TipoDoc", cfe.TipoCFEInt.ToString()); dataGeneral.SetProperty("U_NumCFE", cfe.NumeroComprobante.ToString()); dataGeneral.SetProperty("U_Serie", cfe.SerieComprobante); dataGeneral.SetProperty("U_EmaRec", cfe.CorreoReceptor); //Agregar el nuevo registro a la base de datos mediante el servicio general servicioGeneral.Add(dataGeneral); resultado = true; } catch (Exception) { } finally { if (dataGeneral != null) { //Liberar memoria utlizada por dataGeneral System.Runtime.InteropServices.Marshal.ReleaseComObject(dataGeneral); System.GC.Collect(); } if (servicioGeneral != null) { //Liberar memoria utlizada por servicioGeneral System.Runtime.InteropServices.Marshal.ReleaseComObject(servicioGeneral); System.GC.Collect(); } } return(resultado); }
/// <summary> /// Copiar el Cfe de contingencia a la tabla de CFEs /// </summary> /// <param name="comp"></param> /// <param name="docEntry"></param> /// <returns></returns> public bool CopiarCFE(string docEntry) { bool resultado = false; ManteUdoCFE manteUdoCfe = new ManteUdoCFE(); Recordset registro = null; string consulta = "SELECT U_DocSap, U_TipoDoc, U_Serie, U_NumCFE FROM [@TFECERCON] WHERE DocEntry = '" + docEntry + "'"; CFE cfe = new CFE(); try { registro = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset); registro.DoQuery(consulta); if (registro.RecordCount > 0) { cfe.DocumentoSAP = registro.Fields.Item("U_DocSap").Value + ""; cfe.TipoCFEInt = Convert.ToInt16(registro.Fields.Item("U_TipoDoc").Value + ""); cfe.SerieComprobante = registro.Fields.Item("U_Serie").Value + ""; cfe.NumeroComprobante = int.Parse(registro.Fields.Item("U_NumCFE").Value + ""); cfe.EstadoReceptor = CFE.ESEstadoCFE.PendienteReceptor; cfe.EstadoDGI = CFE.ESEstadoCFE.PendienteDGI; //if (manteUdoCfe.Almacenar(cfe)) //{ // resultado = true; //} } } catch (Exception) { } finally { if (registro != null) { //Libera de memoria el objeto System.Runtime.InteropServices.Marshal.ReleaseComObject(registro); GC.Collect(); } } return(resultado); }
/// <summary> /// Retorna un CFE con los totales para un documento determinado /// </summary> /// <param name="comp"></param> /// <param name="numeroDocumento"></param> /// <returns></returns> public CFE ObtenerTotalesCertificado(int numeroDocumento) { CFE cfe = new CFE(); Documents notaDebito = null; try { notaDebito = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.oInvoices); notaDebito.GetByKey(numeroDocumento); cfe.TotalMontoNoGravado = this.ObtenerTotalesPorImpuesto(notaDebito, "IVAVEXE"); cfe.TotalMontoExportacionAsimilados = this.ObtenerTotalesPorImpuesto(notaDebito, " IVAEXPO"); cfe.TotalMontoImpuestoPercibido = 0; cfe.TotalMontoIVASuspenso = this.ObtenerTotalesPorImpuesto(notaDebito, "IVASUSP"); cfe.TotalMontoNetoIVATasaMinima = this.ObtenerTotalesPorImpuesto(notaDebito, "IVAVTM"); cfe.TotalMontoNetoIVATasaBasica = this.ObtenerTotalesPorImpuesto(notaDebito, "IVAVTB"); cfe.TotalMontoNetoIVAOtraTasa = 0; cfe.TasaMinimaIVA = this.ObtenerMontoTasa("IVAVTM"); cfe.TasaBasicaIVA = this.ObtenerMontoTasa("IVAVTB"); cfe.TotalIVAOtraTasa = this.ObtenerTotalesIVAPorTasa(notaDebito.DocEntry.ToString(), "IVAVEXE", "INV1"); } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("NotaDebitoB1/Error: " + ex.ToString()); } finally { if (notaDebito != null) { //Libera de memoria el obtejo notaDebito System.Runtime.InteropServices.Marshal.ReleaseComObject(notaDebito); GC.Collect(); } } return cfe; }
/// <summary> /// Retorna un CFE con los totales para un documento determinado /// </summary> /// <param name="comp"></param> /// <param name="numeroDocumento"></param> /// <returns></returns> public CFE ObtenerTotalesCertificado(int numeroDocumento) { CFE cfe = new CFE(); Documents factura = null; try { factura = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.oInvoices); factura.GetByKey(numeroDocumento); cfe.TotalMontoNoGravado = this.ObtenerTotalesPorImpuesto(factura, "IVAVEXE"); cfe.TotalMontoExportacionAsimilados = this.ObtenerTotalesPorImpuesto(factura, " IVAEXPO"); cfe.TotalMontoImpuestoPercibido = 0; cfe.TotalMontoIVASuspenso = this.ObtenerTotalesPorImpuesto(factura, "IVASUSP"); cfe.TotalMontoNetoIVATasaMinima = this.ObtenerTotalesPorImpuesto(factura, "IVAVTM"); cfe.TotalMontoNetoIVATasaBasica = this.ObtenerTotalesPorImpuesto(factura, "IVAVTB"); cfe.TotalMontoNetoIVAOtraTasa = 0; cfe.TasaMinimaIVA = this.ObtenerMontoTasa("IVAVTM"); cfe.TasaBasicaIVA = this.ObtenerMontoTasa("IVAVTB"); cfe.TotalIVAOtraTasa = this.ObtenerTotalesIVAPorTasa(factura.DocEntry.ToString(), "IVAVEXE", "INV1"); } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("FacturaB1/Error: " + ex.ToString()); } finally { if (factura != null) { //Libera de memoria el objeto factura GC.SuppressFinalize(factura); GC.Collect(); } } return(cfe); }
public CFE ObtenerDatosNotaDebito(int numNotaDebito, CAE.ESTipoCFECFC tipoCFE, string formaPago, string adenda, string razonRef) { Documents notaDebito = null; CFE cfe = new CFE(); CFEInfoReferencia cfeReferencia; CFEItems item; Emisor emisor; Rango rango = null; CFEMediosPago mediosPago; CAE cae; descuentoGeneral = 0; descuentoGeneralExtranjero = 0; porcentajeDescuento = 0; try { notaDebito = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.oInvoices); notaDebito.GetByKey(numNotaDebito); //Actualiza la forma de pagos notaDebito.UserFields.Fields.Item("U_U_FrmPagOIN").Value = formaPago; notaDebito.Update(); #region EMISOR emisor = this.ObtenerDatosEmisor() as Emisor; cfe.RucEmisor = emisor.Ruc; cfe.NombreEmisor = emisor.Nombre; cfe.NombreComercialEmisor = emisor.NombreComercial; cfe.NumeroResolucion = emisor.NumeroResolucion; cfe.CodigoCasaPrincipalEmisor = this.ObtenerSucursal(notaDebito.DocEntry.ToString(), TABLA_NOTA_DEBITO); cfe.CajaEmisor = this.ObtenerCaja(notaDebito.DocEntry.ToString(), TABLA_NOTA_DEBITO); cfe.DomicilioFiscalEmisor = this.ObtenerDireccionEmisor(); cfe.CiuidadEmisor = this.ObtenerCiudadEmisor(); cfe.DocumentoSAP = notaDebito.DocEntry.ToString(); cfe.EstadoDGI = CFE.ESEstadoCFE.PendienteDGI; cfe.EstadoReceptor = CFE.ESEstadoCFE.PendienteReceptor; #endregion EMISOR #region RECEPTOR cfe.TipoDocumentoReceptor = CFE.ObtenerTipoDocumentoReceptor(notaDebito.UserFields.Fields.Item("U_TipDocND").Value); cfe.CodigoPaisReceptor = this.ObtenerCodPaisReceptor(notaDebito.CardCode, cfe.TipoDocumentoReceptor); cfe.NombreReceptor = notaDebito.CardName; if (cfe.PaisReceptor.Equals("UY")) { cfe.NumDocReceptorUruguayo = notaDebito.UserFields.Fields.Item("U_ValDocND").Value; } else { cfe.NumDocReceptorExtrangero = notaDebito.UserFields.Fields.Item("U_ValDocND").Value; ManteUdoAdobe manteUdoAdobe = new ManteUdoAdobe(); string ciGenereico = manteUdoAdobe.ObtenerCiGenerico(); if (cfe.NumDocReceptorExtrangero.Equals(ciGenereico)) { cfe.NumDocReceptorExtrangero = "00000000"; } } //cfe.CiuidadReceptor = notaDebito.Address.Replace("\r", ""); cfe.CiuidadReceptor = this.ObtenerCiudad(notaDebito.DocEntry, "INV12"); cfe.PaisReceptor = this.ObtenerNombPaisReceptor(notaDebito.CardCode); cfe.CorreoReceptor = this.ObtenerCorreoReceptor(notaDebito.CardCode); //cfe.DireccionReceptor = cfe.CiuidadReceptor;// +" " + cfe.PaisReceptor; cfe.DireccionReceptor = this.ObtenerCiudad(notaDebito.DocEntry, "INV12"); cfe.NumeroCompraReceptor = this.ObtenerNroPedidoReceptor(notaDebito.DocEntry, TABLA_NOTA_DEBITO); #endregion RECEPTOR #region TOTALES ENCABEZADO cfe.TipoModena = this.ObtenerCodigoISOModena(notaDebito.DocCurrency); ManteUdoTipoCambio manteUdoTipoCambio = new ManteUdoTipoCambio(); string temp = "", confTC = manteUdoTipoCambio.ObtenerConfiguracion(out temp); if (confTC.Equals("N")) { double docRate = this.ObtenerDocRate(); if (cfe.TipoModena == "UYU" || cfe.TipoModena == "UY") { cfe.TipoCambio = 1; } else { if (docRate > 0) { cfe.TipoCambio = 1 / docRate; cfe.TipoCambio = Math.Round(cfe.TipoCambio, 2); } } } else { cfe.TipoCambio = notaDebito.DocRate; } //Si el cliente es extrangero entonces el monto de exportacion y asimilados es la suma de las lineas si importar el codigo de impuesto que tenga //y el monto total a pagar va ser ese mismo monto. En el xslt en ambos casos se asigna el mismo valor if (this.ValidarClienteExtranjero(notaDebito.CardCode)) { cfe.TotalMontoExportacionAsimilados = this.ObtenerTotalesExportacion(notaDebito); } else { cfe.TotalMontoNoGravado = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("1"));// / cfe.TipoCambio; cfe.TotalMontoNoGravadoExtranjero = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("1")); cfe.TotalMontoImpuestoPercibido = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("11"));// / cfe.TipoCambio; cfe.TotalMontoImpuestoPercibidoExtranjero = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("11")); cfe.TotalMontoIVASuspenso = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("12"));// / cfe.TipoCambio; cfe.TotalMontoIVASuspensoExtranjero = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("12")); cfe.TotalMontoNetoIVATasaMinima = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("2"));// / cfe.TipoCambio; cfe.TotalMontoNetoIVATasaMinimaExtranjero = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("2")); cfe.TotalMontoNetoIVATasaBasica = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("3"));// / cfe.TipoCambio; cfe.TotalMontoNetoIVATasaBasicaExtranjero = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("3")); cfe.TotalMontoNetoIVAOtraTasa = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("4"));// / cfe.TipoCambio; cfe.TotalMontoNetoIVAOtraTasaExtranjero = this.ObtenerTotalesPorImpuesto(notaDebito, ObtenerCodigoImpuesto("4")); cfe.TasaMinimaIVA = this.ObtenerIvaTasaMinima(); cfe.TasaBasicaIVA = this.ObtenerIvaTasaBasica(); cfe.TotalIVAOtraTasa = this.ObtenerTotalesIVAPorTasa(notaDebito.DocEntry.ToString(), "IVAB", "INV1"); } cfe.Lineas = notaDebito.Lines.Count; #endregion TOTALES ENCABEZADO #region ITEMS for (int i = 0; i < notaDebito.Lines.Count; i++) { notaDebito.Lines.SetCurrentLine(i); //Si el Tipo de lista de Materiales de Ventas no lo agrego al XML if (!notaDebito.Lines.TreeType.ToString().Equals("iIngredient")) { //Nueva instancia del objeto item de cfe item = cfe.NuevoItem(); item.NumeroLinea = i + 1; string indFacturacionNumero = "";// notaDebito.Lines.UserFields.Fields.Item("U_IndND").Value + ""; if (indFacturacionNumero.Equals("6")) { item.IndicadorFacturacion = 6; } else if (indFacturacionNumero.Equals("7")) { item.IndicadorFacturacion = 7; } #region FE_EXPORTACION else if (this.ValidarClienteExtranjero(notaDebito.CardCode)) { item.IndicadorFacturacion = 10; } #endregion FE_EXPORTACION else { string resultadoIndicadorFacturacion = this.ObtenerIndicadorFacturacion(notaDebito.Lines.TaxCode.ToString()); if (resultadoIndicadorFacturacion.Equals("")) { item.IndicadorFacturacion = 0; } else { item.IndicadorFacturacion = Convert.ToInt16(resultadoIndicadorFacturacion); } } item.NombreItem = notaDebito.Lines.ItemCode; item.DescripcionItem = notaDebito.Lines.ItemDescription; item.CantidadItem = notaDebito.Lines.Quantity; item.PrecioUnitarioItem = notaDebito.Lines.Price - (notaDebito.Lines.Price * (notaDebito.DiscountPercent / 100)); if (item.PrecioUnitarioItem.ToString().Equals("0")) { item.IndicadorFacturacion = 5; } item.PrecioUnitarioItemPDF = notaDebito.Lines.Price; item.LineNum = notaDebito.Lines.LineNum; item.ArticulosXUnidad = notaDebito.Lines.UnitsOfMeasurment; item.UnidadMedida = this.ObtenerUnidadMedidaItem(notaDebito.Lines.ItemCode, notaDebito.DocEntry + "", notaDebito.Lines.LineNum + "", "INV1"); item.UnidadMedidaPDF = item.UnidadMedida; item.TipoImpuesto = notaDebito.Lines.TaxCode; cfe.AgregarItem(item); } } #endregion ITEMS #region MEDIOS DE PAGO mediosPago = cfe.NuevoMediosPago(); mediosPago.Glosa = this.ObtenerMedioPago(notaDebito.DocEntry.ToString(), TABLA_NOTA_DEBITO); if (formaPago.Equals("Contado")) { cfe.FormaPago = CFE.ESFormaPago.Contado; } else { cfe.FormaPago = CFE.ESFormaPago.Credito; } cfe.AgregarMediosPago(mediosPago); #endregion MEDIOS DE PAGO descuentoGeneral = notaDebito.TotalDiscount; descuentoGeneralExtranjero = notaDebito.TotalDiscountFC; porcentajeDescuento = notaDebito.DiscountPercent; #region IDENTIFICACION DEL COMPROBANTE //Valida que el documento sea de contingencia if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { //Valida que el cliente sea de contado if (this.ValidarClienteContado(notaDebito.CardCode)) { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDETicketContingencia)); } else { //Valida si es un ciente extranjero if (this.ValidarClienteExtranjero(notaDebito.CardCode)) { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFacturaExportacionContingencia)); } else { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFacturaContingencia)); } } }//Si no es contingencia else { //Valida que el cliente sea de contado if (this.ValidarClienteContado(notaDebito.CardCode)) { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDETicket)); rango = this.ObtenerDatosRangoCFE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDETicket), cfe.CodigoCasaPrincipalEmisor.ToString(), cfe.CajaEmisor) as Rango; } else { //Valida si es un cliente extranjero if (this.ValidarClienteExtranjero(notaDebito.CardCode)) { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFacturaExportacion)); rango = this.ObtenerDatosRangoCFE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFacturaExportacion), cfe.CodigoCasaPrincipalEmisor.ToString(), cfe.CajaEmisor) as Rango; } else { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFactura)); rango = this.ObtenerDatosRangoCFE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFactura), cfe.CodigoCasaPrincipalEmisor.ToString(), cfe.CajaEmisor) as Rango; } } } //Estado de contigencia serie y numero se ingresan manualmente if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { SAPbouiCOM.Item txtNumCFE = SAPbouiCOM.Framework.Application.SBO_Application.Forms.ActiveForm.Items.Item("txtNumCFE"); SAPbouiCOM.Item txtSeCFE = SAPbouiCOM.Framework.Application.SBO_Application.Forms.ActiveForm.Items.Item("txtSeCFE"); cfe.SerieComprobante = ((SAPbouiCOM.EditText)txtSeCFE.Specific).Value + ""; cfe.NumeroComprobante = int.Parse(((SAPbouiCOM.EditText)txtNumCFE.Specific).Value + ""); } else { if (rango != null) { cfe.SerieComprobante = rango.Serie; cfe.NumeroComprobante = rango.NumeroActual; } } cfe.FechaComprobante = notaDebito.DocDate.ToString("yyyy-MM-dd"); cfe.FechaVencimiento = notaDebito.DocDueDate.ToString("yyyy-MM-dd"); if (notaDebito.DocType == BoDocumentTypes.dDocument_Items) { cfe.TipoDocumentoSAP = CFE.ESTIpoDocumentoSAP.Articulo; } else if (notaDebito.DocType == BoDocumentTypes.dDocument_Service) { cfe.TipoDocumentoSAP = CFE.ESTIpoDocumentoSAP.Servicio; } //if (notaDebito.DocumentStatus == BoStatus.bost_Close) //{ // cfe.FormaPago = CFE.ESFormaPago.Contado; //} //else //{ // cfe.FormaPago = CFE.ESFormaPago.Credito; //} #endregion IDENTIFICACION DEL COMPROBANTE #region EXPORTACION int modalidad, viaTransporte; bool convertido = int.TryParse(notaDebito.UserFields.Fields.Item("U_ModVenND").Value, out modalidad); if (convertido) { cfe.ModalidadVentaInt = modalidad; } #region FE_EXPORTACION //cfe.ViaTransporteInt = notaDebito.TransportationCode; convertido = false; convertido = int.TryParse(notaDebito.UserFields.Fields.Item(Globales.Constantes.UDFViaTransporteND).Value, out viaTransporte); if (convertido) { cfe.ViaTransporteInt = viaTransporte; } #endregion FE_EXPORTACION cfe.ClausulaVenta = notaDebito.UserFields.Fields.Item("U_ClaVenND").Value; #endregion EXPORTACION #region ADENDA //ManteUdoAdenda manteUdoAdenda = new ManteUdoAdenda(); //Adenda adenda = manteUdoAdenda.ObtenerAdenda(ProcConexion.Comp, Adenda.ESTipoObjetoAsignado.TipoCFE113, notaDebito.DocNum.ToString()); //cfe.TextoLibreAdenda = adenda.CadenaAdenda; cfe.TextoLibreAdenda = adenda;// notaDebito.UserFields.Fields.Item("U_AdendaND").Value; #endregion ADENDA #region DOCUMENTO DE REFERENCIA //cfeReferencia = (CFEInfoReferencia)this.ObtenerDocumentoReferencia(TABLA_DETALLES_NOTA_DEBITO, notaDebito.DocEntry.ToString()); //if (cfeReferencia != null) //{ // cfeReferencia.NumeroLinea = 1; //} //else //{ // cfeReferencia = new CFEInfoReferencia(); // cfeReferencia.IndicadorReferenciaGlobal = CFEInfoReferencia.ESIndicadorReferenciaGlobal.ReferenciaGlobal; // cfeReferencia.NumeroLinea = 1; // cfeReferencia.NumeroComprobanteReferencia = ""; // cfeReferencia.SerieComprobanteReferencia = ""; // if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) // { // cfeReferencia.TipoCFEReferencia = 111; // cfeReferencia.SerieComprobanteReferencia = "A";//Serie del documento de referencia // cfeReferencia.NumeroComprobanteReferencia = "1";//Numero de CFE del documento de referencia // } // if (razonRef.Equals("")) // { // cfeReferencia.RazonReferencia = "Descuento General"; // } // else // { // cfeReferencia.RazonReferencia = razonRef; // } //} cfeReferencia = new CFEInfoReferencia(); cfeReferencia.NumeroLinea = 1; cfeReferencia.SerieComprobanteReferencia = notaDebito.UserFields.Fields.Item("U_SerieRefND").Value; if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { cfeReferencia.TipoCFEReferencia = 111; cfeReferencia.SerieComprobanteReferencia = "A"; //Serie del documento de referencia cfeReferencia.NumeroComprobanteReferencia = "1"; //Numero de CFE del documento de referencia } else { if (cfeReferencia.SerieComprobanteReferencia == "" || cfeReferencia.SerieComprobanteReferencia == "1") { cfeReferencia.IndicadorReferenciaGlobal = CFEInfoReferencia.ESIndicadorReferenciaGlobal.ReferenciaGlobal; cfeReferencia.SerieComprobanteReferencia = ""; cfeReferencia.NumeroComprobanteReferencia = ""; cfeReferencia.RazonReferencia = "Descuento General"; } else { cfeReferencia.TipoCFEReferencia = 111; cfeReferencia.NumeroComprobanteReferencia = notaDebito.UserFields.Fields.Item("U_NumRefND").Value; cfeReferencia.RazonReferencia = razonRef; } } if (cfeReferencia != null) { cfe.AgregarInfoReferencia(cfeReferencia); } #endregion DOCUMENTO DE REFERENCIA #region CAE //Valida que el documento sea de contingencia if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { //Valida que el cliente sea de contado if (this.ValidarClienteContado(notaDebito.CardCode)) { cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.Contingencia)) as CAE; } else { cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.Contingencia)) as CAE; } }//Si no es contingencia else { //Valida que el cliente sea de contado if (this.ValidarClienteContado(notaDebito.CardCode)) { cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDETicket)) as CAE; } else { #region FE_EXPORTACION //cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFactura)) as CAE; if (ValidarClienteExtranjero(notaDebito.CardCode)) { cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFacturaExportacion)) as CAE; } else { cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.NDEFactura)) as CAE; } #endregion FE_EXPORTACION } } if (cae.NumeroAutorizacion != null) { cfe.NumeroCAE = long.Parse(cae.NumeroAutorizacion); cfe.NumeroInicialCAE = cae.NumeroDesde; cfe.NumeroFinalCAE = cae.NumeroHasta; cfe.FechaVencimientoCAE = cae.FechaVencimiento; ManteDocumentos manteDocumentos = new ManteDocumentos(); FinCae finCae = manteDocumentos.ObtenerAlertaCAE(); if (finCae.Cantidad > 0 && rango != null) { if ((cae.NumeroHasta - rango.NumeroActual) <= finCae.Cantidad) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox ("!!!Atención!!! Rango utilizado: " + rango.NumeroActual + " de: " + cae.NumeroHasta + ". Solicitar Nuevos CAEs a DGI."); } } DateTime fechaVencimiento = DateTime.Parse(cae.FechaVencimiento); TimeSpan diferenciaDias = DateTime.Now.Subtract(fechaVencimiento); int diasFecha = int.Parse(diferenciaDias.Days.ToString()); if (diasFecha > 0 && finCae.Dias != 0) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox ("!!!Atención!!! El rango se venció, fecha de vencimiento: " + cae.FechaVencimiento); } else { diasFecha = diasFecha * -1; if (diasFecha <= finCae.Dias && finCae.Dias != 0) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox ("!!!Atención!!! El rango se va vencer, fecha de vencimiento: " + cae.FechaVencimiento); } } } else { cfe = null; } #endregion CAE #region Web Service cfe.OrigenFE = notaDebito.UserFields.Fields.Item("U_Origen").Value; #endregion Web Service } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("NotaDebitoB1/Error: " + ex.ToString()); } finally { if (notaDebito != null) { //Libera de memoria el obtejo notaDebito System.Runtime.InteropServices.Marshal.ReleaseComObject(notaDebito); GC.Collect(); } } return cfe; }
/// <summary> /// Constructor de la clase /// </summary> /// <param name="_infoComprobante"></param> /// <param name="_infoCAE"></param> public PDFs(CFE _infoComprobante, CAE _infoCAE, string _kilosComprobante) { this.infoComprobante = _infoComprobante; this.infoCAE = _infoCAE; this.kilosComprobante = _kilosComprobante; }
protected override void EstablecerDataBind() { Formulario.DataSources.UserDataSources.Item("udsSerie").Value = Serie; Formulario.DataSources.UserDataSources.Item("udsTipo").Value = CFE.ObtenerStringTipoCFECFC(Tipo); Formulario.DataSources.UserDataSources.Item("udsNum").Value = Numero; }
public CHARFORMAT(CFM mask, CFE effects) : this() { dwMask = mask; dwEffects = effects; }
public static void SetDefaultCharFormat(this RichTextBox rtb, CFM mask, CFE effects) { CHARFORMAT cf = new CHARFORMAT(mask, effects); rtb.SetDefaultCharFormat(cf); }
public ParametrosJobWsDGI(string pRutaSobre, string pClaveSobre, string pUrlEnvio, string pUrlConsultas, CFE cfe, CAE cae) { this.RutaCertificado = pRutaSobre; this.ClaveCertificado = pClaveSobre; this.UrlEnvio = pUrlEnvio; this.UrlConsultas = pUrlConsultas; this.cfe = cfe; this.cae = cae; }
/// <summary> /// Metodo para crear sobre para el comprobante /// </summary> /// <param name="cfe"></param> private Sobre CrearSobre(CFE cfe, bool sobreDgi) { Sobre sobre = new Sobre(cfe); string infoCertificado = ""; try { infoCertificado = ProcTransformacion.ObtenerCadenaCertificado(); if (infoCertificado.Equals("")) { sobre = null; } else { if (sobreDgi) { ManteUdoDocumento manteUdoDocumento = new ManteUdoDocumento(); string rutConfigurado = manteUdoDocumento.ObtenerRut(); //Proceso para DGI if (rutConfigurado != null) { sobre.RucReceptor = rutConfigurado;//214844360018;//219999830019 } else { sobre.RucReceptor = "214844360018";//219999830019 } sobre.X509Certificate = infoCertificado; sobre.ObtenerCertificadosCreados(listaCertificadosCreados); string xmlSobreDGI = ProcSerializacion.CrearXmlSobre(sobre); ProcTransformacion.GuardarSobrePrevio(sobre.NombrePrev, xmlSobreDGI, true); ProcTransformacion.TransformarSobre(sobre.NombrePrev, sobre.Nombre, sobre.ListaCertificados, "", true); } else { //Proceso para Tercero sobre.X509Certificate = infoCertificado; sobre.ObtenerCertificadosCreados(listaCertificadosCreados); string xmlSobreCliente = ProcSerializacion.CrearXmlSobre(sobre); ProcTransformacion.GuardarSobrePrevio(sobre.NombrePrev, xmlSobreCliente, false); if (!cfe.TextoLibreAdenda.Equals("")) { ProcTransformacion.TransformarSobre(sobre.NombrePrev, sobre.Nombre, sobre.ListaCertificados, cfe.TextoLibreAdenda, false); } else { ProcTransformacion.TransformarSobre(sobre.NombrePrev, sobre.Nombre, sobre.ListaCertificados, "", false); } } } } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ERROR: " + ex.ToString()); } return(sobre); }
public CFE ObtenerDatosResguardo(int numResguardo, CAE.ESTipoCFECFC tipoCFE, string adenda) { Documents resguardoCompras = null; CFE cfe = new CFE(); CFEItems item; Emisor emisor; Rango rango = null; CFEMediosPago mediosPago; CAE cae; descuentoGeneral = 0; descuentoGeneralExtranjero = 0; try { resguardoCompras = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.oPurchaseInvoices); resguardoCompras.GetByKey(numResguardo); #region EMISOR emisor = this.ObtenerDatosEmisor() as Emisor; cfe.RucEmisor = emisor.Ruc; cfe.NombreEmisor = emisor.Nombre; cfe.NombreComercialEmisor = emisor.NombreComercial; cfe.NumeroResolucion = emisor.NumeroResolucion; cfe.CodigoCasaPrincipalEmisor = this.ObtenerSucursal(resguardoCompras.DocEntry.ToString(), TABLA_RESGUARDO_COMPRA); cfe.CajaEmisor = this.ObtenerCaja(resguardoCompras.DocEntry.ToString(), TABLA_RESGUARDO_COMPRA); cfe.DomicilioFiscalEmisor = this.ObtenerDireccionEmisor(); cfe.CiuidadEmisor = this.ObtenerCiudadEmisor(); cfe.DocumentoSAP = resguardoCompras.DocEntry.ToString(); cfe.EstadoDGI = CFE.ESEstadoCFE.PendienteDGI; cfe.EstadoReceptor = CFE.ESEstadoCFE.PendienteReceptor; #endregion EMISOR #region RECEPTOR cfe.TipoDocumentoReceptor = CFE.ObtenerTipoDocumentoReceptor(resguardoCompras.UserFields.Fields.Item("U_TipDocFA").Value); cfe.CodigoPaisReceptor = this.ObtenerCodPaisReceptor(resguardoCompras.CardCode, cfe.TipoDocumentoReceptor); cfe.NombreReceptor = resguardoCompras.CardName; if (cfe.PaisReceptor.Equals("UY")) { cfe.NumDocReceptorUruguayo = resguardoCompras.UserFields.Fields.Item("U_ValDocFA").Value; } else { cfe.NumDocReceptorExtrangero = resguardoCompras.UserFields.Fields.Item("U_ValDocFA").Value; } //cfe.CiuidadReceptor = resguardoCompras.Address.Replace("\r", ""); cfe.CiuidadReceptor = this.ObtenerCiudad(resguardoCompras.DocEntry, "PCH12"); cfe.PaisReceptor = this.ObtenerNombPaisReceptor(resguardoCompras.CardCode); cfe.CorreoReceptor = this.ObtenerCorreoReceptor(resguardoCompras.CardCode); //cfe.DireccionReceptor = cfe.CiuidadReceptor;// +" " + cfe.PaisReceptor; cfe.DireccionReceptor = this.ObtenerCiudad(resguardoCompras.DocEntry, "PCH12"); cfe.NumeroCompraReceptor = this.ObtenerNroPedidoReceptor(resguardoCompras.DocEntry, TABLA_RESGUARDO_COMPRA); #endregion RECEPTOR #region TOTALES ENCABEZADO cfe.TipoModena = this.ObtenerCodigoISOModena(resguardoCompras.DocCurrency); ManteUdoTipoCambio manteUdoTipoCambio = new ManteUdoTipoCambio(); string temp = "", confTC = manteUdoTipoCambio.ObtenerConfiguracion(out temp); if (confTC.Equals("N")) { double docRate = this.ObtenerDocRate(); if (cfe.TipoModena == "UYU" || cfe.TipoModena == "UY") { cfe.TipoCambio = 1; } else { if (docRate > 0) { cfe.TipoCambio = 1 / docRate; cfe.TipoCambio = Math.Round(cfe.TipoCambio, 2); } } } else { cfe.TipoCambio = resguardoCompras.DocRate; } cfe.Lineas = resguardoCompras.Lines.Count; //CFERetencPercep retPer = ObtenerRetencionPercepcion(resguardoCompras.DocEntry.ToString(), "PCH5") as CFERetencPercep; //cfe.AgregarRetencPercep(retPer); List <CFERetencPercep> listretPer = ObtenerRetencionPercepcion(resguardoCompras.DocEntry.ToString(), "PCH5", resguardoCompras.DocCurrency.ToString()) as List <CFERetencPercep>; // SE CARGA EN VLORES de reneciones for (int i = 0; i < listretPer.Count; i++) { cfe.AgregarRetencPercep(listretPer[i]); } #endregion TOTALES ENCABEZADO #region ITEMS List <CFEItemsRetencPercep> listaItemRecPerc = this.ObtenerItemRetencionPercepcion(resguardoCompras.DocEntry.ToString(), "PCH5", resguardoCompras.DocCurrency.ToString()) as List <CFEItemsRetencPercep>; for (int i = 0; i < listaItemRecPerc.Count; i++) { //Nueva instancia del objeto item de cfe item = cfe.NuevoItem(); item.AgregarItemRetencPercep(listaItemRecPerc[i]); item.IndicadorFacturacion = 4; item.NumeroLinea = i + 1; cfe.AgregarItem(item); } descuentoGeneral = resguardoCompras.TotalDiscount; descuentoGeneralExtranjero = resguardoCompras.TotalDiscountFC; cfe.Lineas = listaItemRecPerc.Count; #endregion ITEMS #region MEDIOS DE PAGO mediosPago = cfe.NuevoMediosPago(); mediosPago.Glosa = this.ObtenerMedioPago(resguardoCompras.DocEntry.ToString(), TABLA_RESGUARDO_COMPRA); cfe.AgregarMediosPago(mediosPago); #endregion MEDIOS DE PAGO descuentoGeneral = resguardoCompras.TotalDiscount; descuentoGeneralExtranjero = resguardoCompras.TotalDiscountFC; #region IDENTIFICACION DEL COMPROBANTE //Valida que el documento sea de contingencia if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.EResguardoContingencia)); } //Si no es contingencia else { cfe.TipoCFE = CFE.ObtenerTipoCFECFC(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.EResguardo)); rango = this.ObtenerDatosRangoCFE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.EResguardo), cfe.CodigoCasaPrincipalEmisor.ToString(), cfe.CajaEmisor) as Rango; } //Estado de contigencia serie y numero se ingresan manualmente if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { Item txtNumCFE = SAPbouiCOM.Framework.Application.SBO_Application.Forms.ActiveForm.Items.Item("txtNumCFE"); Item txtSeCFE = SAPbouiCOM.Framework.Application.SBO_Application.Forms.ActiveForm.Items.Item("txtSeCFE"); cfe.SerieComprobante = ((SAPbouiCOM.EditText)txtSeCFE.Specific).Value + ""; cfe.NumeroComprobante = int.Parse((((SAPbouiCOM.EditText)txtNumCFE.Specific).Value + "")) + 1; } else { if (rango != null) { cfe.SerieComprobante = rango.Serie; cfe.NumeroComprobante = rango.NumeroActual; } } cfe.FechaComprobante = resguardoCompras.DocDate.ToString("yyyy-MM-dd"); cfe.FechaVencimiento = resguardoCompras.DocDueDate.ToString("yyyy-MM-dd"); if (resguardoCompras.DocType == BoDocumentTypes.dDocument_Items) { cfe.TipoDocumentoSAP = CFE.ESTIpoDocumentoSAP.Articulo; } else if (resguardoCompras.DocType == BoDocumentTypes.dDocument_Service) { cfe.TipoDocumentoSAP = CFE.ESTIpoDocumentoSAP.Servicio; } if (resguardoCompras.DocumentStatus == BoStatus.bost_Close) { cfe.FormaPago = CFE.ESFormaPago.Contado; } else { cfe.FormaPago = CFE.ESFormaPago.Credito; } #endregion IDENTIFICACION DEL COMPROBANTE #region ADENDA //ManteUdoAdenda manteUdoAdenda = new ManteUdoAdenda(); //Adenda adenda = manteUdoAdenda.ObtenerAdenda(ProcConexion.Comp, Adenda.ESTipoObjetoAsignado.TipoCFE111, resguardo.DocNum.ToString()); //if (tipoCFE == CAE.ESTipoCFECFC.EResguardo) //{ // resguardo.UserFields.Fields.Item("U_AdendaRG").Value = adenda.CadenaAdenda;// resguardo.UserFields.Fields.Item("U_AdendaFA").Value; // resguardo.Update(); //} //cfe.TextoLibreAdenda = adenda.CadenaAdenda; //cfe.TextoLibreAdenda = resguardo.UserFields.Fields.Item("U_AdendaFA").Value; cfe.TextoLibreAdenda = adenda; #endregion ADENDA #region DOCUMENTOS DE REFENCIA List <CFEInfoReferencia> listaRef = this.ObtenerReferenciaResguardo(resguardoCompras.DocEntry.ToString(), TABLA_RESGUARDO_COMPRA) as List <CFEInfoReferencia>; for (int i = 0; i < listaRef.Count; i++) { cfe.AgregarInfoReferencia(listaRef[i]); } #endregion DOCUMENTOS DE REFENCIA #region CAE //Valida que el documento sea de contingencia if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.Contingencia)) as CAE; }//Si no es contingencia else { cae = this.ObtenerDatosCAE(CAE.ObtenerStringTipoCFECFC(CAE.ESTipoCFECFC.EResguardo)) as CAE; } if (cae.NumeroAutorizacion != null) { cfe.NumeroCAE = long.Parse(cae.NumeroAutorizacion); cfe.NumeroInicialCAE = cae.NumeroDesde; cfe.NumeroFinalCAE = cae.NumeroHasta; cfe.FechaVencimientoCAE = cae.FechaVencimiento; ManteDocumentos manteDocumentos = new ManteDocumentos(); FinCae finCae = manteDocumentos.ObtenerAlertaCAE(); if ((cae.NumeroHasta - rango.NumeroActual) <= finCae.Cantidad) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox ("!!!Atención!!! Rango utilizado: " + rango.NumeroActual + " de: " + cae.NumeroHasta + ". Solicitar Nuevos CAEs a DGI."); } DateTime fechaVencimiento = DateTime.Parse(cae.FechaVencimiento); TimeSpan diferenciaDias = DateTime.Now.Subtract(fechaVencimiento); int diasFecha = int.Parse(diferenciaDias.Days.ToString()); if (diasFecha > 0 && finCae.Dias != 0) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox ("!!!Atención!!! El rango se venció, fecha de vencimiento: " + cae.FechaVencimiento); } else { diasFecha = diasFecha * -1; if (diasFecha <= finCae.Dias && finCae.Dias != 0) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox ("!!!Atención!!! El rango se va vencer, fecha de vencimiento: " + cae.FechaVencimiento); } } } else { cfe = null; } #endregion CAE } catch (Exception ex) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ResguardoCompra/Error: " + ex.ToString()); } finally { if (resguardoCompras != null) { //Libera de memoria el objeto resguardoCompras System.Runtime.InteropServices.Marshal.ReleaseComObject(resguardoCompras); GC.Collect(); } } return(cfe); }
public CHARFORMAT(CFM mask, CFE effects) : this() { cbSize = Marshal.SizeOf(this); dwMask = mask; dwEffects = effects; szFaceName = ""; }
/// <summary> /// Realiza todas las validaciones indicadas en la documentacion oficial Formato_CFE_v10 /// </summary> /// <param name="cfe"></param> /// <returns></returns> public static bool ValidarCFE(ref CFE cfe) { //Valida la Fecha del Comprobante if (!FechaComprobante(cfe.FechaComprobante.ToString())) { cfe.CampoErroneo = "FechaComprobante"; return(false); } //Valida el Perdiodo Desde if (!PerdiodoDesde(cfe.PeriodoDesde.ToString())) { cfe.CampoErroneo = "PeriodoDesde"; return(false); } //Valida PeriodoHasta if (!PeriodoHasta(cfe.PeriodoDesde.ToString(), cfe.PeriodoHasta.ToString())) { cfe.CampoErroneo = "PeriodoHasta"; return(false); } //Valida FechaVencimiento if (!FechaVencimiento(cfe.FechaVencimiento.ToString())) { cfe.CampoErroneo = "FechaVencimiento"; return(false); } //Valida FechaComprobanteReferencia foreach (CFEInfoReferencia infoReferencia in cfe.InfoReferencia) { if (!FechaCFEReferencia(infoReferencia.FechaComprobanteReferencia.ToString())) { cfe.CampoErroneo = "InfoReferencia.FechaComprobanteReferencia"; return(false); } } //Valida FechaVencimientoCAE if (!FechaVencimientoCAE(cfe.FechaVencimientoCAE.ToString())) { cfe.CampoErroneo = "FechaVencimientoCAE"; return(false); } //Valida TipoDocumentoReceptor if (!TipoDocumentoReceptor(cfe.TipoCFE, cfe.TipoDocumentoReceptor, cfe.CodigoPaisReceptor, cfe.NumDocReceptorUruguayo, cfe.NumDocReceptorExtrangero, cfe.TotalMontoNoGravado, cfe.TotalMontoExportacionAsimilados, cfe.TotalMontoImpuestoPercibido, cfe.TotalMontoIVASuspenso, cfe.TotalMontoNetoIVATasaMinima, cfe.TotalMontoNetoIVATasaBasica, cfe.TotalMontoNetoIVAOtraTasa)) { cfe.CampoErroneo = "TipoDocumentoReceptor"; return(false); } //Valida CodigoPaisReceptor if (!CodigoPaisReceptor(cfe.TipoDocumentoReceptor, cfe.CodigoPaisReceptor, cfe.NumDocReceptorUruguayo, cfe.NumDocReceptorExtrangero)) { cfe.CampoErroneo = "CodigoPaisReceptor"; return(false); } ////Valida NumDocReceptorUruguayo //if (!NumDocReceptorUruguayo(cfe.TipoDocumentoReceptor, cfe.CodigoPaisReceptor, cfe.NumDocReceptorUruguayo, cfe.NumDocReceptorExtrangero)) //{ // cfe.CampoErroneo = "NumDocReceptorUruguayo"; // return false; //} ////Valida NumDocReceptorExtrangero //if (!NumDocReceptorExtrangero(cfe.TipoDocumentoReceptor, cfe.NumDocReceptorUruguayo, cfe.NumDocReceptorExtrangero)) //{ // cfe.CampoErroneo = "NumDocReceptorExtrangero"; // return false; //} //Valida TipoCambio if (!TipoCambio(cfe.TipoModena, cfe.TipoCambio)) { cfe.CampoErroneo = "TipoCambio"; return(false); } //Valida MontoDescuentoItem foreach (CFEItems item in cfe.Items) { if (!MontoDescuentoItem(item.PorcentajeDescuentoItem, item.MontoDescuentoItem)) { cfe.CampoErroneo = "Items.MontoDescuentoItem"; return(false); } } //Valida MontoRecargoItem foreach (CFEItems item in cfe.Items) { if (!MontoRecargoItem(item.PorcentajeRecargoItem, item.MontoRecargoItem)) { cfe.CampoErroneo = "Items.MontoRecargoItem"; return(false); } } //Valida RazonReferencia foreach (CFEInfoReferencia infoReferencia in cfe.InfoReferencia) { if (!RazonReferencia(infoReferencia.IndicadorReferenciaGlobal, infoReferencia.RazonReferencia)) { cfe.CampoErroneo = "InfoReferencia.RazonReferencia"; return(false); } } return(true); }
/// <summary> /// Campos obligatorios /// </summary> /// <param name="cfe"></param> /// <returns></returns> public static bool CamposObligatorios(ref CFE cfe) { bool salida = true; //Valida Version if (cfe.Version == "") { cfe.CampoFaltante = "Version"; salida = false; } //Valida Tipo CFE if (cfe.TipoCFE == 0) { cfe.CampoFaltante = "TipoCFE"; salida = false; } //Valida Serie del Comprobante if (cfe.SerieComprobante == "") { cfe.CampoFaltante = "SerieComprobante"; salida = false; } //Valida Número de Comprobante if (cfe.NumeroComprobante == 0) { cfe.CampoFaltante = "NumeroComprobante"; salida = false; } //Valida Fecha del Comprobante if (cfe.FechaComprobante.Equals("")) { cfe.CampoFaltante = "FechaComprobante"; salida = false; } //Valida RUC Emisor if (cfe.RucEmisor == 0) { cfe.CampoFaltante = "RucEmisor"; salida = false; } //Valida Código Casa Principal /Sucursal if (cfe.CodigoCasaPrincipalEmisor.Equals("0")) { cfe.CampoFaltante = "CodigoCasaPrincipalEmisor"; salida = false; } //Valida Tipo Documento Receptor if (cfe.TipoDocumentoReceptor == 0) { cfe.CampoFaltante = "TipoDocumentoReceptor"; salida = false; } //Valida Código País Receptor if (cfe.CodigoPaisReceptor == "") { cfe.CampoFaltante = "CodigoPaisReceptor"; salida = false; } //Valida No Documento Receptor if (cfe.NumDocReceptor == "") { cfe.CampoFaltante = "NumDocReceptor"; salida = false; } //Valida Tipo moneda transacción if (cfe.TipoModena == "") { cfe.CampoFaltante = "TipoModena"; salida = false; } //Valida Tipo de Cambio if (cfe.TipoCambio == 0) { cfe.CampoFaltante = "TipoCambio"; salida = false; } //Valida Total IVA – Tasa Mínima if (cfe.TotalIVATasaMinima == 0) { cfe.CampoFaltante = "TotalIVATasaMinima"; salida = false; } //Valida Total IVA – Tasa Básica if (cfe.TotalIVATasaBasica == 0) { cfe.CampoFaltante = "TotalIVATasaBasica"; salida = false; } //Valida Total Monto Total if (cfe.TotalMontoTotal == 0) { cfe.CampoFaltante = "TotalMontoTotal"; salida = false; } //Valida Total Monto Retenido/Percibido if (cfe.TotalMontoRetenidoPercibido == 0) { cfe.CampoFaltante = "TotalMontoRetenidoPercibido"; salida = false; } //Valida Líneas if (cfe.Lineas == 0) { cfe.CampoFaltante = "Lineas"; salida = false; } //Valida Código de Retención/ Percepción foreach (CFERetencPercep retencPercep in cfe.RetencionPercepcion) { if (retencPercep.CodigoRetencPercep == "") { cfe.CampoFaltante = "RetencionPercepcion.CodigoRetencPercep"; salida = false; } } //Valida Valor de la retención/ percepción foreach (CFERetencPercep retencPercep in cfe.RetencionPercepcion) { if (retencPercep.ValorRetencPercep == 0) { cfe.CampoFaltante = "RetencionPercepcion.ValorRetencPercep"; salida = false; } } return(salida); }
/// <summary> /// Metodo que llama a la generacion de documentos de tipo pdf /// Firmados digitalmente /// </summary> /// <param name="cfe"></param> /// <param name="cae"></param> /// <param name="kilosFactura"></param> /// <param name="tabla"></param> /// <param name="descuentoGeneral"></param> public void CrearPDF(CFE cfe, CAE cae, DatosPDF datosPdf, string tabla, List <ResguardoPdf> resguardoPdf, string tablaCabezal) { try { if (cae != null) { RutasCarpetas rutas = new RutasCarpetas(); rutas.generarCarpetas(); //Llamada a metodo para comprobar si hay datos de firma digital ObtenerFirmaDigital(); //Crear instancia de Pdfs pdfs = new PDFs(cfe, cae, datosPdf.KilosFactura); ////Se genera el archivo xml //ArchivoXml archXml = new ArchivoXml(); //archXml.generarXml(cfe, cae); //Crear pdf y validar creacion #region Proceso_WebService if (pdfs.CrearPDF(tabla, datosPdf, resguardoPdf, tablaCabezal)) //if (pdfs.CrearPDF(tabla, datosPdf, resguardoPdf, tablaCabezal, cfe.OrigenFE)) *** Se comenta porque se hace esto para todos los casos! #endregion Proceso_WebService { if (EventosPagina.errorRutaLogo) { //Se informa al usuario de que la ruta especificada para el logo es incorrecta app.MessageBox(Mensaje.errRutaLogoIncorrecta); EventosPagina.errorRutaLogo = false; } if (FrmEstadoContingencia.estadoContingencia.Equals("Y")) { AdminEventosUI.mostrarMensaje(Mensaje.sucFactura, AdminEventosUI.tipoMensajes.exito); } else { AdminEventosUI.mostrarMensaje(Mensaje.sucFacturaCorreo, AdminEventosUI.tipoMensajes.exito); } } else { if (!EventosPagina.errorRutaLogo && !PDFs.errorCertificado && !PDFs.errorFirma && !PDFs.errorCorreo && !PDFs.errorImprimir) { AdminEventosUI.mostrarMensaje(Mensaje.errFalloGenerarPdf, AdminEventosUI.tipoMensajes.error); } if (EventosPagina.errorRutaLogo) { AdminEventosUI.mostrarMensaje(Mensaje.errRutaLogoIncorrecta, AdminEventosUI.tipoMensajes.error); EventosPagina.errorRutaLogo = false; } if (PDFs.errorCertificado) { AdminEventosUI.mostrarMensaje(Mensaje.errDatosNoConfigurados, AdminEventosUI.tipoMensajes.error); PDFs.errorCertificado = false; } if (PDFs.errorFirma) { AdminEventosUI.mostrarMensaje(Mensaje.errFalloFirmaPdf, AdminEventosUI.tipoMensajes.error); PDFs.errorFirma = false; } if (PDFs.errorCorreo) { if (Mail.errorCorreo.Equals("")) { AdminEventosUI.mostrarMensaje(Mensaje.errConfErroneaCorreo, AdminEventosUI.tipoMensajes.error); } else { AdminEventosUI.mostrarMensaje(Mensaje.err + Mail.errorCorreo, AdminEventosUI.tipoMensajes.error); } PDFs.errorCorreo = false; } if (PDFs.errorImprimir) { AdminEventosUI.mostrarMensaje(Mensaje.errFalloImprimirPdf, AdminEventosUI.tipoMensajes.error); PDFs.errorImprimir = false; } } } else { AdminEventosUI.mostrarMensaje(Mensaje.errConfErroneaCae, AdminEventosUI.tipoMensajes.error); } } catch (Exception ex) { app.MessageBox("JobEnvioSobre/Error: " + ex.ToString()); } }
// ReSharper disable InconsistentNaming /// <summary> /// Converts a <see cref="CFE"/> constant to a <see cref="FontStyle"/> /// </summary> /// <param name="dwEffects">The <see cref="CFE"/> to convert</param> /// <returns>A <see cref="FontStyle"/></returns> public static FontStyle CFE_ToFontStyle(CFE dwEffects) { return(CFM_ToFontStyle((CFM)dwEffects)); }
// ReSharper disable InconsistentNaming /// <summary> /// Converts a <see cref="CFE"/> constant to a <see cref="FontStyle"/> /// </summary> /// <param name="dwEffects">The <see cref="CFE"/> to convert</param> /// <returns>A <see cref="FontStyle"/></returns> public static FontStyle CFE_ToFontStyle(CFE dwEffects) { return CFM_ToFontStyle((CFM)dwEffects); }