---------------------------------------------------
-- 현장 관리
---------------------------------------------------

-- 사이트 정보 테이블
CREATE TABLE CmSite
(
	SiteId				int identity(1,1) NOT NULL ,	-- 현장 고유번호
	Name				nvarchar(50)  NOT NULL ,		-- 현장 이름
	AddressZip1         nchar(3)  NULL ,				-- 현장 주소 우편번호 1
	AddressZip2         nchar(3)  NULL ,				-- 현장 주소 우편번호 2
	Address1			nvarchar(100)  NULL ,			-- 현장 주소 1			
	Adderss2			nvarchar(100)  NULL ,			-- 현장 주소 2
	PhoneNo				nvarchar(20)  NULL ,			-- 현장 전화번호
	Uri					nvarchar(200)  NULL ,			-- 현장 홈페이지
	Note				nvarchar(1024)  NULL ,			-- 현장 세부설명

	IsUse				bit  NULL ,						-- 사용 유무
	
	PRIMARY KEY (SiteId ASC)
);
DBCC CHECKIDENT( CmSite, RESEED, 1 )

---------------------------------------------------
-- 회사/부서관리
---------------------------------------------------


-- infra_company
--CREATE TABLE IncoCompany
CREATE TABLE CmCompany
(
	SiteId				int  NOT NULL ,					-- 현장 고유번호
	CompanyId           int  identity(1,1) NOT NULL ,	-- 회사 고유번호
	CompanyTypeId       int  NOT NULL ,					-- 회사 유형번호
	Name				nvarchar(50)  NOT NULL ,		-- 회사명

	PhoneNo				nvarchar(20)  NOT NULL ,		-- 회사 전화번호
	FaxNo	            nvarchar(20)  NULL ,			-- 회사 팩스번호

	RepresentativeName	nvarchar(20)  NOT NULL ,		-- 대표 이름

	SalesName           nvarchar(20)  NULL ,			-- 영업 담당자 이름
	SalesPhoneNo        nvarchar(20)  NULL ,			-- 영업 담당자 전화번호

	AddressZip1         nchar(3)  NULL ,				-- 우편번호 앞자리
	AddressZip2         nchar(3)  NULL ,				-- 우편번호 뒷자리
	Address1			nvarchar(50)  NULL ,			-- 주소 1
	Adderss2			nvarchar(100)  NULL ,			-- 주소 2
	HomepageUri			nvarchar(100)  NULL ,			-- 홈페이지 주소
	Note				nvarchar(1024)  NULL ,			-- 비고

	IsUse				bit  NULL ,						-- 사용 유무	

	PRIMARY KEY (SiteId ASC , CompanyId ASC)
);
DBCC CHECKIDENT( CmCompany, RESEED, 1 )


--CREATE TABLE IncoKind
CREATE TABLE CmCompanyType
(
	SiteId				int  NOT NULL ,					-- 현장 고유번호
	CompanyTypeId       int  identity(1,1) NOT NULL ,	-- 회사 유형번호
	Name				nvarchar(50)  NOT NULL ,		-- 회사 이름

	IsUse				bit  NULL ,						-- 사용 유무

	PRIMARY KEY (SiteId ASC , CompanyTypeId ASC)
);
DBCC CHECKIDENT( CmCompanyType, RESEED, 1 )

--CREATE TABLE IncoDept
CREATE TABLE CmDepartment
(
	SiteId				int  NOT NULL ,					-- 현장 고유번호
	CompanyId           int  NOT NULL ,					-- 회사 고유번호
	DepartmentId        int  identity(1,1) NOT NULL ,	-- 부서 고유번호
	Name				nvarchar(50)  NOT NULL ,		-- 부서명
	ShortName			nvarchar(50)  NULL ,			-- 간략화된 부서명
	FaxNo				nvarchar(20)  NULL ,			-- 팩스번호
	PhoneNo				nvarchar(20)  NULL ,			-- 전화번호
	Note				nvarchar(1024)  NULL ,			-- 설명

	IsUse				bit  NULL ,						-- 사용 유무

	PRIMARY KEY (SiteId ASC , CompanyId ASC , DepartmentId ASC)
);
DBCC CHECKIDENT( CmDepartment, RESEED, 1 )



ALTER TABLE CmCompany
	ADD CONSTRAINT FK__CmCompany__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
;

ALTER TABLE CmCompany
	ADD CONSTRAINT FK__CmCompany__CmCompanyType FOREIGN KEY (SiteId,CompanyTypeId) REFERENCES CmCompanyType(SiteId,CompanyTypeId)
;

ALTER TABLE CmDepartment
	ADD CONSTRAINT FK__CmDepartment__CmCompany FOREIGN KEY (SiteId,CompanyId) REFERENCES CmCompany(SiteId,CompanyId)
;

--ALTER TABLE CmCompany
--	ADD CONSTRAINT FK__CmCompany__CmFile FOREIGN KEY (SiteId,FileId) REFERENCES CmFile(SiteId,FileId)
--;

--ALTER TABLE CmDepartment
--	ADD CONSTRAINT FK__CmDepartment__CmFile FOREIGN KEY (SiteId,FileId) REFERENCES CmFile(SiteId,FileId)
--;

--ALTER TABLE CmDepartmentFile
--	ADD  FOREIGN KEY (CompanyId,DepartmentId) REFERENCES CmDepartment(CompanyId,DepartmentId)
--;

--ALTER TABLE CmCompanyFile
--	ADD  FOREIGN KEY (CompanyId) REFERENCES CmCompany(CompanyId)
--;

--CREATE TABLE IncoFile
--(
--	CompanyId           int  NOT NULL ,
--	FileId              int  NOT NULL ,
--	FileName             nvarchar(100)  NOT NULL ,
--	FilePath             nvarchar(200)  NOT NULL ,
--	FileSize             numeric(10,0)  NOT NULL ,
--	FileType             nvarchar(100)  NOT NULL ,
--	InsertedDate         datetime  NULL ,
--	InsertedUser         nvarchar(10)  NULL ,
--	UpdatedDate          datetime  NULL ,
--	UpdatedUser          nvarchar(10)  NULL ,
--	 PRIMARY KEY (CompanyId ASC,FileId ASC)
--)
--;


--CREATE TABLE FmsDeIndeFile
--(
--	CompanyId           int  NOT NULL ,
--	DepartmentId              int  NOT NULL ,
--	FileId              int  NOT NULL ,
--	FileName             nvarchar(100)  NOT NULL ,
--	FilePath             nvarchar(200)  NOT NULL ,
--	FileSize             numeric(10,0)  NOT NULL ,
--	FileType             nvarchar(100)  NOT NULL ,
--	InsertedDate         datetime  NULL ,
--	InsertedUser         nvarchar(10)  NULL ,
--	UpdatedDate          datetime  NULL ,
--	UpdatedUser          nvarchar(10)  NULL ,
--	 PRIMARY KEY (CompanyId ASC,DepartmentId ASC,FileId ASC)
--)
--;