|
|
@@ -11,6 +11,7 @@ if(empty($data['orderid'])) {
|
|
|
return ;
|
|
|
}
|
|
|
$orderid = (int) $data['orderid'];
|
|
|
+// mappings for WHMCS inconsistency
|
|
|
$setup = array(
|
|
|
'One Time' => 'msetupfee',
|
|
|
'Monthly' => 'msetupfee',
|
|
|
@@ -19,6 +20,13 @@ $setup = array(
|
|
|
'Annually' => 'asetupfee',
|
|
|
'Biennially' => 'bsetupfee',
|
|
|
'Triennially' => 'tsetupfee',
|
|
|
+ 'onetime' => 'msetupfee',
|
|
|
+ 'monthly' => 'msetupfee',
|
|
|
+ 'quarterly' => 'qsetupfee',
|
|
|
+ 'semiannually' => 'ssetupfee',
|
|
|
+ 'annually' => 'asetupfee',
|
|
|
+ 'biennially' => 'bsetupfee',
|
|
|
+ 'triennially' => 'tsetupfee',
|
|
|
);
|
|
|
$recurring = array(
|
|
|
'One Time' => 'monthly',
|
|
|
@@ -28,6 +36,13 @@ $recurring = array(
|
|
|
'Annually' => 'annually',
|
|
|
'Biennially' => 'biennially',
|
|
|
'Triennially' => 'triennially',
|
|
|
+ 'onetime' => 'monthly',
|
|
|
+ 'monthly' => 'monthly',
|
|
|
+ 'quarterly' => 'quarterly',
|
|
|
+ 'semiannually' => 'semiannually',
|
|
|
+ 'annually' => 'annually',
|
|
|
+ 'biennially' => 'biennially',
|
|
|
+ 'triennially' => 'triennially',
|
|
|
);
|
|
|
$billingterm = array(
|
|
|
'Free Account' => Lang::trans('orderpaymenttermfree'),
|
|
|
@@ -38,7 +53,18 @@ $billingterm = array(
|
|
|
'Annually' => Lang::trans('orderpaymenttermannually'),
|
|
|
'Biennially' => Lang::trans('orderpaymenttermbiennially'),
|
|
|
'Triennially' => Lang::trans('orderpaymenttermtriennially'),
|
|
|
+ 'onetime' => Lang::trans('orderpaymenttermonetime'),
|
|
|
+ 'monthly' => Lang::trans('orderpaymenttermmonthly'),
|
|
|
+ 'quarterly' => Lang::trans('orderpaymenttermquarterly'),
|
|
|
+ 'semiannually' => Lang::trans('orderpaymenttermsemiannually'),
|
|
|
+ 'annually' => Lang::trans('orderpaymenttermannually'),
|
|
|
+ 'biennially' => Lang::trans('orderpaymenttermbiennially'),
|
|
|
+ 'triennially' => Lang::trans('orderpaymenttermtriennially'),
|
|
|
+ '1' => Lang::trans('orderpaymenttermannually'),
|
|
|
+ '2' => Lang::trans('orderpaymenttermbiennially'),
|
|
|
+ '3' => Lang::trans('orderpaymenttermtriennially'),
|
|
|
);
|
|
|
+// gathering globals
|
|
|
$order_details = array();
|
|
|
$order = localAPI('GetOrders', array('id' => $orderid));
|
|
|
$order_details['ordernumber'] = $order['orders']['order'][0]['ordernum'];
|
|
|
@@ -52,6 +78,7 @@ $currencyId = Capsule::table('tblcurrencies')
|
|
|
$serviceIds = Capsule::table('tblhosting')
|
|
|
->where('orderid', $orderid)
|
|
|
->get('id');
|
|
|
+// gathering informations of products
|
|
|
$order_details['products'] = array();
|
|
|
foreach($serviceIds as $serviceId) {
|
|
|
unset($service_details);
|
|
|
@@ -74,18 +101,18 @@ foreach($serviceIds as $serviceId) {
|
|
|
case 'Name des VDC':
|
|
|
$name = $customfield['value'];
|
|
|
break;
|
|
|
- case 'Mail Domaine':
|
|
|
+ case 'Mail Domain':
|
|
|
$domain = $customfield['value'];
|
|
|
break;
|
|
|
}
|
|
|
if ($name && $domain) {
|
|
|
- $service_details['altdomain'] = $name . '@' . $domain;
|
|
|
+ $service_details['domain'] = $name . '@' . $domain;
|
|
|
} elseif ($name) {
|
|
|
- $service_details['altdomain'] = $name;
|
|
|
+ $service_details['domain'] = $name;
|
|
|
} elseif ($domain) {
|
|
|
- $service_details['altdomain'] = $domain;
|
|
|
+ $service_details['domain'] = $domain;
|
|
|
} else {
|
|
|
- $service_details['altdomain'] = 'ID:' . $serviceId->id;
|
|
|
+ $service_details['domain'] = 'ID:' . $serviceId->id;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -150,13 +177,10 @@ foreach($serviceIds as $serviceId) {
|
|
|
array_push($service_details['configoptions'], $option_details);
|
|
|
}
|
|
|
}
|
|
|
- if(empty($service_details['configoptions'])) {
|
|
|
- unset($service_details['configoptions']);
|
|
|
- }
|
|
|
// addons
|
|
|
$addon[$serviceId->id] = localAPI('GetClientsAddons', array('serviceid' => $serviceId->id));
|
|
|
+ $service_details['addons'] = array();
|
|
|
if($addon[$serviceId->id]['totalresults'] != 0) {
|
|
|
- $service_details['addons'] = array();
|
|
|
foreach($addon[$serviceId->id]['addons']['addon'] as $addon) {
|
|
|
unset($service_addon_details);
|
|
|
$addon_details = (array) Capsule::table('tblhostingaddons')->where('id', $addon['id'])->first();
|
|
|
@@ -188,5 +212,85 @@ foreach($serviceIds as $serviceId) {
|
|
|
}
|
|
|
array_push($order_details['products'], $service_details);
|
|
|
}
|
|
|
+// gathering informations of addons bought without buying a product
|
|
|
+$addons = Capsule::table('tblhostingaddons')
|
|
|
+ ->where('orderid', $orderid)
|
|
|
+ ->whereNotIn('hostingid', $serviceIds)
|
|
|
+ ->get();
|
|
|
+$order_details['addons'] = array();
|
|
|
+foreach($addons as $addon) {
|
|
|
+ unset($addon_details);
|
|
|
+ $addon_details['name'] = Capsule::table('tbladdons')
|
|
|
+ ->where('id', $addon->addonid)
|
|
|
+ ->value('name');
|
|
|
+ $addonBillingcycle = $addon->billingcycle;
|
|
|
+ $addon_details['id'] = $addon->id;
|
|
|
+ $addon_details['qty'] = $addon->qty;
|
|
|
+ if($addonBillingcycle != 'Free Account') {
|
|
|
+ $addon_setup = Capsule::table('tblpricing')
|
|
|
+ ->where('relid', $addon->addonid)
|
|
|
+ ->where('type', 'addon')
|
|
|
+ ->where('currency', $currencyId)
|
|
|
+ ->value($setup[$addonBillingcycle]);
|
|
|
+ $addon_recurring = Capsule::table('tblpricing')
|
|
|
+ ->where('relid', $addon->addonid)
|
|
|
+ ->where('type', 'addon')
|
|
|
+ ->where('currency', $currencyId)
|
|
|
+ ->value($recurring[$addonBillingcycle]);
|
|
|
+ if($addon_setup > 0) {
|
|
|
+ $addon_details['setup'] = $addon_setup;
|
|
|
+ }
|
|
|
+ if($addon_recurring > 0) {
|
|
|
+ $addon_details['recurring'] = $addon_recurring;
|
|
|
+ }
|
|
|
+ if(!empty($addon->subscriptionid)) {
|
|
|
+ $addon_details['servicecode'] = $addon->subscriptionid;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $addon_parent = localAPI('GetClientsProducts', array('serviceid' => $addon->hostingid));
|
|
|
+ $addon_details['parent'] = array(
|
|
|
+ 'name' => $addon_parent['products']['product'][0]['translated_name'],
|
|
|
+ 'domain' => $addon_parent['products']['product'][0]['domain']
|
|
|
+ );
|
|
|
+ array_push($order_details['addons'], $addon_details);
|
|
|
+}
|
|
|
+// gathering informations of domains
|
|
|
+$domains = Capsule::table('tbldomains')
|
|
|
+ ->where('orderid', $orderid)
|
|
|
+ ->get();
|
|
|
+$order_details['domains'] = array();
|
|
|
+foreach($domains as $domain) {
|
|
|
+ unset($domain_details);
|
|
|
+ $domain_details['id'] = $domain->id;
|
|
|
+ $domain_details['name'] = $domain->domain;
|
|
|
+ $domain_details['type'] = $domain->type;
|
|
|
+ $domain_details['period'] = $billingterm[(string)$domain->registrationperiod];
|
|
|
+ $tld = end(explode(".", $domain->domain));
|
|
|
+ $tldPricing = localAPI('GetTLDPricing', array('currencyid' => $currencyId));
|
|
|
+ $domain_details['recurring'] = $tldPricing['pricing'][$tld][strtolower($domain->type)][$domain->registrationperiod];
|
|
|
+ if($domain->dnsmanagement > 0){
|
|
|
+ if(!empty($tldPricing['pricing'][$tld]['addons']['dns'])) {
|
|
|
+ $domain_details['addons']['dnsmanagement'] = $tldPricing['pricing'][$tld]['addons']['dns'];
|
|
|
+ } else {
|
|
|
+ $domain_details['addons']['dnsmanagement'] = $billingterm['Free Account'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($domain->emailforwarding > 0){
|
|
|
+ if($tldPricing['pricing'][$tld]['addons']['dns'] > 0) {
|
|
|
+ $domain_details['addons']['emailforwarding'] = $tldPricing['pricing'][$tld]['addons']['email'];
|
|
|
+ } else {
|
|
|
+ $domain_details['addons']['emailforwarding'] = $billingterm['Free Account'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($domain->idprotection > 0){
|
|
|
+ if($tldPricing['pricing'][$tld]['addons']['idprotect'] > 0) {
|
|
|
+ $domain_details['addons']['idprotection'] = $tldPricing['pricing'][$tld]['addons']['idprotect'];
|
|
|
+ } else {
|
|
|
+ $domain_details['addons']['idprotection'] = $billingterm['Free Account'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ array_push($order_details['domains'], $domain_details);
|
|
|
+}
|
|
|
+// response all together
|
|
|
$apiresults['orderdetails'] = $order_details;
|
|
|
$responsetype = "xml";
|