// ChoosePhotoSkin3.cpp : implementation file
//
#include "stdafx.h"
#include "ChoosePhotoSkin3.h"
#include "YLGL.h"
#include "./helper/ffsco.h"
#include ".\MenuBarXP\MenuXP.h"
#include "PrintRX.h"
#include "LoadRect.h"
#include "PrintPreview.h"
#include "InputJT.h"
#include "DesinCheck.h"
#include "Login2.h"
#include "SPLBDlg.h"
#include "InputPrice.h"
#include "ZZB.h"


// Jeff add 2014-12-11 �ָ���;
//#define SEPARATOR _T("|")

ChoosePhotoSkin3::ChoosePhotoSkin3(CWnd* pParent /*=NULL*/) : CDialog(ChoosePhotoSkin3::IDD, pParent)
{
	m_bz3 = _T("");
	m_time5 = _T("");
	m_urgent = _T("");
	m_time6 = _T("");
	m_bz4 = _T("");

	m_name1 = _T("");
	m_time4 = g_date;
	m_waiter3 = _T("");
	m_takezs = _T("");
	m_taoxizs = _T("");
	m_choosezs = _T("");
	m_id = _T("");
	m_money3 = _T("");

	m_bSave = 0;
	m_bModify = 0;
	m_bPushedSave = 0;
	m_strStatusOfChoosePhoto = "δѡ";
	m_bReChoose = FALSE;
	//m_delphotosMode = 0; //Ĭ��ΪѡƬģʽ;// ��ʹ��GetParent()->m_mode2;	
}

void ChoosePhotoSkin3::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_EDITtime6, m_datectrl2);
	DDX_Control(pDX, IDC_COMBO1, m_combo1);
	DDX_Control(pDX, IDC_EDITtime5, m_datenum);
	DDX_Control(pDX, IDC_COMBOurgent, m_combourgent);
	DDX_Control(pDX, IDC_EDITzs3, m_editnum4);
	DDX_Control(pDX, IDC_EDITzs2, m_editnum3);
	DDX_Control(pDX, IDC_EDITzs, m_editnum2);
	DDX_Control(pDX, IDC_EDITmoney3, m_editnum1);
	DDX_Control(pDX, IDC_LIST3, m_List3);
	DDX_Control(pDX, IDC_LIST2, m_List2);
	DDX_Control(pDX, IDC_LIST1, m_List1);
	DDX_Text(pDX, IDC_EDITname1, m_name1);
	DDX_Text(pDX, IDC_EDITtime4, m_time4);
	DDX_Text(pDX, IDC_EDITwaiter3, m_waiter3);
	DDX_Text(pDX, IDC_EDITzs, m_takezs);
	DDX_Text(pDX, IDC_EDITzs2, m_taoxizs);
	DDX_Text(pDX, IDC_EDITzs3, m_choosezs);
	DDX_Text(pDX, IDC_EDITmoney3, m_money3);
	DDX_Text(pDX, IDC_EDITbz3, m_bz3);
	DDV_MaxChars(pDX, m_bz3, 1000);
	DDX_Text(pDX, IDC_EDITtime5, m_time5);
	DDX_Text(pDX, IDC_EDITtime6, m_time6);
	DDX_Text(pDX, IDC_EDITid, m_id);
	DDX_Text(pDX, IDC_EDITbz4, m_bz4);
}

BEGIN_MESSAGE_MAP(ChoosePhotoSkin3, CDialog)
	ON_WM_CLOSE()
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON7, OnSpBox)
	ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
	ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
	ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
	ON_BN_CLICKED(IDC_BTNprint, OnBTNprint)
	ON_BN_CLICKED(IDC_BUTTON9, OnButton9)
	ON_BN_CLICKED(IDC_BTNprint2, OnBTNprint2)
	ON_WM_PAINT()
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDC_BUTTON12, OnButton12)
	ON_BN_CLICKED(Btn_MicroShare, OnBnClickedMicroshare)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
BOOL ChoosePhotoSkin3::OnInitDialog()
{
	CDialog::OnInitDialog();

	if (m_pParent->m_Runingmode)
	{
		GetDlgItem(IDC_STATIC2)->ShowWindow(0);
		GetDlgItem(IDC_STATIC4)->ShowWindow(0);
		GetDlgItem(IDC_STATIC6)->ShowWindow(0);
		GetDlgItem(IDC_EDITzs)->ShowWindow(0);
		GetDlgItem(IDC_EDITzs2)->ShowWindow(0);
		GetDlgItem(IDC_EDITzs3)->ShowWindow(0);
		m_combo1.AddString("OK");
		m_combo1.AddString("�޸���");
		m_combo1.AddString("�");

		CRect rc;
		GetDlgItem(IDC_STATIC8)->GetWindowRect(rc);
		ScreenToClient(rc);
		GetDlgItem(IDC_STATIC5)->MoveWindow(rc);

		GetDlgItem(IDC_EDITzs2)->GetWindowRect(rc);
		ScreenToClient(rc);
		GetDlgItem(IDC_EDITmoney3)->MoveWindow(rc);

		GetDlgItem(IDC_STATIC8)->ShowWindow(0);
		GetDlgItem(IDC_COMBO1)->ShowWindow(0);
	}
	else
	{
		GetDlgItem(IDC_STATIC8)->ShowWindow(0);
		GetDlgItem(IDC_COMBO1)->ShowWindow(0);
	}

	CTime tm(atoi(g_date.Mid(0, 4)), atoi(g_date.Mid(5, 2)), atoi(g_date.Mid(8, 2)), CTime::GetCurrentTime().GetHour(), CTime::GetCurrentTime().GetMinute(), CTime::GetCurrentTime().GetSecond());
#ifdef LKAY_VERSION
	CTimeSpan dt(31, 0, 0, 0);
	tm+=dt;
	m_datenum.SetDefaultValue(tm.Format ("%Y-%m-%d"));

	CTimeSpan dt2(4, 0, 0, 0);
	tm-=dt2;
	m_datectrl2.SetDefaultValue(tm.Format ("%Y-%m-%d"));
#else
	CTimeSpan dt(61, 0, 0, 0);
	tm += dt;
	m_datenum.SetDefaultValue(tm.Format("%Y-%m-%d"));

	CTimeSpan dt2(31, 0, 0, 0);
	tm -= dt2;
	m_datectrl2.SetDefaultValue(tm.Format("%Y-%m-%d"));
#endif

	m_bPushedSave = 0;
	m_bSaveFail = 0;
	m_List2.InitStyle();
	m_List2.InsertColumn(0, _T("���"), LVCFMT_LEFT, 55);
	m_List2.InsertColumn(1, _T("��Ʒ����"), LVCFMT_LEFT, 150);
	m_List2.InsertColumn(2, _T("����"), LVCFMT_LEFT, 55);

	m_List3.InitStyle();
	m_List3.InsertColumn(0, _T("autuid"), LVCFMT_LEFT, 0);
	m_List3.InsertColumn(1, _T("���"), LVCFMT_LEFT, 55);
	m_List3.InsertColumn(2, _T("��Ʒ����"), LVCFMT_LEFT, 150);
	m_List3.InsertColumn(3, _T("�۸�"), LVCFMT_LEFT, 55);
	m_List3.InsertColumn(4, _T("����"), LVCFMT_LEFT, 55);
#ifdef LKAY_VERSION
	m_List3.InsertColumn(5,_T("P��"),LVCFMT_LEFT,55);
	m_List3.InsertColumn(6,_T("����"),LVCFMT_LEFT,55);
	m_List3.InsertColumn(7,_T("��Ƭ���"),LVCFMT_LEFT,355);
#else
	m_List3.InsertColumn(5, _T("��Ƭ���"), LVCFMT_LEFT, 355);
#endif

	m_combourgent.AddString("��");
	m_combourgent.AddString("��");
	LoadData(1);

	//	AnimateWindow(GetSafeHwnd(), 3000, AW_BLEND);
	return false;
}

void ChoosePhotoSkin3::OnOK()
{
}

void ChoosePhotoSkin3::OnCancel()
{
	m_bExit = 0;
	LoadData(0);
	CDialog::OnCancel();
}

void ChoosePhotoSkin3::OnClose()
{
	m_bExit = 0;
	SetSPName3();
	SetSPName2();
	LoadData(0);
	CDialog::OnCancel();
}

BOOL ChoosePhotoSkin3::PreTranslateMessage(MSG* pMsg)
{
	if (0)//pMsg->message==WM_LBUTTONDOWN)
	{
		{//list2
			CPoint pt;
			CRect rc, rc2;
			::GetCursorPos(&pt);
			m_List2.GetWindowRect(rc2);
			if (rc2.PtInRect(pt) == 0)	goto mm;
			SetTimer(2, 300, NULL);
		}


	mm:	{//list3
		CPoint pt;
		CRect rc, rc2;
		::GetCursorPos(&pt);
		m_List3.GetWindowRect(rc2);
		if (rc2.PtInRect(pt) == 0)	return CDialog::PreTranslateMessage(pMsg);
		SetTimer(3, 300, NULL);
	}
	}
	else if (pMsg->message == WM_LBUTTONDBLCLK)
	{
		{//list2
			CPoint pt;
			CRect rc, rc2;
			::GetCursorPos(&pt);
			m_List2.GetWindowRect(rc2);
			if (rc2.PtInRect(pt) == 0) goto ll;
			/*  pt.x-=rc2.left ;
			pt.y-=rc2.top ;

			POSITION pos;
			pos=m_List2.GetFirstSelectedItemPosition();
			if(pos==NULL)return 1;
			int iItem=m_List2.GetNextSelectedItem(pos);
			m_List2.GetSubItemRect( iItem,4, LVIR_BOUNDS, rc);
			if(rc.PtInRect (pt))
			return CDialog::PreTranslateMessage(pMsg);
			else*/
			return 1;

		}

	ll:		{//list3
		CPoint pt;
		CRect rc, rc2;
		::GetCursorPos(&pt);
		m_List3.GetWindowRect(rc2);
		if (rc2.PtInRect(pt) == 0) return CDialog::PreTranslateMessage(pMsg);
		pt.x -= rc2.left;
		pt.y -= rc2.top;

		POSITION pos;
		pos = m_List3.GetFirstSelectedItemPosition();
		if (pos == NULL)return 1;
		int iItem = m_List3.GetNextSelectedItem(pos);
		m_List3.GetSubItemRect(iItem, 4, LVIR_BOUNDS, rc);
		if (1)//rc.PtInRect (pt))
			return CDialog::PreTranslateMessage(pMsg);
		else
			return 1;
	}

	}
	if (pMsg->message == WM_KEYDOWN)
	{
		switch (pMsg->wParam)
		{
		case VK_DELETE:
		{
			if (GetFocus() == GetDlgItem(IDC_EDITbz4))
			{
				if (AfxMessageBox("ɾ�����޷��ָ�, ȷ��ɾ����ע��?", MB_YESNO) != IDYES)return 1;
				m_bz4 = "";
				SetDlgItemText(IDC_EDITbz4, "");
			}
		}
		return 1;
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}

int ChoosePhotoSkin3::GetZS(CString str)
{
	str.TrimLeft(",");
	str.TrimRight(",");
	if (str.IsEmpty())return 0;
	int pos = str.Find(',');
	int count = 1;
	while (pos != -1)
	{
		str.Delete(pos);
		pos = str.Find(',');
		count++;
	}
	return count;
}

long ChoosePhotoSkin3::UpdateTakeZS(WPARAM inWParam, LPARAM inLParam)
{
	return 1;
}

void ChoosePhotoSkin3::OnButton1()
{

}

void ChoosePhotoSkin3::UpdateChooseZS()
{
}

void ChoosePhotoSkin3::OnButton2()
{
	POSITION pos;
	pos = m_List2.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ��ѡ����Ʒ!", MB_ICONINFORMATION);
		return;
	}
	m_bModify = 1;
	int iItem = m_List2.GetNextSelectedItem(pos);
	m_List2.SetItemText(iItem, 4, "");
	m_noarray.SetAt(iItem, "");
	UpdateChooseZS();
}

void ChoosePhotoSkin3::OnButton9()
{
	POSITION pos;
	pos = m_List3.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ��������Ʒ!", MB_ICONINFORMATION);
		return;
	}
	m_bModify = 1;
	int iItem = m_List3.GetNextSelectedItem(pos);
	SPBox dlg;
	if (dlg.DoModal() != IDOK)return;

	m_List3.SetItemText(iItem, 1, dlg.m_spid);
	m_List3.SetItemText(iItem, 2, GetSPNameFromId(dlg.m_spid));

	CString str;
	str.Format("%f", GetSPPriceFromId(dlg.m_spid));
	ConvertToPrice(str);
	m_List3.SetItemText(iItem, 3, str);
}

void ChoosePhotoSkin3::OnButton3()// ˢ�°�ť;
{
	if (m_List2.GetItemCount())return;
	CString	sql = "gentakecontent:" + m_id;
	g_sendhead.bsql = 1;
	g_pMainWnd->ProcessChatMessageRequest2(sql);//printf("Jeff:sql=%s\n\n",sql);// Jeff Printf
	if (g_bSendOK == 0)
		return;

	CString filter = "id='" + m_id + "'";
	g_sendhead.code[0] = 182;
	g_sendhead.tabcount = 1;
	g_sendhead.bsql = 0;
	g_pMainWnd->ProcessChatMessageRequest2(filter);//printf("Jeff:filter=%s\n\n",filter);// Jeff Printf
	if (g_bSendOK == 0)return;

	CArray<CStringArray, CStringArray>sparray;
	DataToArray(&g_List1array);

	m_List2.DeleteAllItems();
	for (int i = 0; i < g_List1array.GetSize(); i++)
	{
		m_List2.InsertItem(i, g_List1array.ElementAt(i).ElementAt(1));
		m_List2.SetItemText(i, 1, g_List1array.ElementAt(i).ElementAt(2));
		m_List2.SetItemText(i, 2, g_List1array.ElementAt(i).ElementAt(3));
	}
	/*	for(int i=0; i<m_List2.GetItemCount (); i++)
	{
	m_List2.SetItemText (i, 4, "");
	m_noarray.SetAt (i, "");
	}
	UpdateChooseZS();m_bModify=1;*/
}

CString ChoosePhotoSkin3::GetLB(CString name)
{
	for (int i = 0; i < m_pParent->m_List2array.GetSize(); i++)
	{
		if (name == m_pParent->m_List2array.ElementAt(i).ElementAt(1))
			return m_pParent->m_List2array.ElementAt(i).ElementAt(4);
	}
	return "";
}

void ChoosePhotoSkin3::OnButton4()	// ���水ť;
{
	m_bPushedSave = 1;
	SetSPName3();
	SetSPName2();
	UpdateData();
	if (!CheckDateOK(m_time5))return;
	if (!CheckDateOK(m_time6))return;
	OnButton3();
	CString m_authorize;
	CString m_discount;
	if (atoi(g_cominfoarray.ElementAt(0).ElementAt(113)))//�����ۿ�
	{
		float m_saleprice1 = GetMoney();
		float m_saleprice2 = GetMoney2();
		if (m_saleprice1 > m_saleprice2)
			m_discount.Format("%0.3f", min(10.0, (atof(m_money3) * 10) / (m_saleprice1 - m_saleprice2)));
		else
			m_discount = "10.0";

		if (IsHasRights2new(26) == 0 && atof(m_money3) > 0.1)//���ۿ�Ȩ��
		{
			if (m_discount != "10.0")
			{
				AfxMessageBox("�۸�̫�ͣ�����Ȩ!!", MB_ICONINFORMATION);

				Login2 dlg;
				dlg.m_mode = 2;
				if (dlg.DoModal() != IDOK)return;
				if (IsHasRightsnew2(26, dlg.m_rights) == 0)return;

				m_discount.Format("%0.3f", min(10.0, (atof(m_money3) * 10) / (m_saleprice1 - m_saleprice2)));

				if (atof(m_discount) < atof(dlg.m_discount2))
				{
					CString str;
					str.Format("�ۿ�%s̫�ͣ�����Ȩ!", m_discount);
					if (AfxMessageBox(str, MB_ICONINFORMATION))return;
				}
				m_authorize = dlg.m_name;
			}
		}
		else if (atof(m_discount) < atof(g_user.m_discount2))//&& atof(m_money3)>0.1 )
		{
			AfxMessageBox("�۸�̫�ͣ�����Ȩ!!", MB_ICONINFORMATION);
			Login2 dlg;
			dlg.m_mode = 2;
			if (dlg.DoModal() != IDOK)return;
			if (IsHasRightsnew2(26, dlg.m_rights) == 0)return;

			m_discount.Format("%0.3f", min(10.0, (atof(m_money3) * 10) / (m_saleprice1 - m_saleprice2)));

			if (atof(m_discount) < atof(dlg.m_discount2))
			{
				CString str;
				str.Format("�ۿ�%s̫�ͣ�����Ȩ!", m_discount);
				if (AfxMessageBox(str, MB_ICONINFORMATION))return;
			}
			m_authorize = dlg.m_name;
		}
	}

	if (m_pParent->m_Runingmode)
	{
		DesinCheck dlg;
		int pos = m_combo1.GetCurSel();
		if (pos != -1)
			m_combo1.GetLBText(pos, m_status8);
		dlg.m_status8 = m_status8;
		dlg.DoModal();
		m_status8 = dlg.m_status8;
		m_combo1.SetCurSel(m_combo1.FindString(0, m_status8));
	}

	CString str, sql;
	CArray<CStringArray, CStringArray>sparray;
	sparray.SetSize(m_no2array.GetSize());

	int i = 0;
	BOOL bZZB = 0;
	for (int j = 0; j < m_no2array.GetSize(); j++)
	{
		sparray.ElementAt(i).Add(m_id);
		sparray.ElementAt(i).Add(m_List3.GetItemText(j, 0));
		sparray.ElementAt(i).Add(m_List3.GetItemText(j, 1));
		str = m_List3.GetItemText(j, 2); str.TrimRight();
		sparray.ElementAt(i).Add(str);
		if (str == "���б�app")bZZB = 1;

		sparray.ElementAt(i).Add(m_List3.GetItemText(j, 3));
		sparray.ElementAt(i).Add(m_List3.GetItemText(j, 4));	// m_List3.Item 4 = ѡ�е���Ƭ��;
#ifdef LKAY_VERSION
		sparray.ElementAt (i).Add ( m_List3.GetItemText (j, 5) );
		sparray.ElementAt (i).Add ( m_List3.GetItemText (j, 6) );
		sparray.ElementAt (i).Add (m_List3.GetItemText (j, 7) );//���
#else
		sparray.ElementAt(i).Add(m_List3.GetItemText(j, 5));//���
#endif

		sparray.ElementAt(i).Add("4");
		if (m_pParent->m_Runingmode)
		{
			sparray.ElementAt(i).Add(m_status8);
			sparray.ElementAt(i).Add(GetLB(m_List3.GetItemText(j, 2)));
			sparray.ElementAt(i).Add(m_List3.GetItemText(j, 4));
			sparray.ElementAt(i).Add(m_pParent->m_seltxname);
		}
		else
			sparray.ElementAt(i).Add(m_pParent->m_seltxname);
		i++;
	}
	if (sparray.GetSize() == 0)
	{
		sparray.SetSize(1);
		sparray.ElementAt(0).Add(m_id);
	}

	int realcount = sparray.GetSize();
	sparray.SetSize(realcount + 1, 1);
	sparray.ElementAt(realcount).Add(g_user.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);

	CString savepath;
	savepath.Format("%s\\%s.dat", g_mainpath, m_id);

	if (m_pParent->m_Runingmode)
		savepath.Format("%s\\%s-2.dat", g_mainpath, m_id);
	if (0)
	{
		CFile fp;
		fp.Open(savepath, CFile::modeCreate | CFile::modeWrite);
		fp.Write(pData2, length);
		fp.Close();
	}

	g_nSendCode = 6;
	if (m_pParent->m_Runingmode)
	{
		g_nSendCode = 24;
	}
	g_pMainWnd->ProcessChatMessageRequest2(pData2, length);
	g_nSendCode = 0;

	if (g_bSendOK == 0)
	{
		delete[]pData2;
		m_bSaveFail = 1;
		return;
	}
	::DeleteFile(savepath);			// ɾ��*.dat�ļ�;

	delete[]pData2;

	m_combourgent.GetLBText(m_combourgent.GetCurSel(), m_urgent);
	FilterBZ(m_bz3);

	CString delphotos;
	for (i = 0; i < m_pParent->m_patharray4.GetSize(); i++)
	{
		if (delphotos.GetLength() > 4096)break;
		CString	no = m_pParent->m_patharray4.ElementAt(i);// Jeff.m_patharray4 ��ѡƬʱ��ɾ������Ƭ����ȫ·������;
		no = no.Right(no.GetLength() - no.ReverseFind('\\') - 1);
		no = no.Left(no.Find('.'));
		delphotos += no;
		delphotos += ";";
	}
	// Jeff:delphotos:Ϊm_patharray4����Ϊֻ����Ƭ��,�Էֺ�Ϊ�ָ������ַ���;
	if (!delphotos.IsEmpty())
	{
		delphotos.TrimLeft(";");
		delphotos.TrimRight(";");
		delphotos = ";" + delphotos;
		delphotos += ";";
	}

#if JEFF_TEST_ON	// �ɳ���ϵ���ۼ�ɾ����; [3/25/2015 lyfz]
	int nIndex = -1;
	CStringArray strTbl;
	CStringArray strAlls;

	CString strDel = m_pParent->m_delphotos;	// ��dindan.delphotos�������;
	CString strAll = delphotos;					// ��¼��ǰѡƬ����ʾ��������Ƭ(��ǰȫ��+ɾ����);

	//AfxMessageBox(strDel + _T("��ɾ��"));
	//AfxMessageBox(delphotos + _T("���ɾ��"));
	
	for (int ss = 0; ss < m_pParent->m_patharray1.GetSize(); ss++)
	{
		CString ssss = m_pParent->m_patharray1.ElementAt(ss);
		nIndex = ssss.ReverseFind(_T('\\'));
		ssss = ssss.Mid(nIndex + 1);
		nIndex = ssss.ReverseFind(_T('.'));
		ssss = ssss.Left(nIndex);

		if (strAll.IsEmpty())
			strAll = ";";
		strAll += ssss;
		strAll += ";";
	}
	//AfxMessageBox(strAll + _T("ȫ��"));

	// ������Ĵ洢��array��;
	strDel.TrimLeft(_T(";"));
	strDel.TrimRight(_T(";"));
	strDel += _T(";");

	do
	{
		nIndex = strDel.Find(_T(";"));
		if (nIndex != -1)
		{
			strTbl.Add(strDel.Left(nIndex));
			strDel = strDel.Mid(nIndex + 1);
		}
	} while (nIndex != -1);

	// ��ȫ����Ƭ�Ĵ洢��array��;
	strAll.TrimLeft(_T(";"));
	strAll.TrimRight(_T(";"));
	strAll += _T(";");

	do
	{
		nIndex = strAll.Find(_T(";"));
		if (nIndex != -1)
		{
			strAlls.Add(strAll.Left(nIndex));
			strAll = strAll.Mid(nIndex + 1);
		}
	} while (nIndex != -1);

	// ��del�ҳ���ε���Ƭ,����del��ɾ��,Ȼ���ټ��Ͻ��ɾ������Ƭ;
	for (int jj = 0; jj < strAlls.GetSize(); jj++)
	{
		for (int n = 0; n < strTbl.GetSize(); n++)
		{
			if (strTbl.ElementAt(n) == strAlls.ElementAt(jj))
			{
				strTbl.RemoveAt(n);
				break;
			}
		}
	}

	// ɾ�����,�ټ��Ͻ��ɾ����;
	if (delphotos.IsEmpty())
		delphotos = ";";
	for (int kk = 0; kk < strTbl.GetSize(); kk++)
	{
		delphotos += strTbl.ElementAt(kk);
		delphotos += ";";
	}

	//AfxMessageBox(delphotos + _T("ʵ��ȫ��"));
#endif
	// Jeff,ѡƬ״̬�Ѿ�ΪOK�ģ��ܾ�����ѡƬ�˺�ѡƬ״̬;2014.08.30
	// Jeff,��Ҫ��ȡѡƬ״̬��
	// GetParent()->m_mode2
#if JEFF_TEST_ON
	// ����ѡȫ��,���һ��;
	CSQLStatementImpl::GetInstancePtr()->ReSetKind(_T("dindan"), _T("where id='") + m_id + _T("'"), KIND_UPDATE, 15);
	if (m_bReChoose == TRUE)
	{
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("status2"), _T("δѡ"));		// ѡƬ״̬;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("waiter3"), _T(""));			// ѡƬ��;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("taoxizs"), m_taoxizs);
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("takezs"), _T(""));
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("choosezs"), _T(""));
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time4"), _T(""));				// ѡƬʱ�� ;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time5"), _T(""));				// ������ȡ��ʱ�� ;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time6"), m_time6);				// �����ʱ��;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("urgent"), m_urgent);			// �Ƿ�Ӽ�;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("money3"), _T(""));				// �������;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("bz3"), _T(""));
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("bz4"), _T(""));
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("delphotos"), _T(""));			// ѡƬʱ,��ɾ������Ƭ;
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("authorize2"), m_authorize);
		CSQLStatementImpl::GetInstancePtr()->AddElement(_T("discount2"), m_discount);
		CSQLStatementImpl::GetInstancePtr()->ReturnSQL(sql);
		//sql = CSQLStatementImpl::GetInstancePtr()->ReturnSQL();
	}
	else
	{
		if (m_strStatusOfChoosePhoto == _T("OK"))
		{
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("taoxizs"), m_taoxizs);		// ��ϵ����:���\���;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("takezs"), m_takezs);		// ��������(��Ƭ����);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("choosezs"), m_choosezs);	// ��������;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time4"), m_time4);			// ѡƬʱ�� ;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time5"), m_time5);			// ������ȡ��ʱ�� ;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time6"), m_time6);			// �����ʱ��;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("urgent"), m_urgent);		// �Ƿ�Ӽ�;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("money3"), m_money3);		// �������;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("bz3"), m_bz3);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("bz4"), m_bz4);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("delphotos"), delphotos);	// ѡƬʱ,��ɾ������Ƭ;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("authorize2"), m_authorize);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("discount2"), m_discount);
			CSQLStatementImpl::GetInstancePtr()->ReturnSQL(sql);
			//sql = CSQLStatementImpl::GetInstancePtr()->ReturnSQL();
		}
		else
		{
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("status2"), _T("OK"));		// ѡƬ״̬;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("waiter3"), m_waiter3);		// ѡƬ��;
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("taoxizs"), m_taoxizs);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("takezs"), m_takezs);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("choosezs"), m_choosezs);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time4"), m_time4);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time5"), m_time5);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("time6"), m_time6);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("urgent"), m_urgent);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("money3"), m_money3);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("bz3"), m_bz3);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("bz4"), m_bz4);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("delphotos"), delphotos);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("authorize2"), m_authorize);
			CSQLStatementImpl::GetInstancePtr()->AddElement(_T("discount2"), m_discount);
			CSQLStatementImpl::GetInstancePtr()->ReturnSQL(sql);
			//sql = CSQLStatementImpl::GetInstancePtr()->ReturnSQL();
		}
	}
	//WriteClientLog(sql);
#else
	if (m_strStatusOfChoosePhoto == "OK" )
		sql = "update dindan set taoxizs='" + m_taoxizs + "',takezs='" + m_takezs + "',choosezs='" + m_choosezs + "',time4='" + m_time4 + "',time5='" + m_time5 + "',time6='" + m_time6 + "',urgent='" + m_urgent + "',money3='" + m_money3 + "',bz3='" + m_bz3 + "',bz4='" + m_bz4 + "',delphotos='" + delphotos + "',authorize2='" + m_authorize + "',discount2='" + m_discount + "' where id='" + m_id + "'";
	else
		sql = "update dindan set status2='OK',waiter3='" + m_waiter3 + "',taoxizs='" + m_taoxizs + "',takezs='" + m_takezs + "',choosezs='" + m_choosezs + "',time4='" + m_time4 + "',time5='" + m_time5 + "',time6='" + m_time6 + "',urgent='" + m_urgent + "',money3='" + m_money3 + "',bz3='" + m_bz3 + "',bz4='" + m_bz4 + "',delphotos='" + delphotos + "',authorize2='" + m_authorize + "',discount2='" + m_discount + "' where id='" + m_id + "'";
#endif
	if (m_pParent->m_Runingmode)	// �����;
	{
		if (m_status8 != "OK")
		{
			sql = "update dindan set bz2='" + m_bz3 + "',status8='" + m_status8 + "',status5='�����',time6='" + m_time6 + "',time5='" + m_time5 + "',waiter8='" + g_user.name + "',urgent='" + m_urgent + "',money3='" + m_money3 + "',delphotos2='" + delphotos + "',authorize2='" + m_authorize + "',discount2='" + m_discount + "' where id='" + m_id + "'";
		}
		else
		{
			sql = "update dindan set bz2='" + m_bz3 + "',status8='" + m_status8 + "',status5='OK',time6='" + m_time6 + "',time5='" + m_time5 + "',waiter8='" + g_user.name + "',urgent='" + m_urgent + "',money3='" + m_money3 + "',delphotos2='" + delphotos + "',authorize2='" + m_authorize + "',discount2='" + m_discount + "' where id='" + m_id + "'";
		}

		/////////////////////////
		CString m_name1 = m_pParent->m_name1;
		CString m_name2 = m_pParent->m_name2;
		CString m_phone1 = m_pParent->m_phone1;
		CString m_phone2 = m_pParent->m_phone2;
		CString oldstatus = m_pParent->m_checkstatus;
		CString sql2;
		BOOL msgcheck = atoi(g_cominfoarray.ElementAt(0).ElementAt(103));	// [version].[msgcheck13].�Ƿ��ڿ��˿���OK���Ͷ���;
		CString msgcontent = g_cominfoarray.ElementAt(0).ElementAt(107);
		if (oldstatus == "OK")msgcheck = 0;
		if (m_status8 != "OK")msgcheck = 0;
#ifdef CHILD_VERSION
		if (msgcheck)
		{
			CString m_content3 = msgcontent;
			CString str, timestamp;
			timestamp = "777888";
			{
				CString name;
				if (!m_name1.IsEmpty())
					name = m_name1 + ",";
				name += m_name2;
				name.TrimRight(",");
				if (name.IsEmpty() == 0 && CheckPhoneType(m_phone1) != -1 && CheckBadWords(name, 0) )
				{
					str = name + m_content3;
					str.Replace("xxx����", "");
					int count = GetLengthEx(str) / MSG_LENGTH;
					if (GetLengthEx(str) % MSG_LENGTH)
						count++;
					CString scount;
					scount.Format("%d", count);
#if JEFF_TEST_ON
					// �����¼ʱ��Ҫ���϶�������;
					sql2.Format(INSERT_SENDREGDELAY, _T("13"), m_phone1, str, timestamp, scount, _T("0"), _T("0"), _T("0"),_T("ϵͳ�Զ�����"));
					sql += _T("***") + sql2;
#else
					sql2 = "***insert into sendregdelay([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone1 + "','" + str + "','" + timestamp + "','" + scount + "','0','0','0','ϵͳ�Զ�����')";
					sql += sql2;
#endif
				}
			}
		}
#else
		if (msgcheck)
		{
			CString m_content3 = msgcontent;
			CString str, timestamp;
			timestamp = "777888";
			int pos = m_content3.Find("xxx����/Ůʿ");
			if (pos != -1)
			{
				if (m_name1.IsEmpty() == 0 && CheckPhoneType(m_phone1) != -1 && CheckBadWords(m_name1, 0))
				{
					str = m_content3;
					str.Replace("xxx����/Ůʿ", m_name1 + "����");
					int count = GetLengthEx(str) / MSG_LENGTH;
					if (GetLengthEx(str) % MSG_LENGTH)
						count++;
					CString scount;
					scount.Format("%d", count);
#if JEFF_TEST_ON
					// �����¼ʱ��Ҫ���϶�������;
					sql2.Format(INSERT_SENDREGDELAY, _T("13"), m_phone1, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("ϵͳ�Զ�����"));
					sql += _T("***") + sql2;
#else
					sql2="***insert into sendregdelay([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone1+"','"+str+"','"+timestamp+"','"+scount+"','0','0','0','ϵͳ�Զ�����')";
					sql+=sql2;
#endif
				}
				if (m_name2.IsEmpty() == 0 && CheckPhoneType(m_phone2) != -1 && CheckBadWords(m_name2, 0))
				{
					str = m_content3;
					str.Replace("xxx����/Ůʿ", m_name2 + "Ůʿ");
					int count = GetLengthEx(str) / MSG_LENGTH;
					if (GetLengthEx(str) % MSG_LENGTH)
						count++;
					CString scount;
					scount.Format("%d", count);
					CTime tm = CTime::GetCurrentTime();
					tm += CTimeSpan(0, 0, 0, 3);
					timestamp = "777888";
#if JEFF_TEST_ON
					// �����¼ʱ��Ҫ���϶�������;
					sql2.Format(INSERT_SENDREGDELAY, _T("13"), m_phone2, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("ϵͳ�Զ�����"));
					sql += _T("***") + sql2;
#else
					sql2="***insert into sendregdelay([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone2+"','"+str+"','"+timestamp+"','"+scount+"','0','0','0','ϵͳ�Զ�����')";
					sql+=sql2;
#endif
				}
			}
		}
#endif
		/////////////////////////

	}
	else
	{
		/////////////////////////
		CString m_name1 = m_pParent->m_name1;
		CString m_name2 = m_pParent->m_name2;
		CString m_phone1 = m_pParent->m_phone1;
		CString m_phone2 = m_pParent->m_phone2;
		CString oldstatus = m_pParent->m_checkstatus;
		CString sql2;
		BOOL msgcheck = atoi(g_cominfoarray.ElementAt(0).ElementAt(102));	// [version].[msgcheck12].�Ƿ��ڿ���ѡƬOK���Ͷ���;
		CString msgcontent = g_cominfoarray.ElementAt(0).ElementAt(106);
		if (oldstatus == "OK")msgcheck = 0;
#ifdef CHILD_VERSION
		if (msgcheck)
		{
			CString m_content3 = msgcontent;
			CString str, timestamp;
			timestamp = "777888";
			{
				CString name;
				if (!m_name1.IsEmpty())
					name = m_name1 + ",";
				name += m_name2;
				name.TrimRight(",");
				if (name.IsEmpty() == 0 && CheckPhoneType(m_phone1) != -1 && CheckBadWords(name, 0))
				{
					str = name + m_content3;
					str.Replace("xxx����", "");

					int count = GetLengthEx(str) / MSG_LENGTH;
					if (GetLengthEx(str) % MSG_LENGTH)
						count++;
					CString scount;
					scount.Format("%d", count);
#if JEFF_TEST_ON
					// �����¼ʱ��Ҫ���϶�������;
					sql2.Format(INSERT_SENDREGDELAY, _T("12"), m_phone1, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("ϵͳ�Զ�����"));
					sql += _T("***") + sql2;
#else
					sql2 = "***insert into sendregdelay([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone1 + "','" + str + "','" + timestamp + "','" + scount + "','0','0','0','ϵͳ�Զ�����')";
					sql += sql2;
#endif
				}
			}
		}
#else
		if (msgcheck)
		{
			CString m_content3 = msgcontent;
			CString str, timestamp;
			timestamp = "777888";
			int pos = m_content3.Find("xxx����/Ůʿ");
			if (pos != -1)
			{
				if (m_name1.IsEmpty() == 0 && CheckPhoneType(m_phone1) != -1 && CheckBadWords(m_name1, 0))
				{
					str = m_content3;
					str.Replace("xxx����/Ůʿ", m_name1 + "����");
					int count = GetLengthEx(str) / MSG_LENGTH;
					if (GetLengthEx(str) % MSG_LENGTH)
						count++;
					CString scount;
					scount.Format("%d", count);
#if JEFF_TEST_ON
					// �����¼ʱ��Ҫ���϶�������;
					sql2.Format(INSERT_SENDREGDELAY, _T("12"), m_phone1, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("ϵͳ�Զ�����"));
					sql += _T("***") + sql2;
#else
					sql2="***insert into sendregdelay([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone1+"','"+str+"','"+timestamp+"','"+scount+"','0','0','0','ϵͳ�Զ�����')";
					sql+=sql2;
#endif
				}
				if (m_name2.IsEmpty() == 0 && CheckPhoneType(m_phone2) != -1 && CheckBadWords(m_name2, 0))
				{
					str = m_content3;
					str.Replace("xxx����/Ůʿ", m_name2 + "Ůʿ");
					int count = GetLengthEx(str) / MSG_LENGTH;
					if (GetLengthEx(str) % MSG_LENGTH)
						count++;
					CString scount;
					scount.Format("%d", count);
					CTime tm = CTime::GetCurrentTime();
					tm += CTimeSpan(0, 0, 0, 3);
					timestamp = "777888";
#if JEFF_TEST_ON
					// �����¼ʱ��Ҫ���϶�������;
					sql2.Format(INSERT_SENDREGDELAY, _T("12"), m_phone2, str, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("ϵͳ�Զ�����"));
					sql += _T("***") + sql2;
#else
					sql2="***insert into sendregdelay([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone2+"','"+str+"','"+timestamp+"','"+scount+"','0','0','0','ϵͳ�Զ�����')";
					sql+=sql2;
#endif
				}
			}
		}
#endif
		/////////////////////////
	}

	if (atoi(g_cominfoarray.ElementAt(0).ElementAt(117)))//����ر�
	{
		CString id = m_id;
		CString m_time5old = m_pParent->m_time5old;
		CString m_time6old = m_pParent->m_time6old;


		m_pParent->m_time5old = m_time5;
		m_pParent->m_time6old = m_time6;

		CString	timestamp;
		CTime tm = CTime::GetCurrentTime();
		CTimeSpan dt(0, 0, 0, 1);
		timestamp = tm.Format("%Y%m%d%H%M%S");
		CString sql2, phone, clothescount;

		CString m_phone1 = m_pParent->m_phone1;
		CString m_phone2 = m_pParent->m_phone2;
		CString m_name1 = m_pParent->m_name1;
		CString m_name2 = m_pParent->m_name2;
		CString taoxiname = m_pParent->taoxiname;
		CString m_taoxijiage = m_pParent->m_taoxijiage;
		CString m_waiter1 = m_pParent->m_waiter1;
		CString m_waiter2 = m_pParent->m_waiter2;
		CString ren = m_pParent->ren;
		CString m_clothescount = m_pParent->m_clothescount;
		if (m_time6 != "" && m_time6old != m_time6)
		{
			tm += dt;
			timestamp = tm.Format("%Y%m%d%H%M%S");
			phone = m_phone1 + " " + m_phone2;
			phone.TrimLeft();
			if (m_clothescount != "")
				clothescount = "��װ:" + m_clothescount;
			if (1)//m_time6old=="")
				sql2.Format("***insert into [todaytake]([name],[phone],[time],[type],[price],[waiter1],[waiter2],[receptionist],[arrearage],[remark],[clerk],[timestamp],[date],[mode],[arrive],[id])values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%d','%s','%s')", m_name1 + m_name2, phone, "", taoxiname, m_taoxijiage, m_waiter1, m_waiter2, ren, m_taoxijiage, clothescount, g_user.name, timestamp, m_time6, 2, "�", id);
			else
				sql2.Format("***update [todaytake] set [date]='%s' where [id]='%s' and [mode]='%d'", m_time6, id, 2);
			sql += sql2;
		}
		if (m_time5 != "" && m_time5old != m_time5)
		{
			tm += dt;
			timestamp = tm.Format("%Y%m%d%H%M%S");
			phone = m_phone1 + " " + m_phone2;
			phone.TrimLeft();
			if (m_clothescount != "")
				clothescount = "��װ:" + m_clothescount;
			if (1)//m_time5old=="")
				sql2.Format("***insert into [todaytake]([name],[phone],[time],[type],[price],[waiter1],[waiter2],[receptionist],[arrearage],[remark],[clerk],[timestamp],[date],[mode],[arrive],[id])values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%d','%s','%s')", m_name1 + m_name2, phone, "", taoxiname, m_taoxijiage, m_waiter1, m_waiter2, ren, m_taoxijiage, clothescount, g_user.name, timestamp, m_time5, 3, "�", id);
			else
				sql2.Format("***update [todaytake] set [date]='%s' where [id]='%s' and [mode]='%d'", m_time5, id, 3);
			sql += sql2;
		}
	}

	g_sendhead.bsql = 1;
	g_pMainWnd->ProcessChatMessageRequest2(sql);

	if (g_bSendOK == 0)
	{
		m_bSaveFail = 1;
		return;
	}

	m_bSave = 1;
	if (atof(m_oldmoney3) != atof(m_money3))
	{
		InputJT dlg;
		dlg.m_id = m_id;
		dlg.m_money.Format("%0.2f", atof(m_money3) - atof(m_oldmoney3));
		dlg.DoModal();
	}
	m_oldmoney3 = m_money3;
	AfxMessageBox("����ɹ�!", MB_ICONINFORMATION);

	m_bExit = 0;
	if (m_pParent->ReLoad() == 0)
	{
		CDialog::OnCancel();
		m_bExit = 1;
		return;
	}
	LoadData(1);

	if (bZZB == 0 && atoi(g_cominfoarray.ElementAt(0).ElementAt(130)) == 0)
	{
		ZZB dlg;
		dlg.SetLiaPath("6.lia");
		if (dlg.DoModal() == IDOK)
		{
			CString m_spname = "���б�app";
			CString m_spid;
			CString m_lb;
			GetSPInfoFromName(m_spname, m_spid, m_lb);
			if (m_spid == "")
			{
				sql = "insert into shangpinlb (name)values('���б�app')***insert into shangpin(spid,spname,splb,hide)values('ZZB001','���б�app','���б�app','�ϼ�')";
				g_sendhead.bsql = 1;
				g_pMainWnd->ProcessChatMessageRequest2(sql);
				if (g_bSendOK == 0)
				{
					m_bSaveFail = 1;
					return;
				}
				g_sendhead.code[0] = 4;
				g_sendhead.tabcount = 1;
				g_sendhead.bsql = 0;
				g_pMainWnd->ProcessChatMessageRequest2(1);
				if (g_bSendOK == 0)
				{
					m_bSaveFail = 1;
					return;
				}
				DataToArray(&(m_pParent->m_sparray));
				GetSPInfoFromName(m_spname, m_spid, m_lb);
			}
			int pos = m_List3.GetItemCount();
			CString str;
			if (pos)
			{
				if (m_List3.GetItemText(pos - 1, 1).IsEmpty() && m_List3.GetItemText(pos - 1, 2).IsEmpty())
				{
					pos--;
					m_List3.SetItemText(pos, 1, m_spid);
					m_List3.SetItemText(pos, 2, GetSPNameFromId(m_spid));
					str.Format("%f", GetSPPriceFromId(m_spid));
					ConvertToPrice(str);
					m_List3.SetItemText(pos, 3, str);
					m_List3.SetItemText(pos, 4, "1");
				}
				else
				{
					m_List3.InsertItem(pos, "");
					m_List3.SetItemText(pos, 1, m_spid);
					m_List3.SetItemText(pos, 2, GetSPNameFromId(m_spid));
					str.Format("%f", GetSPPriceFromId(m_spid));
					ConvertToPrice(str);
					m_List3.SetItemText(pos, 3, str);
					m_List3.SetItemText(pos, 4, "1");
				}
			}
			else
			{
				m_List3.InsertItem(pos, "");
				m_List3.SetItemText(pos, 1, m_spid);
				m_List3.SetItemText(pos, 2, GetSPNameFromId(m_spid));
				str.Format("%f", GetSPPriceFromId(m_spid));
				ConvertToPrice(str);
				m_List3.SetItemText(pos, 3, str);
				m_List3.SetItemText(pos, 4, "1");
			}
			SetSPName3();
			AfxMessageBox("���Զ����Ӳ�Ʒ '���б�app', �������ѡ�������б�app��Ƭ!", MB_ICONINFORMATION);
		}
	}
}

void ChoosePhotoSkin3::OnTimer(UINT nIDEvent)
{
	if (nIDEvent == 3)
	{
		KillTimer(nIDEvent);
		SetSPName3();
	}
	if (nIDEvent == 2)
	{
		KillTimer(nIDEvent);
		SetSPName2();
	}
}

float ChoosePhotoSkin3::GetSPPriceFromId(CString id)
{
	for (int i = 0; i < m_pParent->m_sparray.GetSize(); i++)
	{
		if (id == m_pParent->m_sparray.ElementAt(i).ElementAt(0))
			return atof(m_pParent->m_sparray.ElementAt(i).ElementAt(4));
	}
	return 0;
}
void ChoosePhotoSkin3::GetSPInfoFromName(CString name, CString &id, CString &splb)
{
	for (int i = 0; i < m_pParent->m_sparray.GetSize(); i++)
	{
		if (name == m_pParent->m_sparray.ElementAt(i).ElementAt(1))
		{
			id = m_pParent->m_sparray.ElementAt(i).ElementAt(0);
			break;
		}
	}
}
CString ChoosePhotoSkin3::GetSPNameFromId(CString id)
{
	for (int i = 0; i < m_pParent->m_sparray.GetSize(); i++)
	{
		if (id == m_pParent->m_sparray.ElementAt(i).ElementAt(0))
			return m_pParent->m_sparray.ElementAt(i).ElementAt(1);
	}
	id.TrimLeft("0");
	for (i = 0; i < m_pParent->m_sparray.GetSize(); i++)
	{
		if (id == m_pParent->m_sparray.ElementAt(i).ElementAt(0))
			return m_pParent->m_sparray.ElementAt(i).ElementAt(1);
	}
	return "";
}

void ChoosePhotoSkin3::SetSPName2()
{
	for (int i = 0; i < m_List2.GetItemCount(); i++)
	{
		if (GetSPNameFromId(m_List2.GetItemText(i, 1)) != "")
			m_List2.SetItemText(i, 2, GetSPNameFromId(m_List2.GetItemText(i, 1)));
	}
}

void ChoosePhotoSkin3::SetSPName3()
{
	UpdateData();
	m_no2array.RemoveAll();
	CString str;

	for (int i = 0; i < m_List3.GetItemCount(); i++)
	{
		if (GetSPNameFromId(m_List3.GetItemText(i, 1)) != "")
			m_List3.SetItemText(i, 2, GetSPNameFromId(m_List3.GetItemText(i, 1)));
		str.Format("%f", GetSPPriceFromId(m_List3.GetItemText(i, 1)));
		ConvertToPrice(str);
		if (m_List3.GetItemText(i, 1) != "" && (m_List3.GetItemText(i, 3) == "" || m_List3.GetItemText(i, 3) == "0"))
			m_List3.SetItemText(i, 3, str);


#ifdef LKAY_VERSION
		str=m_List3.GetItemText(i,7); 
#else
		str = m_List3.GetItemText(i, 5);
#endif

		if (!str.IsEmpty())
			str = "," + str + ",";
		m_no2array.Add(str);

	}
}

void ChoosePhotoSkin3::OnSpBox()
{
	SPBox dlg;
	if (dlg.DoModal() != IDOK)return;
	OnButton3();
	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);
		dlg.m_lb = dlg.m_lbarray.ElementAt(a);
		int pos = m_List3.GetItemCount();
		CString str;
		if (pos)
		{
			if (m_List3.GetItemText(pos - 1, 1).IsEmpty() && m_List3.GetItemText(pos - 1, 2).IsEmpty())
			{
				pos--;
				m_List3.SetItemText(pos, 1, dlg.m_spid);
				m_List3.SetItemText(pos, 2, GetSPNameFromId(dlg.m_spid));
				str.Format("%f", GetSPPriceFromId(dlg.m_spid));
				ConvertToPrice(str);
				m_List3.SetItemText(pos, 3, str);
				m_List3.SetItemText(pos, 4, "1");
			}
			else
			{
				m_List3.InsertItem(pos, "");
				m_List3.SetItemText(pos, 1, dlg.m_spid);
				m_List3.SetItemText(pos, 2, GetSPNameFromId(dlg.m_spid));
				str.Format("%f", GetSPPriceFromId(dlg.m_spid));
				ConvertToPrice(str);
				m_List3.SetItemText(pos, 3, str);
				m_List3.SetItemText(pos, 4, "1");
			}
		}
		else
		{
			m_List3.InsertItem(pos, "");
			m_List3.SetItemText(pos, 1, dlg.m_spid);
			m_List3.SetItemText(pos, 2, GetSPNameFromId(dlg.m_spid));
			str.Format("%f", GetSPPriceFromId(dlg.m_spid));
			ConvertToPrice(str);
			m_List3.SetItemText(pos, 3, str);
			m_List3.SetItemText(pos, 4, "1");
		}
	}
	SetSPName3();
}

void ChoosePhotoSkin3::OnButton8() // ɾ����ť;
{
	POSITION pos;
	pos = m_List3.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫɾ������Ŀ!", MB_ICONINFORMATION);
		return;
	}
	if (AfxMessageBox("ɾ�����޷��ָ�, ȷ��ɾ����?", MB_YESNO) != IDYES)return;

	OnButton3();
	int iItem = m_List3.GetNextSelectedItem(pos);
	m_List3.DeleteItem(iItem);
	SetSPName3();
}

void ChoosePhotoSkin3::OnButton5()
{
	POSITION pos;
	pos = m_List3.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		AfxMessageBox("����ѡ����Ҫ��ѡ����Ʒ!", MB_ICONINFORMATION);
		return;
	}
	if (AfxMessageBox("ȷ����ѡ��?", MB_YESNO) != IDYES)return;
	m_bModify = 1;
	int iItem = m_List3.GetNextSelectedItem(pos);

#ifdef LKAY_VERSION
	m_List3.SetItemText (iItem, 7, "");
#else
	m_List3.SetItemText(iItem, 5, "");
#endif

	if (m_no2array.GetSize() > iItem)
		m_no2array.SetAt(iItem, "");
	UpdateChooseZS();
}

void ChoosePhotoSkin3::OnButton6()	// ȫ����ѡ��ť;
{
	if (AfxMessageBox("ȷ����ѡ��?", MB_YESNO) != IDYES)return;
	for (int i = 0; i<m_List3.GetItemCount(); i++)
	{
#ifdef LKAY_VERSION
		m_List3.SetItemText (i, 7, "");
#else
		m_List3.SetItemText(i, 5, "");
#endif

		if (m_no2array.GetSize()>i)
			m_no2array.SetAt(i, "");
	}
	UpdateChooseZS();
	m_bModify = 1;

	m_bReChoose = TRUE;
	WriteLog(m_id + CString(_T("����ѡƬ��ȫ����ѡ")));
}

void ChoosePhotoSkin3::LoadData(BOOL bLoad)
{
	if (bLoad)
	{
		m_name1 = m_pParent->m_name;
		m_time6 = m_pParent->m_time6;
		m_time4 = m_pParent->m_time4;
		m_waiter3 = m_pParent->m_waiter3;
		m_takezs = m_pParent->m_takezs;
		m_taoxizs = m_pParent->m_taoxizs;
		m_choosezs = m_pParent->m_choosezs;
		m_bz3 = m_pParent->m_bz3;
		m_bz4 = m_pParent->m_bz4;
		m_id = m_pParent->m_strOrderNumber;
		m_money3 = m_pParent->m_money3;
		m_oldmoney3 = m_pParent->m_oldmoney3;
		m_time5 = m_pParent->m_time5;
		m_urgent = m_pParent->m_urgent;

		if (m_pParent->m_Runingmode && m_time6.IsEmpty())
			m_time6 = g_date;


		if (m_combourgent.FindString(0, m_urgent) == -1)
			m_combourgent.SetCurSel(1);
		else
			m_combourgent.SetCurSel(m_combourgent.FindString(0, m_urgent));

		m_status8 = m_pParent->m_status8;
		if (m_combo1.FindString(0, m_status8) == -1)
			m_combo1.SetCurSel(0);
		else
			m_combo1.SetCurSel(m_combo1.FindString(0, m_status8));

		UpdateData(false);
		m_no2array.Copy(m_pParent->m_no2array);
		m_noarray.Copy(m_pParent->m_noarray);

		m_List2.DeleteAllItems();
		m_List3.DeleteAllItems();


		for (int i = 0; i < m_pParent->oldsparray.GetSize(); i++)
		{
			m_List2.InsertItem(i, m_pParent->oldsparray.ElementAt(i).ElementAt(1));
			m_List2.SetItemText(i, 1, m_pParent->oldsparray.ElementAt(i).ElementAt(2));
			m_List2.SetItemText(i, 2, m_pParent->oldsparray.ElementAt(i).ElementAt(3));
		}


		for (i = 0; i < m_pParent->m_List3.GetItemCount(); i++)
		{
			m_List3.InsertItem(i, m_pParent->m_List3.GetItemText(i, 0));
			m_List3.SetItemText(i, 1, m_pParent->m_List3.GetItemText(i, 1));
			m_List3.SetItemText(i, 2, m_pParent->m_List3.GetItemText(i, 2));
			m_List3.SetItemText(i, 3, m_pParent->m_List3.GetItemText(i, 3));
			m_List3.SetItemText(i, 4, m_pParent->m_List3.GetItemText(i, 4));
			m_List3.SetItemText(i, 5, m_pParent->m_List3.GetItemText(i, 5));
#ifdef LKAY_VERSION
			m_List3.SetItemText(i, 6, m_pParent->m_List3.GetItemText (i, 6));
			m_List3.SetItemText(i, 7, m_pParent->m_List3.GetItemText (i, 7));
#endif

		}
	}
	else
	{
		UpdateData();
		//	m_pParent->m_name1=m_name1;
		m_pParent->m_time6 = m_time6;
		m_pParent->m_time4 = m_time4;
		m_pParent->m_waiter3 = m_waiter3;

		m_pParent->m_taoxizs = m_taoxizs;
		m_pParent->m_choosezs = m_choosezs;
		m_pParent->m_bz3 = m_bz3;
		m_pParent->m_bz4 = m_bz4;
		m_pParent->m_strOrderNumber = m_id;
		m_pParent->m_money3 = m_money3;
		m_pParent->m_oldmoney3 = m_oldmoney3;
		m_combourgent.GetLBText(m_combourgent.GetCurSel(), m_urgent);
		m_pParent->m_urgent = m_urgent;
		m_pParent->m_time5 = m_time5;
		m_pParent->m_status8 = m_status8;
		m_pParent->UpdateData(false);
		m_pParent->m_no2array.Copy(m_no2array);
		m_pParent->m_noarray.Copy(m_noarray);
		m_pParent->m_bSave = m_bSave;
		if (m_bModify)
		{
			m_pParent->UpdateChooseZS();//����ѡ�е���Ƭ
			m_pParent->GetNoSelPhoto();
			m_pParent->LoadPhotos();//������ʾ
		}
		m_pParent->m_List2.DeleteAllItems();
		m_pParent->m_List3.DeleteAllItems();


		/*	for(int i=0; i<m_List2.GetItemCount (); i++)
		{
		m_pParent->m_List2.InsertItem(i, m_List2.GetItemText (i, 0));
		m_pParent->m_List2.SetItemText(i, 1, m_List2.GetItemText (i, 1));
		m_pParent->m_List2.SetItemText(i, 2, m_List2.GetItemText (i, 2));
		m_pParent->m_List2.SetItemText(i, 3, m_List2.GetItemText (i, 3));
		m_pParent->m_List2.SetItemText(i, 4, m_List2.GetItemText (i, 4));
		}*/
		for (int i = 0; i < m_List3.GetItemCount(); i++)
		{
			m_pParent->m_List3.InsertItem(i, m_List3.GetItemText(i, 0));
			m_pParent->m_List3.SetItemText(i, 1, m_List3.GetItemText(i, 1));
			m_pParent->m_List3.SetItemText(i, 2, m_List3.GetItemText(i, 2));
			m_pParent->m_List3.SetItemText(i, 3, m_List3.GetItemText(i, 3));
			m_pParent->m_List3.SetItemText(i, 4, m_List3.GetItemText(i, 4));
			m_pParent->m_List3.SetItemText(i, 5, m_List3.GetItemText(i, 5));

#ifdef LKAY_VERSION
			m_pParent->m_List3.SetItemText(i, 6, m_List3.GetItemText (i, 6));
			m_pParent->m_List3.SetItemText(i, 7, m_List3.GetItemText (i, 7));
#endif
		}
	}
}

void ChoosePhotoSkin3::OnBTNprint()	// �򵥰�ť;
{
	if (m_pParent->m_Runingmode)
		g_pMainWnd->PrintFlowChart4(m_id);
	else
		g_pMainWnd->PrintFlowChart(m_id);
}

void ChoosePhotoSkin3::OnBTNprint2()
{
	m_pParent->UpdateChooseZS();
	m_pParent->GetNoSelPhoto();
	m_pParent->LoadPhotos();//������ʾ


	if (m_pParent->m_patharray2.GetSize() == 0)
	{
		AfxMessageBox("û��ѡ�е���Ƭ!"); return;
	}
	/*	CString name;
	if(!m_name1.IsEmpty ())
	name=m_name1+",";
	name+=m_name2;
	name.TrimRight (",");*/
	g_pMainWnd->PrintThumbNail(&(m_pParent->m_patharray2), "����:" + m_name1 + "-ѡƬСͼ", m_pParent->m_Runingmode, m_pParent->m_size);
}

float ChoosePhotoSkin3::GetMoney()
{
	float ret = 0;
	for (int i = 0; i < m_List3.GetItemCount(); i++)
	{
		ret += atof(m_List3.GetItemText(i, 3))*atof(m_List3.GetItemText(i, 4));
	}
	return ret;
}

float ChoosePhotoSkin3::GetMoney2()
{
	float ret = 0;
	for (int i = 0; i < m_List2.GetItemCount(); i++)
	{
		ret += GetSPPriceFromId(m_List2.GetItemText(i, 0))*atof(m_List2.GetItemText(i, 2));
	}
	return ret;
}

void ChoosePhotoSkin3::OnButton12()		// ѡ��ͻ�Ҫ��;
{
	SPLBDlg dlg;
	dlg.m_mode = 19;
	if (dlg.DoModal() == IDOK)
	{
		UpdateData();
		m_bz3 += "Ҫ��:" + dlg.m_edit1 + "\r\n";
		UpdateData(0);
	}
}

void ChoosePhotoSkin3::OnBnClickedMicroshare()
{
	// �������;
	CString strOrderNumber = _T("");		// ������;
	CString strScenery = _T("");			// ������;
	CString strCustomer = _T("");			// �˿�����;
	CString strMakeupArtist = _T("");		// ��ױʦ;
	CString strSourcePath = _T("");			// ��Ƭ��Ŀ¼;
	CString strBranchName = _T("");			// �ֵ���;
	CString strBranchDomain = _T("");		// �ֵ�����;
	TCHAR  szShareId[MAX_PATH] = _T("");	// ΢�������ID;

	// û�м��Ű�ѡƬ��,������ʱ����Ҫ�����ֵ��ϵ�Ŀ¼;
	// �Ҿ���Ҳ�ÿ�,��Ҫ��ԭƬĿ¼�ͳ���Ŀ¼���ж�;
	strOrderNumber = m_pParent->m_strOrderNumber;
	strMakeupArtist = m_pParent->m_waiter2;

	// �жϳ���ƬĿ¼�Ƿ�����Ƭ,����ָ��ԭƬĿ¼;
	BOOL bOriginal = FALSE;
	strSourcePath.Format(_T("%s\\%s"), g_path2, strOrderNumber);
	if (PathFileExists(strSourcePath))
	{
		// ���ҳ���ƬĿ¼�Ƿ��ж����ļ���Ƭ;
		using namespace helper_coffs;
		ffsco o;
		o.dirs(1);
		o.find(LPCSTR(strSourcePath), LPCSTR("*.jpg"));
		if (o.co_file().size() == 0)
			strSourcePath.Format(_T("%s\\%s"), g_path1, strOrderNumber);
	}
	else
	{
		bOriginal = TRUE;
		strSourcePath.Format(_T("%s\\%s"), g_path1, strOrderNumber);
	}

	// ���ض�̬��;
	if (LoadMicroShareLibrary() == FALSE)
		return;

	if (g_lyfzCreateShare)
	{
		g_lyfzCreateShare(
			g_cominfoarray.ElementAt(0).ElementAt(147),		// ΢�˺�;
			g_cominfoarray.ElementAt(0).ElementAt(148),		// ΢����;
			(bOriginal == FALSE) ? g_path2 : g_path1,		// ��Ƭ����Ŀ¼;
			strBranchDomain,								// �ֵ�����;���ڵ�ǰ�汾û��ʵ�ֿ��ѡƬ,������һ���Թ�;
			strOrderNumber,									// ������;
			strScenery,										// ���㾰��;
			strSourcePath,
			m_pParent->m_name1,								// �˿�1����;
			m_pParent->m_name2,								// �˿�2����;
			strMakeupArtist,								// ��ױʦ;
			szShareId										// ���ص�΢���id;
			);
	}

	FreeMicroShareLibrary();
}