示例#1
0
    /**
     * Add document to folder
     * @param $docId
     * @param null $vendorID
     */
    public static function addDocumentToFolder($docId, $vendorID = null)
    {
        $document = Documents::model()->findByPk($docId);
        if ($document) {
            $year = substr($document->Created, 0, 4);
            Storages::createProjectStorages($document->Project_ID, $year);
            $subsectionId = 0;
            if ($document->Document_Type ==  Documents::PM) {
                $payment = Payments::model()->findByAttributes(array(
                    'Document_ID' => $docId,
                ));

                $year = substr($payment->Payment_Check_Date, 0, 4);

                $subsectionId = Sections::createVendorFolder($document->Project_ID, $payment->Vendor_ID, $year);
            } elseif ($document->Document_Type == Documents::AP) {
                $ap = Aps::model()->findByAttributes(array(
                    'Document_ID' => $docId,
                ));

                $year = substr($ap->Invoice_Date, 0, 4);

                $subsectionId = Sections::createVendorFolder($document->Project_ID, $ap->Vendor_ID, $year);
                if ($ap->AP_Backup_Document_ID != 0) {
                    $bu = LibraryDocs::model()->findByAttributes(array(
                        'Document_ID' => $ap->AP_Backup_Document_ID,
                        'Subsection_ID' => $subsectionId,
                    ));

                    if (!$bu) {
                        $libDoc = new LibraryDocs();
                        $libDoc->Document_ID = $ap->AP_Backup_Document_ID;
                        $libDoc->Subsection_ID = $subsectionId;
                        $libDoc->Access_Type = Storages::HAS_ACCESS;
                        $libDoc->Sort_Numb = 0;
                        if ($libDoc->validate()) {
                            $libDoc->save();
                        }
                    }
                }
            } elseif ($document->Document_Type == Documents::PO) {
                $po = Pos::model()->findByAttributes(array(
                    'Document_ID' => $docId,
                ));

                $year = substr($po->PO_Date, 0, 4);

                $subsectionId = Sections::createVendorFolder($document->Project_ID, $po->Vendor_ID, $year);
                if ($po->PO_Backup_Document_ID != 0) {
                    $bu = LibraryDocs::model()->findByAttributes(array(
                        'Document_ID' => $po->PO_Backup_Document_ID,
                        'Subsection_ID' => $subsectionId,
                    ));

                    if (!$bu) {
                        $libDoc = new LibraryDocs();
                        $libDoc->Document_ID = $po->PO_Backup_Document_ID;
                        $libDoc->Subsection_ID = $subsectionId;
                        $libDoc->Access_Type = Storages::HAS_ACCESS;
                        $libDoc->Sort_Numb = 0;
                        if ($libDoc->validate()) {
                            $libDoc->save();
                        }
                    }
                }
            } elseif ($document->Document_Type == Documents::BU) {
                //get po or ap date
                $ap = Aps::model()->findByAttributes(array(
                    'AP_Backup_Document_ID' => $docId,
                ));
                if ($ap) {
                    $year = substr($ap->Invoice_Date, 0, 4);
                } else {
                    $po = Pos::model()->findByAttributes(array(
                        'PO_Backup_Document_ID' => $docId,
                    ));
                    if ($po) {
                        $year = substr($po->PO_Date, 0, 4);
                    }
                }
                $subsectionId = Sections::createVendorFolder($document->Project_ID, $vendorID, $year);
            } elseif ($document->Document_Type == Documents::PR) {
                $payroll = Payrolls::model()->findByAttributes(array(
                    'Document_ID' => $document->Document_ID,
                ));

                $year = substr($payroll->Week_Ending, 0, 4);

                $subsectionId = Sections::createPayrollFolder($document->Project_ID, $year, $payroll->Week_Ending);
            } elseif ($document->Document_Type == Documents::JE) {
                $je = Journals::model()->findByAttributes(array(
                    'Document_ID' => $document->Document_ID,
                ));

                $subsectionId = Sections::createJournalEntryFolder($document->Project_ID, $je->JE_Date);
            } elseif ($document->Document_Type == Documents::PC) {
                $pc = Pcs::model()->findByAttributes(array(
                    'Document_ID' => $document->Document_ID,
                ));

                $year = substr($pc->Envelope_Date, 0, 4);

                $subsectionId = Sections::createPettyCashFolder($document->Project_ID, $year, $pc->Employee_Name);
            } elseif ($document->Document_Type == Documents::AR) {
                $ar = Ars::model()->findByAttributes(array(
                    'Document_ID' => $document->Document_ID,
                ));

                $year = substr($ar->Invoice_Date, 0, 4);

                $subsectionId = Sections::createAccountsReceivableFolder($document->Project_ID, $year, $ar->Invoice_Date);
            }

            $libDoc = LibraryDocs::model()->findByAttributes(array(
                'Document_ID' => $docId,
                'Subsection_ID' => $subsectionId,
            ));

            if (!$libDoc) {
                $libDoc = new LibraryDocs();
                $libDoc->Document_ID = $docId;
                $libDoc->Subsection_ID = $subsectionId;
                $libDoc->Access_Type = Storages::HAS_ACCESS;
                $libDoc->Sort_Numb = 0;
                if ($libDoc->validate()) {
                    $libDoc->save();
                }
            }

            LibraryDocs::sortDocumentsInSubsection($subsectionId);
        }
    }