403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/system/classes/tracking/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/system/classes/tracking/ParcelServicesAjaxHandler.inc.php
<?php
/* --------------------------------------------------------------
   ParcelServicesAjaxHandler.inc.php 2018-09-07
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2017 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

require_once(DIR_FS_CATALOG . 'gm/classes/JSON.php');

/**
 * Class ParcelServicesAjaxHandler
 */
class ParcelServicesAjaxHandler extends AjaxHandler
{
	/**
	 * @param null $p_customers_id
	 *
	 * @return bool
	 */
	public function get_permission_status($p_customers_id = null)
	{
		if($_SESSION['customers_status']['customers_status_id'] === '0')
		{
			#admins only
			return $this->_checkAdminReadingPermission('ParcelServices', !empty($p_customers_id) ? $p_customers_id : $_SESSION['customer_id']);
		}
		return false;
	}


	/**
	 * @return bool
	 */
	public function proceed()
	{
		$t_responseArray = array();
		$t_action = $this->v_data_array['GET']['action'];

		switch( $t_action )
		{
			case 'save_parcel_service':
				$parcelServiceDataArray = array();
				parse_str($this->v_data_array['POST']['form_data'], $parcelServiceDataArray);
				
				if($_SESSION['coo_page_token']->is_valid($parcelServiceDataArray['page_token']))
				{
					/** @var ParcelService $parcelService */
					$parcelService = MainFactory::create_object('ParcelService');
	
					/** @var ParcelServiceWriter $parcelServiceWriter */
					$parcelServiceWriter = MainFactory::create_object('ParcelServiceWriter');
	
					/** @var ParcelServicesOverviewContentView $parcelServicesOverviewView */
					$parcelServicesOverviewView = MainFactory::create_object('ParcelServicesOverviewContentView');
					$parcelServicesOverviewView->setPageToken($_SESSION['coo_page_token']->generate_token());
					
					$this->_saveParcelService($this->v_data_array['POST']['parcel_service_id'], $parcelServiceDataArray, $parcelService, $parcelServiceWriter);
					
					$t_responseArray['status'] = 'success';
					$t_responseArray['html'] = $parcelServicesOverviewView->get_html();
				}
				break;
			
			case 'delete_parcel_service':
				if($_SESSION['coo_page_token']->is_valid($this->v_data_array['POST']['page_token']))
				{
					/** @var ParcelServiceWriter $parcelServiceWriter */
					$parcelServiceWriter = MainFactory::create_object('ParcelServiceWriter');
					
					$this->_deleteParcelService($this->v_data_array['POST']['parcel_service_id'], $parcelServiceWriter);
					
					$parcelServicesOverviewView = MainFactory::create_object( 'ParcelServicesOverviewContentView' );
					$parcelServicesOverviewView->setPageToken($_SESSION['coo_page_token']->generate_token());
					
					$t_responseArray['status'] = 'success';
					$t_responseArray['html'] = $parcelServicesOverviewView->get_html();
				}
				break;

			case 'add_tracking_code':
				if($_SESSION['coo_page_token']->is_valid($this->v_data_array['POST']['page_token']))
				{
					$trackingCode = xtc_db_prepare_input($this->v_data_array['POST']['tracking_code']);
	
					/** @var ParcelServiceReader $parcelServiceReader */
					$parcelServiceReader = MainFactory::create_object('ParcelServiceReader');
					
					/** @var ParcelTrackingCodeWriter $parcelTrackingCodeWriter */
					$parcelTrackingCodeWriter = MainFactory::create_object('ParcelTrackingCodeWriter');
					
					$this->_addTrackingCode($this->v_data_array['POST']['order_id'], $trackingCode, $this->v_data_array['POST']['service_id'],
											$parcelServiceReader, $parcelTrackingCodeWriter);
					
					/** @var TrackingCodesContentView $view */
					$view = MainFactory::create_object('TrackingCodesContentView');
	
					$view->setOrderId($this->v_data_array['POST']['order_id']);
					$view->setPageToken($_SESSION['coo_page_token']->generate_token());
	
					$t_responseArray['status'] = 'success';
					$t_responseArray['html'] = $view->get_html();
				}
				break;

			case 'delete_tracking_code':
				if($_SESSION['coo_page_token']->is_valid($this->v_data_array['POST']['page_token']))
				{
					/** @var ParcelTrackingCodeWriter $parcelTrackingCodeWriter */
					$parcelTrackingCodeWriter = MainFactory::create_object('ParcelTrackingCodeWriter');
					
					$this->_deleteTrackingCode($this->v_data_array['POST']['tracking_code_id'], $parcelTrackingCodeWriter);
					
					$orderId = (int)$this->v_data_array['POST']['order_id'];
					
					/** @var TrackingCodesContentView $view */
					$view = MainFactory::create_object('TrackingCodesContentView');
	
					$view->setOrderId($orderId);
					$view->setPageToken($_SESSION['coo_page_token']->generate_token());
					
					$t_responseArray['status'] = 'success';
					$t_responseArray['html'] = $view->get_html();
				}
				break;

			default:
				trigger_error('t_action_request not found: '. htmlentities($t_action_request), E_USER_WARNING);
				return false;
		}

		$coo_json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
		$t_output_json = $coo_json->encode($t_responseArray);

		$this->v_output_buffer = $t_output_json;
		
		return true;
	}


	/**
	 * @param int                 $p_parcelServiceId
	 * @param array               $parcelServiceDataArray
	 * @param ParcelService       $parcelService
	 * @param ParcelServiceWriter $parcelServiceWriter
	 *
	 * @return bool
	 */
	protected function _saveParcelService($p_parcelServiceId, array $parcelServiceDataArray, ParcelService $parcelService, ParcelServiceWriter $parcelServiceWriter)
	{
		$languageProvider = MainFactory::create('LanguageProvider', StaticGXCoreLoader::getDatabaseQueryBuilder());
		$defaultLanguageId = $languageProvider->getDefaultLanguageId();

		$parcelServiceId = (int)$p_parcelServiceId;

		$parcelService->setName($parcelServiceDataArray['parcel_service']['name']);
		$default = 0;
		if(isset($parcelServiceDataArray['parcel_service']['default']) && (int)$parcelServiceDataArray['parcel_service']['default'] != 0)
		{
			$default = 1;
		}
		$parcelService->setDefault($default);

		foreach($parcelServiceDataArray['parcel_service']['url'] as $languageId => $url)
		{
			if(empty($url))
			{
				$parcelServiceDataArray['parcel_service']['url'][$languageId] = $parcelServiceDataArray['parcel_service']['url'][$defaultLanguageId];
			}
		}
		$parcelService->setUrlArray($parcelServiceDataArray['parcel_service']['url']);

		foreach($parcelServiceDataArray['parcel_service']['comment'] as $languageId => $comment)
		{
			if(empty($comment))
			{
				$parcelServiceDataArray['parcel_service']['comment'][$languageId] = $parcelServiceDataArray['parcel_service']['comment'][$defaultLanguageId];
			}
		}
		$parcelService->setCommentArray($parcelServiceDataArray['parcel_service']['comment']);

		if($parcelServiceId == 0)
		{
			$parcelServiceWriter->insertParcelService($parcelService);
		}
		else
		{
			$parcelService->setId($parcelServiceId);
			$parcelServiceWriter->updateParcelService($parcelService);
		}

		return true;
	}


	/**
	 * @param int                 $p_parcelServiceId
	 * @param ParcelServiceWriter $parcelServiceWriter
	 *
	 * @return bool
	 */
	protected function _deleteParcelService($p_parcelServiceId, ParcelServiceWriter $parcelServiceWriter)
	{
		$parcelServiceId = (int)$p_parcelServiceId;

		if($parcelServiceId > 0)
		{
			$parcelServiceWriter->deleteParcelService($parcelServiceId);
			
			return true;
		}
		
		return false;
	}


	/**
	 * @param int                      $p_orderId
	 * @param string                   $p_trackingCode
	 * @param int                      $p_parcelServiceId
	 * @param ParcelServiceReader      $parcelServiceReader
	 * @param ParcelTrackingCodeWriter $parcelServiceWriter
	 *
	 * @return bool
	 */
	protected function _addTrackingCode($p_orderId,
	                                    $p_trackingCode,
	                                    $p_parcelServiceId,
	                                    ParcelServiceReader $parcelServiceReader,
	                                    ParcelTrackingCodeWriter $parcelServiceWriter)
	{
		$parcelServiceWriter->insertTrackingCode((int)$p_orderId, $p_trackingCode, (int)$p_parcelServiceId,
		                                         $parcelServiceReader);
		
		$languageTextManager = MainFactory::create('LanguageTextManager', 'orders_edit');
		$orderWriteService = StaticGXCoreLoader::getService('OrderWrite');
		$orderWriteService->addOrderStatusHistoryEntry(new IdType((int)$p_orderId),
		                                               new StringType($languageTextManager->get_text('EDIT_ADDED_TRACING_NUMBER')),
		                                               new IdType($_SESSION['customer_id']));
		
		return true;
	}


	/**
	 * @param int                      $p_trackingCodeId
	 * @param ParcelTrackingCodeWriter $parcelTrackingCodeWriter
	 *
	 * @return bool
	 */
	protected function _deleteTrackingCode($p_trackingCodeId, ParcelTrackingCodeWriter $parcelTrackingCodeWriter)
	{
		$parcelTrackingCodeWriter->deleteTrackingCode($p_trackingCodeId);
		
		return true;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit