Esempio n. 1
0
 /**
  * @param Request $request
  * @param Client  $client
  *
  * @return \Symfony\Component\HttpFoundation\JsonResponse
  */
 public function addAction(Request $request, Client $client)
 {
     $form = $this->createForm(new CreditType(), null, array('action' => $this->generateUrl('_clients_add_credit', array('id' => $client->getId()))));
     $form->handleRequest($request);
     if ($form->isValid()) {
         /** @var CreditRepository $clientRepository */
         $clientRepository = $this->getRepository('CSBillClientBundle:Credit');
         /** @var Money $amount */
         $amount = $form->get('amount')->getData();
         $credit = $clientRepository->addCredit($client, $amount);
         return $this->json(array('status' => 'success', 'amount' => $this->get('csbill.money.formatter')->format($credit->getValue())));
     }
     $content = $this->renderView('CSBillClientBundle:Ajax:credit_add.html.twig', array('form' => $form->createView()));
     return $this->json(array('content' => $content));
 }
Esempio n. 2
0
 /**
  * @param Request $request
  * @param Client  $client
  *
  * @return mixed
  */
 public function creditAction(Request $request, Client $client)
 {
     $jsonResponse = function (Credit $credit) use($client) {
         return $this->json(['credit' => $this->get('csbill.money.formatter')->toFloat($credit->getValue()), 'id' => $client->getId()]);
     };
     if ($request->isMethod('GET')) {
         return $jsonResponse($client->getCredit());
     }
     if ($request->isMethod('PUT')) {
         /** @var CreditRepository $repository */
         $repository = $this->getRepository('CSBillClientBundle:Credit');
         $value = new Money((int) ($request->request->get('credit') * 100), $this->get('currency'));
         return $jsonResponse($repository->addCredit($client, $value));
     }
     throw new BadRequestHttpException();
 }