| 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 : |
<?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;
}
}