261 lines
6.0 KiB
C++
261 lines
6.0 KiB
C++
// UserPrefsDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "sp.h"
|
|
#include "UserPrefsDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CUserPrefsDlg dialog
|
|
|
|
|
|
CUserPrefsDlg::CUserPrefsDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CUserPrefsDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CUserPrefsDlg)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
m_pApp= (CSpApp*)AfxGetApp();
|
|
/*
|
|
rs=new GZRset("User preferences RSET dialog");
|
|
rs->SetConnect(m_pApp->strConnectString);
|
|
*/
|
|
//Initialize recordset pointer
|
|
|
|
rs=m_pApp->rsPool->GetRS("CUserPrefsDlg");
|
|
}
|
|
|
|
|
|
void CUserPrefsDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CUserPrefsDlg)
|
|
DDX_Control(pDX, IDC_CKONEDAY, m_ckOneDay);
|
|
DDX_Control(pDX, IDC_CK_SCHEDROUND, m_ckSchedRnd);
|
|
DDX_Control(pDX, IDC_DTSCHEDSTOP, m_dtStop);
|
|
DDX_Control(pDX, IDC_DTSCHEDSTART, m_dtStart);
|
|
DDX_Control(pDX, IDC_CKONSITE, m_ckOnsite);
|
|
DDX_Control(pDX, IDC_CBDEFTRAVEL, m_cbDefTravelRate);
|
|
DDX_Control(pDX, IDC_CBDEFRATE, m_cbRate);
|
|
//}}AFX_DATA_MAP
|
|
DDX_Control(pDX, IDC_CKHGRID, m_ckHGrid);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CUserPrefsDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CUserPrefsDlg)
|
|
ON_BN_CLICKED(IDC_BTNDONE, OnBtndone)
|
|
//}}AFX_MSG_MAP
|
|
ON_BN_CLICKED(IDC_CKHGRID, OnBnClickedCkhgrid)
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CUserPrefsDlg message handlers
|
|
|
|
void CUserPrefsDlg::OnBtndone()
|
|
{
|
|
//save preferences
|
|
CString q,defonsite,schedrnd,schedoneday,strHGrid;
|
|
long lStart,lStop;
|
|
COleDateTime dtData;
|
|
m_dtStop.GetTime(dtData);
|
|
lStop=dtData.GetHour();
|
|
|
|
m_dtStart.GetTime(dtData);
|
|
lStart=dtData.GetHour();
|
|
|
|
|
|
|
|
//default onsite/inhouse
|
|
if(m_ckOnsite.GetCheck()==TRUE)
|
|
{
|
|
defonsite="True";
|
|
m_pApp->m_bDefOnsite=true;
|
|
}
|
|
else
|
|
{
|
|
defonsite="False";
|
|
m_pApp->m_bDefOnsite=false;
|
|
}
|
|
|
|
//default Horizontal grid on main workorder list screen
|
|
if(m_ckHGrid.GetCheck()==TRUE)
|
|
{
|
|
strHGrid="True";
|
|
m_pApp->m_bDefShowHGridOnMainScreen=true;
|
|
}
|
|
else
|
|
{
|
|
strHGrid="False";
|
|
m_pApp->m_bDefShowHGridOnMainScreen=false;
|
|
}
|
|
|
|
//schedule rounding
|
|
if(m_ckSchedRnd.GetCheck()==TRUE)
|
|
{
|
|
schedrnd="True";
|
|
m_pApp->m_bDefSchedRnd=true;
|
|
}
|
|
else
|
|
{
|
|
schedrnd="False";
|
|
m_pApp->m_bDefSchedRnd=false;
|
|
}
|
|
|
|
//schedule schedoneday
|
|
if(m_ckOneDay.GetCheck()==TRUE)
|
|
{
|
|
schedoneday="True";
|
|
m_pApp->m_bDefSchedOneDay=true;
|
|
}
|
|
else
|
|
{
|
|
schedoneday="False";
|
|
m_pApp->m_bDefSchedOneDay=false;
|
|
}
|
|
|
|
q.Format("UPDATE users SET users.defonsite = %s, users.hgrid = %s, users.defrate = %s, users.deftravelrate = %s, "
|
|
"users.defschedstarthour=%u, users.defschedstophour=%u, schedrnd = %s, schedoneday=%s "
|
|
"WHERE (((users.id)=%u));",defonsite,strHGrid,m_cbRate.GetCurrentRowID(),
|
|
m_cbDefTravelRate.GetCurrentRowID(),lStart,lStop,schedrnd, schedoneday, m_pApp->m_lusrID);
|
|
rs->Ex(q);
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CUserPrefsDlg::FillLists()
|
|
{
|
|
//fill travel and regular rates list boxes
|
|
CString strData;
|
|
CString strIndex;
|
|
long lData;
|
|
bool bData;
|
|
m_cbDefTravelRate.Clear();
|
|
m_cbRate.Clear();
|
|
m_cbDefTravelRate.AddRow(" <no default>","0");
|
|
m_cbRate.AddRow(" <no default>","0");
|
|
rs->Query("SELECT rates.* FROM rates ORDER BY rates.name;");
|
|
if(!rs->IsEmpty())
|
|
{
|
|
//fill combo box with available categories
|
|
rs->MoveFirst();
|
|
rs->FetchField("travelrate",&bData);
|
|
rs->FetchField("name",&strData);
|
|
rs->FetchField("id",&lData);
|
|
strIndex.Format("%u",lData);
|
|
if(bData==true)//it's a travel rate
|
|
m_cbDefTravelRate.AddRow(strData,strIndex);
|
|
else
|
|
m_cbRate.AddRow(strData,strIndex);
|
|
while(rs->MoveForward())
|
|
{
|
|
rs->FetchField("travelrate",&bData);
|
|
rs->FetchField("name",&strData);
|
|
rs->FetchField("id",&lData);
|
|
strIndex.Format("%u",lData);
|
|
|
|
if(bData==true)//it's a travel rate
|
|
m_cbDefTravelRate.AddRow(strData,strIndex);
|
|
else
|
|
m_cbRate.AddRow(strData,strIndex);
|
|
}
|
|
|
|
//select default rate
|
|
m_cbRate.SetCurSel(0);
|
|
m_cbDefTravelRate.SetCurSel(0);
|
|
|
|
}
|
|
}
|
|
|
|
BOOL CUserPrefsDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
Security();
|
|
FillLists();
|
|
FillFields();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
CUserPrefsDlg::~CUserPrefsDlg()
|
|
{
|
|
m_pApp->rsPool->ReleaseRS(&rs->m_nID);
|
|
}
|
|
|
|
void CUserPrefsDlg::FillFields()
|
|
{
|
|
CString q,strData;
|
|
long lData;
|
|
bool bData;
|
|
COleDateTime dtData;
|
|
q.Format("SELECT users.* "
|
|
"FROM users "
|
|
"WHERE (((users.id)=%u));",m_pApp->m_lusrID);
|
|
rs->Query(q);
|
|
|
|
rs->FetchField("defrate",&lData);
|
|
strData.Format("%u",lData);
|
|
m_cbRate.Select(strData);
|
|
|
|
rs->FetchField("deftravelrate",&lData);
|
|
strData.Format("%u",lData);
|
|
m_cbDefTravelRate.Select(strData);
|
|
|
|
rs->FetchField("defonsite",&bData);
|
|
m_ckOnsite.SetCheck(bData ? TRUE:FALSE);
|
|
|
|
rs->FetchField("hgrid",&bData);
|
|
m_ckHGrid.SetCheck(bData ? TRUE:FALSE);
|
|
|
|
rs->FetchField("defschedstarthour",&lData);
|
|
dtData.SetTime((int)lData,0,0);
|
|
m_dtStart.SetTime(dtData);
|
|
|
|
rs->FetchField("defschedstophour",&lData);
|
|
dtData.SetTime((int)lData,0,0);
|
|
m_dtStop.SetTime(dtData);
|
|
|
|
rs->FetchField("schedrnd",&bData);
|
|
m_ckSchedRnd.SetCheck(bData ? TRUE:FALSE);
|
|
|
|
rs->FetchField("schedoneday",&bData);
|
|
m_ckOneDay.SetCheck(bData ? TRUE:FALSE);
|
|
|
|
|
|
|
|
}
|
|
|
|
void CUserPrefsDlg::Security()
|
|
{
|
|
int x=m_pApp->Allowed(RUSERPREFS,true);
|
|
if(x==0)
|
|
{
|
|
m_pApp->SecurityWarning();
|
|
CDialog::OnCancel();
|
|
}
|
|
if(x==2)
|
|
{
|
|
m_bReadOnly=true;
|
|
m_cbDefTravelRate.EnableWindow(FALSE);
|
|
m_cbRate.EnableWindow(FALSE);
|
|
m_ckOnsite.EnableWindow(FALSE);
|
|
m_ckHGrid.EnableWindow(FALSE);
|
|
m_dtStart.EnableWindow(FALSE);
|
|
m_dtStop.EnableWindow(FALSE);
|
|
|
|
}
|
|
else
|
|
m_bReadOnly=false;
|
|
}
|
|
|
|
void CUserPrefsDlg::OnBnClickedCkhgrid()
|
|
{
|
|
// Didn't need this, but easier to leave in
|
|
}
|