Add delete_invoice functionality

This commit is contained in:
Enrique Barcelli 2024-01-26 03:15:33 +08:00
parent c88a1b199d
commit 123eded3c6
Signed by: kikobar
GPG key ID: 006C13A68E25D3B7
2 changed files with 44 additions and 6 deletions

15
api.py
View file

@ -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

35
delete_invoice.py Normal file
View file

@ -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]))