def updateTvInvoiceStatus(invoice_id, status, view_id): logger.info("Updating invoice status for {0} as {1}".format( invoice_id, status)) #if not view_id: view_id = '4027' url = 'https://go.trackvia.com/accounts/21782/apps/49/tables/740/records/{0}?formId=5429&viewId={1}'.format( invoice_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } body = { 'id': invoice_id, 'data': [{ 'fieldMetaId': 21443, 'id': 279131, 'type': 'dropDown', 'value': status }] } resp = requests.put(url=url, params=params, json=body) if resp.status_code != 200: logger.error( 'payment status not updated for invoice {0} | {1} | {2}'.format( invoice_id, resp.json(), resp.status_code))
def getInvoiceItems(record_id): url = "https://go.trackvia.com/accounts/21782/apps/49/tables/724/records/filter?start=0&max=50&orderFields=253048,253044&ascending=false,true&query=&viewId=4029" body = { "operator": "AND", "negated": False, "displayOrder": 0, "fieldFilters": [{ "fieldMetaId": 18714, "relationshipId": 4460, "value": record_id, "operator": "=", "negated": False, "displayOrder": 1 }] } params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } r = requests.post(url=url, params=params, json=body) if r.status_code != 200: #log pass response = r.json() return _invoiceItemsFormatter(response['records'])
def getManualInvoiceItems(mi_id): url = invoice_item_url body = { "operator": "AND", "negated": False, "displayOrder": 0, "fieldFilters": [{ "fieldMetaId": 18714, "relationshipId": 4460, "value": mi_id, "operator": "=", "negated": False, "displayOrder": 1 }] } params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } response = requests.post(url=url, params=params, json=body) if response.status_code != 200: logger.error( "getManualInvoiceItems | {0} | response status is {1}".format( mi_id, response.status_code)) pass response = response.json() return invoiceItemsFormatter(response.get('records'))
def updateManualInvoiceStatus(mi_id, status): logger.info("Updating manual invoice status for {0} as {1}".format( mi_id, status)) view_id = '5374' url = 'https://go.trackvia.com/accounts/21782/apps/49/tables/740/records/{0}?formId=5249&viewId={1}'\ .format(mi_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } body = { 'id': mi_id, 'data': [{ 'fieldMetaId': '18716', 'id': '329344', 'type': 'dropDown', 'value': status }] } resp = requests.put(url=url, params=params, json=body) if resp.status_code != 200: logger.error( 'payment status not updated for manual invoice, {0} | {1} | {2}'. format(mi_id, resp.json(), resp.status_code))
def getInvoiceData(invoice_id, view_id): #if not view_id: view_id = '4027' url = "https://go.trackvia.com/accounts/21782/apps/49/tables/740/records/{0}?viewId={1}&formId=5429".format( invoice_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } r = requests.get(url=url, params=params) if r.status_code != 200: # log pass mapper = { 19117: 'INVOICE ID', 18705: 'INVOICE DATE', 18716: 'STATUS', 18719: 'DELIVERY DETAILS', 18720: 'PROJECT', 18723: 'DUE DATE', 18717: 'SALES ORDER', 18314: 'CONTRACTOR', 19497: 'CONTRACTOR EMAIL', 16412: 'MARGIN %', 16410: 'FREIGHT %', 18316: 'PROCUREMENT MANAGER', 21131: 'WAREHOUSING %', 21440: 'NOTES', 19545: 'INV SALES TAX', 19546: 'INV FREIGHT', 21130: 'INV WAREHOUSING', 18042: 'PAYMENT TERMS', 23350: 'SALE TAX' } ref_field_set = set([18720, 18717, 18314, 18042, 23350]) data = r.json()['data'] invoice = {} for field in data: if 'fieldMetaId' not in field or field['fieldMetaId'] not in mapper: continue key = mapper[field['fieldMetaId']] value = field['value'] if 'value' in field else '' if 'value' in field: if field['fieldMetaId'] in ref_field_set: value = field['identifier'] if 'identifier' in field else '' else: value = field['value'] if 'value' in field else '' else: value = '' invoice[key] = value if 'PAYMENT TERMS' not in invoice or invoice['PAYMENT TERMS'] == '': invoice['PAYMENT TERMS'] = 'NET 30' invoice['tv_id'] = invoice_id return invoice
def getBillDetailsById(bill_id, view_id): #if not view_id: view_id = '4205' request_url = request_base_url.format(bill_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } response = requests.get(url=request_url, params=params) if response.status_code != 200: # log pass response_data_dict = response.json()['data'] field_mappings = getFieldMappings() ref_field_mappings = getReferencedFieldMappings() return_dict = {} for field in response_data_dict: if field.get('fieldMetaId') not in field_mappings.keys() and \ field.get('fieldMetaId') not in ref_field_mappings.keys(): continue key_name = field_mappings.get(field.get('fieldMetaId')) if not key_name: key_name = ref_field_mappings.get(field.get('fieldMetaId')) value = field.get('value', '') if field.get('fieldMetaId') in ref_field_mappings.keys(): value = field.get('identifier', '') return_dict[key_name] = value if return_dict.get('BILL PDF LINK') and return_dict.get('BILL PDF'): downloadAndSavePdf(return_dict.get('BILL PDF LINK'), return_dict.get('BILL PDF')) return_dict['bill_id'] = bill_id return return_dict
def getDesignFeeDetailsById(df_id, view_id): #if not view_id: view_id = '4046' request_url = request_base_url.format(df_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } response = requests.get( url=request_url, params=params) if response.status_code != 200: logger.error("getDesignFeeDetailsById | {0} | response status is {1}".format(df_id, response.status_code)) pass response_data_dict = response.json()['data'] field_mappings = getFieldMappings() ref_field_mappings = getReferencedFieldMappings() return_dict = {} for field in response_data_dict: if field.get('fieldMetaId') not in field_mappings.keys() and \ field.get('fieldMetaId') not in ref_field_mappings.keys(): continue key_name = field_mappings.get(field.get('fieldMetaId')) if not key_name: key_name = ref_field_mappings.get(field.get('fieldMetaId')) value = field.get('value', '') if field.get('fieldMetaId') in ref_field_mappings.keys(): value = field.get('identifier', '') return_dict[key_name] = value return_dict['df_id'] = df_id return return_dict
def getManualInvoiceDetailsById(mi_id): view_id = '5374' request_url = request_base_url.format(mi_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } response = requests.get(url=request_url, params=params) if response.status_code != 200: logger.error( "getManualInvoiceDetailsById | {0} | response status is {1}". format(mi_id, response.status_code)) return response_data_dict = response.json()['data'] field_mappings = getFieldMappings() ref_field_mappings = getReferencedFieldMappings() return_dict = {} for field in response_data_dict: if field.get('fieldMetaId') not in field_mappings.keys() and \ field.get('fieldMetaId') not in ref_field_mappings.keys(): continue key_name = field_mappings.get(field.get('fieldMetaId')) if not key_name: key_name = ref_field_mappings.get(field.get('fieldMetaId')) value = field.get('value', '') if field.get('fieldMetaId') in ref_field_mappings.keys(): value = field.get('identifier', '') return_dict[key_name] = value return_dict['tv_id'] = mi_id # return_dict['CONTRACTOR'] = "Diego Rodriguez" # Final Contractor name to be decided return return_dict
def updateDesignFeeStatus(df_id, status, view_id): #if not view_id: view_id = '4046' url = 'https://go.trackvia.com/accounts/21782/apps/49/tables/743/records/{0}?formId=6544&viewId={1}'\ .format(df_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } body = { 'id': df_id, 'data': [ { 'fieldMetaId': '24694', 'id': '304680', 'type': 'dropDown', 'value': status } ] } resp = requests.put(url=url, params=params, json=body) if resp.status_code != 200: logger.error('payment status not updated for design fee, {0} | {1} | {2}'.format( df_id, resp.json(), resp.status_code))
def updateTvBillStatus(bill_id, status, view_id): #if not view_id: view_id = '4205' url = 'https://go.trackvia.com/accounts/21782/apps/49/tables/786/records/{0}?formId=6060&viewId={1}'\ .format(bill_id, view_id) params = { 'access_token': get_access_token(), 'user_key': settings.TRACKVIA_USER_KEY } body = { 'id': bill_id, 'data': [{ 'fieldMetaId': 21740, 'id': 286073, 'type': 'dropDown', 'value': status }] } resp = requests.put(url=url, params=params, json=body) if resp.status_code != 200: logger.error( 'payment status not updated for bill, {0} | {1} | {2}'.format( bill_id, resp.json(), resp.status_code))