File "divido.php"
Full path: /home/cakedeco/retaildirectonline.co.uk/admin/model/extension/payment/divido.php
File
size: 2.6 B (2.6 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
class ModelExtensionPaymentDivido extends Model {
const CACHE_KEY_PLANS = 'divido_plans';
public function getAllPlans() {
if ($plans = $this->cache->get(self::CACHE_KEY_PLANS)) {
// OpenCart 2.1 decodes json objects to associative arrays so we
// need to make sure we're getting a list of simple objects back.
$plans = array_map(function ($plan) {
return (object)$plan;
}, $plans);
return $plans;
}
$api_key = $this->config->get('payment_divido_api_key');
if (!$api_key) {
throw new Exception("No Divido api-key defined");
}
Divido::setMerchant($api_key);
$response = Divido_Finances::all();
if ($response->status != 'ok') {
throw new Exception("Can't get list of finance plans from Divido!");
}
$plans = $response->finances;
// OpenCart 2.1 switched to json for their file storage cache, so
// we need to convert to a simple object.
$plans_plain = array();
foreach ($plans as $plan) {
$plan_copy = new stdClass();
$plan_copy->id = $plan->id;
$plan_copy->text = $plan->text;
$plan_copy->country = $plan->country;
$plan_copy->min_amount = $plan->min_amount;
$plan_copy->min_deposit = $plan->min_deposit;
$plan_copy->max_deposit = $plan->max_deposit;
$plan_copy->interest_rate = $plan->interest_rate;
$plan_copy->deferral_period = $plan->deferral_period;
$plan_copy->agreement_duration = $plan->agreement_duration;
$plans_plain[] = $plan_copy;
}
$this->cache->set(self::CACHE_KEY_PLANS, $plans_plain);
return $plans_plain;
}
public function getLookupByOrderId($order_id) {
return $this->db->query("SELECT * FROM `" . DB_PREFIX . "divido_lookup` WHERE `order_id` = " . (int)$order_id);
}
public function install() {
$this->db->query("
CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "divido_product` (
`product_id` INT(11) NOT NULL,
`display` CHAR(7) NOT NULL,
`plans` text,
PRIMARY KEY (`product_id`)
) ENGINE=MyISAM DEFAULT COLLATE=utf8_general_ci;");
$this->db->query("
CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "divido_lookup` (
`order_id` INT(11) NOT NULL,
`salt` CHAR(64) NOT NULL,
`proposal_id` CHAR(40),
`application_id` CHAR(40),
`deposit_amount` NUMERIC(6,2),
PRIMARY KEY (`order_id`)
) ENGINE=MyISAM DEFAULT COLLATE=utf8_general_ci;");
}
public function uninstall() {
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "divido_product`;");
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "divido_lookup`;");
}
}