/** * Add relation between AP and PO * @param $po * @param $invAmount * @param $invDate * @param $invNumber * @param $invReference */ public static function addApPORelation($po, $invAmount, $invDate, $invNumber, $invReference) { $condition = new CDbCriteria(); $condition->join = "LEFT JOIN documents ON documents.Document_ID=t.Document_ID"; $condition->condition = "t.Vendor_ID = '" . $po->Vendor_ID ."'"; $condition->addCondition("t.Invoice_Amount = $invAmount"); $condition->addCondition("t.Invoice_Number = '$invNumber'"); $condition->addCondition("t.Invoice_Date = '$invDate'"); $condition->addCondition("documents.Project_ID = '" . $po->document->Project_ID . "'"); $relatedAP = Aps::model()->find($condition); if ($relatedAP !== null) { if ($relatedAP->PO_ID != 0) { $condition = new CDbCriteria(); $condition->condition = "PO_ID = '" . $relatedAP->PO_ID . "'"; $condition->addCondition("PO_Trkng_Inv_Date = '$invDate'"); $condition->addCondition("PO_Trkng_Pmt_Amt = $invAmount"); $condition->addCondition("PO_Trkng_Inv_Number = '$invNumber'"); PoPmtsTraking::model()->deleteAll($condition); } $relatedAP->PO_ID = $po->PO_ID; $relatedAP->save(); } $poTrack = new PoPmtsTraking(); $poTrack->PO_ID = $po->PO_ID; $poTrack->PO_Trkng_Beg_Balance = $po->PO_Total; $poTrack->PO_Trkng_Desc = $invReference; $poTrack->PO_Trkng_Inv_Date = $invDate; $poTrack->PO_Trkng_Inv_Number = $invNumber; $poTrack->PO_Trkng_Pmt_Amt = $invAmount; if ($poTrack->validate()) { $poTrack->save(); } }