From 7c3f220716f6cf7166479396b79f5d7e2783ac4e Mon Sep 17 00:00:00 2001 From: Enrique Barcelli Date: Fri, 23 Jun 2023 19:55:52 +0800 Subject: [PATCH] Enter define for the main script --- README.md | 2 +- extract-invoice.py | 47 ------------------------------------------- extract_invoice.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 48 deletions(-) delete mode 100644 extract-invoice.py create mode 100644 extract_invoice.py diff --git a/README.md b/README.md index 2e1ee6d..8a92781 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,6 @@ to the Banqup API of Unifiedpost. * Copy the file `config-sample.py` to `config.py` * Edit `config.py` with your credentials for Openbravo and Banqup -* Run `python3 extract-invoice.py ` +* Run `python3 extract_invoice.py ` Where `` is the human readable invoice number in Openbravo. diff --git a/extract-invoice.py b/extract-invoice.py deleted file mode 100644 index 47f5ede..0000000 --- a/extract-invoice.py +++ /dev/null @@ -1,47 +0,0 @@ -import requests -import json -import sys -from config import * - -document = str(sys.argv[1]) - -url = ob_api_url+"Invoice?_where=documentNo='"+document+"'&_noActiveFilter=false" - -payload = {} -headers = { - 'Authorization': 'Basic '+userpass_b64 -} - -response = requests.request("GET", url, headers=headers, data=payload) #extracts invoice header - -print(response.text) -invoice = json.loads(response.text) -#print (invoice['response']['data'][0]['client']) - -url = ob_api_url+"InvoiceLine?_where=invoice='"+invoice['response']['data'][0]['id']+"'&_noActiveFilter=false" - -response = requests.request("GET", url, headers=headers, data=payload) #extracts invoice lines -print(response.text) - - - -payload = json.dumps({ - "sales_invoice_number": invoice['response']['data'][0]['documentNo'], - "sales_invoice_date": invoice['response']['data'][0]['invoiceDate']+"T00:00:00Z", - "sales_invoice_due_date": "2023-06-17T00:00:00Z", #needs to be replaced by invoiceDate+"daysTillDue" - "platform_id": banqup_platform_id, - "debtor_id": 136328, #needs to be fetch from database using the "client_debtor_number" - "currency_code": invoice['response']['data'][0]['currency$_identifier'], - "client_id": banqup_client_id, - "delivery_channel": "openpeppol", - "invoice_lines": [ - { - "service_name": "161218", - "service_description": "Cavendish Banana 18.8Kg BOX", - "service_quantity": 10, - "service_price": 1.75, - "service_vat": 8 - } - ] -}) -print(payload) diff --git a/extract_invoice.py b/extract_invoice.py new file mode 100644 index 0000000..f955fac --- /dev/null +++ b/extract_invoice.py @@ -0,0 +1,50 @@ +import requests +import json +import sys +from config import * + +def extract_invoice(document): + + url = ob_api_url+"Invoice?_where=documentNo='"+document+"'&_noActiveFilter=false" + + payload = {} + headers = { + 'Authorization': 'Basic '+userpass_b64 + } + + response = requests.request("GET", url, headers=headers, data=payload) #extracts invoice header + + print(response.text) + invoice = json.loads(response.text) + #print (invoice['response']['data'][0]['client']) + + url = ob_api_url+"InvoiceLine?_where=invoice='"+invoice['response']['data'][0]['id']+"'&_noActiveFilter=false" + + response = requests.request("GET", url, headers=headers, data=payload) #extracts invoice lines + print(response.text) + + + + payload = json.dumps({ + "sales_invoice_number": invoice['response']['data'][0]['documentNo'], + "sales_invoice_date": invoice['response']['data'][0]['invoiceDate']+"T00:00:00Z", + "sales_invoice_due_date": "2023-06-17T00:00:00Z", #needs to be replaced by invoiceDate+"daysTillDue" + "platform_id": banqup_platform_id, + "debtor_id": 136328, #needs to be fetch from database using the "client_debtor_number" + "currency_code": invoice['response']['data'][0]['currency$_identifier'], + "client_id": banqup_client_id, + "delivery_channel": "openpeppol", + "invoice_lines": [ + { + "service_name": "161218", + "service_description": "Cavendish Banana 18.8Kg BOX", + "service_quantity": 10, + "service_price": 1.75, + "service_vat": 8 + } + ] + }) + print(payload) + +if __name__ == '__main__': + extract_invoice(str(sys.argv[1]))