/** * Returns uploaded file to plugin's root folder * * @since 1.0 * @uses \Dropbox\Client * @see https://www.dropbox.com/developers/core/start/php#listing * @return null|array */ public function getUploadedFiles() { // never executed, but dont remove, ok? if ($this->isAuthenticated() === false) { return null; } // try { $client = new Dropbox\Client($this->getToken(), $this->applicationName); $response = $client->getMetadataWithChildren(rtrim($this->getDropboxPath(), '/')); // Formatting uploading data files for use their on backups page $files = array(); foreach ($response['contents'] as $file) { $pathInfo = pathinfo($file['path']); $backupInfo = $this->getBackupInfoByFilename($pathInfo['basename']); if (!empty($backupInfo['ext']) && $backupInfo['ext'] == 'sql') { $files[$backupInfo['id']]['dropbox']['sql'] = $file; $files[$backupInfo['id']]['dropbox']['sql']['backupInfo'] = $backupInfo; $files[$backupInfo['id']]['dropbox']['sql']['backupInfo'] = dispatcherBup::applyFilters('addInfoIfEncryptedDb', $files[$backupInfo['id']]['dropbox']['sql']['backupInfo']); } elseif (!empty($backupInfo['ext']) && $backupInfo['ext'] == 'zip') { $files[$backupInfo['id']]['dropbox']['zip'] = $file; $files[$backupInfo['id']]['dropbox']['zip']['backupInfo'] = $backupInfo; } } unset($response['contents']); $response['contents'] = $files; return $response; // } catch (Exception $e) { //echo sprintf('Dropbox client error: %s. Try to refresh page', $e->getMessage()); //} }
<?php Yii::app()->clientScript->registerCssFile(Yii::app()->cms->blocs['clouddocument']->assetsUrl . '/css/clouddocument.css'); $client = new Dropbox\Client(Yii::app()->params['dropboxToken'], 'dropbox-client'); /* $pathError = Dropbox\Path::findError($bloc->path); if ($pathError !== null) { throw new CHttpException(500, "Invalid <dropbox-path>: $pathError\n"); } */ // Getting metadata from db if not changed, otherwise getting from request and updating db. if ($bloc->previous_folder_hash == '') { $metadata = $client->getMetadataWithChildren($bloc->path); if ($metadata === null) { //throw new CHttpException(500, "No file or folder at that path.\n"); } $bloc->previous_folder_hash = $metadata['hash']; $bloc->previous_folder = serialize($metadata); $bloc->save(false); } else { $metadata = $client->getMetadataWithChildrenIfChanged($bloc->path, $bloc->previous_folder_hash); if ($metadata[0] == true) { if ($metadata[1] === null) { //throw new CHttpException(500, "No file or folder at that path.\n"); } $metadata = $metadata[1]; $bloc->previous_folder_hash = $metadata['hash']; $bloc->previous_folder = serialize($metadata); $bloc->save(false); } else { $metadata = unserialize($bloc->previous_folder);
protected function generate_admin_salaries() { $this->load->model('project_model', 'project'); $this->load->model('user_model', 'user'); $this->load->model('event_model', 'event'); $this->load->model('event_user_model', 'event_user'); $this->load->model('deliverable_model', 'deliverable'); $this->load->model('vendor_price_model', 'vendor_price'); $this->load->model('cashflow_type_model', 'cashflow_type'); $this->load->model('bank_account_model', 'bank_account'); $this->load->model('cashflow_model', 'cashflow'); $fahad = $this->user->get_by('name', 'Fahad Raza'); $taimur = $this->user->get_by('name', 'Taimur Riaz Khan'); $admins = array($fahad, $taimur); $admin_salary_id = $this->cashflow_type->get_by('name', 'Admin Salary')->id; $bank_account_id = $this->bank_account->get_by('name', 'Chaar Bhai')->id; $closed_projects = $this->project->get_many_by('closed_on BETWEEN "' . date('Y-m-d', strtotime("first day of last month")) . '" AND "' . date('Y-m-d', strtotime("last day of last month")) . '"'); foreach ($closed_projects as $closed_project) { $inflows = 0; $outflows = 0; $project_cashflows = $this->cashflow->get_project_cashflows($closed_project->id); $has_daily_salary = FALSE; $has_albums = FALSE; foreach ($project_cashflows as $project_cashflow) { if ($project_cashflow->class === 'Inflow') { $inflows += $project_cashflow->amount; } else { $outflows += $project_cashflow->amount; if ($project_cashflow->cashflow_type === 'Daily Salary') { $has_daily_salary = TRUE; } else { if ($project_cashflow->cashflow_type === 'Albums') { $has_albums = TRUE; } } } } if (!$has_daily_salary) { $daily_salary_id = $this->cashflow_type->get_by('name', 'Daily Salary')->id; $project_events = $this->event->get_many_by('project_id', $closed_project->id); $daily_salary_cashflows = array(); foreach ($project_events as $project_event) { $resources = $this->event_user->get_by_event_id($project_event->id); foreach ($resources as $resource) { if ($resource->role === 'Daily Worker') { if ($resource->daily_wage > 0) { $resource_class = ''; if ($resource->type === 'Team Lead' || $resource->type === 'Photographer') { $resource_class = 'Photo'; } else { if ($resource->type === 'Video Lead' || $resource->type === 'Videographer') { $resource_class = 'Video'; } } $amount = $resource->daily_wage; $event_deliverables = $this->deliverable->get_by_event_id($project_event->id); foreach ($event_deliverables as $event_deliverable) { if ($event_deliverable->class === $resource_class && $event_deliverable->name === 'Photoshoot') { $amount += $resource->photoshoot; } else { if ($event_deliverable->class === $resource_class && $event_deliverable->name === 'Sehrabandi') { $amount += $resource->sehrabandi; } else { if ($event_deliverable->class === $resource_class && $event_deliverable->name === 'Post Rukhsati') { $amount += $resource->post_rukhsati; } } } } $cashflow_exists = FALSE; foreach ($daily_salary_cashflows as &$daily_salary_cashflow) { if ($daily_salary_cashflow['date'] === date('Y-m-t', strtotime($project_event->date)) && $daily_salary_cashflow['project_id'] === $closed_project->id && $daily_salary_cashflow['user_id'] === $resource->id) { $daily_salary_cashflow['amount'] += $amount; $cashflow_exists = TRUE; break; } } if (!$cashflow_exists) { $daily_salary_cashflows[] = array('date' => date('Y-m-t', strtotime($project_event->date)), 'cashflow_type_id' => $daily_salary_id, 'project_id' => $closed_project->id, 'user_id' => $resource->id, 'amount' => $amount, 'bank_account_id' => $bank_account_id, 'log' => 'System created on ' . date('jS M, Y \\a\\t g:i a') . '.'); } } } } } foreach ($daily_salary_cashflows as &$daily_salary_cashflow) { $outflows += $daily_salary_cashflow['amount']; $this->cashflow->insert($daily_salary_cashflow); } } if (!$has_albums) { $dbxClient = new \Dropbox\Client(getenv('DROPBOX_ACCESS_TOKEN'), "chaar-bhai/1.0"); $albums_id = $this->cashflow_type->get_by('name', 'Albums')->id; $project_events = $this->event->get_events_for_admin_salary($closed_project->id); $album_cashflows = array(); foreach ($project_events as $project_event) { $event_deliverables = $this->deliverable->get_by_event_id($project_event->id); $rank = ''; $events = $this->event->order_by('date', 'ASC')->get_many_by('project_id = "' . $project_event->project_id . '" AND event_type_id = "' . $project_event->event_type_id . '"'); if (count($events) > 1) { $rank = 1; foreach ($events as $event) { if ($event->id === $project_event->id) { break; } $rank++; } $rank = ' ' . $rank; } $layout_designing_price = 1500; if (!empty($project_event->event_status)) { if ($project_event->event_status === 'Album Ready') { $amount = 0; $album_deliverable = ''; foreach ($event_deliverables as $event_deliverable) { if (strpos($event_deliverable->name, 'Album') !== FALSE && strpos($event_deliverable->name, 'Shoot') === FALSE && strpos($event_deliverable->name, 'Page') === FALSE) { $album_deliverable = $event_deliverable; break; } } if (!empty($album_deliverable)) { $album = $this->vendor_price->get_by(array('vendor_id' => $project_event->event_vendor_id, 'deliverable_type_id' => $album_deliverable->deliverable_type_id)); if (!empty($album)) { $event_folder = $project_event->event_type . $rank; $count_pages = count($dbxClient->getMetadataWithChildren('/' . $project_event->client_username . '/' . $project_event->project_name . '/' . $event_folder . '/layouts')['contents']); $amount = $layout_designing_price + $album->page_price * $count_pages * $album_deliverable->qty; } if ($amount > 0) { $cashflow_exists = FALSE; foreach ($album_cashflows as &$album_cashflow) { if ($album_cashflow['date'] === date('Y-m-t', strtotime($project_event->event_album_ready_date)) && $album_cashflow['project_id'] === $closed_project->id && $album_cashflow['user_id'] === $project_event->event_vendor_id) { $album_cashflow['amount'] += $amount; $cashflow_exists = TRUE; break; } } if (!$cashflow_exists) { $album_cashflows[] = array('date' => date('Y-m-t', strtotime($project_event->event_album_ready_date)), 'cashflow_type_id' => $albums_id, 'project_id' => $closed_project->id, 'user_id' => $project_event->event_vendor_id, 'amount' => $amount, 'bank_account_id' => $bank_account_id, 'log' => 'System created on ' . date('jS M, Y \\a\\t g:i a') . '.'); } } } } } if (!empty($project_event->photoshoot_status)) { if ($project_event->photoshoot_status === 'Album Ready') { $amount = 0; $album_deliverable = ''; foreach ($event_deliverables as $event_deliverable) { if (strpos($event_deliverable->name, 'Album') !== FALSE && strpos($event_deliverable->name, 'Shoot') !== FALSE) { $album_deliverable = $event_deliverable; break; } } if (!empty($album_deliverable)) { $album = $this->vendor_price->get_by(array('vendor_id' => $project_event->photoshoot_vendor_id, 'deliverable_type_id' => $album_deliverable->deliverable_type_id)); if (!empty($album)) { $event_folder = $project_event->event_type . $rank . ' Photoshoot'; $count_pages = count($dbxClient->getMetadataWithChildren('/' . $project_event->client_username . '/' . $project_event->project_name . '/' . $event_folder . '/layouts')['contents']); $amount = $layout_designing_price + $album->page_price * $count_pages * $album_deliverable->qty; } if ($amount > 0) { $cashflow_exists = FALSE; foreach ($album_cashflows as &$album_cashflow) { if ($album_cashflow['date'] === date('Y-m-t', strtotime($project_event->photoshoot_album_ready_date)) && $album_cashflow['project_id'] === $closed_project->id && $album_cashflow['user_id'] === $project_event->photoshoot_vendor_id) { $album_cashflow['amount'] += $amount; $cashflow_exists = TRUE; break; } } if (!$cashflow_exists) { $album_cashflows[] = array('date' => date('Y-m-t', strtotime($project_event->photoshoot_album_ready_date)), 'cashflow_type_id' => $albums_id, 'project_id' => $closed_project->id, 'user_id' => $project_event->photoshoot_vendor_id, 'amount' => $amount, 'bank_account_id' => $bank_account_id, 'log' => 'System created on ' . date('jS M, Y \\a\\t g:i a') . '.'); } } } } } } foreach ($album_cashflows as &$album_cashflow) { $outflows += $album_cashflow['amount']; $this->cashflow->insert($album_cashflow); } } foreach ($admins as $admin) { $admin_salary_cashflow = array('date' => date('Y-m-d', strtotime("last day of last month")), 'cashflow_type_id' => $admin_salary_id, 'user_id' => $admin->id, 'project_id' => $closed_project->id, 'amount' => round(0.45 * ($inflows - $outflows)), 'bank_account_id' => $bank_account_id, 'log' => 'System created on ' . date('jS M, Y \\a\\t g:i a') . '.'); $where = 'cashflow_type_id = "' . $admin_salary_id . '"'; $where .= ' AND project_id = "' . $admin_salary_cashflow['project_id'] . '"'; $where .= ' AND user_id = "' . $admin_salary_cashflow['user_id'] . '"'; $where .= ' AND date BETWEEN "' . date('Y-m-d', strtotime("first day of last month")) . '" AND "' . date('Y-m-d', strtotime("last day of last month")) . '"'; $same_cashflows = $this->cashflow->get_many_by($where); if (empty($same_cashflows)) { $this->cashflow->insert($admin_salary_cashflow); } } } }