007a99766ab55f6439a50cbb3b4ee20f670657b1.svn-base 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. ---------------------------------------------------
  2. -- 자재관리코드
  3. ---------------------------------------------------
  4. -- 자재 분류 코드
  5. -- MakiFirst, MakiSecond, MakiThird를 통합
  6. CREATE TABLE FmsMaterialCodeClass
  7. (
  8. SiteId int NOT NULL , -- 현장 고유번호
  9. MaterialClassId int identity(1,1) NOT NULL , -- 자재분류 고유번호
  10. ParentMaterialClassId int NULL , -- 부모 자재분류 고유번호
  11. Depth int NOT NULL , -- 트리 깊이
  12. Name nvarchar(32) NOT NULL , -- 분류명
  13. Abbreviation nvarchar(16) NULL , -- 분류명 약어
  14. IsUse bit NULL , -- 사용 유무
  15. PRIMARY KEY (SiteId ASC , MaterialClassId ASC)
  16. );
  17. /* 자재구분코드 */
  18. CREATE TABLE FmsMaterialCodeType
  19. (
  20. SiteId int NOT NULL, -- 현장 고유번호
  21. MaterialTypeId smallint identity(1,1) NOT NULL, -- 자재구분 고유번호
  22. Name nvarchar(24) NOT NULL, -- 자재구분 명칭
  23. Nickname nvarchar(24) NOT NULL, -- 자재구분 별칭
  24. IsUse bit NOT NULL, -- 사용여부
  25. PRIMARY KEY (SiteId ASC , MaterialTypeId ASC)
  26. );
  27. --INSERT INTO FmsMaterialCodeType VALUES (1, 1, '일반자재', '일', 1);
  28. --INSERT INTO FmsMaterialCodeType VALUES (2, '소모품', '소', 1);
  29. --INSERT INTO FmsMaterialCodeType VALUES (3, '공기구', '공', 1);
  30. --INSERT INTO FmsMaterialCodeType VALUES (4, '기타', '기', 1);
  31. /* 구매구분코드 */
  32. CREATE TABLE FmsMaterialCodePurchaseType
  33. (
  34. SiteId int NOT NULL, -- 현장 고유번호
  35. PurchaseTypeId smallint identity(1,1) NOT NULL, -- 구매구분 고유번호
  36. Name nvarchar(24) NOT NULL, -- 자재구분 명칭
  37. IsUse bit NOT NULL, -- 사용여부
  38. PRIMARY KEY (SiteId ASC , PurchaseTypeId ASC)
  39. );
  40. /* 출고구분코드 */ -- 내부 로직으로 사용하므로 수정 할 수 없다.
  41. CREATE TABLE FmsMaterialCodeReleaseType
  42. (
  43. ReleaseTypeId smallint NOT NULL, -- 출고구분 고유번호
  44. Name nvarchar(24) NOT NULL, -- 자재구분 명칭
  45. [Description] nvarchar(100) NULL, -- 설명
  46. PRIMARY KEY (ReleaseTypeId ASC)
  47. );
  48. INSERT INTO FmsMaterialCodeReleaseType VALUES (1, '작업출고', '작업에 사용한 자재의 출고');
  49. INSERT INTO FmsMaterialCodeReleaseType VALUES (2, '조정출고', '재고 정산에 의한 출고');
  50. /* 거래처정보 */
  51. CREATE TABLE FmsMaterialTradeCompany
  52. (
  53. SiteId int NOT NULL, -- 현장 고유번호
  54. TradeCompanyId int identity(1,1) NOT NULL, -- 거래처 고유번호
  55. Name nvarchar(48) NOT NULL, -- 거래처 명칭
  56. RegistrationNo nvarchar(24) NOT NULL, -- 사업자등록번호
  57. RepresentativeName nvarchar(24) null, -- 대표자명
  58. PhoneNo nvarchar(20) null, -- 대표번호
  59. FaxNo nvarchar(20) null, -- 팩스번호
  60. SalseName nvarchar(20) null, -- 담당자
  61. SalsePhoneNo nvarchar(20) null, -- 담당자 연락처
  62. AddressZip1 nchar(3) NULL , -- 현장 주소 우편번호 1
  63. AddressZip2 nchar(3) NULL , -- 현장 주소 우편번호 2
  64. Address1 nvarchar(100) NULL , -- 거래처 주소 1
  65. Adderss2 nvarchar(100) NULL , -- 거래처 주소 2
  66. HomepageUri nvarchar(200) NULL , -- 거래처 홈페이지 URI
  67. Note nvarchar(1024) NULL , -- 비고
  68. IsUse bit NOT NULL, -- 사용여부
  69. PRIMARY KEY (SiteId ASC, TradeCompanyId ASC)
  70. );
  71. /* 진행상태코드 */
  72. CREATE TABLE FmsMaterialCodeProgress
  73. (
  74. ProgressId smallint NOT NULL, -- 상태 고유번호
  75. Name nvarchar(24) NOT NULL, -- 상태명칭
  76. [Description] nvarchar(100) null, -- 상태설명
  77. PRIMARY KEY (ProgressId ASC)
  78. );
  79. INSERT INTO FmsMaterialCodeProgress VALUES (1, '자재신청', '');
  80. INSERT INTO FmsMaterialCodeProgress VALUES (2, '신청승인', '');
  81. INSERT INTO FmsMaterialCodeProgress VALUES (3, '발주요청', '');
  82. INSERT INTO FmsMaterialCodeProgress VALUES (4, '자재입고', '');
  83. INSERT INTO FmsMaterialCodeProgress VALUES (5, '입고승인', '');
  84. /* 위치코드 */
  85. CREATE TABLE FmsMaterialCodeLocation
  86. (
  87. SiteId int NOT NULL, -- 현장 고유번호
  88. LocationId int identity(1,1) NOT NULL, -- 자재위치 고유번호
  89. BusinessFieldId int NOT NULL, -- 업무분야 고유번호
  90. Name nvarchar(48) NOT NULL, -- 위치 명칭
  91. IsUse bit NOT NULL, -- 사용여부
  92. PRIMARY KEY (SiteId ASC, LocationId ASC)
  93. );
  94. /* 창고코드 */
  95. CREATE TABLE FmsMaterialWarehouse
  96. (
  97. SiteId int NOT NULL, -- 현장 고유번호
  98. BusinessFieldId int NOT NULL, -- 업무분야 고유번호
  99. WarehouseId int identity(1,1) NOT NULL, -- 창고 고유번호
  100. Name nvarchar(48) NOT NULL, -- 창고 명칭
  101. IsUse bit NOT NULL, -- 사용여부
  102. PRIMARY KEY (SiteId ASC, BusinessFieldId ASC, WarehouseId ASC)
  103. );
  104. /* 자재정보 */
  105. CREATE TABLE FmsMaterial
  106. (
  107. SiteId int NOT NULL, -- 현장 고유번호
  108. BusinessFieldId int NOT NULL, -- 업무분야 고유번호
  109. MaterialId int identity(1,1) NOT NULL, -- 자재 고유번호
  110. MaterialCode nvarchar(48) NOT NULL, -- 자재 코드
  111. Name nvarchar(48) NOT NULL, -- 자재 명칭
  112. FirstClassId int null, -- 자재 대분류
  113. SecondClassId int null, -- 자재 중분류
  114. ThirdClassId int null, -- 자재 소분류
  115. LocationId int null, -- 자재위치 고유번호
  116. MaterialTypeId smallint null, -- 자재 구분
  117. TradeCompanyId int NULL, -- 거래처 고유번호
  118. WarehouseId int NULL, -- 보관창고 고유번호
  119. Rfid nvarchar(52) null, -- RFID
  120. Unit nvarchar(12) null, -- 자재단위
  121. DurableYears smallint null, -- 내용연수
  122. ReasonableStockCount smallint null, -- 적정재고 (물량)
  123. Manufacturer nvarchar(40) null, -- 제조사 명칭
  124. [Standard] nvarchar(20) null, -- 자재규격
  125. FinalPrice int null, -- 최종가격
  126. ImageFileId int null, -- 자재사진
  127. Note nvarchar(512) null, -- 비고
  128. IsDiscontinued bit null, -- 단종여부
  129. IsUse bit NOT NULL, -- 사용여부
  130. PRIMARY KEY (SiteId ASC, BusinessFieldId ASC, MaterialId ASC)
  131. );
  132. -- FK
  133. ALTER TABLE FmsMaterialCodeClass
  134. ADD CONSTRAINT FK__FmsMaterialCodeClass__CmSite
  135. FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
  136. ;
  137. ALTER TABLE FmsMaterialCodeClass
  138. ADD CONSTRAINT FK__FmsMaterialCodeClass__FmsMaterialCodeClass
  139. FOREIGN KEY (SiteId , ParentMaterialClassId) REFERENCES FmsMaterialCodeClass(SiteId , MaterialClassId)
  140. ;
  141. ALTER TABLE FmsMaterialTradeCompany
  142. ADD CONSTRAINT FK__FmsMaterialTradeCompany__CmSite
  143. FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
  144. ;
  145. ALTER TABLE FmsMaterialCodeType
  146. ADD CONSTRAINT FK__FmsMaterialCodeType__CmSite
  147. FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
  148. ;
  149. ALTER TABLE FmsMaterialCodePurchaseType
  150. ADD CONSTRAINT FK__FmsMaterialCodePurchaseType__CmSite
  151. FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
  152. ;
  153. -- 위치
  154. ALTER TABLE FmsMaterialCodeLocation
  155. ADD CONSTRAINT FK__FmsMaterialCodeLocation__CmSite
  156. FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
  157. ;
  158. ALTER TABLE FmsMaterialCodeLocation
  159. ADD CONSTRAINT FK__FmsMaterialCodeLocation__CmBusinessField
  160. FOREIGN KEY (SiteId, BusinessFieldId) REFERENCES CmBusinessField(SiteId, BusinessFieldId)
  161. ;
  162. -- 창고
  163. ALTER TABLE FmsMaterialWarehouse
  164. ADD CONSTRAINT FK__FmsMaterialWarehouse__CmSite
  165. FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
  166. ;
  167. ALTER TABLE FmsMaterialWarehouse
  168. ADD CONSTRAINT FK__FmsMaterialWarehouse__CmBusinessField
  169. FOREIGN KEY (SiteId, BusinessFieldId) REFERENCES CmBusinessField(SiteId, BusinessFieldId)
  170. ;
  171. -- 자재
  172. ALTER TABLE FmsMaterial
  173. ADD CONSTRAINT FK__FmsMaterial__CmSite
  174. FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId)
  175. ;
  176. ALTER TABLE FmsMaterial
  177. ADD CONSTRAINT FK__FmsMaterial__CmBusinessField
  178. FOREIGN KEY (SiteId, BusinessFieldId) REFERENCES CmBusinessField(SiteId, BusinessFieldId)
  179. ;
  180. ALTER TABLE FmsMaterial
  181. ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeClass_AsFirstClassId
  182. FOREIGN KEY (SiteId, FirstClassId) REFERENCES FmsMaterialCodeClass(SiteId, MaterialClassId)
  183. ;
  184. ALTER TABLE FmsMaterial
  185. ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeClass_AsSecondClassId
  186. FOREIGN KEY (SiteId, SecondClassId) REFERENCES FmsMaterialCodeClass(SiteId, MaterialClassId)
  187. ;
  188. ALTER TABLE FmsMaterial
  189. ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeClass_AsThirdClassId
  190. FOREIGN KEY (SiteId, ThirdClassId) REFERENCES FmsMaterialCodeClass(SiteId, MaterialClassId)
  191. ;
  192. ALTER TABLE FmsMaterial
  193. ADD CONSTRAINT FK__FmsMaterial__FmsMaterialWarehouse
  194. FOREIGN KEY (SiteId, BusinessFieldId, WarehouseId) REFERENCES FmsMaterialWarehouse(SiteId, BusinessFieldId, WarehouseId)
  195. ;
  196. ALTER TABLE FmsMaterial
  197. ADD CONSTRAINT FK__FmsMaterial__FmsMaterialTradeCompany
  198. FOREIGN KEY (SiteId, TradeCompanyId) REFERENCES FmsMaterialTradeCompany(SiteId, TradeCompanyId)
  199. ;
  200. ALTER TABLE FmsMaterial
  201. ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeLocation
  202. FOREIGN KEY (SiteId, LocationId) REFERENCES FmsMaterialCodeLocation(SiteId, LocationId)
  203. ;
  204. ALTER TABLE FmsMaterial
  205. ADD CONSTRAINT FK__FmsMaterial__FmsMaterialCodeType
  206. FOREIGN KEY (SiteId, MaterialTypeId) REFERENCES FmsMaterialCodeType(SiteId, MaterialTypeId)
  207. ;
  208. ALTER TABLE FmsMaterial
  209. ADD CONSTRAINT FK__FmsMaterial__CmFile
  210. FOREIGN KEY (SiteId, ImageFileId) REFERENCES CmFile(SiteId, FileId)
  211. ;