public function loadFrom(Pap_Db_Commission $commission){
     $this->tier = $commission->getTier();
     $this->type = $commission->getCommissionType();
     $this->value = $commission->getCommissionValue();
     $this->subtype = $commission->getSubtype();
     $this->groupid = $commission->getGroupId();
     $this->typeid = $commission->getCommissionTypeId();
 }
 public function loadSubTypeCommissions($subType) {
     $commission = new Pap_Db_Commission();
     $commission->setGroupId($this->commissionGroupId);
     $commission->setTypeId($this->commissionTypeId);
     $commission->setSubtype($subType);
     foreach ($commission->loadCollection() as $commission) {
         $this->setField($this->preffixCommissionFormName($subType, $commission->getTier(), "commission"),
                         $commission->getCommissionValue());
         $this->setField($this->preffixCommissionFormName($subType, $commission->getTier(), "commissionType"),
                         $commission->getCommissionType());
     }
 }
    public function recompute(Pap_Db_Commission $commission) {
        $commissionType = $commission->getCommissionType();
        $commissionValue = $commission->getCommissionValue();
        $realTotalCost = $this->getTotalCost() - $this->getFixedCost();

        if ($commissionType == Pap_Db_Commission::COMMISSION_TYPE_PERCENTAGE) {
            $newValue = $realTotalCost * ($commissionValue/100);
        } else if($commissionType == Pap_Db_Commission::COMMISSION_TYPE_FIXED) {
            $newValue = $commissionValue;
        } else {
            return;
        }
        $newValue = $newValue * $this->getSplit();

        if ($this->getType() == Pap_Db_Transaction::TYPE_REFUND ||
                $this->getType() == Pap_Db_Transaction::TYPE_CHARGE_BACK) {
            $newValue *= -1;
        }

        $this->setCommission($newValue);
    }