| 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/Http/Controllers/Website/ |
Upload File : |
<?php
namespace App\Http\Controllers\Website;
use DB;
use Sentinel;
use App\BasicInfo;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Services\CartService;
use App\Services\GeralService;
use App\Modules\Pais\Models\Pais;
use Illuminate\Support\Facades\Log;
use App\Modules\Cidade\Models\Cidade;
use App\Modules\Estado\Models\Estado;
use App\Services\PedidoEntregaService;
use App\Http\Controllers\BaseController;
use App\Modules\Confraria\Models\Confraria;
use App\Modules\PedidoVenda\Models\PedidoVenda;
use App\Modules\BannerFooter\Models\BannerFooter;
use App\Modules\PedidoEntrega\Models\PedidoEntrega;
use App\Modules\Confraria\Services\ConfrariaService;
use App\Modules\CadastroCartao\Models\CadastroCartao;
use App\Modules\ConfrariaMembro\Models\ConfrariaMembro;
use App\Modules\CadastroEndereco\Models\CadastroEndereco;
use App\Modules\ConfrariaConvite\Models\ConfrariaConvite;
use App\Modules\Confraria\Services\ConfrariaEntregaService;
use App\Modules\PedidoEntregaStatus\Models\PedidoEntregaStatus;
use App\Modules\PedidoEntregaHasStatus\Models\PedidoEntregaHasStatus;
class ConfrariaEntregaController extends BaseController
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
public function confrariaEntregaHome(Request $request)
{
$data = [];
$clienteLogado = GeralService::buscarClienteLogado();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$clienteLogado || !$confraria){
return redirect('/confraria');
}
$data['confraria'] = $confraria;
$data['pedidosEntrega'] = PedidoEntrega::where('confraria_id', $data['confraria']->id)
->with('status', 'adega')
->get();
foreach($data['pedidosEntrega'] as $key => $pedidoEntrega){
$ofertasAdega = ConfrariaService::buscarOfertasAdegaMembroConfraria($pedidoEntrega->id_adega);
$valorTotalEconomizado = 0;
$quantidade_garrafas = 0;
foreach($ofertasAdega as $ofertaAdega){
$valorTotalEconomizado += ($ofertaAdega->preco_mercado - $ofertaAdega->preco_oferta) * $ofertaAdega->quantidadeProdutos;
$quantidade_garrafas += $ofertaAdega->quantidadeProdutos;
}
$pedidoEntregaStatus = PedidoEntregaStatus::where('id', $pedidoEntrega->id_pedido_entrega_status)->first();
$data['pedidosEntrega'][$key]['frase_observacao'] = PedidoEntregaService::getFraseObservacao($pedidoEntrega, $pedidoEntregaStatus);
$data['pedidosEntrega'][$key]['qtd_garrafas'] = $quantidade_garrafas;
$data['pedidosEntrega'][$key]['valorEconomizado'] = $valorTotalEconomizado;
$data['pedidosEntrega'][$key]['pedido_venda'] = ConfrariaService::buscarPedidoVenda($pedidoEntrega->id_adega);
}
if(count($data['pedidosEntrega']) > 0){
$data['ultimoPedido'] = $data['pedidosEntrega'][0];
}
return view('confraria/entrega/home-entrega', $data);
}
public function confrariaEntregaDetalhe($id, Request $request)
{
$data = [];
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
$data['pedidoEntrega'] = PedidoEntrega::where('id', $id)
->with('endereco.cidade', 'endereco.estado', 'status', 'transportadora')
->first();
$pedidoEntregaStatus = PedidoEntregaStatus::where('id', $data['pedidoEntrega']->id_pedido_entrega_status)->first();
$data['frase_observacao'] = PedidoEntregaService::getFraseObservacao($data['pedidoEntrega'], $pedidoEntregaStatus);
$ofertasAdega = ConfrariaService::buscarOfertasAdegaMembroConfraria($data['pedidoEntrega']->id_adega);
$valorTotalEconomizado = 0;
$quantidade_garrafas = 0;
foreach($ofertasAdega as $key => $ofertaAdega){
$valorTotalEconomizado += ($ofertaAdega->preco_mercado - $ofertaAdega->preco_oferta) * $ofertaAdega->quantidadeProdutos;
$quantidade_garrafas += $ofertaAdega->quantidadeProdutos;
}
$data['pedidoEntrega']['totalEconomizado'] = $valorTotalEconomizado;
$data['pedidoEntrega']['qtd_garrafas'] = $quantidade_garrafas;
$data['pedidoEntrega']['produtos'] = ConfrariaService::buscarProdutosAdegaMembroConfraria($data['pedidoEntrega']->id_adega);
$data['pedidoEntrega']['pedido_venda'] = ConfrariaService::buscarPedidoVenda($data['pedidoEntrega']->id_adega);
$data['pedidoEntrega']['historico'] = DB::table('pedido_entrega_has_status')
->where('id_pedido_entrega', $data['pedidoEntrega']->id)
->get();
$data['pedidoEntrega']['historico'] = PedidoEntregaHasStatus::where('id_pedido_entrega', $data['pedidoEntrega']->id)->orderBy('data', 'ASC')->with('status')->get();
return view('confraria/entrega/detalhe-entrega', $data);
}
public function confrariaEntregaSolicitar(Request $request)
{
$data = [];
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
$confraria = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$adegaAberta){
return redirect('/confraria/adega');
}
$data['confraria'] = $confraria;
$data['informacoesBasicasAdega'] = ConfrariaEntregaService::buscarInformacoesBasicasAdegaAberta($confraria->id);
$data['cadastro'] = GeralService::buscarClienteLogado();
if($data['cadastro'] && $adegaAberta){
GeralService::recalcularAdega($data['cadastro']->id, FALSE, $adegaAberta->id, $adegaAberta->confraria_id);
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
}
$params = [
'id_cadastro_endereco' => $adegaAberta && !empty($adegaAberta->cadastro_endereco_id) ? $adegaAberta->cadastro_endereco_id : false,
'id_cliente' => $data['cadastro'] ? $data['cadastro']->id : null,
'adega' => $adegaAberta
];
$data['endereco'] = GeralService::buscarEnderecosCliente($params);
if($adegaAberta && $data['endereco'] && empty($adegaAberta->cadastro_endereco_id)){
$sql = "UPDATE adega SET cadastro_endereco_id = {$data['endereco']->id} WHERE id = {$adegaAberta->id}";
DB::update($sql);
}
$data['produtos'] = [];
if($adegaAberta){
$data['produtos'] = ConfrariaService::buscarProdutosAdegaMembroConfraria($adegaAberta->id, 2);
}
return view('confraria/entrega/solicitar-entrega', $data);
}
public function confrariaEntregaConfirmar(Request $request)
{
$post = $request->input();
$user = Sentinel::getUser();
$cadastro = GeralService::buscarClienteLogado();
if($cadastro->bloqueio_cliente){
return response()->json(array(
'status' => false,
'message' => 'Infelizmente não foi possível concluir a sua solicitação. Em caso de dúvidas favor entrar em contato <a href="'.url('/contato').'" style="color: blue">clicando aqui</a>.'
));
}
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
if(!$adegaAberta){
return response()->json(array(
'status' => false,
'message' => 'Sua adega virtual está vazia.'
));
}
//Valida Disponibilidade Produtos x Adega
$meusVinhos = ConfrariaEntregaService::buscarMeusVinhos(['somar' => true]);
$data_fechamento = date('Y-m-d', strtotime("-15 days",strtotime(date('Y-m-d'))));
$disponibilidadeEntrega = TRUE;
if(count($meusVinhos['produtos']) > 0){
foreach ($meusVinhos['produtos'] as $oferta):
//Se Data PedidoVenda for > 15 últimos dias segue adiante
if($oferta->data_pedido_venda > $data_fechamento):
continue;
endif;
foreach ($oferta->produtos as $item):
if($item->produto->disponibilidade < 0):
$disponibilidadeEntrega = FALSE;
endif;
endforeach;
endforeach;
}
$pedidoEntrega = new PedidoEntrega();
$pedidoEntrega->unidade_negocio_id = GeralService::checkUnidadeNegocio($pedidoEntrega, 'pedido-entrega', $adegaAberta->id);
$pedidoEntrega->confraria_id = $adegaAberta->confraria_id;
$pedidoEntrega->id_adega = $adegaAberta->id;
$pedidoEntrega->data_solicitacao = date('Y-m-d H:i:s');
if(!empty($adegaAberta->cliente->empresa_id)){
$pedidoEntrega->empresa_id = $adegaAberta->cliente->empresa_id;
}
if(!isset($adegaAberta->endereco) || (isset($adegaAberta->endereco) && !$adegaAberta->endereco)){
return response()->json(array(
'status' => false,
'message' => 'Endereço não informado!'
));
}
$cadastroEndereco = $adegaAberta->endereco;
if(isset($cadastroEndereco) && $cadastroEndereco){
$pedidoEntrega->id_cadastro_endereco = $cadastroEndereco->id;
}else{
return response()->json(array(
'status' => false,
'message' => 'Endereço inválido!'
));
}
$pedidoEntrega->disponibilidade = ($disponibilidadeEntrega ? 1 : 0);
$pedidoEntrega->observacoes = isset($post['observacoes']) ? $post['observacoes'] : '';
if(isset($post['tipo_deposito']) && $post['tipo_deposito']){
if($post['tipo_deposito'] != 'PIX' && $post['tipo_deposito'] != 'CASH' && (!isset($post['nome_depositante']) || !$post['nome_depositante'])){
return response()->json(array(
'status' => false,
'message' => 'Você deve preencher o nome do depositante.'
));
}
$pedidoVenda = new PedidoVenda();
$pedidoVenda->unidade_negocio_id = $pedidoEntrega->unidade_negocio_id;
// $pedidoVenda->confraria_id = $pedidoEntrega->confraria_id;
if($request->hasFile('fileUpload')) {
$file = $request->file('fileUpload');
$size = $file->getClientSize();
if($size > 5000000){
return response()->json(array(
'status' => false,
'message' => 'Tamanho excedido. O tamanho máximo do arquivo deve ser de 5 MB.'
));
}
$comprovante = GeralService::uploadFile($file, 'pedido-venda/comprovante');
$pedidoVenda->comprovante = $comprovante->filename;
}
$pedidoVenda->subtotal = $post['valor_frete'];
$pedidoVenda->total = $post['valor_frete'];
$pedidoVenda->data_fechamento = date('Y-m-d H:i:s');
$pedidoVenda->nm_referencia = 'Intenção de pagamento de frete realizada por '.$cadastro->nome.' '.$cadastro->sobrenome;
$pedidoVenda->assunto = 'Pagamento de frete realizado através da plataforma.';
$pedidoVenda->id_condicao_comercial = 1; // 1x
$pedidoVenda->id_cliente = $cadastro->id;
$pedidoVenda->tipo_deposito = $post['tipo_deposito'];
$pedidoVenda->nome_depositante = (isset($post['nome_depositante']) ? $post['nome_depositante'] : '');
$pedidoVenda->id_status_pedido_venda = 1; // Pendente
$pedidoVenda->frete = 1; // Frete
$pedidoVenda->save();
}else{
if($post['valor_frete'] > 0){
if(env('APP_ENV') != 'production'){
return response()->json(array(
'status' => false,
'message' => 'Pagamento Cartão desabilitado para este ambiente! (Homologação)'
));
}
$pagarMe = new \PagarMe\Sdk\PagarMe($this->apiKey);
$customer = null;
if($cadastro->customer_id){
$customer = GeralService::buscarCustomerPagarme($cadastro);
}
if(!$customer){
if(!$cadastroEndereco){
return response()->json(array(
'status' => false,
'message' => 'Você não possui um endereço principal definido. Defina um na página de seu perfil antes de finalizar a compra.'
));
}
$cidade = Cidade::find($cadastroEndereco->cidade_id);
if(!$cidade){
return response()->json(array(
'status' => false,
'message' => 'Cidade do seu endereço não é válida. Por favor, verifique se se endereço principal está cadastro corretamente.'
));
}
$estado = Estado::find($cadastroEndereco->estado_id);
if(!$estado){
return response()->json(array(
'status' => false,
'message' => 'Estado do seu endereço não é válido. Por favor, verifique se se endereço principal está cadastro corretamente.'
));
}
$pais = Pais::find($cadastroEndereco->pais_id);
if(!$pais){
return response()->json(array(
'status' => false,
'message' => 'País do seu endereço não é válido. Por favor, verifique se se endereço principal está cadastro corretamente.'
));
}
try {
$address = new \PagarMe\Sdk\Customer\Address([
'street' => $cadastroEndereco->logradouro,
'streetNumber' => $cadastroEndereco->numero,
'neighborhood' => $cadastroEndereco->bairro,
'zipcode' => str_replace(['-', '.'],'',$cadastroEndereco->cep),
'complementary' => $cadastroEndereco->complemento,
'city' => $cidade->nome,
'state' => $estado->nome,
'country' => $pais->nome,
]);
} catch (\Exception $e) {
return response()->json(array(
'status' => false,
'message' => 'Não foi possível cadastrar seu endereço na plataforma de pagamento. Por favor, tente novamente mais tarde.'
));
}
try {
$telefone = (int) $res = preg_replace("/[^0-9]/", "", $cadastro->telefone);
$phone = new \PagarMe\Sdk\Customer\Phone(['ddd' => substr($telefone,0,2), 'number' => substr($telefone,2), 'ddi' => '55']);
} catch (\Exception $e) {
return response()->json(array(
'status' => false,
'message' => 'Não foi possível cadastrar seu telefone na plataforma de pagamento. Por favor, verifique se seu perfil está preenchido devidamente.'
));
}
$errors = [
'address[street_number]' => 'Número <strong>inválido</strong>.',
'address[street]' => 'Logradouro <strong>inválido</strong>.',
'address[neighborhood]' => 'Bairro <strong>inválido</strong>.',
'address[zipcode]' => 'CEP <strong>inválido</strong>.',
'phone[number]' => 'Telefone <strong>inválido</strong>. Por favor, ajuste seu cadastro ná pagina de seu perfil.',
'phone[ddd]' => 'O seu DDD é inválido. Por favor verifique se o seu <b>Telefone</b> está preenchido corretamente no seu perfil.',
];
try {
$customer = $pagarMe->customer()->create(
$cadastro->nome,
$user->email,
$cadastro->cpf,
/** @var $address \PagarMe\Sdk\Customer\Address */
$address,
/** @var $phone \PagarMe\Sdk\Customer\Phone */
$phone
);
} catch (\Exception $e) {
$exceptionErrors = json_decode(json_decode($e->getMessage()));
if ($exceptionErrors != null){
$message = (isset($errors[$exceptionErrors->errors[0]->parameter_name])) ? $errors[$exceptionErrors->errors[0]->parameter_name] : $exceptionErrors->errors[0]->message;
} else {
$message = $e->getMessage();
}
return response()->json(array(
'status' => false,
'message' => $message
));
}
$cadastro->customer_id = $customer->getId();
$cadastro->save();
}
if(isset($post['cartao_id']) && $post['cartao_id']){ // Se está usando um cartão já cadastrado
$cartao = CadastroCartao::where('cadastro_id', $cadastro->id)->where('id', $post['cartao_id'])->where('ativo', 1)->first();
if(!$cartao){
return response()->json(array(
'status' => false,
'message' => 'Cartão selecionado é inválido.'
));
}
$card = $pagarMe->card()->get($cartao->cartao_id);
}else{
$tentativasCartao = CadastroCartao::where('cadastro_id', $cadastro->id)->where('empresa_id', $cadastro->empresa_id)->whereDate('data_cadastro', date('Y-m-d'))->where('ativo', 0)->count();
$cartoesCliente = CadastroCartao::where('cadastro_id', $cadastro->id)->where('empresa_id', $cadastro->empresa_id)->where('ativo', 1)->count();
if($tentativasCartao >= 3){
return response()->json(array(
'status' => false,
'message' => 'Tentativas Excedidas. Entre em contato com nossa equipe de suporte.'
));
}elseif($cartoesCliente >= 3){
return response()->json(array(
'status' => false,
'message' => 'Por razões de segurança são permitidos apenas 3 (três) cartões cadastrados.'
));
}elseif($tentativasCartao >= 2 && (!isset($post['g-recaptcha-response']) || (isset($post['g-recaptcha-response']) && empty($post['g-recaptcha-response'])))){
return response()->json(array(
'status' => false,
'message' => 'ReCaptcha inválido'
));
}
$cadastroCartao = new CadastroCartao();
$cadastroCartao->cadastro_id = $cadastro->id;
$cadastroCartao->empresa_id = $cadastro->empresa_id;
$cadastroCartao->data_cadastro = date('Y-m-d H:i:s');
$cadastroCartao->principal = 0;
try {
$card = $pagarMe->card()->create(
$post['number'],
$post['name'],
substr($post['expiry'],0,2).substr($post['expiry'],5,2)
);
if($card->getValid()){
if(isset($post['salvar_cartao']) && $post['salvar_cartao']){
$cadastroCartao->cartao_id = $card->getId();
if(count($cadastro->cartoes) == 0){
$cadastroCartao->principal = 1;
}
$cadastroCartao->save();
}
}else{
$cadastroCartao->retorno = 'Cartão Inválido';
$cadastroCartao->ativo = 0;
$cadastroCartao->save();
return response()->json(array(
'status' => false,
'tentativasCartao' => ($tentativasCartao+1),
'message' => 'Dados do cartão são <strong>inválidos</strong>. Tente novamente.'
));
}
} catch (\Exception $e) {
$errors = json_decode(json_decode($e->getMessage()));
$cadastroCartao->retorno = isset($errors->errors) ? json_encode($errors->errors[0]->message) : 'Erro cartão checkout';
$cadastroCartao->ativo = 0;
$cadastroCartao->save();
return response()->json(array(
'status' => false,
'tentativasCartao' => ($tentativasCartao+1),
'message' => 'Dados do cartão são <strong>inválidos</strong>. Tente novamente.',
));
}
}
$totalTransaction = $post['valor_frete'] * 100;
$totalTransaction = number_format($totalTransaction, 0, '','');
$transaction = $pagarMe->transaction()->creditCardTransaction(
$totalTransaction,
$card,
$customer,
1, // parcelas
true // captura
//'http://requestb.in/pkt7pgpk', // postbackURL
//['idProduto' => 13933139] //metadata
);
$pedidoVenda = new PedidoVenda();
$pedidoVenda->unidade_negocio_id = $pedidoEntrega->unidade_negocio_id;
// $pedidoVenda->confraria_id = $pedidoEntrega->confraria_id;
$pedidoVenda->subtotal = $post['valor_frete'];
$pedidoVenda->total = $post['valor_frete'];
$pedidoVenda->data_fechamento = date('Y-m-d H:i:s');
$pedidoVenda->nm_referencia = 'Pagamento de frete realizado por '.$cadastro->nome.' '.$cadastro->sobrenome;
$pedidoVenda->assunto = 'Pagamento de frete realizado através da plataforma.';
$pedidoVenda->transacao_id = $transaction->getId();
$pedidoVenda->id_condicao_comercial = 1;
$pedidoVenda->id_cliente = $cadastro->id;
$pedidoVenda->id_status_pedido_venda = 2; // Aprovado
$pedidoVenda->frete = 1; // Frete
$pedidoVenda->save();
}
}
/* Atualiza id_pedido_venda_frete do pedido de entrega */
if(isset($pedidoVenda)){
$pedidoEntrega->id_pedido_venda_frete = @$pedidoVenda->id;
}
$pedidoEntrega->save();
// envia e-mail
if(!$disponibilidadeEntrega):
$envioMensagem = GeralService::enviarMensagem($cadastro, $pedidoEntrega);
endif;
return response()->json(array(
'status' => true,
'message' => 'Entrega solicitada com sucesso',
'id' => $pedidoEntrega->id
));
}
public function confrariaEntregaConfirmarPagamento(Request $request)
{
$data = [];
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
$data['cadastro'] = GeralService::buscarClienteLogado();
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
if($data['cadastro'] && $adegaAberta){
GeralService::recalcularAdega($data['cadastro']->id, FALSE, $adegaAberta->id, $adegaAberta->confraria_id);
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
}
$params = [
'id_cadastro_endereco' => $adegaAberta && !empty($adegaAberta->cadastro_endereco_id) ? $adegaAberta->cadastro_endereco_id : false,
'id_cliente' => $data['cadastro'] ? $data['cadastro']->id : null,
'adega' => $adegaAberta
];
$data['endereco'] = GeralService::buscarEnderecosCliente($params);
$data['informacoesBasicasAdega'] = ConfrariaEntregaService::buscarInformacoesBasicasAdega($adegaAberta->confraria_id, $adegaAberta->id);
return view('confraria/entrega/confirmar-pagamento-entrega', $data);
}
public function confrariaEntregaSolicitada($id)
{
$data = [];
$data['cadastro'] = GeralService::buscarClienteLogado();
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
$data['pedidoEntrega'] = PedidoEntrega::where('id', $id)->with('endereco.cidade', 'endereco.estado', 'status', 'transportadora')->first();
$data['informacoesBasicasAdega'] = ConfrariaEntregaService::buscarInformacoesBasicasAdega($data['pedidoEntrega']->confraria_id, $data['pedidoEntrega']->id_adega);
return view('confraria/entrega/entrega-solicitada', $data);
}
public function confrariaEntregaEndereco(Request $request)
{
$data = [];
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
$data['cadastro'] = GeralService::buscarClienteLogado();
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
if(!$adegaAberta){
return redirect('/confraria/home');
}
//Endereço Atual Adega ou Principal Cliente
$params = [
'id_cadastro_endereco' => $adegaAberta && !empty($adegaAberta->cadastro_endereco_id) ? $adegaAberta->cadastro_endereco_id : false,
'id_cliente' => $data['cadastro'] ? $data['cadastro']->id : null,
'adega' => $adegaAberta
];
$data['endereco'] = GeralService::buscarEnderecosCliente($params);
$params = [
'id_cliente' => $data['cadastro'] ? $data['cadastro']->id : null,
'adega' => $adegaAberta
];
$data['enderecos'] = GeralService::buscarEnderecosCliente($params);
$data['informacoesBasicasAdega'] = ConfrariaEntregaService::buscarInformacoesBasicasAdega($adegaAberta->confraria_id, $adegaAberta->id);
$data['adega'] = $adegaAberta;
return view('confraria/entrega/endereco-entrega', $data);
}
public function confrariaEntregaEnderecoNovo(Request $request)
{
$data = [];
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
$data['cadastro'] = GeralService::buscarClienteLogado();
$data['confraria'] = ConfrariaService::buscarConfrariaUsuarioLogado();
//Endereço Atual Adega ou Principal Cliente
$params = [
'id_cadastro_endereco' => $adegaAberta && !empty($adegaAberta->cadastro_endereco_id) ? $adegaAberta->cadastro_endereco_id : false,
'id_cliente' => $data['cadastro'] ? $data['cadastro']->id : null,
'adega' => $adegaAberta
];
$data['endereco'] = GeralService::buscarEnderecosCliente($params);
$data['informacoesBasicasAdega'] = ConfrariaEntregaService::buscarInformacoesBasicasAdega($adegaAberta->confraria_id, $adegaAberta->id);
$data['adega'] = $adegaAberta;
return view('confraria/entrega/endereco-entrega-novo', $data);
}
public function confrariaEntregaEnderecoSalvar(Request $request)
{
$post = $request->input();
$cadastro = GeralService::buscarClienteLogado();
$contadorEnderecos = CadastroEndereco::where('cadastro_id', $cadastro->id)->count();
$cadastroEndereco = new CadastroEndereco();
$cadastroEndereco->fill($post);
$cadastroEndereco->cadastro_id = $cadastro->id;
if ($contadorEnderecos == 0) {
$cadastroEndereco->principal = 1;
}
$cadastroEndereco->save();
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
$sql = "UPDATE adega SET cadastro_endereco_id = {$cadastroEndereco->id} WHERE id = {$adegaAberta->id}";
DB::update($sql);
return response()->json(array(
'status' => true,
'message' => 'Endereço adicionado com sucesso!'
));
}
public function confrariaEntregaEnderecoAdegaSalvar(Request $request)
{
$post = $request->input();
$adegaAberta = ConfrariaEntregaService::buscarAdegaAberta();
$sql = "UPDATE adega SET cadastro_endereco_id = {$post['cadastro_endereco_id']} WHERE id = {$adegaAberta->id}";
DB::update($sql);
return response()->json(array(
'status' => true,
'message' => 'Endereço alterado com sucesso!'
));
}
}