def startElement(self, tag, attrs): if (tag == 'cfdi:Comprobante'): Base32Handler.transform_comprobante(self, tag, attrs) elif (tag == 'cfdi:Emisor'): self._start_emisor = True Base32Handler.transform_emisor(self, tag, attrs) elif (tag == 'cfdi:RegimenFiscal' and self._start_emisor): Base32Handler.transform_regimen_fiscal(self, tag, attrs) elif (tag == 'cfdi:Receptor'): Base32Handler.transform_receptor(self, tag, attrs) elif (tag == 'cfdi:Concepto'): self._start_concept = True self.__transform_conceptos(tag, attrs) elif (tag == 'cfdi:Impuestos' and self._start_concept == False): self.__transform_impuestos(tag, attrs) elif (tag == 'cfdi:Traslado' and self._start_concept == False): self.__transform_impuestos_traslados(tag, attrs) elif (tag == 'cfdi:Retencion' and self._start_concept == False): self.__transform_impuestos_retenciones(tag, attrs) elif (tag == 'cfdi:Complemento'): self._start_complement = True elif (tag == 'tfd:TimbreFiscalDigital'): self._complement_profundity += 1 Base32Handler.transform_tfd(self, tag, attrs) elif (tag == 'implocal:ImpuestosLocales'): self._complement_profundity += 1 self.__transform_imploc(tag, attrs) elif (self._start_complement): self._complement_profundity += 1
def __transform_impuestos(self, tag, attrs): if ('totalImpuestosTrasladados' in attrs): self._total_impuestos_traslado = Base32Handler.sum(self, self._total_impuestos_traslado, attrs['totalImpuestosTrasladados']) if ('totalImpuestosRetenidos' in attrs): self._total_impuestos_retenidos = Base32Handler.sum(self, self._total_impuestos_retenidos, attrs['totalImpuestosRetenidos'])
def startElement(self, tag, attrs): if (tag == 'cfdi:Comprobante'): if ('Version' in attrs): Base33Handler.transform_comprobante(self, tag, attrs) elif ('version' in attrs): Base32Handler.transform_comprobante(self, tag, attrs) elif (tag == 'cfdi:Emisor'): if (self._version == '3.3'): Base33Handler.transform_emisor(self, tag, attrs) else: self._start_emisor = True Base32Handler.transform_emisor(self, tag, attrs) elif (tag == 'cfdi:Receptor'): if (self._version == '3.3'): Base33Handler.transform_receptor(self, tag, attrs) else: Base32Handler.transform_receptor(self, tag, attrs) elif (tag == 'cfdi:RegimenFiscal' and self._start_emisor and self._version == '3.2'): Base32Handler.transform_regimen_fiscal(self, tag, attrs) elif (tag == 'tfd:TimbreFiscalDigital'): if (self._version == '3.3'): Base33Handler.transform_tfd(self, tag, attrs) else: Base32Handler.transform_tfd(self, tag, attrs) elif (tag == 'pago10:Pago'): self.__transform_pago(tag, attrs) elif (tag == 'pago10:DoctoRelacionado'): self.__transform_docto_relacionado(tag, attrs)
def __transform_imploc(self, tag, attrs): if ('TotaldeTraslados' in attrs): self._total_traslados_impuestos_locales = Base32Handler.sum( self, self._total_traslados_impuestos_locales, attrs['TotaldeTraslados']) if ('TotaldeRetenciones' in attrs): self._total_retenciones_impuestos_locales = Base32Handler.sum( self, self._total_retenciones_impuestos_locales, attrs['TotaldeRetenciones'])
def __transform_impuestos_traslados(self, tag, attrs): if ('impuesto' in attrs and 'importe' in attrs): if (attrs['impuesto'] == 'IVA'): self._iva_traslado = Base32Handler.sum(self, self._iva_traslado, attrs['importe']) elif (attrs['impuesto'] == 'IEPS'): self._ieps_traslado = Base32Handler.sum( self, self._ieps_traslado, attrs['importe'])
def __transform_impuestos_retenciones(self, tag, attrs): if ('impuesto' in attrs and 'importe' in attrs): if (attrs['impuesto'] == 'ISR'): self._isr_retenido = Base32Handler.sum(self, self._isr_retenido, attrs['importe']) elif (attrs['impuesto'] == 'IVA'): self._iva_retenido = Base32Handler.sum(self, self._iva_retenido, attrs['importe'])
def startElement(self, tag, attrs): if (tag == 'cfdi:Comprobante'): if ('Version' in attrs): Base33Handler.transform_comprobante(self, tag, attrs) elif ('version' in attrs): Base32Handler.transform_comprobante(self, tag, attrs) elif (tag == 'cfdi:Emisor'): if (self._version == '3.3'): Base33Handler.transform_emisor(self, tag, attrs) else: self._start_emisor = True Base32Handler.transform_emisor(self, tag, attrs) elif (tag == 'cfdi:Receptor'): if (self._version == '3.3'): Base33Handler.transform_receptor(self, tag, attrs) else: Base32Handler.transform_receptor(self, tag, attrs) elif (tag == 'cfdi:RegimenFiscal' and self._start_emisor and self._version == '3.2'): Base32Handler.transform_regimen_fiscal(self, tag, attrs) elif (tag == 'tfd:TimbreFiscalDigital'): if (self._version == '3.3'): Base33Handler.transform_tfd(self, tag, attrs) else: Base32Handler.transform_tfd(self, tag, attrs) elif (tag == 'nomina12:Nomina'): self.__transform_nomina12(tag, attrs) elif (tag == 'nomina12:Emisor'): self.__transform_nomina12_emisor(tag, attrs) elif (tag == 'nomina12:Receptor'): self.__transform_nomina12_receptor(tag, attrs) elif (tag == 'nomina12:Percepciones'): self.__transform_nomina12_percepciones(tag, attrs) elif (tag == 'nomina12:Percepcion'): self.__transform_nomina12_percepcion(tag, attrs) elif (tag == 'nomina12:HorasExtra'): self.__transform_horas_extra(tag, attrs) elif (tag == 'nomina12:JubilacionPensionRetiro'): self.__transform_jubilacion_pension_retiro(tag, attrs) elif (tag == 'nomina12:Deducciones'): self.__transform_nomina12_deducciones(tag, attrs) elif (tag == 'nomina12:Deduccion'): self.__transform_nomina12_deduccion(tag, attrs) elif (tag == 'nomina12:Incapacidad'): self.__transform_incapacidad(tag, attrs) elif (tag == 'nomina12:OtroPago'): self.__transform_otro_pago(tag, attrs) elif (tag == 'nomina12:SubsidioAlEmpleo'): self.__transform_subsidio_causado(tag, attrs) elif (tag == 'nomina12:CompensacionSaldosAFavor'): self.__transform_compensaciones_saldos_a_favor(tag, attrs)
def __transform_complementos(self, tag): complement_name = tag if (':' in tag): complement_name = tag[tag.rindex(':') + 1:] self._complementos = Base32Handler.concatenate(self, self._complementos, complement_name)
def __init__(self): xml.sax.ContentHandler.__init__(self) Base32Handler.__init__(self) Base33Handler.__init__(self) self._complemento_pago_counter = 1 self._pago_counter = 1 self._doc_relacionado_counter = 1 self._doctos_relacionados = list() self._pagos = list() self.p_iva_traslado = '-' self.p_ieps_traslado = '-' self.p_total_impuestos_trasladados = '-' self.p_isr_retencion = '-' self.p_iva_retencion = '-' self.p_iesp_retencion = '-' self.p_total_impuestos_retenidos = '-'
def __transform_nomina11_deduccion(self, tag, attrs): if ('TipoDeduccion' in attrs): tipo_deduccion = attrs['TipoDeduccion'] importe = '0.00' if ('ImporteGravado' in attrs): importe = attrs['ImporteGravado'] if (tipo_deduccion in self._deducciones): deduccion = self._deducciones[tipo_deduccion] importe = Base32Handler.sum(self, deduccion[1], importe) self._deducciones[tipo_deduccion] = [tipo_deduccion, importe]
def startElement(self, tag, attrs): if (tag == 'cfdi:Comprobante'): Base32Handler.transform_comprobante(self, tag, attrs) elif (tag == 'cfdi:Emisor'): Base32Handler.transform_emisor(self, tag, attrs) elif (tag == 'cfdi:Receptor'): Base32Handler.transform_receptor(self, tag, attrs) elif (tag == 'cfdi:Concepto'): self._position_concept += 1 self.__transform_conceptos(tag, attrs) elif (tag == 'tfd:TimbreFiscalDigital'): Base32Handler.transform_tfd(self, tag, attrs)
def __init__(self): xml.sax.ContentHandler.__init__(self) Base32Handler.__init__(self) Base33Handler.__init__(self) self._start_emisor = False #Datos nodo nomina self._tipo_nomina = '-' self._fecha_pago = '-' self._fecha_inicial_pago = '-' self._fecha_final_pago = '-' self._num_dias_pagados = '-' self._total_percepciones = '-' self._total_deducciones = '-' self._total_otros_pagos = '-' #Datos nodo emisor self._curp_emisor = '-' self._registro_patronal = '-' self._rfc_patron_origen = '-' #Datos nodo receptor self._curp_receptor = '-' self._num_seguridad_social = '-' self._fecha_inicio_relacion_laboral = '-' self._sindicalizado = '-' self._tipo_jornada = '-' self._tipo_regimen = '-' self._num_empleado = '-' self._departamento = '-' self._puesto = '-' self._riesgo_puesto = '-' self._banco = '-' self._cuenta_bancaria = '-' self._antiguedad = '-' self._tipo_contrato = '-' self._periodicidad_pago = '-' self._salario_base_cot_apor = '-' self._salario_diario_integrado = '-' self._clave_ent_fed = '-' #Datos nodo percepciones self._total_sueldos = 0 self._total_separacion_indemnizacion = '-' self._total_jubilacion_pension_retiro = '-' self._total_gravado = 0 self._total_excento = 0 #datos nodos percepcion self._percepciones = {} #Datos nodo horas extra self._p19_dias = '-' self._p19_tipo_horas = '-' self._p19_horas_extra = '-' self._p19_importe_pagado = '-' #datos nodo JubilacionPensionRetiro self._p39_ingreso_no_acumulable = '-' self._p39_ingreso_acumulable = '-' self._p39_total_una_exhibicion = '-' self._p39_monto_diario = '-' self._p39_total_parcialidad = '-' #Datos nodo deducciones self._total_otras_deducciones = '-' self._total_impuestos_retenidos = '-' #datos nodos deduccion self._deducciones = {} #datos nodo incapacidad self._d006_dias_incapacidad = '-' self._d006_tipo_incapacidad = '-' self._d006_importe_monetario = '-' #datos otro pago self._otros_pagos = {} #datos otro SubsidioAlEmpleo self._o002_subsidio_causado = '-' #datos otro SubsidioAlEmpleo self._o004_saldo_favor = '-' self._o004_ano = '-' self._o004_remanente_saldo_favor = '-'
def __init__(self): xml.sax.ContentHandler.__init__(self) Base32Handler.__init__(self) self._position_concept = 0 self._concepts = list()
def __transform_conceptos(self, tag, attrs): if ('noIdentificacion' in attrs): self._clave_prod_serv = Base32Handler.concatenate( self, self._clave_prod_serv, attrs['noIdentificacion'].replace('|', ''))
def __init__(self): xml.sax.ContentHandler.__init__(self) Base32Handler.__init__(self) self._start_concept = False self._start_complement = False self._complement_profundity = 0