/** * Restores this backup * * @return Workflow * @throws TerminusException */ public function restore() { switch ($this->get('type')) { case 'code': $type = 'restore_code'; break; case 'files': $type = 'restore_files'; break; case 'database': $type = 'restore_database'; break; default: throw new TerminusException('This backup has no archive to restore.'); break; } $workflow = $this->environment->getWorkflows()->create($type, ['params' => ['key' => "{$this->environment->site->id}/{$this->environment->id}/{$this->get('filename')}", 'bucket' => $this->getBucket()]]); return $workflow; }
<?php /** * Cron - Calculate the balance of the Google Search Ads Monthly Budget * also it sends a Zendesk ticket to support in case the budget reaches $0 */ require_once __DIR__ . '/../includes/include.php'; $execution_id = cron_start(157); $send_email = false; $to = environment::is_production() ? '*****@*****.**' : DEVELOPERS_EMAILS; $yesterday_date = date('Y-m-d', strtotime('NOW - 1 days')); // find all the google ads products regardless their status, which are the products with the budget and client id registered // google product registered in our system and balance should be already added $query = "\tSELECT product_data_id, member_id, currency_id, client_id,monthly_budget_product_data_id, balance, product_status \n\t\t\tFROM\n\t\t\t(\n\t\t\t\tSELECT gpd.product_data_id, gpd.member_id, gpd.currency_id, ga.client_id ,\tga2mb.monthly_budget_product_data_id, \n\t\t\t\t\tgapc.budget_credit as balance,\n\t\t\t\t\t(\n\t\t\t\t\t\tSELECT product_status \n\t\t\t\t\t\tFROM sYra.generic_products_data \n\t\t\t\t\t\tWHERE product_data_id = monthly_budget_product_data_id\n\t\t\t\t\t) as product_status\n\t\t\t\tFROM sYra.generic_products_data gpd\n\t\t\t\t\tLEFT JOIN sYra.google_advertising ga ON ga.product_data_id = gpd.product_data_id\n\t\t\t\t\tLEFT JOIN sYra.google_advertising_to_monthly_budget ga2mb ON ga2mb.product_data_id = gpd.product_data_id\n\t\t\t\t\tLEFT JOIN sYra.google_advertising_product_credit gapc ON gapc.product_data_id = ga2mb.monthly_budget_product_data_id\n\t\t\t\tWHERE gpd.product_type_id = 29 AND ga.client_id IS NOT NULL\n\t\t\t\tGROUP BY gpd.product_data_id\n\t\t\t) aux_table\n\t\t\tWHERE product_status IN (3,10)\n\t\t\tORDER BY product_data_id"; $db_syssql = db::connect('syssql'); $result = $db_syssql->select($query)->execute(); if ($result->row_count() > 0) { $product_row = $result->fetch_all(); foreach ($product_row as $product_key => $product_data) { $query = "\tSELECT SUM(COST) AS 'last_cost' \n\t\t\t\t\tFROM AWReports.AW_ReportAd aw \n\t\t\t\t\tWHERE aw.account_id = :client_id AND CAST(DAY AS DATE) = :yesterday_date"; $bind = array(':client_id' => $product_data['client_id'], ':yesterday_date' => $yesterday_date); $result = db::connect('awreports')->select($query)->binds($bind)->execute()->fetch(); if ($result['last_cost']) { $product_row[$product_key]['last_cost'] = $result['last_cost']; } else { unset($product_row[$product_key]); } } $subject = "Search Ad - Search Ads products budget has ended"; $message = "The following Search Ad products have reached balance 0 (zero)." . PHP_EOL . PHP_EOL; foreach ($product_row as $product_details) {