producttotalpricing.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. use WHMCS\Application;
  3. use WHMCS\Database\Capsule;
  4. require("../../init.php");
  5. /*
  6. *** USAGE SAMPLES ***
  7. <script language="javascript" src="feeds/producttotalpricing.php?pid=1&currency=1"></script>
  8. <script language="javascript" src="feeds/producttotalpricing.php?pid=5&currency=2"></script>
  9. */
  10. $whmcs = Application::getInstance();
  11. $pid = $whmcs->get_req_var('pid');
  12. $currencyid = $whmcs->get_req_var('currencyid');
  13. // Verify user input for pid exists, is numeric, and as is a valid id
  14. if (is_numeric($pid)) {
  15. $data = Capsule::table('tblproducts')
  16. ->where('id', '=', $pid)
  17. ->first();
  18. $pid = $data->id;
  19. $paytype = $data->paytype;
  20. } else {
  21. $pid = '';
  22. }
  23. if (!$pid) {
  24. widgetoutput('Product ID Not Found');
  25. }
  26. $currencyid = $whmcs->get_req_var('currency');
  27. // Support for older currencyid variable
  28. if (!$currencyid) {
  29. $currencyid = $whmcs->get_req_var('currencyid');
  30. }
  31. if (!is_numeric($currencyid)) {
  32. $currency = array();
  33. } else {
  34. $currency = getCurrency('', $currencyid);
  35. }
  36. if (!$currency || !is_array($currency) || !isset($currency['id'])) {
  37. $currency = getCurrency();
  38. }
  39. $currencyid = $currency['id'];
  40. $data = Capsule::table('tblpricing')
  41. ->where('type', '=', 'product')
  42. ->where('currency', '=', $currencyid)
  43. ->where('relid', '=', $pid)
  44. ->first();
  45. $msetupfee = $data->msetupfee;
  46. $qsetupfee = $data->qsetupfee;
  47. $ssetupfee = $data->ssetupfee;
  48. $asetupfee = $data->asetupfee;
  49. $bsetupfee = $data->bsetupfee;
  50. $tsetupfee = $data->tsetupfee;
  51. $monthly = $data->monthly;
  52. $quarterly = $data->quarterly;
  53. $semiannually = $data->semiannually;
  54. $annually = $data->annually;
  55. $biennially = $data->biennially;
  56. $triennially = $data->triennially;
  57. $configOptionsGroupID = Capsule::table('tblproductconfiglinks')
  58. ->where('pid', '=', $pid)
  59. ->select('gid')
  60. ->first();
  61. $configOptions = Capsule::table('tblproductconfigoptions')
  62. ->where('gid', '=', $configOptionsGroupID->gid)
  63. ->select('id','qtyminimum')
  64. ->get();
  65. foreach($configOptions as $configOption) {
  66. $configOptionSub = Capsule::table('tblproductconfigoptionssub')
  67. ->where('configid', '=', $configOption->id)
  68. ->select('id')
  69. ->first();
  70. $configOptionPrices = Capsule::table('tblpricing')
  71. ->where('type', '=', 'configoptions')
  72. ->where('relid', '=', $configOptionSub->id)
  73. ->where('currency', '=', $currencyid)
  74. ->first();
  75. $msetupfee += $configOptionPrices->msetupfee * $configOption->qtyminimum;
  76. $qsetupfee += $configOptionPrices->qsetupfee * $configOption->qtyminimum;
  77. $ssetupfee += $configOptionPrices->ssetupfee * $configOption->qtyminimum;
  78. $asetupfee += $configOptionPrices->asetupfee * $configOption->qtyminimum;
  79. $bsetupfee += $configOptionPrices->bsetupfee * $configOption->qtyminimum;
  80. $tsetupfee += $configOptionPrices->tsetupfee * $configOption->qtyminimum;
  81. $monthly += $configOptionPrices->monthly * $configOption->qtyminimum;
  82. $quarterly += $configOptionPrices->quarterly * $configOption->qtyminimum;
  83. $semiannually += $configOptionPrices->semiannually * $configOption->qtyminimum;
  84. $annually += $configOptionPrices->annually * $configOption->qtyminimum;
  85. $biennially += $configOptionPrices->biennially * $configOption->qtyminimum;
  86. $triennially += $configOptionPrices->triennially * $configOption->qtyminimum;
  87. }
  88. $systemurl = App::getSystemUrl();
  89. if ($paytype=="free") {
  90. $output .= $_LANG['orderfree'];
  91. } elseif ($paytype=="onetime") {
  92. $output .= formatCurrency($monthly);
  93. if ($msetupfee!="0.00") $output .= " + ".formatCurrency($msetupfee)." ".$_LANG['ordersetupfee'];
  94. } elseif ($paytype=="recurring") {
  95. if ($monthly>=0) {
  96. $output .= '<option value="monthly">'.formatCurrency($monthly).' - '.$_LANG['orderpaymenttermmonthly'];
  97. if($msetupfee!="0.00") $output .= " + ".formatCurrency($msetupfee)." ".$_LANG['ordersetupfee'];
  98. $output .= '</option>';
  99. }
  100. if ($quarterly>=0) {
  101. $output .= '<option value="quarterly">'.formatCurrency($quarterly).' - '.$_LANG['orderpaymentterm3month'];
  102. if($qsetupfee!="0.00") $output .= " + ".formatCurrency($qsetupfee)." ".$_LANG['ordersetupfee'];
  103. $output .= '</option>';
  104. }
  105. if ($semiannually>=0) {
  106. $output .= '<option value="semiannually">'.formatCurrency($semiannually).' - '.$_LANG['orderpaymentterm6month'];
  107. if($ssetupfee!="0.00") $output .= " + ".formatCurrency($ssetupfee)." ".$_LANG['ordersetupfee'];
  108. $output .= '</option>';
  109. }
  110. if ($annually>=0) {
  111. $output .= '<option value="annually">'.formatCurrency($annually).' - '.$_LANG['orderpaymentterm12month'];
  112. if($asetupfee!="0.00") $output .= " + ".formatCurrency($asetupfee)." ".$_LANG['ordersetupfee'];
  113. $output .= '</option>';
  114. }
  115. if ($biennially>=0) {
  116. $output .= '<option value="biennially">'.formatCurrency($biennially).' - '.$_LANG['orderpaymentterm24month'];
  117. if($bsetupfee!="0.00") $output .= " + ".formatCurrency($bsetupfee)." ".$_LANG['ordersetupfee'];
  118. $output .= '</option>';
  119. }
  120. if ($triennially>=0) {
  121. $output .= '<option value="triennially">'.formatCurrency($triennially).' - '.$_LANG['orderpaymentterm36month'];
  122. if($tsetupfee!="0.00") $output .= " + ".formatCurrency($tsetupfee)." ".$_LANG['ordersetupfee'];
  123. $output .= '</option>';
  124. }
  125. }
  126. widgetoutput($output);
  127. function widgetoutput($value) {
  128. echo "document.write('".$value."');";
  129. exit;
  130. }