diff --git a/tabla_nomina/models/models.py b/tabla_nomina/models/models.py index c9239c8..a9ec215 100755 --- a/tabla_nomina/models/models.py +++ b/tabla_nomina/models/models.py @@ -196,7 +196,6 @@ class nomina_electronica(models.Model): headers = {'content-type': 'application/json'} send = {"id_plataforma":self.id_plataforma,"transaccionID":self.transaccionID,"prefix":self.prefijo,"number":self.consecutivo} result = requests.post(urlini,headers=headers,data = json.dumps(send)) - #resultado = json.loads(result.text) #print(result.text) if result.status_code == 200: @@ -241,35 +240,34 @@ class nomina_electronica(models.Model): raise UserError(_('imprimible se esta preparando intenta de nuevo, Factura preparandose.')) else: import base64 - image_64_encode = base64.b64decode(final_data['documentBase64']) - i64 = base64.b64encode(image_64_encode) - att_id = self.env['ir.attachment'].create({ - 'name': self.number+extension, - 'type': 'binary', - 'datas': i64, - 'datas_fname': self.number+extension, - 'res_model': 'hr.payslip', - 'res_id': self.id, - }) - if att_id: - self.write({"impreso":True}) - return self.env['wk.wizard.message'].genrated_message("Ve a attachment","Factura impresa" ,"https://navegasoft.com") + print(final_data) + if final_data['code'] == '400': + return self.env['wk.wizard.message'].genrated_message('Estamos recibiendo un codigo 400 Es necesario esperar para volver imprimir el documento', 'Es necesario esperar para volver a imprimir el documento') + else: + image_64_encode = base64.b64decode(final_data['documentBase64']) + i64 = base64.b64encode(image_64_encode) + att_id = self.env['ir.attachment'].create({ + 'name': self.number+extension, + 'type': 'binary', + 'datas': i64, + 'datas_fname': self.number+extension, + 'res_model': 'hr.payslip', + 'res_id': self.id, + }) + if att_id: + self.write({"impreso":True}) + return self.env['wk.wizard.message'].genrated_message("Ve a attachment","Factura impresa" ,"https://navegasoft.com") else: raise UserError(_('Ve a attachment, Factura ya impresa.')) final = resultado["error"] final_error = json.loads(json.dumps(final)) data = final_error["data"] - data_final = data['message'] - - - + data_final = data['message'] else: raise Warning(result) - - def envio_directo(self): import time now2 = datetime.now() @@ -325,25 +323,29 @@ class nomina_electronica(models.Model): # print(eval(linea.campo_tecnico)) # else: # send[linea.name] = None + # print(send) headers = {'content-type': 'application/json'} result = requests.post(urlini,headers=headers,data = json.dumps(send)) if result.status_code == 200: resultado = json.loads(result.text) if "result" in resultado: final = resultado["result"] - if "error" in final: - final_error = json.loads(final) + if final.find("error") == -1: + self.write({"impreso":False,"transaccionID":final,"estado":"Generada_correctamente"}) + return self.env['wk.wizard.message'].genrated_message("4 "+"el id "+final,"FACTURA ELECTRONICA ENVIADA CORRECTAMENTE" ,"https://navegasoft.com") + else: + final_error = json.loads(final) #.decode("utf-8") final_text = final_error['error'] return self.env['wk.wizard.message'].genrated_message("2 "+final_text['mensaje'], final_text['titulo'],final_text['link']) - else: - return self.env['wk.wizard.message'].genrated_message('3 No hemos recibido una respuesta satisfactoria vuelve a enviarlo', 'Reenviar') + # else: + + # return self.env['wk.wizard.message'].genrated_message('3 No hemos recibido una respuesta satisfactoria vuelve a enviarlo', 'Reenviar') else: if "error" in resultado: final = resultado["error"] final_error = json.loads(json.dumps(final)) data = final_error["data"] data_final = data['message'] - self.write({"impreso":False,"transactionID":self.transaccionID,"estado":"Generada_correctamente"}) return self.env['wk.wizard.message'].genrated_message("1 "+data_final,"Los datos no estan correctos" ,"https://navegasoft.com") else: raise Warning(result)