示例#1
0
    /**
     * Create project shelve and cabinet
     * @param $projectId
     * @param $year
     */
    public static function createProjectStorages($projectId, $year)
    {
        $project = Projects::model()->findByPk($projectId);

        // check existing project cabinet
        $cabinet = Storages::model()->findByAttributes(array(
            'Storage_Type' => self::CABINET,
            'Created_By' => '0',
            'Project_ID' => $projectId,
            'Year' => $year,
        ));
        if (!$cabinet) {
            // if there is not cabinet for this project create it
            $cabinet = new Storages();
            $cabinet->Storage_Name = $project->Project_Name;
            $cabinet->Project_ID = $projectId;
            $cabinet->Client_ID = Yii::app()->user->clientID;
            $cabinet->Year = $year;
            $cabinet->Created_By = 0;
            $cabinet->Row_Num = 0;
            $cabinet->Storage_Type = self::CABINET;
            $cabinet->Access_Type = self::HAS_ACCESS;
            if ($cabinet->validate()) {
                $cabinet->save();
            }
        }

        // check existing project shelf
        $shelf = Storages::model()->findByAttributes(array(
            'Storage_Type' => self::SHELF,
            'Created_By' => '0',
            'Project_ID' => $projectId,
            'Year' => $year,
        ));
        if (!$shelf) {
            // if there is not cabinet for this project create it
            $shelf = new Storages();
            $shelf->Storage_Name = $project->Project_Name;
            $shelf->Project_ID = $projectId;
            $shelf->Client_ID = Yii::app()->user->clientID;
            $shelf->Year = $year;
            $shelf->Created_By = 0;
            $shelf->Row_Num = 0;
            $shelf->Storage_Type = self::SHELF;
            $shelf->Access_Type = self::HAS_ACCESS;
            if ($shelf->validate()) {
                $shelf->save();
            }
        }

        $countW9s = W9::getCountOfAvailableW9sOfYear($year);
        if ($countW9s > 0) {
            // also crete W9 book if it does not exist and there are Company's W9s
            $w9Binder = Sections::model()->findByAttributes(array(
                'Section_Type' => self::SHELF,
                'Created_By' => '0',
                'Storage_ID' => $shelf->Storage_ID,
                'Folder_Cat_ID' => Sections::W9_BOOK,
            ));

            if (!$w9Binder) {
                $w9Binder = new Sections();
                $w9Binder->Storage_ID = $shelf->Storage_ID;
                $w9Binder->Section_Name = "W9s";
                $w9Binder->Vendor_ID = 0;
                $w9Binder->Created_By = 0;
                $w9Binder->Section_Type = self::SHELF;
                $w9Binder->Folder_Cat_ID = Sections::W9_BOOK;
                $w9Binder->Access_Type = self::HAS_ACCESS;
                if ($w9Binder->validate()) {
                    $w9Binder->save();

                    $tab = new Subsections();
                    $tab->Section_ID = $w9Binder->Section_ID;
                    $tab->Subsection_Name = 'Tab 1';
                    $tab->Subsection_Type = self::SHELF;
                    $tab->Created_By = 0;
                    $tab->Access_Type = self::HAS_ACCESS;
                    $tab->save();
                }
            }
        }
    }
示例#2
0
    /**
     * Create PO Log or Check Log binder for project
     * @param $projectId
     * @param $docType
     * @param $year
     * @return int
     */
    public static function createLogBinder($projectId, $docType, $year)
    {
        // get shelf
        $shelf = self::getShelfForBinderCreate($projectId, $year);

        if ($docType == Documents::PM) {
            $folderCatID = self::CHECK_LOG;
        } else if ($docType == Documents::PO) {
            $folderCatID = self::PURCHASE_ORDER_LOG;
        }

        $binder = Sections::model()->findByAttributes(array(
            'Section_Type' => Storages::SHELF,
            'Created_By' => '0',
            'Storage_ID' => $shelf->Storage_ID,
            'Folder_Cat_ID' => $folderCatID,
        ));

        if (!$binder) {
            $binder = new Sections();
            $binder->Storage_ID = $shelf->Storage_ID;
            if ($docType == Documents::PM) {
                $binder->Section_Name = 'Payments';
            } else if ($docType == Documents::PO) {
                $binder->Section_Name = 'Purchase orders';
            }
            $binder->Vendor_ID = 0;
            $binder->Created_By = 0;
            $binder->Section_Type = Storages::SHELF;
            $binder->Folder_Cat_ID = $folderCatID;
            $binder->Access_Type = Storages::HAS_ACCESS;
            if ($binder->validate()) {
                $binder->save();

                $tab = new Subsections();
                $tab->Section_ID = $binder->Section_ID;
                $tab->Subsection_Name = 'Tab 1';
                $tab->Subsection_Type = Storages::SHELF;
                $tab->Created_By = 0;
                $tab->Access_Type = Storages::HAS_ACCESS;
                $tab->save();
            }
        } else {
            $tab = Subsections::model()->findByAttributes(array(
                'Subsection_Type' => Storages::SHELF,
                'Created_By' => '0',
                'Section_ID' => $binder->Section_ID,
            ));
        }

        return $tab->Subsection_ID;
    }