src/Controller/DeliveryslotapiController.php line 2862

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Pimcore\Controller\FrontendController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use symfony\Component\Routing\Annotation\Route;
  7. use Pimcore\Model\DataObject;
  8. use Pimcore\Model\Asset\Service;
  9. use Pimcore\Model\DataObject\Service as DoService;
  10. use Carbon\Carbon;
  11. use Pimcore\Model\User;
  12. use Firebase\JWT\JWT;
  13. use Firebase\JWT\Key;
  14. class DeliveryslotapiController extends FrontendController
  15. {
  16.     public function __construct()
  17.     {
  18.         header('X-Content-Type-Options: nosniff');
  19.         header("X-Frame-Options: SAMEORIGIN");
  20.         header("Content-Security-Policy: default-src 'self';script-src 'self'");
  21.         header("Server: Ubuntu");
  22.         $origin $_SERVER['HTTP_ORIGIN'] ?? '';
  23.  
  24.         if (preg_match('/^https:\/\/([a-z0-9-]+\.)*itcstore\.in$/i'$origin)) {
  25.             header("Access-Control-Allow-Origin: $origin");
  26.             header("Access-Control-Allow-Methods: GET, POST");
  27.             header("Access-Control-Allow-Headers: X-Requested-With");
  28.         }
  29.     }
  30.     /**
  31.      * @Route("/holidays/getlist")
  32.      */
  33.     public function getlistAction()
  34.     {
  35.         $api_log_info "API:Get All Holidays - ".date("YmdHis")." ".time();
  36.         $log_data "Started - ".$api_log_info;
  37.         SELF::createApiLog($log_data);
  38.         $holidaysList DataObject\Holidays::getList();
  39.         $holidaysList->load();
  40.         
  41.         $log_data $api_log_info." | holidaysList Count:".json_encode(count($holidaysList));
  42.         SELF::createApiLog($log_data);
  43.         $message SELF::verifyauthToken($api_log_info);
  44.         $log_data $api_log_info." | message:".json_encode($message);
  45.         SELF::createApiLog($log_data);
  46.         $data $message;
  47.         if($message == "No data found")
  48.         {
  49.             if(count($holidaysList) > 0){
  50.                 foreach ($holidaysList as $key => $holidayInfo) {  
  51.                     $log_data $api_log_info." | holidayInfo:".json_encode($holidayInfo);
  52.                     SELF::createApiLog($log_data);
  53.                     
  54.                     $location_codes $holidayInfo->getlocation_code();
  55.                     $loc_name '';
  56.                     $log_data $api_log_info." | location_codes:".json_encode($location_codes);
  57.                     SELF::createApiLog($log_data);
  58.                     foreach($location_codes as $location_code){
  59.                         $loc_name .= $location_code->getlocation_name().' ';
  60.                     }
  61.                     $log_data $api_log_info." | loc_name:".json_encode($loc_name);
  62.                     SELF::createApiLog($log_data);
  63.                     $data[] = array(
  64.                         "name" => $holidayInfo->getname(),
  65.                         "loc_name" => $loc_name,
  66.                         "holidaydate" => $holidayInfo->getHolidaydate());
  67.                     $log_data $api_log_info." | data:".json_encode($data);
  68.                     SELF::createApiLog($log_data);
  69.                 }
  70.             } else $data[] = [];
  71.         }
  72.         // return $slotsList;
  73.         $returndata = ["success" => true"data" => $data];
  74.         $log_data "Ended - ".$api_log_info." | returndata:".json_encode($returndata);
  75.         SELF::createApiLog($log_data);
  76.         return $this->json(["success" => true"data" => $data]);
  77.     }
  78.     /*-------------------------------- Slots Related APIs ----------------------------*/
  79.     /**
  80.      * @Route("/deliveryslots/list")
  81.      */
  82.     public function listAction()
  83.     {
  84.         $api_log_info "API:Get Delivery Slots based on Today and Current Time - ".date("YmdHis")." ".time();
  85.         $log_data "Started - ".$api_log_info;
  86.         SELF::createApiLog($log_data);
  87.         $today_date strtotime("Y-m-d");
  88.         $cur_time date("H:i");
  89.         $log_data $api_log_info." | today_date:".json_encode($today_date)." | cur_time:".json_encode($cur_time);
  90.         SELF::createApiLog($log_data);
  91.         $slotsList DataObject\Slots::getList();
  92.         $slotsList->setCondition("slotdate >= ? AND prior_time >= ?",[$today_date$cur_time]);
  93.         // $slotsList->setOffset(0);
  94.         $slotsList->setLimit(100);
  95.         $slotsList->setOrderKey("slotdate");
  96.         $slotsList->setOrder("desc");
  97.         $slotsList->load();
  98.         // $slotsList = DataObject\Slots::getList();
  99.         // $slotsList->setOffset(0);
  100.         // $slotsList->setLimit(10);
  101.         // $slotsList->load();
  102.         $log_data $api_log_info." | slotsList count:".json_encode(count($slotsList));
  103.         SELF::createApiLog($log_data);
  104.         // if(count($slotsList) > 0){
  105.             foreach ($slotsList as $key => $slotInfo) {
  106.                 $log_data $api_log_info." | slotInfo:".json_encode($slotInfo);
  107.                 SELF::createApiLog($log_data);
  108.                 // $location_code = $blog->getlocation_code()->getlocation_code();
  109.                 // $location_code = (!empty($slotInfo->getloc_id()) && $slotInfo->getloc_id())?$slotInfo->getloc_id()->getlocation_code():'';
  110.                 // $loc_name = (!empty($slotInfo->getloc_id()) && $slotInfo->getloc_id())?$slotInfo->getloc_id()->getlocation_name():'';
  111.                 $slotLocationData DataObject\Locations::getById($slotInfo->getLoc_id());
  112.                 $loc_name = (!empty($slotLocationData) && $slotLocationData->getlocation_name())?$slotLocationData->getlocation_name():'';
  113.                 $location_code = (!empty($slotLocationData) && $slotLocationData->getlocation_code())?$slotLocationData->getlocation_code():'';
  114.                 // foreach($location_codes as $location_code){
  115.                 //     $loc_name = $location_code->getlocation_name();
  116.                 // }
  117.                 $log_data $api_log_info." | location_code:".json_encode($location_code)." | loc_name:".json_encode($loc_name);
  118.                 SELF::createApiLog($log_data);
  119.                 $data[] = array(
  120.                     "slotId" => $slotInfo->getId(),
  121.                     "prior_time" => $slotInfo->getprior_time(),
  122.                     // "picking_time" => $slotInfo->getpicking_time(),
  123.                     "location_code" => $location_code,
  124.                     "loc_name" => $loc_name,
  125.                     // "charge" => $slotInfo->getcharge(),
  126.                     "slotdate" => $slotInfo->getslotdate(),
  127.                     "fromtime" => $slotInfo->getfromtime(),
  128.                     "totime" => $slotInfo->gettotime(),
  129.                     "maxorder" => $slotInfo->getmaxorder(),
  130.                     "ordercount" => $slotInfo->getordercount(),
  131.                     "delivery_mode" => $slotInfo->getdelivery_mode());
  132.                 
  133.                 $log_data $api_log_info." | data:".json_encode($data);
  134.                 SELF::createApiLog($log_data);
  135.             }
  136.         // } else $data[] = [];
  137.         // return $slotsList;
  138.         $returnData = ["success" => true"data" => $data];
  139.         $log_data "Ended - ".$api_log_info." | returnData:".json_encode($returnData);
  140.         SELF::createApiLog($log_data);
  141.         return $this->json(["success" => true"data" => $data]);
  142.     }
  143.     /**
  144.      * @Route("/deliveryslots/saveslots")
  145.      */
  146.     public function saveslotsAction()
  147.     {
  148.         $api_log_info "API:Generating / Saving Delivery Slots - ".date("YmdHis")." ".time();
  149.         $log_data "Started - ".$api_log_info;
  150.         SELF::createApiLog($log_data);
  151.         /*--------------- Settings info ----------------*/
  152.         $settingsInfo SELF::getSettingInfo($api_log_info);
  153.         $log_data $api_log_info." | settingsInfo:".json_encode($settingsInfo);
  154.         SELF::createApiLog($log_data);
  155.         /*----------- End of Settings Info -------------*/
  156.         // echo 'settingsInfo:<pre>';
  157.         // echo $settingsInfo['stg_deliveryslot_config_is_upcountry_configuration_applicable'];
  158.         // print_r($settingsInfo); die;
  159.         $locationsList DataObject\Locations::getList();
  160.         $locationsList->load();
  161.         $log_data $api_log_info." | locationsList count:".json_encode(count($locationsList));
  162.         SELF::createApiLog($log_data);
  163.         foreach($locationsList as $location)//Start of Locations Loop
  164.         {
  165.             $log_data $api_log_info." | location:".json_encode($location);
  166.             SELF::createApiLog($log_data);
  167.             //echo "<br>Id:".$location->getId()."|Location Name:".$location->getLocation_name()."|Location Code:".$location->getLocation_code();
  168.             $location_id $location->getId();
  169.             $locationName $location->getLocation_name();
  170.             $locationCode $location->getLocation_code();
  171.             /*------ Check Location is Up Country or not --------*/
  172.             $Is_location_up_country = (strpos(strtolower($locationName),"up country") || strpos(strtoupper($locationCode),"UPCTR"))?1:0;
  173.             $log_data $api_log_info." | location_id:".json_encode($location_id)." | locationName:".json_encode($locationName)." | locationCode:".json_encode($locationCode)." | Is_location_up_country:".json_encode($Is_location_up_country);
  174.             SELF::createApiLog($log_data);
  175.             $holidaysList DataObject\Holidays::getList();
  176.             $holidaysList->setCondition("location_code like '%,".$location_id.",%'");
  177.             $holidaysList->load();
  178.             // if(count($holidaysList) > 0)
  179.             // {
  180.                 $holidayDates $rangeDates = [];
  181.                 foreach($holidaysList as $holiday)
  182.                 {
  183.                     $log_data $api_log_info." | holiday:".json_encode($holiday);
  184.                     SELF::createApiLog($log_data);
  185.                     $holiday_locations_list $holiday->getLocation_code();
  186.                     $holidaydate $holiday->getHolidaydate();
  187.                     $holidayDate date("Y-m-d"strtotime($holidaydate));
  188.                     $holidaysenddate $holiday->getHolidaysenddate();
  189.                     $log_data $api_log_info." | holiday_locations_list:".json_encode($holiday_locations_list)." | holidaydate:".json_encode($holidaydate)." | holidaysenddate:".json_encode($holidaysenddate);
  190.                     SELF::createApiLog($log_data);
  191.                     if(!empty($holidaysenddate) && $holidaysenddate){
  192.                         $holidaysenddate date("Y-m-d"strtotime($holidaysenddate));
  193.                         $rangeDates self::getDatesFromRange($holidayDate$holidaysenddate);
  194.                         $log_data $api_log_info." | rangeDates:".json_encode($rangeDates)." | holidaysenddate:".json_encode($holidaysenddate);
  195.                         SELF::createApiLog($log_data);
  196.                         foreach($rangeDates as $rangeDateInfo){
  197.                             $log_data $api_log_info." | rangeDateInfo:".json_encode($rangeDateInfo);
  198.                             SELF::createApiLog($log_data);
  199.                             array_push($holidayDates,$rangeDateInfo);
  200.                             $log_data $api_log_info." | holidayDates:".json_encode($holidayDates);
  201.                             SELF::createApiLog($log_data);
  202.                         }
  203.                     } else {
  204.                         array_push($holidayDates,$holidayDate);
  205.                         $log_data $api_log_info." | holidayDate:".json_encode($holidayDate)." | holidayDates:".json_encode($holidayDates);
  206.                         SELF::createApiLog($log_data);
  207.                     }
  208.                 }
  209.                 // if(!empty($rangeDates)){
  210.                 //     echo '<pre>'; print_r($holidayDates); die;
  211.                 // }
  212.                 /*----------- Delivery Slot Times Loop Starts --------*/
  213.                 $deliveryslottimesList DataObject\Deliveryslottimes::getList();
  214.                 $deliveryslottimesList->load();
  215.                 //echo '<br>deliveryslottimesList Count:'.count($deliveryslottimesList);
  216.                 $log_data $api_log_info." | deliveryslottimesList Count:".json_encode(count($deliveryslottimesList));
  217.                 SELF::createApiLog($log_data);
  218.                 if(count($deliveryslottimesList)>0)
  219.                 {
  220.                     foreach($deliveryslottimesList as $deliveryslottimes)
  221.                     {
  222.                         $log_data $api_log_info." | deliveryslottimes:".json_encode($deliveryslottimes);
  223.                         SELF::createApiLog($log_data);
  224.                         // echo '<pre>deliveryslottimes:'; print_r($deliveryslottimes); //die;
  225.                         $slot_prepare_days = ($deliveryslottimes->getprepare_days())?$deliveryslottimes->getprepare_days():0;
  226.                         $slot_generate_days = ($deliveryslottimes->getslot_generate_days())?$deliveryslottimes->getslot_generate_days():7;
  227.                         $saturday_slot_availability = ($deliveryslottimes->getsaturday_slot_availability())?$deliveryslottimes->getsaturday_slot_availability():'No';
  228.                         $sunday_slot_availability = ($deliveryslottimes->getsunday_slot_availability())?$deliveryslottimes->getsunday_slot_availability():'No';
  229.                         $slot_generate_days $slot_generate_days+$settingsInfo['stg_normalloc_slot_generate_days']; 
  230.                         $log_data $api_log_info." | slot_prepare_days:".json_encode($slot_prepare_days)." | slot_generate_days:".json_encode($slot_generate_days)." | saturday_slot_availability:".json_encode($saturday_slot_availability)." | sunday_slot_availability:".json_encode($sunday_slot_availability)." | setting stg_normalloc_slot_generate_days:".json_encode($settingsInfo['stg_normalloc_slot_generate_days'])." | slot_generate_days:".json_encode($slot_generate_days);
  231.                         SELF::createApiLog($log_data);
  232.                         /*--------------------- Up Country Configuration ------------------------*/
  233.                         $is_upcountry_configuration_applicable = ($deliveryslottimes->getis_upcountry_configuration_applicable())?$deliveryslottimes->getis_upcountry_configuration_applicable():'No';
  234.                         $slot_upcountry_prepare_days = ($deliveryslottimes->getupcountry_prepare_days())?$deliveryslottimes->getupcountry_prepare_days():0;
  235.                         $upcountry_slot_generate_days = ($deliveryslottimes->getupcountry_slot_generate_days())?$deliveryslottimes->getupcountry_slot_generate_days():7;
  236.                         $upcountry_saturday_slot_availability = ($deliveryslottimes->getupcountry_saturday_slot_availability())?$deliveryslottimes->getupcountry_saturday_slot_availability():'No';
  237.                         $upcountry_sunday_slot_availability = ($deliveryslottimes->getupcountry_sunday_slot_availability())?$deliveryslottimes->getupcountry_sunday_slot_availability():'No';
  238.                         $upcountry_slot_generate_days $upcountry_slot_generate_days+$settingsInfo['stg_upcountryloc_slot_generate_days']; 
  239.                         $log_data $api_log_info." | is_upcountry_configuration_applicable:".json_encode($is_upcountry_configuration_applicable)." | slot_upcountry_prepare_days:".json_encode($slot_upcountry_prepare_days)." | upcountry_slot_generate_days:".json_encode($upcountry_slot_generate_days)." | upcountry_saturday_slot_availability:".json_encode($upcountry_saturday_slot_availability)." | upcountry_sunday_slot_availability:".json_encode($upcountry_sunday_slot_availability)." | setting stg_upcountryloc_slot_generate_days:".json_encode($settingsInfo['stg_upcountryloc_slot_generate_days'])." | upcountry_slot_generate_days:".json_encode($upcountry_slot_generate_days);
  240.                         SELF::createApiLog($log_data);
  241.                         if($settingsInfo['stg_deliveryslot_config_is_upcountry_configuration_applicable'] == 'Yes' && $Is_location_up_country == 1)//if($is_upcountry_configuration_applicable == 'Yes' && $Is_location_up_country == 1)
  242.                             $delSlotTimesAvailibility = ['slot_prepare_days'=>$slot_upcountry_prepare_days,'slot_generate_days'=>$upcountry_slot_generate_days,'saturday_slot_availability'=>$upcountry_saturday_slot_availability,'sunday_slot_availability'=>$upcountry_sunday_slot_availability];
  243.                         else
  244.                             $delSlotTimesAvailibility = ['slot_prepare_days'=>$slot_prepare_days,'slot_generate_days'=>$slot_generate_days,'saturday_slot_availability'=>$saturday_slot_availability,'sunday_slot_availability'=>$sunday_slot_availability];
  245.                         $log_data $api_log_info." | delSlotTimesAvailibility:".json_encode($delSlotTimesAvailibility);
  246.                         SELF::createApiLog($log_data);
  247.                         // echo '<pre>delSlotTimesAvailibility:'; print_r($delSlotTimesAvailibility); //die;
  248.                         $weekdates self::getWeekDates($holidayDatesdate("Y-m-d"), $delSlotTimesAvailibility);
  249.                         // echo '<pre>weekdates:'; print_r($weekdates);
  250.                         $log_data $api_log_info." | weekdates:".json_encode($weekdates);
  251.                         SELF::createApiLog($log_data);
  252.                         foreach($weekdates as $weekdate)
  253.                         {
  254.                             $log_data $api_log_info." | weekdate:".json_encode($weekdate);
  255.                             SELF::createApiLog($log_data);
  256.                             $slotsList DataObject\Deliveryslotrules::getList();
  257.                             // $slotsList->setCondition("location_code like '%,".$location_id.",%'");
  258.                             $slotsList->setCondition("location_ids IS NOT NULL AND location_ids like '%,".$location_id.",%'");
  259.                             $slotsList->load();
  260.                             //echo '<br>slotsList Count:'.count($slotsList);
  261.                             $log_data $api_log_info." | slotsList count:".json_encode(count($slotsList));
  262.                             SELF::createApiLog($log_data);
  263.                             if(count($slotsList) > 0)
  264.                             {
  265.                                 foreach($slotsList as $slot)
  266.                                 {
  267.                                     $log_data $api_log_info." | slot:".json_encode($slot);
  268.                                     SELF::createApiLog($log_data);
  269.                                     $prior_time $slot->getprior_time();
  270.                                     $location_codes $slot->getlocation_ids();//$slot->getlocation_code();
  271.                                     // $picking_time = $slot->getpicking_time();
  272.                                     $delivery_mode $slot->getdelivery_mode();
  273.                                     // $charge = $slot->getcharge();
  274.                                     $fromtime $slot->getfromtime();
  275.                                     $totime $slot->gettotime();
  276.                                     $maxorder $slot->getmaxorder();
  277.                                     // $ordercount = $slot->getordercount();
  278.                                     $date $weekdate;//$slot->getslotdate();
  279.                                     $date2 date("m/d/y"strtotime($date));
  280.                                     $dates Carbon::createFromFormat('m/d/y'$date2);
  281.                                     $location_code_array = [];
  282.                                     // echo '<pre>location_codes Count:'.count($location_codes);
  283.                                     $log_data $api_log_info." | location_codes:".json_encode($location_codes);
  284.                                     SELF::createApiLog($log_data);
  285.                                     if(!empty($location_codes))
  286.                                     {
  287.                                         foreach($location_codes as $location_id_info){//foreach($location_codes as $location_code){//Location Code loop Starts
  288.                                             $log_data $api_log_info." | location_id_info:".json_encode($location_id_info);
  289.                                             SELF::createApiLog($log_data);
  290.                                             if($location_id == $location_id_info)//if($location_id == $location_code->getId())
  291.                                             {
  292.                                                 $log_data $api_log_info." | location_id:".json_encode($location_id)." | location_id_info:".json_encode($location_id_info);
  293.                                                 SELF::createApiLog($log_data);
  294.                                                 // $location_code_array[] = DataObject\Locations::getById($location_code->getId());
  295.                                                 // $location_code_id = DataObject\Locations::getById($location_code->getId());
  296.     
  297.                                                 // $loc_id = $location_code->getId();
  298.     
  299.                                                 $location_code_array[] = DataObject\Locations::getById($location_id_info);
  300.                                                 $location_code_id DataObject\Locations::getById($location_id_info);
  301.                                                 $log_data $api_log_info." | location_code_id:".json_encode($location_code_id);
  302.                                                 SELF::createApiLog($log_data);
  303.     
  304.                                                 $loc_id $location_id_info;
  305.     
  306.                                                 /*----------- Delivery Slot Times Loop Starts --------*/
  307.                                                 // $deliveryslottimesList = DataObject\Deliveryslottimes::getList();
  308.                                                 // $deliveryslottimesList->load();
  309.                                                 // //echo '<br>deliveryslottimesList Count:'.count($deliveryslottimesList);
  310.                                                 // if(count($deliveryslottimesList)>0)
  311.                                                 // {
  312.                                                 //     foreach($deliveryslottimesList as $deliveryslottimes)
  313.                                                 //     {
  314.                                                         /*------------ Checking the slot data -------------*/
  315.                                                         $slotCheck 1;
  316.                                                         $today_date date("Y-m-d"strtotime($weekdate));
  317.                                                         $cur_time $prior_time;
  318.     
  319.                                                         $checkDataList DataObject\Slots::getList();
  320.     
  321.                                                         if ($checkDataList->getClass()->getFieldDefinition('slotdate')->isFilterable()) {
  322.                                                             $checkDataList->filterBySlotdate($today_date'=');
  323.                                                         }
  324.     
  325.                                                         if ($checkDataList->getClass()->getFieldDefinition('prior_time')->isFilterable()) {
  326.                                                             $checkDataList->filterByprior_time($cur_time'=');
  327.                                                         }
  328.     
  329.                                                         if ($checkDataList->getClass()->getFieldDefinition('delivery_mode')->isFilterable()) {
  330.                                                             $checkDataList->filterBydelivery_mode($delivery_mode'=');
  331.                                                         }
  332.                                                         // $checkDataList->setCondition("loc_id__id = ".$loc_id);
  333.                                                         // $checkDataList->setCondition("delivery_mode = '".$delivery_mode."' ");
  334.     
  335.                                                         $checkDataList->setLimit(100);
  336.                                                         $checkDataList->setOrderKey("slotdate");
  337.                                                         $checkDataList->setOrder("asc");
  338.                                                         $checkDataList->load();
  339.                                                         //echo '<br>checkDataList Count:'.count($checkDataList);
  340.     
  341.                                                         $checkData_loc_valid 0$checkData_locs = [];
  342.                                                         $log_data $api_log_info." | checkDataList count:".json_encode(count($checkDataList));
  343.                                                         SELF::createApiLog($log_data);
  344.                                                         
  345.                                                         if(count($checkDataList) > 0)
  346.                                                         {
  347.                                                             foreach($checkDataList as $checkData)
  348.                                                             {
  349.                                                                 $log_data $api_log_info." | checkData:".json_encode($checkData);
  350.                                                                 SELF::createApiLog($log_data);
  351.                                                         
  352.                                                                 // $checkData_locData = $checkData->getloc_id();
  353.                                                                 // $checkData_locId = $checkData_locData->getId();
  354.                                                                 $checkData_locId $checkData->getloc_id();
  355.                                                                 array_push($checkData_locs$checkData_locId);
  356.                                                                 $log_data $api_log_info." | checkData_locId:".json_encode($checkData_locId)." | checkData_locs:".json_encode($checkData_locs);
  357.                                                                 SELF::createApiLog($log_data);
  358.                                                             }
  359.                                                         }
  360.                                                         $checkData_loc_valid = (empty($checkData_locs) || (!empty($checkData_locs) && !in_array($loc_id$checkData_locs)) || count($checkDataList) <= 0)?1:0;
  361.                                                         $log_data $api_log_info." | checkData_loc_valid:".json_encode($checkData_loc_valid);
  362.                                                         SELF::createApiLog($log_data);
  363.     
  364.                                                         // echo '<br>checkData_locId:'.$checkData_locId;
  365.                                                         // echo '<pre>checkData_locs:';
  366.                                                         // print_r($checkData_locs);
  367.                                                         // echo '<br>checkData_loc_valid:'.$checkData_loc_valid;
  368.                                                         /*------------ End of Checking the slot data -------------*/
  369.     
  370.                                                         if($checkData_loc_valid == 1){
  371.                                                             // $generateObjFolderId = self::generateSlotObjFolder('Slots',$delivery_mode,$loc_id);
  372.     
  373.                                                             $createAssetFolder DoService::createFolderByPath('Slots');
  374.                                                             $objParentId $createAssetFolder->getId();
  375.     
  376.                                                             // $holidayObjectName = $location_code.'-'.$name;
  377.                                                             $slotObjectName $weekdate.'-'.$loc_id.'-'.$slot->getId().'-'.$deliveryslottimes->getId().'-'.time();
  378.     
  379.                                                             $slotObject = new DataObject\Slots(); 
  380.                                                             $slotObject->setKey(\Pimcore\Model\Element\Service::getValidKey($slotObjectName'object'));
  381.                                                             $slotObject->setParentId($objParentId);
  382.                                                             $slotObject->setPrior_time($prior_time);
  383.                                                             // $slotObject->setPicking_time($picking_time);
  384.                                                             $slotObject->setDelivery_mode($delivery_mode);
  385.                                                             // $slotObject->setSlotdate($date2);
  386.                                                             $slotObject->setSlotdate($dates);
  387.                                                             $slotObject->setfromtime($fromtime);
  388.                                                             $slotObject->settotime($totime);
  389.                                                             $slotObject->setmaxorder($maxorder);
  390.     
  391.                                                             // $slotObject->setLocation_code($location_code_array);
  392.     
  393.                                                             // $slotObject->setCharge($charge);
  394.                                                             $slotObject->setdeliveryslottime_id(DataObject\Deliveryslottimes::getById($deliveryslottimes->getId()));
  395.                                                             // $slotObject->setloc_id(DataObject\Locations::getById($location_code->getId()));
  396.                                                             // $slotObject->setloc_id(DataObject\Locations::getById($location_id_info));
  397.                                                             $slotObject->setloc_id($location_id_info);
  398.     
  399.                                                             $slotObject->setPublished(true);
  400.                                                             $slotObject->save();
  401.                                                             $log_data $api_log_info." | objParentId :".json_encode($objParentId)." | slotObjectName :".json_encode($slotObjectName)." | save slot : success";
  402.                                                             SELF::createApiLog($log_data);
  403.                                                         }
  404.                                                 //     }
  405.                                                 // }
  406.                                             }
  407.                                             /*---------- Delivery Slot Time loop ends ------------*/
  408.                                         }//Location Code loop ends
  409.                                     }
  410.                                 }
  411.                             }
  412.                         }
  413.                     }
  414.                 }
  415.             // }
  416.         }//End of Locations Loop
  417.         
  418.         $log_data "Ended - ".$api_log_info." | data : Slot Created for one week Successfully'";
  419.         SELF::createApiLog($log_data);
  420.         return $this->json(["success" => true"data" => 'Slot Created for one week Successfully']);
  421.     }
  422.     /**
  423.      * @Route("deliveryslots/updateslotordercount", methods={"POST"})
  424.      */
  425.     public function updateslotordercountAction(Request $request)
  426.     {
  427.         $api_log_info "API:Update Delivery Slot Order Count based on slotId - ".date("YmdHis")." ".time();
  428.         $log_data "Started - ".$api_log_info;
  429.         SELF::createApiLog($log_data);
  430.         $message SELF::verifyauthToken($api_log_info);
  431.         $log_data $api_log_info." | message:".json_encode($message);
  432.         SELF::createApiLog($log_data);
  433.         $data = [];
  434.         if($message == "No data found")
  435.         {
  436.             $slotId $request->get('slotId');
  437.             $ordercount $request->get('ordercount');
  438.             $log_data $api_log_info." | slotId:".json_encode($slotId)." | ordercount:".json_encode($ordercount);
  439.             SELF::createApiLog($log_data);
  440.             if($slotId == "" || $ordercount == "")
  441.             {
  442.                 $data "slotId and ordercount are mandatory!";
  443.                 $log_data $api_log_info." | data:".json_encode($data);
  444.                 SELF::createApiLog($log_data);
  445.             } else 
  446.             {
  447.                 $slotruleObject DataObject\Slots::getById($slotId);
  448.                 $log_data $api_log_info." | slotruleObject:".json_encode($slotruleObject);
  449.                 SELF::createApiLog($log_data);
  450.                 if(!empty($slotruleObject) && $slotruleObject->getId()){
  451.                     $slotruleObject->setordercount($ordercount);
  452.                     $slotruleObject->save();
  453.                     $data "Slot Updated Successfully!";
  454.                     $log_data $api_log_info." | data:".json_encode($data);
  455.                     SELF::createApiLog($log_data);
  456.                 } else {
  457.                     $data "This Slot Id ".$slotId." is not existed, Please try with valid Slot Id";
  458.                     $log_data $api_log_info." | data:".json_encode($data);
  459.                     SELF::createApiLog($log_data);
  460.                 }
  461.             }
  462.         }else $data[] = ['message'=>$message];
  463.         $data = (empty($data))?$message:$data;
  464.         $returnData = ["success" => true"data" => $data];
  465.         $log_data "Ended - ".$api_log_info." | returnData:".json_encode($returnData);
  466.         SELF::createApiLog($log_data);
  467.         return $this->json(["success" => true"data" => $message]);
  468.     }
  469.     /**
  470.      * @Route("/deliveryslots/getSlot/{id}")
  471.      */
  472.     public function getSlot($id)
  473.     {
  474.         $api_log_info "API:Slot Info by Slot ID | ID:".$id." - ".date("YmdHis")." ".time();
  475.         $log_data "Started - ".$api_log_info;
  476.         SELF::createApiLog($log_data);
  477.         $message SELF::verifyauthToken($api_log_info);
  478.         $log_data $api_log_info." | message:".json_encode($message);
  479.         SELF::createApiLog($log_data);
  480.         $data = [];
  481.         if($message == "No data found")
  482.         {
  483.             $slot DataObject\Slots::getById($id);  
  484.         
  485.             $log_data $api_log_info." | slot:".json_encode($slot);
  486.             SELF::createApiLog($log_data);
  487.             if(isset($slot) && $slot->getId() != ''){
  488.                 
  489.                 $slotLocationData DataObject\Locations::getById($slot->getLoc_id());
  490.                 $loc_name = (!empty($slotLocationData) && $slotLocationData->getlocation_name())?$slotLocationData->getlocation_name():'';
  491.                 $loc_code = (!empty($slotLocationData) && $slotLocationData->getlocation_code())?$slotLocationData->getlocation_code():'';
  492.                 $log_data $api_log_info." | slotLocationData:".json_encode($slotLocationData)." | loc_name:".json_encode($loc_name)." | loc_code:".json_encode($loc_code);
  493.                 SELF::createApiLog($log_data);
  494.                 $data = array(
  495.                     "prior_time" => $slot->getprior_time(),
  496.                     // "picking_time" => $slot->getpicking_time(),
  497.                     // "charge" => $slot->getcharge(),
  498.                     "slotdate" => date("Y-m-d"strtotime($slot->getslotdate())),//$slot->getslotdate(),
  499.                     "loc_code" => $loc_code,
  500.                     "loc_name" => $loc_name,
  501.                     "fromtime" => $slot->getfromtime(),
  502.                     "totime" => $slot->gettotime(),
  503.                     "maxorder" => $slot->getmaxorder(),
  504.                     "ordercount" => $slot->getordercount(),
  505.                     "delivery_mode" => $slot->getdelivery_mode());
  506.                 $log_data $api_log_info." | data:".json_encode($data);
  507.                 SELF::createApiLog($log_data);
  508.             } else {
  509.                 $data "No data found";
  510.                 $log_data $api_log_info." | data:".json_encode($data);
  511.                 SELF::createApiLog($log_data);
  512.             }   
  513.         }else $data[] = ['message'=>$message];
  514.         $data = (empty($data))?$message:$data;  
  515.         
  516.         $returnData = ["success" => true"data" => $data];
  517.         $log_data "Ended - ".$api_log_info." | returnData:".json_encode($returnData);
  518.         SELF::createApiLog($log_data);
  519.         
  520.         // return $slotsList;
  521.         return $this->json(["success" => true"data" => $data]);
  522.     }
  523.     /**
  524.      * @Route("/deliveryslots/getStoreslot/{id}")
  525.      */
  526.     public function getStoreslot($id)
  527.     {
  528.         $api_log_info "API:Get Delivery Slots based on Location Code for Today and Time only | ID:".$id." - ".date("YmdHis")." ".time();
  529.         $log_data "Started - ".$api_log_info;
  530.         SELF::createApiLog($log_data);
  531.         $message SELF::verifyauthToken($api_log_info);
  532.         $log_data $api_log_info." | message:".json_encode($message);
  533.         SELF::createApiLog($log_data);
  534.         $data $message;
  535.         if($message == "No data found")
  536.         {
  537.             $data ="No data found";
  538.             if($id == "")
  539.             {
  540.                 $data ="Location Code is mandatory!";
  541.                 $log_data $api_log_info." | data:".json_encode($data);
  542.                 SELF::createApiLog($log_data);
  543.             } else 
  544.             {
  545.                 /*---- Check Location by Location Code ---------*/
  546.                 $locData DataObject\Locations::getBylocation_code($id1);
  547.                 $log_data $api_log_info." | locData:".json_encode($locData);
  548.                 SELF::createApiLog($log_data);
  549.                 if(empty($locData) || empty($locData->getId()))
  550.                 {
  551.                     $data "Location is not exited, please try with valid location code!";
  552.                     $log_data $api_log_info." | data:".json_encode($data);
  553.                     SELF::createApiLog($log_data);
  554.                 } else {
  555.                     $loc_id $locData->getId();
  556.                     $today_date date("Y-m-d");//"2024-01-03";//
  557.                     $cur_time date("H:i");
  558.                     $log_data $api_log_info." | loc_id:".json_encode($loc_id)." | today_date:".json_encode($today_date)." | cur_time:".json_encode($cur_time);
  559.                     SELF::createApiLog($log_data);
  560.                     $slotsList DataObject\Slots::getList();
  561.                     if ($slotsList->getClass()->getFieldDefinition('slotdate')->isFilterable()) {
  562.                         $slotsList->filterBySlotdate($today_date'=');
  563.                     }
  564.                     if ($slotsList->getClass()->getFieldDefinition('prior_time')->isFilterable()) {
  565.                         $slotsList->filterByprior_time($cur_time'>=');
  566.                     }
  567.                     $slotsList->setCondition("loc_id = ".$loc_id);
  568.                     $slotsList->setLimit(100);
  569.                     $slotsList->setOrderKey("slotdate");
  570.                     $slotsList->setOrder("asc");
  571.                     $slotsList->load();
  572.                     $log_data $api_log_info." | slotsList count:".json_encode(count($slotsList));
  573.                     SELF::createApiLog($log_data);
  574.                     $data = [];
  575.                     if(count($slotsList) > 0){
  576.                         foreach ($slotsList as $key => $slotInfo) {
  577.                             $log_data $api_log_info." | slotInfo:".json_encode($slotInfo);
  578.                             SELF::createApiLog($log_data);
  579.                             $slotLocationData DataObject\Locations::getById($slotInfo->getLoc_id());
  580.                             $log_data $api_log_info." | slotLocationData:".json_encode($slotLocationData);
  581.                             SELF::createApiLog($log_data);
  582.                             $loc_name $slotLocationData->getlocation_name();
  583.                             $loc_code $slotLocationData->getlocation_code();
  584.                             $log_data $api_log_info." | loc_name:".json_encode($loc_name)." | loc_code:".json_encode($loc_code);
  585.                             SELF::createApiLog($log_data);
  586.                 
  587.                             // if($loc_name != 0 && $loc_name == $id){
  588.                             // if(!empty($loc_codes) && in_array($id, $loc_codes)){//&& $id!= '' 
  589.                                 // if(!empty($blog->getloc_id()) && $blog->getloc_id()->getlocation_code() == $id){//&& $id!= '' 
  590.                                 $data[] = array(
  591.                                     "slotId" => $slotInfo->getId(),
  592.                                     "prior_time" => $slotInfo->getprior_time(),
  593.                                     // "picking_time" => $slotInfo->getpicking_time(),
  594.                                     "location_code" => $loc_code,
  595.                                     "loc_name" => $loc_name,
  596.                                     // "charge" => $slotInfo->getcharge(),
  597.                                     "slotdate" => $slotInfo->getslotdate(),
  598.                                     "fromtime" => $slotInfo->getfromtime(),
  599.                                     "totime" => $slotInfo->gettotime(),
  600.                                     "maxorder" => $slotInfo->getmaxorder(),
  601.                                     "ordercount" => $slotInfo->getordercount(),
  602.                                     "delivery_mode" => $slotInfo->getdelivery_mode());
  603.                                 $log_data $api_log_info." | data:".json_encode($data);
  604.                                 SELF::createApiLog($log_data);
  605.                             //}
  606.                         }
  607.                     } else $data "No data found";
  608.                 }
  609.             }
  610.         }
  611.         $return_data = ["success" => true"data" => $data];
  612.         $log_data $api_log_info." | return_data:".json_encode($return_data);
  613.         SELF::createApiLog($log_data);
  614.         
  615.         return $this->json(["success" => true"data" => $data]);
  616.     }
  617.     /**
  618.      * @Route("/deliveryslottime/gelocslottimes/{locCode}")
  619.      */
  620.     public function gelocslottimesAction($locCode)
  621.     {
  622.         date_default_timezone_set('Asia/Kolkata');
  623.         $api_log_info "API:Retriving Delivery Slots by Location Code | locCode:".$locCode." - ".date("YmdHis")." ".time();
  624.         $log_data "Started - ".$api_log_info;
  625.         SELF::createApiLog($log_data);
  626.         $message SELF::verifyauthToken($api_log_info);
  627.         $log_data $api_log_info." | message:".json_encode($message);
  628.         SELF::createApiLog($log_data);
  629.         $Is_location_up_country $is_upcountry_configuration_applicable '';
  630.         if($message == "No data found")
  631.         {
  632.             $today_date date("Y-m-d");
  633.             $tomorrow_date date('Y-m-d'strtotime($today_date ' +1 day'));
  634.             $dates_list = array($today_date$tomorrow_date);
  635.             
  636.             $log_data $api_log_info." | dates_list:".json_encode($dates_list);
  637.             SELF::createApiLog($log_data);
  638.             /*---- Check Location by Location Code ---------*/
  639.             $locationData DataObject\Locations::getBylocation_code($locCode1);
  640.             
  641.             $log_data $api_log_info." | locationData:".json_encode($locationData);
  642.             SELF::createApiLog($log_data);
  643.             /*--------------- Settings info ----------------*/
  644.             $settingsInfo SELF::getSettingInfo($api_log_info);
  645.             $log_data $api_log_info." | settingsInfo:".json_encode($settingsInfo);
  646.             SELF::createApiLog($log_data);
  647.             /*----------- End of Settings Info -------------*/
  648.              /*--------- Getting Delivery Modes settings ----------*/
  649.             $setting_slot_time_flag $settingsInfo['setting_slot_time_flag'];
  650.             $setting_deliveryModes $settingsInfo['setting_deliveryModes'];
  651.             $settingDataId $settingsInfo['settingDataId'];
  652.             // echo 'settingsInfo:<pre>';
  653.             // print_r($settingsInfo); die;
  654.             
  655.             $log_data $api_log_info." | setting_slot_time_flag:".json_encode($setting_slot_time_flag)."| setting_deliveryModes:".json_encode($setting_deliveryModes)."| settingDataId:".json_encode($settingDataId);
  656.             SELF::createApiLog($log_data);
  657.             if(!empty($locationData) && !empty($locationData->getId()))
  658.             {
  659.                 $parentLoc_id $locationData->getId();
  660.                 $parentLocationName $locationData->getLocation_name();
  661.                 $parentLocationCode $locationData->getLocation_code();
  662.                 $fastDelivery $locationData->getfastDeliveryAvailable();
  663.                 $location_type $locationData->getlocation_type();
  664.                 /*------ Check Location is Up Country or not --------*/
  665.                 $Is_location_up_country = (strpos(strtolower($parentLocationName),"up country") || strpos(strtoupper($parentLocationCode),"UPCTR"))?1:0;
  666.                 $log_data $api_log_info." | parentLoc_id:".json_encode($parentLoc_id)."| parentLocationName:".json_encode($parentLocationName)."| parentLocationCode:".json_encode($parentLocationCode);
  667.                 SELF::createApiLog($log_data);
  668.                 //------ get holidays list ------------//
  669.                 $holidaysList DataObject\Holidays::getList();
  670.                 $holidaysList->setCondition("location_code like '%,".$parentLoc_id.",%'");
  671.                 $holidaysList->load();
  672.                 
  673.                 $holidayDates = [];
  674.                 foreach($holidaysList as $holiday)
  675.                 {
  676.                     $log_data $api_log_info." | holiday:".json_encode($holiday);
  677.                     SELF::createApiLog($log_data);
  678.                     $holiday_locations_list $holiday->getLocation_code();
  679.                     $holidaydate $holiday->getHolidaydate();
  680.                     $holidayDate date("Y-m-d"strtotime($holidaydate));
  681.                     $log_data $api_log_info." | holiday_locations_list:".json_encode($holiday_locations_list)."| holidaydate:".json_encode($holidaydate);
  682.                     SELF::createApiLog($log_data);
  683.                     
  684.                     $holidaysenddate $holiday->getHolidaysenddate();
  685.                     if(!empty($holidaysenddate) && $holidaysenddate){
  686.                         $holidaysenddate date("Y-m-d"strtotime($holidaysenddate));
  687.                         $rangeDates self::getDatesFromRange($holidayDate$holidaysenddate);
  688.                         $log_data $api_log_info." | holidaysenddate:".json_encode($holidaysenddate)."| rangeDates:".json_encode($rangeDates);
  689.                         SELF::createApiLog($log_data);
  690.                         
  691.                         foreach($rangeDates as $rangeDateInfo){
  692.                             array_push($holidayDates,$rangeDateInfo);
  693.                         }
  694.                     } else {
  695.                         array_push($holidayDates,$holidayDate);
  696.                     }
  697.                 }
  698.                 $delSlotTimesList DataObject\Deliveryslottimes::getList();
  699.                 $delSlotTimesList->setOrderKey("o_id");
  700.                 $delSlotTimesList->setOrder("desc");
  701.                 $delSlotTimesList->load();
  702.                 // foreach($dates_list as $cur_date){
  703.                     $log_data $api_log_info." | delSlotTimesList count:".count($delSlotTimesList);
  704.                     SELF::createApiLog($log_data);
  705.                     
  706.                     if(count($delSlotTimesList) > 0){
  707.                         $cur_time date("H:i");//"09:00";//
  708.                         $log_data $api_log_info." | cur_time:".$cur_time;
  709.                         SELF::createApiLog($log_data);
  710.                         foreach($delSlotTimesList as $delSlotTimes)
  711.                         {
  712.                             $log_data $api_log_info." | delSlotTimes:".json_encode($delSlotTimes);
  713.                             SELF::createApiLog($log_data);
  714.                             //------- Get Week Dates based on Holidays and Slot Time data ---------//
  715.                             $slot_prepare_days = ($delSlotTimes->getprepare_days())?$delSlotTimes->getprepare_days():0;
  716.                             $slot_generate_days = ($delSlotTimes->getslot_generate_days())?$delSlotTimes->getslot_generate_days():7;
  717.                             $saturday_slot_availability = ($delSlotTimes->getsaturday_slot_availability())?$delSlotTimes->getsaturday_slot_availability():'No';
  718.                             $sunday_slot_availability = ($delSlotTimes->getsunday_slot_availability())?$delSlotTimes->getsunday_slot_availability():'No';
  719.                             $log_data $api_log_info." | slot_prepare_days:".json_encode($slot_prepare_days)."| slot_generate_days:".json_encode($slot_generate_days)."| saturday_slot_availability:".json_encode($saturday_slot_availability)."| sunday_slot_availability:".json_encode($sunday_slot_availability);
  720.                             SELF::createApiLog($log_data);
  721.                             /*--------------------- Up Country Configuration ------------------------*/
  722.                             $is_upcountry_configuration_applicable = ($delSlotTimes->getis_upcountry_configuration_applicable())?$delSlotTimes->getis_upcountry_configuration_applicable():'No';
  723.                             $slot_upcountry_prepare_days = ($delSlotTimes->getupcountry_prepare_days())?$delSlotTimes->getupcountry_prepare_days():0;
  724.                             $upcountry_slot_generate_days = ($delSlotTimes->getupcountry_slot_generate_days())?$delSlotTimes->getupcountry_slot_generate_days():7;
  725.                             $upcountry_saturday_slot_availability = ($delSlotTimes->getupcountry_saturday_slot_availability())?$delSlotTimes->getupcountry_saturday_slot_availability():'No';
  726.                             $upcountry_sunday_slot_availability = ($delSlotTimes->getupcountry_sunday_slot_availability())?$delSlotTimes->getupcountry_sunday_slot_availability():'No';
  727.                             $log_data $api_log_info." | is_upcountry_configuration_applicable:".json_encode($is_upcountry_configuration_applicable)."| slot_upcountry_prepare_days:".json_encode($slot_upcountry_prepare_days)."| upcountry_slot_generate_days:".json_encode($upcountry_slot_generate_days)."| upcountry_saturday_slot_availability:".json_encode($upcountry_saturday_slot_availability)."| upcountry_sunday_slot_availability:".json_encode($upcountry_sunday_slot_availability);
  728.                             SELF::createApiLog($log_data);
  729.                             /*--------------------- Darkstore Configuration ------------------------*/
  730.                             $is_darkstore_configuration_applicable = ($delSlotTimes->getis_darkstore_configuration_applicable())?$delSlotTimes->getis_darkstore_configuration_applicable():'No';
  731.                             $slot_darkstore_prepare_days = ($delSlotTimes->getdarkstore_prepare_days())?$delSlotTimes->getdarkstore_prepare_days():0;
  732.                             $darkstore_slot_generate_days = ($delSlotTimes->getdarkstore_slot_generate_days())?$delSlotTimes->getdarkstore_slot_generate_days():7;
  733.                             $darkstore_saturday_slot_availability = ($delSlotTimes->getdarkstore_saturday_slot_availability())?$delSlotTimes->getdarkstore_saturday_slot_availability():'No';
  734.                             $darkstore_sunday_slot_availability = ($delSlotTimes->getdarkstore_sunday_slot_availability())?$delSlotTimes->getdarkstore_sunday_slot_availability():'No';
  735.                             $log_data $api_log_info." | is_darkstore_configuration_applicable:".json_encode($is_darkstore_configuration_applicable)."| slot_darkstore_prepare_days:".json_encode($slot_darkstore_prepare_days)."| darkstore_slot_generate_days:".json_encode($darkstore_slot_generate_days)."| darkstore_saturday_slot_availability:".json_encode($darkstore_saturday_slot_availability)."| darkstore_sunday_slot_availability:".json_encode($darkstore_sunday_slot_availability);
  736.                             SELF::createApiLog($log_data);
  737.                             $log_data $api_log_info." | settings stg_deliveryslot_config_is_darkstore_configuration_applicable:".json_encode($settingsInfo['stg_deliveryslot_config_is_darkstore_configuration_applicable'])."| location_type:".json_encode($location_type);
  738.                             SELF::createApiLog($log_data);
  739.                             // echo '<pre>';
  740.                             // print_r($settingsInfo);die;
  741.                             // echo $settingsInfo['stg_deliveryslot_config_is_darkstore_configuration_applicable'];
  742.                             // echo "<br>";
  743.                             // echo $location_type;
  744.                             // die;
  745.                             if($settingsInfo['stg_deliveryslot_config_is_darkstore_configuration_applicable'] == 'Yes' && $location_type == 'Darkstore')
  746.                             {                                
  747.                                 $slot_prepare_days $slot_darkstore_prepare_days;
  748.                                 $slot_generate_days $darkstore_slot_generate_days;
  749.                                 $saturday_slot_availability $darkstore_saturday_slot_availability;
  750.                                 $sunday_slot_availability $darkstore_sunday_slot_availability;
  751.                                 
  752.                                 $cur_slot_generate_days = ($delSlotTimes->getdarkstore_slot_generate_days())?$delSlotTimes->getdarkstore_slot_generate_days():0;
  753.                                 
  754.                                 $stg_normalloc_upcounry_slot_generate_days = ($cur_time $settingsInfo['stg_delslot_darkstoreloc_morethan_fromtime'] && $cur_time $settingsInfo['stg_delslot_darkstoreloc_lessthaneq_totime'])?$settingsInfo['stg_delslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays']:$settingsInfo['stg_delslot_darkstoreloc_after_totime_extra_generate_slotdays'];
  755.                                 $slot_generate_days $slot_generate_days+$stg_normalloc_upcounry_slot_generate_days;
  756.                                 $log_data $api_log_info." | slot_prepare_days:".json_encode($slot_prepare_days)."| slot_generate_days:".json_encode($slot_generate_days)."| saturday_slot_availability:".json_encode($saturday_slot_availability)."| sunday_slot_availability:".json_encode($sunday_slot_availability)."| cur_slot_generate_days:".json_encode($cur_slot_generate_days)."| stg_normalloc_upcounry_slot_generate_days:".json_encode($stg_normalloc_upcounry_slot_generate_days)."| slot_generate_days:".json_encode($slot_generate_days);
  757.                                 SELF::createApiLog($log_data);
  758.                             } else if($settingsInfo['stg_deliveryslot_config_is_upcountry_configuration_applicable'] == 'Yes' && $Is_location_up_country == 1)//if($is_upcountry_configuration_applicable == 'Yes' && $Is_location_up_country == 1)
  759.                             {                                
  760.                                 $slot_prepare_days $slot_upcountry_prepare_days;
  761.                                 $slot_generate_days $upcountry_slot_generate_days;
  762.                                 $saturday_slot_availability $upcountry_saturday_slot_availability;
  763.                                 $sunday_slot_availability $upcountry_sunday_slot_availability;
  764.                                 
  765.                                 $cur_slot_generate_days = ($delSlotTimes->getupcountry_slot_generate_days())?$delSlotTimes->getupcountry_slot_generate_days():0;
  766.                                 
  767.                                 // $slot_generate_days = ($cur_time > $settingsInfo['stg_delslot_upcountryloc_morethan_fromtime'] && $cur_time < $settingsInfo['stg_delslot_upcountryloc_lessthaneq_totime'])?$slot_generate_days+$settingsInfo['stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays']:$slot_generate_days+$settingsInfo['stg_delslot_normalloc_after_totime_extra_generate_slotdays'];
  768.                                 
  769.                                 $stg_normalloc_upcounry_slot_generate_days = ($cur_time $settingsInfo['stg_delslot_upcountryloc_morethan_fromtime'] && $cur_time $settingsInfo['stg_delslot_upcountryloc_lessthaneq_totime'])?$settingsInfo['stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays']:$settingsInfo['stg_delslot_upcountryloc_after_totime_extra_generate_slotdays'];
  770.                                 $slot_generate_days $slot_generate_days+$stg_normalloc_upcounry_slot_generate_days;
  771.                                 $log_data $api_log_info." | slot_prepare_days:".json_encode($slot_prepare_days)."| slot_generate_days:".json_encode($slot_generate_days)."| saturday_slot_availability:".json_encode($saturday_slot_availability)."| sunday_slot_availability:".json_encode($sunday_slot_availability)."| cur_slot_generate_days:".json_encode($cur_slot_generate_days)."| stg_normalloc_upcounry_slot_generate_days:".json_encode($stg_normalloc_upcounry_slot_generate_days)."| slot_generate_days:".json_encode($slot_generate_days);
  772.                                 SELF::createApiLog($log_data);
  773.                             } else {
  774.                                 $cur_slot_generate_days = ($delSlotTimes->getslot_generate_days())?$delSlotTimes->getslot_generate_days():0;
  775.                                 // $slot_generate_days = ($cur_time > $setting_slot_time_flag)?$slot_generate_days+1:$slot_generate_days;
  776.                                 $stg_normalloc_upcounry_slot_generate_days = ($cur_time $settingsInfo['stg_delslot_normalloc_morethan_fromtime'] && $cur_time $settingsInfo['stg_delslot_normalloc_lessthaneq_totime'])?$settingsInfo['stg_delslot_normalloc_bw_from_to_time_extra_generate_slotdays']:$settingsInfo['stg_delslot_normalloc_after_totime_extra_generate_slotdays'];
  777.                                 $slot_generate_days $slot_generate_days+$stg_normalloc_upcounry_slot_generate_days;
  778.                                 $log_data $api_log_info." | cur_slot_generate_days:".json_encode($cur_slot_generate_days)."| stg_normalloc_upcounry_slot_generate_days:".json_encode($stg_normalloc_upcounry_slot_generate_days);
  779.                                 SELF::createApiLog($log_data);
  780.                             }
  781.                             $cur_slot_prepare_days = ($slot_prepare_days == 0)?$slot_prepare_days+$stg_normalloc_upcounry_slot_generate_days:$slot_prepare_days+$stg_normalloc_upcounry_slot_generate_days-1;
  782.                             $cur_slot_prepare_days = (!empty($fastDelivery)) ? $cur_slot_prepare_days;
  783.                             $log_data $api_log_info." | cur_slot_prepare_days:".json_encode($cur_slot_prepare_days);
  784.                             SELF::createApiLog($log_data);
  785.                             
  786.                             $delSlotTimesAvailibility = ['slot_prepare_days'=>$cur_slot_prepare_days,'slot_generate_days'=>$slot_generate_days,'saturday_slot_availability'=>$saturday_slot_availability,'sunday_slot_availability'=>$sunday_slot_availability];
  787.                             $log_data $api_log_info." | delSlotTimesAvailibility:".json_encode($delSlotTimesAvailibility);
  788.                             SELF::createApiLog($log_data);
  789.                             
  790.                             $weekdates self::getWeekDates($holidayDatesdate("Y-m-d"), $delSlotTimesAvailibility);
  791.                             $log_data $api_log_info." | weekdates:".json_encode($weekdates);
  792.                             SELF::createApiLog($log_data);
  793.                             // echo $cur_time." | ".$setting_slot_time_flag;
  794.                             // echo 'delSlotTimesAvailibility<pre>:';
  795.                             // print_r($delSlotTimesAvailibility);
  796.                             // echo 'weekdates<pre>:';
  797.                             // print_r($weekdates);die;
  798.                             //------- Get Week Dates based on Holidays and Slot Time data ---------//
  799.                             // $prepare_days = $delSlotTimes->getprepare_days();
  800.                             // $delSlot_date = ($prepare_days == 0)?$tomorrow_date:date('Y-m-d', strtotime($today_date . ' +'.$prepare_days.' day'));
  801.                             if($settingsInfo['stg_deliveryslot_config_is_darkstore_configuration_applicable'] == 'Yes' && $location_type == 'Darkstore')
  802.                             {
  803.                                 $delSlot_date = ($slot_prepare_days == 0)?date('Y-m-d'):date('Y-m-d'strtotime($today_date ' +'.$slot_prepare_days.' day'));
  804.                             } else {
  805.                                 $delSlot_date = ($slot_prepare_days == 0)?$tomorrow_date:date('Y-m-d'strtotime($today_date ' +'.$slot_prepare_days.' day'));
  806.                             }
  807.                             if(!empty($fastDelivery)){
  808.                                 date_default_timezone_set('Asia/Kolkata');
  809.                                 $delSlot_date date('Y-m-d');
  810.                                 
  811.                                 // Get the current hour
  812.                                 $currentHour = (int)date('H');
  813.                                 // Check if the current time is greater than 6 PM
  814.                                 if ($currentHour >= 18) {
  815.                                     // Add one day to the current date
  816.                                     $delSlot_date date('Y-m-d'strtotime($delSlot_date ' +1 day'));
  817.                                 }
  818.                             }
  819.                             $delSlot_date1 date("Y-m-d"strtotime($delSlot_date));
  820.                             
  821.                             $cur_time_data explode(" ",$cur_time);
  822.                             // $slot_generate_days = ($delSlotTimes->getslot_generate_days())?$delSlotTimes->getslot_generate_days():0;
  823.                             // $slot_generate_days_limit = ($slot_generate_days > 0)?$slot_generate_days:1;
  824.                             $slot_generate_days_limit = ($cur_slot_generate_days 0)?$cur_slot_generate_days:1;
  825.                             $log_data $api_log_info." | delSlot_date:".json_encode($delSlot_date)."| delSlot_date1:".json_encode($delSlot_date1)."| cur_time_data:".json_encode($cur_time_data)."| slot_generate_days_limit:".json_encode($slot_generate_days_limit);
  826.                             SELF::createApiLog($log_data);
  827.                             // echo $tomorrow_date.":".$weekdates[0];
  828.                             /* if($cur_time > $setting_slot_time_flag)//if($cur_time > '18:00')
  829.                             {
  830.                                 // if($tomorrow_date >= $weekdates[0])
  831.                                 // {
  832.                                 //     $weekdates = ($slot_generate_days > 0)?array_values(array_diff($weekdates,[$weekdates[0]])):[$weekdates[1]];
  833.                                 // } else {
  834.                                 //     $no_of_weekdates = count($weekdates);
  835.                                 //     $weekdates = ($slot_generate_days > 0)?array_values(array_diff($weekdates,[$weekdates[$no_of_weekdates-1]])):[$weekdates[0]];
  836.                                 // }
  837.                                 
  838.                                 $no_of_weekdates = count($weekdates);
  839.                                 // $weekdates = ($slot_generate_days > 0)?array_values(array_diff($weekdates,[$weekdates[$no_of_weekdates-1]])):[$weekdates[0]];
  840.                                 $weekdates = ($slot_generate_days > 0)?array_values(array_diff($weekdates,[$weekdates[0]])):[$weekdates[1]];
  841.                             } else {
  842.                                 $weekdates = ($slot_generate_days > 0)?$weekdates:[$weekdates[0]];
  843.                             } */
  844.                             /* if($settingsInfo['stg_deliveryslot_config_is_upcountry_configuration_applicable'] == 'Yes' && $Is_location_up_country == 1)
  845.                             {
  846.                                 if($cur_time > $settingsInfo['stg_delslot_upcountryloc_morethan_fromtime'] && $cur_time < $settingsInfo['stg_delslot_upcountryloc_lessthaneq_totime'])
  847.                                 {
  848.                                     $weekdates = ($slot_generate_days > 0)?array_values(array_diff($weekdates,[$weekdates[0]])):[$weekdates[1]];
  849.                                 } else {
  850.                                     $weekdates = ($slot_generate_days > 0)?$weekdates:[$weekdates[0]];
  851.                                 }
  852.                                 if(($slot_generate_days > 0)){
  853.                                     for($ii=0; $ii<$stg_normalloc_upcounry_slot_generate_days; $ii++)
  854.                                     {
  855.                                         $weekdates = array_values(array_diff($weekdates,[$weekdates[0]]));
  856.                                     }
  857.                                 } else 
  858.                                 $weekdates = [$weekdates[$stg_normalloc_upcounry_slot_generate_days]];
  859.                                 
  860.                             } else {
  861.                                 $stg_normalloc_upcounry_slot_generate_days = ($cur_time > $settingsInfo['stg_delslot_upcountryloc_morethan_fromtime'] && $cur_time < $settingsInfo['stg_delslot_upcountryloc_lessthaneq_totime'])?$settingsInfo['stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays']:$settingsInfo['stg_delslot_upcountryloc_after_totime_extra_generate_slotdays'];
  862.                             } */
  863.                             /* if(($slot_generate_days > 0)){
  864.                                 for($ii=0; $ii<$stg_normalloc_upcounry_slot_generate_days; $ii++)
  865.                                 {
  866.                                     $weekdates = array_values(array_diff($weekdates,[$weekdates[0]]));
  867.                                 }
  868.                             } else 
  869.                             $weekdates = [$weekdates[$stg_normalloc_upcounry_slot_generate_days]]; */
  870.                             /*
  871.                             if(($slot_generate_days > 0)){
  872.                                 if($stg_normalloc_upcounry_slot_generate_days>1)
  873.                                 {
  874.                                     for($ii=0; $ii<$stg_normalloc_upcounry_slot_generate_days-1; $ii++)
  875.                                     {
  876.                                         $weekdates = array_values(array_diff($weekdates,[$weekdates[0]]));
  877.                                     }
  878.                                 }
  879.                                 $cur_weekdates = [];
  880.                                 if($cur_slot_generate_days > 0){
  881.                                     for($jj=0; $jj < $cur_slot_generate_days; $jj++)
  882.                                     {
  883.                                         array_push($cur_weekdates,$weekdates[$jj]);
  884.                                     }
  885.                                 }
  886.                                 $weekdates = $cur_weekdates;
  887.                             } else 
  888.                             $weekdates = [$weekdates[$stg_normalloc_upcounry_slot_generate_days]];
  889.                             */
  890.                             $log_data $api_log_info." | slot_generate_days:".json_encode($slot_generate_days)."| cur_slot_generate_days:".json_encode($cur_slot_generate_days);
  891.                             SELF::createApiLog($log_data);
  892.                             if(($slot_generate_days 0)){
  893.                                 $cur_weekdates = [];
  894.                                 if($cur_slot_generate_days 0){
  895.                                     for($jj=0$jj $cur_slot_generate_days$jj++)
  896.                                     {
  897.                                         $log_data $api_log_info." | jj:".json_encode($jj)."| cur_weekdates:".json_encode($cur_weekdates)."| weekdates:".json_encode($weekdates);
  898.                                         SELF::createApiLog($log_data);
  899.                                         array_push($cur_weekdates,$weekdates[$jj]);
  900.                                     }
  901.                                 }
  902.                                 $weekdates $cur_weekdates;
  903.                             } else 
  904.                             $weekdates = [$weekdates[$stg_normalloc_upcounry_slot_generate_days]];
  905.                             $log_data $api_log_info." | stg_normalloc_upcounry_slot_generate_days:".json_encode($stg_normalloc_upcounry_slot_generate_days)."| weekdates:".json_encode($weekdates);
  906.                             SELF::createApiLog($log_data);
  907.                             // $weekdates = ($slot_generate_days > 0)?$weekdates:[$weekdates[0]];
  908.                             // echo 'weekdates:<pre>:'; print_r($weekdates);
  909.                             
  910.                             $slot_generate_days_date  date('Y-m-d'strtotime($today_date ' +'.$slot_generate_days.' day'));
  911.                             $delivery_modes $setting_deliveryModes;//['standard','express'];//['courier','standard','express'];
  912.                             $locationSlotRule = new DataObject\Deliveryslotrules\Listing();
  913.                             $locationSlotRule->setCondition(" FIND_IN_SET('".$parentLoc_id."',location_ids) ");
  914.                             $locationSlotRule $locationSlotRule->getData();
  915.                             if (count($locationSlotRule)) {
  916.                                 $delivery_modes = array();
  917.                                 foreach ($locationSlotRule as $slv) {
  918.                                     $delivery_modes[] = $slv->getdelivery_mode();
  919.                                 }
  920.                             }
  921.                             $log_data $api_log_info." | slot_generate_days_date:".json_encode($slot_generate_days_date)."| delivery_modes:".json_encode($delivery_modes);
  922.                             SELF::createApiLog($log_data);
  923.                             $delivery_mode_slots_all = [];
  924.                             foreach($delivery_modes as $delivery_mode)
  925.                             {
  926.                                 $log_data $api_log_info." | delivery_mode:".json_encode($delivery_mode)."| delSlotTimes Title:".json_encode($delSlotTimes->gettitle());
  927.                                 SELF::createApiLog($log_data);
  928.                                 if($delSlotTimes->gettitle() == 'customized' && (!in_array($delivery_mode,['standard'])))
  929.                                 {
  930.                                     $delivery_mode_slots_all[$delivery_mode] = [];
  931.                                 } else if($delSlotTimes->gettitle() == 'Confectionery' && (!in_array($delivery_mode,['standard','express'])))
  932.                                 {
  933.                                     $delivery_mode_slots_all[$delivery_mode] = [];
  934.                                 } else {
  935.                                     $slotsList DataObject\Slots::getList();
  936.                                     if($cur_time $setting_slot_time_flag)//if($cur_time > '18:00')
  937.                                     {
  938.                                         $slotsList->setCondition("slotdate >= :tomdate AND delivery_mode = :delivery_mode AND loc_id = :parentLoc_id AND slotdate IN (:slotdates)", ["slotdate" => $today_date"prior_time" => $cur_time"delivery_mode" => $delivery_mode"parentLoc_id" => $parentLoc_id"tomdate" => $delSlot_date1"slotdates" => $weekdates]);
  939.                                     } else {
  940.                                         if($delivery_mode == 'standard')
  941.                                         {
  942.                                             $slotsList->setCondition("((slotdate = :slotdate AND fromtime <= :prior_time AND totime >= :prior_time) || slotdate >= :tomdate) AND delivery_mode = :delivery_mode AND loc_id = :parentLoc_id AND slotdate IN (:slotdates)", ["slotdate" => $today_date"prior_time" => $cur_time"delivery_mode" => $delivery_mode"parentLoc_id" => $parentLoc_id"tomdate" => $delSlot_date1"slotdates" => $weekdates]);
  943.                                         } else
  944.                                         {
  945.                                             $slotsList->setCondition("((slotdate = :slotdate AND prior_time >= :prior_time) || slotdate >= :tomdate) AND delivery_mode = :delivery_mode AND loc_id = :parentLoc_id AND slotdate IN (:slotdates)", ["slotdate" => $today_date"prior_time" => $cur_time"delivery_mode" => $delivery_mode"parentLoc_id" => $parentLoc_id"tomdate" => $delSlot_date1"slotdates" => $weekdates]);
  946.                                         }
  947.                                     }
  948.                                     $slotsList->setOrderKey("slotdate");
  949.                                     $slotsList->setOrder("asc");
  950.                                     $slotsList->load();
  951.                                     // if($slot_generate_days == 3)
  952.                                     // {
  953.                                     //     echo '<pre>';
  954.                                     //     print_r($slotsList); die;
  955.                                     // }
  956.                                     /*---------- Slots Loop Starts ----------*/
  957.                                     $log_data $api_log_info." | slotsList count:".json_encode(count($slotsList))."| cur_slot_generate_days:".json_encode($cur_slot_generate_days);
  958.                                     SELF::createApiLog($log_data);
  959.                                     $delivery_mode_slots = [];
  960.                                     if(count($slotsList) > && $cur_slot_generate_days>0){
  961.                                         foreach($slotsList as $slot)
  962.                                         {
  963.                                             $log_data $api_log_info." | slot:".json_encode($slot);
  964.                                             SELF::createApiLog($log_data);
  965.                                             $slotLocationData DataObject\Locations::getById($slot->getLoc_id());
  966.                                             $loc_name $slotLocationData->getlocation_name();
  967.                                             $delivery_mode_slot1 = array(
  968.                                                 "slotId" => $slot->getId(),
  969.                                                 "prior_time" => $slot->getprior_time(),
  970.                                                 "slotdate" => date("Y-m-d"strtotime($slot->getslotdate())),//$slot->getslotdate(),//$delSlot_date1,//
  971.                                                 "loc_name" => $loc_name,
  972.                                                 "fromtime" => $slot->getfromtime(),
  973.                                                 "totime" => $slot->gettotime(),
  974.                                                 "maxorder" => $slot->getmaxorder(),
  975.                                                 "ordercount" => $slot->getordercount(),
  976.                                                 "delivery_mode" => $slot->getdelivery_mode(),
  977.                                             );
  978.                                             array_push($delivery_mode_slots$delivery_mode_slot1);
  979.                                             $log_data $api_log_info." | delivery_mode_slot1:".json_encode($delivery_mode_slot1)."| delivery_mode_slots:".json_encode($delivery_mode_slots);
  980.                                             SELF::createApiLog($log_data);
  981.                                         }
  982.                                     }
  983.                                     /*---------- Slots Loop Starts ----------*/
  984.                                     $delivery_mode_slot2 = array($delivery_mode=>$delivery_mode_slots);
  985.                                     $log_data $api_log_info." | delivery_mode_slot2:".json_encode($delivery_mode_slot2);
  986.                                     SELF::createApiLog($log_data);
  987.                                     // array_push($delivery_mode_slots_all, $delivery_mode_slot2);
  988.                                     if ($fastDelivery) {
  989.                                         if ($delivery_mode == 'standard') {
  990.                                             $delivery_mode_slots_all[$delivery_mode] = $delivery_mode_slots;
  991.                                         } else {
  992.                                             $delivery_mode_slots_all[$delivery_mode] = (!empty($delivery_mode_slots[0]) ? array($delivery_mode_slots[0]) : array());
  993.                                         }
  994.                                     } else {
  995.                                         $delivery_mode_slots_all[$delivery_mode] = $delivery_mode_slots;
  996.                                     }
  997.                                     $log_data $api_log_info." | delivery_mode:".json_encode($delivery_mode)."| delivery_mode_slots:".json_encode($delivery_mode_slots);
  998.                                     SELF::createApiLog($log_data);
  999.                                 }
  1000.                             }
  1001.                             $data[] = array(
  1002.                                 // "LocationName" => $parentLocationName,
  1003.                                 // "LocationCode" => $parentLocationCode,
  1004.                                 // "Is_location_up_country" => $Is_location_up_country,
  1005.                                 "location_type" => $location_type,
  1006.                                 "is_upcountry_configuration_applicable" => $is_upcountry_configuration_applicable,
  1007.                                 "stg_normalloc_upcounry_slot_generate_days" => $stg_normalloc_upcounry_slot_generate_days,
  1008.                                 "deliverytype_id" => $delSlotTimes->gettitle(),
  1009.                                 "label" => $delSlotTimes->getdeliverytype_id()->getdeliverytype(),
  1010.                                 "prepare_days" => $slot_prepare_days,//$delSlotTimes->getprepare_days(),
  1011.                                 "slot_generate_days" => $cur_slot_generate_days,//$slot_generate_days,
  1012.                                 "delSlot_date" => $delSlot_date1,
  1013.                                 "slots"=>$delivery_mode_slots_all);
  1014.                                 $log_data $api_log_info." | data:".json_encode($data);
  1015.                                 SELF::createApiLog($log_data);
  1016.                         }
  1017.                     } else $data[] = ['message'=>$message];
  1018.                 // }
  1019.             } else $data[] = ['message'=>$message];
  1020.             
  1021.         } else $data[] = ['message'=>$message];
  1022.         $return_data = ["success" => true"Is_location_up_country" => $Is_location_up_country"data" => $data];
  1023.         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  1024.         SELF::createApiLog($log_data);
  1025.         return $this->json(["success" => true"Is_location_up_country" => $Is_location_up_country"data" => $data]);
  1026.     }
  1027.     /**
  1028.      * @Route("/api/allslots")
  1029.      */
  1030.     public function allslotsAction()
  1031.     {
  1032.         $api_log_info "API:All Available Slots - ".date("YmdHis")." ".time();
  1033.         $log_data "Started - ".$api_log_info;
  1034.         SELF::createApiLog($log_data);
  1035.         $message SELF::verifyauthToken($api_log_info);
  1036.         $log_data $api_log_info." | message:".json_encode($message);
  1037.         SELF::createApiLog($log_data);
  1038.         if($message == "No data found")
  1039.         {
  1040.             $delSlotTimesList DataObject\Deliveryslottimes::getList();
  1041.             $delSlotTimesList->load();
  1042.             // $delivery_modes = ['courier','standard','express'];
  1043.             // $slotsList = DataObject\Slots::getList();
  1044.             // $slotsList->setCondition("delivery_mode = 'courier'");
  1045.             // // if ($slotsList->getClass()->getFieldDefinition('delivery_mode')->isFilterable()) {
  1046.             // //     $slotsList->filterBydelivery_mode($courier_mode, '=');
  1047.             // // }
  1048.             // $slotsList->load();
  1049.             // echo '<pre>kk'; print_r($slotsList); die;
  1050.             $log_data $api_log_info." | delSlotTimesList count:".json_encode(count($delSlotTimesList));
  1051.             SELF::createApiLog($log_data);
  1052.             if(count($delSlotTimesList) > 0){
  1053.                 foreach($delSlotTimesList as $delSlotTimes)
  1054.                 {
  1055.                     $log_data $api_log_info." | delSlotTimes:".json_encode($delSlotTimes);
  1056.                     SELF::createApiLog($log_data);
  1057.                     $prepare_days $delSlotTimes->getprepare_days();
  1058.                     $delSlot_date date('Y-m-d H:i:s'strtotime(' +'.$prepare_days.' day'));
  1059.                     $delSlot_date1 date("Y-m-d");//date("Y-m-d", strtotime($delSlot_date));
  1060.                     $cur_time date("H:i");
  1061.                     // $delSlotTimes->delSlot_date = $delSlot_date;
  1062.                     $delivery_modes = ['courier','standard','express'];
  1063.                     $log_data $api_log_info." | prepare_days:".json_encode($prepare_days)." | delSlot_date:".json_encode($delSlot_date)." | delSlot_date1:".json_encode($delSlot_date1)." | cur_time:".json_encode($cur_time)." | delivery_modes:".json_encode($delivery_modes);
  1064.                     SELF::createApiLog($log_data);
  1065.                     $delivery_mode_slots_all = [];
  1066.                     foreach($delivery_modes as $delivery_mode)
  1067.                     {
  1068.                         $log_data $api_log_info." | delivery_mode:".json_encode($delivery_mode);
  1069.                         SELF::createApiLog($log_data);
  1070.                         $slotsList DataObject\Slots::getList();
  1071.                         // $slotsList->setCondition("delivery_mode = '".$delivery_mode."'");
  1072.                         if ($slotsList->getClass()->getFieldDefinition('slotdate')->isFilterable()) {
  1073.                             $slotsList->filterBySlotdate($delSlot_date1'>=');
  1074.                         }
  1075.                         // if ($slotsList->getClass()->getFieldDefinition('prior_time')->isFilterable()) {
  1076.                         //     $slotsList->filterByprior_time($cur_time, '>=');
  1077.                         // }
  1078.                         if ($slotsList->getClass()->getFieldDefinition('delivery_mode')->isFilterable()) {
  1079.                             $slotsList->filterBydelivery_mode($delivery_mode'>=');
  1080.                         }
  1081.                         $slotsList->setLimit(100);
  1082.                         $slotsList->setOrderKey("slotdate");
  1083.                         $slotsList->setOrder("asc");
  1084.                         $slotsList->load();
  1085.                         /*---------- Slots Loop Starts ----------*/
  1086.                         $log_data $api_log_info." | slotsList count:".json_encode(count($slotsList));
  1087.                         SELF::createApiLog($log_data);
  1088.                         $delivery_mode_slots = [];
  1089.                         if(count($slotsList) > 0){
  1090.                             foreach($slotsList as $slot)
  1091.                             {
  1092.                                 $log_data $api_log_info." | slot:".json_encode($slot);
  1093.                                 SELF::createApiLog($log_data);
  1094.                                 // $loc_name = (!empty($slot->getLoc_id()))?$slot->getLoc_id()->getlocation_name():'';
  1095.                                 // $loc_code = (!empty($slot->getLoc_id()))?$slot->getLoc_id()->getlocation_code():'';
  1096.                                 $slotLocationData DataObject\Locations::getById($slot->getLoc_id());
  1097.                                 $loc_name $slotLocationData->getlocation_name();
  1098.                                 $loc_code $slotLocationData->getlocation_code();
  1099.                                 $log_data $api_log_info." | slotLocationData:".json_encode($slotLocationData)." | loc_name:".json_encode($loc_name)." | loc_code:".json_encode($loc_code);
  1100.                                 SELF::createApiLog($log_data);
  1101.                                 $delivery_mode_slot1 = array(
  1102.                                     "slotId" => $slot->getId(),
  1103.                                     "prior_time" => $slot->getprior_time(),
  1104.                                     // "picking_time" => $slot->getpicking_time(),
  1105.                                     // "charge" => $slot->getcharge(),
  1106.                                     "slotdate" => $slot->getslotdate(),
  1107.                                     "loc_name" => $loc_name,
  1108.                                     "loc_code" => $loc_code,
  1109.                                     "fromtime" => $slot->getfromtime(),
  1110.                                     "totime" => $slot->gettotime(),
  1111.                                     "maxorder" => $slot->getmaxorder(),
  1112.                                     "ordercount" => $slot->getordercount(),
  1113.                                     "delivery_mode" => $slot->getdelivery_mode()
  1114.                                 );
  1115.                                 $log_data $api_log_info." | delivery_mode_slot1:".json_encode($delivery_mode_slot1);
  1116.                                 SELF::createApiLog($log_data);
  1117.                                 array_push($delivery_mode_slots$delivery_mode_slot1);
  1118.                                 $log_data $api_log_info." | delivery_mode_slots:".json_encode($delivery_mode_slots);
  1119.                                 SELF::createApiLog($log_data);
  1120.                             }
  1121.                         }
  1122.                         /*---------- Slots Loop Starts ----------*/
  1123.                         $delivery_mode_slot2 = array($delivery_mode=>$delivery_mode_slots);
  1124.                         $log_data $api_log_info." | delivery_mode_slot2:".json_encode($delivery_mode_slot2);
  1125.                         SELF::createApiLog($log_data);
  1126.                         // array_push($delivery_mode_slots_all, $delivery_mode_slot2);
  1127.                         $delivery_mode_slots_all[$delivery_mode] = $delivery_mode_slots;
  1128.                         $log_data $api_log_info." | delivery_mode:".json_encode($delivery_mode)." | delivery_mode_slots_all:".json_encode($delivery_mode_slots_all);
  1129.                         SELF::createApiLog($log_data);
  1130.                     }
  1131.                     $data[] = array(
  1132.                         "deliverytype_id" => $delSlotTimes->gettitle(),
  1133.                         "label" => $delSlotTimes->getdeliverytype_id()->getdeliverytype(),
  1134.                         "prepare_days" => $delSlotTimes->getprepare_days(),
  1135.                         "delSlot_date" => $delSlot_date,
  1136.                         "slots"=>$delivery_mode_slots_all);
  1137.                     
  1138.                     $log_data $api_log_info." | data:".json_encode($data);
  1139.                     SELF::createApiLog($log_data);
  1140.                 }
  1141.             } else $data[] = [];
  1142.         } else $data[] = ['message'=>$message];
  1143.         $data = (empty($data))?$message:$data;
  1144.                 
  1145.         $log_data "Ended - ".$api_log_info." | data:".json_encode($data);
  1146.         SELF::createApiLog($log_data);
  1147.         return $this->json(["success" => true"data" => $data]);
  1148.     }
  1149.     /*------------------------------ End of Slots Related APIs -------------------------*/
  1150.     /*---------------------------------- Delivery Slot Time Related APIs ----------------------------*/
  1151.     /**
  1152.      * @Route("/deliveryslottime/getslottimes")
  1153.      */
  1154.     public function getslottimesAction()
  1155.     {
  1156.         $api_log_info "API:Retriving all Delivery Slot times / Confencery Days - ".date("YmdHis")." ".time();
  1157.         $log_data "Started - ".$api_log_info;
  1158.         SELF::createApiLog($log_data);
  1159.         $message SELF::verifyauthToken($api_log_info);
  1160.         $log_data $api_log_info." | message:".json_encode($message);
  1161.         SELF::createApiLog($log_data);
  1162.         
  1163.         if($message == "No data found")
  1164.         {
  1165.             $delSlotTimesList DataObject\Deliveryslottimes::getList();
  1166.             $delSlotTimesList->load();
  1167.             $log_data $api_log_info." | delSlotTimesList Count ; ".count($delSlotTimesList);
  1168.             SELF::createApiLog($log_data);
  1169.             if(count($delSlotTimesList) > 0){
  1170.                 foreach($delSlotTimesList as $delSlotTimes)
  1171.                 {
  1172.                     $log_data $api_log_info." | delSlotTimes ; ".json_encode($delSlotTimes);
  1173.                     SELF::createApiLog($log_data);
  1174.                     $prepare_days $delSlotTimes->getprepare_days();
  1175.                     $delSlot_date date('Y-m-d H:i:s'strtotime(' +'.$prepare_days.' day'));
  1176.                     $data[] = array(
  1177.                         "title" => $delSlotTimes->gettitle(),
  1178.                         "deliverytype_id" => $delSlotTimes->getdeliverytype_id()->getdeliverytype(),
  1179.                         "prepare_days" => $delSlotTimes->getprepare_days(),
  1180.                         "delSlot_date" => $delSlot_date);
  1181.                         $log_data $api_log_info." | data ; ".json_encode($data);
  1182.                         SELF::createApiLog($log_data);
  1183.                 }
  1184.             } else $data "No data found";
  1185.         }else $data[] = ['message'=>$message];
  1186.         $data = (empty($data))?$message:$data;
  1187.         $log_data "Ended - ".$api_log_info." | data ; ".json_encode($data);
  1188.         SELF::createApiLog($log_data);
  1189.         return $this->json(["success" => true"data" => $data]);
  1190.     }
  1191.     /**
  1192.      * @Route("/deliveryslottime/getslottimeslist")
  1193.      */
  1194.     public function getslottimeslistAction()
  1195.     {
  1196.         $api_log_info "API:Retriving all Delivery Slots - ".date("YmdHis")." ".time();
  1197.         $log_data "Started - ".$api_log_info;
  1198.         SELF::createApiLog($log_data);
  1199.         $message SELF::verifyauthToken($api_log_info);
  1200.         $log_data $api_log_info." | message:".json_encode($message);
  1201.         SELF::createApiLog($log_data);
  1202.         
  1203.         if($message == "No data found")
  1204.         {
  1205.             $delSlotTimesList DataObject\Deliveryslottimes::getList();
  1206.             $delSlotTimesList->load();
  1207.             // $delivery_modes = ['courier','standard','express'];
  1208.             // $slotsList = DataObject\Slots::getList();
  1209.             // $slotsList->setCondition("delivery_mode = 'courier'");
  1210.             // // if ($slotsList->getClass()->getFieldDefinition('delivery_mode')->isFilterable()) {
  1211.             // //     $slotsList->filterBydelivery_mode($courier_mode, '=');
  1212.             // // }
  1213.             // $slotsList->load();
  1214.             // echo '<pre>kk'; print_r($slotsList); die;
  1215.             $log_data $api_log_info." | delSlotTimesList:".json_encode(count($delSlotTimesList));
  1216.             SELF::createApiLog($log_data);
  1217.             if(count($delSlotTimesList) > 0){
  1218.                 foreach($delSlotTimesList as $delSlotTimes)
  1219.                 {
  1220.                     $log_data $api_log_info." | delSlotTimes:".json_encode($delSlotTimes);
  1221.                     SELF::createApiLog($log_data);
  1222.                     $prepare_days $delSlotTimes->getprepare_days();
  1223.                     $delSlot_date date('Y-m-d H:i:s'strtotime(' +'.$prepare_days.' day'));
  1224.                     $delSlot_date1 date("Y-m-d"strtotime($delSlot_date));
  1225.                     $cur_time date("H:i");
  1226.                     // $delSlotTimes->delSlot_date = $delSlot_date;
  1227.                     $delivery_modes = ['courier','standard','express'];
  1228.                     $log_data $api_log_info." | prepare_days:".json_encode($prepare_days)." | delSlot_date:".json_encode($delSlot_date)." | delSlot_date1:".json_encode($delSlot_date1)." | cur_time:".json_encode($cur_time)." | delivery_modes:".json_encode($delivery_modes);
  1229.                     SELF::createApiLog($log_data);
  1230.                     $delivery_mode_slots_all = [];
  1231.                     foreach($delivery_modes as $delivery_mode)
  1232.                     {
  1233.                         $log_data $api_log_info." | delivery_mode:".json_encode($delivery_mode);
  1234.                         SELF::createApiLog($log_data);
  1235.                         $slotsList DataObject\Slots::getList();
  1236.                         // $slotsList->setCondition("delivery_mode = '".$delivery_mode."'");
  1237.                         if ($slotsList->getClass()->getFieldDefinition('slotdate')->isFilterable()) {
  1238.                             $slotsList->filterBySlotdate($delSlot_date1'=');
  1239.                         }
  1240.                         if ($slotsList->getClass()->getFieldDefinition('prior_time')->isFilterable()) {
  1241.                             $slotsList->filterByprior_time($cur_time'>=');
  1242.                         }
  1243.                         if ($slotsList->getClass()->getFieldDefinition('delivery_mode')->isFilterable()) {
  1244.                             $slotsList->filterBydelivery_mode($delivery_mode'>=');
  1245.                         }
  1246.                         $slotsList->setLimit(100);
  1247.                         $slotsList->setOrderKey("slotdate");
  1248.                         $slotsList->setOrder("asc");
  1249.                         $slotsList->load();
  1250.                         /*---------- Slots Loop Starts ----------*/
  1251.                         $log_data $api_log_info." | slotsList count:".json_encode(count($slotsList));
  1252.                         SELF::createApiLog($log_data);
  1253.                         $delivery_mode_slots = [];
  1254.                         if(count($slotsList) > 0){
  1255.                             foreach($slotsList as $slot)
  1256.                             {
  1257.                                 $log_data $api_log_info." | slot:".json_encode($slot);
  1258.                                 SELF::createApiLog($log_data);
  1259.                                 // $loc_name = (!empty($slot->getLoc_id()))?$slot->getLoc_id()->getlocation_name():'';
  1260.                                 // $loc_code = (!empty($slot->getLoc_id()))?$slot->getLoc_id()->getlocation_code():'';
  1261.                                 $slotLocationData DataObject\Locations::getById($slot->getLoc_id());
  1262.                                 $loc_name $slotLocationData->getlocation_name();
  1263.                                 $loc_code $slotLocationData->getlocation_code();
  1264.                                 $delivery_mode_slot1 = array(
  1265.                                     "slotId" => $slot->getId(),
  1266.                                     "prior_time" => $slot->getprior_time(),
  1267.                                     // "picking_time" => $slot->getpicking_time(),
  1268.                                     // "charge" => $slot->getcharge(),
  1269.                                     "slotdate" => $slot->getslotdate(),
  1270.                                     "loc_name" => $loc_name,
  1271.                                     "loc_code" => $loc_code,
  1272.                                     "fromtime" => $slot->getfromtime(),
  1273.                                     "totime" => $slot->gettotime(),
  1274.                                     "maxorder" => $slot->getmaxorder(),
  1275.                                     "ordercount" => $slot->getordercount(),
  1276.                                     "delivery_mode" => $slot->getdelivery_mode()
  1277.                                 );
  1278.                                 array_push($delivery_mode_slots$delivery_mode_slot1);
  1279.                                 $log_data $api_log_info." | delivery_mode_slot1:".json_encode($delivery_mode_slot1)." | delivery_mode_slots:".json_encode($delivery_mode_slots);
  1280.                                 SELF::createApiLog($log_data);
  1281.                             }
  1282.                         }
  1283.                         /*---------- Slots Loop Starts ----------*/
  1284.                         $delivery_mode_slot2 = array($delivery_mode=>$delivery_mode_slots);
  1285.                         $log_data $api_log_info." | delivery_mode_slot2:".json_encode($delivery_mode_slot2);
  1286.                         SELF::createApiLog($log_data);
  1287.                         // array_push($delivery_mode_slots_all, $delivery_mode_slot2);
  1288.                         $delivery_mode_slots_all[$delivery_mode] = $delivery_mode_slots;
  1289.                         $log_data $api_log_info." | delivery_mode:".json_encode($delivery_mode)." | delivery_mode_slots_all:".json_encode($delivery_mode_slots_all);
  1290.                         SELF::createApiLog($log_data);
  1291.                     }
  1292.                     $data[] = array(
  1293.                         "deliverytype_id" => $delSlotTimes->gettitle(),
  1294.                         "label" => $delSlotTimes->getdeliverytype_id()->getdeliverytype(),
  1295.                         "prepare_days" => $delSlotTimes->getprepare_days(),
  1296.                         "delSlot_date" => $delSlot_date,
  1297.                         "slots"=>$delivery_mode_slots_all);
  1298.                         
  1299.                     $log_data $api_log_info." | data:".json_encode($data);
  1300.                     SELF::createApiLog($log_data);
  1301.                 }
  1302.             } else $data[] = [];
  1303.         }else $data[] = ['message'=>$message];
  1304.         $data = (empty($data))?$message:$data;
  1305.         $log_data "Ended - ".$api_log_info." | data:".json_encode($data);
  1306.         SELF::createApiLog($log_data);
  1307.         return $this->json(["success" => true"data" => $data]);
  1308.     }
  1309.     /*------------------------------ End of Delivery Slot Time Related APIs -------------------------*/
  1310.     /*----------------------------------- AWS S3 Bucket Related APIs ---------------------------*/
  1311.     /**
  1312.      * @Route("/awss3bucket/gets3bucketlist")
  1313.      */
  1314.     public function gets3bucketlistAction()
  1315.     {
  1316.         putenv('AWS_DEFAULT_REGION=us-east-2');
  1317.         putenv('AWS_ACCESS_KEY_ID=AKIAUY45FDQLWT32YTPJ');
  1318.         putenv('AWS_SECRET_ACCESS_KEY=IyaHsvQqIdeyDvUrpmlm4T/xizd5999KCpuBP8vg');
  1319.         // $output = shell_exec('aws s3 ls');
  1320.         try
  1321.         {
  1322.             $output shell_exec('aws s3api create-bucket --bucket snap2web-13 --region us-east-2 --create-bucket-configuration LocationConstraint=us-east-2');
  1323.         } catch(Exception $e)
  1324.         {
  1325.             echo $e->getMessage(); die;
  1326.         }
  1327.         // echo "<pre>$output</pre>";
  1328.         echo '<pre>'print_r($output); die;
  1329.         return $this->json(["success" => true"data" => $data]);
  1330.     }
  1331.     /**
  1332.      * @Route("/awss3bucket/uploadFileToS3")
  1333.      */
  1334.     public function uploadFileToS3()
  1335.     {
  1336.         $curl curl_init();
  1337.         curl_setopt_array($curl, array(
  1338.         CURLOPT_URL => 'https://itc-test.s3.ap-south-1.amazonaws.com/public/test.txt?X-Amz-Expires=86400&X-Amz-Date=20230320T054345Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAUY45FDQLWT32YTPJ%252F20230320%252Fap-south-1%252Fs3%252Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=8911af2498f4c48c8b0192a17fa4b8261946d1a7bb482f901091fb96760b2181',
  1339.         CURLOPT_RETURNTRANSFER => true,
  1340.         CURLOPT_ENCODING => '',
  1341.         CURLOPT_MAXREDIRS => 10,
  1342.         CURLOPT_TIMEOUT => 0,
  1343.         CURLOPT_FOLLOWLOCATION => true,
  1344.         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  1345.         CURLOPT_CUSTOMREQUEST => 'PUT',
  1346.         CURLOPT_POSTFIELDS => "<file contents here>",
  1347.         CURLOPT_HTTPHEADER => array(
  1348.             'Content-Type: text/plain'
  1349.         ),
  1350.         ));
  1351.         $response curl_exec($curl);
  1352.         curl_close($curl);
  1353.         echo $response;
  1354.     }
  1355.     /*------------------------------ End of AWS S3 Bucket Related APIs -------------------------*/
  1356.     /**
  1357.      * @Route("/user/login", methods={"POST"})
  1358.      */
  1359.     public function userLogin(Request $request)
  1360.     {
  1361.         $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  1362.         $userName = (isset($reqparams['username']))?$reqparams['username']:'';
  1363.         $password = (isset($reqparams['password']))?$reqparams['password']:'';
  1364.         if($userName == '' || $password == '')
  1365.         {
  1366.             $data "Username and Password are mandatory!";
  1367.         } else {
  1368.             $user User::getByName($userName);
  1369.             if($user) {
  1370.                 $validateUser \Pimcore\Tool\Authentication::authenticatePlaintext($userName,$password);
  1371.                 if($validateUser) {
  1372.                     $userInfo = ['id'=>$validateUser->getId(),
  1373.                                 'firstname'=>$validateUser->getfirstname(),
  1374.                                 'lastname'=>$validateUser->getlastname(),
  1375.                                 'email'=>$validateUser->getemail(),
  1376.                                 ];
  1377.                     $generateAuthTokenInfo SELF::generateAuthToken($userInfo);
  1378.                     $generateAuthToken $generateAuthTokenInfo['generateAuthToken'];
  1379.                     $jwtToken = (!empty($generateAuthTokenInfo['jwt']))?$generateAuthTokenInfo['jwt']:'';
  1380.                     $userId $validateUser->getId(); 
  1381.                     $dbConnection \Pimcore\Db::get();
  1382.                     $dbConnection->query("UPDATE users SET `authToken` = ? WHERE id = ?", [$generateAuthToken$userId]);
  1383.                     $userData User::getById($userId);
  1384.                     $authTokenVal $dbConnection->fetchOne("SELECT authToken FROM users WHERE id = ".$userId);
  1385.                     $data = ["message"=>'Login successfull'"authToken"=>$authTokenVal];
  1386.                     if($jwtToken!='')
  1387.                         $data = ["message"=>'Login successfull'"authToken"=>$authTokenVal"jwtToken"=>$jwtToken];
  1388.                     
  1389.                 } else {
  1390.                     $data 'Wrong password';
  1391.                 }
  1392.             } else {
  1393.                 $data 'User not found';
  1394.             }
  1395.         }
  1396.         return $this->json(["success" => true"data" => $data]);
  1397.     }
  1398.     /*---------------------------------- JWT Related APIs ----------------------------*/
  1399.     /**
  1400.      * @Route("/api/gernerateJwtToken")
  1401.      */
  1402.     public function gernerateJwtTokenAction()
  1403.     {
  1404.         $id 1024;
  1405.         $firstname 'Tex';
  1406.         $lastname 'Hardrock';
  1407.         $email 'dino@stone.age';
  1408.         $secret_key "951e345a17ab26f80ec0e16b1d2a0c2a";
  1409.         $issuer_claim "pimcore6.local"// this can be the servername
  1410.         $audience_claim "Babu";
  1411.         $issuedat_claim time(); // issued at
  1412.         $notbefore_claim $issuedat_claim 10//not before in seconds
  1413.         $expire_claim $issuedat_claim 60// expire time in seconds
  1414.         $token = array(
  1415.             "iss" => $issuer_claim,
  1416.             "aud" => $audience_claim,
  1417.             "iat" => $issuedat_claim,
  1418.             "nbf" => $notbefore_claim,
  1419.             "exp" => $expire_claim,
  1420.             "data" => array(
  1421.                 "id" => $id,
  1422.                 "firstname" => $firstname,
  1423.                 "lastname" => $lastname,
  1424.                 "email" => $email
  1425.         ));
  1426.         $jwt JWT::encode($token$secret_key'HS256');
  1427.         // echo json_encode(
  1428.         //     array(
  1429.         //         "message" => "Successful login.",
  1430.         //         "jwt" => $jwt,
  1431.         //         "email" => $email,
  1432.         //         "expireAt" => $expire_claim
  1433.         //     )); die;
  1434.         $data = array(
  1435.             "message" => "Successful login.",
  1436.             "jwt" => $jwt,
  1437.             "email" => $email,
  1438.             "expireAt" => $expire_claim
  1439.         );
  1440.         return $this->json(["success" => true"data" => $data]);
  1441.     }
  1442.     /**
  1443.      * @Route("/api/verifyJwtToken")
  1444.      */
  1445.     public function verifyJwtTokenAction()
  1446.     {
  1447.         $secret_key "951e345a17ab26f80ec0e16b1d2a0c2a";
  1448.         $jwt null;
  1449.         
  1450.         $data json_decode(file_get_contents("php://input"));
  1451.         $authHeader $_SERVER['HTTP_AUTHORIZATION'];
  1452.         $arr explode(" "$authHeader);
  1453.         $jwt $arr[1];
  1454.         if($jwt){
  1455.             try {
  1456.                 $decoded JWT::decode($jwt, new Key($secret_key'HS256'));
  1457.                 // Access is granted. Add code of the operation here 
  1458.                 $data = array(
  1459.                     "message" => "Access granted"
  1460.                 );
  1461.                 return $this->json(["success" => true"data" => $data]);
  1462.             }catch (Exception $e){
  1463.                 $data = array(
  1464.                     "message" => "Access denied"
  1465.                 );
  1466.                 return $this->json(["success" => true"data" => $data]);
  1467.             }
  1468.         }
  1469.     }
  1470.     /*------------------------------ End of JWT Related APIs -------------------------*/
  1471.     /*---------------------------------- Personal Statement Related APIs ----------------------------*/
  1472.     /**
  1473.      * @Route("personalitystatement/getperstmtlist", methods={"POST"})
  1474.      */
  1475.     public function getperstmtlistAction(Request $request)
  1476.     {
  1477.         $api_log_info "API:Get Personality Statements list with or without params - ".date("YmdHis")." ".time();
  1478.         $log_data "Started - ".$api_log_info;
  1479.         SELF::createApiLog($log_data);
  1480.         $message SELF::verifyauthToken($api_log_info);
  1481.         $log_data $api_log_info." | message:".json_encode($message);
  1482.         SELF::createApiLog($log_data);
  1483.         // $data[] = ['message'=>$message];
  1484.         $data = [];
  1485.         if($message == "No data found")
  1486.         {
  1487.             $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  1488.             // print_r($reqparams); die;
  1489.             // print_r($request->get->all());
  1490.             $log_data $api_log_info." | reqparams:".json_encode($reqparams);
  1491.             SELF::createApiLog($log_data);
  1492.             $title = (isset($reqparams['title']))?$reqparams['title']:'';
  1493.             $gender = (isset($reqparams['gender']))?$reqparams['gender']:'';
  1494.             $standout_fitin = (isset($reqparams['standout_fitin']))?$reqparams['standout_fitin']:'';
  1495.             $describe_yourself = (isset($reqparams['describe_yourself']))?$reqparams['describe_yourself']:'';
  1496.             $occasion = (isset($reqparams['occasion']))?$reqparams['occasion']:'';
  1497.             $priceband = (isset($reqparams['priceband']))?$reqparams['priceband']:'';
  1498.             $blank1 = (isset($reqparams['blank1']))?$reqparams['blank1']:'';
  1499.             $blank2 = (isset($reqparams['blank2']))?$reqparams['blank2']:'';
  1500.             $log_data $api_log_info." | title:".json_encode($title)." | gender:".json_encode($gender)." | standout_fitin:".json_encode($standout_fitin)." | describe_yourself:".json_encode($describe_yourself)." | occasion:".json_encode($occasion)." | priceband:".json_encode($priceband)." | blank1:".json_encode($blank1)." | blank2:".json_encode($blank2);
  1501.             SELF::createApiLog($log_data);
  1502.             $perstmtList DataObject\Personalitystatements::getList();
  1503.             if($title || $blank1 || $blank2 || $priceband || $gender || $standout_fitin || $describe_yourself || $occasion)
  1504.             {
  1505.                 $whr_condition " personality_statement != '' "$whr_condition_array = [];
  1506.                 if($title){
  1507.                     $whr_condition .= " AND personality_statement = '".$title."'";
  1508.                 }
  1509.                 if($priceband){
  1510.                     $whr_condition .= " AND priceband = '".$priceband."'";
  1511.                 }
  1512.                 if($blank1){
  1513.                     $whr_condition .= " AND blank1 = '".$blank1."'";
  1514.                 }
  1515.                 if($blank2){
  1516.                     $whr_condition .= " AND blank2 = '".$blank2."'";
  1517.                 }
  1518.                 if($gender){
  1519.                     $whr_condition .= " AND gender LIKE '%,".$gender.",%'";
  1520.                 }
  1521.                 if($standout_fitin){
  1522.                     $whr_condition .= " AND standout_fitin LIKE '%,".$standout_fitin.",%'";
  1523.                 }
  1524.                 if($describe_yourself){
  1525.                     $whr_condition .= " AND describe_yourself LIKE '%,".$describe_yourself.",%'";
  1526.                 }
  1527.                 if($occasion){
  1528.                     $whr_condition .= " AND occasion LIKE '%,".$occasion.",%'";
  1529.                 }
  1530.                 // echo "whr_condition:".$whr_condition;
  1531.                 // echo "whr_condition_array:";
  1532.                 // print_r($whr_condition_array); die;
  1533.                 $log_data $api_log_info." | whr_condition:".json_encode($whr_condition);
  1534.                 SELF::createApiLog($log_data);
  1535.                 $perstmtList->setCondition($whr_condition);
  1536.                 
  1537.             }
  1538.             
  1539.             $perstmtList->load();
  1540.             $log_data $api_log_info." | perstmtList count:".json_encode(count($perstmtList));
  1541.             SELF::createApiLog($log_data);
  1542.             foreach ($perstmtList as $key => $perstmtObj) {
  1543.                 $log_data $api_log_info." | perstmtObj:".json_encode($perstmtObj);
  1544.                 SELF::createApiLog($log_data);
  1545.                 $data[] = array(
  1546.                     "id" => $perstmtObj->getId(),
  1547.                     "personality_statement" => $perstmtObj->getpersonality_statement(),
  1548.                     "standout_fitin" => $perstmtObj->getstandout_fitin(),
  1549.                     "describe_yourself" => $perstmtObj->getdescribe_yourself(),
  1550.                     "occasion" => $perstmtObj->getoccasion(),
  1551.                     "priceband" => $perstmtObj->getpriceband(),
  1552.                     "blank2" => $perstmtObj->getblank2(),
  1553.                     "blank1" => $perstmtObj->getblank1());
  1554.                 $log_data $api_log_info." | data:".json_encode($data);
  1555.                 SELF::createApiLog($log_data);
  1556.             }
  1557.         } else $data[] = ['message'=>$message];
  1558.         $data = (empty($data))?$message:$data;
  1559.         // return $slotsList;
  1560.         $return_data = ["success" => true"data" => $data];
  1561.         $log_data $api_log_info." | return_data:".json_encode($return_data);
  1562.         SELF::createApiLog($log_data);
  1563.         return $this->json(["success" => true"data" => $data]);
  1564.     }
  1565.     /**
  1566.      * @Route("personalitystatement/perstmtlist")
  1567.      */
  1568.     public function perstmtlistAction()
  1569.     {
  1570.         $api_log_info "API:Get All Personality Statements - ".date("YmdHis")." ".time();
  1571.         $log_data "Started - ".$api_log_info;
  1572.         SELF::createApiLog($log_data);
  1573.         $message SELF::verifyauthToken($api_log_info);
  1574.         $log_data $api_log_info." | message:".json_encode($message);
  1575.         SELF::createApiLog($log_data);
  1576.         if($message == "No data found")
  1577.         {
  1578.             $perstmtList DataObject\Personalitystatements::getList();
  1579.             $perstmtList->load();
  1580.             $log_data $api_log_info." | perstmtList count:".json_encode(count($perstmtList));
  1581.             SELF::createApiLog($log_data);
  1582.             if(count($perstmtList)>0){
  1583.                 foreach ($perstmtList as $key => $perstmtObj) {
  1584.                     $log_data $api_log_info." | perstmtObj:".json_encode($perstmtObj);
  1585.                     SELF::createApiLog($log_data);
  1586.                     $data[] = array(
  1587.                         "id" => $perstmtObj->getId(),
  1588.                         "personality_statement" => $perstmtObj->getpersonality_statement(),
  1589.                         "standout_fitin" => $perstmtObj->getstandout_fitin(),
  1590.                         "describe_yourself" => $perstmtObj->getdescribe_yourself(),
  1591.                         "occasion" => $perstmtObj->getoccasion(),
  1592.                         "priceband" => $perstmtObj->getpriceband(),
  1593.                         "blank2" => $perstmtObj->getblank2(),
  1594.                         "blank1" => $perstmtObj->getblank1());
  1595.                     $log_data $api_log_info." | data:".json_encode($data);
  1596.                     SELF::createApiLog($log_data);
  1597.                 }
  1598.             } else $data[] = ['message'=>$message];
  1599.         } else $data[] = ['message'=>$message];
  1600.         $return_data = ["success" => true"data" => $data];
  1601.         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  1602.         SELF::createApiLog($log_data);
  1603.         return $this->json(["success" => true"data" => $data]);
  1604.     }
  1605.     /**
  1606.      * @Route("personalitystatement/perstmtinfo/{id}")
  1607.      */
  1608.     public function perstmtinfoAction($id)
  1609.     {
  1610.         $api_log_info "API:Get Personality Statement Info by ID - ".date("YmdHis")." ".time();
  1611.         $log_data "Started - ".$api_log_info;
  1612.         SELF::createApiLog($log_data);
  1613.         $log_data $api_log_info." | ID:".$id;
  1614.         SELF::createApiLog($log_data);
  1615.         $message SELF::verifyauthToken($api_log_info);
  1616.         $log_data $api_log_info." | message:".json_encode($message);
  1617.         SELF::createApiLog($log_data);
  1618.         if($message == "No data found")
  1619.         {
  1620.             $perstmtObject DataObject\Personalitystatements::getById($id);
  1621.             $log_data $api_log_info." | perstmtObject:".json_encode($perstmtObject);
  1622.             SELF::createApiLog($log_data);
  1623.             if(!empty($perstmtObject) && $perstmtObject->getpersonality_statement()){
  1624.                 $log_data $api_log_info." | perstmtObject getpersonality_statement:".json_encode($perstmtObject->getpersonality_statement());
  1625.                 SELF::createApiLog($log_data);
  1626.                 $data[] = array(
  1627.                     "id" => $perstmtObject->getId(),
  1628.                     "personality_statement" => $perstmtObject->getpersonality_statement(),
  1629.                     "standout_fitin" => $perstmtObject->getstandout_fitin(),
  1630.                     "describe_yourself" => $perstmtObject->getdescribe_yourself(),
  1631.                     "occasion" => $perstmtObject->getoccasion(),
  1632.                     "priceband" => $perstmtObject->getpriceband(),
  1633.                     "blank2" => $perstmtObject->getblank2(),
  1634.                     "blank1" => $perstmtObject->getblank1());
  1635.                 $log_data $api_log_info." | data:".json_encode($data);
  1636.                 SELF::createApiLog($log_data);
  1637.             } else $data[] = ['message'=>$message];
  1638.         } else $data[] = ['message'=>$message];
  1639.         $returnData = ["success" => true"data" => $data];
  1640.         $log_data "Ended - ".$api_log_info." | returnData:".json_encode($returnData);
  1641.         SELF::createApiLog($log_data);
  1642.         return $this->json(["success" => true"data" => $data]);
  1643.     }
  1644.     /*------------------------------ End of Personal Statement Related APIs -------------------------*/
  1645.     /*---------------------------------- Shipping Rate / Delivery Fee Related APIs ----------------------------*/
  1646.     /**
  1647.      * @Route("api/shippingchargeslist")
  1648.      */
  1649.     public function shippingchargeslistAction()
  1650.     {
  1651.         $api_log_info "API:Get Shipping Charges List - ".date("YmdHis")." ".time();
  1652.         $log_data "Started - ".$api_log_info;
  1653.         SELF::createApiLog($log_data);
  1654.         $message SELF::verifyauthToken($api_log_info);
  1655.         $log_data $api_log_info." | message:".json_encode($message);
  1656.         SELF::createApiLog($log_data);
  1657.         if($message == "No data found")
  1658.         {
  1659.             $shippingchargesList DataObject\Shippingcharges::getList();
  1660.             $shippingchargesList->load();
  1661.             $log_data $api_log_info." | shippingchargesList count:".json_encode(count($shippingchargesList));
  1662.             SELF::createApiLog($log_data);
  1663.             if(count($shippingchargesList)>0){
  1664.                 foreach ($shippingchargesList as $key => $shippingchargeObj) {
  1665.                     $log_data $api_log_info." | shippingchargeObj:".json_encode($shippingchargeObj);
  1666.                     SELF::createApiLog($log_data);
  1667.                     $data[] = array(
  1668.                         "id" => $shippingchargeObj->getId(),
  1669.                         "minimum_order" => $shippingchargeObj->getminimum_order(),
  1670.                         "maximum_order" => $shippingchargeObj->getmaximum_order(),
  1671.                         "discount_percentage" => $shippingchargeObj->getdiscount_percentage(),
  1672.                         "location" => $shippingchargeObj->getlocationId()->getLocation_name());
  1673.                     $log_data $api_log_info." | data:".json_encode($data);
  1674.                     SELF::createApiLog($log_data);
  1675.                 }
  1676.             } else $data[] = ['message'=>$message];
  1677.         } else $data[] = ['message'=>$message];
  1678.         $returnData = ["success" => true"data" => $data];
  1679.         $log_data "Ended - ".$api_log_info." | returnData:".json_encode($returnData);
  1680.         SELF::createApiLog($log_data);
  1681.         return $this->json(["success" => true"data" => $data]);
  1682.     }
  1683.     /**
  1684.      * @Route("api/shippingrateslist", methods={"POST"})
  1685.      */
  1686.     public function shippingrateslistAction()
  1687.     {
  1688.         $api_log_info "API:Shipping Rate / Delivery Fee List - ".date("YmdHis")." ".time();
  1689.         $log_data "Started - ".$api_log_info;
  1690.         SELF::createApiLog($log_data);
  1691.         $message SELF::verifyauthToken($api_log_info);
  1692.         $log_data $api_log_info." | message:".json_encode($message);
  1693.         SELF::createApiLog($log_data);
  1694.         if($message == "No data found")
  1695.         {
  1696.             $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  1697.             $log_data $api_log_info." | reqparams:".json_encode($reqparams);
  1698.             SELF::createApiLog($log_data);
  1699.             $weight_cart = (isset($reqparams['weight_cart']))?$reqparams['weight_cart']:'';
  1700.             $req_weight_cart $weight_cart;
  1701.             $locationCode = (isset($reqparams['locationCode']))?$reqparams['locationCode']:'';
  1702.             $shipping_state_code = (isset($reqparams['shipping_state_code']))?$reqparams['shipping_state_code']:'';
  1703.             $pincode = (isset($reqparams['pincode']))?$reqparams['pincode']:'';
  1704.             $order_amount = (isset($reqparams['order_amount']))?$reqparams['order_amount']:'';
  1705.             $log_data $api_log_info." | weight_cart:".json_encode($weight_cart)." | req_weight_cart:".json_encode($req_weight_cart)." | locationCode:".json_encode($locationCode)." | shipping_state_code:".json_encode($shipping_state_code)." | pincode:".json_encode($pincode)." | order_amount:".json_encode($order_amount);
  1706.             SELF::createApiLog($log_data);
  1707.             if($weight_cart == '' || $locationCode == '' || $shipping_state_code == '' || $pincode == '' || $order_amount == '')
  1708.             {
  1709.                 $data "weight_cart, locationCode, shipping_state_code, pincode and order_amount are mandatory!";
  1710.                 $log_data $api_log_info." | data:".json_encode($data);
  1711.                 SELF::createApiLog($log_data);
  1712.             } else {
  1713.                 /*------ Get Shipping Rate Card Class data --------*/
  1714.                 $dbConnection \Pimcore\Db::get();
  1715.                 $shippingRatecardClassId $dbConnection->fetchOne(" SELECT id FROM classes WHERE LOWER(name) = 'Shippingratecards' ");
  1716.                 $shippingRatecardObject "object_".$shippingRatecardClassId;
  1717.                 $log_data $api_log_info." | shippingRatecardObject:".json_encode($shippingRatecardObject);
  1718.                 SELF::createApiLog($log_data);
  1719.                 // $shippingRatecardId = $dbConnection->fetchOne(" select * from object_12 order by abs(no_of_kgs - ".$weight_cart.")");
  1720.                 $shippingRatecardId $dbConnection->fetchOne(" select * from ".$shippingRatecardObject." order by abs(no_of_kgs - ".$weight_cart.")");
  1721.                 $log_data $api_log_info." | shippingRatecardId:".json_encode($shippingRatecardId);
  1722.                 SELF::createApiLog($log_data);
  1723.                 /*----- End of ---------*/
  1724.                 /*---- Check Location by Location Code ---------*/
  1725.                 $locData DataObject\Locations::getBylocation_code($locationCode1);
  1726.                 $pincodeInfo DataObject\ItcAddPincode::getBypincode($pincode1);
  1727.                 $stateInfo DataObject\States::getBystate_code($shipping_state_code1);
  1728.                 $shipChargeInfo DataObject\Shippingratecards::getById($shippingRatecardId); //DataObject\Shippingratecards::getByno_of_kgs($weight_cart, 1);
  1729.                 $log_data $api_log_info." | locData:".json_encode($locData)." | pincodeInfo:".json_encode($pincodeInfo)." | stateInfo:".json_encode($stateInfo)." | shipChargeInfo:".json_encode($shipChargeInfo);
  1730.                 SELF::createApiLog($log_data);
  1731.                 if(empty($locData) || empty($locData->getId()) || empty($pincodeInfo) || empty($pincodeInfo->getId()) || empty($shipChargeInfo) || empty($shipChargeInfo->getId()))// || empty($stateInfo) || empty($stateInfo->getId()) 
  1732.                 {
  1733.                     if(empty($locData) || empty($locData->getId()))
  1734.                         $message "Location is not exited, please try with valid location code!";
  1735.                     
  1736.                     if(empty($pincodeInfo) || empty($pincodeInfo->getId()))
  1737.                         $message "Pincode is not exited, please try with valid pincode!";
  1738.                 
  1739.                     if(empty($shipChargeInfo) || empty($shipChargeInfo->getId()))
  1740.                         $message "Shipping Charge is not exited for ".$weight_cart." Kgs, please try with valid No of Kgs!";
  1741.                     $data[] = ['message'=>$message];
  1742.                     
  1743.                     $log_data $api_log_info." | data:".json_encode($data);
  1744.                     SELF::createApiLog($log_data);
  1745.                 } else {
  1746.                     $locationId $locData->getId();
  1747.                     $locationName $locData->getLocation_name();
  1748.                     $message SELF::verifyauthToken();
  1749.                     
  1750.                     $log_data $api_log_info." | locationId:".json_encode($locationId)." | locationName:".json_encode($locationName)." | message:".json_encode($message);
  1751.                     SELF::createApiLog($log_data);
  1752.                     if($message == "No data found")
  1753.                     {
  1754.                         /*------ Check Location is Up Country or not --------*/
  1755.                         $Is_location_up_country = (strpos(strtolower($locationName),"up country"))?1:0;
  1756.                     
  1757.                         $log_data $api_log_info." | Is_location_up_country:".json_encode($Is_location_up_country);
  1758.                         SELF::createApiLog($log_data);
  1759.         
  1760.                         /*------ Get Settings Class, Object and ID data --------*/
  1761.                         $dbConnection \Pimcore\Db::get();
  1762.                         $settingsClassId $dbConnection->fetchOne(" SELECT id FROM classes WHERE LOWER(name) = 'Settings' ");
  1763.                         $settingsObject "object_".$settingsClassId;
  1764.                     
  1765.                         $log_data $api_log_info." | settingsObject:".json_encode($settingsObject);
  1766.                         SELF::createApiLog($log_data);
  1767.                         $settingsObjectId $dbConnection->fetchOne("select * from ".$settingsObject." order by oo_id asc");
  1768.                     
  1769.                         $log_data $api_log_info." | settingsObjectId:".json_encode($settingsObjectId);
  1770.                         SELF::createApiLog($log_data);
  1771.                         /*---- Get Settings Data ---------*/
  1772.                         $settingsData DataObject\Settings::getById($settingsObjectId);
  1773.                         $log_data $api_log_info." | settingsData:".json_encode($settingsData);
  1774.                         SELF::createApiLog($log_data);
  1775.                         // echo '<pre>settingsObjectId:'.$settingsObjectId;
  1776.                         // echo '<pre>settingsData:';
  1777.                         // print_r($settingsData->getis_deliveryfee_config_applicable());
  1778.                         $is_shippingapplicable=$pincodeInfo->getis_shipping_applicable();
  1779.                     
  1780.                         $log_data $api_log_info." | is_shippingapplicable:".json_encode($is_shippingapplicable);
  1781.                         SELF::createApiLog($log_data);
  1782.                         $pincode_data['pincode'] = $pincodeInfo->getpincode();
  1783.                         $pincode_data['state'] = $pincodeInfo->getstate();
  1784.                         $pincode_data['is_shipping_applicable'] = $pincodeInfo->getis_shipping_applicable();
  1785.                         $pincode_data['deliverytype'] = $pincodeInfo->getdeliverytype();
  1786.                     
  1787.                         $log_data $api_log_info." | pincode_data:".json_encode($pincode_data);
  1788.                         SELF::createApiLog($log_data);
  1789.                         /*----------- End of Check Is Shipping Applicable or Not based on Pincode from Pincode Table ----------*/
  1790.                         /*------------- Get Shipping Discount Based on Is Shipping Applicable Fee Shipping Rule(Shipping Charges) Table------------*/
  1791.                         $final_cost=0$rate_discount_perc=0$cur_noofkgs $shipChargeInfo->getno_of_kgs();
  1792.                         $zone_name=(!empty($stateInfo) && $stateInfo->getZoneId())?$stateInfo->getZoneId()->getzone_name():'';
  1793.                     
  1794.                         $log_data $api_log_info." | final_cost:".json_encode($final_cost)." | rate_discount_perc:".json_encode($rate_discount_perc)." | cur_noofkgs:".json_encode($cur_noofkgs)." | zone_name:".json_encode($zone_name);
  1795.                         SELF::createApiLog($log_data);
  1796.                         /*----------- End of Get Zone based on State Code from States Table ----------*/
  1797.                         /*------------- Get Shipping rate data based on state code and weight cart ------------*/
  1798.                         $shippingratesList DataObject\Shippingratecards::getList();
  1799.                         if ($shippingratesList->getClass()->getFieldDefinition('no_of_kgs')->isFilterable()) {
  1800.                             $shippingratesList->filterByno_of_kgs($cur_noofkgs'=');
  1801.                         }
  1802.                         $shippingratesList->setOrderKey("no_of_kgs");
  1803.                         $shippingratesList->setOrder("desc");
  1804.                         $shippingratesList->load();
  1805.                     
  1806.                         $log_data $api_log_info." | shippingratesList count:".json_encode(count($shippingratesList));
  1807.                         SELF::createApiLog($log_data);
  1808.                         if(count($shippingratesList)>0){
  1809.                             $ii=0;
  1810.                             foreach ($shippingratesList as $key => $shippingrateObj) {
  1811.                     
  1812.                                 $log_data $api_log_info." | key:".json_encode($key)." | shippingrateObj:".json_encode($shippingrateObj);
  1813.                                 SELF::createApiLog($log_data);
  1814.                                 $data_key $data_val $data_key2 $data_val2 '';
  1815.                                 $data[] = array(
  1816.                                     "id" => $shippingrateObj->getId(),
  1817.                                     "no_of_kgs" => $req_weight_cart,
  1818.                                     "inter_region_cost" => $shippingrateObj->getintera_region_cost(),
  1819.                                     "j_k_cost" => $shippingrateObj->getj_and_k_cost(),
  1820.                                     "ne_and_andaman_cost" => $shippingrateObj->getne_and_andaman()
  1821.                                 );
  1822.                     
  1823.                                 $log_data $api_log_info." | Initialise data_key, data_val, data_key2 and data_val2 values as null | data:".json_encode($data);
  1824.                                 SELF::createApiLog($log_data);
  1825.                                 
  1826.                                 if($is_shippingapplicable == 'Yes')
  1827.                                 {
  1828.                                     if($zone_name == 'J and K')
  1829.                                     {
  1830.                                         $final_cost $shippingrateObj->getj_and_k_cost();
  1831.                                     }
  1832.                                     else if($zone_name == 'NE and Andaman')
  1833.                                     {
  1834.                                         $final_cost $shippingrateObj->getne_and_andaman();  
  1835.                                     }
  1836.                                     else 
  1837.                                     {
  1838.                                         $final_cost $shippingrateObj->getintera_region_cost();
  1839.                                     }
  1840.                                 }
  1841.                                 $log_data $api_log_info." | zone_name:".json_encode($zone_name)." | final_cost:".json_encode($final_cost);
  1842.                                 SELF::createApiLog($log_data);
  1843.                                 $data[$ii]['locationCode'] = $locationCode;
  1844.                                 $data[$ii]['pincode'] = $pincode_data;
  1845.                     
  1846.                                 $log_data $api_log_info." | ii:".json_encode($ii)." | data:".json_encode($data);
  1847.                                 SELF::createApiLog($log_data);
  1848.                                 
  1849.                             }
  1850.                             $minimum_order $maximum_order $discount_percentage 0$shippingRules = [];
  1851.                     
  1852.                             $log_data $api_log_info." | Initialise minimum_order, maximum_order, discount_percentage and shippingRules values as null | is_shippingapplicable:".json_encode($is_shippingapplicable);
  1853.                             SELF::createApiLog($log_data);
  1854.                             
  1855.                             if($is_shippingapplicable == 'Yes')//&& $loc_code_error == ''
  1856.                             {
  1857.                                 $shippingchargesList DataObject\Shippingcharges::getList();
  1858.                                 $shippingchargesList->setCondition("locationId__Id = ? AND (minimum_order <= ? AND maximum_order >= ?)",[$locationId$order_amount$order_amount]);
  1859.                                 $shippingchargesList->load();
  1860.                     
  1861.                                 $log_data $api_log_info." | shippingchargesList count:".json_encode(count($shippingchargesList));
  1862.                                 SELF::createApiLog($log_data);
  1863.                                 if(count($shippingchargesList)>0)
  1864.                                 {
  1865.                                     foreach($shippingchargesList as $shippingchargeObj)
  1866.                                     {
  1867.                                         $log_data $api_log_info." | shippingchargeObj:".json_encode($shippingchargeObj);
  1868.                                         SELF::createApiLog($log_data);
  1869.                                         $minimum_order $shippingchargeObj->getminimum_order();
  1870.                                         $maximum_order $shippingchargeObj->getmaximum_order();
  1871.                                         $discount_percentage $shippingchargeObj->getdiscount_percentage();
  1872.                                         $log_data $api_log_info." | minimum_order:".json_encode($minimum_order)." | maximum_order:".json_encode($maximum_order)." | discount_percentage:".json_encode($discount_percentage);
  1873.                                         SELF::createApiLog($log_data);
  1874.                                         $shippingRules['shippingRuleId'] = $shippingchargeObj->getId();
  1875.                                         $shippingRules['minimum_order_amount'] = $minimum_order;
  1876.                                         $shippingRules['maximum_order_amount'] = $maximum_order;
  1877.                                         $shippingRules['discount_percentage'] = $discount_percentage;
  1878.                                         $log_data $api_log_info." | shippingRules:".json_encode($shippingRules);
  1879.                                         SELF::createApiLog($log_data);
  1880.                                     }
  1881.                                     $data[$ii]['shippingRules'] = $shippingRules;
  1882.                                     $log_data $api_log_info." | ii:".json_encode($ii)." | data:".json_encode($data);
  1883.                                     SELF::createApiLog($log_data);
  1884.                                     $rate_discount_perc = ($minimum_order <= $order_amount && $maximum_order >= $order_amount)?$discount_percentage:0;
  1885.                                     $final_cost $final_cost - (($final_cost*$rate_discount_perc)/100);
  1886.                                     $log_data $api_log_info." | rate_discount_perc:".json_encode($rate_discount_perc)." | final_cost:".json_encode($final_cost);
  1887.                                     SELF::createApiLog($log_data);
  1888.                                 }
  1889.                                 
  1890.                             }
  1891.                             /*----------- Delivery Fee Configuration Condition --------------*/
  1892.                             $log_data $api_log_info." | settingsData getis_deliveryfee_config_applicable:".json_encode($settingsData->getis_deliveryfee_config_applicable());
  1893.                             SELF::createApiLog($log_data);
  1894.                             if($settingsData->getis_deliveryfee_config_applicable() == 'Yes')
  1895.                             {
  1896.                                 $stg_deliveryfee_config $settingsData->getdeliveryfee_config();
  1897.                                 $stg_deliveryfee_config_location_lessthan_charge $settingsData->getdeliveryfee_config_location_lessthan_charge();
  1898.                                 $stg_deliveryfee_config_location_greaterthanequal_charge $settingsData->getdeliveryfee_config_location_greaterthanequal_charge();
  1899.                                 $stg_deliveryfee_config_upcountry_lessthan_charge $settingsData->getdeliveryfee_config_upcountry_lessthan_charge();
  1900.                                 $stg_deliveryfee_config_upcountry_greaterthanequal_charge $settingsData->getdeliveryfee_config_upcountry_greaterthanequal_charge();
  1901.                                 $log_data $api_log_info." | stg_deliveryfee_config:".json_encode($stg_deliveryfee_config)." | stg_deliveryfee_config_location_lessthan_charge:".json_encode($stg_deliveryfee_config_location_lessthan_charge)." | stg_deliveryfee_config_location_greaterthanequal_charge:".json_encode($stg_deliveryfee_config_location_greaterthanequal_charge)." | stg_deliveryfee_config_upcountry_lessthan_charge:".json_encode($stg_deliveryfee_config_upcountry_lessthan_charge)." | stg_deliveryfee_config_upcountry_greaterthanequal_charge:".json_encode($stg_deliveryfee_config_upcountry_greaterthanequal_charge);
  1902.                                 SELF::createApiLog($log_data);
  1903.                                 if($Is_location_up_country == && $order_amount $stg_deliveryfee_config && $stg_deliveryfee_config_location_lessthan_charge != -1$final_cost $stg_deliveryfee_config_location_lessthan_charge;
  1904.                                 else if($Is_location_up_country == && $order_amount >= $stg_deliveryfee_config && $stg_deliveryfee_config_location_greaterthanequal_charge != -1$final_cost $stg_deliveryfee_config_location_greaterthanequal_charge;
  1905.                                 else if($Is_location_up_country == && $order_amount $stg_deliveryfee_config && $stg_deliveryfee_config_upcountry_lessthan_charge != -1$final_cost $stg_deliveryfee_config_upcountry_lessthan_charge;
  1906.                                 else if($Is_location_up_country == && $order_amount >= $stg_deliveryfee_config && $stg_deliveryfee_config_upcountry_greaterthanequal_charge != -1$final_cost $stg_deliveryfee_config_upcountry_greaterthanequal_charge;
  1907.                                 else $final_cost $final_cost;
  1908.                                 $log_data $api_log_info." | final_cost:".json_encode($final_cost);
  1909.                                 SELF::createApiLog($log_data);
  1910.                             }
  1911.                             
  1912.                             $data[$ii]['final_cost'] = $final_cost;
  1913.                             // 2 hours fast delivery code
  1914.                             if($is_shippingapplicable == 'Yes')
  1915.                             {
  1916.                                 $fdsett DataObject\FastDeliverySetting::getList();
  1917.                                 $fdsett->setCondition("locationId__Id = ?",[$locationId]);
  1918.                                 $fdsett->load();
  1919.                                 $data[$ii]['platform_fee'] = 0;
  1920.                                 $data[$ii]['low_order_fee'] = 0;
  1921.                                 if(count($fdsett->getData()) > 0) {
  1922.                                     $fdsett $fdsett->getData()[0];
  1923.                                     $data[$ii]['platform_fee'] = $fdsett->getplatFormFee();
  1924.                                     $cartValue $fdsett->getcartValue();
  1925.                                     if($cartValue $order_amount) {
  1926.                                         $data[$ii]['low_order_fee'] = $fdsett->getminLowOrderFee();
  1927.                                     } else {
  1928.                                         $data[$ii]['low_order_fee'] = $fdsett->getlowOrderFee();
  1929.                                     }
  1930.                                 }
  1931.                             }
  1932.                             $log_data $api_log_info." | final_cost:".json_encode($final_cost)." | ii:".json_encode($ii)." | data:".json_encode($data);
  1933.                             SELF::createApiLog($log_data);
  1934.                         } else $data[] = ['message'=>$message];
  1935.                         /*----------- End of Get Shipping rate data based on state code and weight cart ----------*/
  1936.                     } else $data[] = ['message'=>$message];
  1937.                 }
  1938.             }
  1939.         } else $data[] = ['message'=>$message];
  1940.         $log_data "Ended - ".$api_log_info." | data:".json_encode($data);
  1941.         SELF::createApiLog($log_data);
  1942.         return $this->json(["success" => true"data" => $data]);
  1943.     }
  1944.     /*------------------------------ End of Shipping Rate / Delivery Fee Related APIs -------------------------*/
  1945.     /*---------------------------------- Factory Related APIs ----------------------------*/
  1946.     /**
  1947.      * @Route("/factory/getfactories")
  1948.      */
  1949.     public function getfactories()
  1950.     {
  1951.         $api_log_info "API:Get All Factories - ".date("YmdHis")." ".time();
  1952.         $log_data "Started - ".$api_log_info;
  1953.         SELF::createApiLog($log_data);
  1954.         $message SELF::verifyauthToken($api_log_info);
  1955.         $log_data $api_log_info." | message:".json_encode($message);
  1956.         SELF::createApiLog($log_data);
  1957.         if($message == "No data found")
  1958.         {
  1959.             $factoriesList DataObject\Factories::getList();
  1960.             $factoriesList->load();
  1961.             $log_data $api_log_info." | factoriesList count:".json_encode(count($factoriesList));
  1962.             SELF::createApiLog($log_data);
  1963.             if(count($factoriesList) > 0){
  1964.                 foreach ($factoriesList as $key => $blog) {
  1965.                     $log_data $api_log_info." | key:".json_encode($key)." | blog:".json_encode($blog);
  1966.                     SELF::createApiLog($log_data);
  1967.                     $bestbefore_date '';
  1968.                     if($blog->getbestbefore()){
  1969.                         $bestbefore_dt date("m/d/y"strtotime($blog->getbestbefore()));
  1970.                         $bestbefore_date Carbon::createFromFormat('m/d/y'$bestbefore_dt);
  1971.                         $log_data $api_log_info." | bestbefore_dt:".json_encode($bestbefore_dt)." | bestbefore_date:".json_encode($bestbefore_date);
  1972.                         SELF::createApiLog($log_data);
  1973.                     }
  1974.                     $data[] = array(
  1975.                         "code" => $blog->getcode(),
  1976.                         "name" => $blog->getname(),
  1977.                         "address" => $blog->getaddress(),
  1978.                         "street" => $blog->getstreet(),
  1979.                         "landmark" => $blog->getlandmark(),
  1980.                         "city" => $blog->getcity(),
  1981.                         "state" => $blog->getstate(),
  1982.                         "country" => $blog->getcountry(),
  1983.                         "pincode" => $blog->getpincode(),
  1984.                         "bestbefore" => $bestbefore_date);
  1985.                     $log_data $api_log_info." | data:".json_encode($data);
  1986.                     SELF::createApiLog($log_data);
  1987.                 }
  1988.             } else $data[] = ['message'=>$message];
  1989.         } else $data[] = ['message'=>$message];
  1990.         $log_data "Ended - ".$api_log_info." | data:".json_encode($data);
  1991.         SELF::createApiLog($log_data);
  1992.         
  1993.         return $this->json(["success" => true"data" => $data]);
  1994.     }
  1995.     /**
  1996.      * @Route("api/getfactorydata", methods={"POST"})
  1997.      */
  1998.     public function getfactorydataAction(Request $request)
  1999.     {
  2000.         $api_log_info "API:Get factory Info by Code - ".date("YmdHis")." ".time();
  2001.         $log_data "Started - ".$api_log_info;
  2002.         SELF::createApiLog($log_data);
  2003.         $factorycode $request->get('factorycode');
  2004.         $log_data $api_log_info." | factorycode:".json_encode($factorycode);
  2005.         SELF::createApiLog($log_data);
  2006.         if($factorycode == "")
  2007.         {
  2008.             $data "Factory Code is mandatory!";
  2009.             $log_data $api_log_info." | data:".json_encode($data);
  2010.             SELF::createApiLog($log_data);
  2011.         } else 
  2012.         {
  2013.             $data SELF::verifyauthToken($api_log_info);
  2014.             $log_data $api_log_info." | data:".json_encode($data);
  2015.             SELF::createApiLog($log_data);
  2016.             if($data == "No data found")
  2017.             {
  2018.                 /*---- Check Factory by Code ---------*/
  2019.                 $factoryData DataObject\Factories::getBycode($factorycode1);
  2020.                 $log_data $api_log_info." | factoryData:".json_encode($factoryData);
  2021.                 SELF::createApiLog($log_data);
  2022.                 if(!empty($factoryData) && $factoryData->getId()){
  2023.                         
  2024.                     $log_data $api_log_info." | factoryData getId:".json_encode($factoryData->getId());
  2025.                     SELF::createApiLog($log_data);
  2026.                     $data = array(
  2027.                         "id" => $factoryData->getId(),
  2028.                         "code" => $factoryData->getCode(),
  2029.                         "name" => $factoryData->getname(),
  2030.                         "address" => $factoryData->getaddress(),
  2031.                         "street" => $factoryData->getstreet(),
  2032.                         "landmark" => $factoryData->getlandmark(),
  2033.                         "city" => $factoryData->getcity(),
  2034.                         "state" => $factoryData->getstate(),
  2035.                         "country" => $factoryData->getcountry(),
  2036.                         "pincode" => $factoryData->getpincode(),
  2037.                         "bestbefore" => $factoryData->getbestbefore());
  2038.                     $log_data $api_log_info." | data:".json_encode($data);
  2039.                     SELF::createApiLog($log_data);
  2040.                 } else {
  2041.                     $data "No data found!";
  2042.                     $log_data $api_log_info." | data:".json_encode($data);
  2043.                     SELF::createApiLog($log_data);
  2044.                 }
  2045.             }
  2046.         }
  2047.         $log_data "Ended - ".$api_log_info." | data:".json_encode($data);
  2048.         SELF::createApiLog($log_data);
  2049.         return $this->json(["success" => true"data" => $data]);
  2050.     }
  2051.     /**
  2052.      * @Route("api/getfactoriesdata", methods={"POST"})
  2053.      */
  2054.     public function getfactoriesdataAction(Request $request)
  2055.     {
  2056.         header('X-Content-Type-Options: nosniff');
  2057.         header("X-Frame-Options: SAMEORIGIN");
  2058.         header("Content-Security-Policy: default-src 'self';script-src 'self'");
  2059.         
  2060.         $api_log_info "API:Get Factories list by multiple Factory codes - ".date("YmdHis")." ".time();
  2061.         $log_data "Started - ".$api_log_info;
  2062.         SELF::createApiLog($log_data);
  2063.         $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  2064.         $log_data $api_log_info." | reqparams:".json_encode($reqparams);
  2065.         SELF::createApiLog($log_data);
  2066.         $factorycodes = (isset($reqparams['factorycodes']))?$reqparams['factorycodes']:'';
  2067.         $log_data $api_log_info." | factorycodes:".json_encode($factorycodes);
  2068.         SELF::createApiLog($log_data);
  2069.         // $factorycode = $request->get('factorycode');
  2070.         if($factorycodes == "")
  2071.         {
  2072.             $data "Factory Code(s) is(are) mandatory!";
  2073.             $log_data $api_log_info." | data:".json_encode($data);
  2074.             SELF::createApiLog($log_data);
  2075.         } else 
  2076.         {
  2077.             $data SELF::verifyauthToken($api_log_info);
  2078.             $log_data $api_log_info." | data:".json_encode($data);
  2079.             SELF::createApiLog($log_data);
  2080.             if($data == "No data found")
  2081.             {
  2082.                 /*---- Check Factory by Code ---------*/
  2083.                 $factoriesData = new DataObject\Factories\Listing();
  2084.                 $factoriesData->setCondition("code IN (?)", [$factorycodes]);
  2085.                 $factoriesData->load();
  2086.                 $log_data $api_log_info." | factoriesData count:".json_encode(count($factoriesData));
  2087.                 SELF::createApiLog($log_data);
  2088.                 if(!empty($factoriesData) && count($factoriesData)>0){
  2089.                     $data = [];
  2090.                     foreach($factoriesData as $factoryData){
  2091.                         $log_data $api_log_info." | factoryData:".json_encode($factoryData);
  2092.                         SELF::createApiLog($log_data);
  2093.                         $curdata = array(
  2094.                             "id" => $factoryData->getId(),
  2095.                             "code" => $factoryData->getCode(),
  2096.                             "name" => $factoryData->getname(),
  2097.                             "address" => $factoryData->getaddress(),
  2098.                             "street" => $factoryData->getstreet(),
  2099.                             "landmark" => $factoryData->getlandmark(),
  2100.                             "city" => $factoryData->getcity(),
  2101.                             "state" => $factoryData->getstate(),
  2102.                             "country" => $factoryData->getcountry(),
  2103.                             "pincode" => $factoryData->getpincode(),
  2104.                             "bestbefore" => $factoryData->getbestbefore());
  2105.                         $log_data $api_log_info." | curdata:".json_encode($curdata);
  2106.                         SELF::createApiLog($log_data);
  2107.                         array_push($data$curdata);
  2108.                     }
  2109.                 } else {
  2110.                     $data "No data found!";
  2111.                     $log_data $api_log_info." | data:".json_encode($data);
  2112.                     SELF::createApiLog($log_data);
  2113.                 }
  2114.             }
  2115.         }
  2116.         $return_data = ["success" => true"data" => $data];
  2117.         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  2118.         SELF::createApiLog($log_data);
  2119.         return $this->json(["success" => true"data" => $data]);
  2120.     }
  2121.     /*------------------------------ End of Factory Related APIs -------------------------*/
  2122.     /*---------------------------------- Faq Related APIs ----------------------------*/
  2123.     /**
  2124.      * @param Request $request
  2125.      * 
  2126.      * @Route("/faqApi1",methods={"POST"})
  2127.      * 
  2128.      * @return Response
  2129.      * 
  2130.      */
  2131.     
  2132.      public function faqApi1Action(Request $request)
  2133.      {
  2134.         $api_log_info "API:Get Faq List by locationcode with or without type - ".date("YmdHis")." ".time();
  2135.         $log_data "Started - ".$api_log_info;
  2136.         SELF::createApiLog($log_data);
  2137.         $data SELF::verifyauthToken($api_log_info);
  2138.         $log_data $api_log_info." | data:".json_encode($data);
  2139.         SELF::createApiLog($log_data);
  2140.         if($data == "No data found")
  2141.         {
  2142.             $locationcode = (!empty($request->get('location_code')))?$request->get('location_code'):'';
  2143.             if($locationcode == "")
  2144.             {
  2145.                 $data "Location Code is mandatory";
  2146.             } else {
  2147.                 $getlocationInfo DataObject\Locations::getBylocation_code($locationcode1);
  2148.                 $log_data $api_log_info." | getlocationInfo :".json_encode($getlocationInfo);
  2149.                 SELF::createApiLog($log_data);
  2150.                 if((!empty($getlocationInfo))){
  2151.                     $loc_name = (!empty($getlocationInfo->getlocation_name()))?$getlocationInfo->getlocation_name():'';
  2152.                     $loc_code = (!empty($getlocationInfo->getlocation_code()))?$getlocationInfo->getlocation_code():'';
  2153.                     $log_data $api_log_info." | loc_name :".json_encode($loc_name)." | loc_code :".json_encode($loc_code);
  2154.                     SELF::createApiLog($log_data);
  2155.                     $faqType = (!empty($request->get('type')) && $request->get('type') == 'All')?'':((!empty($request->get('type')) && $request->get('type') != 'All')?$request->get('type'):'General');
  2156.                     $log_data $api_log_info." | locationcode:".json_encode($locationcode)." | faqType:".json_encode($faqType);
  2157.                     SELF::createApiLog($log_data);
  2158.                     $faqTypes_list = ['','All','General''Loyalty'];
  2159.                     if(!in_array($faqType$faqTypes_list)){
  2160.                         $data "You are entered Type is Invalid, Please try again";
  2161.                         $return_data = ["success" => true"data" => $data];
  2162.                         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  2163.                         SELF::createApiLog($log_data);
  2164.                         
  2165.                         return $this->json(["success" => true"data" => $data]);
  2166.                     }
  2167.             
  2168.                     $entries = new DataObject\ItcAddFaq\Listing();
  2169.                     $whr_condition " faqQuestion!= '' ";
  2170.                     if($locationcode != '')
  2171.                     $whr_condition .= " AND location_code= '".$loc_name."' ";
  2172.                     if($faqType != '')
  2173.                     $whr_condition .= " AND faqType= '".$faqType."' ";
  2174.                     // if($locationcode != '')
  2175.                     // $entries->setCondition("location_name = :location_name", ["location_name" => $locationcode]);
  2176.                     // if($faqType != '')
  2177.                     // $entries->setCondition("faqType = :faqType", ["faqType" => $faqType]);
  2178.                     $entries->setCondition($whr_condition);
  2179.                     $entries->load();
  2180.                     $log_data $api_log_info." | faq entries count :".json_encode(count($entries));
  2181.                     SELF::createApiLog($log_data);
  2182.                     $data = (count($entries)>0)?array():"No data found";
  2183.                     foreach($entries as $key => $entrie){
  2184.                         $log_data $api_log_info." | faq key :".json_encode($key)." | faq entrie :".json_encode($entrie);
  2185.                         SELF::createApiLog($log_data);
  2186.             
  2187.                         if($entrie->getlocation_code()){
  2188.                             $locationInfo DataObject\Locations::getBylocation_name($entrie->getlocation_code(), 1);
  2189.                             $log_data $api_log_info." | locationInfo :".json_encode($locationInfo);
  2190.                             SELF::createApiLog($log_data);
  2191.                             
  2192.                             $loc_name = (!empty($locationInfo->getlocation_name()))?$locationInfo->getlocation_name():'';
  2193.                             $loc_code = (!empty($locationInfo->getlocation_code()))?$locationInfo->getlocation_code():'';
  2194.                             $log_data $api_log_info." | loc_name :".json_encode($loc_name)." | loc_code :".json_encode($loc_code);
  2195.                             SELF::createApiLog($log_data);
  2196.                         }
  2197.                         $data[] = array("faqId" => $entrie->getfaqId(),
  2198.                                 "location_code" => $loc_code,
  2199.                                 "location_name" => $loc_name,
  2200.                                 "faqQuestion" => $entrie->getfaqQuestion(),
  2201.                                 "faqAnswer" => $entrie->getfaqAnswer(),
  2202.                                 "Type" => $entrie->getfaqType(),
  2203.                         );
  2204.                         $log_data $api_log_info." | data :".json_encode($data);
  2205.                         SELF::createApiLog($log_data);
  2206.                     }
  2207.                 } else {
  2208.                     $data "Invalid Location Code, Please enter valid Location Code";
  2209.                     $log_data $api_log_info." | data :".json_encode($data);
  2210.                     SELF::createApiLog($log_data);
  2211.                 }
  2212.             }
  2213.         }
  2214.         $return_data = ["success" => true"data" => $data];
  2215.         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  2216.         SELF::createApiLog($log_data);
  2217.         
  2218.         return $this->json(["success" => true"data" => $data]);
  2219.         
  2220.      }
  2221.      /**
  2222.      * @param Request $request
  2223.      * 
  2224.      * @Route("/faqApi",methods={"POST"})
  2225.      * 
  2226.      * @return Response
  2227.      * 
  2228.      */
  2229.      public function faqApiAction(Request $request)
  2230.      {
  2231.         $api_log_info "API:Get Faq List by locationcode with or without type - ".date("YmdHis")." ".time();
  2232.         $log_data "Started - ".$api_log_info;
  2233.         SELF::createApiLog($log_data);
  2234.         $data SELF::verifyauthToken($api_log_info);
  2235.         $log_data $api_log_info." | data:".json_encode($data);
  2236.         SELF::createApiLog($log_data);
  2237.         if($data == "No data found")
  2238.         {
  2239.             $locationcode = (!empty($request->get('location_code')))?$request->get('location_code'):'';
  2240.             // if($locationcode == "")
  2241.             // {
  2242.             //     $data = "Location Code is mandatory";
  2243.             // } else {
  2244.                 $getlocationInfo = (isset($locationcode) && $locationcode!='')?DataObject\Locations::getBylocation_code($locationcode1):[];
  2245.                 $log_data $api_log_info." | getlocationInfo :".json_encode($getlocationInfo);
  2246.                 SELF::createApiLog($log_data);
  2247.                 // if((!empty($getlocationInfo))){
  2248.                     $loc_name = (!empty($getlocationInfo) && !empty($getlocationInfo->getlocation_name()))?$getlocationInfo->getlocation_name():'';
  2249.                     $loc_code = (!empty($getlocationInfo) && !empty($getlocationInfo->getlocation_code()))?$getlocationInfo->getlocation_code():'';
  2250.                     $log_data $api_log_info." | loc_name :".json_encode($loc_name)." | loc_code :".json_encode($loc_code);
  2251.                     SELF::createApiLog($log_data);
  2252.                     $faqType = (!empty($request->get('type')) && $request->get('type') == 'All')?'':((!empty($request->get('type')) && $request->get('type') != 'All')?$request->get('type'):'General');
  2253.                     $log_data $api_log_info." | locationcode:".json_encode($locationcode)." | faqType:".json_encode($faqType);
  2254.                     SELF::createApiLog($log_data);
  2255.                     $faqTypes_list = ['','All','General''Loyalty'];
  2256.                     if(!in_array($faqType$faqTypes_list)){
  2257.                         $data "You are entered Type is Invalid, Please try again";
  2258.                         $return_data = ["success" => true"data" => $data];
  2259.                         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  2260.                         SELF::createApiLog($log_data);
  2261.                         
  2262.                         return $this->json(["success" => true"data" => $data]);
  2263.                     }
  2264.             
  2265.                     $entries = new DataObject\ItcAddFaq\Listing();
  2266.                     $whr_condition " faqQuestion!= '' ";
  2267.                     if($locationcode != '')
  2268.                     $whr_condition .= " AND location_code= '".$loc_name."' ";
  2269.                     if($faqType != '')
  2270.                     $whr_condition .= " AND faqType= '".$faqType."' ";
  2271.                     // if($locationcode != '')
  2272.                     // $entries->setCondition("location_name = :location_name", ["location_name" => $locationcode]);
  2273.                     // if($faqType != '')
  2274.                     // $entries->setCondition("faqType = :faqType", ["faqType" => $faqType]);
  2275.                     $entries->setCondition($whr_condition);
  2276.                     $entries->load();
  2277.                     $log_data $api_log_info." | faq entries count :".json_encode(count($entries));
  2278.                     SELF::createApiLog($log_data);
  2279.                     $data = (count($entries)>0)?array():"No data found";
  2280.                     foreach($entries as $key => $entrie){
  2281.                         $log_data $api_log_info." | faq key :".json_encode($key)." | faq entrie :".json_encode($entrie);
  2282.                         SELF::createApiLog($log_data);
  2283.             
  2284.                         if($entrie->getlocation_code()){
  2285.                             $locationInfo DataObject\Locations::getBylocation_name($entrie->getlocation_code(), 1);
  2286.                             $log_data $api_log_info." | locationInfo :".json_encode($locationInfo);
  2287.                             SELF::createApiLog($log_data);
  2288.                             
  2289.                             $loc_name = (!empty($locationInfo->getlocation_name()))?$locationInfo->getlocation_name():'';
  2290.                             $loc_code = (!empty($locationInfo->getlocation_code()))?$locationInfo->getlocation_code():'';
  2291.                             $log_data $api_log_info." | loc_name :".json_encode($loc_name)." | loc_code :".json_encode($loc_code);
  2292.                             SELF::createApiLog($log_data);
  2293.                         }
  2294.                         $data[] = array("faqId" => $entrie->getfaqId(),
  2295.                                 "location_code" => $loc_code,
  2296.                                 "location_name" => $loc_name,
  2297.                                 "faqQuestion" => $entrie->getfaqQuestion(),
  2298.                                 "faqAnswer" => $entrie->getfaqAnswer(),
  2299.                                 "Type" => $entrie->getfaqType(),
  2300.                         );
  2301.                         $log_data $api_log_info." | data :".json_encode($data);
  2302.                         SELF::createApiLog($log_data);
  2303.                     }
  2304.                 // } else {
  2305.                 //     $data = "Invalid Location Code, Please enter valid Location Code";
  2306.                 //     $log_data = $api_log_info." | data :".json_encode($data);
  2307.                 //     SELF::createApiLog($log_data);
  2308.                 // }
  2309.             // }
  2310.         }
  2311.         $return_data = ["success" => true"data" => $data];
  2312.         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  2313.         SELF::createApiLog($log_data);
  2314.         
  2315.         return $this->json(["success" => true"data" => $data]);
  2316.         
  2317.      }
  2318.     /*------------------------------ End of Faq Related APIs -------------------------*/
  2319.     /*--------------------------------- Pincode Related APIs -----------------------------*/
  2320.     /**
  2321.      * @param Request $request
  2322.      * 
  2323.      * @Route("/wearhouseDetectionApi",methods={"POST"})
  2324.      * 
  2325.      * @return Response
  2326.      * 
  2327.      */
  2328.      public function wearhouseDetectionApiAction(Request $request)
  2329.      { 
  2330.         $api_log_info "API:Get Wearhouse data by Pincode - ".date("YmdHis")." ".time();
  2331.         $log_data "Started - ".$api_log_info;
  2332.         SELF::createApiLog($log_data);
  2333.         $message SELF::verifyauthToken();
  2334.         $log_data $api_log_info." | message:".json_encode($message);
  2335.         SELF::createApiLog($log_data);
  2336.  
  2337.         if($message == "No data found")
  2338.         {
  2339.             if($request->get('pincode')){
  2340.                 $pincode $request->get('pincode');
  2341.                 $log_data $api_log_info." | pincode:".json_encode($pincode);
  2342.                 SELF::createApiLog($log_data);
  2343.                 // $entries = new DataObject\ItcAddPincode\Listing();
  2344.                 // $entries->setCondition("pincode = :name", ["name" => $pincode]);
  2345.                 // $entries->load();
  2346.                 $getpincodeInfo DataObject\ItcAddPincode::getBypincode($pincode1);
  2347.                 $log_data $api_log_info." | getpincodeInfo :".json_encode($getpincodeInfo);
  2348.                 SELF::createApiLog($log_data);
  2349.                 if((!empty($getpincodeInfo))){
  2350.                     $loc_name $loc_code '';
  2351.                     $location_name = (!empty($getpincodeInfo->getlocation_code()))?$getpincodeInfo->getlocation_code():"";
  2352.                     $log_data $api_log_info." | location_name:".json_encode($location_name);
  2353.                     SELF::createApiLog($log_data);
  2354.                     if(!empty($location_name)){
  2355.                         $getlocationInfo DataObject\Locations::getBylocation_name($location_name1);
  2356.                         $log_data $api_log_info." | getlocationInfo :".json_encode($getlocationInfo);
  2357.                         SELF::createApiLog($log_data);
  2358.                         if((!empty($getlocationInfo))){
  2359.                             $loc_name = (!empty($getlocationInfo->getlocation_name()))?$getlocationInfo->getlocation_name():'';
  2360.                             $loc_code = (!empty($getlocationInfo->getlocation_code()))?$getlocationInfo->getlocation_code():'';
  2361.                         } 
  2362.                         $log_data $api_log_info." | loc_name :".json_encode($loc_name)." | loc_code :".json_encode($loc_code);
  2363.                         SELF::createApiLog($log_data);                     
  2364.                     }
  2365.                     $data = array("pincode" => $getpincodeInfo->getpincode(),
  2366.                                     "store_code" => $loc_code,
  2367.                                     "location_name" => $loc_name,
  2368.                                     "city_name" => $getpincodeInfo->getcity(),
  2369.                                     "state" => $getpincodeInfo->getstate(),
  2370.                                     "delivery_type" => $getpincodeInfo->getdeliverytype(),
  2371.                                     "is_shipping_applicable" => $getpincodeInfo->getis_shipping_applicable(),
  2372.                                     "merichakki_available" => $getpincodeInfo->getmerichakki_available(),
  2373.                                     "nammachakki_available" => $getpincodeInfo->getnammachakki_available(),
  2374.                                     "vin_instance" => $getpincodeInfo->getvin_instance(),
  2375.                                 );
  2376.                 } else {
  2377.                     $data "You are entered Pincode is Invalid, Please try again";
  2378.                 }
  2379.                 $log_data $api_log_info." | data :".json_encode($data);
  2380.                 SELF::createApiLog($log_data);  
  2381.             }elseif($request->get('city_name')){
  2382.                 $city $request->get('city_name');
  2383.                 $log_data $api_log_info." | city :".json_encode($city);
  2384.                 SELF::createApiLog($log_data);  
  2385.                 $entries = new DataObject\ItcAddPincode\Listing();
  2386.                 $entries->setCondition("city = :name OR location_code = :name", ["name" => $city,"location_code" => $city]);
  2387.                 $entries->setLimit(1);
  2388.                 $entries->load();
  2389.                 $log_data $api_log_info." | entries count :".json_encode(count($entries));
  2390.                 SELF::createApiLog($log_data);  
  2391.                 foreach($entries as $key => $entrie){
  2392.                     $log_data $api_log_info." | entrie :".json_encode($entrie);
  2393.                     SELF::createApiLog($log_data); 
  2394.                     $loc_name $loc_code '';
  2395.                     $location_name = (!empty($entrie->getlocation_code()))?$entrie->getlocation_code():"";
  2396.                     $log_data $api_log_info." | location_name:".json_encode($location_name);
  2397.                     SELF::createApiLog($log_data);
  2398.                     if(!empty($location_name)){
  2399.                         $getlocationInfo DataObject\Locations::getBylocation_name($location_name1);
  2400.                         $log_data $api_log_info." | getlocationInfo :".json_encode($getlocationInfo);
  2401.                         SELF::createApiLog($log_data);
  2402.                         if((!empty($getlocationInfo))){
  2403.                             $loc_name = (!empty($getlocationInfo->getlocation_name()))?$getlocationInfo->getlocation_name():'';
  2404.                             $loc_code = (!empty($getlocationInfo->getlocation_code()))?$getlocationInfo->getlocation_code():'';
  2405.                         } 
  2406.                         $log_data $api_log_info." | loc_name :".json_encode($loc_name)." | loc_code :".json_encode($loc_code);
  2407.                         SELF::createApiLog($log_data);                     
  2408.                     }
  2409.                     $data = array("pincode" => $entrie->getpincode(),
  2410.                                     "store_code" => $loc_code,
  2411.                                     "location_name" => $loc_name,
  2412.                                     "city_name" => $entrie->getcity(),
  2413.                                     "state" => $entrie->getstate(),
  2414.                                     "delivery_type" => $entrie->getdeliverytype(),
  2415.                                     "is_shipping_applicable" => $entrie->getis_shipping_applicable(),
  2416.                                     "merichakki_available" => $entrie->getmerichakki_available(),
  2417.                                     "nammachakki_available" => $entrie->getnammachakki_available(),
  2418.                                     "vin_instance" => $entrie->getvin_instance(),
  2419.                                 );
  2420.                 }
  2421.             }  else {
  2422.                 $data "Pincode is mandatory";
  2423.             }      
  2424.         } 
  2425.         else
  2426.             $data[] = ['message'=>$message];
  2427.         if(!empty($data)){
  2428.             $success = (empty($data['pincode'])) ? false true;
  2429.             if ($success) {
  2430.                 return $this->json(["success" => $success"data" => $data]);
  2431.             } else {
  2432.                 return $this->json(["success" => $success'message' => $data]);
  2433.             }
  2434.         }else{
  2435.             return $this->json(["success" => false"message" => "Service not available"]);
  2436.         }
  2437.       
  2438.      }
  2439.     /*------------------------------ End of Pincode Related APIs -------------------------*/
  2440.     /*---------------------------------- Voucher Related APIs ----------------------------*/
  2441.     /**
  2442.      * @Route("api/getvouchersdata", methods={"POST"})
  2443.      */
  2444.     public function getvouchersdataAction(Request $request)
  2445.     {
  2446.         $api_log_info "API:Get Vouchers list by multiple voucher codes - ".date("YmdHis")." ".time();
  2447.         $log_data "Started - ".$api_log_info;
  2448.         SELF::createApiLog($log_data);
  2449.         $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  2450.         $log_data $api_log_info." | reqparams:".json_encode($reqparams);
  2451.         SELF::createApiLog($log_data);
  2452.         $vouchercodes = (isset($reqparams['vouchercodes']))?$reqparams['vouchercodes']:'';
  2453.         $vouchertype = (isset($reqparams['vouchertype']))?$reqparams['vouchertype']:'';
  2454.         $log_data $api_log_info." | vouchercodes:".json_encode($vouchercodes)." | vouchertype:".json_encode($vouchertype);
  2455.         SELF::createApiLog($log_data);
  2456.         // $factorycode = $request->get('factorycode');
  2457.         if(($vouchercodes == "" || !is_array($vouchercodes)) && ($vouchertype == '' || ($vouchertype && !in_array($vouchertype, ["Master""all"]))))
  2458.         {
  2459.             
  2460.             $data "Voucher Code(s) OR Voucher Type is(are) mandatory, Voucher Type must be like Master OR all!";
  2461.             $log_data $api_log_info." | data:".json_encode($data);
  2462.             SELF::createApiLog($log_data);
  2463.         } else 
  2464.         {
  2465.             // die;
  2466.             $data SELF::verifyauthToken($api_log_info);
  2467.             $log_data $api_log_info." | data:".json_encode($data);
  2468.             SELF::createApiLog($log_data);
  2469.             if($data == "No data found")
  2470.             {
  2471.                 $vouchertype = ($vouchertype == 'all')?'Voucher':$vouchertype;
  2472.                 /*---- Get Master Voucher data by Master Voucher Code ---------*/
  2473.                 $master_voucher "Master_Voucher";
  2474.                 $masterVoucherData DataObject\Vouchers::getByvoucher_code($master_voucher1);
  2475.                 
  2476.                 $projectUrl  = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' 'https://' 'http://';
  2477.                 $projectUrl .= $_SERVER['SERVER_NAME'];
  2478.                 $log_data $api_log_info." | projectUrl:".json_encode($projectUrl);
  2479.                 SELF::createApiLog($log_data);
  2480.                 /*---- Check Factory by Code ---------*/
  2481.                 $vouchersData = new DataObject\Vouchers\Listing();
  2482.                 if($vouchercodes)
  2483.                 $vouchersData->setCondition("voucher_code IN (?)", [$vouchercodes]);
  2484.                 else if($vouchertype)
  2485.                 $vouchersData->setCondition("voucher_type IN (?)", [$vouchertype]);
  2486.                 $vouchersData->load();
  2487.                 $log_data $api_log_info." | vouchersData count:".json_encode(count($vouchersData));
  2488.                 SELF::createApiLog($log_data);
  2489.                 if(!empty($vouchersData) && count($vouchersData)>0){
  2490.                     $data = [];
  2491.                     foreach($vouchersData as $voucherData){
  2492.                         $log_data $api_log_info." | voucherData:".json_encode($voucherData);
  2493.                         SELF::createApiLog($log_data);
  2494.                         $voucher_logo_path = ($voucherData->getvoucher_type() == "Master")?$masterVoucherData->getvoucher_logo():$voucherData->getvoucher_logo();
  2495.                         $voucher_logo_path $projectUrl."/uploads/".$voucher_logo_path;
  2496.                         $voucher_background_image_path $projectUrl."/uploads/".($voucherData->getvoucher_type() == "Master")?$masterVoucherData->getvoucher_background_image():$voucherData->getvoucher_background_image();
  2497.                         $voucher_background_image_path $projectUrl."/uploads/".$voucher_background_image_path;
  2498.                         $curdata = array(
  2499.                             "id" => $voucherData->getId(),
  2500.                             "voucher_code" => $voucherData->getvoucher_code(),
  2501.                             "about_offer" => ($voucherData->getvoucher_type() == "Master")?$masterVoucherData->getabout_offer():$voucherData->getabout_offer(),
  2502.                             "avail_offer" => ($voucherData->getvoucher_type() == "Master")?$masterVoucherData->getavail_offer():$voucherData->getavail_offer(),
  2503.                             "voucher_logo_path" => $voucher_logo_path,
  2504.                             "voucher_background_image_path" => $voucher_background_image_path);
  2505.                         $log_data $api_log_info." | curdata:".json_encode($curdata);
  2506.                         SELF::createApiLog($log_data);
  2507.                         array_push($data$curdata);
  2508.                     }
  2509.                 } else {
  2510.                     $data "No data found!";
  2511.                     $log_data $api_log_info." | data:".json_encode($data);
  2512.                     SELF::createApiLog($log_data);
  2513.                 }
  2514.             }
  2515.         }
  2516.         $return_data = ["success" => true"data" => $data];
  2517.         $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  2518.         SELF::createApiLog($log_data);
  2519.         return $this->json(["success" => true"data" => $data]);
  2520.     }
  2521.     /*------------------------------ End of Voucher Related APIs -------------------------*/
  2522.     /*---------------------------------- Log Related APIs ----------------------------*/
  2523.     /**
  2524.      * @Route("/api/log_info/{date?}")
  2525.      */
  2526.     public function log_infoAction($date)
  2527.     {
  2528.         // $date = ($date == '')?date("Y-m-d", strtotime("-1 day")):$date;
  2529.         $date = ($date == '')?date("Y-m-d"):$date;
  2530.         if($date == '')
  2531.         {
  2532.             $data "Date is mandatory!";
  2533.         } else {
  2534.             $file '../var/log/slot-api-log_'.$date.'.txt';
  2535.             if(file_exists($file)){
  2536.                 $myfile fopen($file"r") or die("Unable to open file!");
  2537.                 $data fread($myfile,filesize($file));
  2538.                 fclose($myfile);
  2539.             } else {
  2540.                 $data "The file is not exited!";
  2541.             }
  2542.         }
  2543.         return $this->json(["success" => true"date" => $date"data" => $data]);
  2544.     }
  2545.     /**
  2546.      * @Route("/api/log_info_data")
  2547.      */
  2548.     public function log_info_dataAction(Request $requet)
  2549.     {
  2550.         $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  2551.         $date = (isset($reqparams['date']))?$reqparams['date']:'';
  2552.         $from_line = (isset($reqparams['from_line']))?$reqparams['from_line']:'';
  2553.         $to_line = (isset($reqparams['to_line']))?$reqparams['to_line']:'';
  2554.         $date = ($date == '')?date("Y-m-d"):$date;
  2555.         if($date == '' || $from_line == '' || $to_line == '')
  2556.         {
  2557.             $data "Date, from_line and to_line are mandatory!";
  2558.         } else {
  2559.             $file '../var/log/slot-api-log_'.$date.'.txt';
  2560.             if(file_exists($file)){
  2561.                 $splitdata array_slice(file($file), $from_line$to_line);
  2562.                 echo $data implode(''$splitdata); die;
  2563.             } else {
  2564.                 $data "The file is not exited!";
  2565.             }
  2566.         }
  2567.         return $this->json(["success" => true"date" => $date"data" => $data]);
  2568.     }
  2569.     /**
  2570.      * @Route("/api/delete_log_file/{date}")
  2571.      */
  2572.     public function delete_log_fileAction($date)
  2573.     {
  2574.         if($date == '')
  2575.         {
  2576.             $data "Date is mandatory!";
  2577.         } else {
  2578.             $message SELF::verifyauthToken();
  2579.         
  2580.             if($message == "No data found")
  2581.             {
  2582.                 $file '../var/log/slot-api-log_'.$date.'.txt';
  2583.                 if(file_exists($file)){
  2584.                     unlink($file);
  2585.                     $data "Deleted the file successfully!";
  2586.                 } else {
  2587.                     $data "The file is not exited!";
  2588.                 }
  2589.             }else $data[] = ['message'=>$message];
  2590.         }
  2591.         return $this->json(["success" => true"date" => $date"data" => $data]);
  2592.     }
  2593.     /**
  2594.      * @Route("/api/delete_log_files")
  2595.      */
  2596.     public function delete_log_filesAction(Request $request)
  2597.     {
  2598.         $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  2599.         $fromdate = (isset($reqparams['fromdate']))?$reqparams['fromdate']:'';
  2600.         $todate = (isset($reqparams['todate']))?$reqparams['todate']:'';
  2601.         if($fromdate == '' || $todate == '')
  2602.         {
  2603.             $data "From Date and To Date are mandatory!";
  2604.         } else {
  2605.             $message SELF::verifyauthToken();
  2606.         
  2607.             if($message == "No data found")
  2608.             {
  2609.                 $rangeDates SELF::getDatesFromRange($fromdate$todate);
  2610.                 // echo 'rangeDates:<pre>';
  2611.                 // print_r($rangeDates); die;
  2612.                 foreach($rangeDates as $rangeDateInfo){
  2613.                     $file '../var/log/slot-api-log_'.$rangeDateInfo.'.txt';
  2614.                     if(file_exists($file)){
  2615.                         unlink($file);
  2616.                         $data "Deleted the file successfully!";
  2617.                     } else {
  2618.                         $data = (isset($data) && $data == "Deleted the file successfully!")?$data:"The file is not exited!";
  2619.                     }
  2620.                 }
  2621.             }else $data[] = ['message'=>$message];
  2622.         }
  2623.         return $this->json(["success" => true"fromdate" => $fromdate"todate" => $todate"data" => $data]);
  2624.     }
  2625.     /**
  2626.      * @Route("/api/get_log_files")
  2627.      */
  2628.     public function get_log_filesAction(Request $request)
  2629.     {
  2630.         $reqparams = (array) json_decode(file_get_contents('php://input'), TRUE);
  2631.         $fromdate = (isset($reqparams['fromdate']))?$reqparams['fromdate']:'';
  2632.         $todate = (isset($reqparams['todate']))?$reqparams['todate']:'';
  2633.         $filenames = [];
  2634.         if($fromdate == '' || $todate == '')
  2635.         {
  2636.             $data "From Date and To Date are mandatory!";
  2637.         } else {
  2638.             $message SELF::verifyauthToken();
  2639.         
  2640.             if($message == "No data found")
  2641.             {
  2642.                 $rangeDates SELF::getDatesFromRange($fromdate$todate);
  2643.                 // echo 'rangeDates:<pre>';
  2644.                 // print_r($rangeDates); die;
  2645.                 foreach($rangeDates as $rangeDateInfo){
  2646.                     $file '../var/log/slot-api-log_'.$rangeDateInfo.'.txt';
  2647.                     if(file_exists($file)){
  2648.                         array_push($filenames'slot-api-log_'.$rangeDateInfo.'.txt');
  2649.                     } else {
  2650.                         $msg = (!empty($filenames))?'':"The file is not exited!";
  2651.                     }
  2652.                 }
  2653.                 $data = (!empty($filenames))?$filenames:$msg;
  2654.             }else $data[] = ['message'=>$message];
  2655.         }
  2656.         return $this->json(["success" => true"fromdate" => $fromdate"todate" => $todate"data" => $data]);
  2657.     }
  2658.     /*------------------------------ End of Log Related APIs -------------------------*/
  2659.     /**
  2660.      * @Route("/location/locationslist")
  2661.      */
  2662.     public function locationslist()
  2663.     {
  2664.         $log_data "Started - API:Get All Locations";
  2665.         SELF::createApiLog($log_data);
  2666.         $message SELF::verifyauthToken();
  2667.         $log_data "API:Get All Locations | message:".json_encode($message);
  2668.         SELF::createApiLog($log_data);
  2669.         if($message == "No data found")
  2670.         {
  2671.             $locationsList DataObject\Locations::getList();
  2672.             $locationsList->load();
  2673.             $log_data "API:Get All Locations | locationsList count :".json_encode(count($locationsList));
  2674.             SELF::createApiLog($log_data);
  2675.             if(count($locationsList) > 0){
  2676.                 foreach ($locationsList as $key => $location) {
  2677.                     $log_data "API:Get All Locations | location :".json_encode($location);
  2678.                     SELF::createApiLog($log_data);
  2679.                     $data[] = array(
  2680.                         "Id" => $location->getId(),
  2681.                         "location_name" => $location->getLocation_name(),
  2682.                         "location_code" => $location->getLocation_code());
  2683.                     $log_data "API:Get All Locations | data :".json_encode($data);
  2684.                     SELF::createApiLog($log_data);
  2685.                 }
  2686.             } else $data[] = ['message'=>$message];
  2687.         } else $data[] = ['message'=>$message];
  2688.         $log_data "Ended - API:Get All Locations | data :".json_encode($data);
  2689.         SELF::createApiLog($log_data);
  2690.         
  2691.         return $this->json(["success" => true"data" => $data]);
  2692.     }
  2693.     /*--------------- Authentication related methods ----------------*/
  2694.     public function generateAuthToken($userInfo=[])
  2695.     {
  2696.         /*------------- Generate MDF encode --------------*/
  2697.         $generateAuthToken md5(time());
  2698.         $jwtdata = array(
  2699.             "generateAuthToken" => $generateAuthToken
  2700.         );
  2701.         /*------------- Generate JWT Token ---------------*/
  2702.         $jwt_check 0;
  2703.         if(!empty($userInfo)){
  2704.             $id $userInfo['id'];//1024;
  2705.             $firstname $userInfo['firstname'];//'Tex';
  2706.             $lastname $userInfo['lastname'];//'Hardrock';
  2707.             $email $userInfo['email'];//'dino@stone.age';
  2708.             $secret_key "951e345a17ab26f80ec0e16b1d2a0c2a";
  2709.             $issuer_claim "pimcore6.local"// this can be the servername
  2710.             $audience_claim "Babu";
  2711.             $issuedat_claim time(); // issued at
  2712.             $notbefore_claim $issuedat_claim 10//not before in seconds
  2713.             $expire_claim $issuedat_claim 60*5// expire time in seconds
  2714.             $token = array(
  2715.                 "iss" => $issuer_claim,
  2716.                 "aud" => $audience_claim,
  2717.                 "iat" => $issuedat_claim,
  2718.                 "nbf" => $notbefore_claim,
  2719.                 "exp" => $expire_claim,
  2720.                 "data" => array(
  2721.                     "id" => $id,
  2722.                     "firstname" => $firstname,
  2723.                     "lastname" => $lastname,
  2724.                     "email" => $email
  2725.             ));
  2726.             $jwt JWT::encode($token$secret_key'HS256');
  2727.             
  2728.             $jwtdata = array(
  2729.                 "generateAuthToken" => $generateAuthToken,
  2730.                 "jwt" => $jwt,
  2731.                 "email" => $email,
  2732.                 "expireAt" => $expire_claim
  2733.             );
  2734.         }
  2735.         return $jwtdata;
  2736.     }
  2737.     public function verifyauthToken1()
  2738.     {
  2739.         $message "No data found"$tokenCheck 0;
  2740.         $headers=array();
  2741.         foreach (getallheaders() as $name => $value) {
  2742.             $headers[$name] = $value;
  2743.             if($name == 'Authtoken'$tokenCheck 1;
  2744.         }
  2745.         if($tokenCheck == 0){
  2746.             $message "Authentication Token is missing";;
  2747.         } else {
  2748.             $Authtoken $headers['Authtoken'];
  2749.         
  2750.             $dbConnection \Pimcore\Db::get();
  2751.             $authTokencheck $dbConnection->fetchOne("SELECT id FROM users WHERE authToken = '".$Authtoken."' ");
  2752.             if(empty($authTokencheck)){
  2753.                 $message "Authentication Token is mismatch";
  2754.             } else {
  2755.             }
  2756.         }
  2757.         return $message;
  2758.     }
  2759.     public function verifyauthToken2()
  2760.     {
  2761.         $api_key 'api-key';
  2762.         $api_key_value 'cGltY29yZWFwaWtleXZhbHVl';//base64encode('pimcoreapikeyvalue);
  2763.         $message "No data found"$tokenCheck 0$apikeyCheck 0$jwtCheck 0;$tokenMsg ''$apikeyMsg ''$jwtMsg '';
  2764.         $headers=array();
  2765.         foreach (getallheaders() as $name => $value) {
  2766.             $headers[$name] = $value;
  2767.             if($name == 'Authtoken'$tokenCheck 1;
  2768.             if($name == 'Api-Key'$apikeyCheck 1;
  2769.             if($name == 'Authorization'$jwtCheck 1;
  2770.         }
  2771.         // echo 'arr:<pre>';
  2772.         // print_r($headers); 
  2773.         // die;
  2774.         if($tokenCheck == && $apikeyCheck == && $jwtCheck == 0){
  2775.             $message "Fill any one of the Authentication Token, Api-Key Or JWT token!";;
  2776.         } else {
  2777.             $tokenCheck_valid 0$apikeyCheck_valid 0$jwtTokenCheck_valid 0;
  2778.             /*--------------------- Validating Auth Token -----------------*/
  2779.             if($tokenCheck == 1)
  2780.             {
  2781.                 $Authtoken $headers['Authtoken'];
  2782.         
  2783.                 $dbConnection \Pimcore\Db::get();
  2784.                 $authTokencheck $dbConnection->fetchOne("SELECT id FROM users WHERE authToken = '".$Authtoken."' ");
  2785.                 if(empty($authTokencheck)){
  2786.                     $tokenMsg "Authentication Token is mismatch";
  2787.                 } else {
  2788.                     $tokenCheck_valid 1;
  2789.                 }
  2790.             }
  2791.             /*--------------------- Validating Api Key -----------------*/
  2792.             if($apikeyCheck == 1)
  2793.             {
  2794.                 $AuthApikey $headers['Api-Key'];
  2795.                 if(empty($AuthApikey)){
  2796.                     $apikeyMsg "Key is mismatch";
  2797.                 } else if($AuthApikey != $api_key_value){
  2798.                     $apikeyMsg "key is mismatch";
  2799.                 } else {
  2800.                     $apikeyCheck_valid 1;
  2801.                 }
  2802.             }
  2803.             /*--------------------- Validating JWT Token -----------------*/
  2804.             if($jwtCheck == 1)
  2805.             {
  2806.                 $secret_key "951e345a17ab26f80ec0e16b1d2a0c2a";
  2807.                 $jwt null;
  2808.                 $authHeader $_SERVER['HTTP_AUTHORIZATION'];
  2809.                 $arr explode(" "$authHeader);
  2810.                 $jwt $arr[1];
  2811.                 if($jwt){
  2812.                     try {
  2813.                         $decoded JWT::decode($jwt, new Key($secret_key'HS256'));
  2814.                         $jwtTokenCheck_valid 1;
  2815.                     }catch (ExpiredException $e){
  2816.                         $jwtMsg "Expired JWT Token!";//$e->getMessage();
  2817.                     }catch (Exception $e){
  2818.                         $jwtTokenCheck_valid 0;
  2819.                         $jwtMsg "Expired JWT Token!";//$e->getMessage();
  2820.                     }
  2821.                 } else {
  2822.                     $jwtMsg "JWT Token is missing";
  2823.                 }
  2824.             }
  2825.             $message '';
  2826.             if($tokenMsg != '' || $apikeyMsg != '' || $jwtMsg != '')
  2827.             {
  2828.                 $message = ($tokenMsg != '')?"Token Message:".$message.$tokenMsg:$message;
  2829.                 $message = ($apikeyMsg != '')?"".$message." | Api-Key Message:".$apikeyMsg:$message;
  2830.                 $message = ($jwtMsg != '')?"".$message." | JWT Message:".$jwtMsg:$message;
  2831.             }
  2832.             $message = ($tokenCheck_valid == || $apikeyCheck_valid == || $jwtTokenCheck_valid == 1)?"No data found":$message;
  2833.         }
  2834.         return $message;
  2835.     }
  2836.     public function verifyauthToken($api_log_info='')
  2837.     {        
  2838.         $start_method_log_info "Verify Auth Token Method";
  2839.         $api_log_method_info = (!empty($api_log_info))?$api_log_info." | Started - ".$start_method_log_info:"Started - ".$start_method_log_info;
  2840.         $log_data $api_log_method_info;
  2841.         SELF::createApiLog($log_data);
  2842.         $api_log_method_info = (!empty($api_log_info))?$api_log_info." | ".$start_method_log_info:$start_method_log_info;
  2843.         $api_key 'api-key';
  2844.         $api_key_value 'cGltY29yZWFwaWtleXZhbHVl';//base64encode('pimcoreapikeyvalue);
  2845.         $message "No data found"$apikeyCheck 0$apikeyMsg '';
  2846.         $headers=array();
  2847.         foreach (getallheaders() as $name => $value) {
  2848.             $headers[$name] = $value;
  2849.             if($name == 'Api-Key'$apikeyCheck 1;
  2850.         }
  2851.         $log_data $api_log_info." | headers - ".json_encode($headers)." | apikeyCheck:".$apikeyCheck;
  2852.         SELF::createApiLog($log_data);
  2853.         
  2854.         if($apikeyCheck == 0){
  2855.             $message "Api-Key is mandatory!";;
  2856.         } else {
  2857.             $apikeyCheck_valid 0;
  2858.             /*--------------------- Validating Api Key -----------------*/
  2859.             if($apikeyCheck == 1)
  2860.             {
  2861.                 $AuthApikey $headers['Api-Key'];
  2862.                 if(empty($AuthApikey)){
  2863.                     $message "Key is empty, Api-Key is mandatory";
  2864.                 } else if($AuthApikey != $api_key_value){
  2865.                     $message "key is mismatch";
  2866.                 } else {
  2867.                     $apikeyCheck_valid 1;
  2868.                 }
  2869.             }
  2870.         }
  2871.         // $apikeyCheck_valid = 1;
  2872.         // $message = "No data found";
  2873.         $api_log_method_info = (!empty($api_log_info))?$api_log_info." | Ended - ".$start_method_log_info:"Ended - ".$start_method_log_info;
  2874.         $log_data $api_log_method_info." | message:".$message;
  2875.         SELF::createApiLog($log_data);
  2876.         return $message;
  2877.     }
  2878.     /*--------------- End of Authentication related methods ------------*/
  2879.     /*-------------------------- Sub methods ---------------------------*/
  2880.     public function generateObjFolder($folderName,$location_code){
  2881.         $yr date("Y");
  2882.         $mt date("M");
  2883.         $dy date("d");
  2884.         $path "/".$folderName."/".$yr."/".$mt."/".$dy;
  2885.         $path "/".$folderName."/".$location_code;
  2886.         $object DataObject::getByPath($path);
  2887.         if(!$object){
  2888.             $path1 "/".$folderName."/".$yr."/".$mt;
  2889.             $object1 DataObject::getByPath($path1);
  2890.             if(!$object1){
  2891.                 $path2 "/".$folderName."/".$yr;
  2892.                 $object2 DataObject::getByPath($path2);                
  2893.                 if(!$object2){
  2894.                     $path3 "/".$folderName;
  2895.                     $object3 DataObject::getByPath($path3);                
  2896.                     if(!$object3){
  2897.                         $createAssetFolder DoService::createFolderByPath($path3);
  2898.                         $createAssetFolder DoService::createFolderByPath($path2);
  2899.                         $createAssetFolder DoService::createFolderByPath($path1);
  2900.                         $createAssetFolder DoService::createFolderByPath($path);
  2901.                         $objParentId $createAssetFolder->getId();
  2902.                     }else {
  2903.                         $createAssetFolder DoService::createFolderByPath($path2);
  2904.                         $createAssetFolder DoService::createFolderByPath($path1);
  2905.                         $createAssetFolder DoService::createFolderByPath($path);
  2906.                         $objParentId $createAssetFolder->getId();
  2907.                     }
  2908.                 }else {
  2909.                     $createAssetFolder DoService::createFolderByPath($path1);
  2910.                     $createAssetFolder DoService::createFolderByPath($path);
  2911.                     $objParentId $createAssetFolder->getId();
  2912.                 }
  2913.             } else {
  2914.                 $createAssetFolder DoService::createFolderByPath($path);
  2915.                 $objParentId $createAssetFolder->getId();
  2916.             }
  2917.         } else
  2918.         $objParentId $object->getId();
  2919.         return $objParentId;
  2920.     }
  2921.     public function generateSlotObjFolder($folderName,$delivery_mode,$location_code){
  2922.         $yr date("Y");
  2923.         $mt date("M");
  2924.         $dy date("d");
  2925.         $path "/".$folderName."/".$delivery_mode."/".$location_code;//."/".$date.'-'.$location_code;
  2926.         $object DataObject::getByPath($path);
  2927.         if(!$object){
  2928.             $path1 "/".$folderName."/".$delivery_mode;//."/".$location_code."/".$date;
  2929.             $object1 DataObject::getByPath($path1);
  2930.             if(!$object1){
  2931.                 $path2 "/".$folderName;//."/".$delivery_mode."/".$location_code;
  2932.                 $object2 DataObject::getByPath($path2);                
  2933.                 if(!$object2){
  2934.                     $createAssetFolder DoService::createFolderByPath($path2);
  2935.                     $createAssetFolder DoService::createFolderByPath($path1);
  2936.                     $createAssetFolder DoService::createFolderByPath($path);
  2937.                     $objParentId $createAssetFolder->getId();
  2938.                 }else {
  2939.                     $createAssetFolder DoService::createFolderByPath($path1);
  2940.                     $createAssetFolder DoService::createFolderByPath($path);
  2941.                     $objParentId $createAssetFolder->getId();
  2942.                 }
  2943.             } else {
  2944.                 $createAssetFolder DoService::createFolderByPath($path);
  2945.                 $objParentId $createAssetFolder->getId();
  2946.             }
  2947.         } else
  2948.         $objParentId $object->getId();
  2949.         return $objParentId;
  2950.     }
  2951.     public function getWeekDates($holidaysList$todaydate$delSlotTimesAvailibility){
  2952.         $jj=0$weekdates = [];
  2953.         $slot_prepare_days $delSlotTimesAvailibility['slot_prepare_days'];
  2954.         $slot_generate_days $delSlotTimesAvailibility['slot_generate_days'];
  2955.         $saturday_slot_availability $delSlotTimesAvailibility['saturday_slot_availability'];
  2956.         $sunday_slot_availability $delSlotTimesAvailibility['sunday_slot_availability'];
  2957.         $todaydate date('Y-m-d'strtotime($todaydate ' +'.$slot_prepare_days.' day'));
  2958.         $totDays $slot_generate_days+7;
  2959.         for($ii=1$ii<$totDays$ii++)
  2960.         {
  2961.             if($jj >= $slot_generate_days) break;
  2962.             if(empty($holidaysList) || !in_array($todaydate$holidaysList)){
  2963.                 $weekDay date('w'strtotime($todaydate));
  2964.                 if(($weekDay == && $sunday_slot_availability == 'Yes') || ($weekDay == && $saturday_slot_availability == 'Yes') || !in_array($weekDay, [0,6]))
  2965.                 {
  2966.                     $weekdates[] = $todaydate;
  2967.                     $jj=$jj+1;
  2968.                 }
  2969.             }
  2970.             $todaydate date('Y-m-d'strtotime($todaydate ' +1 day'));
  2971.         }
  2972.         // echo '<pre>'; print_r($weekdates); die;
  2973.         return $weekdates;
  2974.     }
  2975.     public function getSettingInfo($api_log_info='')
  2976.     {
  2977.         $start_method_log_info "Setting info Method";
  2978.         $api_log_method_info = (!empty($api_log_info))?$api_log_info." | Started - ".$start_method_log_info:"Started - ".$start_method_log_info;
  2979.         $log_data $api_log_method_info;
  2980.         SELF::createApiLog($log_data);
  2981.         $api_log_method_info = (!empty($api_log_info))?$api_log_info." | ".$start_method_log_info:$start_method_log_info;
  2982.         /*------ Get Settings Class data --------*/
  2983.         $dbConnection \Pimcore\Db::get();
  2984.         $settingsClassId $dbConnection->fetchOne(" SELECT id FROM classes WHERE LOWER(name) = 'Settings' ");
  2985.         $settingsObject "object_".$settingsClassId;
  2986.         
  2987.         $log_data $api_log_method_info." | settingsObject:".json_encode($settingsObject);
  2988.         SELF::createApiLog($log_data);
  2989.         
  2990.         $settingsId $dbConnection->fetchOne(" select * from ".$settingsObject." WHERE setting_flag = 1");
  2991.         
  2992.         $log_data $api_log_method_info." | settingsId:".json_encode($settingsId);
  2993.         SELF::createApiLog($log_data);
  2994.         /*----- End of Get Settings Class data ---------*/
  2995.         /*--------------- Settings info ----------------*/
  2996.         $settingsInfo DataObject\Settings::getById($settingsId);
  2997.         
  2998.         $log_data $api_log_method_info." | settingsInfo:".json_encode($settingsInfo);
  2999.         SELF::createApiLog($log_data);
  3000.         $settingDataId $settingsInfo->getId();
  3001.         $setting_deliveryModes $settingsInfo->getdelivery_modes();
  3002.         $setting_slot_time_flag = (!empty($settingsInfo->getslottime()))?$settingsInfo->getslottime():"18:00";
  3003.         $stg_deliveryslot_config_is_upcountry_configuration_applicable = ($settingsInfo->getdeliveryslot_config_is_upcountry_configuration_applicable())?$settingsInfo->getdeliveryslot_config_is_upcountry_configuration_applicable():'No';
  3004.         $stg_deliveryslot_config_is_darkstore_configuration_applicable = ($settingsInfo->getdeliveryslot_config_is_darkstore_configuration_applicable())?$settingsInfo->getdeliveryslot_config_is_darkstore_configuration_applicable():'No';
  3005.         $stg_delslot_normalloc_morethan_fromtime = ($settingsInfo->getdelslot_normalloc_morethan_fromtime())?$settingsInfo->getdelslot_normalloc_morethan_fromtime():"00:00";
  3006.         $stg_delslot_normalloc_lessthaneq_totime = ($settingsInfo->getdelslot_normalloc_lessthaneq_totime())?$settingsInfo->getdelslot_normalloc_lessthaneq_totime():"18:00";
  3007.         $stg_delslot_normalloc_bw_from_to_time_extra_generate_slotdays = ($settingsInfo->getdelslot_normalloc_bw_from_to_time_extra_generate_slotdays())?$settingsInfo->getdelslot_normalloc_bw_from_to_time_extra_generate_slotdays():1;
  3008.         $stg_delslot_normalloc_after_totime_extra_generate_slotdays = ($settingsInfo->getdelslot_normalloc_after_totime_extra_generate_slotdays())?$settingsInfo->getdelslot_normalloc_after_totime_extra_generate_slotdays():2;
  3009.         $stg_normalloc_slot_generate_days = ($stg_delslot_normalloc_after_totime_extra_generate_slotdays>$stg_delslot_normalloc_bw_from_to_time_extra_generate_slotdays)?$stg_delslot_normalloc_after_totime_extra_generate_slotdays:$stg_delslot_normalloc_bw_from_to_time_extra_generate_slotdays;
  3010.         $stg_delslot_upcountryloc_morethan_fromtime = ($settingsInfo->getdelslot_upcountryloc_morethan_fromtime())?$settingsInfo->getdelslot_upcountryloc_morethan_fromtime():"00:00";
  3011.         $stg_delslot_upcountryloc_lessthaneq_totime = ($settingsInfo->getdelslot_upcountryloc_lessthaneq_totime())?$settingsInfo->getdelslot_upcountryloc_lessthaneq_totime():"11:00";
  3012.         $stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays = ($settingsInfo->getdelslot_upcountryloc_bw_from_to_time_extra_generate_slotdays())?$settingsInfo->getdelslot_upcountryloc_bw_from_to_time_extra_generate_slotdays():4;
  3013.         $stg_delslot_upcountryloc_after_totime_extra_generate_slotdays = ($settingsInfo->getdelslot_upcountryloc_after_totime_extra_generate_slotdays())?$settingsInfo->getdelslot_upcountryloc_after_totime_extra_generate_slotdays():5;
  3014.         $stg_upcountryloc_slot_generate_days = ($stg_delslot_upcountryloc_after_totime_extra_generate_slotdays>$stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays)?$stg_delslot_upcountryloc_after_totime_extra_generate_slotdays:$stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays;
  3015.         $stg_delslot_darkstoreloc_morethan_fromtime = ($settingsInfo->getdelslot_darkstoreloc_morethan_fromtime())?$settingsInfo->getdelslot_darkstoreloc_morethan_fromtime():"00:00";
  3016.         $stg_delslot_darkstoreloc_lessthaneq_totime = ($settingsInfo->getdelslot_darkstoreloc_lessthaneq_totime())?$settingsInfo->getdelslot_darkstoreloc_lessthaneq_totime():"11:00";
  3017.         $stg_delslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays $settingsInfo->getdelslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays();//($settingsInfo->getdelslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays())?$settingsInfo->getdelslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays():4;
  3018.         $stg_delslot_darkstoreloc_after_totime_extra_generate_slotdays = ($settingsInfo->getdelslot_darkstoreloc_after_totime_extra_generate_slotdays())?$settingsInfo->getdelslot_darkstoreloc_after_totime_extra_generate_slotdays():5;
  3019.         $stg_darkstoreloc_slot_generate_days = ($stg_delslot_darkstoreloc_after_totime_extra_generate_slotdays>$stg_delslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays)?$stg_delslot_darkstoreloc_after_totime_extra_generate_slotdays:$stg_delslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays;
  3020.         $stg_is_deliveryfee_config_applicable $settingsInfo->getis_deliveryfee_config_applicable();
  3021.         $stg_deliveryfee_config $settingsInfo->getdeliveryfee_config();
  3022.         $stg_deliveryfee_config $settingsInfo->getdeliveryfee_config();
  3023.         $stg_deliveryfee_config_location_lessthan_charge $settingsInfo->getdeliveryfee_config_location_lessthan_charge();
  3024.         $stg_deliveryfee_config_location_greaterthanequal_charge $settingsInfo->getdeliveryfee_config_location_greaterthanequal_charge();
  3025.         $stg_deliveryfee_config_upcountry_lessthan_charge $settingsInfo->getdeliveryfee_config_upcountry_lessthan_charge();
  3026.         $stg_deliveryfee_config_upcountry_greaterthanequal_charge $settingsInfo->getdeliveryfee_config_upcountry_greaterthanequal_charge();
  3027.         /*----------- End of Settings Info -------------*/
  3028.         $settingsdata = ['settingDataId'=>$settingDataId,
  3029.                         'setting_deliveryModes'=>$setting_deliveryModes,
  3030.                         'setting_slot_time_flag'=>$setting_slot_time_flag,
  3031.                         'stg_deliveryslot_config_is_upcountry_configuration_applicable'=>$stg_deliveryslot_config_is_upcountry_configuration_applicable,
  3032.                         'stg_deliveryslot_config_is_darkstore_configuration_applicable'=>$stg_deliveryslot_config_is_darkstore_configuration_applicable,
  3033.                         'stg_delslot_normalloc_morethan_fromtime'=>$stg_delslot_normalloc_morethan_fromtime,
  3034.                         'stg_delslot_normalloc_lessthaneq_totime'=>$stg_delslot_normalloc_lessthaneq_totime,
  3035.                         'stg_delslot_normalloc_bw_from_to_time_extra_generate_slotdays'=>$stg_delslot_normalloc_bw_from_to_time_extra_generate_slotdays,
  3036.                         'stg_delslot_normalloc_after_totime_extra_generate_slotdays'=>$stg_delslot_normalloc_after_totime_extra_generate_slotdays,
  3037.                         'stg_normalloc_slot_generate_days'=>$stg_normalloc_slot_generate_days,
  3038.                         'stg_delslot_upcountryloc_morethan_fromtime'=>$stg_delslot_upcountryloc_morethan_fromtime,
  3039.                         'stg_delslot_upcountryloc_lessthaneq_totime'=>$stg_delslot_upcountryloc_lessthaneq_totime,
  3040.                         'stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays'=>$stg_delslot_upcountryloc_bw_from_to_time_extra_generate_slotdays,
  3041.                         'stg_delslot_upcountryloc_after_totime_extra_generate_slotdays'=>$stg_delslot_upcountryloc_after_totime_extra_generate_slotdays,
  3042.                         'stg_upcountryloc_slot_generate_days'=>$stg_upcountryloc_slot_generate_days,
  3043.                         'stg_is_deliveryfee_config_applicable'=>$stg_is_deliveryfee_config_applicable,
  3044.                         'stg_deliveryfee_config'=>$stg_deliveryfee_config,
  3045.                         'stg_deliveryfee_config_location_lessthan_charge'=>$stg_deliveryfee_config_location_lessthan_charge,
  3046.                         'stg_deliveryfee_config_location_greaterthanequal_charge'=>$stg_deliveryfee_config_location_greaterthanequal_charge,
  3047.                         'stg_deliveryfee_config_upcountry_lessthan_charge'=>$stg_deliveryfee_config_upcountry_lessthan_charge,
  3048.                         'stg_deliveryfee_config_upcountry_greaterthanequal_charge'=>$stg_deliveryfee_config_upcountry_greaterthanequal_charge,
  3049.                         'stg_delslot_darkstoreloc_morethan_fromtime'=>$stg_delslot_darkstoreloc_morethan_fromtime,
  3050.                         'stg_delslot_darkstoreloc_lessthaneq_totime'=>$stg_delslot_darkstoreloc_lessthaneq_totime,
  3051.                         'stg_delslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays'=>$stg_delslot_darkstoreloc_bw_from_to_time_extra_generate_slotdays,
  3052.                         'stg_delslot_darkstoreloc_after_totime_extra_generate_slotdays'=>$stg_delslot_darkstoreloc_after_totime_extra_generate_slotdays,
  3053.                         'stg_darkstoreloc_slot_generate_days'=>$stg_darkstoreloc_slot_generate_days,
  3054.                         ];
  3055.         
  3056.         $api_log_method_info = (!empty($api_log_info))?$api_log_info." | Ended - ".$start_method_log_info:"Ended - ".$start_method_log_info;
  3057.         $log_data $api_log_method_info." | settingsdata:".json_encode($settingsdata);
  3058.         SELF::createApiLog($log_data);
  3059.         
  3060.         return $settingsdata;
  3061.     }
  3062.     function getDatesFromRange($start$end$dateformat="Y-m-d"){
  3063.         $dates = array($start);
  3064.         while(end($dates) < $end){
  3065.             $dates[] = date($dateformatstrtotime(end($dates).' +1 day'));
  3066.         }
  3067.         return $dates;
  3068.     }
  3069.     public function getSlotTimeDates($slot_generate_days$todaydate){
  3070.         $jj=0$weekdates = [];
  3071.         for($ii=1$ii<15$ii++)
  3072.         {
  3073.             if($jj >= 7) break;
  3074.             if(empty($holidaysList) || !in_array($todaydate$holidaysList)){
  3075.                 $weekdates[] = $todaydate;
  3076.                 $jj=$jj+1;
  3077.             }
  3078.             $todaydate date('Y-m-d'strtotime($todaydate ' +1 day'));
  3079.         }
  3080.         // echo '<pre>'; print_r($weekdates); die;
  3081.         return $weekdates;
  3082.     }
  3083.     public function getWorkingDate($slot_generate_days$todaydate){
  3084.         $jj=0$weekdates = [];
  3085.         for($ii=1$ii<$slot_generate_days$ii++)
  3086.         {
  3087.             if(empty($holidaysList) || !in_array($todaydate$holidaysList)){
  3088.                 $weekdates[] = $todaydate;
  3089.                 $jj=$jj+1;
  3090.             }
  3091.             $todaydate date('Y-m-d'strtotime($todaydate ' +1 day'));
  3092.         }
  3093.         // echo '<pre>'; print_r($weekdates); die;
  3094.         return $weekdates;
  3095.     }
  3096.     public function createApiLog($content)
  3097.     {
  3098.         $file '../var/log/slot-api-log_'.date("Y-m-d").'.txt';
  3099.         // chmod($file, 0755);
  3100.         // if(!is_file($file)){
  3101.             // $contents = 'This is a test!';           // Some simple example content.
  3102.             // file_put_contents($file, $content);     // Save our content to the file.
  3103.             file_put_contents($filedate("Y-m-d H:i:s")." | ".$content."\n"FILE_APPEND);
  3104.             chmod($file0755);
  3105.         // }
  3106.     }
  3107.     /*----------------------- End of Sub methods -----------------------*/
  3108.    /*------------------------------ Manufacture Related APIs -------------------------*/
  3109.     /**
  3110.      * @param Request $request
  3111.      * 
  3112.      * @Route("/manufacturers/{skucode?}")
  3113.      * 
  3114.      * @return Response
  3115.      * 
  3116.      */
  3117.     public function manufacturersAction($skucode='')
  3118.     {
  3119.        $api_log_info "API:Get Manufacturers List with or without skucode - ".date("YmdHis")." ".time();
  3120.        $log_data "Started - ".$api_log_info;
  3121.        SELF::createApiLog($log_data);
  3122.        $data SELF::verifyauthToken($api_log_info);
  3123.        $log_data $api_log_info." | data:".json_encode($data);
  3124.        SELF::createApiLog($log_data);
  3125.        if($data == "No data found")
  3126.        {
  3127.             $log_data $api_log_info." | skucode:".json_encode($skucode);
  3128.             SELF::createApiLog($log_data);
  3129.     
  3130.             $entries = new DataObject\Manufacture\Listing();
  3131.             $whr_condition " msku_code!= '' ";
  3132.             if($skucode != '')
  3133.             $whr_condition .= " AND msku_code= '".$skucode."' ";
  3134.             
  3135.             $entries->setCondition($whr_condition);
  3136.             $entries->load();
  3137.             $log_data $api_log_info." | Manufacturers entries count :".json_encode(count($entries));
  3138.             SELF::createApiLog($log_data);
  3139.             $data = (count($entries)>0)?array():"No data found";
  3140.             foreach($entries as $key => $entrie){
  3141.                 $log_data $api_log_info." | Manufacture key :".json_encode($key)." | Manufacture entrie :".json_encode($entrie);
  3142.                 SELF::createApiLog($log_data);
  3143.                 if($skucode) {
  3144.                     $data = array("Id" => $entrie->getId(),
  3145.                         "msku_code" => $entrie->getmsku_code(),
  3146.                         "sku_name" => $entrie->getsku_name(),
  3147.                         "primary_barcode" => $entrie->getprimary_barcode(),
  3148.                         "manufacture_details" => $entrie->getmanufacture_details(),
  3149.                     );
  3150.                 } else {
  3151.                     $data[] = array("Id" => $entrie->getId(),
  3152.                         "msku_code" => $entrie->getmsku_code(),
  3153.                         "sku_name" => $entrie->getsku_name(),
  3154.                         "primary_barcode" => $entrie->getprimary_barcode(),
  3155.                         "manufacture_details" => $entrie->getmanufacture_details(),
  3156.                     );
  3157.                 }
  3158.                 $log_data $api_log_info." | data :".json_encode($data);
  3159.                 SELF::createApiLog($log_data);
  3160.             }
  3161.        }
  3162.        $return_data = ["success" => true"data" => $data];
  3163.        $log_data "Ended - ".$api_log_info." | return_data:".json_encode($return_data);
  3164.        SELF::createApiLog($log_data);
  3165.        
  3166.        return $this->json(["success" => true"data" => $data]);
  3167.        
  3168.     }
  3169.    /*------------------------------ End of Manufacture Related APIs -------------------------*/
  3170.     
  3171. }