HEX
Server: Apache
System: Linux server1.royalgt4.com 4.18.0-553.89.1.lve.el8.x86_64 #1 SMP Wed Dec 10 13:58:50 UTC 2025 x86_64
User: mostafedeg (1125)
PHP: 5.6.40
Disabled: mail,passthru,parse_ini_file,show_source,eval,assert,pcntl_exec,dl,putenv,proc_open,popen
Upload Files
File: /home/mostafedeg/public_html/erp/models/mysql/ext/SaveMySqlExtDAO.class.php
<?php

/**
 * Class that operate on table 'save'. Database Mysql.
 *
 * @author: http://phpdao.com
 * @date: 2012-08-07 11:25
 */
class SaveMySqlExtDAO extends SaveMySqlDAO {

    public function insertFirstSave($save, $savedetails) {
        $sql = 'INSERT INTO save (saveid, savename, savecurrentvalue, savedetails, savedate, conditions, userid,treeId) VALUES (?, ?, ?, ?, ?, ?, ?,?)';
        $sqlQuery = new SqlQuery($sql);


        $sqlQuery->setNumber($save->saveid);
        $sqlQuery->set($save->savename);
        $sqlQuery->set($save->savecurrentvalue);
        $sqlQuery->setString2($savedetails);
        $sqlQuery->set($save->savedate);
        $sqlQuery->setNumber($save->conditions);
        $sqlQuery->setNumber($save->userid);
        $sqlQuery->setNumber((int) $save->treeId);

        $this->executeInsert($sqlQuery);
        return $id;
    }

    public function queryAllWithOrder() {
        $sql = 'SELECT * FROM save order by saveid desc';
        $sqlQuery = new SqlQuery($sql);
        return $this->getList($sqlQuery);
    }

    public function updateDele($save) {
        $sql = 'UPDATE save SET savedate = ?, conditions = ?, userid = ? WHERE saveid = ?';
        $sqlQuery = new SqlQuery($sql);

        $sqlQuery->set($save->savedate);
        $sqlQuery->setNumber($save->conditions);
        $sqlQuery->setNumber($save->userid);

        $sqlQuery->setNumber($save->saveid);
        return $this->executeUpdate($sqlQuery);
    }

    public function updateSaveValue($save) {
        $sql = 'UPDATE save SET  savecurrentvalue = ?,  userid = ? WHERE saveid = ?';
        $sqlQuery = new SqlQuery($sql);

        $sqlQuery->set($save->savecurrentvalue);
        $sqlQuery->setNumber($save->userid);

        $sqlQuery->setNumber($save->saveid);
        return $this->executeUpdate($sqlQuery);
    }

    public function queryWithConditionExpectId($saveid) {
        $sql = 'SELECT save.*,currency.otherconversionFactor,currency.conversionFactor,currency.name as currencyName
                FROM save
                left join currency on currency.id = save.currencyId
                where save.conditions = 0 and save.saveid != ' . $saveid . '';
        $sqlQuery = new SqlQuery($sql);
        return $this->getList($sqlQuery);
    }

    public function getSaveTotalCurrentValue() {
        $sql = 'SELECT SUM(savecurrentvalue) FROM save where conditions = 0 ';
        $sqlQuery = new SqlQuery($sql);
        return $this->QuerySingleResult($sqlQuery);
    }

    public function getTotalSaves() {
        $sql = 'SELECT SUM(savecurrentvalue)
			FROM save
			WHERE conditions=0
			';
        $sqlQuery = new SqlQuery($sql);
        return $this->QuerySingleResult($sqlQuery);
    }

    #############################################################

    //fatma
    ##for many users updating same cell
    //    public function updateinDBDirectly($amount, $saveid) {
    //        $sql = "UPDATE save SET
    //                `savecurrentvalue` = @max_limbs := `savecurrentvalue`+$amount
    //                WHERE `saveid`='$saveid' LIMIT 1;
    //                SELECT @max_limbs as savecurrentvalue;";
    //        $sqlQuery = new SqlQuery($sql);
    ////        return $this->executeUpdate($sqlQuery);
    //        return $this->QuerySingleResult($sqlQuery);
    //    }

    public function loadForUpdateEx($id) {
        $sql = 'SELECT save.* ,currency.conversionFactor
                FROM save
                left join currency on currency.id = save.currencyId
                WHERE saveid = ? FOR UPDATE';
        $sqlQuery = new SqlQuery($sql);
        $sqlQuery->setNumber($id);
        return $this->getRow($sqlQuery);
    }

    public function loadEx($id) {
        $sql = 'SELECT save.* ,currency.conversionFactor
                FROM save
                left join currency on currency.id = save.currencyId
                WHERE saveid = ?';
        $sqlQuery = new SqlQuery($sql);
        $sqlQuery->setNumber($id);
        return $this->getRow($sqlQuery);
    }

    #############################################################

    public function queryAllEX($savename, $queryString = '') {
        $sql = 'SELECT *
                FROM save
                where conditions=0 and savename like  "%' . $savename . '%" ' . $queryString . '
                order by saveid desc';
        $sqlQuery = new SqlQuery($sql);
        return $this->getList($sqlQuery);
    }

    public function queryAllEX2($queryString = '') {
        $sql = 'SELECT save.*,currency.name as currencyName,currency.otherconversionFactor,currency.conversionFactor,ROUND((save.savecurrentvalue/currency.conversionFactor),2) as savecurrentvalueInMainCurrency
                FROM save
                join currency on currency.id = save.currencyId
                where save.conditions=0 ' . $queryString . '
                ORDER BY sortby DESC, savecurrentvalueInMainCurrency DESC';
        $sqlQuery = new SqlQuery($sql);
        return $this->getList($sqlQuery);
    }

    public function queryAllEXOne2($queryString = '') {
        $sql = 'SELECT save.*,currency.name as currencyName,currency.otherconversionFactor,currency.conversionFactor,ROUND((save.savecurrentvalue/currency.conversionFactor),2) as savecurrentvalueInMainCurrency
                FROM save
                join currency on currency.id = save.currencyId
                where save.conditions=0 ' . $queryString . '
                ORDER BY sortby DESC, savecurrentvalueInMainCurrency DESC';
        $sqlQuery = new SqlQuery($sql);
        return $this->getRow($sqlQuery);
    }

    public function queryWithConditionWithQueryString($queryString) {
        $sql = 'SELECT save.*,currency.otherconversionFactor,currency.conversionFactor,currency.name as currencyName
                FROM save
                left join currency on currency.id = save.currencyId
                where save.conditions = 0' . $queryString;
        $sqlQuery = new SqlQuery($sql);
        return $this->getList($sqlQuery);
    }

    public function markSaveAsNOTInUse($saveid = 0) {
        $sql = 'UPDATE save SET  inUse = 0 where saveid = ' . $saveid;
        $sqlQuery = new SqlQuery($sql);
        return $this->executeUpdate($sqlQuery);
    }

    public function createSaveInUseSP() {

        $_SESSION['stop_checking_result'] = 1;

        $sql = 'DROP PROCEDURE IF EXISTS saveInUse;';
        $sqlQuery = new SqlQuery($sql);
        $this->executeUpdate($sqlQuery);

        //create procedure goes row by row to re calc debtbefore and after for each row in clientdebtchangetemp
        $sql = '
CREATE PROCEDURE saveInUse(IN id INT, OUT saveidis INT, OUT savecurrentvalueis FLOAT, OUT currencyIdis INT, OUT treeIdis INT, OUT conversionFactoris FLOAT)
BEGIN
  DECLARE in_use_flag INT DEFAULT 1;
  SELECT inUse FROM save WHERE saveid = id INTO in_use_flag;

  IF in_use_flag = 0 THEN
    UPDATE save SET inUse = 1 WHERE saveid = id;
    SELECT saveid, savecurrentvalue, currencyId, treeId, currency.conversionFactor INTO saveidis, savecurrentvalueis, currencyIdis, treeIdis, conversionFactoris
    FROM save
    LEFT JOIN currency ON currency.id = save.currencyId
    WHERE saveid = id;
  ELSE
    SELECT -10, -10, -10, -10, -10 INTO saveidis, savecurrentvalueis, currencyIdis, treeIdis, conversionFactoris;
  END IF;
END


';
        $sqlQuery = new SqlQuery($sql);
        $affected_rows = $this->executeUpdate($sqlQuery);
        unset($_SESSION['stop_checking_result']);
        return $affected_rows;
    }

    public function callSaveInUseSP($saveid) {
        if ($saveid > 0) {
            $mysqli = new mysqli(ConnectionProperty::getHost(), ConnectionProperty::getUser(), ConnectionProperty::getPassword(), ConnectionProperty::getDatabase());
            if ($mysqli->connect_errno) {
                echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
            }
            ##checks
            $callSql = "CALL saveInUse($saveid,@saveidis,@savecurrentvalueis,@currencyIdis,@treeIdis,@conversionFactoris)";

            $myfile = fopen("backup/" . date("Y-m-d") . ".txt", "a+") or die("Unable to open file!");
            $txt = $callSql . ";\r\n";
            fwrite($myfile, $txt);

            fclose($myfile);

            if (!$mysqli->query("SET @saveidis=-10,@savecurrentvalueis=-10,@currencyIdis=-10,@treeIdis=-10,@conversionFactoris=-10") || !$mysqli->query($callSql)) {
                echo "CALL failed: (" . $mysqli->errno . ") " . $mysqli->error;
            }

            if (!($res = $mysqli->query("SELECT @saveidis as saveid,@savecurrentvalueis as savecurrentvalue,@currencyIdis as currencyId,@treeIdis as treeId,@conversionFactoris as conversionFactor"))) {
                echo "Fetch failed: (" . $mysqli->errno . ") " . $mysqli->error;
            }
            $row = $res->fetch_assoc();
            $rowAsObj = new stdClass();
            foreach ($row as $key => $value) {
                $rowAsObj->$key = $value;
            }
            return $rowAsObj;
        }
    }

}