// id da pessoa parseRequest($request); // converter arrays JSON para arrays PHP switch ($function) { case 'ReporProduto': $produto = Produto::find($id); $pedido = array("tpPedido" => "C", "dtPedido" => date('Y-m-d', time()), "dsPedido" => "Reposição de produto", "dsEndereco" => "", "vlDesconto" => 0, "idPessoa" => $produto->getPessoa() != null ? $produto->getPessoa()->getIdPessoa() : null, "itens" => array(array("nrItem" => 1, "qtItem" => $produto->getQtMinimo() * 2, "cdUnidadeItem" => $produto->getCdUnidade(), "vlUnitario" => $produto->getVlUnitario('compra', $produto->getCdUnidade()), "vlDescontoItem" => 0, "idProduto" => $produto->getIdProduto()))); $pedido = Pedido::persistPedido($pedido); echo json_encode(true); break; case 'ReporEstoque': $produtos = Produto::findAll(); // agrupar produtos em falta por fornecedor foreach ($produtos as $produto) { if ($produto->getStEstoque() == 'FT') { $agrupamentos[$produto->getPessoa() == null ? 0 : $produto->getPessoa()->getIdPessoa()][] = array("nrItem" => 1, "qtItem" => $produto->getQtMinimo() * 2, "cdUnidadeItem" => $produto->getCdUnidade(), "vlUnitario" => $produto->getVlUnitario('compra', $produto->getCdUnidade()), "vlDescontoItem" => 0, "idProduto" => $produto->getIdProduto()); } } // gerar um pedido para cada agrupamento foreach ($agrupamentos as $idFornecedor => $agrupamento) { Pedido::persistPedido(array("tpPedido" => "C", "dtPedido" => date('Y-m-d', time()), "dsPedido" => "Reposição de estoque", "dsEndereco" => "", "vlDesconto" => 0, "idPessoa" => $idFornecedor == 0 ? null : $idFornecedor, "itens" => $agrupamento)); } echo json_encode(true); break; default: break; // default } } catch (Exception $e) { echo json_encode(array('exception' => $e->getMessage(), 'trace' => $e->getTraceAsString())); }