<?php
namespace App\Repository\Idempiere;
use App\Constant;
use App\Entity\Idempiere\CCurrency;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @method CCurrency|null find($id, $lockMode = null, $lockVersion = null)
* @method CCurrency|null findOneBy(array $criteria, array $orderBy = null)
* @method CCurrency[] findAll()
* @method CCurrency[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class CCurrencyRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, CCurrency::class);
}
/**
* Convertir el monto con la tasa del sistema
* @param float $Amt Monto a convertir
* @param int $C_Currency_ID Moneda base
* @param int $C_Currency_To_ID Moneda destino
* @param string $Date Fecha de la tasa
* @param int $C_ConversionType_ID Tipo de conversion/tasa
* @param int $AD_Client_ID Grupo empresarial
* @param int $AD_Org_ID Organizacion
*/
public function convertAmt(Float $Amt, Int $C_Currency_ID, Int $C_Currency_To_ID, String $Date = null,
Int $C_ConversionType_ID, Int $AD_Client_ID = 0, Int $AD_Org_ID = 0
)
{
if ( is_null($Date) )
$Date = date('Y-m-d H:i:s');
$conn = $this->getEntityManager()->getConnection();
$sql = 'SELECT CURRENCYCONVERT(:payamt, :currency_id, :currencytarget_id, :dateacct, :conversiontype_id, :client_id, :org_id)';
$stmt = $conn->prepare($sql);
$rs = $stmt->executeQuery([
'payamt' => $Amt,
'currency_id' => $C_Currency_ID,
'currencytarget_id' => $C_Currency_To_ID,
'dateacct' => $Date,
'conversiontype_id' => $C_ConversionType_ID,
'client_id' => $AD_Client_ID,
'org_id' => $AD_Org_ID
]);
return $rs->fetchOne();
}
}