API
This commit is contained in:
50
api/src/TipoCambio.php
Normal file
50
api/src/TipoCambio.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
namespace Contabilidad;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use DateTime;
|
||||
use ProVM\Common\Alias\Model;
|
||||
|
||||
/**
|
||||
* @property int $id
|
||||
* @property DateTime $fecha
|
||||
* @property Moneda $desde_id
|
||||
* @property Moneda $hasta_id
|
||||
* @property float $valor
|
||||
*/
|
||||
class TipoCambio extends Model {
|
||||
const DESDE = -1;
|
||||
const HASTA = 1;
|
||||
|
||||
public static $_table = 'tipos_cambio';
|
||||
protected static $fields = ['fecha', 'valor', 'desde_id', 'hasta_id'];
|
||||
|
||||
protected $desde;
|
||||
public function desde() {
|
||||
if ($this->desde === null) {
|
||||
$this->desde = $this->childOf(Moneda::class, [Model::SELF_KEY => 'desde_id']);
|
||||
}
|
||||
return $this->desde;
|
||||
}
|
||||
protected $hasta;
|
||||
public function hasta() {
|
||||
if ($this->hasta === null) {
|
||||
$this->hasta = $this->childOf(Moneda::class, [Model::SELF_KEY => 'hasta_id']);
|
||||
}
|
||||
return $this->hasta;
|
||||
}
|
||||
public function fecha(DateTime $fecha = null) {
|
||||
if ($fecha === null) {
|
||||
return Carbon::parse($this->fecha);
|
||||
}
|
||||
$this->fecha = $fecha->format('Y-m-d H:i:s');
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function transform(float $valor, int $direction = TipoCambio::HASTA): float {
|
||||
if ($direction == TipoCambio::HASTA) {
|
||||
return $valor * $this->valor;
|
||||
}
|
||||
return $valor / $this->valor;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user