<?php
namespace Noahtech\Sistemas\InterjamaBundle\Handler;
use Noahtech\Sistemas\InterjamaBundle\Entity\McCajaMoneda;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use DateTime;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class McCajaMonedaHandler extends BaseHandler {
public function __construct(ContainerInterface $container, EntityManagerInterface $entityManager) {
$this->container = $container;
$this->entityManager = $entityManager;
$this->repository = $entityManager->getRepository(McCajaMoneda::class);
}
public function saveOrUpdateCajaMoneda($caja, $cajaMonedas) {
foreach ($cajaMonedas as $moneda) {
$monedaObj = $this->container->get("Noahtech\Sistemas\InterjamaBundle\Handler\McMonedaHandler")->getMonedaById((int)$moneda['seleccionada']);
if (is_null($moneda['id'])) {
$caja_moneda = new McCajaMoneda();
$caja_moneda->setFechaCreacion(new DateTime());
$caja_moneda->setMontoFinal((float)$moneda['monto_inicial']);
} else {
$caja_moneda = $this->repository->findOneById((int)$moneda['id']);
$caja_moneda->setFechaActualizacion(new DateTime());
}
$caja_moneda->setCaja($caja);
$caja_moneda->setMoneda($monedaObj);
$caja_moneda->setMontoInicial((float)$moneda['monto_inicial']);
$this->repository->save($caja_moneda);
}
}
public function getAllMonedasByCaja($cajaId) {
$monedas = $this->repository->getAllMonedasByCaja($cajaId);
return $this->toarray($monedas, 'caja');
}
public function removeCajaMoneda ($cajaMonedaIds) {
foreach ($cajaMonedaIds as $id) {
$cajaMoneda = $this->repository->findOneById((int)$id);
$this->repository->delete($cajaMoneda);
}
return "Monedas eliminadas con éxito.";
}
public function getByCajaAndMoneda($cajaId, $monedaId) {
return $this->repository->getByCajaAndMoneda($cajaId, $monedaId);
}
public function save(McCajaMoneda $cajaMoneda) {
$cajaMoneda = $this->repository->save($cajaMoneda);
return $this->toarray($cajaMoneda, 'cajaMoneda');
}
public function getCajaMonedaByCaja($cajaId) {
return $this->repository->findBy(array('caja' => $cajaId));
}
}