167 lines
4.5 KiB
C++
167 lines
4.5 KiB
C++
|
//Copyright (c) 1998 - 1999 Microsoft Corporation
|
||
|
#include "precomp.h"
|
||
|
|
||
|
|
||
|
LRW_DLG_INT CALLBACK
|
||
|
CHRegisterSelectDlgProc(
|
||
|
IN HWND hwnd,
|
||
|
IN UINT uMsg,
|
||
|
IN WPARAM wParam,
|
||
|
IN LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
DWORD dwNextPage = 0;
|
||
|
BOOL bStatus = TRUE;
|
||
|
PageInfo *pi = (PageInfo *)LRW_GETWINDOWLONG( hwnd, LRW_GWL_USERDATA );
|
||
|
|
||
|
switch (uMsg)
|
||
|
{
|
||
|
case WM_INITDIALOG:
|
||
|
{
|
||
|
CString sProductType;
|
||
|
|
||
|
pi = (PageInfo *)((LPPROPSHEETPAGE)lParam)->lParam;
|
||
|
LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, (LRW_LONG_PTR)pi );
|
||
|
|
||
|
SendDlgItemMessage(hwnd, IDC_TXT_ENROLLMENT_NUMBER, EM_SETLIMITTEXT, CH_SELECT_ENROLLMENT_NUMBER,0);
|
||
|
SendDlgItemMessage(hwnd, IDC_TXT_QUANTITY, EM_SETLIMITTEXT, CH_QTY_LEN,0);
|
||
|
|
||
|
PopulateProductComboBox(GetDlgItem(hwnd,IDC_CMD_PRODUCT_TYPE));
|
||
|
|
||
|
//
|
||
|
//Set the properties of the up-down control
|
||
|
//
|
||
|
SendDlgItemMessage(hwnd, IDC_SPIN1, UDM_SETBUDDY, (WPARAM)(HWND)GetDlgItem(hwnd,IDC_TXT_QUANTITY),(LPARAM)0);
|
||
|
SendDlgItemMessage(hwnd, IDC_SPIN1, UDM_SETRANGE, 0,(LPARAM) MAKELONG (9999, 1));
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case WM_DESTROY:
|
||
|
LRW_SETWINDOWLONG( hwnd, LRW_GWL_USERDATA, NULL );
|
||
|
break;
|
||
|
|
||
|
case WM_NOTIFY:
|
||
|
{
|
||
|
LPNMHDR pnmh = (LPNMHDR)lParam;
|
||
|
|
||
|
switch( pnmh->code )
|
||
|
{
|
||
|
case PSN_SETACTIVE:
|
||
|
PropSheet_SetWizButtons( GetParent( hwnd ), PSWIZB_NEXT | PSWIZB_BACK);
|
||
|
break;
|
||
|
|
||
|
case PSN_WIZNEXT:
|
||
|
{
|
||
|
CString sProductCode;
|
||
|
CString sProduct;
|
||
|
CString sAgreementNumber;
|
||
|
CString sEnrollmentNumber;
|
||
|
CString sQuantity;
|
||
|
LPTSTR lpVal = NULL;
|
||
|
TCHAR lpBuffer[ 128];
|
||
|
DWORD dwRetCode;
|
||
|
int nCurSel = -1;
|
||
|
|
||
|
//
|
||
|
//Read all the fields
|
||
|
//
|
||
|
lpVal = sEnrollmentNumber.GetBuffer(CH_SELECT_ENROLLMENT_NUMBER+1);
|
||
|
GetDlgItemText(hwnd,IDC_TXT_ENROLLMENT_NUMBER,lpVal,CH_SELECT_ENROLLMENT_NUMBER+1);
|
||
|
sEnrollmentNumber.ReleaseBuffer(-1);
|
||
|
|
||
|
lpVal = sQuantity.GetBuffer(CH_QTY_LEN+2);
|
||
|
GetDlgItemText(hwnd,IDC_TXT_QUANTITY, lpBuffer,CH_QTY_LEN+2);
|
||
|
TCHAR *lpStart = lpBuffer;
|
||
|
do
|
||
|
{
|
||
|
if (*lpStart != (TCHAR) ',')
|
||
|
{
|
||
|
*lpVal++ = *lpStart;
|
||
|
}
|
||
|
} while ( *lpStart++ );
|
||
|
sQuantity.ReleaseBuffer(-1);
|
||
|
|
||
|
nCurSel = ComboBox_GetCurSel(GetDlgItem(hwnd,IDC_CMD_PRODUCT_TYPE));
|
||
|
|
||
|
lpVal = sProduct.GetBuffer(LR_PRODUCT_DESC_LEN+1);
|
||
|
ComboBox_GetLBText(GetDlgItem(hwnd,IDC_CMD_PRODUCT_TYPE), nCurSel, lpVal);
|
||
|
sProduct.ReleaseBuffer(-1);
|
||
|
|
||
|
// Send Product Code instead of Desc -- 01/08/99
|
||
|
lpVal = sProductCode.GetBuffer(16);
|
||
|
GetProductCode(sProduct,lpVal);
|
||
|
sProductCode.ReleaseBuffer(-1);
|
||
|
|
||
|
sProductCode.TrimLeft(); sProductCode.TrimRight();
|
||
|
sEnrollmentNumber.TrimLeft();sEnrollmentNumber.TrimRight();
|
||
|
sQuantity.TrimLeft(); sQuantity.TrimRight();
|
||
|
|
||
|
if(
|
||
|
sProduct.IsEmpty() ||
|
||
|
sEnrollmentNumber.IsEmpty() ||
|
||
|
sQuantity.IsEmpty()
|
||
|
)
|
||
|
{
|
||
|
LRMessageBox(hwnd,IDS_ERR_FIELD_EMPTY);
|
||
|
dwNextPage = IDD_CH_REGISTER_SELECT;
|
||
|
goto NextDone;
|
||
|
}
|
||
|
|
||
|
if(
|
||
|
!ValidateLRString(sProduct) ||
|
||
|
!ValidateLRString(sAgreementNumber) ||
|
||
|
!ValidateLRString(sEnrollmentNumber)
|
||
|
)
|
||
|
|
||
|
{
|
||
|
LRMessageBox(hwnd,IDS_ERR_INVALID_CHAR);
|
||
|
dwNextPage = IDD_CH_REGISTER_SELECT;
|
||
|
goto NextDone;
|
||
|
}
|
||
|
|
||
|
if(_wtoi(sQuantity) < 1)
|
||
|
{
|
||
|
LRMessageBox(hwnd,IDS_ERR_INVALID_QTY);
|
||
|
dwNextPage = IDD_CH_REGISTER_SELECT;
|
||
|
goto NextDone;
|
||
|
}
|
||
|
|
||
|
GetGlobalContext()->GetLicDataObject()->sSelProductType = sProductCode; //sProduct;
|
||
|
GetGlobalContext()->GetLicDataObject()->sSelProductDesc = sProduct;
|
||
|
GetGlobalContext()->GetLicDataObject()->sSelMastAgrNumber = sAgreementNumber;
|
||
|
GetGlobalContext()->GetLicDataObject()->sSelEnrollmentNumber = sEnrollmentNumber;
|
||
|
GetGlobalContext()->GetLicDataObject()->sSelQty = sQuantity;
|
||
|
|
||
|
// dwNextPage = IDD_PROCESSING;
|
||
|
|
||
|
dwRetCode = ShowProgressBox(hwnd, ProcessThread, 0, 0, 0);
|
||
|
|
||
|
dwNextPage = IDD_PROGRESS;
|
||
|
LRPush(IDD_CH_REGISTER_SELECT);
|
||
|
NextDone:
|
||
|
LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage);
|
||
|
bStatus = -1;
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case PSN_WIZBACK:
|
||
|
dwNextPage = LRPop();
|
||
|
LRW_SETWINDOWLONG(hwnd, LRW_DWL_MSGRESULT, dwNextPage);
|
||
|
bStatus = -1;
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
bStatus = FALSE;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
bStatus = FALSE;
|
||
|
break;
|
||
|
}
|
||
|
return bStatus;
|
||
|
}
|