/** * Verifica que el origen de datos esté totalmente configurado * 1) Que no tenga ningún campo sin significado * 2) Que tenga un campo con significado "calculo" */ public function estaConfigurado(OrigenDatos $origen) { $tiene_campo_calculo = false; $tiene_descripcion = false; $tiene_pk = false; $tiene_null = false; $campos = $origen->getCampos(); foreach ($campos as $campo) { $sig = $campo->getSignificado(); if ($sig != null) { $significado = $sig->getCodigo(); if ($origen->getEsCatalogo()) { if ($significado == 'pk') { $tiene_pk = true; } elseif ($significado == 'descripcion') { $tiene_descripcion = true; } } else { if ($significado == 'calculo') { $tiene_campo_calculo = true; } } } else { $tiene_null = true; } } if ($origen->getEsCatalogo()) { if (!$tiene_pk or $tiene_null or !$tiene_descripcion) { return false; } else { return true; } } elseif ($origen->getAreaCosteo() != '') { if ($tiene_null) { return false; } else { return true; } } else { if (!$tiene_campo_calculo or $tiene_null) { return false; } else { return true; } } }
/** * {@inheritDoc} */ public function getAreaCosteo() { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getAreaCosteo', array()); return parent::getAreaCosteo(); }