Skip to content

Instantly share code, notes, and snippets.

@taufik-nurrohman
Last active May 25, 2022 11:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save taufik-nurrohman/7e4fb925ad6f56e446f0cf80d3d52ccf to your computer and use it in GitHub Desktop.
Save taufik-nurrohman/7e4fb925ad6f56e446f0cf80d3d52ccf to your computer and use it in GitHub Desktop.
Dummy database.
-- Tabel Daftar Transaksi
CREATE TABLE "inventory" (
"product" INTEGER, -- `product.id`
"price" INTEGER, -- Harga satuan produk
"quantity" INTEGER,
"store" INTEGER, -- `store.id`
"time" TEXT, -- Waktu terjadi transaksi
"type" INTEGER, -- Tipe transaksi
"user" INTEGER
);
-- Tabel Definisi Produk
CREATE TABLE "product" (
"content" TEXT,
"description" TEXT,
"id" INTEGER PRIMARY KEY,
"name" TEXT,
"price" INTEGER, -- Harga produk global
"quantity" INTEGER, -- Jumlah item per stok
"stock" INTEGER, -- Jumlah barang (harus berkurang setiap kali pembelian)
"time" TEXT, -- Awal pembuatan data produk
"title" TEXT,
"touch" TEXT, -- Akhir pembaruan data produk
"type" INTEGER,
"user" INTEGER
);
-- Tabel Toko Mitra dan Cabang
CREATE TABLE "store" (
"content" TEXT,
"description" TEXT,
"id" INTEGER PRIMARY KEY, -- Untuk referensi
"name" TEXT,
"parent" INTEGER, -- Kalau ada data ini berarti toko ini merupakan cabang dari toko dengan `id` yang sama dengan nilai data ini
"time" TEXT,
"title" TEXT,
"user" INTEGER
);
-- Tabel Tipe Produk/Transaksi
CREATE TABLE "type" (
"id" INTEGER,
"name" TEXT,
"time" TEXT, -- Awal pembuatan data produk/transaksi
"title" TEXT,
"touch" TEXT, -- Akhir pembaruan data produk
"user" INTEGER
);
-- Tabel Pengguna
CREATE TABLE "user" ();
@igoynawamreh
Copy link

igoynawamreh commented May 25, 2022

Fitur utama aplikasi

  • form pembelian (pengadaan barang)
    • pada saat input pembelian, pilih produk mana yang mau ditambah stoknya dan otomatis produk tersebut stoknya bertambah (bisa menambahkan beberapa produk sekaligus, baru submit. atau dengan kata lain per-invoice atau per-struk)
  • form penjualan
  • laporan pembelian
  • laporan penjualan
  • laporan keuangan
  • stok opname
  • audit
  • bersambung..

untuk lebih detailnya mungkin harus bikin mockup dulu

Tabel produk

CREATE TABLE "produk" (
  "id" INTEGER PRIMARY KEY,
  "kode" TEXT, -- contoh: `SEM-001` untuk sembako
  "nama" TEXT,
  "gambar" TEXT,
  "deskripsi" TEXT,
  "konten" TEXT,
  "kategori" TEXT,
  "satuan" TEXT,
  "harga_beli" INTEGER,
  "harga_jual" INTEGER,
  "stok" INTEGER,
  "created" DATE,
  "updated" DATE
);

Catatan:

  • harga beli dan harga jual pada setiap cabang mungkin berbeda.
  • jumlah stok pasti berbeda.
  • yang bisa menambahkan produk cuma admin pusat
  • ada kasus dimana satuan produknya PCS tp ketika ada pembeli mau membeli misal 1 dus, si kasir bisa mengubahnya dalam form penjualan menjadi dus, tp secara otomatis sistem bisa mengetahui jumlah satu dus untuk produk itu berapa, jadi dalam tabel produk harus menyimpan jumlah dalam satuan tertentu
    • kalau bisa dalam form tambah produk ada repeatable field buat nambah jumlah dalam satuan tertentu dan harga jual dalam satuan tertentu itu (jadi beli PCS sama dus biasanya lebih murah per-dus)

@taufik-nurrohman
Copy link
Author

Untuk field kode masukin ke category saja mas.

@taufik-nurrohman
Copy link
Author

Kalau fitur laporan bisa dibuat paling akhir, soalnya tinggal ngerangkum basis data aja.

@igoynawamreh
Copy link

Untuk field kode masukin ke category saja mas.

gimana mksdnya mas?

Ada fitur scanner juga ya.

@taufik-nurrohman
Copy link
Author

Kalau masing-masing cabang harganya bisa beda-beda berarti dibuat supaya input harga pre-defined aja. Jadi ada standar harganya dari tabel produk, cuma tiap cabang bisa override itu ke harga mereka. Dan ketika harga tampil di aplikasi, admin masih bisa mengganti nilainya.

@taufik-nurrohman
Copy link
Author

Dan pas submit data ntar masuk row di tabel inventory misal di row tersebut ada data type: pembelian (mirip category lah), terus ada juga data price untuk nyimpen harganya, tiap transaksi.

@igoynawamreh
Copy link

Kalau masing-masing cabang harganya bisa beda-beda berarti dibuat supaya input harga pre-defined aja. Jadi ada standar harganya dari tabel produk, cuma tiap cabang bisa override itu ke harga mereka. Dan ketika harga tampil di aplikasi, admin masih bisa mengganti nilainya.

harga beda-beda ini maksud harga untuk setiap mitra ya, jadi semua cabang yang berada di bawah mitra yang sama itu pasti sama semua harga jual dan belinya, kecuali beda mitra

@taufik-nurrohman
Copy link
Author

taufik-nurrohman commented May 25, 2022

gimana mksdnya mas?

Nggak perlu ada data code. Pakai category aja.

Ada fitur scanner juga ya.

Kalau ini bikinkan QR code aja per kategori.

@igoynawamreh
Copy link

Dan pas submit data ntar masuk row di tabel inventory misal di row tersebut ada data type: pembelian (mirip category lah), terus ada juga data price untuk nyimpen harganya, tiap transaksi.

iya mas yang harus ada di tabel transaksi itu yang pasti kode, harga_beli, harga_jual yang nanti berguna juga buat bikin laporan.

@taufik-nurrohman
Copy link
Author

Kalau masing-masing cabang harganya bisa beda-beda berarti dibuat supaya input harga pre-defined aja. Jadi ada standar harganya dari tabel produk, cuma tiap cabang bisa override itu ke harga mereka. Dan ketika harga tampil di aplikasi, admin masih bisa mengganti nilainya.

harga beda-beda ini maksud harga untuk setiap mitra ya, jadi semua cabang yang berada di bawah mitra yang sama itu pasti sama semua harga jual dan belinya, kecuali beda mitra

Berarti yang punya kuasa utk ngatur harga ya parent user mas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment