PATRONES

STRATEGY

----------------------------------
En el modulo
----------------------------------

$estrategia=1; // acorde a la estrategia se confecciona un formato diferente
$stAr = new StrategyArchivo($estrategia);
$contenido.= $stAr->getLinea($codigoa, $datos['cbu'], $year2.$month2.$day2, $montoa , $datos['idCuenta'], $datos['nombre'], $year.$month.$day )."\n";
$encabezado = $stAr->getEncabezado($year.$month.$day, $cantReg, $importeT)."\n";

----------------------------------
En la carpeta lib
----------------------------------

class StrategyArchivo3 {
private $_strategy;
private $_codigo;

public function __construct( $codStrategy )
{
$this->_strategy="";
try{
switch ($codStrategy) {
case "1":
$this->_strategy = new StrategyOne();
break;
case "2":
$this->_strategy = new StrategyTwo();
break;
}
} catch (Exception $e) {
throw new Exception();
}
}
// Propiedades
public function getEncabezado($pFechaPresentacion, $cantRegistros, $pImporteT) {
return $this->_strategy->getEncabezado($pFechaPresentacion, $cantRegistros, $pImporteT);
}
public function getLinea($pPartida, $pCbu, $pFechaVenc, $pImporte, $pIdCuenta, $pNombrePer) {
return $this->_strategy->getLinea($pPartida, $pCbu, $pFechaVenc, $pImporte, $pIdCuenta, $pNombrePer);
}
public function getPie()
{
return $this->_strategy->getPie();
}

}

class StrategyOne {
private $_codigo;

public function __construct( ) {
}
// Propiedades:
// partida: es el codigo de alumno formado por codF + codC + codAl
public function getLinea($pPartida, $pCbu, $pFechaVenc, $pImporte, $pIdCuenta, $pNombrePer) {
.......
return $linea;
}
public function getEncabezado( $pFechaPresentacion, $pCantRegistros, $pImporteT)
{
.......
return $encabezado;
}
public function getPie()
{
.......
return $pie;
}
}

//-- Estrategia Dos para enviar directo al banco
class StrategyTwo {
private $_codigo;

public function __construct( ) {
}
// Propiedades:
// partida: es el codigo de alumno formado por codF + codC + codAl
public function getLinea($pPartida, $pCbu, $pFechaVenc, $pImporte, $pIdCuenta, $pFechaPres="")
{
.......
return $linea;
}
public function getEncabezado( $pFechaPresentacion, $pCantRegistros, $pImporteT)
{
........
return $encabezado;
}
public function getPie($fechaPresentacinon, $cantidadDebitos, $montoTotal)
{
.........
return $pie;
}

}

Redmine Appliance - Powered by TurnKey Linux