def Authorize(self, id): "Autoriza la factura cargada en memoria" try: # limpio errores self.Exception = self.Traceback = "" self.ErrCode = self.ErrMsg = "" # llamo al web service auth, events = wsfex.authorize(self.client, self.Token, self.Sign, self.Cuit, id=id, factura=self.factura.to_dict()) # Resultado: A: Aceptado, R: Rechazado self.Resultado = auth['resultado'] # Obs: self.Obs = auth['obs'].strip(" ") self.Reproceso = auth['reproceso'] self.CAE = auth['cae'] self.CbteNro = auth['cbte_nro'] vto = str(auth['fch_venc_cae']) self.Vencimiento = "%s/%s/%s" % (vto[6:8], vto[4:6], vto[0:4]) self.Eventos = ['%s: %s' % (evt['code'], evt['msg']) for evt in events] return self.CAE except wsfex.FEXError, e: self.ErrCode = unicode(e.code) self.ErrMsg = unicode(e.msg) if self.LanzarExcepciones: raise COMException(scode = vbObjectError + int(e.code), desc=unicode(e.msg), source="WebService")
def Authorize(self, id): "Autoriza la factura cargada en memoria" try: # limpio errores self.Exception = self.Traceback = "" self.ErrCode = self.ErrMsg = "" # llamo al web service auth, events = wsfex.authorize(self.client, self.Token, self.Sign, self.Cuit, id=id, factura=self.factura.to_dict()) # Resultado: A: Aceptado, R: Rechazado self.Resultado = auth['resultado'] # Obs: self.Obs = auth['obs'].strip(" ") self.Reproceso = auth['reproceso'] self.CAE = auth['cae'] self.CbteNro = auth['cbte_nro'] vto = str(auth['fch_venc_cae']) self.Vencimiento = "%s/%s/%s" % (vto[6:8], vto[4:6], vto[0:4]) self.Eventos = [ '%s: %s' % (evt['code'], evt['msg']) for evt in events ] return self.CAE except wsfex.FEXError, e: self.ErrCode = unicode(e.code) self.ErrMsg = unicode(e.msg) if self.LanzarExcepciones: raise COMException(scode=vbObjectError + int(e.code), desc=unicode(e.msg), source="WebService")
def autorizar(client, token, sign, cuit, entrada, salida): # recupero el último número de transacción ##id = wsfex.ultnro(client, token, sign, cuit) detalles = [] permisos = [] cbtasocs = [] encabezado = {} for linea in entrada: if str(linea[0]) == '0': encabezado = leer(linea, ENCABEZADO) elif str(linea[0]) == '1': detalle = leer(linea, DETALLE) detalles.append(detalle) elif str(linea[0]) == '2': permiso = leer(linea, PERMISO) permisos.append(permiso) elif str(linea[0]) == '3': cbtasoc = leer(linea, CMP_ASOC) cbtasocs.append(cbtasoc) else: print "Tipo de registro incorrecto:", linea[0] if not encabezado['id'].strip() or int(encabezado['id']) == 0: # TODO: habria que leer y/o grabar el id en el archivo ##id += 1 # incremento el nº de transacción # Por el momento, el id se calcula con el tipo, pv y nº de comprobant i = long(encabezado['cbte_nro']) i += (int(encabezado['cbte_nro']) * 10**4 + int(encabezado['punto_vta'])) * 10**8 encabezado['id'] = wsfex.get_last_id(client, token, sign, cuit)[0] + 1 factura = wsfex.FacturaEX(**encabezado) for detalle in detalles: it = wsfex.ItemFEX(**detalle) factura.add_item(it, calcular=False) for permiso in permisos: p = wsfex.PermisoFEX(**permiso) factura.add_permiso(p) for cbtasoc in cbtasocs: c = wsfex.CmpAsocFEX(**cbtasoc) factura.add_cmp_asoc(c) if DEBUG: #print f.to_dict() print '\n'.join( ["%s='%s'" % (k, str(v)) for k, v in factura.to_dict().items()]) print 'id:', encabezado['id'] if not DEBUG or raw_input("Facturar?") == "S": dic = factura.to_dict() auth, events = wsfex.authorize(client, token, sign, cuit, id=encabezado['id'], factura=dic) dic.update(auth) escribir_factura(dic, salida) print "ID:", dic['id'], "CAE:", dic['cae'], "Obs:", dic[ 'obs'], "Reproceso:", dic['reproceso']
def autorizar(client, token, sign, cuit, entrada, salida): # recupero el último número de transacción ##id = wsfex.ultnro(client, token, sign, cuit) detalles = [] permisos = [] cbtasocs = [] encabezado = {} for linea in entrada: if str(linea[0])=='0': encabezado = leer(linea, ENCABEZADO) elif str(linea[0])=='1': detalle = leer(linea, DETALLE) detalles.append(detalle) elif str(linea[0])=='2': permiso = leer(linea, PERMISO) permisos.append(permiso) elif str(linea[0])=='3': cbtasoc = leer(linea, CMP_ASOC) cbtasocs.append(cbtasoc) else: print "Tipo de registro incorrecto:", linea[0] if not encabezado['id'].strip() or int(encabezado['id'])==0: # TODO: habria que leer y/o grabar el id en el archivo ##id += 1 # incremento el nº de transacción # Por el momento, el id se calcula con el tipo, pv y nº de comprobant i = long(encabezado['cbte_nro']) i += (int(encabezado['cbte_nro'])*10**4 + int(encabezado['punto_vta']))*10**8 encabezado['id'] = wsfex.get_last_id(client, token, sign, cuit)[0] + 1 factura = wsfex.FacturaEX(**encabezado) for detalle in detalles: it = wsfex.ItemFEX(**detalle) factura.add_item(it, calcular=False) for permiso in permisos: p = wsfex.PermisoFEX(**permiso) factura.add_permiso(p) for cbtasoc in cbtasocs: c = wsfex.CmpAsocFEX(**cbtasoc) factura.add_cmp_asoc(c) if DEBUG: #print f.to_dict() print '\n'.join(["%s='%s'" % (k,str(v)) for k,v in factura.to_dict().items()]) print 'id:', encabezado['id'] if not DEBUG or raw_input("Facturar?")=="S": dic = factura.to_dict() auth, events = wsfex.authorize(client, token, sign, cuit, id=encabezado['id'], factura=dic) dic.update(auth) escribir_factura(dic, salida) print "ID:", dic['id'], "CAE:",dic['cae'],"Obs:",dic['obs'],"Reproceso:",dic['reproceso']