Ejemplo n.º 1
0
 // 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);
     }
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }