Parcourir la source

fix: database migrations

Muhammad Iqbal Afandi il y a 3 ans
Parent
révision
e8eb6cdbb2

+ 1
- 1
database/migrations/2022_06_16_091424_create_purchases_table.php Voir le fichier

@@ -15,7 +15,7 @@ return new class extends Migration
15 15
     {
16 16
         Schema::create('purchases', function (Blueprint $table) {
17 17
             $table->id();
18
-            $table->string('number');
18
+            $table->string('number')->unique();
19 19
             $table->enum('status', ['pending', 'success']);
20 20
             $table->foreignId('supplier_id')->constrained();
21 21
             $table->foreignId('user_id')->constrained();

+ 2
- 1
database/migrations/2022_06_16_092657_create_stock_products_table.php Voir le fichier

@@ -18,7 +18,8 @@ return new class extends Migration
18 18
             $table->string('purchase_number');
19 19
             $table->string('sale_number');
20 20
             $table->integer('amount');
21
-            $table->foreignId('product_id')->constrained();
21
+            $table->string('product_number');
22
+            $table->foreign('product_number')->references('number')->on('products');
22 23
             $table->timestamps();
23 24
         });
24 25
     }

+ 2
- 1
database/migrations/2022_06_17_115146_create_prices_table.php Voir le fichier

@@ -16,7 +16,8 @@ return new class extends Migration
16 16
         Schema::create('prices', function (Blueprint $table) {
17 17
             $table->id();
18 18
             $table->unsignedBigInteger('price');
19
-            $table->foreignId('product_id')->constrained();
19
+            $table->string('product_number');
20
+            $table->foreign('product_number')->references('number')->on('products');
20 21
             $table->foreignId('customer_id')->constrained();
21 22
             $table->foreignId('supplier_id')->constrained();
22 23
             $table->timestamps();

+ 2
- 2
database/migrations/2022_06_17_115154_create_sale_details_table.php Voir le fichier

@@ -18,9 +18,9 @@ return new class extends Migration
18 18
             $table->unsignedInteger('price');
19 19
             $table->unsignedInteger('ppn');
20 20
             $table->unsignedInteger('qty');
21
-            $table->string('product_id');
21
+            $table->string('product_number');
22 22
             $table->foreignId('sale_id')->constrained();
23
-            $table->foreign('product_id')->references('number')->on('products');
23
+            $table->foreign('product_number')->references('number')->on('products');
24 24
             $table->timestamps();
25 25
         });
26 26
     }

+ 4
- 2
database/migrations/2022_06_17_115201_create_purchase_details_table.php Voir le fichier

@@ -18,8 +18,10 @@ return new class extends Migration
18 18
             $table->unsignedInteger('price');
19 19
             $table->unsignedInteger('ppn');
20 20
             $table->unsignedInteger('qty');
21
-            $table->foreignId('purchase_id')->constrained();
22
-            $table->foreignId('product_id')->constrained();
21
+            $table->string('purchase_number');
22
+            $table->string('product_number');
23
+            $table->foreign('purchase_number')->references('number')->on('purchases');
24
+            $table->foreign('product_number')->references('number')->on('products');
23 25
             $table->timestamps();
24 26
         });
25 27
     }

+ 1
- 1
designs/diagrams/database.puml Voir le fichier

@@ -91,7 +91,7 @@ entity SaleDetail {
91 91
   * ppn
92 92
   * qty
93 93
   __
94
-  * sale_id
94
+  * sale_number
95 95
   * product_number
96 96
 }
97 97
 

BIN
designs/diagrams/database/Database.png Voir le fichier


+ 30
- 30
designs/diagrams/database/Database.svg Voir le fichier

@@ -1,26 +1,26 @@
1
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="662px" preserveAspectRatio="none" style="width:510px;height:662px;background:#FFFFFF;" version="1.1" viewBox="0 0 510 662" width="510px" zoomAndPan="magnify"><defs><filter height="300%" id="fhm1p9zfst1vu" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[3fd616f346a44cd59a91eb10b19e157c]
2
-class User--><rect codeLine="2" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="136.5425" id="User" style="stroke:#A80036;stroke-width:1.5;" width="76" x="298" y="378"/><ellipse cx="320.65" cy="394" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M316.7906,399.5 L316.7906,388.2969 L324.8219,388.2969 L324.8219,390.1875 L319.2438,390.1875 L319.2438,392.8906 L324.3219,392.8906 L324.3219,394.7813 L319.2438,394.7813 L319.2438,397.6094 L325.1656,397.6094 L325.1656,399.5 L316.7906,399.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="27" x="336.35" y="398.3564">User</text><line style="stroke:#A80036;stroke-width:1.5;" x1="299" x2="373" y1="410" y2="410"/><ellipse cx="309" cy="421" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="318" y="424.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="299" x2="373" y1="430.6489" y2="430.6489"/><ellipse cx="309" cy="441.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="26" x="318" y="444.9668">name</text><ellipse cx="309" cy="454.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="48" x="318" y="457.6157">username</text><ellipse cx="309" cy="466.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="30" x="318" y="470.2646">status</text><ellipse cx="309" cy="479.5957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="50" x="318" y="482.9136">password</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="6" x="318" y="495.5625">_</text><ellipse cx="309" cy="504.8936" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="32" x="318" y="508.2114">role_id</text><!--MD5=[a3638c1e5b65d287ecad7f06f5c0f212]
3
-class Role--><rect codeLine="13" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="73.2979" id="Role" style="stroke:#A80036;stroke-width:1.5;" width="58" x="307" y="575"/><ellipse cx="322" cy="591" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M318.1406,596.5 L318.1406,585.2969 L326.1719,585.2969 L326.1719,587.1875 L320.5938,587.1875 L320.5938,589.8906 L325.6719,589.8906 L325.6719,591.7813 L320.5938,591.7813 L320.5938,594.6094 L326.5156,594.6094 L326.5156,596.5 L318.1406,596.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="26" x="336" y="595.3564">Role</text><line style="stroke:#A80036;stroke-width:1.5;" x1="308" x2="364" y1="607" y2="607"/><ellipse cx="318" cy="618" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="327" y="621.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="308" x2="364" y1="627.6489" y2="627.6489"/><ellipse cx="318" cy="638.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="26" x="327" y="641.9668">name</text><!--MD5=[2ce0c9fb7f55b1e256ab28a8ea6b25ec]
4
-class Customer--><rect codeLine="19" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="111.2446" id="Customer" style="stroke:#A80036;stroke-width:1.5;" width="87" x="409.5" y="391"/><ellipse cx="424.5" cy="407" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M420.6406,412.5 L420.6406,401.2969 L428.6719,401.2969 L428.6719,403.1875 L423.0938,403.1875 L423.0938,405.8906 L428.1719,405.8906 L428.1719,407.7813 L423.0938,407.7813 L423.0938,410.6094 L429.0156,410.6094 L429.0156,412.5 L420.6406,412.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="55" x="438.5" y="411.3564">Customer</text><line style="stroke:#A80036;stroke-width:1.5;" x1="410.5" x2="495.5" y1="423" y2="423"/><ellipse cx="420.5" cy="434" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="429.5" y="437.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="410.5" x2="495.5" y1="443.6489" y2="443.6489"/><ellipse cx="420.5" cy="454.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="26" x="429.5" y="457.9668">name</text><ellipse cx="420.5" cy="467.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="40" x="429.5" y="470.6157">address</text><ellipse cx="420.5" cy="479.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="30" x="429.5" y="483.2646">phone</text><ellipse cx="420.5" cy="492.5957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="28" x="429.5" y="495.9136">npwp</text><!--MD5=[72136138052d025cffdce3c22fbd185f]
5
-class Product--><rect codeLine="28" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="98.5957" id="Product" style="stroke:#A80036;stroke-width:1.5;" width="74" x="71" y="209"/><ellipse cx="86" cy="225" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M82.1406,230.5 L82.1406,219.2969 L90.1719,219.2969 L90.1719,221.1875 L84.5938,221.1875 L84.5938,223.8906 L89.6719,223.8906 L89.6719,225.7813 L84.5938,225.7813 L84.5938,228.6094 L90.5156,228.6094 L90.5156,230.5 L82.1406,230.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="42" x="100" y="229.3564">Product</text><line style="stroke:#A80036;stroke-width:1.5;" x1="72" x2="144" y1="241" y2="241"/><ellipse cx="82" cy="252" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="91" y="255.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="72" x2="144" y1="261.6489" y2="261.6489"/><ellipse cx="82" cy="272.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="36" x="91" y="275.9668">number</text><ellipse cx="82" cy="285.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="26" x="91" y="288.6157">name</text><ellipse cx="82" cy="297.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="17" x="91" y="301.2646">unit</text><!--MD5=[6f6af049516bc56aac6e320b3234ce97]
6
-class Supplier--><rect codeLine="36" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="123.8936" id="Supplier" style="stroke:#A80036;stroke-width:1.5;" width="78" x="185" y="384.5"/><ellipse cx="200" cy="400.5" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M196.1406,406 L196.1406,394.7969 L204.1719,394.7969 L204.1719,396.6875 L198.5938,396.6875 L198.5938,399.3906 L203.6719,399.3906 L203.6719,401.2813 L198.5938,401.2813 L198.5938,404.1094 L204.5156,404.1094 L204.5156,406 L196.1406,406 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="46" x="214" y="404.8564">Supplier</text><line style="stroke:#A80036;stroke-width:1.5;" x1="186" x2="262" y1="416.5" y2="416.5"/><ellipse cx="196" cy="427.5" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="205" y="430.8179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="186" x2="262" y1="437.1489" y2="437.1489"/><ellipse cx="196" cy="448.1489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="26" x="205" y="451.4668">name</text><ellipse cx="196" cy="460.7979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="40" x="205" y="464.1157">address</text><ellipse cx="196" cy="473.4468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="30" x="205" y="476.7646">phone</text><ellipse cx="196" cy="486.0957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="24" x="205" y="489.4136">email</text><ellipse cx="196" cy="498.7446" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="28" x="205" y="502.0625">npwp</text><!--MD5=[ca228764f84c38a6bbd29bae3074bbc7]
7
-class Purchase--><rect codeLine="46" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="119.2446" id="Purchase" style="stroke:#A80036;stroke-width:1.5;" width="85" x="181.5" y="199"/><ellipse cx="196.5" cy="215" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M192.6406,220.5 L192.6406,209.2969 L200.6719,209.2969 L200.6719,211.1875 L195.0938,211.1875 L195.0938,213.8906 L200.1719,213.8906 L200.1719,215.7813 L195.0938,215.7813 L195.0938,218.6094 L201.0156,218.6094 L201.0156,220.5 L192.6406,220.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="53" x="210.5" y="219.3564">Purchase</text><line style="stroke:#A80036;stroke-width:1.5;" x1="182.5" x2="265.5" y1="231" y2="231"/><ellipse cx="192.5" cy="242" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="201.5" y="245.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="182.5" x2="265.5" y1="251.6489" y2="251.6489"/><ellipse cx="192.5" cy="262.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="36" x="201.5" y="265.9668">number</text><ellipse cx="192.5" cy="275.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="30" x="201.5" y="278.6157">status</text><line style="stroke:#A80036;stroke-width:1.5;" x1="182.5" x2="265.5" y1="284.9468" y2="284.9468"/><ellipse cx="192.5" cy="295.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="52" x="201.5" y="299.2646">supplier_id</text><ellipse cx="192.5" cy="308.5957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="36" x="201.5" y="311.9136">user_id</text><!--MD5=[b6587b47cb08bf742060086bd1cd0b7e]
8
-class Sales--><rect codeLine="56" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="119.2446" id="Sales" style="stroke:#A80036;stroke-width:1.5;" width="85" x="310.5" y="199"/><ellipse cx="334.95" cy="215" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M331.0906,220.5 L331.0906,209.2969 L339.1219,209.2969 L339.1219,211.1875 L333.5438,211.1875 L333.5438,213.8906 L338.6219,213.8906 L338.6219,215.7813 L333.5438,215.7813 L333.5438,218.6094 L339.4656,218.6094 L339.4656,220.5 L331.0906,220.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="32" x="351.05" y="219.3564">Sales</text><line style="stroke:#A80036;stroke-width:1.5;" x1="311.5" x2="394.5" y1="231" y2="231"/><ellipse cx="321.5" cy="242" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="330.5" y="245.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="311.5" x2="394.5" y1="251.6489" y2="251.6489"/><ellipse cx="321.5" cy="262.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="36" x="330.5" y="265.9668">number</text><ellipse cx="321.5" cy="275.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="30" x="330.5" y="278.6157">status</text><line style="stroke:#A80036;stroke-width:1.5;" x1="311.5" x2="394.5" y1="284.9468" y2="284.9468"/><ellipse cx="321.5" cy="295.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="59" x="330.5" y="299.2646">customer_id</text><ellipse cx="321.5" cy="308.5957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="36" x="330.5" y="311.9136">user_id</text><!--MD5=[0cfc926ac851c171b4800cdea9975fdf]
9
-class StockProduct--><rect codeLine="66" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="119.2446" id="StockProduct" style="stroke:#A80036;stroke-width:1.5;" width="114" x="7" y="13.5"/><ellipse cx="26.5" cy="29.5" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M22.6406,35 L22.6406,23.7969 L30.6719,23.7969 L30.6719,25.6875 L25.0938,25.6875 L25.0938,28.3906 L30.1719,28.3906 L30.1719,30.2813 L25.0938,30.2813 L25.0938,33.1094 L31.0156,33.1094 L31.0156,35 L22.6406,35 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="72" x="41.5" y="33.8564">StockProduct</text><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="120" y1="45.5" y2="45.5"/><ellipse cx="18" cy="56.5" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="27" y="59.8179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="120" y1="66.1489" y2="66.1489"/><ellipse cx="18" cy="77.1489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="88" x="27" y="80.4668">purchase_number</text><ellipse cx="18" cy="89.7979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="62" x="27" y="93.1157">sale_number</text><ellipse cx="18" cy="102.4468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="35" x="27" y="105.7646">amount</text><line style="stroke:#A80036;stroke-width:1.5;" x1="8" x2="120" y1="112.0957" y2="112.0957"/><ellipse cx="18" cy="123.0957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="51" x="27" y="126.4136">product_id</text><!--MD5=[a40a7ac4b423335b0d34bf16cf36e547]
10
-class Price--><rect codeLine="76" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="119.2446" id="Price" style="stroke:#A80036;stroke-width:1.5;" width="85" x="64.5" y="387"/><ellipse cx="90.75" cy="403" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M86.8906,408.5 L86.8906,397.2969 L94.9219,397.2969 L94.9219,399.1875 L89.3438,399.1875 L89.3438,401.8906 L94.4219,401.8906 L94.4219,403.7813 L89.3438,403.7813 L89.3438,406.6094 L95.2656,406.6094 L95.2656,408.5 L86.8906,408.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="28" x="107.25" y="407.3564">Price</text><line style="stroke:#A80036;stroke-width:1.5;" x1="65.5" x2="148.5" y1="419" y2="419"/><ellipse cx="75.5" cy="430" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="84.5" y="433.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="65.5" x2="148.5" y1="439.6489" y2="439.6489"/><ellipse cx="75.5" cy="450.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="24" x="84.5" y="453.9668">price</text><line style="stroke:#A80036;stroke-width:1.5;" x1="65.5" x2="148.5" y1="460.2979" y2="460.2979"/><ellipse cx="75.5" cy="471.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="51" x="84.5" y="474.6157">product_id</text><ellipse cx="75.5" cy="483.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="59" x="84.5" y="487.2646">customer_id</text><ellipse cx="75.5" cy="496.5957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="52" x="84.5" y="499.9136">supplier_id</text><!--MD5=[680168ab3c03721c8f7b2302070ae319]
11
-class SaleDetail--><rect codeLine="86" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="131.8936" id="SaleDetail" style="stroke:#A80036;stroke-width:1.5;" width="89" x="308.5" y="7"/><ellipse cx="323.5" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M319.6406,28.5 L319.6406,17.2969 L327.6719,17.2969 L327.6719,19.1875 L322.0938,19.1875 L322.0938,21.8906 L327.1719,21.8906 L327.1719,23.7813 L322.0938,23.7813 L322.0938,26.6094 L328.0156,26.6094 L328.0156,28.5 L319.6406,28.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="57" x="337.5" y="27.3564">SaleDetail</text><line style="stroke:#A80036;stroke-width:1.5;" x1="309.5" x2="396.5" y1="39" y2="39"/><ellipse cx="319.5" cy="50" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="328.5" y="53.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="309.5" x2="396.5" y1="59.6489" y2="59.6489"/><ellipse cx="319.5" cy="70.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="24" x="328.5" y="73.9668">price</text><ellipse cx="319.5" cy="83.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="18" x="328.5" y="86.6157">ppn</text><ellipse cx="319.5" cy="95.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="15" x="328.5" y="99.2646">qty</text><line style="stroke:#A80036;stroke-width:1.5;" x1="309.5" x2="396.5" y1="105.5957" y2="105.5957"/><ellipse cx="319.5" cy="116.5957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="34" x="328.5" y="119.9136">sale_id</text><ellipse cx="319.5" cy="129.2446" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="51" x="328.5" y="132.5625">product_id</text><!--MD5=[3d9bec551640ffb4a026cc7c78c25b79]
12
-class PurchaseDetail--><rect codeLine="97" fill="#FEFECE" filter="url(#fhm1p9zfst1vu)" height="131.8936" id="PurchaseDetail" style="stroke:#A80036;stroke-width:1.5;" width="117" x="156.5" y="7"/><ellipse cx="171.5" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#A80036;stroke-width:1.0;"/><path d="M167.6406,28.5 L167.6406,17.2969 L175.6719,17.2969 L175.6719,19.1875 L170.0938,19.1875 L170.0938,21.8906 L175.1719,21.8906 L175.1719,23.7813 L170.0938,23.7813 L170.0938,26.6094 L176.0156,26.6094 L176.0156,28.5 L167.6406,28.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacing" textLength="85" x="185.5" y="27.3564">PurchaseDetail</text><line style="stroke:#A80036;stroke-width:1.5;" x1="157.5" x2="272.5" y1="39" y2="39"/><ellipse cx="167.5" cy="50" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="8" x="176.5" y="53.3179">id</text><line style="stroke:#A80036;stroke-width:1.5;" x1="157.5" x2="272.5" y1="59.6489" y2="59.6489"/><ellipse cx="167.5" cy="70.6489" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="24" x="176.5" y="73.9668">price</text><ellipse cx="167.5" cy="83.2979" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="18" x="176.5" y="86.6157">ppn</text><ellipse cx="167.5" cy="95.9468" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="15" x="176.5" y="99.2646">qty</text><line style="stroke:#A80036;stroke-width:1.5;" x1="157.5" x2="272.5" y1="105.5957" y2="105.5957"/><ellipse cx="167.5" cy="116.5957" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="60" x="176.5" y="119.9136">purchase_id</text><ellipse cx="167.5" cy="129.2446" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="51" x="176.5" y="132.5625">product_id</text><!--MD5=[70c37dc9bfbc8656942103c36f1181e4]
13
-link User to Role--><path codeLine="108" d="M336,523.42 C336,538.28 336,553.38 336,566.75 " fill="none" id="User-Role" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="336" x2="342" y1="566.83" y2="574.83"/><line style="stroke:#A80036;stroke-width:1.0;" x1="336" x2="330" y1="566.83" y2="574.83"/><line style="stroke:#A80036;stroke-width:1.0;" x1="336" x2="336" y1="566.83" y2="574.83"/><line style="stroke:#A80036;stroke-width:1.0;" x1="340" x2="332" y1="564.83" y2="564.83"/><line style="stroke:#A80036;stroke-width:1.0;" x1="332" x2="340" y1="519.21" y2="519.21"/><line style="stroke:#A80036;stroke-width:1.0;" x1="332" x2="340" y1="522.21" y2="522.21"/><line style="stroke:#A80036;stroke-width:1.0;" x1="336" x2="336" y1="523.21" y2="515.21"/><!--MD5=[47449b9f044e3634f406bd4441e700dd]
14
-link Purchase to Supplier--><path codeLine="109" d="M224,326.12 C224,342.28 224,359.6 224,375.89 " fill="none" id="Purchase-Supplier" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="224" x2="230" y1="376.31" y2="384.31"/><line style="stroke:#A80036;stroke-width:1.0;" x1="224" x2="218" y1="376.31" y2="384.31"/><line style="stroke:#A80036;stroke-width:1.0;" x1="224" x2="224" y1="376.31" y2="384.31"/><line style="stroke:#A80036;stroke-width:1.0;" x1="228" x2="220" y1="374.31" y2="374.31"/><line style="stroke:#A80036;stroke-width:1.0;" x1="220" x2="228" y1="322.1" y2="322.1"/><line style="stroke:#A80036;stroke-width:1.0;" x1="220" x2="228" y1="325.1" y2="325.1"/><line style="stroke:#A80036;stroke-width:1.0;" x1="224" x2="224" y1="326.1" y2="318.1"/><!--MD5=[908832567ff15e3f47de674b99e285bc]
15
-link Purchase to User--><path codeLine="110" d="M263.67,325.38 C273.43,341.59 283.92,359.01 293.79,375.41 " fill="none" id="Purchase-User" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="293.8535" x2="303.1202" y1="375.5164" y2="379.2752"/><line style="stroke:#A80036;stroke-width:1.0;" x1="293.8535" x2="292.8398" y1="375.5164" y2="385.4648"/><line style="stroke:#A80036;stroke-width:1.0;" x1="293.8535" x2="297.98" y1="375.5164" y2="382.37"/><line style="stroke:#A80036;stroke-width:1.0;" x1="296.2487" x2="289.3951" y1="371.7397" y2="375.8662"/><line style="stroke:#A80036;stroke-width:1.0;" x1="257.908" x2="264.768" y1="323.588" y2="319.472"/><line style="stroke:#A80036;stroke-width:1.0;" x1="259.4515" x2="266.3114" y1="326.1604" y2="322.0445"/><line style="stroke:#A80036;stroke-width:1.0;" x1="263.396" x2="259.28" y1="324.9599" y2="318.1"/><!--MD5=[77820080b9be6acfb6e8a381a1a0e9b8]
16
-link Sales to Customer--><path codeLine="111" d="M388.38,325.3 C398.58,344.28 409.67,364.91 419.74,383.65 " fill="none" id="Sales-Customer" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="419.9123" x2="428.9849" y1="383.9535" y2="388.1592"/><line style="stroke:#A80036;stroke-width:1.0;" x1="419.9123" x2="418.4151" y1="383.9535" y2="393.8408"/><line style="stroke:#A80036;stroke-width:1.0;" x1="419.9123" x2="423.7" y1="383.9535" y2="391"/><line style="stroke:#A80036;stroke-width:1.0;" x1="422.4887" x2="415.4421" y1="380.298" y2="384.0857"/><line style="stroke:#A80036;stroke-width:1.0;" x1="382.8706" x2="389.9171" y1="323.5171" y2="319.7294"/><line style="stroke:#A80036;stroke-width:1.0;" x1="384.291" x2="391.3375" y1="326.1595" y2="322.3719"/><line style="stroke:#A80036;stroke-width:1.0;" x1="388.2877" x2="384.5" y1="325.1465" y2="318.1"/><!--MD5=[b90679fcd0158477e65aabd182e1535f]
17
-link Sales to User--><path codeLine="112" d="M346.9,326.21 C345.62,340.22 344.26,355.1 342.95,369.42 " fill="none" id="Sales-User" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="342.9181" x2="348.1651" y1="369.8132" y2="378.3261"/><line style="stroke:#A80036;stroke-width:1.0;" x1="342.9181" x2="336.2149" y1="369.8132" y2="377.2339"/><line style="stroke:#A80036;stroke-width:1.0;" x1="342.9181" x2="342.19" y1="369.8132" y2="377.78"/><line style="stroke:#A80036;stroke-width:1.0;" x1="347.0836" x2="339.1168" y1="368.1856" y2="367.4574"/><line style="stroke:#A80036;stroke-width:1.0;" x1="343.2919" x2="351.2586" y1="321.7186" y2="322.4481"/><line style="stroke:#A80036;stroke-width:1.0;" x1="343.0184" x2="350.9851" y1="324.7061" y2="325.4356"/><line style="stroke:#A80036;stroke-width:1.0;" x1="346.9106" x2="347.64" y1="326.0667" y2="318.1"/><!--MD5=[469537f6e6fbfad22558102ade648a2e]
18
-link StockProduct to Product--><path codeLine="113" d="M79.93,140.44 C84.67,160.18 89.81,181.62 94.38,200.69 " fill="none" id="StockProduct-Product" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="94.4438" x2="102.1363" y1="200.9283" y2="207.3179"/><line style="stroke:#A80036;stroke-width:1.0;" x1="94.4438" x2="90.4637" y1="200.9283" y2="210.1021"/><line style="stroke:#A80036;stroke-width:1.0;" x1="94.4438" x2="96.3" y1="200.9283" y2="208.71"/><line style="stroke:#A80036;stroke-width:1.0;" x1="97.8706" x2="90.0889" y1="198.0548" y2="199.911"/><line style="stroke:#A80036;stroke-width:1.0;" x1="75.0876" x2="82.8653" y1="137.3953" y2="135.5224"/><line style="stroke:#A80036;stroke-width:1.0;" x1="75.79" x2="83.5676" y1="140.3119" y2="138.439"/><line style="stroke:#A80036;stroke-width:1.0;" x1="79.9129" x2="78.04" y1="140.3477" y2="132.57"/><!--MD5=[875e56a13740a855aedfd46d8ab63ed6]
19
-link PurchaseDetail to Purchase--><path codeLine="114" d="M218.61,147.52 C219.31,161.8 220.04,176.7 220.73,190.75 " fill="none" id="PurchaseDetail-Purchase" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="220.744" x2="227.123" y1="190.9193" y2="198.6205"/><line style="stroke:#A80036;stroke-width:1.0;" x1="220.744" x2="215.137" y1="190.9193" y2="199.1995"/><line style="stroke:#A80036;stroke-width:1.0;" x1="220.744" x2="221.13" y1="190.9193" y2="198.91"/><line style="stroke:#A80036;stroke-width:1.0;" x1="224.6429" x2="216.6522" y1="188.7287" y2="189.1146"/><line style="stroke:#A80036;stroke-width:1.0;" x1="214.3973" x2="222.388" y1="143.398" y2="143.0127"/><line style="stroke:#A80036;stroke-width:1.0;" x1="214.5417" x2="222.5325" y1="146.3945" y2="146.0092"/><line style="stroke:#A80036;stroke-width:1.0;" x1="218.5853" x2="218.2" y1="147.2007" y2="139.21"/><!--MD5=[636c4cbf2bb40ce634cacaf01a62e11c]
20
-link PurchaseDetail to Product--><path codeLine="115" d="M172.85,146.28 C162.13,164.67 150.76,184.16 140.59,201.6 " fill="none" id="PurchaseDetail-Product" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="140.3536" x2="141.5015" y1="202.0313" y2="211.9652"/><line style="stroke:#A80036;stroke-width:1.0;" x1="140.3536" x2="131.1385" y1="202.0313" y2="205.9148"/><line style="stroke:#A80036;stroke-width:1.0;" x1="140.3536" x2="136.32" y1="202.0313" y2="208.94"/><line style="stroke:#A80036;stroke-width:1.0;" x1="144.8164" x2="137.9077" y1="202.321" y2="198.2873"/><line style="stroke:#A80036;stroke-width:1.0;" x1="171.4988" x2="178.4075" y1="140.6475" y2="144.6812"/><line style="stroke:#A80036;stroke-width:1.0;" x1="169.9862" x2="176.8949" y1="143.2383" y2="147.2719"/><line style="stroke:#A80036;stroke-width:1.0;" x1="172.9364" x2="176.97" y1="146.1187" y2="139.21"/><!--MD5=[4a0d2ccf57382988e84e92c9568ebf50]
21
-link SaleDetail to Sales--><path codeLine="116" d="M353,146.59 C353,161.51 353,177.14 353,191.8 " fill="none" id="SaleDetail-Sales" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="357" x2="349" y1="194.91" y2="194.91"/><line style="stroke:#A80036;stroke-width:1.0;" x1="357" x2="349" y1="191.91" y2="191.91"/><line style="stroke:#A80036;stroke-width:1.0;" x1="353" x2="353" y1="190.91" y2="198.91"/><line style="stroke:#A80036;stroke-width:1.0;" x1="349" x2="357" y1="143.21" y2="143.21"/><line style="stroke:#A80036;stroke-width:1.0;" x1="349" x2="357" y1="146.21" y2="146.21"/><line style="stroke:#A80036;stroke-width:1.0;" x1="353" x2="353" y1="147.21" y2="139.21"/><!--MD5=[cc8c2cf61c441007fd82fc98c1838a15]
22
-link SaleDetail to Product--><path codeLine="117" d="M302.26,130.1 C298.58,133.25 294.81,136.25 291,139 C240.38,175.54 214.65,162.51 164,199 C159.63,202.15 155.32,205.66 151.14,209.36 " fill="none" id="SaleDetail-Product" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="151.0077" x2="149.1821" y1="209.4839" y2="219.3158"/><line style="stroke:#A80036;stroke-width:1.0;" x1="151.0077" x2="141.0579" y1="209.4839" y2="210.4842"/><line style="stroke:#A80036;stroke-width:1.0;" x1="151.0077" x2="145.12" y1="209.4839" y2="214.9"/><line style="stroke:#A80036;stroke-width:1.0;" x1="155.1877" x2="149.7716" y1="211.0737" y2="205.186"/><line style="stroke:#A80036;stroke-width:1.0;" x1="302.7427" x2="308.0612" y1="124.3212" y2="130.2973"/><line style="stroke:#A80036;stroke-width:1.0;" x1="300.5017" x2="305.8201" y1="126.3156" y2="132.2917"/><line style="stroke:#A80036;stroke-width:1.0;" x1="302.4139" x2="308.39" y1="129.9685" y2="124.65"/><!--MD5=[5fa2e163e1a5922a0d0ebcb119c05bb7]
23
-link Product to Price--><path codeLine="118" d="M107.7,315.54 C107.59,335.74 107.47,358.71 107.35,379.67 " fill="none" id="Product-Price" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="111.3444" x2="103.3446" y1="382.7146" y2="382.6656"/><line style="stroke:#A80036;stroke-width:1.0;" x1="111.3628" x2="103.3629" y1="379.7146" y2="379.6656"/><line style="stroke:#A80036;stroke-width:1.0;" x1="107.369" x2="107.32" y1="378.6901" y2="386.69"/><line style="stroke:#A80036;stroke-width:1.0;" x1="103.7237" x2="111.7236" y1="312.3536" y2="312.3863"/><line style="stroke:#A80036;stroke-width:1.0;" x1="103.7115" x2="111.7114" y1="315.3536" y2="315.3863"/><line style="stroke:#A80036;stroke-width:1.0;" x1="107.7073" x2="107.74" y1="316.3699" y2="308.37"/><!--MD5=[d4db513260bab063dbdf4398f09e068c]
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="724px" preserveAspectRatio="none" style="width:573px;height:724px;background:#FFFFFF;" version="1.1" viewBox="0 0 573 724" width="573px" zoomAndPan="magnify"><defs/><g><!--MD5=[3fd616f346a44cd59a91eb10b19e157c]
2
+class User--><g id="elem_User"><rect codeLine="2" fill="#F1F1F1" height="160.6904" id="User" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="89" x="349" y="416"/><ellipse cx="376.6" cy="432" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M372.7406,437.5 L372.7406,426.2969 L380.7719,426.2969 L380.7719,428.1875 L375.1938,428.1875 L375.1938,430.8906 L380.2719,430.8906 L380.2719,432.7813 L375.1938,432.7813 L375.1938,435.6094 L381.1156,435.6094 L381.1156,437.5 L372.7406,437.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="29" x="393.4" y="437.0825">User</text><line style="stroke:#181818;stroke-width:0.5;" x1="350" x2="437" y1="448" y2="448"/><ellipse cx="360" cy="459" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="369" y="465.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="350" x2="437" y1="472.0986" y2="472.0986"/><ellipse cx="360" cy="483.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="369" y="489.2305">name</text><ellipse cx="360" cy="499.1973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="63" x="369" y="505.3291">username</text><ellipse cx="360" cy="515.2959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="38" x="369" y="521.4277">status</text><ellipse cx="360" cy="531.3945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60" x="369" y="537.5264">password</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="8" x="369" y="553.625">_</text><ellipse cx="360" cy="563.5918" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="43" x="369" y="569.7236">role_id</text></g><!--MD5=[a3638c1e5b65d287ecad7f06f5c0f212]
3
+class Role--><g id="elem_Role"><rect codeLine="13" fill="#F1F1F1" height="80.1973" id="Role" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="61" x="363" y="637"/><ellipse cx="378" cy="653" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M374.1406,658.5 L374.1406,647.2969 L382.1719,647.2969 L382.1719,649.1875 L376.5938,649.1875 L376.5938,651.8906 L381.6719,651.8906 L381.6719,653.7813 L376.5938,653.7813 L376.5938,656.6094 L382.5156,656.6094 L382.5156,658.5 L374.1406,658.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="29" x="392" y="658.0825">Role</text><line style="stroke:#181818;stroke-width:0.5;" x1="364" x2="423" y1="669" y2="669"/><ellipse cx="374" cy="680" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="383" y="686.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="364" x2="423" y1="693.0986" y2="693.0986"/><ellipse cx="374" cy="704.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="383" y="710.2305">name</text></g><!--MD5=[2ce0c9fb7f55b1e256ab28a8ea6b25ec]
4
+class Customer--><g id="elem_Customer"><rect codeLine="19" fill="#F1F1F1" height="128.4932" id="Customer" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="93" x="473" y="432.5"/><ellipse cx="488" cy="448.5" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M484.1406,454 L484.1406,442.7969 L492.1719,442.7969 L492.1719,444.6875 L486.5938,444.6875 L486.5938,447.3906 L491.6719,447.3906 L491.6719,449.2813 L486.5938,449.2813 L486.5938,452.1094 L492.5156,452.1094 L492.5156,454 L484.1406,454 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="61" x="502" y="453.5825">Customer</text><line style="stroke:#181818;stroke-width:0.5;" x1="474" x2="565" y1="464.5" y2="464.5"/><ellipse cx="484" cy="475.5" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="493" y="481.6318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="474" x2="565" y1="488.5986" y2="488.5986"/><ellipse cx="484" cy="499.5986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="493" y="505.7305">name</text><ellipse cx="484" cy="515.6973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="51" x="493" y="521.8291">address</text><ellipse cx="484" cy="531.7959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="493" y="537.9277">phone</text><ellipse cx="484" cy="547.8945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="33" x="493" y="554.0264">npwp</text></g><!--MD5=[72136138052d025cffdce3c22fbd185f]
5
+class Product--><g id="elem_Product"><rect codeLine="28" fill="#F1F1F1" height="112.3945" id="Product" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="81" x="98" y="232"/><ellipse cx="113" cy="248" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M109.1406,253.5 L109.1406,242.2969 L117.1719,242.2969 L117.1719,244.1875 L111.5938,244.1875 L111.5938,246.8906 L116.6719,246.8906 L116.6719,248.7813 L111.5938,248.7813 L111.5938,251.6094 L117.5156,251.6094 L117.5156,253.5 L109.1406,253.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="49" x="127" y="253.0825">Product</text><line style="stroke:#181818;stroke-width:0.5;" x1="99" x2="178" y1="264" y2="264"/><ellipse cx="109" cy="275" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="118" y="281.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="99" x2="178" y1="288.0986" y2="288.0986"/><ellipse cx="109" cy="299.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="118" y="305.2305">number</text><ellipse cx="109" cy="315.1973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="118" y="321.3291">name</text><ellipse cx="109" cy="331.2959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="23" x="118" y="337.4277">unit</text></g><!--MD5=[6f6af049516bc56aac6e320b3234ce97]
6
+class Supplier--><g id="elem_Supplier"><rect codeLine="36" fill="#F1F1F1" height="144.5918" id="Supplier" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="84" x="229.5" y="424"/><ellipse cx="244.5" cy="440" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M240.6406,445.5 L240.6406,434.2969 L248.6719,434.2969 L248.6719,436.1875 L243.0938,436.1875 L243.0938,438.8906 L248.1719,438.8906 L248.1719,440.7813 L243.0938,440.7813 L243.0938,443.6094 L249.0156,443.6094 L249.0156,445.5 L240.6406,445.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="52" x="258.5" y="445.0825">Supplier</text><line style="stroke:#181818;stroke-width:0.5;" x1="230.5" x2="312.5" y1="456" y2="456"/><ellipse cx="240.5" cy="467" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="249.5" y="473.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="230.5" x2="312.5" y1="480.0986" y2="480.0986"/><ellipse cx="240.5" cy="491.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="249.5" y="497.2305">name</text><ellipse cx="240.5" cy="507.1973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="51" x="249.5" y="513.3291">address</text><ellipse cx="240.5" cy="523.2959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="40" x="249.5" y="529.4277">phone</text><ellipse cx="240.5" cy="539.3945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="33" x="249.5" y="545.5264">email</text><ellipse cx="240.5" cy="555.4932" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="33" x="249.5" y="561.625">npwp</text></g><!--MD5=[ca228764f84c38a6bbd29bae3074bbc7]
7
+class Purchase--><g id="elem_Purchase"><rect codeLine="46" fill="#F1F1F1" height="136.4932" id="Purchase" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="95" x="224" y="220"/><ellipse cx="240.35" cy="236" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M236.4906,241.5 L236.4906,230.2969 L244.5219,230.2969 L244.5219,232.1875 L238.9438,232.1875 L238.9438,234.8906 L244.0219,234.8906 L244.0219,236.7813 L238.9438,236.7813 L238.9438,239.6094 L244.8656,239.6094 L244.8656,241.5 L236.4906,241.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60" x="254.65" y="241.0825">Purchase</text><line style="stroke:#181818;stroke-width:0.5;" x1="225" x2="318" y1="252" y2="252"/><ellipse cx="235" cy="263" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="244" y="269.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="225" x2="318" y1="276.0986" y2="276.0986"/><ellipse cx="235" cy="287.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="244" y="293.2305">number</text><ellipse cx="235" cy="303.1973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="38" x="244" y="309.3291">status</text><line style="stroke:#181818;stroke-width:0.5;" x1="225" x2="318" y1="316.2959" y2="316.2959"/><ellipse cx="235" cy="327.2959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69" x="244" y="333.4277">supplier_id</text><ellipse cx="235" cy="343.3945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="244" y="349.5264">user_id</text></g><!--MD5=[b6587b47cb08bf742060086bd1cd0b7e]
8
+class Sales--><g id="elem_Sales"><rect codeLine="56" fill="#F1F1F1" height="136.4932" id="Sales" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="103" x="373" y="220"/><ellipse cx="404.2" cy="236" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M400.3406,241.5 L400.3406,230.2969 L408.3719,230.2969 L408.3719,232.1875 L402.7938,232.1875 L402.7938,234.8906 L407.8719,234.8906 L407.8719,236.7813 L402.7938,236.7813 L402.7938,239.6094 L408.7156,239.6094 L408.7156,241.5 L400.3406,241.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="35" x="421.8" y="241.0825">Sales</text><line style="stroke:#181818;stroke-width:0.5;" x1="374" x2="475" y1="252" y2="252"/><ellipse cx="384" cy="263" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="393" y="269.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="374" x2="475" y1="276.0986" y2="276.0986"/><ellipse cx="384" cy="287.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="48" x="393" y="293.2305">number</text><ellipse cx="384" cy="303.1973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="38" x="393" y="309.3291">status</text><line style="stroke:#181818;stroke-width:0.5;" x1="374" x2="475" y1="316.2959" y2="316.2959"/><ellipse cx="384" cy="327.2959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77" x="393" y="333.4277">customer_id</text><ellipse cx="384" cy="343.3945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="393" y="349.5264">user_id</text></g><!--MD5=[0cfc926ac851c171b4800cdea9975fdf]
9
+class StockProduct--><g id="elem_StockProduct"><rect codeLine="66" fill="#F1F1F1" height="136.4932" id="StockProduct" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="141" x="7" y="15.5"/><ellipse cx="33.25" cy="31.5" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M29.3906,37 L29.3906,25.7969 L37.4219,25.7969 L37.4219,27.6875 L31.8438,27.6875 L31.8438,30.3906 L36.9219,30.3906 L36.9219,32.2813 L31.8438,32.2813 L31.8438,35.1094 L37.7656,35.1094 L37.7656,37 L29.3906,37 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84" x="49.75" y="36.5825">StockProduct</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="147" y1="47.5" y2="47.5"/><ellipse cx="18" cy="58.5" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="27" y="64.6318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="147" y1="71.5986" y2="71.5986"/><ellipse cx="18" cy="82.5986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="27" y="88.7305">purchase_number</text><ellipse cx="18" cy="98.6973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82" x="27" y="104.8291">sale_number</text><ellipse cx="18" cy="114.7959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="27" y="120.9277">amount</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="147" y1="127.8945" y2="127.8945"/><ellipse cx="18" cy="138.8945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="27" y="145.0264">product_number</text></g><!--MD5=[a40a7ac4b423335b0d34bf16cf36e547]
10
+class Price--><g id="elem_Price"><rect codeLine="76" fill="#F1F1F1" height="136.4932" id="Price" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="130" x="64.5" y="428.5"/><ellipse cx="109.25" cy="444.5" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M105.3906,450 L105.3906,438.7969 L113.4219,438.7969 L113.4219,440.6875 L107.8438,440.6875 L107.8438,443.3906 L112.9219,443.3906 L112.9219,445.2813 L107.8438,445.2813 L107.8438,448.1094 L113.7656,448.1094 L113.7656,450 L105.3906,450 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32" x="129.75" y="449.5825">Price</text><line style="stroke:#181818;stroke-width:0.5;" x1="65.5" x2="193.5" y1="460.5" y2="460.5"/><ellipse cx="75.5" cy="471.5" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="84.5" y="477.6318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="65.5" x2="193.5" y1="484.5986" y2="484.5986"/><ellipse cx="75.5" cy="495.5986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="31" x="84.5" y="501.7305">price</text><line style="stroke:#181818;stroke-width:0.5;" x1="65.5" x2="193.5" y1="508.6973" y2="508.6973"/><ellipse cx="75.5" cy="519.6973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="84.5" y="525.8291">product_number</text><ellipse cx="75.5" cy="535.7959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="77" x="84.5" y="541.9277">customer_id</text><ellipse cx="75.5" cy="551.8945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="69" x="84.5" y="558.0264">supplier_id</text></g><!--MD5=[680168ab3c03721c8f7b2302070ae319]
11
+class SaleDetail--><g id="elem_SaleDetail"><rect codeLine="86" fill="#F1F1F1" height="152.5918" id="SaleDetail" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="130" x="359.5" y="7"/><ellipse cx="389.8" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M385.9406,28.5 L385.9406,17.2969 L393.9719,17.2969 L393.9719,19.1875 L388.3938,19.1875 L388.3938,21.8906 L393.4719,21.8906 L393.4719,23.7813 L388.3938,23.7813 L388.3938,26.6094 L394.3156,26.6094 L394.3156,28.5 L385.9406,28.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64" x="407.2" y="28.0825">SaleDetail</text><line style="stroke:#181818;stroke-width:0.5;" x1="360.5" x2="488.5" y1="39" y2="39"/><ellipse cx="370.5" cy="50" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="379.5" y="56.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="360.5" x2="488.5" y1="63.0986" y2="63.0986"/><ellipse cx="370.5" cy="74.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="31" x="379.5" y="80.2305">price</text><ellipse cx="370.5" cy="90.1973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="24" x="379.5" y="96.3291">ppn</text><ellipse cx="370.5" cy="106.2959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="19" x="379.5" y="112.4277">qty</text><line style="stroke:#181818;stroke-width:0.5;" x1="360.5" x2="488.5" y1="119.3945" y2="119.3945"/><ellipse cx="370.5" cy="130.3945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82" x="379.5" y="136.5264">sale_number</text><ellipse cx="370.5" cy="146.4932" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="379.5" y="152.625">product_number</text></g><!--MD5=[3d9bec551640ffb4a026cc7c78c25b79]
12
+class PurchaseDetail--><g id="elem_PurchaseDetail"><rect codeLine="97" fill="#F1F1F1" height="152.5918" id="PurchaseDetail" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="141" x="183" y="7"/><ellipse cx="203.85" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M199.9906,28.5 L199.9906,17.2969 L208.0219,17.2969 L208.0219,19.1875 L202.4438,19.1875 L202.4438,21.8906 L207.5219,21.8906 L207.5219,23.7813 L202.4438,23.7813 L202.4438,26.6094 L208.3656,26.6094 L208.3656,28.5 L199.9906,28.5 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="96" x="219.15" y="28.0825">PurchaseDetail</text><line style="stroke:#181818;stroke-width:0.5;" x1="184" x2="323" y1="39" y2="39"/><ellipse cx="194" cy="50" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="11" x="203" y="56.1318">id</text><line style="stroke:#181818;stroke-width:0.5;" x1="184" x2="323" y1="63.0986" y2="63.0986"/><ellipse cx="194" cy="74.0986" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="31" x="203" y="80.2305">price</text><ellipse cx="194" cy="90.1973" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="24" x="203" y="96.3291">ppn</text><ellipse cx="194" cy="106.2959" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="19" x="203" y="112.4277">qty</text><line style="stroke:#181818;stroke-width:0.5;" x1="184" x2="323" y1="119.3945" y2="119.3945"/><ellipse cx="194" cy="130.3945" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="115" x="203" y="136.5264">purchase_number</text><ellipse cx="194" cy="146.4932" fill="#000000" rx="3" ry="3" style="stroke:#000000;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="104" x="203" y="152.625">product_number</text></g><!--MD5=[70c37dc9bfbc8656942103c36f1181e4]
13
+link User to Role--><g id="link_User_Role"><path codeLine="108" d="M393.5,585.34 C393.5,600.24 393.5,615.19 393.5,628.53 " fill="none" id="User-Role" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="393.5" x2="399.5" y1="628.62" y2="636.62"/><line style="stroke:#181818;stroke-width:1.0;" x1="393.5" x2="387.5" y1="628.62" y2="636.62"/><line style="stroke:#181818;stroke-width:1.0;" x1="393.5" x2="393.5" y1="628.62" y2="636.62"/><line style="stroke:#181818;stroke-width:1.0;" x1="397.5" x2="389.5" y1="626.62" y2="626.62"/><line style="stroke:#181818;stroke-width:1.0;" x1="389.5" x2="397.5" y1="581.09" y2="581.09"/><line style="stroke:#181818;stroke-width:1.0;" x1="389.5" x2="397.5" y1="584.09" y2="584.09"/><line style="stroke:#181818;stroke-width:1.0;" x1="393.5" x2="393.5" y1="585.09" y2="577.09"/></g><!--MD5=[47449b9f044e3634f406bd4441e700dd]
14
+link Purchase to Supplier--><g id="link_Purchase_Supplier"><path codeLine="109" d="M271.5,364.28 C271.5,380.97 271.5,398.73 271.5,415.61 " fill="none" id="Purchase-Supplier" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="271.5" x2="277.5" y1="415.81" y2="423.81"/><line style="stroke:#181818;stroke-width:1.0;" x1="271.5" x2="265.5" y1="415.81" y2="423.81"/><line style="stroke:#181818;stroke-width:1.0;" x1="271.5" x2="271.5" y1="415.81" y2="423.81"/><line style="stroke:#181818;stroke-width:1.0;" x1="275.5" x2="267.5" y1="413.81" y2="413.81"/><line style="stroke:#181818;stroke-width:1.0;" x1="267.5" x2="275.5" y1="360.04" y2="360.04"/><line style="stroke:#181818;stroke-width:1.0;" x1="267.5" x2="275.5" y1="363.04" y2="363.04"/><line style="stroke:#181818;stroke-width:1.0;" x1="271.5" x2="271.5" y1="364.04" y2="356.04"/></g><!--MD5=[908832567ff15e3f47de674b99e285bc]
15
+link Purchase to User--><g id="link_Purchase_User"><path codeLine="110" d="M315.39,363.29 C324.89,379.38 335,396.49 344.68,412.87 " fill="none" id="Purchase-User" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="344.7282" x2="353.9647" y1="412.9537" y2="416.7862"/><line style="stroke:#181818;stroke-width:1.0;" x1="344.7282" x2="343.6353" y1="412.9537" y2="422.8938"/><line style="stroke:#181818;stroke-width:1.0;" x1="344.7282" x2="348.8" y1="412.9537" y2="419.84"/><line style="stroke:#181818;stroke-width:1.0;" x1="347.1534" x2="340.2672" y1="409.1963" y2="413.268"/><line style="stroke:#181818;stroke-width:1.0;" x1="309.7027" x2="316.589" y1="361.519" y2="357.4473"/><line style="stroke:#181818;stroke-width:1.0;" x1="311.2297" x2="318.1159" y1="364.1014" y2="360.0296"/><line style="stroke:#181818;stroke-width:1.0;" x1="315.1818" x2="311.11" y1="362.9263" y2="356.04"/></g><!--MD5=[77820080b9be6acfb6e8a381a1a0e9b8]
16
+link Sales to Customer--><g id="link_Sales_Customer"><path codeLine="111" d="M458.82,363.6 C468,383.56 477.9,405.08 486.99,424.82 " fill="none" id="Sales-Customer" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="487.073" x2="495.8696" y1="425.0338" y2="429.7897"/><line style="stroke:#181818;stroke-width:1.0;" x1="487.073" x2="484.9704" y1="425.0338" y2="434.8103"/><line style="stroke:#181818;stroke-width:1.0;" x1="487.073" x2="490.42" y1="425.0338" y2="432.3"/><line style="stroke:#181818;stroke-width:1.0;" x1="489.8693" x2="482.6031" y1="421.5438" y2="424.8908"/><line style="stroke:#181818;stroke-width:1.0;" x1="453.3765" x2="460.6451" y1="361.3451" y2="358.0035"/><line style="stroke:#181818;stroke-width:1.0;" x1="454.6296" x2="461.8982" y1="364.0709" y2="360.7293"/><line style="stroke:#181818;stroke-width:1.0;" x1="458.6816" x2="455.34" y1="363.3087" y2="356.04"/></g><!--MD5=[b90679fcd0158477e65aabd182e1535f]
17
+link Sales to User--><g id="link_Sales_User"><path codeLine="112" d="M413.21,364.2 C411.08,378.37 408.84,393.31 406.66,407.83 " fill="none" id="Sales-User" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="406.6453" x2="411.3938" y1="407.9283" y2="416.729"/><line style="stroke:#181818;stroke-width:1.0;" x1="406.6453" x2="399.5262" y1="407.9283" y2="414.951"/><line style="stroke:#181818;stroke-width:1.0;" x1="406.6453" x2="405.46" y1="407.9283" y2="415.84"/><line style="stroke:#181818;stroke-width:1.0;" x1="410.8975" x2="402.9858" y1="406.543" y2="405.3577"/><line style="stroke:#181818;stroke-width:1.0;" x1="409.8915" x2="417.8032" y1="359.4032" y2="360.5885"/><line style="stroke:#181818;stroke-width:1.0;" x1="409.447" x2="417.3587" y1="362.3701" y2="363.5554"/><line style="stroke:#181818;stroke-width:1.0;" x1="413.2547" x2="414.44" y1="363.9517" y2="356.04"/></g><!--MD5=[469537f6e6fbfad22558102ade648a2e]
18
+link StockProduct to Product--><g id="link_StockProduct_Product"><path codeLine="113" d="M100.05,159.36 C106.46,180.65 113.38,203.61 119.56,224.11 " fill="none" id="StockProduct-Product" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="119.5694" x2="127.6243" y1="224.1809" y2="230.1071"/><line style="stroke:#181818;stroke-width:1.0;" x1="119.5694" x2="116.1357" y1="224.1809" y2="233.5729"/><line style="stroke:#181818;stroke-width:1.0;" x1="119.5694" x2="121.88" y1="224.1809" y2="231.84"/><line style="stroke:#181818;stroke-width:1.0;" x1="122.8213" x2="115.1623" y1="221.1109" y2="223.4214"/><line style="stroke:#181818;stroke-width:1.0;" x1="95.0557" x2="102.7148" y1="156.6348" y2="154.3243"/><line style="stroke:#181818;stroke-width:1.0;" x1="95.9222" x2="103.5813" y1="159.507" y2="157.1964"/><line style="stroke:#181818;stroke-width:1.0;" x1="100.0406" x2="97.73" y1="159.3091" y2="151.65"/></g><!--MD5=[875e56a13740a855aedfd46d8ab63ed6]
19
+link PurchaseDetail to Purchase--><g id="link_PurchaseDetail_Purchase"><path codeLine="114" d="M260.97,168.51 C262.24,182.78 263.55,197.52 264.79,211.56 " fill="none" id="PurchaseDetail-Purchase" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="264.806" x2="271.4961" y1="211.7619" y2="219.1945"/><line style="stroke:#181818;stroke-width:1.0;" x1="264.806" x2="259.5439" y1="211.7619" y2="220.2655"/><line style="stroke:#181818;stroke-width:1.0;" x1="264.806" x2="265.52" y1="211.7619" y2="219.73"/><line style="stroke:#181818;stroke-width:1.0;" x1="268.6116" x2="260.6435" y1="209.4129" y2="210.1269"/><line style="stroke:#181818;stroke-width:1.0;" x1="256.603" x2="264.571" y1="164.531" y2="163.817"/><line style="stroke:#181818;stroke-width:1.0;" x1="256.8707" x2="264.8388" y1="167.5191" y2="166.8051"/><line style="stroke:#181818;stroke-width:1.0;" x1="260.944" x2="260.23" y1="168.1581" y2="160.19"/></g><!--MD5=[636c4cbf2bb40ce634cacaf01a62e11c]
20
+link PurchaseDetail to Product--><g id="link_PurchaseDetail_Product"><path codeLine="115" d="M206.52,167.22 C195.6,186.46 184.14,206.63 173.82,224.81 " fill="none" id="PurchaseDetail-Product" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="173.7253" x2="174.9854" y1="224.9862" y2="234.9064"/><line style="stroke:#181818;stroke-width:1.0;" x1="173.7253" x2="164.5546" y1="224.9862" y2="228.9736"/><line style="stroke:#181818;stroke-width:1.0;" x1="173.7253" x2="169.77" y1="224.9862" y2="231.94"/><line style="stroke:#181818;stroke-width:1.0;" x1="178.191" x2="171.2372" y1="225.2253" y2="221.2701"/><line style="stroke:#181818;stroke-width:1.0;" x1="205.0578" x2="212.0178" y1="161.6978" y2="165.6422"/><line style="stroke:#181818;stroke-width:1.0;" x1="203.5786" x2="210.5386" y1="164.3077" y2="168.2522"/><line style="stroke:#181818;stroke-width:1.0;" x1="206.5655" x2="210.51" y1="167.15" y2="160.19"/></g><!--MD5=[4a0d2ccf57382988e84e92c9568ebf50]
21
+link SaleDetail to Sales--><g id="link_SaleDetail_Sales"><path codeLine="116" d="M424.5,167.58 C424.5,182.5 424.5,197.96 424.5,212.61 " fill="none" id="SaleDetail-Sales" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="428.5" x2="420.5" y1="215.73" y2="215.73"/><line style="stroke:#181818;stroke-width:1.0;" x1="428.5" x2="420.5" y1="212.73" y2="212.73"/><line style="stroke:#181818;stroke-width:1.0;" x1="424.5" x2="424.5" y1="211.73" y2="219.73"/><line style="stroke:#181818;stroke-width:1.0;" x1="420.5" x2="428.5" y1="164.19" y2="164.19"/><line style="stroke:#181818;stroke-width:1.0;" x1="420.5" x2="428.5" y1="167.19" y2="167.19"/><line style="stroke:#181818;stroke-width:1.0;" x1="424.5" x2="424.5" y1="168.19" y2="160.19"/></g><!--MD5=[cc8c2cf61c441007fd82fc98c1838a15]
22
+link SaleDetail to Product--><g id="link_SaleDetail_Product"><path codeLine="117" d="M353.05,151.95 C349.23,154.77 345.37,157.48 341.5,160 C286.51,195.88 260.76,183.03 206.5,220 C199.26,224.93 192.12,230.68 185.34,236.7 " fill="none" id="SaleDetail-Product" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="185.135" x2="183.2598" y1="236.9036" y2="246.7262"/><line style="stroke:#181818;stroke-width:1.0;" x1="185.135" x2="175.1802" y1="236.9036" y2="237.8538"/><line style="stroke:#181818;stroke-width:1.0;" x1="185.135" x2="179.22" y1="236.9036" y2="242.29"/><line style="stroke:#181818;stroke-width:1.0;" x1="189.3069" x2="183.9206" y1="238.5145" y2="232.5996"/><line style="stroke:#181818;stroke-width:1.0;" x1="353.845" x2="358.686" y1="146.316" y2="152.685"/><line style="stroke:#181818;stroke-width:1.0;" x1="351.4566" x2="356.2976" y1="148.1314" y2="154.5004"/><line style="stroke:#181818;stroke-width:1.0;" x1="353.081" x2="359.45" y1="151.921" y2="147.08"/></g><!--MD5=[5fa2e163e1a5922a0d0ebcb119c05bb7]
23
+link Product to Price--><g id="link_Product_Price"><path codeLine="118" d="M135.79,351.17 C134.83,373.27 133.73,398.37 132.73,421.37 " fill="none" id="Product-Price" style="stroke:#181818;stroke-width:1.0;"/><line style="stroke:#181818;stroke-width:1.0;" x1="136.5876" x2="128.5949" y1="424.6149" y2="424.2724"/><line style="stroke:#181818;stroke-width:1.0;" x1="136.7161" x2="128.7234" y1="421.6177" y2="421.2751"/><line style="stroke:#181818;stroke-width:1.0;" x1="132.7625" x2="132.42" y1="420.4473" y2="428.44"/><line style="stroke:#181818;stroke-width:1.0;" x1="131.9243" x2="139.9162" y1="347.8862" y2="348.2457"/><line style="stroke:#181818;stroke-width:1.0;" x1="131.7894" x2="139.7813" y1="350.8831" y2="351.2427"/><line style="stroke:#181818;stroke-width:1.0;" x1="135.7404" x2="136.1" y1="352.0619" y2="344.07"/></g><!--MD5=[fd06bb28534d550caae1666c04278413]
24 24
 @startuml Database
25 25
 
26 26
 entity User {
@@ -94,7 +94,7 @@ entity StockProduct {
94 94
   * sale_number
95 95
   * amount
96 96
   __
97
-  * product_id
97
+  * product_number
98 98
 }
99 99
 
100 100
 entity Price {
@@ -102,7 +102,7 @@ entity Price {
102 102
   __
103 103
   * price
104 104
   __
105
-  * product_id
105
+  * product_number
106 106
   * customer_id
107 107
   * supplier_id
108 108
 }
@@ -114,8 +114,8 @@ entity SaleDetail {
114 114
   * ppn
115 115
   * qty
116 116
   __
117
-  * sale_id
118
-  * product_id
117
+  * sale_number
118
+  * product_number
119 119
 }
120 120
 
121 121
 entity PurchaseDetail {
@@ -125,8 +125,8 @@ entity PurchaseDetail {
125 125
   * ppn
126 126
   * qty
127 127
   __
128
-  * purchase_id
129
-  * product_id
128
+  * purchase_number
129
+  * product_number
130 130
 }
131 131
 
132 132
 User ||- -|{ Role
@@ -142,7 +142,7 @@ SaleDetail ||- -|{ Product
142 142
 Product ||- -|| Price
143 143
 @end
144 144
 
145
-PlantUML version 1.2022.0(Tue Jan 11 23:16:42 WIB 2022)
145
+PlantUML version 1.2022.5(Sat Apr 30 17:55:52 WIB 2022)
146 146
 (GPL source distribution)
147 147
 Java Runtime: OpenJDK Runtime Environment
148 148
 JVM: OpenJDK 64-Bit Server VM