From 123eded3c689d8d6d2af2a169e4467e669edefdb Mon Sep 17 00:00:00 2001 From: Enrique Barcelli Date: Fri, 26 Jan 2024 03:15:33 +0800 Subject: [PATCH] Add delete_invoice functionality --- api.py | 15 +++++++++------ delete_invoice.py | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 delete_invoice.py diff --git a/api.py b/api.py index 8626cd7..8260915 100644 --- a/api.py +++ b/api.py @@ -61,13 +61,16 @@ class OpenbravoToBanqupAPI: self.authHandler.checkHeaderTokens() response = self.doRequest(method, url, data, headers, files) - if 'json' in response.headers['Content-Type']: - respContent = response.json() - elif 'pdf' in response.headers['Content-Type']: - respContent = response.content - + if response.status_code != 204: + if 'json' in response.headers['Content-Type']: + respContent = response.json() + elif 'pdf' in response.headers['Content-Type']: + respContent = response.content + else: + respContent = '' + return response.status_code, response.headers, respContent - + def get(self, url, data=None, headers=None): status, headers, response = self.request('GET', url, data, headers) return status, headers, response diff --git a/delete_invoice.py b/delete_invoice.py new file mode 100644 index 0000000..4800d6e --- /dev/null +++ b/delete_invoice.py @@ -0,0 +1,35 @@ +import requests +from requests_oauthlib import OAuth2Session +import json +import sys +import webbrowser +from config import * +from cachehandler import CacheHandler +from authhandler import AuthHandler +from api import OpenbravoToBanqupAPI +from datetime import timedelta, date + +def delete_invoice(document): + + api = OpenbravoToBanqupAPI(bq_client_id,bq_client_secret) + authUrl = api.authHandler.getAuthURL(bq_redirect_uri) + webbrowser.open(authUrl) + response = input('Paste response: ') + token = api.authHandler.retrieveToken(response, redirectUri=bq_redirect_uri) + #print(token) + invoice_list = api.get('sales-invoices?client_id='+banqup_client_id+'&sales_invoice_number='+document,None,None) + if not invoice_list[2]['results']: + print('***********************') + print('The invoice number provided does not exist in the Banqup portal.') + print('Please verify and try again.') + print('***********************') + return + invoice_id = str(invoice_list[2]['results'][0]['id']) + #print(invoice_id) + payload = json.dumps({}) + invoice_action = api.delete('sales-invoices/'+invoice_id,json.loads(payload),None) + print(invoice_action) + + +if __name__ == '__main__': + delete_invoice(str(sys.argv[1]))