// TakeControlDlg9.cpp : implementation file
//

#include "stdafx.h"
#include "ylgl.h"
#include "TakeControlDlg9.h"

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

/////////////////////////////////////////////////////////////////////////////
// TakeControlDlg9 dialog IDC_EDITtime2
TakeControlDlg9::TakeControlDlg9(CWnd* pParent /*=NULL*/)
	: CDialog(TakeControlDlg9::IDD, pParent)
{
	//{{AFX_DATA_INIT(TakeControlDlg9)
	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_taketime = _T("");
	m_check3 = FALSE;
	m_bModify = 0;
	m_pIdArray = NULL;
	m_pBranchArray = NULL;
	//}}AFX_DATA_INIT
}

void TakeControlDlg9::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(TakeControlDlg9)
	DDX_Control(pDX, IDC_COMBO10, m_combo10);
	DDX_Control(pDX, IDC_LIST1, 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_EDITtime5, m_editdate3);
	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_EDITtime5, m_time5);
	DDX_CBString(pDX, IDC_COMBOdatetime, m_taketime);
	DDX_Check(pDX, IDC_CHECK1, m_check3);
	//}}AFX_DATA_MAP
}//	DDX_Text(pDX, IDC_EDITtime4, m_time4);

BEGIN_MESSAGE_MAP(TakeControlDlg9, CDialog)
	//{{AFX_MSG_MAP(TakeControlDlg9)
	ON_CBN_SELCHANGE(IDC_COMBO5, OnSelchangeCombo5)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_CBN_SELCHANGE(IDC_COMBO11, OnSelchangeCombo11)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// TakeControlDlg9 message handlers

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

	// TODO: Add extra initialization here
	CRect rc, rc2;
	m_List1.GetWindowRect(rc);
	ScreenToClient(rc);
	GetWindowRect(rc2);
	rc2.right = rc2.left + rc.right + 40;
	MoveWindow(rc2);

#ifdef CHILD_VERSION
	GetDlgItem(IDC_STATIC1)->SetWindowText("�ҳ�����:");
	GetDlgItem(IDC_STATIC2)->SetWindowText("��������:");
	GetDlgItem(IDC_STATIC10)->SetWindowText("����ʦ:");
#endif
	if (g_bAllBranch == 0)
	{
		GetDlgItem(IDC_STATIC7)->ShowWindow(0);
		GetDlgItem(IDC_EDITtime6)->ShowWindow(0);
	}
	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); if (g_bSendOK == 0)return 0;
			DataToArray(&m_List1array);
		}
		else
		{
			if (m_bModify == 0)
			{
				m_List1array.RemoveAll();
				CStringArray failbrancharray;
				CString branch;
				for (int 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);
					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_EDITtime6)->SetWindowText(m_branch);




	m_combo10.m_pMsgParent = &m_List1;
	m_List1.m_pComboBox = &m_combo10;

	m_List1.InitStyle();
	m_List1.InsertColumn(0, _T("id"), LVCFMT_LEFT, 0);
	m_List1.InsertColumn(1, _T("��������"), LVCFMT_LEFT, 100);
	m_List1.InsertColumn(2, _T("ũ��"), LVCFMT_LEFT, 50);
	m_List1.InsertColumn(3, _T("����"), LVCFMT_LEFT, 90);
	m_List1.InsertColumn(4, _T("ʱ��"), LVCFMT_LEFT, 70);
	m_List1.InsertColumn(5, _T("������Ա1"), LVCFMT_LEFT, 100);
	m_List1.InsertColumn(6, _T("������Ա2"), LVCFMT_LEFT, 100);
	m_List1.InsertColumn(7, _T("״̬"), LVCFMT_LEFT, 60);
	m_List1.InsertColumn(8, _T("��ע"), LVCFMT_LEFT, 100);
	if (m_bModify)ClientChange();
	return false;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}


void TakeControlDlg9::ClientChange()
{
	if (g_bAllBranch == 0)
	{
		CString filter = "id='" + id + "';id='" + id + "' and kind='2'";
		g_sendhead.code[0] = 53;
		g_sendhead.code[1] = 140;
		g_sendhead.tabcount = 2;
		g_sendhead.bsql = 0;
		g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return;
		DataToArray(&g_List1array, &m_List2array);
	}
	else
	{
		CString filter = "id='" + id + "';id='" + id + "' and kind='2'";
		g_sendhead.code[0] = 53;
		g_sendhead.code[1] = 140;
		g_sendhead.tabcount = 2;
		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, &m_List2array);
	}




	/*	m_combo1.ResetContent ();
		if(m_List2array.GetSize ())
		{
		for(int i=0; i<m_List2array.GetSize (); i++)
		{
		m_combo1.AddString (m_List2array.ElementAt (i).ElementAt (0));
		m_checkarray.Add (0);
		}
		m_combo1.SetCurSel (0);
		m_time2=m_List2array.ElementAt (0).ElementAt (1);
		m_taketime=m_List2array.ElementAt (0).ElementAt (2);
		m_waiter1=m_List2array.ElementAt (0).ElementAt (3);
		m_waiter2=m_List2array.ElementAt (0).ElementAt (4);
		if(m_waiter1.IsEmpty ())
		m_combo2.SetCurSel (-1);
		else
		{
		if(m_combo2.FindString (0, m_waiter1)==-1)
		{
		m_combo2.InsertString (0, m_waiter1);
		m_combo2.SetCurSel (0);
		}
		else
		{
		m_combo2.SetCurSel (m_combo2.FindString (0, m_waiter1));
		}
		}
		if(m_waiter2.IsEmpty ())
		m_combo3.SetCurSel (-1);
		else
		{
		if(m_combo3.FindString (0, m_waiter2)==-1)
		{
		m_combo3.InsertString (0, m_waiter2);
		m_combo3.SetCurSel (0);
		}
		else
		{
		m_combo3.SetCurSel (m_combo3.FindString (0, m_waiter2));
		}
		}
		}*/

	m_List1.DeleteAllItems();
	for (int i = 0; i < m_List2array.GetSize(); i++)
	{
		m_List1.InsertItem(i, m_List2array.ElementAt(i).ElementAt(0));
		m_List1.SetItemText(i, 1, m_List2array.ElementAt(i).ElementAt(1));
		m_List1.SetItemText(i, 2, m_List2array.ElementAt(i).ElementAt(2));
		m_List1.SetItemText(i, 3, m_List2array.ElementAt(i).ElementAt(3));
		m_List1.SetItemText(i, 4, m_List2array.ElementAt(i).ElementAt(4));
		m_List1.SetItemText(i, 5, m_List2array.ElementAt(i).ElementAt(5));
		m_List1.SetItemText(i, 6, m_List2array.ElementAt(i).ElementAt(6));
		m_List1.SetItemText(i, 7, m_List2array.ElementAt(i).ElementAt(7));
		m_List1.SetItemText(i, 8, m_List2array.ElementAt(i).ElementAt(8));
	}

	if (g_List1array.GetSize())
	{
		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_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);
	}
}

void TakeControlDlg9::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_EDITtime6)->SetWindowText(m_branch);
	}
	ClientChange();
}

void TakeControlDlg9::OnSelchangeCombo1()
{
	// TODO: Add your control notification handler code here
	/*	int pos=m_combo1.GetCurSel ();
		if(pos==-1)return;
		m_time2=m_List2array.ElementAt (pos).ElementAt (1);
		m_taketime=m_List2array.ElementAt (pos).ElementAt (2);
		m_waiter1=m_List2array.ElementAt (pos).ElementAt (3);
		m_waiter2=m_List2array.ElementAt (pos).ElementAt (4);

		if(m_waiter1.IsEmpty ())
		m_combo2.SetCurSel (-1);
		else
		{
		if(m_combo2.FindString (0, m_waiter1)==-1)
		{
		m_combo2.InsertString (0, m_waiter1);
		m_combo2.SetCurSel (0);
		}
		else
		{
		m_combo2.SetCurSel (m_combo2.FindString (0, m_waiter1));
		}
		}
		if(m_waiter2.IsEmpty ())
		m_combo3.SetCurSel (-1);
		else
		{
		if(m_combo3.FindString (0, m_waiter2)==-1)
		{
		m_combo3.InsertString (0, m_waiter2);
		m_combo3.SetCurSel (0);
		}
		else
		{
		m_combo3.SetCurSel (m_combo3.FindString (0, m_waiter2));
		}
		}



		m_check3=m_checkarray.ElementAt (pos);
		UpdateData(false);*/
}

void TakeControlDlg9::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();
}

/*
extern BOOL CovertDate(CString &date, CString &date2);
void TakeControlDlg9::OnOK()
{
// TODO: Add extra validation here
UpdateData();
if(!CheckDateOK(m_time2))return;
int pos=m_combo1.GetCurSel ();
if(pos==-1)return;
CString name=m_List2array.ElementAt (pos).ElementAt (0);
m_List2array.ElementAt (pos).SetAt(1, m_time2);
m_List2array.ElementAt (pos).SetAt(2, m_taketime);

m_waiter1=m_waiter2="";
int pos2=m_combo2.GetCurSel ();
if(pos2!=-1)
m_combo2.GetLBText (pos2, m_waiter1);
pos2=m_combo3.GetCurSel ();
if(pos2!=-1)
m_combo3.GetLBText (pos2, m_waiter2);
m_List2array.ElementAt (pos).SetAt(3, m_waiter1);
m_List2array.ElementAt (pos).SetAt(4, m_waiter2);
m_checkarray.SetAt (pos, m_check3);

CString date=m_time2;
CString date2;
if(m_check3)
CovertDate(date, date2);




CString sql;
sql.Format ("update dindansp set hqdate='%s',hqtime='%s',ren1='%s',ren2='%s' where id='%s' and name='%s'", \
date,m_taketime,m_waiter1,m_waiter2,id,name);

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;

AfxMessageBox("����ɹ�!", MB_ICONINFORMATION);
if(m_bModify && m_pIdArray==NULL)	CDialog::OnOK();
}
*/
extern BOOL CovertDate(CString &date, CString &date2);
void TakeControlDlg9::OnOK()
{
	// TODO: Add extra validation here
	UpdateData();
	if (m_id == "")return;
	CString date = m_time2;
	CString date2;
	if (m_check3)
		CovertDate(date, date2);

	CArray<CStringArray, CStringArray>sparray;
	sparray.SetSize(m_List1.GetItemCount());
	for (int i = 0; i < m_List1.GetItemCount(); i++)
	{
		sparray.ElementAt(i).Add(m_id);
		sparray.ElementAt(i).Add(m_List1.GetItemText(i, 1));

		date = m_List1.GetItemText(i, 3);
		if (m_List1.GetItemText(i, 2) == "ũ��" && date != "")
			CovertDate(date, date2);

		sparray.ElementAt(i).Add("����");
		sparray.ElementAt(i).Add(date);

		sparray.ElementAt(i).Add(m_List1.GetItemText(i, 4));
		sparray.ElementAt(i).Add(m_List1.GetItemText(i, 5));
		sparray.ElementAt(i).Add(m_List1.GetItemText(i, 6));
		sparray.ElementAt(i).Add(m_List1.GetItemText(i, 7));
		sparray.ElementAt(i).Add(m_List1.GetItemText(i, 8));
		sparray.ElementAt(i).Add(m_List1.GetItemText(i, 0));
	}
	/*  if(sparray.GetSize ()==0)
	  {
	  sparray.SetSize(1);
	  sparray.ElementAt (0).Add (m_id);
	  }
	  m_waiter1=m_waiter2="";
	  int pos2=m_combo2.GetCurSel ();
	  if(pos2!=-1)
	  m_combo2.GetLBText (pos2, m_waiter1);
	  pos2=m_combo3.GetCurSel ();
	  if(pos2!=-1)
	  m_combo3.GetLBText (pos2, m_waiter2);
	  m_List2array.ElementAt (pos).SetAt(3, m_waiter1);
	  m_List2array.ElementAt (pos).SetAt(4, m_waiter2);
	  m_checkarray.SetAt (pos, m_check3);

	  CString date=m_time2;
	  CString date2;
	  if(m_check3)
	  CovertDate(date, date2);

	  CString sql;
	  sql.Format ("update dindansp set hqdate='%s',hqtime='%s',ren1='%s',ren2='%s' where id='%s' and name='%s'", \
	  date,m_taketime,m_waiter1,m_waiter2,id,name);*/



	CMemFile memfile;
	CArchive ar(&memfile, CArchive::store);
	for (int ii = 0; ii < sparray.GetSize(); ii++)
	{
		sparray.ElementAt(ii).Serialize(ar);
	}
	ar.Close();
	int length = memfile.GetLength();
	BYTE *pData = memfile.Detach();
	int size = sparray.GetSize();
	BYTE *pData2 = new BYTE[length + sizeof(int)];
	memcpy(pData2, pData, length);
	memcpy(pData2 + length, &size, sizeof(int));
	delete[]pData;
	length += sizeof(int);


	g_sendhead.bsql = 1;
	if (g_bAllBranch == 0)
	{
		//	g_pMainWnd->ProcessChatMessageRequest2(sql);
		g_nSendCode = 32;
		g_pMainWnd->ProcessChatMessageRequest2(pData2, length);
		g_nSendCode = 0;
	}
	else
	{
		g_branchip = GetIP(m_branch);
		g_pMainWnd->OnDisconnect();
		g_branchname = m_branch;
		g_bBranchModify = 1;
		g_nSendCode = 32;
		g_pMainWnd->ProcessChatMessageRequest2(pData2, length);
		g_nSendCode = 0;
		g_pMainWnd->OnDisconnect(); g_bBranchModify = 0; g_branchip = g_branchname = "";
	}
	delete[]pData2;
	if (g_bSendOK == 0)return;
	dataUpdateCentrer.UpdateTodayBarMsg();
	AfxMessageBox("����ɹ�!", MB_ICONINFORMATION);
	CDialog::OnOK();
}

void TakeControlDlg9::OnButton1()
{
	// TODO: Add your control notification handler code here
	SPBox dlg;
	dlg.m_mode = 1;
	if (dlg.DoModal() != IDOK)return;
	int pos = m_List1.GetItemCount();
	CString str;
	for (int a = 0; a < dlg.m_spidarray.GetSize(); a++)
	{
		dlg.m_spid = dlg.m_spidarray.ElementAt(a);
		dlg.m_spname = dlg.m_spnamearray.ElementAt(a);
		m_List1.InsertItem(pos, "");
		m_List1.SetItemText(pos, 1, dlg.m_spname);

		str = "���ӻ���:";
		str += dlg.m_spname;


		WriteLog(str);
	}

}