Example #1
0
 public function deleteActivityById($activityId)
 {
     $element = new Iati_Aidstream_Element_Activity();
     $element->deleteElement($activityId);
     $modelActivityHash = new Model_ActivityHash();
     $modelActivityHash->deleteActivityHash($activityId);
 }
Example #2
0
 /**
  * Update all reporting org values in activities and organisation data if changed in settings.
  */
 public function settingsChange()
 {
     $identity = Zend_Auth::getInstance()->getIdentity();
     //Get Activities
     $activities = $this->listAll('iati_activities', 'account_id', $identity->account_id);
     $activities_id = $activities[0]['id'];
     $activityArray = $this->listAll('iati_activity', 'activities_id', $activities_id);
     //Update Each Activity Reporting Org
     $activityReportingOrg = new Model_ReportingOrg();
     $activityHashModel = new Model_ActivityHash();
     $activityModel = new Model_Activity();
     foreach ($activityArray as $key => $activity) {
         $activityReportingOrg->updateReportingOrg($activity['id']);
         $updated = $activityHashModel->updateActivityHash($activity['id']);
         if ($updated) {
             //Update each activity: last updated time
             $wepModel = new Model_Wep();
             $activityData['id'] = $activity['id'];
             $activityData['@last_updated_datetime'] = date('Y-m-d H:i:s');
             $wepModel->updateRowsToTable('iati_activity', $activityData);
         }
     }
     //Get Organisation Id
     $organisationModelObj = new Model_Organisation();
     $organisationId = $organisationModelObj->checkOrganisationPresent($identity->account_id);
     // If organisation exists
     if ($organisationId) {
         //Update Organisation Reporting Org
         $organisationReportingOrg = new Model_OrganisationDefaultElement();
         $organisationReportingOrg->updateElementData('ReportingOrg', $organisationId);
         //Update Organisation Hash
         $organisationHashModel = new Model_OrganisationHash();
         $update = $organisationHashModel->updateHash($organisationId);
         if ($update) {
             //Update organisation: last updated time
             $wepModel = new Model_Wep();
             $organisationData['id'] = $organisationId;
             $organisationData['@last_updated_datetime'] = date('Y-m-d h:i:s');
             $wepModel->updateRowsToTable('iati_organisation', $organisationData);
         }
     }
     $modelRegistryInfo = new Model_RegistryInfo();
     $registryInfo = $modelRegistryInfo->getOrgRegistryInfo($identity->account_id);
     if ($registryInfo && $registryInfo->publisher_id) {
         $pub = new Iati_WEP_Publish($identity->account_id, $registryInfo->publisher_id, $registryInfo->publishing_type);
         $pub->publish();
     }
 }
Example #3
0
 public function editElementAction()
 {
     $elementClass = $this->_getParam('className');
     $id = $this->_getParam('id');
     $activityId = $this->_getParam('activity_id');
     $parentId = $this->_getParam('parent_id');
     $isMultiple = $this->_getParam('isMultiple', 1);
     if (!$elementClass) {
         $this->_helper->FlashMessenger->addMessage(array('error' => "Could not\n                                                             fetch element."));
         $this->_redirect("/wep/dashboard");
     }
     $elementName = "Iati_Aidstream_Element_" . $elementClass;
     $element = new $elementName();
     if ($isMultiple == '0') {
         $element->setIsMultiple(false);
     }
     if ($data = $this->getRequest()->getPost()) {
         $element->setData($data[$element->getClassName()]);
         $form = $element->getForm();
         if ($form->validate()) {
             //$eleId will be null is element is deleted or in case of db error
             $eleId = $element->save($data[$element->getClassName()], $activityId);
             $activityHashModel = new Model_ActivityHash();
             $updated = $activityHashModel->updateActivityHash($activityId);
             if (!$updated) {
                 $type = 'message';
                 $message = 'No Changes Made';
             } else {
                 $oldState = Model_Activity::getActivityStatus($activityId);
                 Model_Activity::updateActivityUpdatedInfo($activityId);
                 $type = 'message';
                 $message = $element->getDisplayName() . " successfully updated.";
             }
             $this->_helper->FlashMessenger->addMessage(array($type => $message));
             // In case of update notify the user about state change.
             if ($updated && $oldState != Iati_WEP_ActivityState::STATUS_DRAFT) {
                 $this->_helper->FlashMessenger->addMessage(array('state-change-flash-message' => "The\n                                        activity state is changed back to Draft.\n                                        You must complete and verify in order\n                                        to publish the activity."));
             }
             if ($element->getClassName() == "Transaction" || $element->getClassName() == "Result") {
                 $this->_redirect("activity/list-elements?classname={$elementClass}" . "&activity_id={$activityId}");
             }
             // Check if save and view button was clicked
             if ($data['save_and_view'] || $data[$element->getClassName()]['save_and_view']) {
                 $this->_redirect('activity/view-activity-info/?activity_id=' . $activityId);
             }
             //In case the eleId is not present i.e the element is deleted redirect to add page.
             if (!$eleId) {
                 $this->_redirect("activity/add-element?className={$elementClass}" . "&activity_id={$activityId}");
             }
         } else {
             $form->populate($data);
             $this->_helper->FlashMessenger->addMessage(array('error' => "You have some problem in your\n                                        data. Please correct and save again"));
         }
     } else {
         //This can be used to edit element at any level by providing parent id.
         if ($parentId) {
             $data[$element->getClassName()] = $element->fetchData($parentId, true);
         } else {
             if ($id) {
                 $data = $element->fetchData($id);
             } else {
                 if ($element->getClassName() == 'Activity') {
                     $data = $element->fetchData($activityId);
                 } else {
                     $data[$element->getClassName()] = $element->fetchData($activityId, true);
                 }
             }
         }
         if (empty($data[$element->getClassName()])) {
             $this->_redirect("/activity/add-element?className={$elementClass}" . "&activity_id={$activityId}");
         }
         $element->setData($data[$element->getClassName()]);
         $form = $element->getForm();
     }
     /* @todo this part of code should be moved to base form or base element */
     if (Iati_Aidstream_ElementSettings::isHandledIndividually($element->getClassName())) {
         $form->addElement('submit', 'save', array('class' => 'form-submit', 'label' => 'Update ' . $element->getDisplayName()));
     } else {
         $form->addSubmitButton('Save');
     }
     $this->view->form = $form;
     $this->view->activityInfo = Model_Activity::getActivityInfo($activityId);
     $this->view->elementClass = $element->getClassName();
     $this->view->displayName = $element->getDisplayName();
     $this->view->blockManager()->enable('partial/activitymenu.phtml');
     $this->view->blockManager()->disable('partial/primarymenu.phtml');
     $this->view->blockManager()->disable('partial/add-activity-menu.phtml');
     $this->view->blockManager()->disable('partial/usermgmtmenu.phtml');
     $this->view->blockManager()->disable('partial/published-list.phtml');
     $this->view->blockManager()->disable('partial/organisation-data.phtml');
     $this->view->blockManager()->disable('partial/download-my-data.phtml');
     $this->view->blockManager()->disable('partial/uploaded-docs.phtml');
 }
Example #4
0
 public function uploadTransactionAction()
 {
     $activityId = $this->_getParam('activity_id');
     $form = new Form_Wep_UploadTransaction();
     if ($data = $this->getRequest()->getPost()) {
         if ($form->isValid($data)) {
             $uploadDir = Zend_Registry::get('config')->public_folder . "/files/csv/uploads";
             $upload = new Zend_File_Transfer_Adapter_Http();
             $upload->setDestination($uploadDir);
             $source = $upload->getFileName();
             try {
                 $upload->receive();
                 $csvHandler = new Model_CsvUpload();
                 $csvHandler->setInputFile($source);
                 $csvHandler->readCsv();
                 $headerCount = $csvHandler->countHeader();
                 if ($headerCount == 34) {
                     $count = $csvHandler->uploadDetailDataToTransaction($activityId);
                 } elseif ($headerCount == 11) {
                     $count = $csvHandler->uploadSimpleDataToTransaction($activityId);
                 }
                 if (!$count) {
                     $messanger = $this->_helper->FlashMessenger;
                     $messanger->addMessage(array('trans-error' => 'You have
                                                      following errors. Please correct the errors.'));
                     if ($csvHandler->getErrors()) {
                         foreach ($csvHandler->getErrors() as $tranCount => $error) {
                             $tranNo = $tranCount + 1;
                             if (!empty($error)) {
                                 $messanger->addMessage(array('trans-error' => "<div class='tran-no'>\n                                                      Transaction no: {$tranNo}</div>"));
                                 foreach ($error as $errormessage) {
                                     $messanger->addMessage(array('trans-error' => " # " . $errormessage['message']));
                                 }
                             }
                         }
                     } else {
                         $messanger->addMessage(array('trans-error' => "<div class='tran-no'>\n                                                    Something went wrong. Please check your csv file.</div>"));
                     }
                 } else {
                     $activityHashModel = new Model_ActivityHash();
                     $updated = $activityHashModel->updateActivityHash($activityId);
                     if (!$updated) {
                         // Update hash and status
                         $type = 'message';
                         $message = 'No Changes Made';
                     } else {
                         $oldState = Model_Activity::getActivityStatus($activityId);
                         Model_Activity::updateActivityUpdatedInfo($activityId);
                     }
                     if ($updated && $oldState != Iati_WEP_ActivityState::STATUS_DRAFT) {
                         // In case of update notify the user about state change.
                         $this->_helper->FlashMessenger->addMessage(array('state-change-flash-message' => "The\n                                                    activity state is changed back to Draft.\n                                                    You must complete and verify in order\n                                                    to publish the activity."));
                     }
                     $this->_helper->FlashMessenger->addMessage(array('message' => "{$count['add']} transaction(s) added. {$count['update']} transaction(s) updated."));
                     $this->_redirect("/activity/list-elements/?activity_id=" . $activityId . "&classname=Activity_Transaction");
                 }
             } catch (Zend_File_Transfer_Exception $e) {
                 $e->getMessage();
             }
         } else {
             $form->populate($data);
         }
     }
     $this->view->form = $form;
     $this->view->activityId = $activityId;
     $this->view->blockManager()->enable('partial/override-activity.phtml');
     $this->view->blockManager()->enable('partial/activitymenu.phtml');
     $this->view->blockManager()->disable('partial/primarymenu.phtml');
     $this->view->blockManager()->disable('partial/add-activity-menu.phtml');
     $this->view->blockManager()->disable('partial/usermgmtmenu.phtml');
     $this->view->blockManager()->disable('partial/published-list.phtml');
     $this->view->blockManager()->disable('partial/organisation-data.phtml');
     $this->view->blockManager()->disable('partial/uploaded-docs.phtml');
     $this->view->blockManager()->disable('partial/download-my-data.phtml');
 }