/** * Render client uploaded files and file upload form * @param web_request $request */ public function executeLoadfile($request) { $client_id = $request->getParameter('id'); $client_profile = ProfilePeer::retrieveByPK($client_id); $this->profile_details = $client_profile; $sf_user = $this->getUser(); $sf_user_id = $sf_user->getGuardUser()->getId(); $sf_guard_user = $sf_user->getGuardUser(); $module = pmProjectObjectsPeer::RESOURCES; $filetype = pmProjectObjectsPeer::CLIENTFILES; $client_group = sfConfig::get('app_user_group_user_client'); if (!($sf_user->hasHeadOfficeAdminAccess() || $sf_user->hasHeadOfficeStaffAccess())) { $branch_id = $sf_user->getUserBranch()->getId(); $is_branch_owner = $sf_user->isBranchOwner($sf_user_id); if ($is_branch_owner) { $branch_ids = BranchUsersPeer::getBranchOwnerBranchIDs($sf_user_id); } $branch_users = $sf_user->checkBranchUsers($is_branch_owner ? $branch_ids : $branch_id, $client_id, $client_group); if ($client_id && !$branch_users || !$client_id) { $this->redirect('dashboard/index'); } } $client_name = $client_profile->getsfGuardUserRelatedByUserId()->getUsername(); $c = new Criteria(); $c->add(CompanyUsersPeer::USER_ID, $this->getUser()->getGuardUser()->getId()); $company = CompanyUsersPeer::doSelectOne($c); $company_name = $company ? $company->getCompany()->getName() : ''; $this->clientcompany = $company_name . $client_name; $this->form = new ClientFileForm(); $client_user_id = $client_profile->getUserId(); $this->client_projects = pmProjectsPeer::getClientProjectsArrayList($client_user_id); if ($request->isMethod('post')) { $form_data = $request->getParameter('pm_project_objects'); if ($form_data['name'] == sfConfig::get('app_client_details_otheragreement')) { $form_data['name'] = $form_data['name'] . '-' . $form_data['text_field_2']; } else { $form_data['name'] = $form_data['name']; } $form_data['module'] = $module; $form_data['type'] = $filetype; //$form_data['branch_id'] = $branch_id; // no need $form_data['created_by_id'] = $sf_guard_user->getId(); $form_data['created_by_name'] = $sf_guard_user->getUsername(); $form_data['integer_field_1'] = $client_user_id; $form_data['text_field_1'] = $request->getParameter('nfn'); $tool = new myTools(); if ($form_data['project_id']) { $folder_name = $tool->folderName($form_data['project_id'], 'project'); } else { $folder_name = $tool->folderName($form_data['pj_lotno'], 'pj_lotno'); } $s3_service = new AmazonS3Service(); $s3_service->copyObject($request->getParameter('nfn'), $folder_name . '/' . $request->getParameter('nfn')); $s3_service->deleteObject($request->getParameter('nfn')); $this->form->bind($form_data, array()); if ($this->form->isValid()) { $file = $this->form->getValue('varchar_field_2'); if ($file) { $pm_project_objects = $this->form->save(); $file_name = $pm_project_objects->getName(); $file_message = sfConfig::get('mod_client_messages_msg6'); $new_message = str_replace('new text', "'{$pm_project_objects->getPjLotno()}' - '{$file_name}'", $file_message); $sf_user->setFlash('notice', $new_message); $modification_message = 'Upload Client File'; $this->saveHistory($modification_message, $client_user_id); $log = new pmActivityLogs(); $log->setModifications($pm_project_objects->getId()); $log->setAction('New File'); $log->setCreatedById($sf_guard_user->getId()); $log->setCreatedByName($sf_guard_user->getProfile()->getFullname()); $log->setComment('File: ' . $file_name); $log->save(); } $this->redirect('client/loadfile?id=' . $client_id); } $this->setTemplate('loadfile'); } }