/** * Add project * * @todo finish responsible id's * @param Model\Project $project * @param Model\Milestone $milestone * @return boolean * @throws Exception\ArgumentException */ public function addProject(Model\Project $project, Model\Milestone $milestone) { if ($project->getId() > 0) { throw new Exception\ArgumentException('An teamleader ID is already set in project, add is not allowed.', 1440437772); } if ($milestone->getId() > 0) { throw new Exception\ArgumentException('An teamleader ID is already set in milestone, add is not allowed.', 1440437773); } $action = 'addProject.php'; $parameters = ['project_name' => $project->getTitle(), 'project_budget' => $project->getBudgetIndication(), 'project_start_date' => $project->getStartDate()->format('d/m/Y'), 'milestone_title' => $milestone->getTitle(), 'milestone_budget' => $milestone->getBudget(), 'milestone_invoiceable' => $milestone->getInvoiceable(), 'milestone_due_date' => $milestone->getDueDate()->format('d/m/Y'), 'milestone_billing_type' => $milestone->getBillingType()]; $client = $project->getClient(); if ($client instanceof Model\Contact) { $parameters['contact_or_company'] = 'contact'; $parameters['contact_or_company_id'] = $client->getId(); } elseif ($client instanceof Model\Company) { $parameters['contact_or_company'] = 'company'; $parameters['contact_or_company_id'] = $client->getId(); } return (bool) $this->doRequest($action, $parameters); }