def data_acq(self, conn, d_rdirs, **kwargs): def fetch_info(f): parser = xmlreader.SaxReader() try: return parser(f) except xml.sax.SAXParseException as e: raise DocBuilderStepError("cfdi xml could not be parsed : {}".format(e)) except Exception as e: raise DocBuilderStepError("xsl could not be applied : {}".format(e)) def extra(serie_folio, c): try: return self.__load_extra_info(conn, serie_folio, c) except Exception as e: raise DocBuilderStepError("loading extra info fails: {}".format(e)) rfc = kwargs.get('rfc', None) if rfc is None: raise DocBuilderStepError("rfc not found") xml = kwargs.get('xml', None) if xml is None: raise DocBuilderStepError("xml not found") f_xml = os.path.join(d_rdirs['cfdi_output'], rfc, xml) if not os.path.isfile(f_xml): raise DocBuilderStepError("cfdi xml not found") cap = kwargs.get('cap', 'SPA') if not cap in self.__CAPTIONS: raise DocBuilderStepError("caption {0} not found".format(cap)) logo_filename = os.path.join(d_rdirs['images'], "{}_logo.png".format(rfc)) if not os.path.isfile(logo_filename): raise DocBuilderStepError("logo image {0} not found".format(logo_filename)) xml_parsed, original = fetch_info(f_xml) serie_folio = "%s%s" % (xml_parsed['CFDI_SERIE'], xml_parsed['CFDI_FOLIO']) lack = self.__cover_xml_lacks(conn, serie_folio, cap) einfo = extra(serie_folio, cap) f_qr = qrcode_cfdi(self.__VERIFICATION_URL, xml_parsed['UUID'], xml_parsed['INCEPTOR_RFC'], xml_parsed['RECEPTOR_RFC'], xml_parsed['CFDI_TOTAL'], xml_parsed['CFD_SEAL'][-8:] ) return { 'CAP_LOADED': self.__CAPTIONS[cap], 'QRCODE': f_qr, 'LOGO': logo_filename, 'STAMP_ORIGINAL_STR': original, 'XML_PARSED': xml_parsed, 'XML_LACK': lack, 'CUSTOMER_WWW': lack['WWW'], 'CUSTOMER_PHONE': lack['TEL'], 'FOOTER_ABOUT': "ESTE DOCUMENTO ES UNA REPRESENTACIÓN IMPRESA DE UN CFDI", 'EXTRA_INFO': einfo }
def data_acq(self, conn, d_rdirs, **kwargs): def fetch_info(f): parser = xmlreader.SaxReader() try: return parser(f) except xml.sax.SAXParseException as e: raise DocBuilderStepError( "cfdi xml could not be parsed : {}".format(e)) except Exception as e: raise DocBuilderStepError( "xsl could not be applied : {}".format(e)) rfc = kwargs.get('rfc', None) if rfc is None: raise DocBuilderStepError("rfc not found") xml = kwargs.get('xml', None) if xml is None: raise DocBuilderStepError("xml not found") f_xml = os.path.join(d_rdirs['cfdi_output'], rfc, xml) if not os.path.isfile(f_xml): raise DocBuilderStepError("cfdi xml not found") xml_parsed, original = fetch_info(f_xml) f_qr = qrcode_cfdi(self.__VERIFICATION_URL, xml_parsed['UUID'], xml_parsed['INCEPTOR_RFC'], xml_parsed['RECEPTOR_RFC'], xml_parsed['CFDI_TOTAL'], xml_parsed['CFD_SEAL'][-8:]) logo_filename = os.path.join(d_rdirs['images'], "{}_logo.png".format(rfc)) if not os.path.isfile(logo_filename): raise DocBuilderStepError( "logo image {0} not found".format(logo_filename)) return { 'STAMP_ORIGINAL_STR': original, 'XML_PARSED': xml_parsed, 'QRCODE': f_qr, 'LOGO': logo_filename, 'FOOTER_ABOUT': "ESTE DOCUMENTO ES UNA REPRESENTACIÓN IMPRESA DE UN CFDI", }