Advertisement
Evra70

validasi foto

May 11th, 2020
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.31 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Sts\CmsActivity\BO;
  4.  
  5. use Log;
  6. use Sts\CmsActivity\Model\SalesmanVisitPlan;
  7. use Sts\CmsActivity\Model\SalesmanVisitRealization;
  8. use Sts\PleafCore\BusinessTransaction;
  9. use Sts\PleafCore\DefaultBusinessTransaction;
  10. use Sts\PleafCore\CoreException;
  11.  
  12. /**
  13.  * @author Bahar, Thursday 17 Oktober 2019
  14.  * @in
  15.  *
  16.  * @out
  17.  */
  18.  
  19. class CheckInSalesmanVisit extends DefaultBusinessTransaction implements BusinessTransaction
  20. {
  21.  
  22.     public function getDescription()
  23.     {
  24.         return "Check In Salesman Visit";
  25.     }
  26.  
  27.     public function prepare($dto, $originalDto)
  28.     {
  29.         if(time() < $dto['check_in_time_local']){
  30.             $this->errorBusinessValidation(["error" => "check.in.time.invalid"]);
  31.         }
  32.  
  33.         $findPartnerByUserId = \App::make("findPartnerByUserId");
  34.         $findPartnerById = \App::make("findPartnerById");
  35.         $findPlanSalesmanVisitPlanById = \App::make("findPlanSalesmanVisitPlanById");
  36.  
  37.         $input_findPartnerByUserId = [
  38.             "user_id"   => $dto["salesman_user_id"],
  39.         ];
  40.  
  41.         $input_findPartnerById = [
  42.             "partner_id" => $dto["customer_user_id"],
  43.         ];
  44.  
  45.         $input_findPlanSalesmanVisitPlanById = [
  46.             "salesman_visit_plan_id" => $dto["visit_id"]
  47.         ];
  48.  
  49.         $result_findPartnerById = $findPartnerById->execute($input_findPartnerById);
  50.         $findPartnerByUserId_result = $findPartnerByUserId->execute($input_findPartnerByUserId);
  51.         $result_findPlanSalesmanVisitPlanById = $findPlanSalesmanVisitPlanById->execute($input_findPlanSalesmanVisitPlanById);
  52.  
  53.         if($result_findPartnerById->active == "N") {
  54.             $this->errorBusinessValidation(["error" => "Status toko tidak aktif"]);
  55.         }
  56.        
  57.         if($result_findPlanSalesmanVisitPlanById->status_visit != "N" && $result_findPlanSalesmanVisitPlanById->status_visit != 'P') {
  58.             $this->errorBusinessValidation(["error" => "Tidak dapat melakukan kunjungan ditoko tersebut"]);
  59.         }
  60.  
  61.         $dto["partner_by_user_id"]  = $findPartnerByUserId_result;
  62.         $dto["customer"]            = $result_findPartnerById;
  63.  
  64.         return $dto;
  65.  
  66.  
  67.     }
  68.  
  69.     public function process($dto, $originalDto)
  70.     {
  71.         Log::debug('Process BT CheckinSalesmanVisit');
  72.  
  73.         $salesman_visit_plan_id     = $dto["visit_id"];
  74.         $tenant_id                  = $dto["tenant_id"];
  75.         $username                   = $dto["username"];
  76.         $check_in_time_local        = $dto["check_in_time_local"];
  77.         $check_in_time_server       = $dto["check_in_time_server"];
  78.         $image                      = $dto["image"];
  79.         $longitude                  = $dto["longitude"];
  80.         $latitude                   = $dto["latitude"];
  81.         $datetime                   = $dto["datetime"];
  82.         $visit_strategy             = $dto["visit_strategy"];
  83.         $status_visit               = _IN_PROGRESS;
  84.         $partner_by_user_id         = $dto["partner_by_user_id"];
  85.         $customer                   = $dto["customer"];
  86.  
  87.  
  88.         $date = substr($datetime, 0, 8);
  89.         $path = storage_path('visit-plan/' . $tenant_id . '/' . $date . '/' . $partner_by_user_id->partner_id. '/');
  90.  
  91.         $dokumen_verification_file_path            = $image;
  92.         $dokumen_verification_file                 = explode(',', $dokumen_verification_file_path)[1];
  93.         $dokumen_verification_decoded_file         = base64_decode($dokumen_verification_file);
  94.         $dokumen_verification_image_information    = getimagesizefromstring($dokumen_verification_decoded_file);
  95.         $dokumen_verification_pic_file_name        = "visit-plan-".$customer->partner_id."-".$datetime.image_type_to_extension($dokumen_verification_image_information[2]);
  96.         $dokumen_verification_pic_file_path        = "visit-plan/".$tenant_id."/".$date."/".$partner_by_user_id->partner_id."/".$dokumen_verification_pic_file_name;
  97.        
  98.         if (!file_exists($path)) {
  99.             mkdir($path . '/', 0777, true);
  100.         }
  101.  
  102.         if ($dokumen_verification_file_path != null or $dokumen_verification_file_path != "") {
  103.             file_put_contents($path . $dokumen_verification_pic_file_name, $dokumen_verification_decoded_file);
  104.         }
  105.  
  106.         $SalesmanVisitPlan                  = SalesmanVisitPlan::find($salesman_visit_plan_id);
  107.         $SalesmanVisitPlan->visit_strategy  = $visit_strategy;
  108.         $SalesmanVisitPlan->update_datetime = $datetime;
  109.         $SalesmanVisitPlan->update_username = $username;
  110.         $SalesmanVisitPlan->status_visit    = $status_visit;
  111.         $SalesmanVisitPlan->save();
  112.  
  113.         $SalesmanVisitRealization                           = new SalesmanVisitRealization();
  114.         $SalesmanVisitRealization->tenant_id                = $tenant_id;
  115.         $SalesmanVisitRealization->salesman_visit_plan_id   = $salesman_visit_plan_id;
  116.         $SalesmanVisitRealization->salesman_id              = $partner_by_user_id->partner_id;
  117.         $SalesmanVisitRealization->customer_id              = $customer->partner_id;
  118.         $SalesmanVisitRealization->check_in_time_local      = $check_in_time_local;
  119.         $SalesmanVisitRealization->check_in_time_server     = $check_in_time_server;
  120.         $SalesmanVisitRealization->check_in_longitude       = $longitude;
  121.         $SalesmanVisitRealization->check_in_latitude        = $latitude;
  122.         $SalesmanVisitRealization->visit_date               = $SalesmanVisitPlan->visit_date;
  123.         $SalesmanVisitRealization->status_visit             = $status_visit;
  124.         $SalesmanVisitRealization->check_in_photo_file_name = $dokumen_verification_pic_file_path;
  125.         $SalesmanVisitRealization->create_datetime          = $datetime;
  126.         $SalesmanVisitRealization->update_datetime          = $datetime;
  127.         $SalesmanVisitRealization->create_username          = $username;
  128.         $SalesmanVisitRealization->update_username          = $username;
  129.         $SalesmanVisitRealization->version                  = 0;
  130.         $SalesmanVisitRealization->save();
  131.  
  132.         return [
  133.             "salesman_visit_realization" => $SalesmanVisitRealization,
  134.         ];
  135.     }
  136.  
  137.     protected function rules()
  138.     {
  139.         return [
  140.             "visit_id" => "required",
  141.             "salesman_user_id" => "required",
  142.             "customer_user_id" => "required",
  143.         ];
  144.     }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement