CALCREFEREE.sql 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. DROP PROCEDURE IF EXISTS `CALCREFEREE`;
  2. delimiter ;;
  3. CREATE PROCEDURE `CALCREFEREE`(IN `PBONUSID` VARCHAR ( 50 ),
  4. OUT `PNEWBONUSID` VARCHAR ( 50 ))
  5. BEGIN
  6. DECLARE
  7. MUSERID,
  8. MBONUSID VARCHAR ( 50 );
  9. DECLARE
  10. MUSERTYPE INT;
  11. /*SET MUSERID := PBONUSID;
  12. OUTER_LABEL :
  13. WHILE
  14. (
  15. ISNULL( MBONUSID )) DO
  16. SELECT
  17. INTRODUCER_ID INTO MUSERID
  18. FROM
  19. AR_BS_BONUS_103_CALC_NET T
  20. WHERE
  21. T.USER_ID = MUSERID;
  22. IF
  23. ( MUSERID = 0 ) THEN
  24. SET PNEWBONUSID := NULL;
  25. LEAVE OUTER_LABEL;
  26. END IF;
  27. SELECT
  28. USER_TYPE INTO MUSERTYPE
  29. FROM
  30. AR_BS_BONUS_103_CALC_NET T
  31. WHERE
  32. T.USER_ID = MUSERID;
  33. IF
  34. ( MUSERTYPE >= 30 ) THEN
  35. SET PNEWBONUSID := MUSERID;
  36. LEAVE OUTER_LABEL;
  37. END IF;
  38. END WHILE;*/
  39. SELECT INTRODUCER_ID30 INTO PNEWBONUSID FROM AR_BS_BONUS_103_CALC_NET WHERE USER_ID = PBONUSID;
  40. END
  41. ;;
  42. delimiter ;
  43. -- ----------------------------
  44. -- Procedure structure for CALCSTAT
  45. -- ----------------------------
  46. DROP PROCEDURE IF EXISTS `CALCSTAT`;
  47. delimiter ;;
  48. CREATE PROCEDURE `CALCSTAT`(IN PCPID int)
  49. BEGIN
  50. INSERT INTO AR_CALC_BONUS_BS_STAT (
  51. PERIOD_NUM,
  52. TOTAL_PV,
  53. BONUS10,
  54. PERCENT10,
  55. BONUS20,
  56. PERCENT20,
  57. BONUS30,
  58. PERCENT30,
  59. BONUS40,
  60. PERCENT40,
  61. BONUS50,
  62. PERCENT50,
  63. BONUS60,
  64. PERCENT60,
  65. BONUS70,
  66. PERCENT70,
  67. BONUS80,
  68. PERCENT80,
  69. BONUS90,
  70. PERCENT90,
  71. BONUS100,
  72. PERCENT100,
  73. BONUS110,
  74. PERCENT110,
  75. BONUS,
  76. PERCENT,
  77. CHECK_STATUS,
  78. BONUS_MNT,
  79. BONUS_MNT_PERCENT,
  80. BONUS_ABBR,
  81. BONUS_ABBR_PERCENT
  82. ) SELECT
  83. PCPID,
  84. SUM( PV ),
  85. SUM( BONUS10 ),
  86. 0,
  87. SUM( BONUS20 ),
  88. 0,
  89. SUM( BONUS30 ),
  90. 0,
  91. SUM( BONUS40 ),
  92. 0,
  93. SUM( BONUS50 ),
  94. 0,
  95. SUM( BONUS60 ),
  96. 0,
  97. SUM( BONUS70 ),
  98. 0,
  99. SUM( BONUS80 ),
  100. 0,
  101. SUM( BONUS90 ),
  102. 0,
  103. SUM( BONUS100 ),
  104. 0,
  105. SUM( BONUS110 ),
  106. 0,
  107. SUM( BONUS ),
  108. 0,
  109. 0,
  110. SUM(BONUS_MNT),
  111. 0,
  112. SUM(BONUS_ABBR),
  113. 0
  114. FROM
  115. AR_BS_BONUS_103_CALC;
  116. UPDATE AR_CALC_BONUS_BS_STAT
  117. SET PERCENT10 = BONUS10 / TOTAL_PV,
  118. PERCENT20 = BONUS20 / TOTAL_PV,
  119. PERCENT30 = BONUS30 / TOTAL_PV,
  120. PERCENT40 = BONUS40 / TOTAL_PV,
  121. PERCENT50 = BONUS50 / TOTAL_PV,
  122. PERCENT60 = BONUS60 / TOTAL_PV,
  123. PERCENT70 = BONUS70 / TOTAL_PV,
  124. PERCENT80 = BONUS80 / TOTAL_PV,
  125. PERCENT90 = BONUS90 / TOTAL_PV,
  126. PERCENT100 = BONUS100 / TOTAL_PV,
  127. PERCENT110 = BONUS110 / TOTAL_PV,
  128. PERCENT = BONUS / TOTAL_PV,
  129. BONUS_MNT_PERCENT = BONUS_MNT / TOTAL_PV,
  130. BONUS_ABBR_PERCENT = BONUS_ABBR / TOTAL_PV
  131. WHERE
  132. PERIOD_NUM = PCPID AND TOTAL_PV > 0;
  133. END
  134. ;;