public function service() { $serviceCompanyManager = new ServiceCompanyManager($this->config, $this->args); $serviceCompanyDealersManager = new ServiceCompanyDealersManager($this->config, $this->args); $access_key = $this->secure($_REQUEST["access_key"]); $service_company_id = $this->secure($_REQUEST["service_company_id"]); $serviceCompany = $serviceCompanyManager->selectByPK($service_company_id); if (!isset($serviceCompany)) { $this->error(array("errText" => "System error! Company doesn't exists.")); } if (strcasecmp($access_key, $serviceCompany->getAccessKey()) != 0) { $this->error(array("errText" => "Wrong access key!")); } $userId = $this->getUserId(); $companyDealerDto = $serviceCompanyDealersManager->getByCompanyIdAndUserId($userId, $service_company_id); if (!isset($companyDealerDto)) { $serviceCompanyDealersManager->addUserToCompany($userId, $service_company_id); $message = $this->getPhrase(437) . ' ' . $serviceCompany->getName() . "'! \n"; $this->ok(array("message" => $message)); } else { $this->error(array("errText" => "You already have '" . $serviceCompany->getName() . "' company in your list!")); } }
public function getCustomer() { if (!$this->customer) { if ($this->getUserLevel() != UserGroups::$GUEST) { $userId = $this->getUserId(); if ($this->getUserLevel() == UserGroups::$USER) { $userManager = new UserManager($this->config, $this->args); $this->customer = $userManager->selectByPK($userId); } else { if ($this->getUserLevel() == UserGroups::$COMPANY) { $customerManager = new CompanyManager($this->config, $this->args); $this->customer = $customerManager->selectByPK($userId); } else { if ($this->getUserLevel() == UserGroups::$SERVICE_COMPANY) { $customerManager = new ServiceCompanyManager($this->config, $this->args); $this->customer = $customerManager->selectByPK($userId); } else { if ($this->getUserLevel() == UserGroups::$ADMIN) { $adminManager = new AdminManager($this->config, $this->args); $this->customer = $adminManager->selectByPK($userId); } } } } } } return $this->customer; }
public function service() { //getting parameters ini_set('upload_max_filesize', '7M'); $name = $_FILES['company_price']['name']; $type = $_FILES['company_price']['type']; $tmp_name = $_FILES['company_price']['tmp_name']; $size = $_FILES['company_price']['size']; $response = $this->checkInputFile('company_price'); if ($response !== 'ok') { $jsonArr = array('status' => "err", "errText" => $response); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return false; } if (!$size || $size > 7 * 1024 * 1024) { $jsonArr = array('status' => "err", "errText" => "Maximum file size can be 7MB"); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return false; } //start to save new price file $fname = explode('.', $name); end($fname); $newFileExt = current($fname); if (!in_array($newFileExt, $this->supported_file_formats)) { $jsonArr = array('status' => "err", "errText" => "Not supported file format!"); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return false; } $userLevel = $this->getUserLevel(); if ($userLevel === UserGroups::$ADMIN) { $serviceCompanyId = $this->secure($_REQUEST["up_selected_service_company"]); } else { if ($userLevel === UserGroups::$SERVICE_COMPANY) { $serviceCompanyId = $this->getUserId(); assert($serviceCompanyId == $this->secure($_REQUEST["up_selected_service_company"])); } else { $jsonArr = array('status' => "err", "errText" => "Not Access!"); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return false; } } $dir = DATA_DIR . "/service_companies_prices/"; if (!is_dir($dir)) { mkdir($dir, 0777); } $dir = DATA_DIR . "/service_companies_prices/" . $serviceCompanyId . '/'; if (!is_dir($dir)) { mkdir($dir, 0777); } $company_duplicated_price_upload_hours = $this->getCmsVar('company_duplicated_price_upload_hours'); $serviceCompaniesPriceListManager = ServiceCompaniesPriceListManager::getInstance($this->config, $this->args); $company_price_upload_a_day_max_count = $this->getCmsVar('company_price_upload_a_day_max_count'); if (isset($_REQUEST['merge_into_last_price']) && $_REQUEST['merge_into_last_price'] == 1) { $duplicatedUpload = $this->checkIfSamePriceAlreadyExists($serviceCompanyId, $tmp_name); $companyLastPriceMinutes = $serviceCompaniesPriceListManager->getCompanyLastPriceMinutes($serviceCompanyId); if ($companyLastPriceMinutes / 60 < $company_duplicated_price_upload_hours && $duplicatedUpload) { $jsonArr = array('status' => "err", "errText" => "Same Price already exists! please try in " . $company_duplicated_price_upload_hours . " hours."); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return false; } $companyLastPriceDtos = $serviceCompaniesPriceListManager->getCompanyLastPrices($serviceCompanyId); $companyLastPriceInfoDto = end($companyLastPriceDtos); $lastPriceName = $companyLastPriceInfoDto->getFileName(); $newFileName = $lastPriceName . '_' . (count($companyLastPriceDtos) + 1); $newFileFullName = $dir . $newFileName . '.' . $newFileExt; move_uploaded_file($tmp_name, $newFileFullName); $serviceCompaniesPriceListManager->addCompanyPrice($serviceCompanyId, $newFileName, $newFileExt, $userLevel == UserGroups::$ADMIN ? "admin" : "servicecompany", $this->getUserId()); $jsonArr = array('status' => "ok"); echo "<script>var l= new parent.ngs.UploadCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return true; } $companyTodayPriceUploadedTimes = $serviceCompaniesPriceListManager->getCompanyTodayPriceUploadedTimes($serviceCompanyId); if ($companyTodayPriceUploadedTimes >= $company_price_upload_a_day_max_count) { $jsonArr = array('status' => "err", "errText" => "You exeeded your daily maximum upload count! (max:" . $company_price_upload_a_day_max_count . " times a day)"); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return false; } $serviceCompanyLastPriceMinutes = $serviceCompaniesPriceListManager->getCompanyLastPriceMinutes($serviceCompanyId); $duplicatedUpload = $this->checkIfSamePriceAlreadyExists($serviceCompanyId, $tmp_name); if ($serviceCompanyLastPriceMinutes / 60 < $company_duplicated_price_upload_hours && $duplicatedUpload) { $jsonArr = array('status' => "err", "errText" => "Sorry You can not upload same price in " . $company_duplicated_price_upload_hours . " hours. Your company last uploaded price seams to be same as this one!"); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; return false; } $companyLastPriceDtos = $serviceCompaniesPriceListManager->getCompanyLastPrices($serviceCompanyId); if (!empty($companyLastPriceDtos)) { $companyLastPriceFirstUploadedDto = end($companyLastPriceDtos); $lastPriceFiles = array(); $lastPriceFileName = $companyLastPriceFirstUploadedDto->getFileName(); foreach ($companyLastPriceDtos as $key => $companyLastPriceDto) { $lastPriceName = $companyLastPriceDto->getFileName(); $lastPriceExt = $companyLastPriceDto->getFileExt(); $lastPriceFiles[] = array($dir . $lastPriceName . '.' . $lastPriceExt, $lastPriceName . '.' . $lastPriceExt); } $this->createZip($lastPriceFiles, $dir . $lastPriceFileName . '.zip'); $lastPriceUploadedDateTime = $companyLastPriceFirstUploadedDto->getUploadDateTime(); $lastPriceUploaderType = $companyLastPriceFirstUploadedDto->getUploaderType(); $lastPriceUploaderId = $companyLastPriceFirstUploadedDto->getUploaderId(); foreach ($companyLastPriceDtos as $key => $companyLastPriceDto) { $lastPriceName = $companyLastPriceDto->getFileName(); $lastPriceExt = $companyLastPriceDto->getFileExt(); if (is_file($dir . $lastPriceName . '.' . $lastPriceExt)) { unlink($dir . $lastPriceName . '.' . $lastPriceExt); } $serviceCompaniesPriceListManager->deleteByPK($companyLastPriceDto->getId()); } $serviceCompaniesPriceListManager->addCompanyPrice($serviceCompanyId, $lastPriceFileName, 'zip', $lastPriceUploaderType, $lastPriceUploaderId, $lastPriceUploadedDateTime); } $now = date("Y-m-d-H-i-s"); $newFileName = 'price_' . $now; $newFileFullName = $dir . $newFileName . '.' . $newFileExt; move_uploaded_file($tmp_name, $newFileFullName); $serviceCompaniesPriceListManager->addCompanyPrice($serviceCompanyId, $newFileName, $newFileExt, $userLevel == UserGroups::$ADMIN ? "admin" : "servicecompany", $this->getUserId()); $jsonArr = array('status' => "ok"); echo "<script>var l= new parent.ngs.UploadServiceCompanyPriceAction(); l.afterAction('" . json_encode($jsonArr) . "'); </script>"; $serviceCompanyManager = new ServiceCompanyManager($this->config, $this->args); $serviceCompany = $serviceCompanyManager->selectByPK($serviceCompanyId); //$this->sendNewEmailUploadedToAllCompanyAccessedCustomers($company); if ($this->getCmsVar('enable_upload_price_alert') == 1) { $this->addEventIntoEventsTableForOnlineCustomers($serviceCompany); } $this->sendSmsToAdminIfUploaderIsNotItself($serviceCompany->getName()); return true; }