|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1999 - 1999
//
// File: dialogs.cpp
//
//--------------------------------------------------------------------------
// Dialogs.cpp: implementation of the CDialogs class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "resource.h"
#include "Dialogs.h"
#include "WindowsX.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW
#endif
// {01B4A693-D970-11d1-8474-00104B211BE5}
static const GUID HealthPlan1GUID = { 0x1b4a693, 0xd970, 0x11d1, { 0x84, 0x74, 0x0, 0x10, 0x4b, 0x21, 0x1b, 0xe5 } };
// {01B4A694-D970-11d1-8474-00104B211BE5}
static const GUID HealthPlan2GUID = { 0x1b4a694, 0xd970, 0x11d1, { 0x84, 0x74, 0x0, 0x10, 0x4b, 0x21, 0x1b, 0xe5 } };
// {01B4A693-D970-11d1-8474-00104B211BE5}
static const GUID InvestmentPlan1GUID = { 0x1b4a695, 0xd970, 0x11d1, { 0x84, 0x74, 0x0, 0x10, 0x4b, 0x21, 0x1b, 0xe5 } };
// {01B4A694-D970-11d1-8474-00104B211BE5}
static const GUID InvestmentPlan2GUID = { 0x1b4a696, 0xd970, 0x11d1, { 0x84, 0x74, 0x0, 0x10, 0x4b, 0x21, 0x1b, 0xe5 } };
// {01B4A694-D970-11d1-8474-00104B211BE5}
static const GUID InvestmentPlan3GUID = { 0x1b4a697, 0xd970, 0x11d1, { 0x84, 0x74, 0x0, 0x10, 0x4b, 0x21, 0x1b, 0xe5 } };
//
// Initialize the static plans for health enrollment.
//
HEALTHPLANDATA g_HealthPlans[ 2 ] = { { L"Plan 1, PPO", &HealthPlan1GUID }, { L"Plan 2, Share Pay", &HealthPlan2GUID }, };
//
// Initialize the static plans for health enrollment.
//
INVESTMENTPLANDATA g_InvestmentPlans[ 3 ] = { { L"Mild Growth Fund", &InvestmentPlan1GUID }, { L"General Fund", &InvestmentPlan2GUID }, { L"Extrememe Growth Fund", &InvestmentPlan3GUID }, };
//
// Initialize the static plans for building information.
//
BUILDINGDATA g_Buildings[ 3 ] = { { L"Human Resources Building", L"Northwest Campus", 0x00000001 }, { L"R. & D. Building", L"Northwest Campus", 0x00000002 }, { L"Test Facilities", L"Off-Campus", 0x00000004 }, };
#ifdef _BENEFITS_DIALOGS
//
// Handler to initialize values in dialog. This should map data from the
// employee to the dialog controls. In this case, all these values will be
// persisted by the root node.
//
LRESULT CHealthEnrollDialog::OnInitDialog( UINT uiMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled ) { UNUSED_ALWAYS( uiMsg ); UNUSED_ALWAYS( wParam ); UNUSED_ALWAYS( lParam ); UNUSED_ALWAYS( fHandled ); _ASSERTE( m_pEmployee != NULL ); USES_CONVERSION; int nSel = 0;
// Add a list of static plan names to the combo.
CWindow wndCombo = GetDlgItem( IDC_COMBO_BENEFITPLAN ); for ( int i = 0; i < sizeof( g_HealthPlans ) / sizeof( HEALTHPLANDATA ); i++ ) { int nIndex = ComboBox_AddString( wndCombo, W2CT( g_HealthPlans[ i ].pstrName ) ); if ( nIndex != CB_ERR ) { //
// Set the item data of this string.
//
ComboBox_SetItemData( wndCombo, nIndex, g_HealthPlans[ i ].pId );
//
// Determine if this matche's the employee's current plan so that
// the current selection can be set.
//
if ( m_pEmployee->m_Health.PlanID == *g_HealthPlans[ i ].pId ) nSel = nIndex; } }
//
// Set the current selection.
//
ComboBox_SetCurSel( wndCombo, nSel );
return( TRUE ); }
//
// Stores the data and attempts to enroll the given user in the specified
// health plan.
//
LRESULT CHealthEnrollDialog::OnOK( WORD /*wNotifyCode*/, WORD /* wID */, HWND /*hWndCtl*/, BOOL& /*bHandled*/ ) { ENROLLPARAMS EnrollParams; GUID* pIdPlan = NULL;
//
// Get prior enrollment.
//
EnrollParams.fEnrolled = IsDlgButtonChecked( IDC_CHK_PRIORCOVERAGE ) == BST_CHECKED; if ( EnrollParams.fEnrolled ) { //
// Get the prior enrollment information.
//
GetDlgItemText( IDC_EDIT_INSURANCECOMPANY, EnrollParams.szInsurerName, sizeof( EnrollParams.szInsurerName ) * sizeof( TCHAR ) ); GetDlgItemText( IDC_EDIT_POLICYNUMBER, EnrollParams.szPolicyNumber, sizeof( EnrollParams.szInsurerName ) * sizeof( TCHAR ) ); if ( EnrollParams.szInsurerName[ 0 ] == ' ' || EnrollParams.szPolicyNumber[ 0 ] == ' ' ) { //
// The dialog text must contain some characters.
//
MessageBox( _T( "The insurance company or policy number you entered is invalid." ) ); } }
//
// Retrieve the selected enrollment plan.
//
CWindow wndCombo = GetDlgItem( IDC_COMBO_BENEFITPLAN ); int nIndex = ComboBox_GetCurSel( wndCombo ); if ( nIndex != CB_ERR ) { //
// Get the associated item data with the combobox entry.
//
pIdPlan = (GUID*) ComboBox_GetItemData( wndCombo, nIndex );
//
// Actually entroll the employee in the health plan.
//
if ( pIdPlan != NULL && Enroll( pIdPlan, &EnrollParams ) ) { //
// Store the plan to our employee.
//
memcpy( &m_pEmployee->m_Health.PlanID, pIdPlan, sizeof( GUID ) );
//
// Inform the user that we successfully enrolled the employee.
//
MessageBox( _T( "The employee was successfully registered." ) );
::EndDialog( m_hWnd, IDOK ); } else { //
// There was an error. Inform the user.
//
MessageBox( _T( "There was an error processing your enrollment info." ) ); } }
return( TRUE ); }
//
// A stub function that could be used to enroll the employee.
//
BOOL CHealthEnrollDialog::Enroll( GUID* pPlan, PENROLLPARAMS pParams ) { UNUSED_ALWAYS( pPlan ); UNUSED_ALWAYS( pParams );
// For demo purposes, this function does nothing but return success.
// This is where one might make a request to a remote database, etc.
return( TRUE ); }
//
// Sets the initial values of the dialog to the employee's current
// investment options.
//
LRESULT CRetirementEnrollDialog::OnInitDialog( UINT uiMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled ) { UNUSED_ALWAYS( uiMsg ); UNUSED_ALWAYS( wParam ); UNUSED_ALWAYS( lParam ); UNUSED_ALWAYS( fHandled ); _ASSERTE( m_pEmployee != NULL ); USES_CONVERSION; int nSel = 0;
//
// Set the edit control containing the benefit amount.
//
SetDlgItemInt( IDC_EDIT_CONTRIBUTION, m_pEmployee->m_Retirement.nContributionRate );
//
// Cycle through the benefit plans and add them to the combo selection.
//
// Add a list of static plan names to the combo.
CWindow wndCombo = GetDlgItem( IDC_COMBO_INVESTMENTFUNDS ); for ( int i = 0; i < sizeof( g_InvestmentPlans ) / sizeof( INVESTMENTPLANDATA ); i++ ) { int nIndex = ComboBox_AddString( wndCombo, W2CT( g_InvestmentPlans[ i ].pstrName ) ); if ( nIndex != CB_ERR ) { //
// Set the item data of this string.
//
ComboBox_SetItemData( wndCombo, nIndex, g_InvestmentPlans[ i ].pId );
//
// Determine if this matche's the employee's current plan so that
// the current selection can be set.
//
if ( m_pEmployee->m_Health.PlanID == *g_InvestmentPlans[ i ].pId ) nSel = nIndex; } }
//
// Set the current selection.
//
ComboBox_SetCurSel( wndCombo, nSel );
return( TRUE ); }
//
// Stores the data and attempts to enroll the given user in the specified
// health plan.
//
LRESULT CRetirementEnrollDialog::OnOK( WORD /*wNotifyCode*/, WORD /* wID */, HWND /*hWndCtl*/, BOOL& /*bHandled*/ ) { GUID* pIdPlan = NULL;
//
// Get the new enrollment amount.
//
int nNewRate = GetDlgItemInt( IDC_EDIT_CONTRIBUTION );
//
// Retrieve the selected enrollment plan.
//
CWindow wndCombo = GetDlgItem( IDC_COMBO_INVESTMENTFUNDS ); int nIndex = ComboBox_GetCurSel( wndCombo ); if ( nIndex != CB_ERR ) { //
// Get the associated item data with the combobox entry.
//
pIdPlan = (GUID*) ComboBox_GetItemData( wndCombo, nIndex );
//
// Actually entroll the employee in the health plan.
//
if ( pIdPlan != NULL && Enroll( pIdPlan, nNewRate ) ) { //
// Store the plan to our employee.
//
memcpy( &m_pEmployee->m_Retirement.PlanID, pIdPlan, sizeof( GUID ) );
//
// Inform the user that we successfully enrolled the employee.
//
MessageBox( _T( "The employee was successfully registered." ) );
::EndDialog( m_hWnd, IDOK ); } else { //
// There was an error. Inform the user.
//
MessageBox( _T( "There was an error processing your enrollment info." ) ); } }
return( TRUE ); }
//
// A stub function that could be used to enroll the employee.
//
BOOL CRetirementEnrollDialog::Enroll( GUID* pPlan, int nNewRate ) { UNUSED_ALWAYS( pPlan ); UNUSED_ALWAYS( nNewRate );
// For demo purposes, this function does nothing but return success.
// This is where one might make a request to a remote database, etc.
return( TRUE ); }
//
// Sets the initial values of the dialog to the employee's current
// investment options.
//
LRESULT CBuildingAccessDialog::OnInitDialog( UINT uiMsg, WPARAM wParam, LPARAM lParam, BOOL& fHandled ) { UNUSED_ALWAYS( uiMsg ); UNUSED_ALWAYS( wParam ); UNUSED_ALWAYS( lParam ); UNUSED_ALWAYS( fHandled ); USES_CONVERSION; _ASSERTE( m_pEmployee != NULL );
//
// Cycle through the benefit plans and add them to the combo selection.
//
// Add a list of static plan names to the combo.
CWindow wndCombo = GetDlgItem( IDC_COMBO_BUILDINGS ); for ( int i = 0; i < sizeof( g_Buildings ) / sizeof( BUILDINGDATA ); i++ ) { int nIndex = ComboBox_AddString( wndCombo, W2CT( g_Buildings[ i ].pstrName ) ); if ( nIndex != CB_ERR ) { //
// Set the item data of this string.
//
ComboBox_SetItemData( wndCombo, nIndex, g_Buildings[ i ].dwId ); } }
//
// Set the default current selection to the first item.
//
ComboBox_SetCurSel( wndCombo, 0 );
return( TRUE ); }
//
// Stores the data and attempts to enroll the given user in the specified
// health plan.
//
LRESULT CBuildingAccessDialog::OnOK( WORD /*wNotifyCode*/, WORD /* wID */, HWND /*hWndCtl*/, BOOL& /*bHandled*/ ) { //
// Retrieve the selected enrollment plan.
//
CWindow wndCombo = GetDlgItem( IDC_COMBO_BUILDINGS ); int nIndex = ComboBox_GetCurSel( wndCombo ); if ( nIndex != CB_ERR ) { DWORD dwBuildingId;
//
// Get the associated item data with the combobox entry.
//
dwBuildingId = ComboBox_GetItemData( wndCombo, nIndex );
//
// Actually entroll the employee in the health plan.
//
if ( GrantAccess( dwBuildingId ) ) { //
// Store the plan to our employee.
//
m_pEmployee->m_Access.dwAccess |= dwBuildingId;
//
// Inform the user that we successfully enrolled the employee.
//
MessageBox( _T( "The employee was successfully granted access." ) );
::EndDialog( m_hWnd, IDOK ); } else { //
// There was an error. Inform the user.
//
MessageBox( _T( "There was an error granting the employee access." ) ); } }
return( TRUE ); }
//
// A stub function that could be used to enroll the employee.
//
BOOL CBuildingAccessDialog::GrantAccess( DWORD dwBuildingId ) { UNUSED_ALWAYS( dwBuildingId );
// For demo purposes, this function does nothing but return success.
// This is where one might make a request to a remote database, etc.
return( TRUE ); }
#endif
|