#ifndef __TBL_DEF_20150930__
#define __TBL_DEF_20150930__

/************************************************************************/
/* 
	��Ȩ����: (C)2015, ���Ƿ��ۿƼ����޹�˾��
	�����: TblDef.h  
	�ļ���ʶ: 
	����ժҪ: ���ݱ��ṹ����
	����˵��: 
	��ǰ�汾: V1.0
	��    ��: Jeff
	�������: 2015/04/23

	�޸ļ�¼: 
	�޸�����: 
	�� �� ��: 
	�� �� ��: 
	�޸�����: 
*/
/************************************************************************/

#include "basetype.h"

//////////////////////////////////////////////////////////////////////////
// Version�����������Ϣ;
typedef struct ST_TblVerion
{	
	TCHAR	szVersion[MAX_PATH];			
	BOOL	bCheck1;					/* �Ƿ��Զ�ɾ������ԭƬ == 0 ������, ==1 ���� */	
	BOOL	bCheck2;					/* �Ƿ��Զ�ɾ�����˳���Ƭ == 0 ������, ==1 ���� */
	BOOL	bCheck3;					/* �Ƿ��Զ�ɾ�����˾���Ƭ == 0 ������, ==1 ���� */
	BOOL	bCheck4;					/* �Ƿ��Զ�ɾ���������Ƭ == 0 ������, ==1 ���� */

	INT		nCheckMonth1;				/* ��bCheck1��Ӧ,��ȡ������ٸ����Զ�ɾ��ԭƬ */
	INT		nCheckMonth2;				/* ��bCheck2��Ӧ,��ȡ������ٸ����Զ�ɾ������Ƭ */
	INT		nCheckMonth3;				/* ��bCheck3��Ӧ,��ȡ������ٸ����Զ�ɾ������Ƭ */
	INT		nCheckMonth4;				/* ��bCheck4��Ӧ,��ȡ������ٸ����Զ�ɾ�����Ƭ */

	BOOL	bCheckbak1;					/* �Ƿ������Զ����ݿ���ԭƬ ==0,������; */
	BOOL	bCheckbak2;					/* �Ƿ������Զ����ݿ��˳���Ƭ ==0,������; */
	BOOL	bCheckbak3;					/* �Ƿ������Զ����ݿ��˾���Ƭ ==0,������; */
	BOOL	bCheckbak4;					/* �Ƿ������Զ����ݿ������Ƭ ==0,������; */
	BOOL	bCheckbak5;					/* �Ƿ������Զ�����ϵͳ����(��) ==0,������ --���ô���ܱ����� */
	BOOL	bCheckbak6;					/* �Ƿ����ñ�����Ϻ��Զ��ػ� ==0,������ */

	TCHAR	szbakServer1[MAX_PATH];		/* ��bCheckbak1��Ӧ,ԭƬ����Ŀ¼�Ĺ��������� */
	TCHAR	szbakServer2[MAX_PATH];		/* ��bCheckbak2��Ӧ,����Ƭ����Ŀ¼�Ĺ��������� */
	TCHAR	szbakServer3[MAX_PATH];		/* ��bCheckbak31��Ӧ,����Ƭ����Ŀ¼�Ĺ��������� */
	TCHAR	szbakServer4[MAX_PATH];		/* ��bCheckbak4��Ӧ,���Ƭ����Ŀ¼�Ĺ��������� */
	TCHAR	szbakServer5[MAX_PATH];		/* ��bCheckbak5��Ӧ,���ݿⱸ��Ŀ¼�Ĺ��������� */
	INT 	nbakTime;					/* ��bCheckbak6��Ӧ,��ʼ���ݵ�ʱ��,24Сʱ�Ƶ�ʱ�� */
	
	BOOL	bCheckbakdel1;				/* �Ƿ��Զ�ɾ������ԭƬ���� == 0 ������, ==1 ���� */
	BOOL	bCheckbakdel2;				/* �Ƿ��Զ�ɾ�����˳���Ƭ���� == 0 ������, ==1 ���� */
	BOOL	bCheckbakdel3;				/* �Ƿ��Զ�ɾ�����˾���Ƭ���� == 0 ������, ==1 ���� */
	BOOL	bCheckbakdel4;				/* �Ƿ��Զ�ɾ���������Ƭ���� == 0 ������, ==1 ���� */
	INT		nCheckbdMonth1;				/* ��bCheckbakdel1��Ӧ,��ȡ������ٸ����Զ�ɾ��ԭƬ���� */
	INT		nCheckbdMonth2;				/* ��bCheckbakdel2��Ӧ,��ȡ������ٸ����Զ�ɾ������Ƭ���� */
	INT		nCheckbdMonth3;				/* ��bCheckbakdel3��Ӧ,��ȡ������ٸ����Զ�ɾ������Ƭ���� */
	INT		nCheckbdMonth4;				/* ��bCheckbakdel4��Ӧ,��ȡ������ٸ����Զ�ɾ�����Ƭ���� */

	BOOL	bSubCheck1;					/* �Ƿ񱸷ݷֵ��ԭƬ */
	BOOL	bSubCheck2;					/* �Ƿ񱸷ݷֵ�ij��� */
	BOOL	bSubCheck3;					/* �Ƿ񱸷ݷֵ�ľ��� */
	BOOL	bSubCheck4;					/* �Ƿ񱸷ݷֵ����� */

	BOOL	bUpLoadCheck1;				/* ����ԭƬʱ���Ƿ��ϴ�ԭƬ */
	BOOL	bUpLoadCheck2;				/* �������ʱ���Ƿ��ϴ����� */
	BOOL	bUpLoadCheck3;				/* ���뾫��ʱ���Ƿ��ϴ����� */
	BOOL	bUpLoadCheck4;				/* �������ʱ���Ƿ��ϴ���� */

	TString strZiptype1;				/* �ϴ�ԭƬʱ��ԭƬѹ�����ش�С */
	TString strZiptype2;				/* �ϴ�����ʱ������ѹ�����ش�С */
	TString strZiptype3;				/* �ϴ�����ʱ������ѹ�����ش�С */
	TString strZiptype4;				/* �ϴ����ʱ�����ѹ�����ش�С */

	TString strUploadRule;				/* �ϴ����� */

	ST_TblVerion()
	{
		memset(szVersion,0,sizeof(TCHAR)*MAX_PATH);

		memset(szbakServer1,0,sizeof(TCHAR)*MAX_PATH);
		memset(szbakServer2,0,sizeof(TCHAR)*MAX_PATH);
		memset(szbakServer3,0,sizeof(TCHAR)*MAX_PATH);
		memset(szbakServer4,0,sizeof(TCHAR)*MAX_PATH);
		memset(szbakServer5,0,sizeof(TCHAR)*MAX_PATH);

		bCheck1 = FALSE;
		bCheck2 = FALSE;
		bCheck3 = FALSE;
		bCheck4 = FALSE;

		bUpLoadCheck1 = FALSE;
		bUpLoadCheck2 = FALSE;
		bUpLoadCheck3 = FALSE;
		bUpLoadCheck4 = FALSE;

		bCheckbak1 = FALSE;
		bCheckbak2 = FALSE;
		bCheckbak3 = FALSE;
		bCheckbak4 = FALSE;
		bCheckbak5 = FALSE;
		bCheckbak6 = FALSE;

		bCheckbakdel1 =  FALSE;	
		bCheckbakdel2 =  FALSE;		
		bCheckbakdel3 =  FALSE;		
		bCheckbakdel4 =  FALSE;	

		bSubCheck1 = FALSE;
		bSubCheck2 = FALSE;
		bSubCheck3 = FALSE;
		bSubCheck4 = FALSE;

		nbakTime = 0;
		nCheckMonth1 = 0;
		nCheckMonth2 = 0;
		nCheckMonth3 = 0;
		nCheckMonth4 = 0;
	
		nCheckbdMonth1 = 0;
		nCheckbdMonth2 = 0;
		nCheckbdMonth3 = 0;
		nCheckbdMonth4 = 0;
	}

	ST_TblVerion(const ST_TblVerion &another)
	{
		_stprintf_s(szVersion, _T("%s"), another.szVersion);

		_stprintf_s(szbakServer1, _T("%s"), another.szbakServer1);
		_stprintf_s(szbakServer2, _T("%s"), another.szbakServer2);
		_stprintf_s(szbakServer3, _T("%s"), another.szbakServer3);
		_stprintf_s(szbakServer4, _T("%s"), another.szbakServer4);
		_stprintf_s(szbakServer5, _T("%s"), another.szbakServer5);

		bCheck1 = another.bCheck1;
		bCheck2 = another.bCheck2;
		bCheck3 = another.bCheck3;
		bCheck4 = another.bCheck4;

		bUpLoadCheck1 = another.bUpLoadCheck1;
		bUpLoadCheck2 = another.bUpLoadCheck2;
		bUpLoadCheck3 = another.bUpLoadCheck3;
		bUpLoadCheck4 = another.bUpLoadCheck4;

		strZiptype1 = another.strZiptype1;
		strZiptype2 = another.strZiptype2;
		strZiptype3 = another.strZiptype3;
		strZiptype4 = another.strZiptype4;

		strUploadRule = another.strUploadRule;

		bCheckbak1 = another.bCheckbak1;
		bCheckbak2 = another.bCheckbak2;
		bCheckbak3 = another.bCheckbak3;
		bCheckbak4 = another.bCheckbak4;
		bCheckbak5 = another.bCheckbak5;
		bCheckbak6 = another.bCheckbak6;

		bCheckbakdel1 = another.bCheckbakdel1;
		bCheckbakdel2 = another.bCheckbakdel2;
		bCheckbakdel3 = another.bCheckbakdel3;
		bCheckbakdel4 = another.bCheckbakdel4;

		bSubCheck1 = another.bSubCheck1;
		bSubCheck2 = another.bSubCheck2;
		bSubCheck3 = another.bSubCheck3;
		bSubCheck4 = another.bSubCheck4;

		nbakTime = another.nbakTime;

		nCheckMonth1 = another.nCheckMonth1;
		nCheckMonth2 = another.nCheckMonth2;
		nCheckMonth3 = another.nCheckMonth3;
		nCheckMonth4 = another.nCheckMonth4;

		nCheckbdMonth1 = another.nCheckbdMonth1;
		nCheckbdMonth2 = another.nCheckbdMonth2;
		nCheckbdMonth3 = another.nCheckbdMonth3;
		nCheckbdMonth4 = another.nCheckbdMonth4;
	}

	ST_TblVerion& operator=(const ST_TblVerion &another)
	{
		if ( this == &another)
		{
			return *this;
		}

		_stprintf_s(szVersion, _T("%s"), another.szVersion);

		_stprintf_s(szbakServer1, _T("%s"), another.szbakServer1);
		_stprintf_s(szbakServer2, _T("%s"), another.szbakServer2);
		_stprintf_s(szbakServer3, _T("%s"), another.szbakServer3);
		_stprintf_s(szbakServer4, _T("%s"), another.szbakServer4);
		_stprintf_s(szbakServer5, _T("%s"), another.szbakServer5);

		bCheck1 = another.bCheck1;
		bCheck2 = another.bCheck2;
		bCheck3 = another.bCheck3;
		bCheck4 = another.bCheck4;

		bUpLoadCheck1 = another.bUpLoadCheck1;
		bUpLoadCheck2 = another.bUpLoadCheck2;
		bUpLoadCheck3 = another.bUpLoadCheck3;
		bUpLoadCheck4 = another.bUpLoadCheck4;

		strZiptype1 = another.strZiptype1;
		strZiptype2 = another.strZiptype2;
		strZiptype3 = another.strZiptype3;
		strZiptype4 = another.strZiptype4;

		strUploadRule = another.strUploadRule;

		bCheckbak1 = another.bCheckbak1;
		bCheckbak2 = another.bCheckbak2;
		bCheckbak3 = another.bCheckbak3;
		bCheckbak4 = another.bCheckbak4;
		bCheckbak5 = another.bCheckbak5;
		bCheckbak6 = another.bCheckbak6;

		bCheckbakdel1 = another.bCheckbakdel1;
		bCheckbakdel2 = another.bCheckbakdel2;
		bCheckbakdel3 = another.bCheckbakdel3;
		bCheckbakdel4 = another.bCheckbakdel4;

		bSubCheck1 = another.bSubCheck1;
		bSubCheck2 = another.bSubCheck2;
		bSubCheck3 = another.bSubCheck3;
		bSubCheck4 = another.bSubCheck4;

		nbakTime = another.nbakTime;

		nCheckMonth1 = another.nCheckMonth1;
		nCheckMonth2 = another.nCheckMonth2;
		nCheckMonth3 = another.nCheckMonth3;
		nCheckMonth4 = another.nCheckMonth4;

		nCheckbdMonth1 = another.nCheckbdMonth1;
		nCheckbdMonth2 = another.nCheckbdMonth2;
		nCheckbdMonth3 = another.nCheckbdMonth3;
		nCheckbdMonth4 = another.nCheckbdMonth4;

		return *this;
	}
	
}TblVersion,*pTblVersion;

//////////////////////////////////////////////////////////////////////////
// ����Ŀ¼��Ϣ��NetShareInfo;
typedef struct ST_TblNetShareInfo
{
	BOOL	bEnable;
	TCHAR	szBranchId[MAX_PATH];
	TCHAR	szShareDirectory[MAX_PATH];
	BYTE	byMinCapacity;
	BYTE	byMaxCapacity;
	BYTE	byImgType;
	BYTE	byPriority;

	ST_TblNetShareInfo()
	{
		memset(szBranchId,0,sizeof(TCHAR)*MAX_PATH);
		memset(szShareDirectory,0,sizeof(TCHAR)*MAX_PATH);
		bEnable = FALSE;	
		byMinCapacity = 0;
		byMaxCapacity = 0;
		byImgType = 0;
		byPriority = 0;
	}

	ST_TblNetShareInfo(const ST_TblNetShareInfo &another)
	{
		bEnable = another.bEnable;
		byMinCapacity = another.byMinCapacity;
		byMaxCapacity = another.byMaxCapacity;
		byPriority = another.byPriority;
		byImgType = another.byImgType;
		_stprintf_s(szBranchId,_T("%s"),another.szBranchId);
		_stprintf_s(szShareDirectory,_T("%s"),another.szShareDirectory);
	}

	ST_TblNetShareInfo& operator=(const ST_TblNetShareInfo &another)
	{
		if ( this == &another )
		{
			return *this;
		}
		bEnable = another.bEnable;
		byMinCapacity = another.byMinCapacity;
		byMaxCapacity = another.byMaxCapacity;
		byPriority = another.byPriority;
		byImgType = another.byImgType;
		_stprintf_s(szBranchId,_T("%s"),another.szBranchId);
		_stprintf_s(szShareDirectory,_T("%s"),another.szShareDirectory);

		return *this;
	}
}TblNetShareInfo,*pTblNetShareInfo;

//////////////////////////////////////////////////////////////////////////
// �������ݱ�;
typedef struct ST_TblIncrementBackup
{
	TCHAR	szBranchId[MAX_PATH];
	TCHAR	szOrder[MAX_PATH];
	BYTE	byPhotoType;
	//TCHAR	szContent[MAX_PATH];
	TString szContent;
}TblIncrement,*pTblIncrement;

//////////////////////////////////////////////////////////////////////////
// �ֵ����ݿ�ʵ����;
typedef struct ST_TblCatalogInfo
{
	BOOL	bEnable;							/* �Ƿ����ø÷ֵ�ʵ�� */
	TCHAR	szBranch[MAX_PATH];					/* �ֵ����� */
	TCHAR	szBranchId[MAX_PATH];				/* �ֵ�id */
	TCHAR	szCatalogName[MAX_PATH];			/* ���ݿ��� */
	DWORD	dwCatalogPort;						/* ���ݿ�ӳ��˿� */
	TCHAR	szCatalogSource[MAX_PATH];			/* ���ݿ�Դ(��ַ) */
	TCHAR	szCatalogAccount[MAX_PATH];			/* ���ݿ��½�˺� */
	TCHAR	szCatalogPassWord[MAX_PATH];		/* ���ݿ��½���� */

}TblCatalogInfo,*pCatalogInfo;


//////////////////////////////////////////////////////////////////////////
// �DZ��ṹ;
typedef struct _branchidfromto_
{
	CString strFrom;
	CString strTo;
}branchidfromto;

typedef struct _STUPLOADINFO_
{
	BOOL bEnable;
	CString strPix;
	vector<branchidfromto> branchidf2;
}uploadinfo;

typedef struct _branchinfo_
{
	TString strBranchId;		// ����;
	TString strBranchName;		// ����;
	TString strBranchIP;		// IP;
	TString strHomeOffice;		// �ܵ�;
	TString strEnterprise;		// ��ҵ��;
}STBranchInfo;
//////////////////////////////////////////////////////////////////////////


#endif