migrations/Version20220630070135.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Auto-generated Migration: Please modify to your needs!
  8.  */
  9. final class Version20220630070135 extends AbstractMigration
  10. {
  11.     public function getDescription(): string
  12.     {
  13.         return '';
  14.     }
  15.     public function up(Schema $schema): void
  16.     {
  17.         $this->addSql('
  18. DROP TRIGGER IF EXISTS payment_insert;
  19. CREATE TRIGGER payment_insert
  20. AFTER INSERT ON reservation_payment
  21.     FOR EACH ROW 
  22. BEGIN
  23.         
  24. declare u_payed_price DECIMAL(10,2);
  25. select 
  26.       func_calculatePrice(
  27.                 SUM(amount),
  28.                 currency_rate.try,
  29.                 currency_rate.usd,
  30.                 currency_rate.eur,
  31.                 currency_rate.stg,
  32.                 reservation.currency,
  33.                 reservation_payment.currency
  34.             )
  35. into u_payed_price from reservation_payment 
  36. INNER JOIN currency_rate on currency_rate.id=reservation_payment.currency_rate_id
  37. INNER JOIN reservation on reservation.id=reservation_payment.reservation_id
  38. where reservation_payment.reservation_id=NEW.reservation_id and reservation_payment.deleted_at IS NULL; 
  39.     
  40. IF u_payed_price IS NOT NULL THEN    
  41.    SET u_payed_price=0;
  42. END IF;
  43. UPDATE reservation
  44. SET reservation.payed_price=u_payed_price, reservation.remaining_price=reservation.total_price-u_payed_price
  45. WHERE reservation.id=NEW.reservation_id; 
  46. END;
  47. DROP TRIGGER IF EXISTS payment_update;
  48. CREATE TRIGGER payment_update
  49. AFTER UPDATE ON reservation_payment
  50.     FOR EACH ROW 
  51. BEGIN
  52.         
  53. declare u_payed_price DECIMAL(10,2);
  54. select 
  55.       func_calculatePrice(
  56.                 SUM(amount),
  57.                 currency_rate.try,
  58.                 currency_rate.usd,
  59.                 currency_rate.eur,
  60.                 currency_rate.stg,
  61.                 reservation.currency,
  62.                 reservation_payment.currency
  63.             )
  64. into u_payed_price from reservation_payment 
  65. INNER JOIN currency_rate on currency_rate.id=reservation_payment.currency_rate_id
  66. INNER JOIN reservation on reservation.id=reservation_payment.reservation_id
  67. where reservation_payment.reservation_id=NEW.reservation_id and reservation_payment.deleted_at IS NULL; 
  68.     
  69.     
  70. IF u_payed_price IS NOT NULL THEN    
  71.    SET u_payed_price=0;
  72. END IF;
  73. UPDATE reservation
  74. SET reservation.payed_price=u_payed_price, reservation.remaining_price=reservation.total_price-u_payed_price
  75. WHERE reservation.id=NEW.reservation_id; 
  76. END;
  77. DROP TRIGGER IF EXISTS payment_delete;
  78. CREATE TRIGGER payment_delete
  79. AFTER DELETE ON reservation_payment
  80.     FOR EACH ROW 
  81. BEGIN
  82.         
  83. declare u_payed_price DECIMAL(10,2);
  84. select 
  85.       func_calculatePrice(
  86.                 SUM(amount),
  87.                 currency_rate.try,
  88.                 currency_rate.usd,
  89.                 currency_rate.eur,
  90.                 currency_rate.stg,
  91.                 reservation.currency,
  92.                 reservation_payment.currency
  93.             )
  94. into u_payed_price from reservation_payment 
  95. INNER JOIN currency_rate on currency_rate.id=reservation_payment.currency_rate_id
  96. INNER JOIN reservation on reservation.id=reservation_payment.reservation_id
  97. where reservation_payment.reservation_id=OLD.reservation_id and reservation_payment.deleted_at IS NULL; 
  98.         
  99. IF u_payed_price IS NOT NULL THEN    
  100.    SET u_payed_price=0;
  101. END IF;
  102. UPDATE reservation
  103. SET reservation.payed_price=u_payed_price, reservation.remaining_price=reservation.total_price-u_payed_price
  104. WHERE reservation.id=OLD.reservation_id; 
  105. END;
  106. DROP TRIGGER IF EXISTS reservation_update;
  107. CREATE TRIGGER reservation_update
  108. BEFORE UPDATE ON reservation
  109.     FOR EACH ROW 
  110. BEGIN
  111. declare discount_rate decimal(10,2);
  112. declare discount_type  varchar(20);
  113. declare discount_currency  varchar(20);
  114. declare u_payed_price DECIMAL(10,2);
  115. declare currtry DECIMAL(10,2);
  116. declare currusd DECIMAL(10,2);
  117. declare curreur DECIMAL(10,2);
  118. declare currstg DECIMAL(10,2);
  119. select
  120. discount.discount_type,
  121. discount.discount_rate,
  122. discount.currency
  123. into
  124. discount_type,
  125. discount_rate,
  126. discount_currency
  127. from discount_coupons
  128. INNER JOIN discount on discount.id=discount_coupons.discount_id
  129. WHERE
  130. discount_coupons.id=NEW.discount_coupon_id;
  131. SELECT 
  132. currency_rate.try,
  133. currency_rate.usd,
  134. currency_rate.eur,
  135. currency_rate.stg
  136. INTO
  137. currtry,
  138. currusd,
  139. curreur,
  140. currstg
  141. FROM currency_rate where id=NEW.currency_rate_id;
  142. IF discount_type IS NOT NULL AND discount_rate IS NOT NULL THEN
  143.     IF discount_type="NET" THEN
  144.         set NEW.total_price=NEW.base_price-    func_calculatePrice(
  145.                 discount_rate,
  146.                 currtry,
  147.                 currusd,
  148.                 curreur,
  149.                 currstg,
  150.                 NEW.currency,
  151.                 discount_currency
  152.             );
  153.     ELSE
  154.         set NEW.total_price=NEW.base_price-((NEW.base_price/100)*discount_rate);
  155.     END IF;
  156.     
  157.     
  158. ELSE
  159.  set NEW.total_price=NEW.base_price;
  160.  set NEW.total_cost=NEW.base_cost;
  161. END IF;
  162. set NEW.total_price=NEW.total_price+IFNULL(NEW.eb_insurance_fee,0);
  163. select 
  164.       func_calculatePrice(
  165.                 SUM(amount),
  166.                 currency_rate.try,
  167.                 currency_rate.usd,
  168.                 currency_rate.eur,
  169.                 currency_rate.stg,
  170.                 reservation.currency,
  171.                 reservation_payment.currency
  172.             )
  173. into u_payed_price from reservation_payment 
  174. INNER JOIN currency_rate on currency_rate.id=reservation_payment.currency_rate_id
  175. INNER JOIN reservation on reservation.id=reservation_payment.reservation_id
  176. where reservation_payment.reservation_id=NEW.id and reservation_payment.deleted_at IS NULL; 
  177. IF u_payed_price IS NOT NULL THEN
  178. SET NEW.payed_price=u_payed_price;
  179. SET NEW.remaining_price=NEW.total_price-u_payed_price;
  180. ELSE
  181. SET NEW.payed_price=0;
  182. SET NEW.remaining_price=NEW.total_price;
  183. END IF;
  184. END;
  185. ########################################
  186. ########################################
  187. DROP TRIGGER IF EXISTS reservation_insert;
  188. CREATE TRIGGER reservation_insert
  189. BEFORE INSERT ON reservation
  190.     FOR EACH ROW 
  191. BEGIN
  192.         
  193. SET NEW.payed_price=0;
  194. SET NEW.remaining_price=0;
  195. SET NEW.hotel_count=0;
  196. SET NEW.flight_count=0;
  197. SET NEW.transfer_count=0;
  198. SET NEW.tour_count=0;
  199. SET NEW.adt_count=0;
  200. SET NEW.chd_count=0;
  201. SET NEW.total_price=0;
  202. SET NEW.total_cost=0;
  203. END;
  204. ############calculateReservation##############
  205. DROP PROCEDURE IF EXISTS calculateReservation;
  206. CREATE PROCEDURE `calculateReservation`(in pReservationId INT)
  207. BEGIN
  208. declare adt_count, chd_count, hotel_count, flight_count, transfer_count, tour_count INT;
  209. declare total_price, total_cost  decimal(10,2);
  210. declare check_in, check_out VARCHAR(45);
  211. set check_in="0000-00-00";
  212. set check_out="0000-00-00";
  213. set total_price=0;
  214. set total_cost=0;
  215. set adt_count=0;
  216. set chd_count=0;
  217. set hotel_count=0;
  218. set flight_count=0;
  219. set transfer_count=0;
  220. set tour_count=0;
  221. #########PAX########
  222. select 
  223. SUM(CASE reservation_pax.type WHEN "ADT" THEN 1 ELSE 0 END) AS cAdt,
  224. SUM(CASE reservation_pax.type WHEN "CHD" THEN 1 ELSE 0 END) AS cChd
  225. into
  226. adt_count,
  227. chd_count
  228. from reservation_pax
  229. where reservation_pax.reservation_id=pReservationId
  230. ;
  231. #########PAX########
  232. select
  233.     SUM(TB.cFlight),
  234.     SUM(TB.cHotel),
  235.     SUM(TB.cTransfer),
  236.     SUM(TB.cTour),
  237.     SUM(TB.cPrice),
  238.     SUM(TB.cCost),
  239.     min(TB.cCheckIn),
  240.   max(TB.cCheckOut)
  241.     into
  242.     flight_count,
  243.     hotel_count,
  244.     transfer_count,
  245.     tour_count,
  246.     total_price,
  247.     total_cost,
  248.     check_in,
  249.     check_out
  250.     
  251.     from(
  252.     #########HOTEL########
  253.     select 
  254.     0 as cFlight,
  255.     COUNT(reservation_hotel.id) AS cHotel,
  256.     0 as cTransfer,
  257.     0 as cTour,
  258.     SUM(
  259.           func_calculatePrice(
  260.                 reservation_hotel.price,
  261.                 currency_rate.try,
  262.                 currency_rate.usd,
  263.                 currency_rate.eur,
  264.                 currency_rate.stg,
  265.                 reservation.currency,
  266.                 reservation_hotel.currency
  267.             )
  268.     ) as cPrice,
  269.     SUM(
  270.             func_calculatePrice(
  271.                 reservation_hotel.cost,
  272.                 currency_rate.try,
  273.                 currency_rate.usd,
  274.                 currency_rate.eur,
  275.                 currency_rate.stg,
  276.                 reservation.currency,
  277.                 reservation_hotel.currency
  278.             )
  279.     ) as cCost,
  280.     reservation_hotel.check_in as cCheckIn,
  281.     reservation_hotel.check_out as cCheckOut
  282.     from reservation_hotel
  283.     INNER JOIN currency_rate on currency_rate.id=reservation_hotel.currency_rate_id
  284.     INNER JOIN reservation on reservation.id=reservation_hotel.reservation_id
  285.     where reservation_hotel.reservation_id=pReservationId
  286.     and reservation_hotel.deleted_at IS NULL
  287.     #########HOTEL########
  288.     union
  289.     
  290.     #########TRANSFER########
  291.     select 
  292.     0 as cFlight,
  293.     0 as cHotel,
  294.     COUNT(reservation_transfer.id) AS cTransfer,
  295.     0 as cTour,
  296.     SUM(
  297.          func_calculatePrice(
  298.                 reservation_transfer.price,
  299.                 currency_rate.try,
  300.                 currency_rate.usd,
  301.                 currency_rate.eur,
  302.                 currency_rate.stg,
  303.                 reservation.currency,
  304.                 reservation_transfer.currency
  305.             )
  306.     ) as cPrice,
  307.     SUM(
  308.          func_calculatePrice(
  309.                 reservation_transfer.cost,
  310.                 currency_rate.try,
  311.                 currency_rate.usd,
  312.                 currency_rate.eur,
  313.                 currency_rate.stg,
  314.                 reservation.currency,
  315.                 reservation_transfer.currency
  316.             )
  317.     ) as cCost,
  318.     "9999-01-01" as cCheckIn,
  319.     "0000-00-00" as cCheckOut
  320.     from reservation_transfer
  321.     INNER JOIN currency_rate on currency_rate.id=reservation_transfer.currency_rate_id
  322.     INNER JOIN reservation on reservation.id=reservation_transfer.reservation_id
  323.     where reservation_transfer.reservation_id=pReservationId
  324.     and reservation_transfer.deleted_at IS NULL
  325.     #########TRANSFER########
  326.     union
  327.     
  328.     #########TOUR########
  329.     select 
  330.     0 as cFlight,
  331.     0 as cHotel,
  332.     0 as cTransfer,
  333.     COUNT(reservation_tour.id) AS cTour,
  334.     SUM(
  335.          func_calculatePrice(
  336.                 reservation_tour.price,
  337.                 currency_rate.try,
  338.                 currency_rate.usd,
  339.                 currency_rate.eur,
  340.                 currency_rate.stg,
  341.                 reservation.currency,
  342.                 reservation_tour.currency
  343.             )
  344.     ) as cPrice,
  345.     SUM(
  346.          func_calculatePrice(
  347.                 reservation_tour.cost,
  348.                 currency_rate.try,
  349.                 currency_rate.usd,
  350.                 currency_rate.eur,
  351.                 currency_rate.stg,
  352.                 reservation.currency,
  353.                 reservation_tour.currency
  354.             )
  355.     ) as cCost,
  356.     "9999-01-01" as cCheckIn,
  357.     "0000-00-00" as cCheckOut
  358.     from reservation_tour
  359.     INNER JOIN currency_rate on currency_rate.id=reservation_tour.currency_rate_id
  360.     INNER JOIN reservation on reservation.id=reservation_tour.reservation_id
  361.     where reservation_tour.reservation_id=pReservationId
  362.     and reservation_tour.deleted_at IS NULL
  363.     #########TOUR########
  364.         
  365.     union
  366.         
  367.     #########TOUREXTRA########
  368.     select 
  369.     0 as cFlight,
  370.     0 as cHotel,
  371.     0 as cTransfer,
  372.     0 AS cTour,
  373.     SUM(
  374.              func_calculatePrice(
  375.                 reservation_tour_extra.price,
  376.                 currency_rate.try,
  377.                 currency_rate.usd,
  378.                 currency_rate.eur,
  379.                 currency_rate.stg,
  380.                 reservation.currency,
  381.                 reservation_tour_extra.currency
  382.             )
  383.     ) as cPrice,
  384.     SUM(
  385.              func_calculatePrice(
  386.                 reservation_tour_extra.cost,
  387.                 currency_rate.try,
  388.                 currency_rate.usd,
  389.                 currency_rate.eur,
  390.                 currency_rate.stg,
  391.                 reservation.currency,
  392.                 reservation_tour_extra.currency
  393.             )
  394.     ) as cCost,
  395.     "9999-01-01" as cCheckIn,
  396.     "0000-00-00" as cCheckOut
  397.     from reservation_tour_extra
  398.     INNER JOIN currency_rate on currency_rate.id=reservation_tour_extra.currency_rate_id
  399.     INNER JOIN reservation on reservation.id=reservation_tour_extra.reservation_id
  400.     where reservation_tour_extra.reservation_id=pReservationId
  401.     and reservation_tour_extra.deleted_at IS NULL
  402.     #########TOUREXTRA########
  403.     
  404.     union
  405.         
  406.     #########FLIGHT########
  407.     select 
  408.     COUNT(reservation_flight.id) as cFlight,
  409.     0 as cHotel,
  410.     0 as cTransfer,
  411.     0 AS cTour,
  412.     SUM( 
  413.          func_calculatePrice(
  414.                 reservation_flight.price,
  415.                 currency_rate.try,
  416.                 currency_rate.usd,
  417.                 currency_rate.eur,
  418.                 currency_rate.stg,
  419.                 reservation.currency,
  420.                 reservation_flight.currency
  421.             )
  422.     ) as cPrice,
  423.     SUM(
  424.             func_calculatePrice(
  425.                 reservation_flight.cost,
  426.                 currency_rate.try,
  427.                 currency_rate.usd,
  428.                 currency_rate.eur,
  429.                 currency_rate.stg,
  430.                 reservation.currency,
  431.                 reservation_flight.currency
  432.             )
  433.     ) as cCost,
  434.     "9999-01-01" as cCheckIn,
  435.     "0000-00-00" as cCheckOut
  436.     from reservation_flight
  437.     INNER JOIN currency_rate on currency_rate.id=reservation_flight.currency_rate_id
  438.     INNER JOIN reservation on reservation.id=reservation_flight.reservation_id
  439.     where reservation_flight.reservation_id=pReservationId
  440.     and reservation_flight.is_cancelled=0
  441.     and reservation_flight.deleted_at IS NULL
  442.     #########FLIGHT########
  443.     
  444.     
  445. ) AS TB;
  446. IF total_price IS NULL THEN
  447.     set total_price=0;
  448. END IF;
  449. IF total_cost IS NULL THEN
  450.     set total_cost=0;
  451. END IF;
  452. IF adt_count IS NULL THEN
  453.     set adt_count=0;
  454. END IF;
  455. IF chd_count IS NULL THEN
  456.     set chd_count=0;
  457. END IF;
  458. IF hotel_count IS NULL THEN
  459.     set hotel_count=0;
  460. END IF;
  461. IF flight_count IS NULL THEN
  462.     set flight_count=0;
  463. END IF;
  464. IF transfer_count IS NULL THEN
  465.     set transfer_count=0;
  466. END IF;
  467. IF tour_count IS NULL THEN
  468.     set tour_count=0;
  469. END IF;
  470. IF check_in IS NULL THEN
  471.     set check_in="0000-00-000";
  472. END IF;
  473. IF check_out IS NULL THEN
  474.     set check_out="0000-00-000";
  475. END IF;
  476. update reservation
  477. SET 
  478.         reservation.total_price=total_price,
  479.         reservation.base_price=total_price,
  480.         reservation.total_cost=total_cost,
  481.         reservation.base_cost=total_cost,
  482.         reservation.adt_count=adt_count,
  483.         reservation.chd_count=chd_count,
  484.         reservation.hotel_count=hotel_count,
  485.         reservation.flight_count=flight_count,
  486.         reservation.transfer_count=transfer_count,
  487.         reservation.tour_count=tour_count,
  488.         reservation.check_in=check_in,
  489.         reservation.check_out=check_out
  490. WHERE reservation.id = pReservationId;
  491. END;
  492. ############calculateReservation##############
  493. ############RESERVATION_PAX##############
  494. DROP TRIGGER IF EXISTS reservationPax_update;
  495. CREATE TRIGGER reservationPax_update
  496. AFTER UPDATE ON reservation_pax
  497.     FOR EACH ROW 
  498. BEGIN
  499.         
  500. CALL calculateReservation(NEW.reservation_id);
  501. END;
  502. DROP TRIGGER IF EXISTS reservationPax_insert;
  503. CREATE TRIGGER reservationPax_insert
  504. AFTER INSERT ON reservation_pax
  505.     FOR EACH ROW 
  506. BEGIN
  507. CALL calculateReservation(NEW.reservation_id);
  508. END;
  509. DROP TRIGGER IF EXISTS reservationPax_delete;
  510. CREATE TRIGGER reservationPax_delete
  511. AFTER DELETE ON reservation_pax
  512.     FOR EACH ROW 
  513. BEGIN
  514. CALL calculateReservation(OLD.reservation_id);
  515. END;
  516. ############RESERVATION_PAX##############
  517. ############RESERVATION_HOTEL##############
  518. DROP TRIGGER IF EXISTS reservationHotel_update;
  519. CREATE TRIGGER reservationHotel_update
  520. AFTER UPDATE ON reservation_hotel
  521.     FOR EACH ROW 
  522. BEGIN
  523.         
  524. CALL calculateReservation(NEW.reservation_id);
  525. END;
  526. DROP TRIGGER IF EXISTS reservationHotel_insert;
  527. CREATE TRIGGER reservationHotel_insert
  528. AFTER INSERT ON reservation_hotel
  529.     FOR EACH ROW 
  530. BEGIN
  531. CALL calculateReservation(NEW.reservation_id);
  532. END;
  533. DROP TRIGGER IF EXISTS reservationHotel_delete;
  534. CREATE TRIGGER reservationHotel_delete
  535. AFTER DELETE ON reservation_hotel
  536.     FOR EACH ROW 
  537. BEGIN
  538. CALL calculateReservation(OLD.reservation_id);
  539. END;
  540. ############RESERVATION_HOTEL##############
  541. ############RESERVATION_TRANSFER##############
  542. DROP TRIGGER IF EXISTS reservationTransfer_update;
  543. CREATE TRIGGER reservationTransfer_update
  544. AFTER UPDATE ON reservation_transfer
  545.     FOR EACH ROW 
  546. BEGIN
  547.         
  548. CALL calculateReservation(NEW.reservation_id);
  549. END;
  550. DROP TRIGGER IF EXISTS reservationTransfer_insert;
  551. CREATE TRIGGER reservationTransfer_insert
  552. AFTER INSERT ON reservation_transfer
  553.     FOR EACH ROW 
  554. BEGIN
  555. CALL calculateReservation(NEW.reservation_id);
  556. END;
  557. DROP TRIGGER IF EXISTS reservationTransfer_delete;
  558. CREATE TRIGGER reservationTransfer_delete
  559. AFTER DELETE ON reservation_transfer
  560.     FOR EACH ROW 
  561. BEGIN
  562. CALL calculateReservation(OLD.reservation_id);
  563. END;
  564. ############RESERVATION_TRANSFER##############
  565. ############RESERVATION_TOUR##############
  566. DROP TRIGGER IF EXISTS reservationTour_update;
  567. CREATE TRIGGER reservationTour_update
  568. AFTER UPDATE ON reservation_tour
  569.     FOR EACH ROW 
  570. BEGIN
  571.         
  572. CALL calculateReservation(NEW.reservation_id);
  573. CALL calculateTourPriceQuata(NEW.id);
  574. END;
  575. DROP TRIGGER IF EXISTS reservationTour_insert;
  576. CREATE TRIGGER reservationTour_insert
  577. AFTER INSERT ON reservation_tour
  578.     FOR EACH ROW 
  579. BEGIN
  580. CALL calculateReservation(NEW.reservation_id);
  581. END;
  582. DROP TRIGGER IF EXISTS reservationTour_delete;
  583. CREATE TRIGGER reservationTour_delete
  584. AFTER DELETE ON reservation_tour
  585.     FOR EACH ROW 
  586. BEGIN
  587. CALL calculateReservation(OLD.reservation_id);
  588. END;
  589. ############RESERVATION_TOUR##############
  590. ############RESERVATION_TOUR_EXTRA##############
  591. DROP TRIGGER IF EXISTS reservationTourExtra_update;
  592. CREATE TRIGGER reservationTourExtra_update
  593. AFTER UPDATE ON reservation_tour_extra
  594.     FOR EACH ROW 
  595. BEGIN
  596.         
  597. CALL calculateReservation(NEW.reservation_id);
  598. END;
  599. DROP TRIGGER IF EXISTS reservationTourExtra_insert;
  600. CREATE TRIGGER reservationTourExtra_insert
  601. AFTER INSERT ON reservation_tour_extra
  602.     FOR EACH ROW 
  603. BEGIN
  604. CALL calculateReservation(NEW.reservation_id);
  605. END;
  606. DROP TRIGGER IF EXISTS reservationTourExtra_delete;
  607. CREATE TRIGGER reservationTourExtra_delete
  608. AFTER DELETE ON reservation_tour_extra
  609.     FOR EACH ROW 
  610. BEGIN
  611. CALL calculateReservation(OLD.reservation_id);
  612. END;
  613. ############RESERVATION_TOUR_EXTRA##############
  614. ############RESERVATION_FLIGHT##############
  615. DROP TRIGGER IF EXISTS reservationFlight_update;
  616. CREATE TRIGGER reservationFlight_update
  617. AFTER UPDATE ON reservation_flight
  618.     FOR EACH ROW 
  619. BEGIN
  620.         
  621. CALL calculateReservation(NEW.reservation_id);
  622. END;
  623. DROP TRIGGER IF EXISTS reservationFlight_insert;
  624. CREATE TRIGGER reservationFlight_insert
  625. AFTER INSERT ON reservation_flight
  626.     FOR EACH ROW 
  627. BEGIN
  628. CALL calculateReservation(NEW.reservation_id);
  629. END;
  630. DROP TRIGGER IF EXISTS reservationFlight_delete;
  631. CREATE TRIGGER reservationFlight_delete
  632. AFTER DELETE ON reservation_flight
  633.     FOR EACH ROW 
  634. BEGIN
  635. CALL calculateReservation(OLD.reservation_id);
  636. END;
  637. ############RESERVATION_FLIGHT##############
  638. ############calculatePrice##############
  639. DROP FUNCTION IF EXISTS func_calculatePrice;
  640. CREATE FUNCTION `func_calculatePrice`(v_price  decimal(10,2),
  641.  v_rateTRY decimal(10,2),
  642.  v_rateUSD decimal(10,2),
  643.  v_rateEUR decimal(10,2), 
  644.  v_rateSTG decimal(10,2),
  645.  v_reservationMasterCurrency VARCHAR(5),
  646.  v_reservationCurrency VARCHAR(5)
  647. ) RETURNS decimal(10,2)
  648. BEGIN
  649. declare price decimal(10,2);
  650. select
  651. Tb1.price into price
  652. FROM(
  653.     select
  654.     (
  655.     CASE v_reservationMasterCurrency
  656.         WHEN "TRY" THEN
  657.             priceTRY/v_rateTRY
  658.         WHEN "USD" THEN
  659.             priceTRY/v_rateUSD
  660.         WHEN "EUR" THEN
  661.             priceTRY/v_rateEUR
  662.         WHEN "STG" THEN
  663.             priceTRY/v_rateSTG
  664.     END
  665.     ) as price
  666.     FROM
  667.     (
  668.         SELECT
  669.         (
  670.         CASE v_reservationCurrency
  671.             WHEN "TRY" THEN
  672.                 v_price*v_rateTRY
  673.             WHEN "USD" THEN
  674.                 v_price*v_rateUSD
  675.             WHEN "EUR" THEN
  676.                 v_price*v_rateEUR    
  677.             WHEN "STG" THEN
  678.                 v_price*v_rateSTG
  679.         END
  680.         ) as priceTRY
  681.     ) as Tb
  682. ) as Tb1
  683. ;
  684. RETURN price;
  685. END;
  686. ############calculatePrice##############
  687. ############getPotential##################
  688. DROP PROCEDURE IF EXISTS getPotential;
  689. CREATE PROCEDURE `getPotential`(
  690.     in pProcessFrom VARCHAR (45),
  691.     in pProcessTo VARCHAR (45),
  692.     in pCheckInFrom VARCHAR (45),
  693.     in pCheckInTo VARCHAR (45),
  694.     in pCheckOutFrom VARCHAR (45),
  695.     in pCheckOutTo VARCHAR (45)
  696. )
  697. BEGIN
  698. select 
  699. *,
  700. DATE(created_at) as date,
  701. count(1) as count
  702. from search_log_hotel
  703. where 
  704.      created_at >= pProcessFrom and created_at <= pProcessTo
  705.      and check_in >= pCheckInFrom and check_in <= pCheckInTo
  706.      and check_out >= pCheckOutFrom and check_in <= pCheckOutTo
  707.      and user_id<>5 and user_id IS NOT NULL
  708. GROUP BY DATE(created_at), user_id, hotel_id,hotel_destination_id, adt,chd
  709. order by DATE(created_at),count desc
  710. ;
  711. END;
  712. ############getPotential##################
  713. ############calculateTourPriceQuata##############
  714. DROP PROCEDURE IF EXISTS calculateTourPriceQuata;
  715. CREATE DEFINER=`td_mysql_user`@`%` PROCEDURE `calculateTourPriceQuata`(
  716.     in tourProgramId INT (11)
  717. )
  718. BEGIN
  719. DECLARE var_TourProgramId INT(11);
  720. DECLARE var_seat INT(11) DEFAULT 0;
  721. select 
  722. tour_price_id
  723. INTO
  724. var_TourProgramId
  725. from reservation_tour
  726. where reservation_tour.id=tourProgramId;
  727. IF var_TourProgramId IS NOT NULL THEN
  728.     BEGIN
  729.     select
  730.         count(distinct(reservation_pax.id)) INTO var_seat
  731.     from reservation_tour 
  732.     INNER JOIN reservation on reservation.id=reservation_tour.reservation_id
  733.     INNER JOIN reservation_pax on reservation_pax.reservation_id=reservation_tour.reservation_id
  734.     where 
  735.     tour_price_id=var_TourProgramId
  736.     and reservation.status NOT IN(\'LEAD\',\'WAITING_PAYMENT\',\'WAITING_TRANSFER\',\'CANCEL\')
  737.     ;
  738.     
  739.     UPDATE tour_price SET reel_quata = (quata - var_seat) WHERE id = var_TourProgramId;
  740.          
  741.     END;
  742. END IF;
  743.     
  744. END;
  745. ############calculateTourPriceQuata##############
  746. #################tourTrigger_update############
  747. DROP TRIGGER IF EXISTS tourTrigger_update;
  748. CREATE TRIGGER tourTrigger_update
  749. AFTER UPDATE ON tour
  750.     FOR EACH ROW 
  751. BEGIN
  752.         
  753. UPDATE seo_page
  754. SET status = NEW.status
  755. WHERE tour_id=NEW.id;
  756. END;
  757. #################tourTrigger_update############
  758. #################hotelTrigger_update############
  759. DROP TRIGGER IF EXISTS hotelTrigger_update;
  760. CREATE TRIGGER hotelTrigger_update
  761. AFTER UPDATE ON hotel
  762.     FOR EACH ROW 
  763. BEGIN
  764. UPDATE seo_page sp
  765. SET sp.status = NEW.status
  766. WHERE sp.hotel_id=NEW.id;
  767.  IF (NEW.`status` != OLD.`status`) THEN
  768.     INSERT INTO hotel_log (hotel_id,user_id,`status`) VALUES (NEW.id,NULL,NEW.`status`);
  769.  END IF;
  770. END;
  771. #################hotelTrigger_update############
  772. '
  773.         );
  774.     }
  775.     public function down(Schema $schema): void
  776.     {
  777.         $this->addSql('DROP TRIGGER IF EXISTS tourTrigger_update;');
  778.         $this->addSql('DROP TRIGGER IF EXISTS hotelTrigger_update;');
  779.         $this->addSql('DROP TRIGGER IF EXISTS payment_update;');
  780.         $this->addSql('DROP TRIGGER IF EXISTS payment_insert;');
  781.         $this->addSql('DROP TRIGGER IF EXISTS payment_delete;');
  782.         $this->addSql('DROP TRIGGER IF EXISTS reservation_update;');
  783.         $this->addSql('DROP TRIGGER IF EXISTS reservation_insert;');
  784.         $this->addSql('DROP TRIGGER IF EXISTS reservationHotel_insert;');
  785.         $this->addSql('DROP TRIGGER IF EXISTS reservationHotel_update;');
  786.         $this->addSql('DROP TRIGGER IF EXISTS reservationHotel_delete;');
  787.         $this->addSql('DROP TRIGGER IF EXISTS reservationFlight_insert;');
  788.         $this->addSql('DROP TRIGGER IF EXISTS reservationFlight_update;');
  789.         $this->addSql('DROP TRIGGER IF EXISTS reservationFlight_delete;');
  790.         $this->addSql('DROP TRIGGER IF EXISTS reservationTransfer_insert;');
  791.         $this->addSql('DROP TRIGGER IF EXISTS reservationTransfer_update;');
  792.         $this->addSql('DROP TRIGGER IF EXISTS reservationTransfer_delete;');
  793.         $this->addSql('DROP TRIGGER IF EXISTS reservationTour_insert;');
  794.         $this->addSql('DROP TRIGGER IF EXISTS reservationTour_update;');
  795.         $this->addSql('DROP TRIGGER IF EXISTS reservationTour_delete;');
  796.         $this->addSql('DROP PROCEDURE  IF EXISTS calculateReservation;');
  797.         $this->addSql('DROP FUNCTION  IF EXISTS func_calculatePrice;');
  798.     }
  799. }