Advertisement
Guest User

Untitled

a guest
Jun 28th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.43 KB | None | 0 0
  1. (SELECT
  2. CONCAT('{""',salesforce.Asset_Attribute__c.Type__c,'"": {',GROUP_CONCAT(
  3. '""',salesforce.Asset_Attribute__c.Key__c,'"":""',LOWER(salesforce.Asset_Attribute__c.Value__c),'""'
  4. ),'}}')
  5. FROM
  6. salesforce.Asset_Attribute__c
  7. WHERE
  8. salesforce.Asset_Attribute__c.Asset__c = license_id
  9. GROUP BY salesforce.Asset_Attribute__c.Asset__c) AS `license_attributes`
  10.  
  11. GETCLOUDACCOUNTS:BEGIN
  12.  
  13. DECLARE no_more_cloud_accounts_records boolean DEFAULT FALSE;
  14.  
  15. DECLARE company VARCHAR(255) DEFAULT null;
  16. DECLARE license_status VARCHAR(50) DEFAULT null;
  17. DECLARE license_id VARCHAR(18) DEFAULT null;
  18. DECLARE cloud_owner_email VARCHAR(255) DEFAULT null;
  19. DECLARE entitlement_plan VARCHAR(255) DEFAULT null;
  20. DECLARE role VARCHAR(500) DEFAULT null;
  21. DECLARE is_trial BOOLEAN DEFAULT false;
  22. DECLARE license_attributes VARCHAR(2000) DEFAULT null;
  23. DECLARE zuora_account_id VARCHAR(100) DEFAULT '';
  24. DECLARE zuora_account_number VARCHAR(50) DEFAULT null;
  25. DECLARE zuora_account_status VARCHAR(50) DEFAULT null;
  26. DECLARE zuora_account_last_invoice_date DATETIME DEFAULT null;
  27. DECLARE has_active_subscriptions BOOLEAN DEFAULT false;
  28.  
  29. DECLARE cloud_accounts_cursor CURSOR FOR
  30. SELECT
  31. (SELECT `sf`.`Contact`.`CompanyName__c` FROM `sf`.`Contact` WHERE `sf`.`Asset`.`ContactId`=`sf`.`Contact`.`Id`) AS `company`,
  32. `sf`.`License_Key_Association__c`.`License_Key_Status__c` AS `license_status`,
  33. `sf`.`License_Key_Association__c`.`License_Key__c` AS `license_id`,
  34. `sf`.`Asset`.`ContactEmail__c` AS `cloud_owner_email`,
  35. (SELECT `sf`.`Contact`.`CloudEntitlementPlan__c` FROM `sf`.`Contact` WHERE `sf`.`Asset`.`ContactId`=`sf`.`Contact`.`Id`) AS `entitlement_plan`,
  36. `sf`.`License_Key_Association__c`.`Role__c` AS `role`,
  37. IF( (SELECT `sf`.`Product2`.`IsCommercial__c` FROM `sf`.`Product2` WHERE `sf`.`Product2`.`Id`=`sf`.`Asset`.`Product2Id`) = 0,true,false ) AS `is_trial`,
  38. (SELECT
  39. CONCAT('{""',salesforce.Asset_Attribute__c.Type__c,'"": {',GROUP_CONCAT(
  40. '""',salesforce.Asset_Attribute__c.Key__c,'"":""',LOWER(salesforce.Asset_Attribute__c.Value__c),'""'
  41. ),'}}')
  42. FROM
  43. salesforce.Asset_Attribute__c
  44. WHERE
  45. salesforce.Asset_Attribute__c.Asset__c = license_id
  46. GROUP BY salesforce.Asset_Attribute__c.Asset__c) AS `license_attributes`
  47. FROM
  48. `sf`.`License_Key_Association__c`
  49. LEFT JOIN `sf`.`Asset`
  50. ON `sf`.`License_Key_Association__c`.`License_Key__c` = `sf`.`Asset`.`Id`
  51. JOIN `sf`.`Contact`
  52. ON `sf`.`Contact`.`Id` = `sf`.`License_Key_Association__c`.`Contact__c`
  53. WHERE
  54. `sf`.`Contact`.`ExternalID__c`='someexternalidhere';
  55.  
  56. DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_cloud_accounts_records = true;
  57. SELECT
  58. (SELECT `sf`.`Contact`.`CompanyName__c` FROM `sf`.`Contact` WHERE `sf`.`Asset`.`ContactId`=`sf`.`Contact`.`Id`) AS `company`,
  59. `sf`.`License_Key_Association__c`.`License_Key_Status__c` AS `license_status`,
  60. `sf`.`License_Key_Association__c`.`License_Key__c` AS `license_id`,
  61. `sf`.`Asset`.`ContactEmail__c` AS `cloud_owner_email`,
  62. (SELECT `sf`.`Contact`.`CloudEntitlementPlan__c` FROM `sf`.`Contact` WHERE `sf`.`Asset`.`ContactId`=`sf`.`Contact`.`Id`) AS `entitlement_plan`,
  63. `sf`.`License_Key_Association__c`.`Role__c` AS `role`,
  64. IF( (SELECT `sf`.`Product2`.`IsCommercial__c` FROM `sf`.`Product2` WHERE `sf`.`Product2`.`Id`=`sf`.`Asset`.`Product2Id`) = 0,true,false ) AS `is_trial`,
  65. (SELECT
  66. CONCAT('{""',salesforce.Asset_Attribute__c.Type__c,'"": {',GROUP_CONCAT(
  67. '""',salesforce.Asset_Attribute__c.Key__c,'"":""',LOWER(salesforce.Asset_Attribute__c.Value__c),'""'
  68. ),'}}')
  69. FROM
  70. salesforce.Asset_Attribute__c
  71. WHERE
  72. salesforce.Asset_Attribute__c.Asset__c = license_id
  73. GROUP BY salesforce.Asset_Attribute__c.Asset__c) AS `license_attributes`
  74. FROM
  75. `sf`.`License_Key_Association__c`
  76. LEFT JOIN `sf`.`Asset`
  77. ON `sf`.`License_Key_Association__c`.`License_Key__c` = `sf`.`Asset`.`Id`
  78. JOIN `sf`.`Contact`
  79. ON `sf`.`Contact`.`Id` = `sf`.`License_Key_Association__c`.`Contact__c`
  80. WHERE
  81. `sf`.`Contact`.`ExternalID__c`=@p_externalId;
  82.  
  83. OPEN cloud_accounts_cursor;
  84. CLOUDACCOUNTSLOOP: loop
  85.  
  86. fetch cloud_accounts_cursor into company, license_status, license_id, cloud_owner_email, entitlement_plan, role, is_trial, license_attributes;
  87.  
  88. IF is_trial = true THEN
  89. SET has_active_subscriptions = true;
  90. END IF;
  91.  
  92. SET zuora_account_id = `z`.`getZAccountId`(cloud_owner_email);
  93.  
  94. IF zuora_account_id IS NOT NULL THEN
  95. SELECT `accountNumber`,`status`,`lastInvoiceDate` INTO zuora_account_number,zuora_account_status,zuora_account_last_invoice_date FROM zuora.Account WHERE id=zuora_account_id;
  96.  
  97. IF has_active_subscriptions = false THEN
  98. SET has_active_subscriptions = (SELECT IF((SELECT COUNT(*) FROM `z`.`RatePlan`
  99. RIGHT JOIN `z`.`ProductRatePlan` ON `z`.`RatePlan`.`productRatePlanId` = `z`.`ProductRatePlan`.`id`
  100. LEFT JOIN `z`.`Subscription` ON `z`.`RatePlan`.`subscriptionId` = `z`.`Subscription`.`id`
  101. WHERE
  102. `z`.`ProductRatePlan`.`wowzaRatePlanCode__c` IN ( (SELECT `code` FROM `z`.`zCloudRatePlanCodes`) )
  103. AND `z`.`Subscription`.`status` = 'Active'
  104. AND `z`.`Subscription`.`accountId` = zuora_account_id ) > 0, true, false));
  105. END IF;
  106. END IF;
  107.  
  108. REPLACE INTO `sf`.`zCloudAccounts` (`user_email`,`company`,`license_status`,`license_id`,`cloud_owner_email`,`entitlement_plan`,`role`,`is_trial`,`attributes`,`zuora_account_id`,`zuora_account_number`,`zuora_account_status`,`zuora_account_last_invoice_date`,`has_active_subscriptions`) VALUES(@p_userEmail,company,license_status,license_id,cloud_owner_email,entitlement_plan,role,is_trial,license_attributes,zuora_account_id,zuora_account_number,zuora_account_status,zuora_account_last_invoice_date,has_active_subscriptions);
  109.  
  110. IF no_more_cloud_accounts_records THEN
  111. CLOSE cloud_accounts_cursor;
  112. LEAVE CLOUDACCOUNTSLOOP;
  113. end if;
  114.  
  115. END LOOP CLOUDACCOUNTSLOOP;
  116.  
  117. END GETCLOUDACCOUNTS;
  118.  
  119. company, license_status, license_id, cloud_owner_email, entitlement_plan, role, is_trial, license_attributes
  120. Test Company, Active, 02iq0000000jKgMAAU, myemail@email.com, Standard, Owner, 0, {""cloud"": {""cloud_num_247_t_streams"":""0"",""cloud_num_247_p_streams"":""0""}}
  121. Test Company, Active, 02iq0000000xlBBAAY, otheremail@email.com, Standard, Admin;wcl_admin;wcl_support, 0, {""cloud"": {""cloud_num_247_t_streams"":""1"",""cloud_num_247_p_streams"":""1"",""test_attribute"":""true"",""api_access"":""true""}}
  122.  
  123. company, license_status, license_id, cloud_owner_email, entitlement_plan, role, is_trial, license_attributes
  124. Test Company, Active, 02iq0000000jKgMAAU, myemail@email.com, Standard, Owner, 0, null
  125. Test Company, Active, 02iq0000000xlBBAAY, otheremail@email.com, Standard, Admin;wcl_admin;wcl_support, 0, null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement