| 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/Modules/Confraria/Services/ |
Upload File : |
<?php
namespace App\Modules\Confraria\Services;
use DB;
use App\BasicInfo;
use Illuminate\Support\Facades\Log;
use App\Modules\Adega\Models\Adega;
use App\Modules\PedidoVenda\Models\PedidoVenda;
use App\Modules\PedidoEntrega\Models\PedidoEntrega;
use App\Modules\ConfrariaMembro\Models\ConfrariaMembro;
use App\Modules\PedidoVendaHasProduto\Models\PedidoVendaHasProduto;
use App\Modules\Confraria\Models\Confraria;
use App\Modules\ConfrariaProduto\Models\ConfrariaProduto;
use App\Modules\Oferta\Models\Oferta;
use App\Modules\Cadastro\Models\Cadastro;
use App\Services\GeralService;
use App\Modules\Confraria\Services\ConfrariaEntregaService;
use App\Modules\ConfrariaConvite\Models\ConfrariaConvite;
use App\Modules\ConfrariaProdutoPedido\Models\ConfrariaProdutoPedido;
use App\User;
class ConfrariaService{
public static function deletarConfraria($confraria_id, $cliente_id){
$resultado = [];
$confraria = Confraria::where('id', $confraria_id)->first();
if(!$confraria){
return ['status' => false, 'message' => 'Confraria não existe!'];
}
if($confraria->deleted){
return ['status' => false, 'message' => 'Confraria já excluída!'];
}
if($confraria->cadastro_id != $cliente_id){
return ['status' => false, 'message' => 'Somente o fundador pode excluir esta confraria!'];
}
//VERIFICAR ADEGA ABERTA
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta(['confraria_id' => $confraria_id]);
if($adegaAberta){
$sql = "UPDATE adega SET id_cliente = {$confraria->cadastro_id} WHERE id = {$adegaAberta->id}";
Log::info($sql);
DB::statement($sql);
ConfrariaService::deletarAdegaConfraria($adegaAberta, $confraria);
}
//VERIFICAR CASHBACK NÃO UTILIZADO, NO
$deleted_at = date('Y-m-d H:i:s');
//EXCLUSÃO MEMBROS
$sql = "UPDATE confraria_membro SET deleted = 1, deleted_at = '{$deleted_at}' WHERE confraria_id = {$confraria_id}";
Log::info($sql);
DB::statement($sql);
//EXCLUSÃO CONFRARIA
$confraria->deleted = 1;
$confraria->deleted_at = $deleted_at;
$confraria->save();
return ['status' => true, 'message' => 'Confraria excluída com sucesso!'];
}
public static function deletarAdegaConfraria($adega, $confraria, $cliente_id=FALSE){
if($cliente_id){
ConfrariaService::deletarAdegaMembroConfraria($adega, $confraria, $cliente_id);
}else{
foreach($confraria->membros as $membroConfraria){
ConfrariaService::deletarAdegaMembroConfraria($adega, $confraria, $membroConfraria->cadastro_id);
}
}
//Recalcula Adega Confraria
GeralService::recalcularAdega($confraria->cadastro_id, FALSE, $adega->id, $confraria->id);
return true;
}
public static function deletarConfrariaMembro($confraria_id, $cliente_id){
$resultado = [];
$confraria = Confraria::where('id', $confraria_id)->first();
if(!$confraria){
return ['status' => false, 'message' => 'Confraria não existe!'];
}
if($confraria->deleted){
return ['status' => false, 'message' => 'Confraria já excluída!'];
}
//VERIFICAR ADEGA ABERTA
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta(['confraria_id' => $confraria_id]);
if($adegaAberta){
$sql = "UPDATE adega SET id_cliente = {$confraria->cadastro_id} WHERE id = {$adegaAberta->id}";
Log::info($sql);
DB::statement($sql);
ConfrariaService::deletarAdegaConfraria($adegaAberta, $confraria, $cliente_id);
}
//VERIFICAR CASHBACK NÃO UTILIZADO, NO
$deleted_at = date('Y-m-d H:i:s');
//EXCLUSÃO MEMBRO
$sql = "UPDATE confraria_membro SET deleted = 1, deleted_at = '{$deleted_at}', confraria_convite_id = NULL WHERE confraria_id = {$confraria_id} AND cadastro_id = {$cliente_id}";
Log::info($sql);
DB::statement($sql);
$sql = "DELETE FROM confraria_convite WHERE cadastro_id = {$cliente_id}";
Log::info($sql);
DB::statement($sql);
return ['status' => true, 'message' => 'Membro excluído com sucesso!'];
}
public static function deletarAdegaMembroConfraria($adega, $confraria, $cliente_id){
$sql = "UPDATE pedido_venda SET confraria_id = NULL WHERE pedido_venda.id_cliente = {$cliente_id} AND EXISTS (SELECT 1 FROM adega_has_pedido_venda ahpv WHERE ahpv.id_pedido_venda= pedido_venda.id AND ahpv.id_adega={$adega->id})";
Log::info($sql);
DB::statement($sql);
$adegaAbertaMembro = Adega::where('id_cliente', $cliente_id)->whereRaw('confraria_id IS NULL')->where('status', 'A')->first();
if (!$adegaAbertaMembro) {
$adegaAbertaMembro = new Adega();
$adegaAbertaMembro->data_abertura = date('Y-m-d H:i:s');
$adegaAbertaMembro->status = 'A';
$adegaAbertaMembro->id_cliente = $cliente_id;
$adegaAbertaMembro->save();
}
$listaPedidos = PedidoVenda::select('id')->where('id_cliente', $cliente_id)->whereRaw("EXISTS (SELECT 1 FROM adega_has_pedido_venda ahpv WHERE ahpv.id_pedido_venda= pedido_venda.id AND ahpv.id_adega={$adega->id} AND pedido_venda.id_cliente={$cliente_id})")->get();
$pedidos = [];
if(count($listaPedidos) > 0){
foreach($listaPedidos as $pedido){
$pedidos[] = $pedido->id;
}
}
$pedidos = (count($pedidos) ? implode(",", $pedidos) : 0);
$sql = "UPDATE adega_has_pedido_venda SET id_adega = {$adegaAbertaMembro->id} WHERE id_pedido_venda IN ({$pedidos})";
Log::info($sql);
DB::statement($sql);
//LIMPEZA CONFRARIA PRODUTO X MEMBRO
$ProdutosPedidos = ConfrariaProdutoPedido::select('confraria_produto_id')
->join('pedido_venda', 'pedido_venda.id_cliente', '=', 'confraria_produto_pedido.pedido_venda_id')
->where('pedido_venda.id_cliente', $cliente_id)
->get();
$produtosConfraria = [];
if(count($ProdutosPedidos) > 0){
foreach($ProdutosPedidos as $produto){
$produtosConfraria[] = $produto->confraria_produto_id;
}
}
$produtosConfraria = (count($produtosConfraria) ? implode(",", $produtosConfraria) : 0);
$sql = "DELETE FROM confraria_produto_avaliacao WHERE confraria_produto_id IN ($produtosConfraria)";
Log::info($sql);
DB::statement($sql);
$sql = "DELETE FROM confraria_produto_curtida WHERE confraria_produto_id IN ($produtosConfraria)";
Log::info($sql);
DB::statement($sql);
$sql = "DELETE FROM confraria_produto_pedido WHERE confraria_produto_id IN ($produtosConfraria)";
Log::info($sql);
DB::statement($sql);
$sql = "DELETE FROM confraria_produto WHERE id IN ($produtosConfraria)";
Log::info($sql);
DB::statement($sql);
//Recalcula Adega Membro
GeralService::recalcularAdega($cliente_id, FALSE, $adegaAbertaMembro->id, FALSE);
return true;
}
public static function recalcularConfraria($confraria_id, $id_cliente = FALSE){
$PedidosConfraria = PedidoVendaHasProduto::selectRaw('CAST(COALESCE(SUM(pedido_venda_has_produto.quantidade), 0) AS UNSIGNED) qtde_garrafas, COALESCE(SUM(pedido_venda.subtotal),0) total_confraria, COALESCE(SUM(oferta.preco_mercado - oferta.preco_oferta),0) total_economizado')
->join('oferta', 'oferta.id', '=', 'pedido_venda_has_produto.id_oferta')
->join('pedido_venda', 'pedido_venda.id', '=', 'pedido_venda_has_produto.id_pedido_venda')
->where('frete', 0)
->where('pedido_venda.confraria_id', $confraria_id)
->whereIn('pedido_venda.id_status_pedido_venda', [2,7])
->first();
$sql = "UPDATE confraria SET qtde_garrafas = {$PedidosConfraria->qtde_garrafas}, total_confraria = {$PedidosConfraria->total_confraria}, total_economizado = {$PedidosConfraria->total_economizado} WHERE id = {$confraria_id}";
Log::info($sql);
DB::statement($sql);
if($id_cliente){
$PedidosMembro = PedidoVendaHasProduto::selectRaw('CAST(COALESCE(SUM(pedido_venda_has_produto.quantidade), 0) AS UNSIGNED) qtde_garrafas, COALESCE(SUM(pedido_venda.subtotal),0) total_confraria')
->join('oferta', 'oferta.id', '=', 'pedido_venda_has_produto.id_oferta')
->join('pedido_venda', 'pedido_venda.id', '=', 'pedido_venda_has_produto.id_pedido_venda')
->where('frete', 0)
->where('pedido_venda.confraria_id', $confraria_id)
->where('pedido_venda.id_cliente', $id_cliente)
->whereIn('pedido_venda.id_status_pedido_venda', [2,7])
->first();
$valor_adega_atual = 0;
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta(['confraria_id' => $confraria_id]);
if($adegaAberta){
$infoAdega = ConfrariaEntregaService::buscarInformacoesBasicasAdega($confraria_id, $adegaAberta->id, $id_cliente);
$valor_adega_atual = $infoAdega['valorTotal'];
if($valor_adega_atual > 0)
$valor_adega_atual = number_format($valor_adega_atual, 2, '.', '');
}
$sql = "UPDATE confraria_membro SET total_garrafas = {$PedidosMembro->qtde_garrafas}, contribuicao_total = {$PedidosMembro->total_confraria}, valor_adega_atual = {$valor_adega_atual} WHERE confraria_id = {$confraria_id} AND cadastro_id = {$id_cliente} AND confraria_membro.deleted = 0";
Log::info($sql);
DB::statement($sql);
$ConfrariaMembro = ConfrariaMembro::where('confraria_id', $confraria_id)->where('cadastro_id', $id_cliente)->where('confraria_membro.deleted', 0)->first();
if($ConfrariaMembro){
$PedidosMembro = PedidoVendaHasProduto::selectRaw('COALESCE(SUM(pedido_venda.subtotal),0) total_pedidos_site')
->join('oferta', 'oferta.id', '=', 'pedido_venda_has_produto.id_oferta')
->join('pedido_venda', 'pedido_venda.id', '=', 'pedido_venda_has_produto.id_pedido_venda')
->where('frete', 0)
->where('pedido_venda.id_cliente', $id_cliente)
->whereIn('pedido_venda.id_status_pedido_venda', [2,7])
->first();
$basicInfo = BasicInfo::find(1);
$sql = "UPDATE confraria_membro SET total_valor_pedidos = {$PedidosMembro->total_pedidos_site} WHERE confraria_id = {$confraria_id} AND cadastro_id = {$id_cliente}";
Log::info($sql);
DB::statement($sql);
if($ConfrariaMembro->elegivel_kit){
$PedidosMembrosConfraria = PedidoVendaHasProduto::selectRaw('COALESCE(SUM(pedido_venda.subtotal),0) total_valor_pedidos, pedido_venda.id_cliente')
->join('pedido_venda', 'pedido_venda.id', '=', 'pedido_venda_has_produto.id_pedido_venda')
->join('confraria_membro', 'confraria_membro.cadastro_id', '=', 'pedido_venda.id_cliente')
->where('frete', 0)
->where('confraria_membro.confraria_id', $confraria_id)
->where('confraria_membro.elegivel_kit', 1)
->whereIn('pedido_venda.id_status_pedido_venda', [2,7])
->where('confraria_membro.deleted', 0)
->groupBy('pedido_venda.id_cliente')
->havingRaw("total_valor_pedidos >= {$basicInfo->valor_minimo_meta_kit_confraria}");
Log::info($PedidosMembrosConfraria->toSql());
$PedidosMembrosConfraria = $PedidosMembrosConfraria->get();
$total_meta_kit = count($PedidosMembrosConfraria);
$total_meta_kit_valor = $total_meta_kit * $basicInfo->valor_minimo_meta_kit_confraria;
$sql = "UPDATE confraria SET total_meta_kit = {$total_meta_kit}, total_meta_kit_valor = {$total_meta_kit_valor} WHERE id = {$confraria_id}";
Log::info($sql);
DB::statement($sql);
$confraria = Confraria::where('id', $confraria_id)->first();
if(!$confraria->confrariaKit && $total_meta_kit >= $basicInfo->min_membros_confraria && $total_meta_kit_valor >= ($total_meta_kit * $basicInfo->valor_minimo_kit_confraria)){
DB::table('confraria_kit')->insert([
[
'confraria_id' => $confraria_id,
'oferta_id' => NULL,
'data' => date('Y-m-d H:i:s'),
'situacao' => 'P'
]
]);
}
}
}
}
}
public static function buscarPagamentosPorConfraria($idConfraria, $idPedido = false){
$pedidos = PedidoVenda::select('pedido_venda.*')
->where('confraria_id', $idConfraria);
if($idPedido)
$pedidos->where('id', $idPedido);
$pedidos->orderBy('data_fechamento', 'DESC')
->with('status', 'produtos')
->groupBy('pedido_venda.id');
return $pedidos->paginate(15);
}
public static function buscarAdegasConfraria($params){
$query = Adega::where('confraria_id', $params['confraria_id'])->orderBy('data_abertura', 'DESC')->with('pedidoEntrega');
if(isset($params['status'])){
$query->where('adega.status', $params['status']);
}
$adegas = $query->get();
return $adegas;
}
public static function buscarEntregasPorConfraria($idConfraria, $tipo = 'entregas'){
$query = PedidoEntrega::select('pedido_entrega.*', DB::raw('SUM(pvhp.quantidade) as quantidade_produtos'), DB::raw('SUM(pvhp.valor_total) as valor_total'), 'pvf.total as valor_frete')
->join('adega as a', 'pedido_entrega.id_adega', '=', 'a.id')
->join('adega_has_pedido_venda as ahpv', 'a.id', '=', 'ahpv.id_adega')
->join('pedido_venda as pv', 'pv.id', '=', 'ahpv.id_pedido_venda')
->join('pedido_venda_has_produto as pvhp', 'pvhp.id_pedido_venda', '=', 'pv.id')
->leftJoin('pedido_venda as pvf', 'pvf.id', '=', 'pedido_entrega.id_pedido_venda_frete')
->where('a.confraria_id', $idConfraria)
->where('pv.id_status_pedido_venda', 7);
if($tipo == 'resumo'){
$query->whereNotIn('pedido_entrega.id_pedido_entrega_status', [6,7]); //Entregue, Cancelado
}
$query->orderBy('data_solicitacao', 'DESC')->with('endereco', 'adega')->groupBy('pedido_entrega.id');
if($tipo == 'resumo'){
$entregas = $query->get();
}else{
$entregas = $query->paginate(15);
}
return $entregas;
}
/*
Pedidos da confraria [
oferta (oferta que é do tipo CF)
produtos
pedido_venda
cadastro
]
*/
public static function buscarPedidosMembrosConfraria($params){
$arrPedidosMembros = [];
$queryPedidosVendaConfraria = PedidoVenda::select('pedido_venda.id', 'pedido_venda.total', 'pedido_venda.id_cliente', 'pedido_venda.total', 'pedido_venda.data_fechamento', 'pedido_venda.subtotal', 'pedido_venda.qtd_garrafas', 'pedido_venda.valor_economizado', 'pedido_venda.comprovante', 'pedido_venda.tipo_deposito', 'pedido_venda.id_status_pedido_venda')
->where('confraria_id', $params['confraria_id']);
if(isset($params['id_adega'])){
$queryPedidosVendaConfraria->join('adega_has_pedido_venda', 'adega_has_pedido_venda.id_pedido_venda', '=', 'pedido_venda.id')->where('adega_has_pedido_venda.id_adega', $params['id_adega']);
}
$pedidosVendaConfraria = $queryPedidosVendaConfraria->with('produtos.produto.caracteristicas.produtoRegiao.pais', 'cliente')->get()->toArray();
foreach($pedidosVendaConfraria as $key => $pedidoVenda){
$arrayOfertas = [];
foreach($pedidoVenda['produtos'] as $produto){
if(!in_array($produto['id_oferta'], $arrayOfertas, true)){
array_push($arrayOfertas, $produto['id_oferta']);
}
}
$oferta_id = $arrayOfertas[0];
$oferta = Oferta::where('id', $oferta_id)->first();
$arrPedidosMembros[$key]['pedido_venda'] = $pedidoVenda;
$arrPedidosMembros[$key]['oferta'] = $oferta;
}
return $arrPedidosMembros;
}
// Busca todos os produtos que estão na adega do membro
public static function buscarOfertasAdegaMembroConfraria($idAdega){
$adegaProdutos = DB::table('adega_has_pedido_venda')
->select('oferta.*', 'pedido_venda_has_produto.quantidade as quantidadeProdutos')
->join('pedido_venda', 'pedido_venda.id', 'adega_has_pedido_venda.id_pedido_venda')
->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('oferta', 'oferta.id', 'pedido_venda_has_produto.id_oferta')
->where('adega_has_pedido_venda.id_adega', $idAdega)
->get();
return $adegaProdutos;
}
public static function buscarProdutosAdegaMembroConfraria($idAdega, $id_status_pedido_venda=FALSE){
$query = DB::table('adega_has_pedido_venda')
->select('produto.*', 'produto_caracteristica.safra', 'produto_caracteristica.regiao', 'produto_caracteristica.castas', 'produto_caracteristica.teor_alcoolico', 'pedido_venda_has_produto.quantidade as quantidadeProdutos', 'pais.nome as pais_nome', 'produto_regiao.nome as produto_regiao_nome')
->join('pedido_venda', 'pedido_venda.id', 'adega_has_pedido_venda.id_pedido_venda')
->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')
->leftJoin('pais', 'pais.id', 'produto.id_pais_origem')
->join('oferta', 'oferta.id', 'pedido_venda_has_produto.id_oferta')
->join('produto_caracteristica', 'produto_caracteristica.id_produto', 'produto.id')
->leftJoin('produto_regiao', 'produto_regiao.id', 'produto_caracteristica.produto_regiao_id')
->where('adega_has_pedido_venda.id_adega', $idAdega);
if($id_status_pedido_venda){
if(is_array($id_status_pedido_venda)){
$query->whereIn('pedido_venda.id_status_pedido_venda', $id_status_pedido_venda);
}else{
$query->where('pedido_venda.id_status_pedido_venda', $id_status_pedido_venda);
}
}
$adegaProdutos = $query->get();
return $adegaProdutos;
}
public static function buscarPedidoVenda($idAdega){
$pedidoVenda = Adega::select('pedido_venda.*')
->join('adega_has_pedido_venda', 'adega_has_pedido_venda.id_adega', 'adega.id')
->join('pedido_venda', 'pedido_venda.id', 'adega_has_pedido_venda.id_pedido_venda')
->where('adega.id', $idAdega)
->first();
return $pedidoVenda;
}
public static function buscarHistorico($confraria_id, $filtro = []){
$produtos = ConfrariaProduto::select('produto.nome as produto_nome', 'produto.thumbnail_principal as thumbnail_produto', 'cadastro.thumbnail_principal as thumbnail_membro', 'pais.nome as nome_pais', 'produto_regiao.nome as nome_regiao', 'produto.slug as slugProduto', 'oferta.*', 'pedido_venda.id as id_pedido_venda', 'cadastro.nome as nome_cadastro', 'pedido_venda.data_fechamento', 'produto_caracteristica.castas', 'produto_caracteristica.safra', 'produto_caracteristica.teor_alcoolico', 'produto_caracteristica.regiao', 'pedido_venda.total as valor_total_pedido', 'confraria_produto.id as confraria_produto_id')
->where('confraria_produto.confraria_id', $confraria_id);
if(isset($filtro['nome'])){
$produtos->where('produto.nome', 'like', '%'.$filtro['nome'].'%');
}
if(isset($filtro['cadastro_id'])){
$produtos->where('cadastro.id', $filtro['cadastro_id']);
}
$produtos->join('produto', 'produto.id', 'confraria_produto.produto_id')
->join('confraria_produto_pedido', 'confraria_produto_pedido.confraria_produto_id', 'confraria_produto.id')
->join('pedido_venda', 'pedido_venda.id', 'confraria_produto_pedido.pedido_venda_id')
->join('cadastro', 'cadastro.id', 'pedido_venda.id_cliente')
->join('produto_caracteristica', 'produto_caracteristica.id_produto', 'produto.id')
->join('pedido_venda_has_produto', function($produtos)
{
$produtos->on('pedido_venda_has_produto.id_produto', 'confraria_produto.produto_id')->on('pedido_venda_has_produto.id_pedido_venda', 'confraria_produto_pedido.pedido_venda_id');
})
->join('oferta_has_produto', function($produtos)
{
$produtos->on('oferta_has_produto.id_oferta', 'pedido_venda_has_produto.id_oferta')->on('oferta_has_produto.id_produto', 'pedido_venda_has_produto.id_produto');
})
->join('oferta', 'oferta.id', 'oferta_has_produto.id_oferta')
->leftJoin('produto_regiao', 'produto_regiao.id', 'produto_caracteristica.produto_regiao_id')
->leftJoin('pais', 'pais.id', 'produto_regiao.pais_id')
->whereIn('pedido_venda.id_status_pedido_venda', [2,7])
->groupBy('confraria_produto.id');
return $produtos->get();
}
public static function gerarUrlConvite($codigo){
return env('APP_ENV') == 'local' ? url('/confraria/convite/' . $codigo) : config('app.url_prod') . '/confraria/convite/' . $codigo;
}
public static function buscarConfrariaUsuarioLogado($cadastro_id = FALSE){
if($cadastro_id){
$cadastro = Cadastro::where('id', $cadastro_id)->first();
}else{
$cadastro = GeralService::buscarClienteLogado();
}
if(!$cadastro){
return false;
}
$confraria = Confraria::selectRaw("confraria.*, (SELECT COUNT(cf.id) FROM confraria_membro cf WHERE cf.confraria_id = confraria.id AND cf.deleted = 0) qtde_membros")
->join('confraria_membro', 'confraria_membro.confraria_id', 'confraria.id')
->where('confraria_membro.cadastro_id', $cadastro->id)
->where('confraria_membro.deleted', 0)
->where('confraria.deleted', 0)
->with('membros.cadastro')
->first();
return $confraria;
}
public static function buscarConvitesPendentes($confrariaId){
$confrariaConvite = ConfrariaConvite::where('confraria_id', $confrariaId)
->where('situacao', 'P')
->get();
return $confrariaConvite;
}
public static function enviarNotificacaoConvitesPendentes(){
$confrarias = Confraria::with(['convitesPendentes', 'cadastro'])->where('deleted', 0)->get();
$confrarias = $confrarias->filter(function ($item, $key) {
return count($item->convitesPendentes) > 0;
});
foreach($confrarias as $confraria)
self::notificarDonoConfraria($confraria->cadastro, $confraria, $confraria->convitesPendentes);
return true;
}
// Notifica o dono da confraria sobre os membros que não aceiteram o convite
public static function notificarDonoConfraria($cadastro, $confraria, $convitesPendentes){
// $email = $cadastro->email;
$data['convites'] = $confraria->convitesPendentes;
$data['confraria'] = $confraria;
$data['nome'] = $cadastro->nome;
$user = User::where('id', $cadastro->user_id)->first();
$email = $user->email;
\Mail::send('emails.confraria.notificacao_fundador', $data, function ($m) use ($data, $email){
$m->from('no-reply@vinumday.com.br', 'Vinum Day');
$m->to($email)->subject('Notificar membros da confraria');
});
}
// Notifica o membro da confraria que ele não aceitou o convite ainda
public static function notificarMembroConfraria($confrariaId){
$confraria = Confraria::where('id', $confrariaId)->with(['convitesPendentes', 'cadastro'])->first();
foreach($confraria->convitesPendentes as $convite){
$data['nomeFundador'] = $confraria->cadastro->nome;
$data['cadastro'] = $confraria->cadastro;
$data['confraria'] = $confraria;
$data['link'] = url('/confraria/convite/' . $confraria->codigo . '?email=' . $convite->email);
$userExistente = User::where('email', $convite->email)->first();
$data['nome'] = false;
if($userExistente){
$data['nome'] = DB::table('cadastro')->where('user_id', $userExistente->id)->value('nome');
}
$email = $convite->email;
\Mail::send('emails.confraria.notificacao_membro', $data, function ($m) use ($data, $email){
$m->from('no-reply@vinumday.com.br', 'Vinum Day');
$m->to($email)->subject('Convite para participar da confraria');
});
}
return true;
}
}