--------------------------------------------------- -- 자재관리코드 --------------------------------------------------- -- 자재 분류 코드 -- MakiFirst, MakiSecond, MakiThird를 통합 CREATE TABLE FmsMaterialCodeClass ( SiteId int NOT NULL , -- 현장 고유번호 MaterialClassId int identity(1,1) NOT NULL , -- 자재분류 고유번호 ParentMaterialClassId int NULL , -- 부모 자재분류 고유번호 Depth int NOT NULL , -- 트리 깊이 Name nvarchar(32) NOT NULL , -- 분류명 Abbreviation nvarchar(16) NULL , -- 분류명 약어 IsUse bit NULL , -- 사용 유무 PRIMARY KEY (SiteId ASC , MaterialClassId ASC) ); /* 자재구분코드 */ CREATE TABLE FmsMaterialCodeType ( SiteId int NOT NULL, -- 현장 고유번호 MaterialTypeId smallint identity(1,1) NOT NULL, -- 자재구분 고유번호 Name nvarchar(24) NOT NULL, -- 자재구분 명칭 Nickname nvarchar(24) NOT NULL, -- 자재구분 별칭 IsUse bit NOT NULL, -- 사용여부 PRIMARY KEY (SiteId ASC , MaterialTypeId ASC) ); --INSERT INTO FmsMaterialCodeType VALUES (1, 1, '일반자재', '일', 1); --INSERT INTO FmsMaterialCodeType VALUES (2, '소모품', '소', 1); --INSERT INTO FmsMaterialCodeType VALUES (3, '공기구', '공', 1); --INSERT INTO FmsMaterialCodeType VALUES (4, '기타', '기', 1); /* 구매구분코드 */ CREATE TABLE FmsMaterialCodePurchaseType ( SiteId int NOT NULL, -- 현장 고유번호 PurchaseTypeId smallint identity(1,1) NOT NULL, -- 구매구분 고유번호 Name nvarchar(24) NOT NULL, -- 자재구분 명칭 IsUse bit NOT NULL, -- 사용여부 PRIMARY KEY (SiteId ASC , PurchaseTypeId ASC) ); /* 출고구분코드 */ -- 내부 로직으로 사용하므로 수정 할 수 없다. CREATE TABLE FmsMaterialCodeReleaseType ( ReleaseTypeId smallint NOT NULL, -- 출고구분 고유번호 Name nvarchar(24) NOT NULL, -- 자재구분 명칭 [Description] nvarchar(100) NULL, -- 설명 PRIMARY KEY (ReleaseTypeId ASC) ); INSERT INTO FmsMaterialCodeReleaseType VALUES (1, '작업출고', '작업에 사용한 자재의 출고'); INSERT INTO FmsMaterialCodeReleaseType VALUES (2, '조정출고', '재고 정산에 의한 출고'); /* 거래처정보 */ CREATE TABLE FmsMaterialTradeCompany ( SiteId int NOT NULL, -- 현장 고유번호 TradeCompanyId int identity(1,1) NOT NULL, -- 거래처 고유번호 Name nvarchar(48) NOT NULL, -- 거래처 명칭 RegistrationNo nvarchar(24) NOT NULL, -- 사업자등록번호 RepresentativeName nvarchar(24) null, -- 대표자명 PhoneNo nvarchar(20) null, -- 대표번호 FaxNo nvarchar(20) null, -- 팩스번호 SalseName nvarchar(20) null, -- 담당자 SalsePhoneNo nvarchar(20) null, -- 담당자 연락처 AddressZip1 nchar(3) NULL , -- 현장 주소 우편번호 1 AddressZip2 nchar(3) NULL , -- 현장 주소 우편번호 2 Address1 nvarchar(100) NULL , -- 거래처 주소 1 Adderss2 nvarchar(100) NULL , -- 거래처 주소 2 HomepageUri nvarchar(200) NULL , -- 거래처 홈페이지 URI Note nvarchar(1024) NULL , -- 비고 IsUse bit NOT NULL, -- 사용여부 PRIMARY KEY (SiteId ASC, TradeCompanyId ASC) ); /* 진행상태코드 */ CREATE TABLE FmsMaterialCodeProgress ( ProgressId smallint NOT NULL, -- 상태 고유번호 Name nvarchar(24) NOT NULL, -- 상태명칭 [Description] nvarchar(100) null, -- 상태설명 PRIMARY KEY (ProgressId ASC) ); INSERT INTO FmsMaterialCodeProgress VALUES (1, '자재신청', ''); INSERT INTO FmsMaterialCodeProgress VALUES (2, '신청승인', ''); INSERT INTO FmsMaterialCodeProgress VALUES (3, '발주요청', ''); INSERT INTO FmsMaterialCodeProgress VALUES (4, '자재입고', ''); INSERT INTO FmsMaterialCodeProgress VALUES (5, '입고승인', ''); /* 위치코드 */ CREATE TABLE FmsMaterialCodeLocation ( SiteId int NOT NULL, -- 현장 고유번호 LocationId int identity(1,1) NOT NULL, -- 자재위치 고유번호 BusinessFieldId int NOT NULL, -- 업무분야 고유번호 Name nvarchar(48) NOT NULL, -- 위치 명칭 IsUse bit NOT NULL, -- 사용여부 PRIMARY KEY (SiteId ASC, LocationId ASC) ); /* 창고코드 */ CREATE TABLE FmsMaterialWarehouse ( SiteId int NOT NULL, -- 현장 고유번호 BusinessFieldId int NOT NULL, -- 업무분야 고유번호 WarehouseId int identity(1,1) NOT NULL, -- 창고 고유번호 Name nvarchar(48) NOT NULL, -- 창고 명칭 IsUse bit NOT NULL, -- 사용여부 PRIMARY KEY (SiteId ASC, BusinessFieldId ASC, WarehouseId ASC) ); /* 자재정보 */ CREATE TABLE FmsMaterial ( SiteId int NOT NULL, -- 현장 고유번호 BusinessFieldId int NOT NULL, -- 업무분야 고유번호 MaterialId int identity(1,1) NOT NULL, -- 자재 고유번호 MaterialCode nvarchar(48) NOT NULL, -- 자재 코드 Name nvarchar(48) NOT NULL, -- 자재 명칭 FirstClassId int null, -- 자재 대분류 SecondClassId int null, -- 자재 중분류 ThirdClassId int null, -- 자재 소분류 LocationId int null, -- 자재위치 고유번호 MaterialTypeId smallint null, -- 자재 구분 TradeCompanyId int NULL, -- 거래처 고유번호 WarehouseId int NULL, -- 보관창고 고유번호 Rfid nvarchar(52) null, -- RFID Unit nvarchar(12) null, -- 자재단위 DurableYears smallint null, -- 내용연수 ReasonableStockCount smallint null, -- 적정재고 (물량) Manufacturer nvarchar(40) null, -- 제조사 명칭 [Standard] nvarchar(20) null, -- 자재규격 FinalPrice int null, -- 최종가격 ImageFileId int null, -- 자재사진 Note nvarchar(512) null, -- 비고 IsDiscontinued bit null, -- 단종여부 IsUse bit NOT NULL, -- 사용여부 PRIMARY KEY (SiteId ASC, BusinessFieldId ASC, MaterialId ASC) ); -- FK ALTER TABLE FmsMaterialCodeClass ADD CONSTRAINT FK__FmsMaterialCodeClass__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsMaterialCodeClass ADD CONSTRAINT FK__FmsMaterialCodeClass__FmsMaterialCodeClass FOREIGN KEY (SiteId , ParentMaterialClassId) REFERENCES FmsMaterialCodeClass(SiteId , MaterialClassId) ; ALTER TABLE FmsMaterialTradeCompany ADD CONSTRAINT FK__FmsMaterialTradeCompany__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsMaterialCodeType ADD CONSTRAINT FK__FmsMaterialCodeType__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsMaterialCodePurchaseType ADD CONSTRAINT FK__FmsMaterialCodePurchaseType__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; -- 위치 ALTER TABLE FmsMaterialCodeLocation ADD CONSTRAINT FK__FmsMaterialCodeLocation__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsMaterialCodeLocation ADD CONSTRAINT FK__FmsMaterialCodeLocation__CmBusinessField FOREIGN KEY (SiteId, BusinessFieldId) REFERENCES CmBusinessField(SiteId, BusinessFieldId) ; -- 창고 ALTER TABLE FmsMaterialWarehouse ADD CONSTRAINT FK__FmsMaterialWarehouse__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsMaterialWarehouse ADD CONSTRAINT FK__FmsMaterialWarehouse__CmBusinessField FOREIGN KEY (SiteId, BusinessFieldId) REFERENCES CmBusinessField(SiteId, BusinessFieldId) ; -- 자재 ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__CmBusinessField FOREIGN KEY (SiteId, BusinessFieldId) REFERENCES CmBusinessField(SiteId, BusinessFieldId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeClass_AsFirstClassId FOREIGN KEY (SiteId, FirstClassId) REFERENCES FmsMaterialCodeClass(SiteId, MaterialClassId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeClass_AsSecondClassId FOREIGN KEY (SiteId, SecondClassId) REFERENCES FmsMaterialCodeClass(SiteId, MaterialClassId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeClass_AsThirdClassId FOREIGN KEY (SiteId, ThirdClassId) REFERENCES FmsMaterialCodeClass(SiteId, MaterialClassId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__FmsMaterialWarehouse FOREIGN KEY (SiteId, BusinessFieldId, WarehouseId) REFERENCES FmsMaterialWarehouse(SiteId, BusinessFieldId, WarehouseId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__FmsMaterialTradeCompany FOREIGN KEY (SiteId, TradeCompanyId) REFERENCES FmsMaterialTradeCompany(SiteId, TradeCompanyId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeLocation FOREIGN KEY (SiteId, LocationId) REFERENCES FmsMaterialCodeLocation(SiteId, LocationId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeType FOREIGN KEY (SiteId, MaterialTypeId) REFERENCES FmsMaterialCodeType(SiteId, MaterialTypeId) ; ALTER TABLE FmsMaterial ADD CONSTRAINT FK__FmsMaterial__CmFile FOREIGN KEY (SiteId, ImageFileId) REFERENCES CmFile(SiteId, FileId) ;