// TakeControlDlg2.cpp : implementation file
//

#include "stdafx.h"
#include "ylgl.h"
#include "TakeControlDlg2.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// TakeControlDlg2 dialog IDC_EDITtime4
TakeControlDlg2::TakeControlDlg2(CWnd* pParent /*=NULL*/)
: CDialog(TakeControlDlg2::IDD, pParent)
{
	//{{AFX_DATA_INIT(TakeControlDlg2)
	m_name1 = _T("");
	m_name2 = _T("");
	m_time2 = _T("");
	m_id = _T("");
	m_bz2 = _T("");
	m_clothescount = _T("");
	m_outside = _T("");
	m_ren = _T("");
	m_taoxiname = _T("");
	m_time4 = _T("");
	m_time5 = _T("");
	m_time6 = _T("");
	m_datetime4 = _T("");
	m_limitcount = atoi(g_cominfoarray.ElementAt(0).ElementAt(83)); if (m_limitcount == 0)m_limitcount = 10;
	m_bModify = 0;
	m_pIdArray = NULL;
	m_pBranchArray = NULL;
	//}}AFX_DATA_INIT
}

void TakeControlDlg2::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(TakeControlDlg2)
	DDX_Control(pDX, IDC_SPIN1, m_spin1);
	DDX_Control(pDX, IDC_LIST2, m_List1);
	DDX_Control(pDX, IDC_COMBOdatetime, m_combodatetime);
	DDX_Control(pDX, IDC_COMBO5, m_combobox);
	DDX_Control(pDX, IDC_COMBO11, m_combobox2);
	DDX_Control(pDX, IDC_COMBO4, m_combo4);
	DDX_Control(pDX, IDC_COMBO3, m_combo3);
	DDX_Control(pDX, IDC_EDITtime6, m_editdate4);
	DDX_Control(pDX, IDC_EDITtime4, m_editdate2);
	DDX_Control(pDX, IDC_EDITtime2, m_editdate);
	DDX_Control(pDX, IDC_COMBO2, m_combo2);
	DDX_Control(pDX, IDC_COMBO1, m_combo1);
	DDX_Text(pDX, IDC_EDITname, m_name1);
	DDX_Text(pDX, IDC_EDITname2, m_name2);
	DDX_Text(pDX, IDC_EDITtime2, m_time2);
	DDX_Text(pDX, IDC_EDITid, m_id);
	DDX_Text(pDX, IDC_EDITObz2, m_bz2);
	DDX_Text(pDX, IDC_EDITOclothescount, m_clothescount);
	DDX_Text(pDX, IDC_EDITOoutside, m_outside);
	DDX_Text(pDX, IDC_EDITOren, m_ren);
	DDX_Text(pDX, IDC_EDITtaoxiname, m_taoxiname);
	DDX_Text(pDX, IDC_EDITtime4, m_time4);
	DDX_Text(pDX, IDC_EDITtime6, m_time6);
	DDX_CBString(pDX, IDC_COMBOdatetime, m_datetime4);
	DDX_Text(pDX, IDC_EDIT1, m_limitcount);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(TakeControlDlg2, CDialog)
	//{{AFX_MSG_MAP(TakeControlDlg2)
	ON_CBN_SELCHANGE(IDC_COMBO5, OnSelchangeCombo5)
	ON_EN_CHANGE(IDC_EDITtime4, OnChangeEDITtime4)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_CBN_SELCHANGE(IDC_COMBO11, OnSelchangeCombo11)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// TakeControlDlg2 message handlers

BOOL TakeControlDlg2::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO: Add extra initialization here
#ifdef CHILD_VERSION
	GetDlgItem(IDC_STATIC1)->SetWindowText("�ҳ�����:");
	GetDlgItem(IDC_STATIC2)->SetWindowText("��������:");
#endif
	if (IsHasRights2new(49) == 0)
	{
		GetDlgItem(IDC_BUTTON1)->EnableWindow(0);
	}
#ifdef CHILD_VERSION
	m_List1.SetHeadings("������,100;�ҳ�����,100;��������,100;�ֻ�,100;�̶��绰,100;ѡƬ����,100;ʱ��,100;״̬,100");
#else
	m_List1.SetHeadings("������,100;�б�����,100;Ů������,100;�б��绰,100;Ů���绰,100;ѡƬ����,100;ʱ��,100;����,100;״̬,100" );
#endif
	m_spin1.SetRange(1, 500);

	if (g_bAllBranch == 0)
	{
		GetDlgItem(IDC_STATIC7)->ShowWindow(0);
		GetDlgItem(IDC_EDITtime5)->ShowWindow(0);
	}
	else
	{
		CRect rc, rc2;
		GetDlgItem(IDC_STATIC20)->ShowWindow(0);
		GetWindowRect(rc);
		m_List1.GetWindowRect(rc2);
		rc.right = rc2.left;
		MoveWindow(rc);
	}

	m_combodatetime.AddString("09:00");
	m_combodatetime.AddString("10:00");
	m_combodatetime.AddString("11:00");
	m_combodatetime.AddString("12:00");
	m_combodatetime.AddString("13:00");
	m_combodatetime.AddString("14:00");
	m_combodatetime.AddString("15:00");
	m_combodatetime.AddString("16:00");
	m_combodatetime.AddString("17:00");
	m_combodatetime.AddString("18:00");
	m_combodatetime.AddString("19:00");
	m_combodatetime.AddString("20:00");
	m_combodatetime.AddString("21:00");
	m_combodatetime.AddString("22:00");

	if (m_pIdArray == NULL)
	{
		m_acCombo.Init(&m_combobox);
		if (g_bAllBranch == 0)
		{
			g_sendhead.bsql = 0;
			g_sendhead.code[0] = 30;
			g_sendhead.tabcount = 1;
			//g_pMainWnd->ProcessChatMessageRequest2(21);
			g_pMainWnd->ProcessChatMessageRequest2(_T("status3 <> 'OK'"));
			if (g_bSendOK == 0)return 0;
			DataToArray(&m_List1array);
		}
		else
		{
			if (m_bModify == 0)
			{
				m_List1array.RemoveAll();
				CStringArray failbrancharray;
				CString branch;
				int i = 0;
				for ( i = -1; i < g_brancharray.GetSize() - 1; i++)
				{
					if (i != -1)
					{
						branch = g_brancharray.ElementAt(i).ElementAt(0);
						g_branchip = g_brancharray.ElementAt(i).ElementAt(1);
						g_pMainWnd->OnDisconnect();
						g_branchname = branch;
						g_bBranchModify = 1;
					}
					else
						branch = g_brancharray.ElementAt(g_brancharray.GetSize() - 1).ElementAt(0);


					g_sendhead.bsql = 0;
					g_sendhead.code[0] = 30;
					g_sendhead.tabcount = 1;
					//g_pMainWnd->ProcessChatMessageRequest2(1);
					g_pMainWnd->ProcessChatMessageRequest2(_T("status3 <> 'OK'"));
					if (g_bSendOK == 0)
					{
						failbrancharray.Add(branch);
						continue;
					}

					CArray<CStringArray, CStringArray>List1array;
					DataToArray(&List1array);


					int size = m_List1array.GetSize();
					for (int j = 0; j < List1array.GetSize(); j++)
					{
						size++;
						m_List1array.SetSize(size, 1);
						size--;
						m_List1array.ElementAt(size).Copy(List1array.ElementAt(j));
						m_List1array.ElementAt(size).Add(branch);
						size++;
					}
				}
				for (i = 0; i < failbrancharray.GetSize(); i++)
				{
					//AfxMessageBox("����"+failbrancharray.ElementAt(i)+"������ʧ��!", MB_ICONINFORMATION);
				}
				g_pMainWnd->OnDisconnect();
				g_bBranchModify = 0; g_branchip = g_branchname = "";
			}
			else
			{
				GetDlgItem(IDC_STATIC5)->SetWindowText("");
				GetDlgItem(IDC_STATIC6)->SetWindowText("");
				m_combobox.ShowWindow(0);
			}
		}

		m_acCombo.m_pArray = &m_List1array;
		if (m_bModify == 0)m_combobox.SetFocus();
		m_combobox2.ShowWindow(0);
	}
	else
	{
		for (int i = 0; i < m_pIdArray->GetSize(); i++)
		{
			m_combobox2.AddString(m_pIdArray->ElementAt(i));
		}
		m_combobox2.SetCurSel(0);
		id = m_pIdArray->ElementAt(0);
		GetDlgItem(IDC_STATIC5)->SetWindowText("ѡ�����:");
		GetDlgItem(IDC_STATIC6)->SetWindowText("");
		m_combobox.ShowWindow(0);
	}
	this->CenterWindow(g_pMainWnd);

	if (g_bAllBranch)
		GetDlgItem(IDC_EDITtime5)->SetWindowText(m_branch);
	if (m_bModify)ClientChange();
	return false;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void TakeControlDlg2::OnOK() // ���水ť;
{
	// TODO: Add extra validation here
	UpdateData();
	if (!CheckDateOK(m_time4))return;

	int pos;
	pos = m_combo3.GetCurSel();
	if (pos != -1)
		m_combo3.GetLBText(pos, m_waiter3);

#if 0 // Jeff delete,this's the old edition;
	CString sql;
	sql.Format ("update dindan set datetime4='%s',time4='%s',waiter3='%s' where id='%s' ", m_datetime4,m_time4,m_waiter3,id);
#else //Jeff add:����ԤԼʱ���¸���ѡƬԤԼ����;
	CString sql;
	sql.Format("update dindan set datetime4='%s',time4='%s',waiter3='%s',xplrr='%s',xplrtime='msgtimestamp2' where id='%s' ",
		m_datetime4, m_time4, m_waiter3, g_user.name, id);
#endif

	g_sendhead.bsql = 1;
	if (g_bAllBranch == 0)
	{
		g_pMainWnd->ProcessChatMessageRequest2(sql);
	}
	else
	{
		g_branchip = GetIP(m_branch);
		g_pMainWnd->OnDisconnect();
		g_branchname = m_branch;
		g_bBranchModify = 1;
		g_pMainWnd->ProcessChatMessageRequest2(sql);
		g_pMainWnd->OnDisconnect(); g_bBranchModify = 0; g_branchip = g_branchname = "";
	}

	if (g_bSendOK == 0)return;
	dataUpdateCentrer.UpdateTodayBarMsg();
	AfxMessageBox("����ɹ�!", MB_ICONINFORMATION);
	DataChange();
	if (m_bModify && m_pIdArray == NULL)	CDialog::OnOK();
}

void TakeControlDlg2::ClientChange()
{
	if (g_bAllBranch == 0)
	{
		CString filter = "id='" + id + "'";
		g_sendhead.code[0] = 53;
		g_sendhead.tabcount = 1;
		g_sendhead.bsql = 0;
		g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return;
		DataToArray(&g_List1array);

	}
	else
	{
		CString filter = "id='" + id + "'";
		g_sendhead.code[0] = 53;
		g_sendhead.tabcount = 1;
		g_sendhead.bsql = 0;
		g_branchip = GetIP(m_branch);
		g_pMainWnd->OnDisconnect();
		g_branchname = m_branch;
		g_bBranchModify = 1;
		g_pMainWnd->ProcessChatMessageRequest2(filter);
		g_pMainWnd->OnDisconnect(); g_bBranchModify = 0; g_branchip = g_branchname = "";
		if (g_bSendOK == 0)return;
		DataToArray(&g_List1array);
	}

	if (g_List1array.GetSize())
	{
		m_time2 = g_List1array.ElementAt(0).ElementAt(0);
		m_datetime4 = g_List1array.ElementAt(0).ElementAt(18);
		m_id = g_List1array.ElementAt(0).ElementAt(2);
		m_name1 = g_List1array.ElementAt(0).ElementAt(3);
		m_name2 = g_List1array.ElementAt(0).ElementAt(4);
		m_taoxiname = g_List1array.ElementAt(0).ElementAt(7);
		m_waiter1 = g_List1array.ElementAt(0).ElementAt(8);
		m_waiter2 = g_List1array.ElementAt(0).ElementAt(9);
		m_ren = g_List1array.ElementAt(0).ElementAt(10);
		m_time4 = g_List1array.ElementAt(0).ElementAt(13);
		m_time5 = g_List1array.ElementAt(0).ElementAt(14);
		m_time6 = g_List1array.ElementAt(0).ElementAt(15);
		m_waiter3 = g_List1array.ElementAt(0).ElementAt(16);
		m_waiter8 = g_List1array.ElementAt(0).ElementAt(17);
		UpdateData(false);
		if (m_combo1.FindString(0, m_waiter1) == -1)
		{
			m_combo1.InsertString(0, m_waiter1);
			m_combo1.SetCurSel(0);
		}
		else
		{
			m_combo1.SetCurSel(m_combo1.FindString(0, m_waiter1));
		}
		if (m_combo2.FindString(0, m_waiter2) == -1)
		{
			m_combo2.InsertString(0, m_waiter2);
			m_combo2.SetCurSel(0);
		}
		else
		{
			m_combo2.SetCurSel(m_combo2.FindString(0, m_waiter2));
		}
		if (m_combo3.FindString(0, m_waiter3) == -1)
		{
			m_combo3.InsertString(0, m_waiter3);
			m_combo3.SetCurSel(0);
		}
		else
		{
			m_combo3.SetCurSel(m_combo3.FindString(0, m_waiter3));
		}
		if (m_combo4.FindString(0, m_waiter8) == -1)
		{
			m_combo4.InsertString(0, m_waiter8);
			m_combo4.SetCurSel(0);
		}
		else
		{
			m_combo4.SetCurSel(m_combo4.FindString(0, m_waiter8));
		}
	}
}

void TakeControlDlg2::OnSelchangeCombo5()
{
	// TODO: Add your control notification handler code here
	int pos = m_combobox.GetCurSel();
	if (pos == -1)return;
	if (m_acCombo.m_posarray.GetSize() <= pos)return;
	int pos2 = m_acCombo.m_posarray.ElementAt(pos);
	id = m_List1array.ElementAt(pos2).ElementAt(0);
	int size = m_List1array.ElementAt(pos2).GetSize();
	if (g_bAllBranch)
	{
		m_branch = m_List1array.ElementAt(pos2).ElementAt(size - 1);
		GetDlgItem(IDC_EDITtime5)->SetWindowText(m_branch);
	}
	ClientChange();
}

void TakeControlDlg2::DataChange()
{
	if (g_bAllBranch)return;
	UpdateData();
	if (!CheckDateOK2(m_time4))return;
	g_sendhead.code[0] = 121;
	g_sendhead.tabcount = 1;
	g_sendhead.bsql = 0;
	CString sql;
	sql.Format("time4>='" + m_time4 + "' and time4<='" + m_time4 + "'");
	g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
	DataToArray(&g_List1array);

	int ii = 0;
	m_List1.DeleteAllItems2();
	m_List1.m_arLabels.SetSize(g_List1array.GetSize(), 1);
	int count = 0;
	for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
	{
		m_List1.m_arLabels.ElementAt(count++).Copy(g_List1array.ElementAt(ii));
	}
	m_List1.m_arLabels.SetSize(count, 1);
	ii = count;
	m_List1.m_LabelCount = ii;
	m_List1.SetItemCountEx(ii);

	CString str;
	str.Format("����:%d", ii);
	SetDlgItemText(IDC_STATIC4, str);
	if (m_limitcount <= ii)
		AfxMessageBox("��������:\r\n����ԤԼ���˹��࣬��������ſ��ˡ�");
}

void TakeControlDlg2::OnChangeEDITtime4()
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	DataChange();
	// TODO: Add your control notification handler code here
}

void TakeControlDlg2::OnButton1()
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CString sql;
	sql.Format("update version set [limitcount2]='%d'", m_limitcount);
	g_sendhead.bsql = 1;
	g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
	AfxMessageBox("����ɹ�!", MB_ICONINFORMATION);

	CString str;
	str.Format("%d", m_limitcount);
	g_cominfoarray.ElementAt(0).SetAt(83, str);
}

void TakeControlDlg2::OnSelchangeCombo11()
{
	// TODO: Add your control notification handler code here
	int pos = m_combobox2.GetCurSel();
	if (pos == -1)return;
	m_combobox2.GetLBText(pos, id);

	if (g_bAllBranch)
	{
		m_branch = m_pBranchArray->ElementAt(pos);
		GetDlgItem(IDC_EDITtime5)->SetWindowText(m_branch);
	}
	ClientChange();
}