Beispiel #1
0
    /**
     * Get invoices to enter data
     * @return Aps[]
     */
    public static function findAPToEntry()
    {
        $queryString = $_SESSION['last_ap_to_entry_search']['query'];
        $options =  $_SESSION['last_ap_to_entry_search']['options'];

        $condition = new CDbCriteria();


        $condition->join = "LEFT JOIN documents ON documents.Document_ID=t.Document_ID
                            LEFT OUTER JOIN images ON images.Document_ID=t.Document_ID";
        $condition->condition = "t.Invoice_Number = '0'";
        $condition->addCondition("t.Vendor_ID='0'", 'OR');
        $condition->addCondition("t.AP_Approval_Value='0'", 'OR');

        $condition->addCondition("t.AP_Approval_Value!='100'", 'AND'); //this condition for Voided APs - allows hide them from DataEntry


        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) {
            $condition->addCondition("documents.Client_ID='" . Yii::app()->user->clientID . "'");
        }

        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || ((Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) && is_numeric(Yii::app()->user->projectID))) {
            $condition->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");
        }
        if (Yii::app()->user->userType == UsersClientList::USER
                     && is_numeric(Yii::app()->user->projectID)) {
            $condition->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");
            $condition->addCondition("documents.User_ID='" . Yii::app()->user->userID . "'");
        }

        if (Yii::app()->user->userType == Users::DATA_ENTRY_CLERK) {
            //condition to allow DEC see only documents of clients that he has access
            $cli_array = Clients::getClientsIDList(Yii::app()->user->userID);
            $condition->addInCondition('documents.Client_ID', $cli_array);
        }


        $condition->addCondition("images.Image_ID IS NOT NULL");
        $condition->order = "documents.Created ASC";

        $countCond = 0;
        if (count($options) > 0 && trim($queryString) != '') {
            $search_condition = new CDbCriteria();
            $search_condition->join = 'LEFT JOIN vendors ON t.Vendor_ID = vendors.Vendor_ID ';
            $search_condition->join .= 'LEFT JOIN companies ON vendors.Vendor_Client_ID = companies.Company_ID ';

            if ($options['search_option_com_name']) {
                $search_condition->compare('companies.Company_Name', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_fed_id']) {
                $search_condition->compare('companies.Company_Fed_ID', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_invoice_num']) {
                $search_condition->compare('t.Invoice_Number', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_inv_date']) {
                $search_condition->compare('t.Invoice_Date', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_inv_due_date']) {
                $search_condition->compare('t.Invoice_Due_Date', $queryString, true, 'OR');
                $countCond++;
            }


            if ($options['search_option_amount']) {
                $search_condition->compare('t.Invoice_Amount', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_description']) {
                $search_condition->compare('t.Invoice_Reference', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_1099_type']) {
                $search_condition->compare('t.Detail_1099_Box_Number', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_po_number']) {
                $search_condition->compare('t.AP_Backup_Document_ID', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_4digits']) {
                $search_condition->compare('t.PO_Card_Last_4_Digits', $queryString, true, 'OR');
                $countCond++;
            }


        }

        if( $countCond > 0 ) $condition->mergeWith($search_condition);
        $aps = Aps::model()->findAll($condition);

        return $aps;
    }
Beispiel #2
0
    /**
     * Find ARs to entry data
     */
    public static function findARsToEntry()
    {
        $queryString = $_SESSION['last_ar_to_entry_search']['query'];
        $options =  $_SESSION['last_ar_to_entry_search']['options'];

        $condition = new CDbCriteria();
        $condition->join = "LEFT JOIN documents ON documents.Document_ID=t.Document_ID";
        $condition->condition = "t.Invoice_Number = '0'";

        $countCond = 0;
        if (count($options) > 0 && trim($queryString) != '') {
            $search_condition = new CDbCriteria();


            if ($options['search_option_com_name']) {
                $search_condition->compare('t.Company_Name', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_inv_num']) {
                $search_condition->compare('t.Invoice_Number', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_inv_date']) {
                $search_condition->compare('t.Invoice_Date', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_inv_amount']) {
                $search_condition->compare('t.Invoice_Amount', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_descr']) {
                $search_condition->compare('t.Description', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_terms']) {
                $search_condition->compare('t.Terms', $queryString, true, 'OR');
                $countCond++;
            }
        }



        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) {
            $condition->addCondition("documents.Client_ID='" . Yii::app()->user->clientID . "'");
        }

        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || ((Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) && is_numeric(Yii::app()->user->projectID))) {
            $condition->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");
        }

        if (Yii::app()->user->userType == UsersClientList::USER
            && is_numeric(Yii::app()->user->projectID)) {
            $condition->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");
            $condition->addCondition("documents.User_ID='" . Yii::app()->user->userID . "'");
        }

        if (Yii::app()->user->userType == Users::DATA_ENTRY_CLERK) {
            //adding condition to allow DEC see only documents of clients that he has access
            $cli_array = Clients::getClientsIDList(Yii::app()->user->userID);
            $condition->addInCondition('documents.Client_ID', $cli_array);
        }

        $condition->order = "documents.Created ASC";

        if( $countCond > 0 ) $condition->mergeWith($search_condition);

        $ars = Ars::model()->findAll($condition);

        return $ars;
    }
Beispiel #3
0
    /**
     * Function resets values of client and project to the first found for given user
     * @param $user_id
     */
    public static function resetClientProjectToFirst ($user_id) {
        //find companies(clients) available for user
        $users_clients = Clients::getClientsIDList($user_id);
        //set up session variable to the first client in the list
        $_SESSION['last_client'] = $users_clients[0];

        //find projects of client
        $projects = Projects::getUserProjects($user_id, $users_clients[0]);

        $_SESSION['last_project'] = $projects[0]->Project_ID;


    }
Beispiel #4
0
    /**
     * Find PCs to entry data
     */
    public static function findPayrollsToEntry()
    {
        $queryString = $_SESSION['last_payr_to_entry_search']['query'];
        $options =  $_SESSION['last_payr_to_entry_search']['options'];

        $condition = new CDbCriteria();
        $condition->join = "inner JOIN documents ON documents.Document_ID=t.Document_ID";
        $condition->condition = "t.Payroll_Type_ID = '0'";
        $condition->addCondition("t.Week_Ending is null", 'OR');

        $countCond = 0;
        if (count($options) > 0 && trim($queryString) != '') {
            $search_condition = new CDbCriteria();
            $search_condition->join = 'LEFT JOIN payroll_types ON t.Payroll_Type_ID = payroll_types.Payroll_Type_ID ';


            if ($options['search_option_week_end']) {
                $search_condition->compare('t.Week_Ending', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_type']) {
                $search_condition->compare('payroll_types.Title', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_submitted']) {
                $search_condition->compare('t.Submitted', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_version']) {
                $search_condition->compare('t.Version', $queryString, true, 'OR');
                $countCond++;
            }

        }

        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) {
            $condition->addCondition("documents.Client_ID='" . Yii::app()->user->clientID . "'");
        }

        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || ((Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) && is_numeric(Yii::app()->user->projectID))) {
            $condition->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");
        }

        if (Yii::app()->user->userType == UsersClientList::USER
            && is_numeric(Yii::app()->user->projectID)) {
            $condition->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");
            $condition->addCondition("documents.User_ID='" . Yii::app()->user->userID . "'");
        }

        if (Yii::app()->user->userType == Users::DATA_ENTRY_CLERK) {
            //adding condition to allow DEC see only documents of clients that he has access
            $cli_array = Clients::getClientsIDList(Yii::app()->user->userID);
            $condition->addInCondition('documents.Client_ID', $cli_array);
        }


        $condition->order = "documents.Created ASC";

        if( $countCond > 0 ) $condition->mergeWith($search_condition);

        $payrolls = Payrolls::model()->findAll($condition);

        return $payrolls;
    }
Beispiel #5
0
    /**
     * Find W9s to data entry module by search query
     * If search query is blank returns all W9s to data entry
     * @param $queryString
     * @param $options
     * @return array|CActiveRecord|mixed|null
     */
    public function findW9ToEntry($queryString, $options)
    {
        $w9s = array();
        $w9s_to_approve = array();

        // get aps to approve
        $condition = new CDbCriteria();
        $condition_for_temp = new CDbCriteria();
        $condition->join = "LEFT JOIN documents ON documents.Document_ID=t.Document_ID
                            LEFT JOIN clients ON t.Client_ID=clients.Client_ID
                            LEFT JOIN companies ON clients.Company_ID=companies.Company_ID
                            LEFT JOIN company_addresses ON company_addresses.Company_ID = companies.Company_ID
                            LEFT JOIN addresses ON addresses.Address_ID = company_addresses.Address_ID";
        $countCond = 0;

        $condition_for_temp->addCondition("companies.Temp_Fed_ID_Flag is null");

        if (count($options) > 0 && trim($queryString) != '') {
            if ($options['search_option_fed_id']) {
                $condition->compare('companies.Company_Fed_ID', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_com_name']) {
                $condition->compare('companies.Company_Name', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_addr1']) {
                $condition->compare('addresses.Address1', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_addr2']) {
                $condition->compare('addresses.Address2', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_city']) {
                $condition->compare('addresses.City', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_state']) {
                $condition->compare('addresses.State', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_zip']) {
                $condition->compare('addresses.ZIP', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_country']) {
                $condition->compare('addresses.Country', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_phone']) {
                $condition->compare('addresses.Phone', $queryString, true, 'OR');
                $countCond++;
            }
        }

        if ($countCond == 0 && trim($queryString) != '') {
            $condition->compare('companies.Company_Fed_ID', $queryString, true, 'OR');
            $condition->compare('companies.Company_Name', $queryString, true, 'OR');
            $condition->compare('addresses.Address1', $queryString, true, 'OR');
            $condition->compare('addresses.Address2', $queryString, true, 'OR');
            $condition->compare('addresses.City', $queryString, true, 'OR');
            $condition->compare('addresses.State', $queryString, true, 'OR');
            $condition->compare('addresses.ZIP', $queryString, true, 'OR');
            $condition->compare('addresses.Country', $queryString, true, 'OR');
            $condition->compare('addresses.Phone', $queryString, true, 'OR');
        }

        if (Yii::app()->user->userType == Users::ADMIN || Yii::app()->user->userType == Users::DATA_ENTRY_CLERK || Yii::app()->user->userType == Users::DB_ADMIN) {
            $criteria = clone $condition;
            $criteria->addCondition("t.Revision_ID<='0'");
            $criteria->addCondition("t.Verified='" . self::NOT_VERIFIED . "'");
            $criteria->order = "documents.Created ASC";
            $criteria->mergeWith($condition_for_temp);
            $w9s_clients = $this->findAll($criteria);




            $criteria = clone $condition;
            $criteria->addCondition("documents.Client_ID>'0'");
            $criteria->addCondition("t.Revision_ID>'0'");
            $criteria->addCondition("t.W9_Data_Entry!='" . Yii::app()->user->userID . "'");
            $criteria->addCondition("t.Verified='" . self::NOT_VERIFIED . "'");
            $criteria->order = "documents.Created ASC";


            if (Yii::app()->user->userType == Users::DATA_ENTRY_CLERK) {
                //adding condition to allow DEC see only documents of clients that he has access
                $cli_array = Clients::getClientsIDList(Yii::app()->user->userID);
                $criteria->addInCondition('documents.Client_ID', $cli_array);
            }

            $criteria->mergeWith($condition_for_temp);
            $w9s = $this->findAll($criteria);

            foreach($w9s_clients as $key => $value) {
                $w9s[] = $value;
            }
        } else if (Yii::app()->user->userType == Users::USER) {
            $criteria = clone $condition;
            //commented out 22.01.2015 as there is no sense to connect to users_client_list table
            //$criteria->join .= ' LEFT JOIN users_client_list ON documents.Client_ID=users_client_list.Client_ID';
            $criteria->addCondition("t.Revision_ID<='0'");
            //commented out 22.01.2015 as there is no sense to connect to users_client_list table
            //$criteria->addCondition("users_client_list.User_ID='" . Yii::app()->user->userID . "'");
            $criteria->addCondition("t.Verified='" . self::NOT_VERIFIED . "'");

            //added instead of connection to users_client_list table
            $criteria->addCondition("documents.Client_ID='" . Yii::app()->user->clientID . "'");
            $criteria->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");

            $criteria->addCondition("documents.User_ID='".Yii::app()->user->userID."'");
            $criteria->order = "documents.Created ASC";

            $criteria->mergeWith($condition_for_temp);

            $w9s = $this->findAll($criteria);

        } else {
            $criteria = clone $condition;
            //commented out 22.01.2015 as there is no sense to connect to users_client_list table
            //$criteria->join .= ' LEFT JOIN users_client_list ON documents.Client_ID=users_client_list.Client_ID';
            $criteria->addCondition("t.Revision_ID<='0'");
            //commented out 22.01.2015 as there is no sense to connect to users_client_list table
            //$criteria->addCondition("users_client_list.User_ID='" . Yii::app()->user->userID . "'");
            $criteria->addCondition("t.Verified='" . self::NOT_VERIFIED . "'");

            //added instead of connection to users_client_list table
            $criteria->addCondition("documents.Client_ID='" . Yii::app()->user->clientID . "'");
            $criteria->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");

            $criteria->order = "documents.Created ASC";

            $criteria->mergeWith($condition_for_temp);

            $w9s = $this->findAll($criteria);
        }

        return $w9s;
    }
Beispiel #6
0
    /**
     * Get POs to enter data
     * @return CActiveRecord[]
     */
    public static function findPOToEntry()
    {
        $queryString = $_SESSION['last_po_to_entry_search']['query'];
        $options =  $_SESSION['last_po_to_entry_search']['options'];

        $condition = new CDbCriteria();

        $condition->join = "RIGHT JOIN documents ON documents.Document_ID=t.Document_ID";
        $condition->addCondition("t.PO_Total IS NULL");
        $condition->addCondition("t.Vendor_ID='0'", 'OR');
        $condition->addCondition("t.PO_Account_Number IS NULL", 'OR');
        $condition->addCondition("t.PO_Approval_Value ='" . Pos::NOT_READY_FOR_APPROVAL . "'", 'OR');
        $condition->addCondition("t.Sign_Requested_By='0'");

        $condition->addCondition("t.PO_Approval_Value!='100'", 'AND');//this condition for Voided POs - allows hide them from DataEntry

        $countCond = 0;
        if (count($options) > 0 && trim($queryString) != '') {
            $search_condition = new CDbCriteria();
            $search_condition->join = 'LEFT JOIN vendors ON t.Vendor_ID = vendors.Vendor_ID ';
            $search_condition->join .= 'LEFT JOIN companies ON vendors.Vendor_Client_ID = companies.Company_ID ';

            if ($options['search_option_com_name']) {
                $search_condition->compare('companies.Company_Name', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_fed_id']) {
                $search_condition->compare('companies.Company_Fed_ID', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_account_num']) {
                $search_condition->compare('t.PO_Account_Number', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_subtotal']) {
                $search_condition->compare('t.PO_Subtotal', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_tax']) {
                $search_condition->compare('t.PO_Tax', $queryString, true, 'OR');
                $countCond++;
            }


            if ($options['search_option_deliv_chg']) {
                $search_condition->compare('t.PO_Delivery_Chg', $queryString, true, 'OR');
                $countCond++;
            }
            if ($options['search_option_other_chg']) {
                $search_condition->compare('t.PO_Other_Chg', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_total']) {
                $search_condition->compare('t.PO_Total', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_paym_type']) {
                $search_condition->compare('t.Payment_Type', $queryString, true, 'OR');
                $countCond++;
            }

            if ($options['search_option_4digits']) {
                $search_condition->compare('t.PO_Card_Last_4_Digits', $queryString, true, 'OR');
                $countCond++;
            }


        }

        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) {
            $condition->addCondition("documents.Client_ID='" . Yii::app()->user->clientID . "'");
        }

        if (Yii::app()->user->userType == UsersClientList::PROCESSOR || ((Yii::app()->user->userType == UsersClientList::APPROVER
            || Yii::app()->user->userType == UsersClientList::CLIENT_ADMIN) && is_numeric(Yii::app()->user->projectID))) {
            $condition->addCondition("documents.Project_ID='" . Yii::app()->user->projectID . "'");
        }
        if (Yii::app()->user->userType == Users::USER) {
            $condition->addCondition("documents.User_ID='".Yii::app()->user->userID."'");
        }
        if (Yii::app()->user->userType == Users::DATA_ENTRY_CLERK) {
            //adding condition to allow DEC see only documents of clients that he has access
            $cli_array = Clients::getClientsIDList(Yii::app()->user->userID);
            $condition->addInCondition('documents.Client_ID', $cli_array);
        }

        $condition->order = "documents.Created ASC";
        if( $countCond > 0 ) $condition->mergeWith($search_condition);
        $pos = Pos::model()->findAll($condition);

        return $pos;
    }