protected function buildFrom() {
     $this->_selectBuilder->from->add(Pap_Db_Table_BannersInRotators::getName());
     $condition = Pap_Db_Table_BannersInRotators::getName().".".Pap_Db_Table_BannersInRotators::ROTATED_BANNER_ID." = ".Pap_Db_Table_Banners::getName().".".Pap_Db_Table_Banners::ID;
     $this->_selectBuilder->from->addInnerJoin(Pap_Db_Table_Banners::getName(), '', $condition);
 }
 function init() {
     $this->setTable(Pap_Db_Table_BannersInRotators::getInstance());
     parent::init();
 }
    function createUpdateIncrementBuild(Pap_Common_Banner $childBanner, $column){
        $updateBuild = new Gpf_SqlBuilder_UpdateBuilder();
        $updateBuild->from->add(Pap_Db_Table_BannersInRotators::getName());
        $updateBuild->set->add($column, "$column+1", false);
        $updateBuild->where->add(Pap_Db_Table_BannersInRotators::PARENT_BANNER_ID,'=',$this->getId());
        $updateBuild->where->add(Pap_Db_Table_BannersInRotators::ROTATED_BANNER_ID,'=',$childBanner->getId());

        $c1 = new Gpf_SqlBuilder_CompoundWhereCondition();
        $c1->add(Pap_Db_Table_BannersInRotators::VALID_FROM,'=',null);
        $c1->add(Pap_Db_Table_BannersInRotators::VALID_UNTIL,'=',null);

        $c2 = new Gpf_SqlBuilder_CompoundWhereCondition();
        $c2->add(Pap_Db_Table_BannersInRotators::VALID_FROM,'<',date("Y-m-d H:i:s"));
        $c2->add(Pap_Db_Table_BannersInRotators::VALID_UNTIL,'>',date("Y-m-d H:i:s"));

        $c3 = new Gpf_SqlBuilder_CompoundWhereCondition();
        $c3->add(Pap_Db_Table_BannersInRotators::VALID_FROM,'=',null);
        $c3->add(Pap_Db_Table_BannersInRotators::VALID_UNTIL,'>',date("Y-m-d H:i:s"));

        $c4 = new Gpf_SqlBuilder_CompoundWhereCondition();
        $c4->add(Pap_Db_Table_BannersInRotators::VALID_FROM,'<',date("Y-m-d H:i:s"));
        $c4->add(Pap_Db_Table_BannersInRotators::VALID_UNTIL,'=',null);

        $c = new Gpf_SqlBuilder_CompoundWhereCondition();
        $c->addCondition($c1,'OR');
        $c->addCondition($c2,'OR');
        $c->addCondition($c3,'OR');
        $c->addCondition($c4,'OR');

        $updateBuild->where->addCondition($c,'AND');

        return $updateBuild;
    }
 public static function getInstance() {
     if(self::$instance === null) {
         self::$instance = new self;
     }
     return self::$instance;
 }