| 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/Console/Commands/ |
Upload File : |
<?php
namespace App\Console\Commands;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Helper\ProgressBar;
use Illuminate\Console\Command;
use App\Modules\PedidoVenda\Models\PedidoVenda;
use App\Modules\Canal\Models\Canal;
use App\Modules\CupomPedidoVenda\Models\CupomPedidoVenda;
use App\Modules\Cupom\Models\Cupom;
use App\Modules\ContaCorrente\Models\ContaCorrente;
use App\BasicInfo;
use App\Services\ContaCorrenteService;
use Illuminate\Support\Facades\Log;
use DB;
class AtualizaPedidosCashback extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'atualiza_pedidos_cashback';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Atualiza Pedidos com Cashback Diferente do Estipulado';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
$this->output = new ConsoleOutput;
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
/*$cupom_id = 698;
$canal_id = 77;
$cupom = Cupom::where('id', $cupom_id)->first();
$pedidosPixDesconto = PedidoVenda::select(DB::raw("pedido_venda.id, pedido_venda.subtotal, pedido_venda.total, cpv.id_cupom,
(SELECT COUNT(pvhp.id) FROM pedido_venda_has_produto pvhp WHERE pvhp.id_pedido_venda = pedido_venda.id) 'total_ofertas',
(SELECT COUNT(pvhp.id) FROM pedido_venda_has_produto pvhp, canal_has_oferta cho WHERE pvhp.id_pedido_venda = pedido_venda.id AND cho.id_oferta = pvhp.id_oferta AND cho.id_canal = {$canal_id}) 'ofertas_saldao'")
)
->leftJoin('cupom_pedido_venda AS cpv', 'cpv.id_pedido_venda', '=', 'pedido_venda.id')
->whereRaw("pedido_venda.data_fechamento >= '2022-03-28 22:00' AND pedido_venda.ajuste = 0 AND pedido_venda.tipo_deposito IS NOT NULL AND pedido_venda.id_status_pedido_venda = 1 AND cpv.id_cupom IS NULL AND pedido_venda.comprovante IS NULL")
->havingRaw('total_ofertas = ofertas_saldao')
->get();
$total = count($pedidosPixDesconto);
$progressBar = new ProgressBar($this->output, $total);
foreach ($pedidosPixDesconto as $pedidoVenda) {
$total = $pedidoVenda->subtotal * (1 - (($cupom->percentual_desconto ? $cupom->percentual_desconto : 100) / 100)) - $cupom->valor_desconto;
$total = $total > 0 ? $total : 0;
$ajuste = $total - $pedidoVenda->subtotal;
$total = number_format($total, 2, '.', '');
$ajuste = number_format($ajuste, 2, '.', '');
$sql = "UPDATE pedido_venda SET ajuste = {$ajuste}, total = {$total} WHERE id = {$pedidoVenda->id}";
DB::update($sql);
$cupomPedidoVenda = new CupomPedidoVenda();
$cupomPedidoVenda->id_cupom = $cupom_id;
$cupomPedidoVenda->id_pedido_venda = $pedidoVenda->id;
$cupomPedidoVenda->data = date('Y-m-d H:i:s');
$cupomPedidoVenda->save();
$progressBar->advance();
}
$progressBar->finish();*/
/*$this->info(date('d/m/Y H:i:s') . " - START pedidosCashback");
$basicInfo = BasicInfo::find(1);
if($basicInfo->canal_id_cashback){
$Canal = Canal::where('id', $basicInfo->canal_id_cashback)->first();
$pedidosCashback = Canal::select(DB::raw("pedido_venda.id, data_fechamento, subtotal, ajuste, total, cc.valor, id_status_pedido_venda, SUM(pedido_venda_has_produto.valor_total) total_produtos"))
->join('canal_has_oferta', 'canal_has_oferta.id_canal', '=', 'canal.id')
->join('pedido_venda_has_produto', 'pedido_venda_has_produto.id_oferta', '=', 'canal_has_oferta.id_oferta')
->join('pedido_venda', 'pedido_venda_has_produto.id_pedido_venda', '=', 'pedido_venda.id')
->leftJoin('conta_corrente AS cc', 'cc.pedido_venda_id', '=', 'pedido_venda.id')
->whereRaw("canal.id = {$basicInfo->canal_id_cashback} AND data_fechamento BETWEEN '{$Canal->data_inicio}' AND '{$Canal->data_fim}' AND cc.valor IS NULL AND id_status_pedido_venda NOT IN (1,5)")
->havingRaw("total_produtos > {$basicInfo->valor_minimo_cashback}")
->groupBy('pedido_venda.id')
->orderBy('pedido_venda.data_fechamento', 'ASC')
->get();
}else{
$pedidosCashback = PedidoVenda::select(DB::raw("pedido_venda.id, data_fechamento, subtotal, ajuste, total, cc.valor, id_status_pedido_venda"))
->leftJoin('conta_corrente AS cc', 'cc.pedido_venda_id', '=', 'pedido_venda.id')
->whereRaw("data_fechamento BETWEEN '2022-05-25 23:59:00' AND '2022-05-31 23:59:59' AND cc.valor IS NULL AND subtotal >= {$basicInfo->valor_minimo_cashback} AND id_status_pedido_venda NOT IN (1,5)")
->orderBy('pedido_venda.id', 'ASC')
->get();
}
$total = count($pedidosCashback);
$progressBar = new ProgressBar($this->output, $total);
foreach ($pedidosCashback as $pedidoVenda) {
$pedidoVenda = PedidoVenda::where('id', $pedidoVenda->id)->first();
ContaCorrenteService::atualizarConta($pedidoVenda, 'E', TRUE, TRUE); //forceCashback, forceCanal
$progressBar->advance();
}
$progressBar->finish();
$this->info(date('d/m/Y H:i:s') . " - FINISHED pedidosCashback");*/
/*$this->info(date('d/m/Y H:i:s') . " - START contasCashback");
$contasCashback = ContaCorrente::select(DB::raw("conta_corrente.id, conta_corrente.pedido_venda_id, pv.subtotal, pv.ajuste, pv.total, conta_corrente.valor 'cash_aplicado', ( (pv.subtotal * 20) / 100 ) 'cash_correto'"))
->join('pedido_venda AS pv', 'conta_corrente.pedido_venda_id', '=', 'pv.id')
->whereRaw('pv.tipo_deposito IS NOT NULL AND pv.ajuste <> 0')
->havingRaw('( (pv.subtotal * 20) / 100 ) > conta_corrente.valor')
->orderBy('conta_corrente.pedido_venda_id', 'ASC')
->get();
$total = count($contasCashback);
$progressBar = new ProgressBar($this->output, $total);
foreach ($contasCashback as $contaCorrente) {
$valor = number_format($contaCorrente->cash_correto, 2, '.', '');
//ATUALIZA STATUS PEDIDO VENDA
$sql_conta_corrente = "UPDATE conta_corrente SET valor = {$valor}, saldo = {$valor} WHERE id = {$contaCorrente->id}";
DB::update(DB::raw($sql_conta_corrente));
$progressBar->advance();
}
$progressBar->finish();*/
$this->info(date('d/m/Y H:i:s') . " - START pedidosCashback");
$basicInfo = BasicInfo::find(1);
$pedidosCashback = PedidoVenda::select(DB::raw("pedido_venda.id"))
->join('confraria_membro', 'confraria_membro.cadastro_id', '=', 'pedido_venda.id_cliente')
->join('confraria', 'confraria.id', '=', 'confraria_membro.confraria_id')
->whereRaw('confraria_membro.deleted = 0
AND pedido_venda.data_fechamento >= confraria.data_cadastro
AND nm_referencia IS NOT NULL
AND confraria_membro.confraria_id IN (10,37,25,28,35,39)
AND pedido_venda.id_status_pedido_venda IN (2,7)
AND pedido_venda.total > 0
AND pedido_venda.saldo_usado = 0
AND NOT EXISTS (SELECT 1 FROM conta_corrente cc WHERE cc.pedido_venda_id = pedido_venda.id)')
->orderBy('pedido_venda.data_fechamento', 'ASC')
->get();
$total = count($pedidosCashback);
$progressBar = new ProgressBar($this->output, $total);
foreach ($pedidosCashback as $pedidoVenda) {
$pedidoVenda = PedidoVenda::where('id', $pedidoVenda->id)->first();
ContaCorrenteService::atualizarConta($pedidoVenda, 'E');
$progressBar->advance();
}
$progressBar->finish();
$this->info(date('d/m/Y H:i:s') . " - FINISHED pedidosCashback");
$this->info(date('d/m/Y H:i:s') . " - DONE");
}
}