Example #1
0
    /**
     * Copy COAs from another project
     * @param $clientID
     * @param $projectID
     * @param $clientFromCopyId
     * @param $projectFromCopyId
     */
    public static function copyCOAs($clientID, $projectID, $client_to_id, $project_to_id)
    {
        $clientID  = intval($clientID);
        $projectID  = intval($projectID);
        $project_to_id  = intval($project_to_id);
        $client_to_id = intval($client_to_id);

        $coasToCopy = Coa::getClientsCOAs($clientID, $projectID);

        foreach($coasToCopy as $coaToCopy) {
            $coaClass = CoaClass::model()->findByAttributes(array(
                'Project_ID' => $project_to_id,
                'Class_Shortcut' => $coaToCopy->class->Class_Shortcut,
            ));

            if ($coaClass) {
                $coa = Coa::model()->findByAttributes(array(
                    'Project_ID' => $project_to_id,
                    'COA_Acct_Number' => $coaToCopy->COA_Acct_Number,
                ));

                if (!$coa) {
                    $coa = new Coa();
                    $coa->COA_Budget = 0;
                    $coa->COA_Current_Total = 0;
                }

                $coa->Client_ID = $client_to_id;
                $coa->COA_Acct_Number = $coaToCopy->COA_Acct_Number;
                $coa->Project_ID = $project_to_id;
                $coa->COA_Name = $coaToCopy->COA_Name;
                $coa->COA_Class_ID = $coaClass->COA_Class_ID;

                if ($coa->validate()) {
                    $coa->save();
                }
            }
        }
    }