Project Expense Generator

class moco_wrapper.util.generator.ProjectExpenseGenerator
generate(expense_date: datetime.date, title: str, quantity: float, unit: str, unit_price: float, unit_cost: float, description: str = None, billable: bool = True, budget_relevant: bool = False) → dict

Create an item that can be used for creating bulk project expenses.

Parameters:
  • project_id (int) – Id of the project to create the expense for
  • expense_date (datetime.date, str) – Date of the expense
  • title (str) – Exense title
  • quantity (float) – Quantity (how much of unit was bought?)
  • unit (str) – Name of the unit (What was bought for the customer/project?)
  • unit_price (float) – Price of the unit that will be billed to the customer/project
  • unit_cost (float) – Cost that we had to pay
  • description (str) – Descripion of the expens
  • billable (bool) – If this expense billable (default True)
  • budget_relevant (bool) – If this expense is budget relevant (default False)
Returns:

The created expense object

Example usage:

from moco_wrapper.util.generator import ProjectExpenseGenerator
from moco_wrapper import Moco
from datetime import date

m = Moco()
gen = ProjectExpenseGenerator()

items = [
    gen.generate(
        '2019-10-10', 
        "the title", 
        5, 
        "the unit", 
        20, 
        10
    ),
    gen.generate(
        '2019-10-10', 
        "different title", 
        5, 
        "another unit", 
        20, 
        10,
        billable=False, 
        description="the desc", 
        budget_relevant=True
    ),
    gen.generate(
        date(2019, 10, 10), 
        "another title", 
        2, 
        "the unit", 
        20, 
        10
    ),
]
project_id = 2

created_expenses = m.ProjectExpense.create_bulk(project_id,items)