Esempio n. 1
0
 /**
  * @return bool
  */
 public function autoInsertFee_voucher_datail()
 {
     if ($this->getChildRecs('Fee_voucher_datail')) {
         return true;
     }
     // get default installments
     $student = new Student($this->student_id->val);
     $class = new Clas($student->class_id->val);
     $defInstallments = Default_installment::findByCondition("config_class_id = " . $class->config()->id->val . " AND month = '" . $this->month->val . "'");
     if (!$defInstallments) {
         return true;
     }
     foreach ($defInstallments as $dInsId => $defIns) {
         if ($defIns instanceof Default_installment) {
         }
         $feeVoucherDetail = new Fee_voucher_datail();
         $feeVoucherDetail->fee_voucher_id->val = $this->id->val;
         // if the student has a special discount, default installments will not apply to them:
         if ($student->annual_dues->val < $class->config()->annual_dues->val) {
             global $db;
             $feeVoucherDetail->fee_category_id->val = $db->gfv("id", "config_fee_categories", "category = 'Tuition Fee'");
             $feeVoucherDetail->amount->val = $student->annual_dues->val / count($class->config()->defInstallments());
             //$feeVoucherDetail->pr("this is being inserted");
         } else {
             $feeVoucherDetail->fee_category_id->val = $defIns->fee_category_id->val;
             $feeVoucherDetail->amount->val = $defIns->amount->val;
             //$feeVoucherDetail->pr("default being inserted");
         }
         if (!$feeVoucherDetail->dbSave()) {
             //$feeVoucherDetail->pr();
         }
     }
     return true;
 }
Esempio n. 2
0
// foreach class:
// if there are no defInstallments
// starting month => 12
// 1 to starting month
//`config_class_id` = this id
// `month` = this month
// `fee_category_id` = 1 "tuition fee"
// `amount` = annual dues / 12
$config_classes = Config_class::findAll();
foreach ($config_classes as $conClassId => $confClass) {
    if ($confClass instanceof Config_class) {
    }
    if (!$confClass->defInstallments()) {
        for ($month = $confClass->starting_month->val; $month <= 12; $month++) {
            $defInstallment = new Default_installment();
            $defInstallment->config_class_id->val = $conClassId;
            $defInstallment->fee_category_id->val = 1;
            $defInstallment->amount->val = $confClass->annual_dues->val / 12;
            $defInstallment->month->val = $month;
            $defInstallment->dbSave();
        }
        for ($month = 1; $month < $confClass->starting_month->val; $month++) {
            $defInstallment = new Default_installment();
            $defInstallment->config_class_id->val = $conClassId;
            $defInstallment->fee_category_id->val = 1;
            $defInstallment->amount->val = $confClass->annual_dues->val / 12;
            $defInstallment->month->val = $month;
            $defInstallment->dbSave();
        }
    }
}
Esempio n. 3
0
 /**
  * @return Default_installment[]
  */
 function defaultInstallments()
 {
     $class = new Clas($this->class_id->val);
     return Default_installment::findByCondition("config_class_id = " . $class->config()->id->val);
 }