private static function subtraiEstoque($pedido) { $itens = PedidoItens::find('pedido_id =' . $pedido); $base = new BaseHelper(); foreach ($itens as $key => $value) { $item = PedidoItens::findFisrt('id =' . $value->id); $produto = Produtos::findById($value->produto_id); if ($value->detalhe_id != '') { $chave = $base->arrayMultiSearch($produto['detalhes'], 'detalhe_id', $value->detalhe_id); $produto['detalhes'][$chave]['estoque'] = $produto['detalhes'][$chave]['estoque'] - $value->quantidade; $produto->save(); } else { $produto->estoque = $produto->estoque - $value->quantidade; $produto->save(); } } }
private static function setDados($post) { $base = new BaseHelper(); $pedido = Pedidos::findFirst("id = " . $post['pedido_id'] . ""); $endereco = Enderecos::findFirst("relacao = 'pedidos' and id_relacao = " . $post['pedido_id']); $usuario = Usuarios::findFirst('id = ' . $pedido->usuario_id); $cliente = Clientes::findFirst('usuario_id =' . $pedido->usuario_id); $fone = explode(')', $cliente->telefone); $dados['email'] = self::$email; $dados['token'] = self::$token; $dados['paymentMode'] = 'default'; $dados['receiverEmail'] = self::$email; $dados['currency'] = self::$currency; $dados['reference'] = $post['pedido_id']; $dados['notificationURL'] = $base->url_base . 'checkout/notificacao/pagseguro'; //Itens $itens = PedidoItens::find("pedido_id = " . $post['pedido_id']); foreach ($itens as $key => $value) { $indice = $key + 1; $dados["itemId{$indice}"] = $value->produto_id; $dados["itemDescription{$indice}"] = Produtos::findById($value->produto_id)->nome; if ($post['paymentMethod'] == 'ONLINE_DEBIT' || $post['paymentMethod'] == 'BOLETO') { $dados["itemAmount{$indice}"] = $base->setDesconto($value->valor, 10); } else { $dados["itemAmount{$indice}"] = $value->valor; } $dados["itemQuantity{$indice}"] = $value->quantidade; } // Informações do pagamento if ($post['creditCardToken'] != '') { $dados['paymentMethod'] = 'creditCard'; $dados['creditCardToken'] = $post['creditCardToken']; $dados['installmentQuantity'] = $post['parcelas']; $dados['installmentValue'] = number_format($post['installmentValue'], 2, '.', ''); $dados['creditCardHolderName'] = $post['nome_titular']; $dados['creditCardHolderBirthDate'] = $post['data_nascimento']; $dados['creditCardHolderCPF'] = $base->limpaString($post['cpf']); $dados['creditCardHolderAreaCode'] = str_replace('(', '', $fone[0]); $dados['creditCardHolderPhone'] = str_replace('-', '', $fone[1]); $dados['billingAddressPostalCode'] = str_replace('-', '', $endereco->cep); $dados['billingAddressStreet'] = $endereco->logradouro; $dados['billingAddressNumber'] = $endereco->numero; $dados['billingAddressComplement'] = $endereco->complemento; $dados['billingAddressDistrict'] = $endereco->bairro; $dados['billingAddressCity'] = $endereco->Cidade->nome; $dados['billingAddressState'] = $endereco->Estado->sigla; $dados['billingAddressCountry'] = 'BRA'; } else { if ($post['paymentMethod'] == 'ONLINE_DEBIT') { $dados['paymentMethod'] = 'eft'; $dados['bankName'] = $post['bankName'] == 'BANCO_BRASIL' ? 'bancodobrasil' : strtolower($post['bankName']); } else { $dados['paymentMethod'] = 'boleto'; } } //Hash $dados['senderHash'] = $post['hash']; //Dados do Comprador $dados['extraAmount'] = $pedido->frete; $dados['senderEmail'] = self::$producao ? $usuario->email : '*****@*****.**'; $dados['senderName'] = $usuario->nome; if ($cliente->pessoa_juridica) { $dados['senderCNPJ'] = $cliente->documento; } else { $dados['senderCPF'] = $cliente->documento; } $dados['senderAreaCode'] = str_replace('(', '', $fone[0]); $dados['senderPhone'] = str_replace('-', '', $fone[1]); // Dados de endereco $dados['shippingAddressStreet'] = $endereco->logradouro; $dados['shippingAddressNumber'] = $endereco->numero; $dados['shippingAddressComplement'] = $endereco->complemento; $dados['shippingAddressDistrict'] = $endereco->bairro; $dados['shippingAddressPostalCode'] = str_replace('-', '', $endereco->cep); $dados['shippingAddressCity'] = $endereco->Cidade->nome; $dados['shippingAddressState'] = $endereco->Estado->sigla; $dados['shippingAddressCountry'] = 'BRA'; return $dados; }