示例#1
0
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))
示例#2
0
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))
示例#5
0
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
示例#6
0
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
示例#7
0
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
示例#9
0
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))
示例#10
0
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))