/var/www/vhosts/ihelp.ro/httpdocs/src/Controller/Admin
Edit: /var/www/vhosts/ihelp.ro/httpdocs/src/Controller/Admin/CausesController.php (8759B)
paginate = [
'limit' => ADMIN_PAGE_LIMIT,
'contain' => ['Users', 'Users.Profiles'],
'conditions' => $conditions,
'sortableFields' => ['Causes.id', 'Causes.user_id', 'Causes.name', 'Causes.donation_sum', 'Causes.donation_amount', 'Causes.date_start', 'Causes.date_end', 'Causes.order_count', 'Causes.product_count', 'Causes.is_active', 'Causes.created']
];
$causes = $this->paginate($this->Causes);
$this->set(compact('causes'));
}
/**
* View Products method
*/
public function view($id = null)
{
if (!empty($id) && is_numeric($id)) {
$this->paginate = [
'limit' => ADMIN_PAGE_LIMIT,
'contain' => ['Users', 'Users.Profiles'],
'sortableFields' => ['Products.name', 'Profiles.first_name', 'Products.price_min', 'Products.price', 'Products.stock', 'Products.is_active']
];
$this->loadModel('Products');
$products = $this->paginate($this->Products->find()
->contain(['Users', 'UserAddresses'])
->where(['Products.cause_id' => $id]));
} else {
$this->Flash->error(__('Oops. Please, try again.'));
return $this->redirect(['prefix' => 'Admin', 'controller' => 'Causes', 'action' => 'index']);
}
$causeId = $id;
$this->set(compact('products', 'causeId'));
}
/**
* View Products method
*/
public function viewDirectDonation($id = null, $return = null)
{
$conditions = [];
/* Start Filters */
$filter = new FilterForm();
$filter->date_from = $this->request->getQuery('date_from') ? $this->request->getQuery('date_from') : date('Y-m-d', strtotime("-30 day"));
if (!empty($filter->date_from)) {
$conditions['AND'][] = ["Donations.created >=" => date('Y-m-d', strtotime($filter->date_from))];
}
$filter->date_until = $this->request->getQuery('date_until') ? $this->request->getQuery('date_until') : date('Y-m-d');
if (!empty($filter->date_until)) {
$conditions['AND'][] = ["Donations.created <" => date('Y-m-d', strtotime($filter->date_until . " +1day"))];
}
/* End Filters */
$contain = ['Users', 'Causes', 'Transactions'];
$conditions[] = ['Donations.cause_id' => $id];
$query = $this->fetchTable('Donations')->find()->contain($contain)->where($conditions);
if ($return) { # for export
return $query;
}
$donations = $this->paginate($query);
$causeId = $id;
$this->set(compact('donations', 'causeId', 'filter'));
}
/**
* Add method
*/
public function add()
{
$cause = $this->Causes->newEmptyEntity();
if ($this->request->is('post')) {
$cause->user_id = $this->request->getSession()->read('Auth.id');
$cause = $this->Causes->patchEntity($cause, $this->request->getData());
if ($this->Causes->save($cause)) {
$this->Flash->success(__('The cause has been saved.'));
return $this->redirect(['prefix' => 'Admin', 'controller' => 'Causes', 'action' => 'editGallery', $cause->uuid]);
}
$this->Flash->error(__('The cause could not be saved. Please, try again.'));
}
$tags = $this->Causes->Tags->find('list', ['limit' => 200])
->where(['Tags.is_active' => true]);
$this->set(compact('cause', 'tags'));
}
/**
* Edit method
*/
public function edit($id = null)
{
if (!empty($id) && is_numeric($id)) {
$cause = $this->Causes->get($id, [
'contain' => ['Tags'],
]);
if ($this->request->is(['patch', 'post', 'put'])) {
$cause = $this->Causes->patchEntity($cause, $this->request->getData());
if ($this->Causes->save($cause)) {
$this->Flash->success(__('The cause has been saved.'));
return $this->redirect(['prefix' => 'Admin', 'controller' => 'Causes', 'action' => 'edit', $id]);
}
$this->Flash->error(__('The cause could not be saved. Please, try again.'));
}
} else {
$this->Flash->error(__('Oops. Please, try again.'));
return $this->redirect(['prefix' => 'Admin', 'controller' => 'Causes', 'action' => 'index']);
}
$tags = $this->Causes->Tags->find('list', ['limit' => 200])->where(['Tags.is_active' => true]);
$this->set(compact('cause', 'tags'));
}
/**
* Edit method
*/
public function editGallery($uuid = null)
{
if (!empty($uuid)) {
$cause = $this->Causes->find()
->where(['uuid' => $uuid])
->first();
$model = $this->modelClass;
$foreignUuid = $cause->uuid;
$this->loadModel('GalleryImages');
$images = $this->GalleryImages->find()
->contain(['Causes'])
->where(['foreign_key' => $cause->id, 'model' => $model])->toArray();
} else {
$this->Flash->error(__('A apărut o problemă. Vă rugăm să încercați din nou'));
return $this->redirect(['prefix' => 'Dashboard', 'controller' => 'Causes', 'action' => 'index']);
}
$this->set(compact('cause', 'images', 'model', 'foreignUuid'));
}
/**
* Edit method
*/
public function editDocs($uuid = null)
{
if (!empty($uuid)) {
$cause = $this->Causes->find()
->where(['uuid' => $uuid])
->first();
$model = $this->modelClass;
$foreignUuid = $cause->uuid;
$this->loadModel('Documents');
$documents = $this->Documents->find()
->contain(['Causes'])
->where(['foreign_key' => $cause->id, 'model' => $model]);
} else {
$this->Flash->error(__('A apărut o problemă. Vă rugăm să încercați din nou'));
return $this->redirect(['prefix' => 'Dashboard', 'controller' => 'Causes', 'action' => 'index']);
}
$this->set(compact('cause', 'documents', 'model', 'foreignUuid'));
}
/**
* Disable/Activate
*/
public function delete($id = null)
{
if (!empty($id) && is_numeric($id)) {
$this->request->allowMethod(['post']);
$cause = $this->Causes->get($id);
$cause->is_active = ($cause->is_active === true) ? false : true;
if ($this->Causes->save($cause)) {
$this->Flash->success(__('The cause has been changed.'));
} else {
$this->Flash->error(__('The cause could not be changed. Please try again later it was modified.'));
}
} else {
$this->Flash->error(__('Oops. Please, try again.'));
}
return $this->redirect(['prefix' => 'Admin', 'controller' => 'Causes', 'action' => 'index']);
}
/**
* Export data
*/
public function exportSpreadsheet($id)
{
$query = $this->viewDirectDonation($id, true);
$data = $query->find('all')->toArray();
$results = [];
foreach ($data as $key => $value) {
$results[] = [
'id' => $value['id'],
'f_name' => $value['first_name'],
'l_name' => $value['last_name'],
'nickname' => $value['nickname'],
'email' => $value['email'],
'value' => $value['value'],
'transation' => isset($value['transation']) ? $value['transation']['bank_account_id'] : '',
'cause' => $value['cause']['name'],
'is_anonymus' => $value['is_anonymus'] ? 'true' : 'false',
'is_visible' => $value['is_visible'] ? 'true' : 'false',
'created' => !empty($value['created']) ? $value['created']->i18nFormat('yyyy-MM-dd HH:mm:ss') : '',
];
}
if (empty($results)) {
$results[] = [
__('No results found') => ''
];
}
$this->loadComponent('Spreadsheet');
$this->Spreadsheet->export($results, 'Report', 'Donors', $this->userAuth->name, 'no-save', []);
}
}