📁 PHP Dosya Yöneticisi
/
/
home
/
demodesigncom
/
e-ticaretv11.demodesign.com.tr
/
system
/
library
📝
eticdokargo.php
← Geri Dön
<?php class Eticdokargo { private $db; private $currency; private $load; private $request; private $language; private $folder; private $firmalar; private $status = 0; public $aktif_metodlar; public function __construct( $register ) { if(!defined('user_token_key')) define('user_token_key','user_token'); $this->folder = DIR_SYSTEM . 'library/eticdokargo/'; if ( file_exists( $this->folder . 'base.php' ) ) { include_once( $this->folder . 'base.php' ); $this->db = $register->get( 'db' ); $this->currency = $register->get( 'currency' ); $this->request = $register->get( 'request' ); $this->language = $register->get( 'language' ); $this->firmalar = $this->installed_firmalar(); $this->fix_table(); } else { throw new Exception( $this->folder . "base.php Bulunamadı. Bu modülün çalışması için zorunludur" ); } } function fix_table() { if(!$this->status) return false; try{ $query = $this->db->query( "SELECT *, MAX(order_id) as order_id FROM `" . DB_PREFIX . "order` LIMIT 1" ); if ( $query->num_rows ) { if ( !array_key_exists('kargo_barcode', $query->row) ) { $sql = "ALTER TABLE `" . DB_PREFIX . "order` ADD `kargo_barcode` VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL;"; $this->db->query( $sql ); } if ( !array_key_exists('kargo_sonuc', $query->row) ) { $sql = "ALTER TABLE `" . DB_PREFIX . "order` ADD `kargo_sonuc` varchar(255) NULL, ADD `kargo_firma` varchar(16) NULL, ADD `kargo_tarih` date NULL, ADD `kargo_talepno` varchar(16) NULL, ADD `kargo_takipno` varchar(16) NULL, ADD `kargo_url` varchar(255) NULL, ADD `kargo_paketadet` int(11) NULL DEFAULT '1'"; $this->db->query( $sql ); } if ( !array_key_exists('pazaryeri', $query->row) ) { $sql = "ALTER TABLE `" . DB_PREFIX . "order` ADD `pazaryeri` varchar(255) NULL"; $this->db->query( $sql ); } } } catch(Exception $e){ echo 'Hata oluştu. Hata kaynağı: ModelEticdokargoEticdokargo::fix_table()'; } } public function get_folder() { return $this->folder; } public function get_status() { return $this->status; } public function get_firmalar() { return $this->firmalar; } public function get_firma_name( $firma ) { if ( isset( $this->firmalar[ $firma ] ) ) { return $this->firmalar[ $firma ]; } return $firma; } public function installed_firmalar( $valid = true ) { $firmalar = array(); $data = $this->getSetting(); $this->status = $this->get_var( $data, 'status' ); $this->aktif_metodlar = $this->get_var( $data, 'aktif_metodlar' ); $this->sorulacaklar = $this->get_var( $data, 'sorulacaklar' ); $this->css = $this->get_var( $data, 'css' ); $this->otomatik_tamamlandi = $this->get_var( $data, 'otomatik_tamamlandi' ); $this->barcode_start = $this->get_var( $data, 'barcode_start', '10000000' ); if ( is_dir( $this->folder ) ) { $firma_files = array_diff( glob( $this->folder . '*.{php}', GLOB_BRACE ), array( '.', '..' ) ); foreach ( $firma_files as $firma_file ) { $comments = $this->get_comment( $firma_file ); $firma_name = pathinfo( basename( $firma_file ), PATHINFO_FILENAME ); if ( $firma_name != 'base' ) { if ( !class_exists( $firma_name ) ) { if ( file_exists( $firma_file ) ) include_once( $firma_file ); } if ( class_exists( $firma_name ) ) { $this->$firma_name = new $firma_name(); if ( !$this->getUniqueId( $firma_name ) && $valid ) { continue; } $firmalar[ $firma_name ] = empty( $comments ) ? $firma_name : current( $comments ); foreach ( $this->get_metodlar() as $method => $method_name ) { $this->$firma_name->method[ $method ][ 'method_name' ] = $method_name; $this->$firma_name->method[ $method ][ 'user_name' ] = $this->get_var( $data, $firma_name . '.' . $method . '.user_name' ); $this->$firma_name->method[ $method ][ 'user_pass' ] = $this->get_var( $data, $firma_name . '.' . $method . '.user_pass' ); $this->$firma_name->method[ $method ][ 'user_code' ] = $this->get_var( $data, $firma_name . '.' . $method . '.user_code' ); /*$this->$firma_name->method[ $method ][ 'price_fee' ] = $this->get_var( $data, $firma_name . '.' . $method . '.price_fee' );*/ $this->$firma_name->status = $this->get_var( $data, $firma_name . '.status' ); if ( $firma_name == 'aras' ) { $this->$firma_name->takip_user = $this->get_var( $data, $firma_name . '.takip_user' ); $this->$firma_name->takip_pass = $this->get_var( $data, $firma_name . '.takip_pass' ); } } $this->$firma_name->result = $this->result(); } } } foreach ( $this->get_metodlar() as $method => $method_name ) { $this->metodlar[ $method ][ 'name' ] = $method_name; $this->metodlar[ $method ][ 'payment_code' ] = $this->get_var( $data, 'metodlar.' . $method . '.payment_code' ); $this->metodlar[ $method ][ 'order_status_id' ] = $this->get_var( $data, 'metodlar.' . $method . '.order_status_id' ); } } return $firmalar; } public function getSetting( $code = 'eticdokargo' ) { $setting_data = ''; $query = $this->db->query( "SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = 0 AND `code` = '" . $this->db->escape( $code ) . "'" ); if ( $query->num_rows ) { unset( $setting_data ); if ( !$query->row[ 'serialized' ] ) { $setting_data = $query->row[ 'value' ]; } else { $setting_data = json_decode( $query->row[ 'value' ], true ); } } return $setting_data; } public function hesap_test( $firma, $data ) { $result = $this->validate( $firma, $data ); if ( $result[ 'status' ] == 1 ) { $result = $this->$firma->hesap_test( $data ); } return $result; } public function kayit_ac( $firma, $order ) { $result = $this->validate( $firma, $order ); if ( $result[ 'status' ] == 1 ) { $data = $this->fix_opencart_order( $order ); $result = $this->$firma->kayit_ac( $data ); } return $result; } public function kayit_iptal( $firma, $order ) { $result = $this->validate( $firma, $order ); if ( $result[ 'status' ] == 1 ) { $order = $this->fix_opencart_order( $order ); $data[ 'method' ] = $order[ 'method' ]; $data[ 'barkodlar' ] = array( $order[ 'barcode' ] ); $result = $this->$firma->kayit_iptal( $data ); if ( $result[ 'status' ] ) { $result[ 'data' ][ 'method' ] = ''; $result[ 'data' ][ 'order_id' ] = $order[ 'order_id' ]; $result[ 'data' ][ 'kargo_tarih' ] = ''; $result[ 'data' ][ 'kargo_firma' ] = ''; $result[ 'data' ][ 'kargo_barcode' ] = ''; $result[ 'data' ][ 'kargo_talepno' ] = ''; $result[ 'data' ][ 'kargo_durum' ] = 'İptal Edildi'; $result[ 'data' ][ 'order_status_id' ] = $order[ 'order_status_id' ]; } } return $result; } public function takip_linki_al( $firma, $data ) { } public function takip_kodu_al( $firma, $data ) { } public function kargo_durumu_al( $firma, $data ) { $result = $this->validate( $firma, $data ); if ( $result[ 'status' ] == 1 ) { $result = $this->$firma->kargo_durumu_al( $data ); } return $result; } public function get_metodlar() { $methods = array( 'online_normal' => 'Online Ödeme', 'codcash_normal' => 'Kapıda Nakit Ödeme', 'codcc_normal' => 'Kapıda Kredi Kartı', // 'online_odemeli' => 'Online Ödeme (Kargo Müşteri Öder)', // 'codcash_odemeli' => 'Kapıda Nakit Ödeme (Kargo Müşteri Öder)', // 'codcc_odemeli' => 'Kapıda Kredi Kartı (Kargo Müşteri Öder)', ); return $methods; } public function get_var( $array, $key, $default = '' ) { if ( isset( $array[ $key ] ) ) return $array[ $key ]; $keys = explode( '.', $key ); foreach ( $keys as $key ) { if ( isset( $array[ $key ] ) ) { $array = $array[ $key ]; $sonuc = $array; } else { $sonuc = $default; } } return $sonuc; } private function result() { return array( 'status' => '', 'code' => '', 'message' => '', 'html' => '', 'action' => '', 'data' => array( 'method' => '', 'order_id' => '', 'order_status_id' => '', 'kargo_barcode' => '', 'kargo_firma' => '', 'kargo_tarih' => '', 'kargo_talepno' => '', 'kargo_takipno' => '', 'kargo_url' => '', 'kargo_sonuc' => '' ) ); } private function validate( $firma, $data = array() ) { $result = $this->result(); if ( empty( $firma ) || !isset( $this->firmalar[ $firma ] ) ) { $result[ 'status' ] = 0; $result[ 'code' ] = 100; $result[ 'message' ] = "Geçersiz Kargo Firması"; } else { if ( $this->getUniqueId( $firma ) ) { $result[ 'status' ] = 1; $result[ 'code' ] = ""; $result[ 'message' ] = ""; } else { $result[ 'status' ] = 0; $result[ 'message' ] = $this->request->server[ 'SERVER_NAME' ] . ' ' . base64_decode( '.acOnaW4gYWhtZXRoYW1kaWJheXJha0Bob3RtYWlsLmNvbSdkYW4gZGVzdGVrIGlzdGV5aW5peg==' ); } } return $result; } private function getUniqueId( $firma_name ) { return true; $uniqueId = md5( base64_encode( $this->request->server[ 'SERVER_NAME' ] . '-' . $firma_name ) ); if ( file_exists( $this->folder . $uniqueId ) ) return true; return false;; } private function fix_opencart_order( $order ) { $data[ 'order_id' ] = $this->get_var( $order, 'order_id' ); $data[ 'barcode' ] = (int)$this->barcode_start + $this->get_var( $order, 'order_id' ); $data[ 'paket' ] = isset( $order[ 'paket' ] ) ? $order[ 'paket' ] : 1; $data[ 'name' ] = $this->get_var( $order, 'shipping_firstname' ) . ' ' . $order[ 'shipping_lastname' ]; $data[ 'tel' ] = $this->get_var( $order, 'telephone' ); $data[ 'city' ] = $this->get_var( $order, 'shipping_city' ); $data[ 'zone' ] = $this->get_var( $order, 'shipping_zone' ); $data[ 'shipping_method' ] = $this->get_var( $order, 'shipping_method' ); $data[ 'address' ] = $this->get_var( $order, 'shipping_address_1' ) . ' ' . $this->get_var( $order, 'shipping_address_2' ); if ( empty( trim( $data[ 'address' ] ) ) ) { $data[ 'name' ] = $this->get_var( $order, 'payment_firstname' ) . ' ' . $order[ 'payment_lastname' ]; $data[ 'city' ] = $this->get_var( $order, 'payment_city' ); $data[ 'zone' ] = $this->get_var( $order, 'payment_zone' ); $data[ 'address' ] = $this->get_var( $order, 'payment_address_1' ) . ' ' . $this->get_var( $order, 'payment_address_2' ); } $data[ 'address' ] .= ' ' . $data[ 'city' ] . ' ' . $data[ 'zone' ]; $data[ 'order_status_id' ] = $this->get_method_order_status( $order ); $data[ 'method' ] = $this->get_order_method( $order ); $data[ 'currency_value' ] = $this->get_var( $order, 'currency_value', 1 ); $data[ 'base_total' ] = $this->get_var( $order, 'total' ); $data[ 'total' ] = $this->get_var( $order, 'total' ) * $data[ 'currency_value' ]; $data[ 'total' ] = round($data[ 'total' ],2); return $data; } private function get_order_method( $order ) { $order_method = 'online_normal'; foreach ( $this->metodlar as $metodkey => $method ) { if ( isset( $method[ 'payment_code' ] ) ) { if ( $method[ 'payment_code' ] == $order[ 'payment_code' ] ) { $order_method = $metodkey; } } } return $order_method; } private function get_method_order_status( $order ) { $method_order_status = $this->get_var( $this->metodlar, 'online_normal.order_status_id' ); foreach ( $this->metodlar as $metodkey => $method ) { if ( isset( $method[ 'payment_code' ] ) ) { if ( $method[ 'payment_code' ] == $order[ 'payment_code' ] ) { $method_order_status = $method[ 'order_status_id' ]; } } } return $method_order_status; } private function get_comment( $file ) { $txt_lines = array(); $source = file_get_contents( $file ); $tokens = token_get_all( $source ); $comment = array( T_COMMENT, // All comments since PHP5 T_DOC_COMMENT // PHPDoc comments ); foreach ( $tokens as $token ) { if ( !in_array( $token[ 0 ], $comment ) ) continue; $token[ 1 ] = preg_replace( '(^\s+\*)m', ' *', $token[ 1 ] ); // Do something with the comment $parts = explode( ' ', $token[ 1 ] ); array_pop( $parts ); array_shift( $parts ); $txt_lines[] = implode( ' ', $parts ); } return $txt_lines; } }
💾 Kaydet
İptal
📝 Yeniden Adlandır
İptal
Kaydet
🔐 Dosya İzinleri (chmod)
İzin Değeri:
Hızlı Seçim:
777
755
644
600
777
= Herkes okur/yazar/çalıştırır
755
= Sahip tam, diğerleri okur/çalıştırır
644
= Sahip okur/yazar, diğerleri okur
600
= Sadece sahip okur/yazar
İptal
Uygula