CREATE TABLE Dim_Barang (
	[ID_Barang] [int] not null,
	[Nama_Barang] [varchar] not null,
	[Kategori_Barang] [varchar] not null,
	[Brand] [varchar] not null,
	[Harga_Jual_Barang] [money] not null,
	[Harga_Beli_Barang] [money] not null,
	[Waktu_Kadaluarsa] [timestamp] not null,
	PRIMARY KEY CLUSTERED 
(
	[ID_Barang] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) 
GO

CREATE TABLE Dim_Kategori (
	[ID_Kategori] [int] not null,
	[Kategori] [varchar] not null,
	[Satuan_Barang] [varchar] not null,
	PRIMARY KEY CLUSTERED 
(
	[ID_Kategori] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) 
GO

/*drop table Dim_Kategori*/
CREATE TABLE Dim_Waktu (
	[ID_Waktu] [int] not null,
	[Tahun] [timestamp] not null,
	[Bulan] [int] not null,
	[Tanggal] [date] not null,
	PRIMARY KEY CLUSTERED 
(
	[ID_Waktu] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) 
GO

CREATE TABLE Dim_Tahun (
	[ID_Tahun] [int] not null,
	[Tahun] [timestamp] not null,
	[Bulan] [int] not null,
	PRIMARY KEY CLUSTERED 
(
	[ID_Tahun] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) 
GO

CREATE TABLE Dim_Bulan (
	[ID_Bulan] [int] not null,
	[Bulan] [int] not null,
	PRIMARY KEY CLUSTERED 
(
	[ID_Bulan] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) 
GO


CREATE TABLE Dim_Supplier (
	[ID_Supplier] [int] not null,
	[Nama_Supplier] [varchar] not null,
	[Alamat_Supplier] [varchar] not null,
	[No_Telp_Supplier] [int] not null,

	PRIMARY KEY CLUSTERED 
(
	[ID_Supplier] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) 
GO

CREATE TABLE Dim_Pembayaran (
	[ID_Pembayaran] [int] not null,
	[Metode_Pembayaran] [varchar] not null,
	PRIMARY KEY CLUSTERED 
(
	[ID_Pembayaran] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) 
GO


CREATE TABLE [dbo].[Fact_Pembelian](
	[ID_Waktu] [int] NOT NULL,
	[ID_Barang] [int] NOT NULL,
	[ID_Supplier] [int] NOT NULL,
	[ID_Pembayaran] [int] NOT NULL,
	[PPN_Persen] [decimal] NULL,
	[PPN_Rupiah] [decimal] NULL,
	[Jlh_Barang_Jual] [int] NULL,
	[Jlh_Barang_Bayar] [int] NULL,
	[Jlh_Barang_Sebelum_Pajak] [int] NULL,
	[Jlh_Barang_Setelah_Pajak] [int] NULL,
PRIMARY KEY CLUSTERED
(
	[ID_Waktu] ASC,
	[ID_Barang] ASC,
	[ID_Pembayaran] ASC,
	[ID_Supplier] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Fact_Pembelian]  WITH CHECK ADD  CONSTRAINT [FK_Dim_Barang_ID_Barang] FOREIGN KEY([ID_Barang])
REFERENCES [dbo].[Dim_Barang] ([ID_Barang])
GO
ALTER TABLE [dbo].[Fact_Pembelian] CHECK CONSTRAINT [FK_Dim_Barang_ID_Barang]
GO
ALTER TABLE [dbo].[Fact_Pembelian]  WITH CHECK ADD  CONSTRAINT [FK_Dim_Supplier_ID_Supplier] FOREIGN KEY([ID_Supplier])
REFERENCES [dbo].[Dim_Supplier] ([ID_Supplier])
GO
ALTER TABLE [dbo].[Fact_Pembelian] CHECK CONSTRAINT [FK_Dim_Supplier_ID_Supplier]
GO
ALTER TABLE [dbo].[Fact_Pembelian]  WITH CHECK ADD  CONSTRAINT [FK_Dim_Pembayaran_ID_Pembayaran] FOREIGN KEY([ID_Pembayaran])
REFERENCES [dbo].[Dim_Pembayaran] ([ID_Pembayaran])
GO
ALTER TABLE [dbo].[Fact_Pembelian] CHECK CONSTRAINT [FK_Dim_Waktu_ID_Waktu]
GO
ALTER TABLE [dbo].[Fact_Pembelian]  WITH CHECK ADD  CONSTRAINT [FK_Dim_Waktu_ID_Waktu] FOREIGN KEY([ID_Waktu])
REFERENCES [dbo].[Dim_Waktu] ([ID_Waktu])
GO
ALTER TABLE [dbo].[Fact_Pembelian] CHECK CONSTRAINT [FK_Dim_Waktu_ID_Waktu]
GO
