public function toUpdateStatusAction(Request $request) { if ($this->get('security.context')->isGranted('ROLE_VIEWPRODUCTO')) { $id = $request->request->get('id'); $em = $this->getDoctrine()->getManager(); $statusId = $request->get("status"); $comentarios = $request->get("comentarios"); $em = $this->getDoctrine()->getManager(); $pedido = $em->getRepository('BackendCustomerAdminBundle:Pedido')->find($id); $status = $em->getRepository('BackendCustomerAdminBundle:Status')->find($statusId); $proceso = new Proceso(); $proceso->setPedido($pedido); $proceso->setStatus($status); if ($comentarios) { $proceso->setComentarios($comentarios); } $em->persist($proceso); $pedido->addProceso($proceso); $em->persist($pedido); $em->flush(); $cliente = $pedido->getCustomer(); $sucursal = $pedido->getSucursal(); $this->sendStatusPedidosEmails($cliente, $sucursal, $status, $comentarios); $data['ok'] = true; $data['status'] = $status->getName(); } $response = new Response(json_encode($data)); $response->headers->set('Content-Type', 'application/json'); return $response; }
public function realizarPedidoAction(Request $request) { $resultado = array("status" => 1, "message" => 'No llega'); $em = $this->getDoctrine()->getManager(); $session = $this->getRequest()->getSession(); if ($session->get("login")) { try { $sucursalId = $request->get("sucursal"); $direccionId = $request->get("direccionid"); $sucursal = $em->getRepository('BackendCustomerAdminBundle:Sucursal')->find($sucursalId); $direccion = $em->getRepository('BackendCustomerAdminBundle:Direccion')->find($direccionId); $customer = $em->getRepository('BackendCustomerBundle:Customer')->find($session->get("customer")->getId()); $paymethod = $em->getRepository('BackendAdminBundle:PayMethod')->findOneByName("Efectivo"); $pedido = new Pedido(); $pedido->setCustomer($customer); $pedido->setSucursal($sucursal); $pedido->setPagado(false); // Nunca va a ir como pagado por ahora $pedido->setDireccion($direccion); $pedido->setTotal($request->get("total")); $pedido->setComentarios($request->get("comentario")); $pedido->setPaymethod($paymethod); $em->persist($pedido); $em->flush(); //le pongo al pedido como pendiente ni bien lo creo $status = $em->getRepository('BackendCustomerAdminBundle:Status')->findOneByName("Pendiente"); $proceso = new Proceso(); $proceso->setPedido($pedido); $proceso->setStatus($status); $proceso->setComentarios("Pedido creado"); $em->persist($proceso); $em->flush(); if ($request->get("productos")) { $productos = $request->get("productos"); foreach ($productos as $p) { $detalle = new Detalle(); $producto = $em->getRepository('BackendCustomerAdminBundle:Producto')->find($p["id"]); $detalle->setProducto($producto); $detalle->setPedido($pedido); $detalle->setCantidad($p["quantity"]); $detalle->setPrecio($p["price"]); $detalle->setVariedades($p["variedad"]); $em->persist($detalle); $em->flush(); } } $resultado["status"] = 0; $resultado["message"] = "pedido creado"; $this->sendPedidosEmails($customer, $sucursal); // pasaba customer y sucursal } catch (Exception $e) { $resultado["status"] = 1; $resultado["message"] = "no pudo crearse el pedido"; } } $response = new Response(json_encode($resultado)); $response->headers->set('Content-Type', 'application/json'); return $response; }