Пример #1
0
def group_products_by_customer_and_invoice(products_string):
    products_list = transform_products_to_list(products_string)

    products = {}

    for product in products_list:
        customer_id = product[-2]
        invoice_id = product[0]

        products.setdefault(customer_id, {})
        products[customer_id].setdefault(invoice_id, [])
        products[customer_id][invoice_id].append(product)

    return products


# products = group_products_by_customer_and_invoice(products_string)
# pprint(products)
# print("#########################################")
# print("#########################################")
# print("#########################################")

# customer = products['12583']
# # print(customer)
# invoice = customer['536370']
# # print(invoice)
# row_item = invoice[1]
# # print(row_item)
# description = row_item[2]
# # print(description)

# result = products['12583']['536370'][1][2]
# print(result)
def group_products_by_customer(products_string):
    list_items = transform_products_to_list(products_string)
    step_2_dict = {}
    for item in list_items:
        step_2_dict.setdefault(item[-2], [])
        step_2_dict[item[-2]].append(item)
    return step_2_dict
Пример #3
0
def group_products_by_customer(products_string):
    products = transform_products_to_list(products_string)
    prod_by_customer = {}
    for product in products:
        customer_id = product[-2]
        prod_by_customer.setdefault(customer_id, [])
        prod_by_customer[customer_id].append(product)
    return prod_by_customer
def group_products_by_customer(products_string):
    products_list = transform_products_to_list(products_string)
    customers = {}
    for product in products_list:
        customer_id = product[-2]
        customers.setdefault(customer_id, [])
        customers[customer_id].append(product)
    return customers
Пример #5
0
def group_products_by_customer(products_string):
    products_list = transform_products_to_list(products_string)
    result = {}

    for item in products_list:
        cust_id = item[-2]
        result.setdefault(cust_id, [])
        result[cust_id].append(item)
    return result
def calculate_total_per_invoices(products_string):
    customer_list = transform_products_to_list(products_string)
    #pprint(customer_list)
    return_dict = {}
    for item in customer_list:
        return_dict.setdefault(item[-2], {})
        return_dict[item[-2]].setdefault(item[0], 0)
        return_dict[item[-2]][item[0]] += round(
            int(item[3]) * float(item[-3]), 2)
    return return_dict
Пример #7
0
def test_step_1_products_string_to_list():
    products_list = transform_products_to_list(products_string)
    assert type(products_list) == list
    assert len(products_list) == 50

    product_1 = products_list[0]
    assert product_1 == [
        '536365', '85123A', 'WHITE HANGING HEART T-LIGHT HOLDER', '6',
        '12/1/10 08:26', '2.55', '17850', 'United Kingdom'
    ]
def group_products_by_customer_and_invoice(products_string):
    products_list = transform_products_to_list(products_string)
    customers = {}
    for product in products_list:
        invoice_id = product[0]
        customer_id = product[-2]
        customers.setdefault(customer_id, {})
        customers[customer_id].setdefault(invoice_id, [])
        customers[customer_id][invoice_id].append(product)
    return customers
def group_products_by_customer_and_invoice(products_string):
    products = transform_products_to_list(products_string)
    prod_grouped = {}
    for product in products:
        customer_id = product[-2]
        invoice_id = product[0]
        prod_grouped.setdefault(customer_id, {})
        prod_grouped[customer_id].setdefault(invoice_id, [])
        prod_grouped[customer_id][invoice_id].append(product)
    return prod_grouped
Пример #10
0
def group_products_by_customer_and_invoice(products_string):
    products_list = transform_products_to_list(products_string)
    result = {}

    for item in products_list:
        cust_id = item[-2]
        invoice_num = item[0]
        result.setdefault(cust_id, {})
        result[cust_id].setdefault(invoice_num, [])
        result[cust_id][invoice_num].append(item)
    return result
Пример #11
0
def calculate_total_per_invoices(products_string):
    products_list = transform_products_to_list(products_string)

    products = {}
    for product in products_list:
        customer_id = product[-2]
        invoice_id = product[0]
        products.setdefault(customer_id, {})
        products[customer_id].setdefault(invoice_id, 0)
        products[customer_id][invoice_id] += round(
            (float(product[-3]) * float(product[-5])), 2)
    return products
Пример #12
0
def calculate_total_per_invoices(products_string):
    products = transform_products_to_list(products_string)
    invoice_totals = {}
    for product in products:
        customer_id = product[-2]
        invoice_id = product[0]
        quantity = int(product[3])
        price = float(product[-3])
        total = round(quantity * price, 3)
        invoice_totals.setdefault(customer_id, {})
        invoice_totals[customer_id].setdefault(invoice_id, 0)
        invoice_totals[customer_id][invoice_id] += total
    return invoice_totals
Пример #13
0
def calculate_total_per_invoices(products_string):
    products_list = transform_products_to_list(products_string)
    product = {}
    for products in products_list:
        invoice = products[0]
        customer_id = products[-2]
        total = float(products[5]) * float(products[3])

        product.setdefault(customer_id, {})
        product[customer_id].setdefault(invoice, 0)
        product[customer_id][invoice] += round(total, 2)

    return product
def calculate_total_per_invoices(products_string):
    products_list = transform_products_to_list(products_string)
    results = {}

    for product in products_list:
        customer_id = product[-2]
        invoice_id = product[0]
        price = float(product[-3])
        quantity = int(product[3])
        total = round(price * quantity, 3)

        results.setdefault(customer_id, {})
        results[customer_id].setdefault(invoice_id, 0)
        results[customer_id][invoice_id] += total

    return results
Пример #15
0
def calculate_total_per_invoices(products_string):
    products_list = transform_products_to_list(products_string)
    customers = {}
    
    for product in products_list:
        invoice = product[0]
        customer_id = product[-2]
        quantity = int(product[3])
        unit_price = float(product[-3])
        total = round(quantity*unit_price,2)
        
        customers.setdefault(customer_id, {})
        customers[customer_id].setdefault(invoice, 0)
        customers[customer_id][invoice] += total
        
    return customers
def calculate_total_per_invoices(products_string):
    products_list = transform_products_to_list(products_string)

    customers = {}

    for product in products_list:
        invoice_id = product[0]
        customer_id = product[-2]
        price = float(product[-3])
        amount = int(product[3])

        customers.setdefault(customer_id, {})
        customers[customer_id].setdefault(invoice_id, 0)
        customers[customer_id][invoice_id] += round(price * amount, 2)

    print(customers)
    return customers
Пример #17
0
def calculate_total_per_invoices(products_string):
    products_list = transform_products_to_list(products_string)

    results = {}

    for product in products_list:
        customer_id = product[-2]
        invoice_id = product[0]
        quantity = float(product[3])
        cost = float(product[-3])  #because they are strings

        line_price = round(quantity * cost, 3)

        results.setdefault(customer_id, {})
        results[customer_id].setdefault(invoice_id, 0)

        results[customer_id][invoice_id] += line_price

    return results
def calculate_total_per_invoices(products_string):
    products_list = transform_products_to_list(products_string)
    
    products = {}
    
    # Loop through list
    for product in products_list:
        # 1. Group customer
        customer_id = product[-2]
        # Group by customer
        products.setdefault(customer_id, {})
        
        # 2. Group a invoice
        invoice_id = product[0] # Pull invoice
        unit = int(product[3]) # Pull the unit
        unitprice = float(product[-3]) # Pull unitprice
        total = unit * unitprice # Get total of unit and unitprice
        # Group by invoice
        products[customer_id].setdefault(invoice_id, 0)
        # Add each total to the invoice group
        products[customer_id][invoice_id] += round(total, 2)
    return products
    
    
    # a_dict = {}

    # # For loop to add keys to a_dict
    # for product in products_list:
    #     invoice_id = product[0]
        
        
    #     unit = int(product[3])
    #     unitprice = float(product[-3])
    #     total = unit * unitprice
    #     a_dict.setdefault(invoice_id, 0)
    #     a_dict[invoice_id] += round(total,2)
    # print(a_dict)
    #     # if type(value) != int:
    #     #     a_dict[key] = None
    #     # else:
    #     #     a_dict[key] += value

##### Reference from Quiz 2
Пример #19
0
def group_products_by_customer_and_invoice(products_string):
    products_list = transform_products_to_list(products_string)
    # Create a dictionary
    products = {}

    for product in products_list:
        # Pull out invoice
        invoice_id = product[0]
        # Pull out customer_id
        customer_id = product[-2]

        # Groups Customer_id and creates a new dictionary
        products.setdefault(customer_id, {})

        # Within new dictionary, groups the invoice and creates a list
        products[customer_id].setdefault(invoice_id, [])

        # Add each invoice to list
        products[customer_id][invoice_id].append(product)

    return products
def group_products_by_customer(products_string):
    # Create a dictionary of different users
    products_list = transform_products_to_list(products_string)
    customers = {}

    for product in products_list:
        # From the sample data, customer id is 7th or -2 of list
        # When looping through the products_string, set var to the customer id
        customer_id = product[-2]
        # Set the customers dictionary default if not in dictionary
        customers.setdefault(
            customer_id,
            [])  # Create an emptry list; test says to return a list
        # Similar code
        # if customer_id not in customers:
        # customers[customer_id] = []
        # customers[customer_id].append(product)

        # Append the entire product list to customer by key
        customers[customer_id].append(product)

    # Create a key for each user
    # Create a list of each product
    return customers