<?php
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Filesystem\File;
/**
 * @version        5.7.0
 * @package        Joomla
 * @subpackage     Joom Donation
 * @author         Tuan Pham Ngoc
 * @copyright      Copyright (C) 2009 - 2023 Ossolution Team
 * @license        GNU/GPL, see LICENSE.php
 */
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die();

class DonationModelCampaign extends OSFModelAdmin
{
    function __construct($config = array())
    {
        parent::__construct($config);
        $this->state->insert('id', 'int', 0)->insert('tmpl', 'cmd', '');
    }

    /**
     * Load campaign data from database
     *
     * @see OSFModelAdmin::loadData()
     */
    function loadData()
    {
        parent::loadData();
        $db                         = $this->getDbo();
        $query                      = $db->getQuery(true);
        $query->select('SUM(amount)')
            ->from('#__jd_donors')
            ->where('campaign_id=' . $this->state->id)
            ->where('published = 1');
        $db->setQuery($query);
        $this->data->donated_amount = floatval($db->loadResult());
    }

    function store($input, $ignore = array()){
        jimport('joomla.filesystem.folder');
        jimport('joomla.filesystem.file');
        $row           = $this->getTable();
        $id            = $input->getInt('id', 0);
        $delete        = $input->getInt('remove_photo',0);
        $user          = Factory::getUser();
        if($user->id == 0)
        {
            throw new Exception (Text::_('JD_NOT_ALLOWED_ACTION'));
        }
        if(!$user->authorise('core.create','com_jdonation'))
        {
            throw new Exception (Text::_('JD_NOT_ALLOWED_ACTION'));
        }
        if($id > 0)
        {
            $row->load((int)$id);
        }
        if(is_uploaded_file($_FILES['photo']['tmp_name']))
        {
            $filename  = $_FILES['photo']['name'];
            $filename  = time() . str_replace(" ", "_", $filename);
            if (!Folder::exists(JPATH_ROOT . '/images/jdonation'))
            {
                Folder::create(JPATH_ROOT . '/images/jdonation');
            }
            File::upload($_FILES['photo']['tmp_name'], JPATH_ROOT . '/images/jdonation/' . $filename);
            $row->campaign_photo = $filename;
            $input->set('campaign_photo',$filename);
        }
        elseif($delete == 1)
        {
            $filename = "";
            $input->set('campaign_photo',$filename);
            if(($row->campaign_photo != "") && (File::exists(JPATH_ROOT.'/images/jdonation/'.$row->campaign_photo)))
            {
                Jfile::delete(JPATH_ROOT.'/images/jdonation/'.$row->campaign_photo);
            }
        }
        $input->set('user_id', $user->id);
        parent::store($input,$ignore);
    }
}
