lordRaze

Untitled

Aug 27th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.31 KB | None | 0 0
  1. # TABEL #
  2.  
  3. -- tabel supplier
  4. CREATE TABLE supplier(
  5.     id INT NOT NULL AUTO_INCREMENT,
  6.     nik VARCHAR(16) UNIQUE,
  7.     npwp VARCHAR(20) UNIQUE,
  8.     nama VARCHAR(255),
  9.     telp VARCHAR(20),
  10.     alamat text,
  11.    
  12.     CONSTRAINT pk_supplier_id PRIMARY KEY(id)
  13. );
  14.  
  15. -- tabel supplier pengganti
  16. -- 1 supplier punya n pengganti
  17. -- 1 pengganti punya 1 supplier
  18. CREATE TABLE p_supplier(
  19.     id INT NOT NULL AUTO_INCREMENT,
  20.     id_supplier INT,
  21.     nik VARCHAR(16) UNIQUE,
  22.     npwp VARCHAR(20) UNIQUE,
  23.     nama VARCHAR(255),
  24.     telp VARCHAR(20),
  25.     alamat text,
  26.  
  27.     CONSTRAINT pk_p_supplier_id PRIMARY KEY(id),
  28.     CONSTRAINT fk_p_supplier_id_supplier FOREIGN KEY(id_supplier) REFERENCES supplier(id)
  29. );
  30.  
  31. -- tabel barang
  32. CREATE TABLE barang(
  33.     id INT NOT NULL AUTO_INCREMENT,
  34.     kd_barang VARCHAR(25),
  35.     nama VARCHAR(50),
  36.     ket text,
  37.  
  38.     CONSTRAINT pk_barang_id PRIMARY KEY(id)
  39. );
  40.  
  41. -- tabel transaksi pembelian
  42. -- 1 supplier/pengganti n pembelian
  43. CREATE TABLE pembelian(
  44.     id INT NOT NULL AUTO_INCREMENT,
  45.     invoice VARCHAR(16) UNIQUE, -- kombinasi PB-tgl-no_urut
  46.     tgl DATE,
  47.     id_supplier INT,
  48.     id_p_supplier INT,
  49.     jenis CHAR(1), -- payment term, cash/tunai: c, transfer: t
  50.     STATUS CHAR(1), -- s: sukses, t: titipan
  51.     pph DOUBLE(12,2),
  52.     total DOUBLE(14,2),
  53.     ket text,
  54.  
  55.     CONSTRAINT pk_pembelian_id PRIMARY KEY(id),
  56.     CONSTRAINT fk_pembelian_id_supplier FOREIGN KEY(id_supplier) REFERENCES supplier(id),
  57.     CONSTRAINT fk_pembelian_id_p_supplier FOREIGN KEY(id_p_supplier) REFERENCES p_supplier(id)
  58. );
  59.  
  60. -- tabel detail pembelian
  61. CREATE TABLE detail_pembelian(
  62.     id INT NOT NULL AUTO_INCREMENT,
  63.     id_pembelian INT,
  64.     id_barang INT,
  65.     colly SMALLINT,
  66.     netto DOUBLE(10,2),
  67.     harga DOUBLE(10,2),
  68.     subtotal DOUBLE(14,2),
  69.  
  70.     CONSTRAINT pk_detail_pembelian_id PRIMARY KEY(id),
  71.     CONSTRAINT fk_detail_pembelian_id_pembelian FOREIGN KEY(id_pembelian) REFERENCES pembelian(id),
  72.     CONSTRAINT fk_detail_pembelian_id_barang FOREIGN KEY(id_barang) REFERENCES barang(id)
  73. );
  74.  
  75.  
  76. # ======================================================================== #
  77.  
  78. # PROCEDURE #
  79.  
  80. # PROCEDURE tambah p_supplier
  81. CREATE PROCEDURE tambah_p_supplier(
  82.     IN nik_supplier_param VARCHAR(16),
  83.     IN nik_param VARCHAR(16),
  84.     IN npwp_param VARCHAR(20),
  85.     IN nama_param VARCHAR(255),
  86.     IN telp_param VARCHAR(20),
  87.     IN alamat_param text
  88. )
  89. BEGIN
  90.     DECLARE id_supplier_param INT;
  91.  
  92.     -- get id supplier
  93.     SELECT id INTO id_supplier_param FROM supplier WHERE nik=nik_supplier_param;
  94.  
  95.     -- insert supplier pengganti
  96.     INSERT INTO p_supplier
  97.         (id_supplier, nik, npwp, nama, telp, alamat)
  98.     VALUES
  99.         (id_supplier_param, nik_param, npwp_param, nama_param, telp_param, alamat_param);
  100. END;
  101.  
  102. -- ====================================== --
  103.  
  104. # PROCEDURE tambah detail pembelian
  105. CREATE PROCEDURE tambah_detail_pembelian(
  106.     IN invoice_param VARCHAR(16),
  107.     IN id_barang_param INT,
  108.     IN colly_param SMALLINT,
  109.     IN netto_param DOUBLE(10,2),
  110.     IN harga_param DOUBLE(10,2),
  111.     IN subtotal_param DOUBLE(14,2)
  112. )
  113. BEGIN
  114.     DECLARE id_pembelian_param INT;
  115.  
  116.     -- get id pembelian
  117.     SELECT id INTO id_pembelian_param FROM pembelian WHERE invoice=invoice_param;
  118.  
  119.     -- insert detail pembelian
  120.     INSERT INTO detail_pembelian
  121.         (id_pembelian, id_barang, colly, netto, harga, subtotal)
  122.     VALUES
  123.         (id_pembelian_param, id_barang_param, colly_param, netto_param, harga_param, subtotal_param);
  124. END;
  125.  
  126. -- ====================================== --
Advertisement
Add Comment
Please, Sign In to add comment