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/Services/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Services/MarketplaceService.php
<?php 

namespace App\Services;

use App\Modules\Adega\Models\Adega;
use App\Modules\Cadastro\Models\Cadastro;
use App\Modules\PedidoVenda\Models\PedidoVenda;
use App\Modules\PedidoEntrega\Models\PedidoEntrega;
use App\Modules\PedidoEntregaHasStatus\Models\PedidoEntregaHasStatus;

use Illuminate\Support\Facades\Log;
use Exception;
use DB;

class MarketplaceService {

    public static function listaPedidos($request, $block = FALSE){

        if($request->input('situacao_adega') == 'A'){

            $query = PedidoVenda::select(DB::raw("
                            pedido_venda.uf_cliente AS EstadoSigla,
                            sum(pedido_venda_has_produto.quantidade) as Qtd,
                            sum(pedido_venda_has_produto.quantidade*produto.preco_custo) as Valor,
                            count(DISTINCT pedido_venda.id_cliente) as Clientes"
                        ))
                    ->join('pedido_venda_has_produto', 'pedido_venda_has_produto.id_pedido_venda', '=', 'pedido_venda.id')
                    ->join('produto', 'produto.id', '=', 'pedido_venda_has_produto.id_produto')
                    ->join('adega_has_pedido_venda', 'adega_has_pedido_venda.id_pedido_venda', '=', 'pedido_venda.id')
                    ->join('adega', 'adega.id', '=', 'adega_has_pedido_venda.id_adega')
                    ->where('pedido_venda.empresa_id', $request->input('empresa_id'))
                    ->where('adega.status', $request->input('situacao_adega'))
                    ->whereIn('pedido_venda.id_status_pedido_venda', [1,2,9])
                    ->whereRaw('pedido_venda.uf_cliente IS NOT NULL');

            if($request->input('estado_sigla')){
                $query->where('pedido_venda.uf_cliente', $request->input('estado_sigla'));
            }

            $pedidos = $query->groupBy('pedido_venda.uf_cliente')->orderBy('Valor', 'DESC')->get();

        }elseif($request->input('situacao_adega') == 'S'){

            $query = Cadastro::select(DB::raw("
                            estado.sigla AS EstadoSigla,
                            0 as Qtd,
                            0 as Valor,
                            count(DISTINCT cadastro_endereco.cadastro_id) as Clientes"
                        ))
                    ->join('cadastro_endereco', 'cadastro_endereco.cadastro_id', '=', 'cadastro.id')
                    ->join('estado', 'estado.id', '=', 'cadastro_endereco.estado_id')
                    ->where('cadastro.empresa_id', $request->input('empresa_id'))
                    ->whereRaw('estado.sigla IS NOT NULL');

            if($request->input('estado_sigla')){
                $query->where('estado.sigla', $request->input('estado_sigla'));
            }

            $pedidos = $query->groupBy('estado.sigla')->orderBy('Clientes', 'DESC')->get();

        }else{

            $query = Adega::select(DB::raw("
                           estado.sigla AS EstadoSigla,
                           sum(adega.quantidade_produtos) AS Qtd,
                           sum(adega.valor_total) AS Valor,
                           count(DISTINCT adega.id_cliente) AS Clientes"
                        ))
                    ->join('pedido_entrega', 'pedido_entrega.id_adega', '=', 'adega.id')
                    ->join('cadastro', 'cadastro.id', '=', 'adega.id_cliente')
                    ->join('cadastro_endereco', 'cadastro_endereco.id', '=', 'pedido_entrega.id_cadastro_endereco')
                    ->join('estado', 'estado.id', '=', 'cadastro_endereco.estado_id')
                    ->where('cadastro.empresa_id', $request->input('empresa_id'))
                    ->where('adega.status', $request->input('situacao_adega'));

            if($request->input('estado_sigla')){
                $query->where('estado.sigla', $request->input('estado_sigla'));
            }

            if($block){
                $query->whereRaw('pedido_entrega.id_pedido_entrega_status NOT IN (6,7)');
            }

            $pedidos = $query->groupBy('estado.sigla')->orderBy('Valor', 'DESC')->get();

            if($block){
                $bloqueados = [];
                foreach ($pedidos as $bloqueado) {
                    $bloqueados[$bloqueado->EstadoSigla] = $bloqueado->Clientes;
                }
                $pedidos = $bloqueados;
            }

        }

        return $pedidos;

    }

    public static function listaClientesPedidos($request, $block = FALSE){

        if($request->input('situacao_adega') == 'A'){

            $query = PedidoVenda::select(DB::raw("
                                pedido_venda.id_cliente,
                                sum(pedido_venda_has_produto.quantidade) as Qtd,
                                count(pedido_venda.id) as Pedidos,
                                sum(pedido_venda_has_produto.quantidade*produto.preco_custo) as Valor"
                            ))
                        ->join('pedido_venda_has_produto', 'pedido_venda_has_produto.id_pedido_venda', '=', 'pedido_venda.id')
                        ->join('produto', 'produto.id', '=', 'pedido_venda_has_produto.id_produto')
                        ->join('adega_has_pedido_venda', 'adega_has_pedido_venda.id_pedido_venda', '=', 'pedido_venda.id')
                        ->join('adega', 'adega.id', '=', 'adega_has_pedido_venda.id_adega')
                        ->where('pedido_venda.empresa_id', $request->input('origem'))
                        ->where('pedido_venda.uf_cliente', $request->input('estado_sigla'))
                        ->where('adega.status', $request->input('situacao_adega'))
                        ->whereIn('pedido_venda.id_status_pedido_venda', [1,2,9]);

            $clientes = $query->groupBy('pedido_venda.id_cliente')->orderBy('Valor', 'DESC')->get();

        }elseif($request->input('situacao_adega') == 'S'){

            $query = Cadastro::select(DB::raw("
                            cadastro_endereco.cadastro_id as id_cliente,
                            0 as Qtd,
                            0 as Pedidos,
                            0 as Valor"
                        ))
                    ->join('cadastro_endereco', 'cadastro_endereco.cadastro_id', '=', 'cadastro.id')
                    ->join('estado', 'estado.id', '=', 'cadastro_endereco.estado_id')
                    ->where('cadastro.empresa_id', $request->input('origem'))
                    ->whereRaw('estado.sigla IS NOT NULL');

            if($request->input('estado_sigla')){
                $query->where('estado.sigla', $request->input('estado_sigla'));
            }

            $clientes = $query->groupBy('cadastro_endereco.cadastro_id')->orderBy('Valor', 'DESC')->get();

        }else{

            $query = Adega::select(DB::raw("
                           adega.id_cliente,
                           sum(adega.quantidade_produtos) AS Qtd,
                           sum(adega.valor_total) AS Valor,
                           sum(adega.quantidade_pedidos) AS Pedidos"
                        ))
                    ->join('pedido_entrega', 'pedido_entrega.id_adega', '=', 'adega.id')
                    ->join('cadastro', 'cadastro.id', '=', 'adega.id_cliente')
                    ->join('cadastro_endereco', 'cadastro_endereco.id', '=', 'pedido_entrega.id_cadastro_endereco')
                    ->join('estado', 'estado.id', '=', 'cadastro_endereco.estado_id')
                    ->where('cadastro.empresa_id', $request->input('origem'))
                    ->where('estado.sigla', $request->input('estado_sigla'))
                    ->where('adega.status', $request->input('situacao_adega'));

            if($block){
                $query->whereRaw('pedido_entrega.id_pedido_entrega_status NOT IN (6,7)');
            }

            $clientes = $query->groupBy('adega.id_cliente')->orderBy('Valor', 'DESC')->get();

            if($block){
                $bloqueados = [];
                foreach ($clientes as $bloqueado) {
                    $bloqueados[$bloqueado->id_cliente] = $bloqueado->id_cliente;
                }
                $clientes = $bloqueados;
            }

        }

        return $clientes;

    }

    public static function atualizarEntregasEntregues(){

        $dateUpdate = date('Y-m-d', strtotime("-60 days",strtotime(date('Y-m-d'))));

        $pedidos = PedidoEntrega::select('id')->whereNotIn('id_pedido_entrega_status', [6,7])->where('data_solicitacao', '<=', $dateUpdate)
        ->whereRaw('EXISTS (SELECT 1 FROM pedido_entrega_has_status pehs WHERE pehs.id_pedido_entrega = pedido_entrega.id AND pehs.id_pedido_entrega_status IN (5,8))')
        ->get();

        $historicos = [];

        foreach ($pedidos as $pedido) {
            
            $historico = [
                'data'                     => date('Y-m-d H:i:s'),
                'observacao'               => 'Pedido Entregue',
                'id_pedido_entrega'        => $pedido->id,
                'id_pedido_entrega_status' => 6,
                'notificar_cliente'        => 0,
                'user_id'                  => 1,
                'chave_rastreamento'       => '1',
            ];

            $historicos[] = $historico;

            if(count($historicos) == 100){
                PedidoEntregaHasStatus::insert($historicos);
                $historicos = [];
            }

        }

        if(count($historicos) > 0){
            PedidoEntregaHasStatus::insert($historicos);
        }

        $sql = "UPDATE pedido_entrega SET id_pedido_entrega_status = 6, rastreamento = 0 WHERE id_pedido_entrega_status NOT IN (6,7) AND data_solicitacao <= '{$dateUpdate}' AND EXISTS (SELECT 1 FROM pedido_entrega_has_status pehs WHERE pehs.id_pedido_entrega = pedido_entrega.id AND pehs.id_pedido_entrega_status IN (5,8))";
        Log::info($sql);
        DB::update($sql);

        return true;

    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit