function sendForBilling() { $response = new Response(); try { $projectId = $this->input->post("project-id"); $amount = $this->input->post("project-bill-amount"); $billDoc = $this->input->post("bill-doc"); $project = $this->findById("Project", $projectId); if ($project == null) { throw new RuntimeException("Invalid Project..!"); } $project->setStatus(Project::PROJECT_BILL); $project->getWorkOrder()->setStatus(Workorder::STATUS_COMPLETED); $project->getWorkOrder()->setApprovedBy($this->getLoggedInUser()); $bill = new Bill(); $bill->setAmount($amount); $bill->setProject($project); $bill->setCreated(new DateTime()); $bill->setStatus(Bill::STATUS_PENDING); if ($billDoc != null && $billDoc != "") { foreach ($billDoc as $file) { $doc = new Document(); $doc->setName($file); $doc->setCreated(new DateTime()); $bill->getBillDoc()->add($doc); } } $this->save($bill); $response->setData(Project::PROJECT_BILL); } catch (Exception $e) { $response->setStatus(false); $response->setErrorMessage($e->getMessage()); } $this->output->set_content_type('application/json')->set_output(json_encode($response)); }