Beispiel #1
0
 protected function Form_Create()
 {
     // check rigths for the Inventory to Ship
     $this->blnShowInventory = true;
     $objRoleModule = RoleModule::LoadByRoleIdModuleId(QApplication::$objUserAccount->RoleId, 3);
     if ($objRoleModule->AccessFlag) {
         $objRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId($objRoleModule->RoleModuleId, 2);
         if ($objRoleModuleAuthorization->AuthorizationLevelId == 3) {
             $this->blnShowInventory = false;
         }
     } else {
         $this->blnShowInventory = false;
     }
     // Call Setup Receipt to either load existing or create new receipt
     $this->SetupReceipt();
     // Create the Header Menu
     $this->ctlHeaderMenu_Create();
     // Create the Shortcut Menu
     $this->ctlShortcutMenu_Create();
     // Create the labels
     $this->lblHeaderReceipt_Create();
     $this->lblFromCompany_Create();
     $this->lblFromContact_Create();
     $this->lblToContact_Create();
     $this->lblToAddress_Create();
     $this->lblReceiptNumber_Create();
     $this->pnlNote_Create();
     $this->lblDueDate_Create();
     $this->lblReceiptDate_Create();
     // Create the inputs
     $this->lstFromCompany_Create();
     $this->lblNewFromCompany_Create();
     $this->lstFromContact_Create();
     $this->lblNewFromContact_Create();
     $this->lstToContact_Create();
     $this->lblNewToContact_Create();
     $this->lstToAddress_Create();
     $this->lblNewToAddress_Create();
     $this->txtNote_Create();
     // Create all custom asset fields - this must be here for tab ordering
     $this->customFields_Create();
     if ($this->blnShowInventory) {
         $this->txtNewInventoryModelCode_Create();
         $this->ctlInventorySearchTool_Create();
         $this->txtQuantity_Create();
         $this->btnAddInventory_Create();
     }
     $this->txtNewAssetCode_Create();
     $this->rblAssetType_Create();
     $this->lstAssetModel_Create();
     $this->chkAutoGenerateAssetCode_Create();
     $this->calDueDate_Create();
     $this->calDateReceived_Create();
     if (QApplication::$TracmorSettings->CustomReceiptNumbers) {
         $this->txtReceiptNumber_Create();
     }
     // Create the buttons
     $this->btnSave_Create();
     $this->btnEdit_Create();
     $this->btnCancel_Create();
     $this->btnDelete_Create();
     $this->atcAttach_Create();
     $this->pnlAttachments_Create();
     $this->btnAddAsset_Create();
     $this->ctlAssetSearchTool_Create();
     //Set display logic of Built-In Fields
     $this->UpdateBuiltInFields();
     // Set display logic of certain Entities
     $this->UpdateAddressAccess();
     $this->UpdateCompanyAccess();
     $this->UpdateContactAccess();
     // Check prerequisites for scheduling receipts
     $this->CheckPrerequisites();
     // Create the datagrids
     $this->dtgAssetTransact_Create();
     $this->dtgInventoryTransact_Create();
     // New entities Dialog
     $this->dlgNew_Create();
     // Load the objAssetTransactionArray and objInventoryTransactionArray for the first time
     if ($this->blnEditMode) {
         $objClauses = array();
         if ($objClause = $this->dtgAssetTransact->OrderByClause) {
             array_push($objClauses, $objClause);
         }
         /*if ($objClause = $this->dtgAssetTransact->LimitClause)
         		array_push($objClauses, $objClause);*/
         if ($objClause = QQ::Expand(QQN::AssetTransaction()->Asset->AssetModel)) {
             array_push($objClauses, $objClause);
         }
         $this->objAssetTransactionArray = AssetTransaction::LoadArrayByTransactionId($this->objReceipt->TransactionId, $objClauses);
         $objClauses = null;
         $objClauses = array();
         if ($objClause = $this->dtgInventoryTransact->OrderByClause) {
             array_push($objClauses, $objClause);
         }
         /*if ($objClause = $this->dtgInventoryTransact->LimitClause)
         		array_push($objClauses, $objClause);*/
         if ($objClause = QQ::Expand(QQN::InventoryTransaction()->InventoryLocation->InventoryModel)) {
         }
         array_push($objClauses, $objClause);
         $this->objInventoryTransactionArray = InventoryTransaction::LoadArrayByTransactionId($this->objReceipt->TransactionId, $objClauses);
         $this->DisplayLabels();
     } elseif (!$this->blnEditMode) {
         $this->DisplayInputs();
     }
     // Check if there is an Asset or InventoryModel ID in the query string to automatically add them - they would be coming from AssetEdit or InventoryEdit
     if (!$this->blnEditMode) {
         $intAssetId = QApplication::QueryString('intAssetId');
         // If an Asset was passed in the query string, load the txt in the Asset Code text box and click the add button
         if ($intAssetId) {
             $objAsset = Asset::Load($intAssetId);
             if ($objAsset) {
                 $this->txtNewAssetCode->Text = $objAsset->AssetCode;
                 $this->btnAddAsset_Click($this, null, null);
             }
         }
         $intInventoryModelId = QApplication::QueryString('intInventoryModelId');
         // If an InventoryModel was passed in the query string, load the text in the InventoryModel text box and set the focus to the quantity box
         if ($intInventoryModelId) {
             $objInventoryModel = InventoryModel::Load($intInventoryModelId);
             if ($objInventoryModel) {
                 $this->txtNewInventoryModelCode->Text = $objInventoryModel->InventoryModelCode;
                 $this->txtQuantity->Focus();
             }
         }
     }
 }
Beispiel #2
0
    /**
     * Load an array of Shortcut objects,
     * by QApplication::$objRoleModule->RoleModuleId and by the Role Edit Access to the Built-in Fields of the Module.
     * @param string $strOrderBy
     * @param string $strLimit
     * @param array $objExpansionMap map of referenced columns to be immediately expanded via early-binding
     * @return Shortcut[]
     */
    public static function LoadArrayByRoleModule($strOrderBy = null, $strLimit = null, $objExpansionMap = null)
    {
        // Call to ArrayQueryHelper to Get Database Object and Get SQL Clauses
        Shortcut::ArrayQueryHelper($strOrderBy, $strLimit, $strLimitPrefix, $strLimitSuffix, $strExpandSelect, $strExpandFrom, $objExpansionMap, $objDatabase);
        // Properly Escape All Input Parameters using Database->SqlVariable()
        $intModuleId = $objDatabase->SqlVariable(QApplication::$objRoleModule->ModuleId, true);
        $intRoleId = $objDatabase->SqlVariable(QApplication::$objRoleModule->RoleId, true);
        $objViewRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId(QApplication::$objRoleModule->RoleModuleId, 1);
        if (!$objViewRoleModuleAuthorization) {
            throw new Exception('No valid RoleModuleAuthorization for this User Role.');
        } elseif ($objViewRoleModuleAuthorization->AuthorizationLevelId == 1 || $objViewRoleModuleAuthorization->AuthorizationLevelId == 2) {
            $blnView = true;
        } else {
            $blnView = false;
        }
        $objEditRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId(QApplication::$objRoleModule->RoleModuleId, 2);
        if (!$objEditRoleModuleAuthorization) {
            throw new Exception('No valid RoleModuleAuthorization for this User Role.');
        } elseif ($objEditRoleModuleAuthorization->AuthorizationLevelId == 1 || $objEditRoleModuleAuthorization->AuthorizationLevelId == 2) {
            $blnEdit = true;
        } else {
            $blnEdit = false;
        }
        if ($blnView && $blnEdit) {
            $strAuthorizationSql = 'AND (`shortcut`.`authorization_id` = 1 OR `shortcut`.`authorization_id` = 2)';
        } elseif ($blnView) {
            $strAuthorizationSql = 'AND `shortcut`.`authorization_id` = 1';
        } elseif ($blnEdit) {
            $strAuthorizationSql = 'AND `shortcut`.`authorization_id` = 2';
        } else {
            $strAuthorizationSql = 'AND `shortcut`.`authorization_id` != 1 AND `shortcut`.`authorization_id` != 2';
        }
        //Set the entities sql according to the Module
        switch (QApplication::$objRoleModule->ModuleId) {
            case 2:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=1 OR `FLA`.`entity_qtype_id`=4)';
                break;
            case 3:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=2)';
                break;
            case 4:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=7 OR `FLA`.`entity_qtype_id`=8 OR `FLA`.`entity_qtype_id`=9)';
                break;
            case 5:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=10)';
                break;
            case 6:
                $strEntitiesSql = 'AND (`FLA`.`entity_qtype_id`=11)';
                break;
            case 7:
                $strEntitiesSql = '';
                break;
        }
        // Setup the SQL Query that checks "edit" authorization to the module
        $strQuery = sprintf('
				SELECT
				%s
					`shortcut`.`shortcut_id` AS `shortcut_id`,
					`shortcut`.`module_id` AS `module_id`,
					`shortcut`.`authorization_id` AS `authorization_id`,
					`shortcut`.`short_description` AS `short_description`,
					`shortcut`.`link` AS `link`,
					`shortcut`.`image_path` AS `image_path`,
					`shortcut`.`entity_qtype_id` AS `entity_qtype_id`,
					`shortcut`.`create_flag` AS `create_flag`
					%s
				FROM
					`shortcut` AS `shortcut`,
					`role_entity_qtype_built_in_authorization` AS `FLA`					
					%s
				WHERE
					(`FLA`.`role_id` %s
					%s
					AND `FLA`.`authorization_id`=2)				
					AND `shortcut`.`module_id` %s
					%s
					AND (`shortcut`.`entity_qtype_id`=`FLA`.`entity_qtype_id`)
					AND (`shortcut`.`create_flag`=0 OR `FLA`.`authorized_flag`=1)					
				%s
				%s', $strLimitPrefix, $strExpandSelect, $strExpandFrom, $intRoleId, $strEntitiesSql, $intModuleId, $strAuthorizationSql, $strOrderBy, $strLimitSuffix);
        // Perform the Query and Instantiate the Result
        $objDbResult = $objDatabase->Query($strQuery);
        return Shortcut::InstantiateDbResult($objDbResult);
    }
 /**
  * This function returns the SQL necessary for all Load and Count scripts for list pages
  *
  * @param string $strEntity 'asset', 'company', e.g., the name of the table
  */
 public static function AuthorizationSql($strEntity)
 {
     // if $objRoleModule is empty, then they are in the administration module so they have access to everything
     if (empty(QApplication::$objRoleModule)) {
         $strToReturn = '';
     } else {
         // Load the RoleModuleAuthorization
         $objRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId(QApplication::$objRoleModule->RoleModuleId, 1);
         if (!$objRoleModuleAuthorization) {
             throw new Exception('No valid RoleModuleAuthorization for this User Role.');
         } elseif ($objRoleModuleAuthorization->AuthorizationLevelId == 2) {
             $strToReturn = sprintf('AND `%s` . `created_by` = %s', $strEntity, QApplication::$objUserAccount->UserAccountId);
         } elseif ($objRoleModuleAuthorization->AuthorizationLevelId == 3) {
             $strToReturn = sprintf('AND `%s` . `created_by` = 0', $strEntity);
         } else {
             $strToReturn = '';
         }
     }
     return $strToReturn;
 }
Beispiel #4
0
 /**
  * This function returns the SQL necessary for all Load and Count scripts for list pages
  *
  * @param string $strEntity 'asset', 'company', e.g., the name of the table
  */
 public static function AuthorizationSql($strEntity)
 {
     // Load the RoleModuleAuthorization
     $objRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId(QApplication::$objRoleModule->RoleModuleId, 1);
     if (!$objRoleModuleAuthorization) {
         throw new Exception('No valid RoleModuleAuthorization for this User Role.');
     } elseif ($objRoleModuleAuthorization->AuthorizationLevelId == 2) {
         $strToReturn = sprintf('AND `%s` . `created_by` = %s', $strEntity, QApplication::$objUserAccount->UserAccountId);
     } elseif ($objRoleModuleAuthorization->AuthorizationLevelId == 3) {
         $strToReturn = sprintf('AND `%s` . `created_by` = 0', $strEntity);
     } else {
         $strToReturn = '';
     }
     return $strToReturn;
 }
Beispiel #5
0
 protected function arrControls_Create()
 {
     if ($this->objModuleArray) {
         foreach ($this->objModuleArray as $objModule) {
             // Create Access List Controls
             $objAccessControl = new QListBox($this);
             $objAccessControl->ActionParameter = $objModule->ModuleId;
             $objAccessControl->Width = 100;
             $objAccessControl->CssClass = "greentext";
             $objEnabledItem = new QListItem('Enabled', 1, false, null, 'CssClass="greentext"');
             $objDisabledItem = new QListItem('Disabled', 0, false, null, 'CssClass="redtext"');
             if ($this->blnEditMode) {
                 $objRoleModule = RoleModule::LoadByRoleIdModuleId($this->objRole->RoleId, $objModule->ModuleId);
                 if ($objRoleModule) {
                     if ($objRoleModule->AccessFlag) {
                         $objEnabledItem->Selected = true;
                         $objDisabledItem->Selected = false;
                         $objAccessControl->CssClass = "greentext";
                     } else {
                         $objEnabledItem->Selected = false;
                         $objDisabledItem->Selected = true;
                         $objAccessControl->CssClass = "redtext";
                     }
                 }
             }
             // Add Items to Access Control
             $objAccessControl->AddItem($objEnabledItem);
             $objAccessControl->AddItem($objDisabledItem);
             $objAccessControl->AddAction(new QChangeEvent(), new QAjaxAction('lstAccessControl_Select'));
             // Set the List Item objects to null because QCodo will maintain them in the formstate otherwise
             $objEnabledItem = null;
             $objDisabledItem = null;
             $this->arrControls[$objModule->ShortDescription]['access'] = $objAccessControl;
             $objAccessControl = null;
             if ($this->objAuthorizationArray) {
                 foreach ($this->objAuthorizationArray as $objAuthorization) {
                     // Create Authorization Controls foreach authorization type (view/edit/delete)
                     // We could loop through AuthorizationLevels here, but no need to right now
                     $objControl = new QListBox($this);
                     $objControl->Width = 100;
                     $objControl->ActionParameter = $objModule->ModuleId;
                     $objAllItem = new QListItem('All', 1);
                     $objOwnerItem = new QListItem('Owner', 2);
                     $objNoneItem = new QListItem('None', 3);
                     if ($this->blnEditMode && $objRoleModule) {
                         $objControl->Enabled = $objRoleModule->AccessFlag ? true : false;
                         $objRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId($objRoleModule->RoleModuleId, $objAuthorization->AuthorizationId);
                         if ($objRoleModuleAuthorization) {
                             // Select the Proper Authorization Level
                             if ($objRoleModuleAuthorization->AuthorizationLevelId == 1) {
                                 $objAllItem->Selected = true;
                                 $objOwnerItem->Selected = false;
                                 $objNoneItem->Selected = false;
                             } elseif ($objRoleModuleAuthorization->AuthorizationLevelId == 2) {
                                 $objAllItem->Selected = false;
                                 $objOwnerItem->Selected = true;
                                 $objNoneItem->Selected = false;
                             } elseif ($objRoleModuleAuthorization->AuthorizationLevelId == 3) {
                                 $objAllItem->Selected = false;
                                 $objOwnerItem->Selected = false;
                                 $objNoneItem->Selected = true;
                             }
                         }
                         // Add the RoleModuleAuthorization to an array so that it can be checked for Optimistic Locking Constraints when saving
                         $this->objRoleModuleAuthorizationArray[$objRoleModule->RoleModuleId . '-' . $objAuthorization->AuthorizationId] = $objRoleModuleAuthorization;
                         $objRoleModuleAuthorization = null;
                     } else {
                         $objAllItem->Selected = true;
                     }
                     $objControl->AddItem($objAllItem);
                     $objControl->AddItem($objOwnerItem);
                     // Do not include the 'None' List Item for View
                     // If an administrator does not want to allow for viewing, they should disable access. This eliminates the problem of setting View: None, but Edit: All
                     // The problem with View: Owner and Edit: All still exists
                     if ($objAuthorization->AuthorizationId != 1) {
                         $objControl->AddItem($objNoneItem);
                     }
                     $objAllItem = null;
                     $objOwnerItem = null;
                     $objNoneItem = null;
                     // Assign the Controls array
                     if ($objAuthorization->ShortDescription == 'edit') {
                         $objControl->AddAction(new QChangeEvent(), new QAjaxAction('lstEdit_Change'));
                         $arrEditControlIdModuleId[] = $objControl->ControlId . "-" . $objModule->ModuleId;
                         //$this->lstEdit_Change($this->FormId, $objControl->ControlId, $objModule->ModuleId);
                     }
                     $this->arrControls[$objModule->ShortDescription][$objAuthorization->ShortDescription] = $objControl;
                     $objControl = null;
                 }
             }
             $objRoleModule = null;
         }
     }
     foreach ($arrEditControlIdModuleId as $strControlIdModuleId) {
         $arrExplode = explode("-", $strControlIdModuleId);
         $this->lstEdit_Change($this->FormId, $arrExplode[0], $arrExplode[1]);
     }
     // Create control for Move
     $objControl = new QListBox($this);
     $objControl->Width = 100;
     $objAllItem = new QListItem('All', 1);
     $objOwnerItem = new QListItem('Owner', 2);
     $objNoneItem = new QListItem('None', 3);
     $objControl->ActionParameter = 1;
     if ($this->blnEditMode) {
         $objRoleTransactionTypeAuthorization = RoleTransactionTypeAuthorization::LoadByRoleIdTransactionTypeId($this->objRole->RoleId, 1);
         if ($objRoleTransactionTypeAuthorization) {
             // Select the Proper Authorization Level
             if ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 1) {
                 $objAllItem->Selected = true;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 2) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = true;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 3) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = true;
             }
         }
     }
     $objControl->AddItem($objAllItem);
     $objControl->AddItem($objOwnerItem);
     $objControl->AddItem($objNoneItem);
     $this->arrControls['move'] = $objControl;
     // Create control for Check In/Out
     $objControl = new QListBox($this);
     $objControl->Width = 100;
     $objAllItem = new QListItem('All', 1);
     $objOwnerItem = new QListItem('Owner', 2);
     $objNoneItem = new QListItem('None', 3);
     $objControl->ActionParameter = 2;
     if ($this->blnEditMode) {
         $objRoleTransactionTypeAuthorization = RoleTransactionTypeAuthorization::LoadByRoleIdTransactionTypeId($this->objRole->RoleId, 2);
         if ($objRoleTransactionTypeAuthorization) {
             // Select the Proper Authorization Level
             if ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 1) {
                 $objAllItem->Selected = true;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 2) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = true;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 3) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = true;
             }
         }
     }
     $objControl->AddItem($objAllItem);
     $objControl->AddItem($objOwnerItem);
     $objControl->AddItem($objNoneItem);
     $this->arrControls['check_in_out'] = $objControl;
     // Create control for Reserve/Unreserve
     $objControl = new QListBox($this);
     $objControl->Width = 100;
     $objAllItem = new QListItem('All', 1);
     $objOwnerItem = new QListItem('Owner', 2);
     $objNoneItem = new QListItem('None', 3);
     $objControl->ActionParameter = 3;
     if ($this->blnEditMode) {
         $objRoleTransactionTypeAuthorization = RoleTransactionTypeAuthorization::LoadByRoleIdTransactionTypeId($this->objRole->RoleId, 8);
         if ($objRoleTransactionTypeAuthorization) {
             // Select the Proper Authorization Level
             if ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 1) {
                 $objAllItem->Selected = true;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 2) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = true;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 3) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = true;
             }
         }
     }
     $objControl->AddItem($objAllItem);
     $objControl->AddItem($objOwnerItem);
     $objControl->AddItem($objNoneItem);
     $this->arrControls['reserve_unreserve'] = $objControl;
     // Create control for Take Out
     $objControl = new QListBox($this);
     $objControl->Width = 100;
     $objAllItem = new QListItem('All', 1);
     $objOwnerItem = new QListItem('Owner', 2);
     $objNoneItem = new QListItem('None', 3);
     $objControl->ActionParameter = 4;
     if ($this->blnEditMode) {
         $objRoleTransactionTypeAuthorization = RoleTransactionTypeAuthorization::LoadByRoleIdTransactionTypeId($this->objRole->RoleId, 5);
         if ($objRoleTransactionTypeAuthorization) {
             // Select the Proper Authorization Level
             if ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 1) {
                 $objAllItem->Selected = true;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 2) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = true;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 3) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = true;
             }
         }
     }
     $objControl->AddItem($objAllItem);
     $objControl->AddItem($objOwnerItem);
     $objControl->AddItem($objNoneItem);
     $this->arrControls['take_out'] = $objControl;
     // Create control for Restock
     $objControl = new QListBox($this);
     $objControl->Width = 100;
     $objAllItem = new QListItem('All', 1);
     $objOwnerItem = new QListItem('Owner', 2);
     $objNoneItem = new QListItem('None', 3);
     $objControl->ActionParameter = 5;
     if ($this->blnEditMode) {
         $objRoleTransactionTypeAuthorization = RoleTransactionTypeAuthorization::LoadByRoleIdTransactionTypeId($this->objRole->RoleId, 4);
         if ($objRoleTransactionTypeAuthorization) {
             // Select the Proper Authorization Level
             if ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 1) {
                 $objAllItem->Selected = true;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 2) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = true;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 3) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = true;
             }
         }
     }
     $objControl->AddItem($objAllItem);
     $objControl->AddItem($objOwnerItem);
     $objControl->AddItem($objNoneItem);
     $this->arrControls['restock'] = $objControl;
     // Create control for Check In/Out
     $objControl = new QListBox($this);
     $objControl->Width = 100;
     $objAllItem = new QListItem('All', 1);
     $objOwnerItem = new QListItem('Owner', 2);
     $objNoneItem = new QListItem('None', 3);
     $objControl->ActionParameter = 6;
     if ($this->blnEditMode) {
         $objRoleTransactionTypeAuthorization = RoleTransactionTypeAuthorization::LoadByRoleIdTransactionTypeId($this->objRole->RoleId, 10);
         if ($objRoleTransactionTypeAuthorization) {
             // Select the Proper Authorization Level
             if ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 1) {
                 $objAllItem->Selected = true;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 2) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = true;
                 $objNoneItem->Selected = false;
             } elseif ($objRoleTransactionTypeAuthorization->AuthorizationLevelId == 3) {
                 $objAllItem->Selected = false;
                 $objOwnerItem->Selected = false;
                 $objNoneItem->Selected = true;
             }
         }
     }
     $objControl->AddItem($objAllItem);
     $objControl->AddItem($objOwnerItem);
     $objControl->AddItem($objNoneItem);
     $this->arrControls['archive_unarchive'] = $objControl;
 }
Beispiel #6
0
 protected function Form_Create()
 {
     // check rigths for the Inventory to Ship
     $this->blnShowInventory = true;
     $objRoleModule = RoleModule::LoadByRoleIdModuleId(QApplication::$objUserAccount->RoleId, 3);
     if ($objRoleModule->AccessFlag) {
         $objRoleModuleAuthorization = RoleModuleAuthorization::LoadByRoleModuleIdAuthorizationId($objRoleModule->RoleModuleId, 2);
         if ($objRoleModuleAuthorization->AuthorizationLevelId == 3) {
             $this->blnShowInventory = false;
         }
     } else {
         $this->blnShowInventory = false;
     }
     // Call SetupShipment to either Load/Edit Existing or Create New
     $this->SetupShipment();
     $this->objCompanyArray = Company::LoadAll(QQ::Clause(QQ::OrderBy(QQN::Company()->ShortDescription)));
     // Create the Header Menu
     $this->ctlHeaderMenu_Create();
     // Create the Shortcut Menu
     $this->ctlShortcutMenu_Create();
     // Packing List Link
     $this->lblPackingListLink_Create();
     // Shipping Labels
     $this->lblShipmentNumber_Create();
     $this->lblHeaderShipment_Create();
     $this->lblShipDate_Create();
     $this->lblFromCompany_Create();
     $this->lblFromContact_Create();
     $this->lblFromAddress_Create();
     $this->lstToCompany_Create();
     $this->lblNewToCompany_Create();
     $this->lstToContact_Create();
     $this->lblNewToContact_Create();
     $this->lstToAddress_Create();
     $this->lblNewToAddress_Create();
     $this->lblFromAddressFull_Create();
     $this->lblToCompany_Create();
     $this->lblToContact_Create();
     $this->lblToAddress_Create();
     $this->lblToAddressFull_Create();
     $this->lblCourier_Create();
     $this->pnlNote_Create();
     $this->lblTrackingNumber_Create();
     // Shipping Inputs
     $this->dlgExchange_Create();
     $this->dlgDueDate_Create();
     $this->calShipDate_Create();
     $this->lstFromCompany_Create();
     $this->lblNewFromCompany_Create();
     $this->lstFromContact_Create();
     $this->lblNewFromContact_Create();
     $this->lstFromAddress_Create();
     $this->lblNewFromAddress_Create();
     if (QApplication::$TracmorSettings->CustomShipmentNumbers) {
         $this->txtShipmentNumber_Create();
     }
     $this->lstCourier_Create();
     $this->txtNote_Create();
     $this->txtNewAssetCode_Create();
     if ($this->blnShowInventory) {
         $this->txtNewInventoryModelCode_Create();
         $this->btnLookup_Create();
         $this->ctlInventorySearchTool_Create();
         $this->lstSourceLocation_Create();
         $this->txtQuantity_Create();
         $this->btnAddInventory_Create();
     }
     $this->txtTrackingNumber_Create();
     //$this->lblAdvanced_Create();
     $this->txtReceiptAssetCode_Create();
     $this->chkAutoGenerateAssetCode_Create();
     $this->dtpScheduleReceiptDueDate_Create();
     $this->rblAssetType_Create();
     $this->chkScheduleReceipt_Create();
     $this->btnAddAsset_Create();
     $this->ctlAssetSearchTool_Create();
     $this->btnSaveExchange_Create();
     $this->btnCancelExchange_Create();
     $this->btnSaveDueDate_Create();
     $this->btnCancelDueDate_Create();
     $this->pnlAttachments_Create();
     // Create all custom asset fields
     $this->customFields_Create();
     //Set display logic of Built-In Fields
     $this->UpdateBuiltInFields();
     $this->UpdateAddressAccess();
     $this->UpdateCompanyAccess();
     $this->UpdateContactAccess();
     // New entities Dialog
     $this->dlgNew_Create();
     if (!$this->objShipment->ShippedFlag) {
         // Shipping Buttons
         $this->btnDelete_Create();
     }
     $this->btnSave_Create();
     $this->btnCancel_Create();
     $this->btnEdit_Create();
     $this->atcAttach_Create();
     // Complete Shipment Buttons
     $this->btnCompleteShipment_Create();
     $this->btnCancelShipment_Create();
     $this->btnCancelCompleteShipment_Create();
     // Shipping Datagrids
     $this->dtgAssetTransact_Create();
     $this->dtgInventoryTransact_Create();
     // Load the objAssetTransactionArray and objInventoryTransactionArray for the first time
     if ($this->blnEditMode) {
         $objClauses = array();
         if ($objClause = $this->dtgAssetTransact->OrderByClause) {
             array_push($objClauses, $objClause);
         }
         /*if ($objClause = $this->dtgAssetTransact->LimitClause)
         		array_push($objClauses, $objClause);*/
         if ($objClause = QQ::Expand(QQN::AssetTransaction()->Asset->AssetModel)) {
             array_push($objClauses, $objClause);
         }
         if ($objClause = QQ::Expand(QQN::AssetTransaction()->SourceLocation)) {
         }
         array_push($objClauses, $objClause);
         $this->objAssetTransactionArray = AssetTransaction::LoadArrayByTransactionId($this->objShipment->TransactionId, $objClauses);
         $objClauses = null;
         $objClauses = array();
         if ($objClause = $this->dtgInventoryTransact->OrderByClause) {
             array_push($objClauses, $objClause);
         }
         /*if ($objClause = $this->dtgInventoryTransact->LimitClause)
         		array_push($objClauses, $objClause);*/
         if ($objClause = QQ::Expand(QQN::InventoryTransaction()->InventoryLocation->InventoryModel)) {
         }
         array_push($objClauses, $objClause);
         $this->objInventoryTransactionArray = InventoryTransaction::LoadArrayByTransactionId($this->objShipment->TransactionId, $objClauses);
         // If shipped, display labels. Otherwise, we don't need to call DisplayLabels because only labels are on the QPanel.
         $this->DisplayLabels();
     } elseif (!$this->blnEditMode) {
         $this->DisplayInputs();
     }
     // Check if there is an Asset or InventoryModel ID in the query string to automatically add them - they would be coming from AssetEdit or InventoryEdit
     if (!$this->blnEditMode) {
         $intAssetId = QApplication::QueryString('intAssetId');
         // If an Asset was passed in the query string, load the txt in the Asset Tag text box and click the add button
         if ($intAssetId) {
             $objAsset = Asset::Load($intAssetId);
             if ($objAsset) {
                 $this->txtNewAssetCode->Text = $objAsset->AssetCode;
                 $this->btnAddAsset_Click($this, null, null);
             }
         }
         $intInventoryModelId = QApplication::QueryString('intInventoryModelId');
         // If an InventoryModel was passed in the query string, load the text in the InventoryModel text box and set the focus to the quantity box
         if ($intInventoryModelId) {
             $objInventoryModel = InventoryModel::Load($intInventoryModelId);
             if ($objInventoryModel) {
                 $this->txtNewInventoryModelCode->Text = $objInventoryModel->InventoryModelCode;
                 $this->btnLookup_Click($this, null, null);
                 QApplication::ExecuteJavaScript(sprintf("document.getElementById('%s').focus()", $this->lstSourceLocation->ControlId));
             }
         }
     }
 }