// Carga valores de la factura desde archivo de texto public FacturaElectronicaV33(string archivoFac, string archivoAdd, bool incluirDetallista, bool incluirAddenda, bool incluirAlsuper, bool incluirEdifact, bool incluirComercExt, bool incluirPago) { // Carga los valores del archivo de factura _iniFac = new IniFileHandler(archivoFac); if (incluirDetallista || incluirAddenda || incluirAlsuper || incluirEdifact || incluirComercExt || incluirPago) { _iniAdd = new IniFileHandler(archivoAdd); } }
Schemasv33modif.ComprobanteConceptoParte[] GetConceptoPartes(IniFileHandler iniHandler, string seccion) { if (!iniHandler.Existe(seccion, "CantidadPartes")) { return(null); } int cantidadPartes = Convert.ToInt32(iniHandler.Requerido(seccion, "CantidadPartes")); if (cantidadPartes == 0) { return(null); } Schemasv33modif.ComprobanteConceptoParte[] result = new Schemasv33modif.ComprobanteConceptoParte[cantidadPartes]; for (int i = 0; i < cantidadPartes; i++) { string parteSection = string.Format("Parte{0}", (i + 1)); string claveProdSection = string.Format("{0}ClaveProdServ", parteSection); string noIdentificacionSection = string.Format("{0}NoIdentificacion", parteSection); string cantidadSection = string.Format("{0}Cantidad", parteSection); string claveUnidadSection = string.Format("{0}ClaveUnidad", parteSection); string unidadSection = string.Format("{0}Unidad", parteSection); string descripcionSection = string.Format("{0}Descripcion", parteSection); string valorUnitarioSection = string.Format("{0}ValorUnitario", parteSection); string importeSection = string.Format("{0}Importe", parteSection); result[i] = new Schemasv33modif.ComprobanteConceptoParte { InformacionAduanera = GetParteInformacionAduanera(iniHandler, seccion, parteSection), ClaveProdServ = iniHandler.Requerido(seccion, claveProdSection), NoIdentificacion = iniHandler.Opcional(seccion, noIdentificacionSection), Cantidad = iniHandler.RequeridoDecimal(seccion, cantidadSection), Unidad = iniHandler.Opcional(seccion, unidadSection), Descripcion = iniHandler.Requerido(seccion, descripcionSection), ValorUnitario = iniHandler.OpcionalDecimal(seccion, valorUnitarioSection), ValorUnitarioSpecified = iniHandler.Existe(seccion, valorUnitarioSection), Importe = iniHandler.OpcionalDecimal(seccion, importeSection), ImporteSpecified = iniHandler.Existe(seccion, importeSection) }; } return(result); }
Schemasv33.ComprobanteCfdiRelacionadosCfdiRelacionado[] GetCfdiRelacionados(IniFileHandler iniHandler, int cantidadCfdiRelacionados) { if (cantidadCfdiRelacionados == 0) { return(null); } Schemasv33.ComprobanteCfdiRelacionadosCfdiRelacionado[] result = new Schemasv33.ComprobanteCfdiRelacionadosCfdiRelacionado[cantidadCfdiRelacionados]; for (int i = 0; i < cantidadCfdiRelacionados; i++) { string seccion = String.Format("CfdiRelacionado{0}", (i + 1)); result[i] = new Schemasv33.ComprobanteCfdiRelacionadosCfdiRelacionado { UUID = iniHandler.Requerido(seccion, "UUID") }; } return(result); }
Schemasv33.ComprobanteConceptoInformacionAduanera[] GetInformacionAduanera(IniFileHandler iniHandler, string seccion) { int cantidadPedimentos = Convert.ToInt32(iniHandler.Requerido(seccion, "CantidadPedimentos")); if (cantidadPedimentos == 0) { return(null); } Schemasv33.ComprobanteConceptoInformacionAduanera[] result = new Schemasv33.ComprobanteConceptoInformacionAduanera[cantidadPedimentos]; for (int i = 0; i < cantidadPedimentos; i++) { string pedimentoSection = String.Format("InformacionAduaneraNumeroPedimento{0}", (i + 1)); result[i] = new Schemasv33.ComprobanteConceptoInformacionAduanera { NumeroPedimento = iniHandler.Requerido(seccion, pedimentoSection) }; } return(result); }
Schemasv33modif.ComprobanteImpuestosRetencion[] GetImpuestosRetencion(IniFileHandler iniHandler, string seccion) { int cantidadImpuestosRetencion = Convert.ToInt32(_iniFac.Requerido("Impuestos", "CantidadRetenciones")); if (cantidadImpuestosRetencion == 0) { return(null); } Schemasv33modif.ComprobanteImpuestosRetencion[] result = new Schemasv33modif.ComprobanteImpuestosRetencion[cantidadImpuestosRetencion]; for (int i = 0; i < cantidadImpuestosRetencion; i++) { string impuestoSection = String.Format("ImpuestosRetencion{0}Impuesto", (i + 1)); string importeSection = String.Format("ImpuestosRetencion{0}Importe", (i + 1)); result[i] = new Schemasv33modif.ComprobanteImpuestosRetencion { Impuesto = iniHandler.RequeridoEnum <Schemasv33modif.c_Impuesto>(seccion, impuestoSection), Importe = iniHandler.RequeridoDecimal(seccion, importeSection), }; } return(result); }
Schemasv33modif.ComprobanteConceptoImpuestos GetConceptoImpuestos(IniFileHandler iniHandler, string seccion) { int cantidadTraslados = Convert.ToInt32(iniHandler.Requerido(seccion, "CantidadTraslados")); int cantidadRetenciones = Convert.ToInt32(iniHandler.Requerido(seccion, "CantidadRetenciones")); if (cantidadRetenciones == 0 && cantidadTraslados == 0) { return(null); } Schemasv33modif.ComprobanteConceptoImpuestosTraslado[] traslados = new Schemasv33modif.ComprobanteConceptoImpuestosTraslado[cantidadTraslados]; Schemasv33modif.ComprobanteConceptoImpuestosRetencion[] retenciones = new Schemasv33modif.ComprobanteConceptoImpuestosRetencion[cantidadRetenciones]; if (cantidadTraslados > 0) { for (int i = 0; i < cantidadTraslados; i++) { string baseSection = String.Format("ImpuestosTraslado{0}Base", (i + 1)); string impuestoSection = String.Format("ImpuestosTraslado{0}Impuesto", (i + 1)); string tipoFactorSection = String.Format("ImpuestosTraslado{0}TipoFactor", (i + 1)); string tasaOCuotaSection = String.Format("ImpuestosTraslado{0}TasaOCuota", (i + 1)); string importeSection = String.Format("ImpuestosTraslado{0}Importe", (i + 1)); traslados[i] = new Schemasv33modif.ComprobanteConceptoImpuestosTraslado { Base = iniHandler.RequeridoDecimal(seccion, baseSection), Impuesto = iniHandler.RequeridoEnum <Schemasv33modif.c_Impuesto>(seccion, impuestoSection), TipoFactor = iniHandler.RequeridoEnum <Schemasv33modif.c_TipoFactor>(seccion, tipoFactorSection), TasaOCuota = iniHandler.OpcionalEnum <Schemasv33modif.c_TasaOCuota>(seccion, tasaOCuotaSection), TasaOCuotaSpecified = iniHandler.Existe(seccion, tasaOCuotaSection), Importe = iniHandler.OpcionalDecimal(seccion, importeSection), ImporteSpecified = iniHandler.Existe(seccion, importeSection) }; } } else { traslados = null; } if (cantidadRetenciones > 0) { for (int i = 0; i < cantidadRetenciones; i++) { string baseSection = String.Format("ImpuestosRetencion{0}Base", (i + 1)); string impuestoSection = String.Format("ImpuestosRetencion{0}Impuesto", (i + 1)); string tipoFactorSection = String.Format("ImpuestosRetencion{0}TipoFactor", (i + 1)); string tasaOCuotaSection = String.Format("ImpuestosRetencion{0}TasaOCuota", (i + 1)); string importeSection = String.Format("ImpuestosRetencion{0}Importe", (i + 1)); retenciones[i] = new Schemasv33modif.ComprobanteConceptoImpuestosRetencion { Base = iniHandler.RequeridoDecimal(seccion, baseSection), Impuesto = iniHandler.RequeridoEnum <Schemasv33modif.c_Impuesto>(seccion, impuestoSection), TipoFactor = iniHandler.RequeridoEnum <Schemasv33modif.c_TipoFactor>(seccion, tipoFactorSection), TasaOCuota = iniHandler.OpcionalDecimal(seccion, tasaOCuotaSection), Importe = iniHandler.OpcionalDecimal(seccion, importeSection) }; } } else { retenciones = null; } Schemasv33modif.ComprobanteConceptoImpuestos result = new Schemasv33modif.ComprobanteConceptoImpuestos { Traslados = traslados, Retenciones = retenciones }; return(result); }