Merge branch 'develop' into 'devops-staging'

Develop

See merge request empatnusabangsa/ppob/ppob-frontend!20
This commit is contained in:
ilham dwi pratama 2021-12-26 16:03:44 +00:00
commit e702d604ac
16 changed files with 283 additions and 189 deletions

View File

@ -1,5 +1,14 @@
import React, { useContext, useState } from "react"; import React, { useContext, useState } from "react";
import {Button, Form, Input, message, Modal, Select, Space, Table,} from "antd"; import {
Button,
Form,
Input,
message,
Modal,
Select,
Space,
Table,
} from "antd";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
import { useStore } from "../utils/useStore"; import { useStore } from "../utils/useStore";
@ -71,10 +80,14 @@ export const CategoryComponent = observer((props) => {
try { try {
const response = await store.category.update(idData, data); const response = await store.category.update(idData, data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Ubah Kategori") ? message.success(
: message.error("Gagal Ubah Kategori"); response?.body?.message || "Berhasil Ubah Data Kategori"
)
: message.error(
response?.body?.message || "Gagal Ubah Data Kategori"
);
} catch (e) { } catch (e) {
message.error("Gagal Ubah Data Kategori"); message.error(e.response?.body?.message || "Gagal Ubah Data Kategori");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.category.visibleModalCategory = false; store.category.visibleModalCategory = false;
@ -85,11 +98,13 @@ export const CategoryComponent = observer((props) => {
try { try {
const response = await store.category.create(data); const response = await store.category.create(data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Tambah Kategori") ? message.success(
: message.error("Gagal Tambah Kategori"); response?.body?.message || "Berhasil Tambah Kategori"
)
: message.error(response?.body?.message || "Gagal Tambah Kategori");
} catch (e) { } catch (e) {
console.log(e, "apa errornya"); console.log(e, "apa errornya");
message.error("Gagal Tambah Kategori"); message.error(e.response?.body?.message || "Gagal Tambah Kategori");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.category.visibleModalCategory = false; store.category.visibleModalCategory = false;

View File

@ -1,5 +1,5 @@
import React, { useContext, useState } from "react"; import React, { useContext, useState } from "react";
import {Button, Form, Input, message, Modal, Space, Table,} from "antd"; import { Button, Form, Input, message, Modal, Space, Table } from "antd";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
import { useStore } from "../utils/useStore"; import { useStore } from "../utils/useStore";
@ -54,10 +54,10 @@ export const CommissionComponent = observer((props) => {
try { try {
const response = await store.commission.update(idData, data); const response = await store.commission.update(idData, data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Ubah Komisi") ? message.success(response?.body?.message || "Berhasil Ubah Komisi")
: message.error("Gagal Ubah Komisi"); : message.error(response?.body?.message || "Gagal Ubah Komisi");
} catch (e) { } catch (e) {
message.error("Gagal Ubah Komisi"); message.error(e.response?.body?.message || "Gagal Ubah Komisi");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.commission.visibleModalCommission = false; store.commission.visibleModalCommission = false;

View File

@ -48,6 +48,7 @@ export const PartnerComponent = observer((props) => {
name: data.name, name: data.name,
npwp: data.npwp, npwp: data.npwp,
address: data.address, address: data.address,
code: data.code,
}); });
setIsChangePassword(false); setIsChangePassword(false);
store.partner.visibleModalPartner = true; store.partner.visibleModalPartner = true;
@ -72,6 +73,11 @@ export const PartnerComponent = observer((props) => {
dataIndex: "name", dataIndex: "name",
key: "name", key: "name",
}, },
{
title: "Kode",
dataIndex: "code",
key: "code",
},
{ {
title: "Npwp", title: "Npwp",
dataIndex: "npwp", dataIndex: "npwp",
@ -181,11 +187,13 @@ export const PartnerComponent = observer((props) => {
const response = await store.partner.create(data); const response = await store.partner.create(data);
modalLoader.setLoading(false); modalLoader.setLoading(false);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Tambah Partner") ? message.success(
: message.error("Gagal Tambah Partner"); response?.body?.message || "Berhasil Tambah Partner"
)
: message.error(response?.body?.message || "Gagal Tambah Partner");
} catch (e) { } catch (e) {
console.log(e, "apa errornya"); console.log(e, "apa errornya");
message.error("Gagal Tambah Partner"); message.error(e.response?.body?.message || "Gagal Tambah Partner");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.partner.visibleModalPartner = false; store.partner.visibleModalPartner = false;
@ -272,7 +280,7 @@ export const PartnerComponent = observer((props) => {
> >
{item?.status === true ? "Inactive" : "Active"} {item?.status === true ? "Inactive" : "Active"}
</Button> </Button>
<Button onClick={() => handleEditButton(item)}> <Button onClick={(owner,name) => handleEditButton(item)}>
Edit Edit
</Button> </Button>
{/* <Button onClick={() => handleDelete(record.id)}>Delete</Button> */} {/* <Button onClick={() => handleDelete(record.id)}>Delete</Button> */}
@ -349,6 +357,19 @@ export const PartnerComponent = observer((props) => {
<Input /> <Input />
</Form.Item> </Form.Item>
)} )}
{!idData && (
<Form.Item
name="code"
label="Kode"
rules={[
idData
? { required: false }
: { required: true, message: "Please input code partner!" },
]}
>
<Input />
</Form.Item>
)}
{!idData && ( {!idData && (
<Form.Item <Form.Item
name="owner" name="owner"
@ -356,7 +377,7 @@ export const PartnerComponent = observer((props) => {
rules={[ rules={[
idData idData
? { required: false } ? { required: false }
: { required: true, message: "Please input password owner!" }, : { required: true, message: "Please input owner name!" },
]} ]}
> >
<Input /> <Input />

View File

@ -83,7 +83,6 @@ export const ProductComponent = observer((props) => {
title: "Supplier", title: "Supplier",
dataIndex: "supplier_name", dataIndex: "supplier_name",
key: "supplier_name", key: "supplier_name",
}, },
{ {
title: "Sub Category", title: "Sub Category",
@ -159,10 +158,12 @@ export const ProductComponent = observer((props) => {
try { try {
const response = await store.product.update(idData, data); const response = await store.product.update(idData, data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Ubah Data Produk") ? message.success(
: message.error("Gagal Ubah Data Produk"); response?.body?.message || "Berhasil Ubah Data Produk"
)
: message.error(response?.body?.message || "Gagal Ubah Data Produk");
} catch (e) { } catch (e) {
message.error("Gagal Ubah Data Produk"); message.error(e.response?.body?.message || "Gagal Ubah Data Produk");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.product.visibleModalProduct = false; store.product.visibleModalProduct = false;
@ -173,11 +174,11 @@ export const ProductComponent = observer((props) => {
try { try {
const response = await store.product.create(data); const response = await store.product.create(data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Tambah Produk") ? message.success(response?.body?.message || "Berhasil Tambah Produk")
: message.error("Gagal Tambah Produk"); : message.error(response?.body?.message || "Gagal Tambah Produk");
} catch (e) { } catch (e) {
console.log(e, "apa errornya"); console.log(e, "apa errornya");
message.error("Gagal Tambah Produk"); message.error(e.response?.body?.message || "Gagal Tambah Produk");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.product.visibleModalProduct = false; store.product.visibleModalProduct = false;

View File

@ -1,5 +1,16 @@
import React, { useContext, useEffect, useState } from "react"; import React, { useContext, useEffect, useState } from "react";
import {Button, Divider, Form, Input, List, message, Modal, Select, Space, Table,} from "antd"; import {
Button,
Divider,
Form,
Input,
List,
message,
Modal,
Select,
Space,
Table,
} from "antd";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useStore } from "../utils/useStore"; import { useStore } from "../utils/useStore";
import { ModalLoaderContext } from "../utils/modal"; import { ModalLoaderContext } from "../utils/modal";
@ -11,9 +22,8 @@ export const SubcategoryComponent = observer((props) => {
const [idData, setIdData] = useState(""); const [idData, setIdData] = useState("");
const modalLoader = useContext(ModalLoaderContext); const modalLoader = useContext(ModalLoaderContext);
useEffect(() => { useEffect(() => {
getData();
getData() }, []);
}, [])
const getData = async () => { const getData = async () => {
await store.category.getData(); await store.category.getData();
await store.subcategory.getData(); await store.subcategory.getData();
@ -69,11 +79,17 @@ export const SubcategoryComponent = observer((props) => {
try { try {
const response = await store.subcategory.update(idData, data); const response = await store.subcategory.update(idData, data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Ubah Data Sub Kategori") ? message.success(
: message.error("Gagal Ubah Data Sub Kategori"); response?.body?.message || "Berhasil Ubah Data Sub Kategori"
)
: message.error(
response?.body?.message || "Gagal Ubah Data Sub Kategori"
);
//await getData(); //await getData();
} catch (e) { } catch (e) {
message.error("Gagal Ubah Data Sub Kategori"); message.error(
e.response?.body?.message || "Gagal Ubah Data Sub Kategori"
);
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.subcategory.visibleModalSubcategory = false; store.subcategory.visibleModalSubcategory = false;
@ -84,11 +100,15 @@ export const SubcategoryComponent = observer((props) => {
try { try {
const response = await store.subcategory.create(data); const response = await store.subcategory.create(data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Tambah Sub Kategori") ? message.success(
: message.error("Gagal Tambah Sub Kategori"); response?.body?.message || "Berhasil Tambah Sub Kategori"
)
: message.error(
response?.body?.message || "Gagal Tambah Sub Kategori"
);
} catch (e) { } catch (e) {
console.log(e, "apa errornya"); console.log(e, "apa errornya");
message.error("Gagal Tambah Sub Kategori"); message.error(e.response?.body?.message || "Gagal Tambah Sub Kategori");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
store.subcategory.visibleModalSubcategory = false; store.subcategory.visibleModalSubcategory = false;

View File

@ -1,5 +1,16 @@
import React, { useContext, useState } from "react"; import React, { useContext, useState } from "react";
import {Button, Divider, Form, Input, List, message, Modal, Space, Table, Tag,} from "antd"; import {
Button,
Divider,
Form,
Input,
List,
message,
Modal,
Space,
Table,
Tag,
} from "antd";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { ExclamationCircleOutlined } from "@ant-design/icons"; import { ExclamationCircleOutlined } from "@ant-design/icons";
import { useHistory } from "react-router-dom"; import { useHistory } from "react-router-dom";
@ -162,11 +173,15 @@ export const SupplierComponent = observer((props) => {
modalLoader.setLoading(true); modalLoader.setLoading(true);
const response = await store.supplier.update(idData, data); const response = await store.supplier.update(idData, data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Ubah Data Supplier") ? message.success(
: message.error("Gagal Ubah Data Supplier"); response?.body?.message || "Berhasil Ubah Data Supplier"
)
: message.error(
response?.body?.message || "Gagal Ubah Data Supplier"
);
} catch (e) { } catch (e) {
modalLoader.setLoading(false); modalLoader.setLoading(false);
message.error("Gagal Ubah Data Supplie"); message.error(e.response?.body?.message || "Gagal Ubah Data Supplie");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
@ -178,11 +193,18 @@ export const SupplierComponent = observer((props) => {
modalLoader.setLoading(true); modalLoader.setLoading(true);
const response = await store.supplier.create(data); const response = await store.supplier.create(data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Tambah Supplier Baru") ? message.success(
: message.error("Gagal Tambah Supplier Baru"); response?.body?.message || "Berhasil Tambah Supplier Baru"
)
: message.error(
response?.body?.statusCode === 406
? response?.body?.error || "Supplier Sudah Ada"
: response?.body?.message || "Gagal Tambah Supplier Baru"
//response?.body?.message || "Gagal Tambah Supplier Baru"
);
} catch (e) { } catch (e) {
console.log(e, "apa errornya"); console.log(e, "apa errornya");
message.error("Gagal Tambah Supplier Baru"); message.error(e.response?.body?.message || "Gagal Tambah Supplier");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);

View File

@ -16,11 +16,11 @@ export const TopupsaldoModal = observer((props) => {
const handleSubmitTransaction = async (data) => { const handleSubmitTransaction = async (data) => {
try { try {
modalLoader.setLoading(true); modalLoader.setLoading(true);
await store.supplier.createTransaction(data); const response = await store.supplier.createTransaction(data);
message.success("Success Top Up"); message.success(response?.body?.message || "Success Top Up");
} catch (e) { } catch (e) {
console.log(e, "apa errornya"); console.log(e, "apa errornya");
message.error("Failed Top Up"); message.error(e.response?.body?.message || "Failed Top Up");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);

View File

@ -1,5 +1,6 @@
export const appConfig = { export const appConfig = {
apiUrl: 'https://ppob-backend.k3s.bangun-kreatif.com/v1' // apiUrl: 'https://ppob-backend.k3s.bangun-kreatif.com/v1'
apiUrl: 'http://localhost:3222/v1'
// apiUrl: 'http://localhost:3222/v1' // apiUrl: 'http://localhost:3222/v1'
}; };

View File

@ -48,7 +48,7 @@ export const Login = observer(() => {
color: "#413d3e", color: "#413d3e",
}} }}
> >
Boilerplate PPOB
</Typography.Paragraph> </Typography.Paragraph>
</div> </div>
<Card <Card

View File

@ -213,12 +213,16 @@ export const Membership = observer(() => {
try { try {
const response = await store.membership.create(data); const response = await store.membership.create(data);
response?.body?.statusCode === 201 || response?.body?.statusCode === 200 response?.body?.statusCode === 201 || response?.body?.statusCode === 200
? message.success("Berhasil Tambah Member Baru") ? message.success(
: message.error("Gagal Tambah Member Baru"); response?.body?.message || "Berhasil Tambah Member Baru"
)
: message.error(
response?.body?.message || "Gagal Tambah Member Baru"
);
await getData(); await getData();
} catch (e) { } catch (e) {
console.log(e, "apa errornya"); console.log(e, "apa errornya");
message.error("Gagal Tambah Member Baru"); message.error(e.response?.body?.message || "Gagal Tambah Member Baru");
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
setConfirmLoading(false); setConfirmLoading(false);

View File

@ -176,13 +176,19 @@ export const Payback = observer(() => {
try { try {
const response = await store.payback.confirmPayback(id, type); const response = await store.payback.confirmPayback(id, type);
if (response.body.status !== 201) { if (response.body.status !== 201) {
message.error(`Failed ${capitalize(type)} Payback`); message.error(
response?.body?.message || `Failed ${capitalize(type)} Payback`
);
} else { } else {
message.success(`Success ${capitalize(type)} Payback`); message.success(
response?.body?.message || `Success ${capitalize(type)} Payback`
);
} }
} catch (e) { } catch (e) {
console.error(e, "apa errornya"); console.error(e, "apa errornya");
message.error("Failed Handler Action Payback"); message.error(
e.response?.body?.message || "Failed Handler Action Payback"
);
} }
modalLoader.setLoading(false); modalLoader.setLoading(false);
}; };

View File

@ -1,5 +1,5 @@
import React, { useContext, useState } from "react"; import React, { useContext, useState } from "react";
import {Form, InputNumber, message, Modal, Upload,} from "antd"; import { Form, InputNumber, message, Modal, Upload } from "antd";
import { useStore } from "../../utils/useStore"; import { useStore } from "../../utils/useStore";
import { LoadingOutlined, PlusOutlined } from "@ant-design/icons"; import { LoadingOutlined, PlusOutlined } from "@ant-design/icons";
import { ModalLoaderContext } from "../../utils/modal"; import { ModalLoaderContext } from "../../utils/modal";
@ -34,20 +34,22 @@ export const PaybackModal = ({initialData}) => {
const res = await store.payback.uploadImages(file); const res = await store.payback.uploadImages(file);
setImage(`${appConfig.apiUrl}/config/image/${res.body.filename}`); setImage(`${appConfig.apiUrl}/config/image/${res.body.filename}`);
setResponseFilename(res.body.filename); setResponseFilename(res.body.filename);
setFileList([{ setFileList([
uid: '-1', {
uid: "-1",
name: res.body.filename, name: res.body.filename,
status: 'done', status: "done",
url: `${appConfig.apiUrl}/config/image/${res.body.filename}`, url: `${appConfig.apiUrl}/config/image/${res.body.filename}`,
}]); },
]);
setLoading(false); setLoading(false);
}; };
const handleChange = (info) => { const handleChange = (info) => {
if (info.file.status === 'uploading') { if (info.file.status === "uploading") {
setLoading(true); setLoading(true);
} else { } else {
setLoading(false) setLoading(false);
} }
}; };
@ -64,10 +66,10 @@ export const PaybackModal = ({initialData}) => {
const request = { const request = {
...data, ...data,
destination: store.authentication.profileData.superior?.id, destination: store.authentication.profileData.superior?.id,
image_prove: responseFilename image_prove: responseFilename,
} };
await store.payback.create(request); const response = await store.payback.create(request);
message.success("Success Add Created"); message.success(response?.body?.message || "Success Add Created");
} catch (e) { } catch (e) {
if (e.response?.body?.message) { if (e.response?.body?.message) {
message.error(e.response.body.message); message.error(e.response.body.message);
@ -91,7 +93,7 @@ export const PaybackModal = ({initialData}) => {
setPreviewImage(""); setPreviewImage("");
setResponseFilename(""); setResponseFilename("");
store.payback.visibleModalPayback = false; store.payback.visibleModalPayback = false;
} };
return ( return (
<Modal <Modal
@ -118,10 +120,7 @@ export const PaybackModal = ({initialData}) => {
name="form_in_modal" name="form_in_modal"
initialValues={initialData} initialValues={initialData}
> >
<Form.Item <Form.Item label="Upload Picture" name="image_prove">
label="Upload Picture"
name="image_prove"
>
<div> <div>
<Upload <Upload
listType="picture-card" listType="picture-card"
@ -134,18 +133,19 @@ export const PaybackModal = ({initialData}) => {
beforeUpload={(file) => beforeUpload(file)} beforeUpload={(file) => beforeUpload(file)}
customRequest={(args) => uploadHandler(args)} customRequest={(args) => uploadHandler(args)}
onRemove={(file) => { onRemove={(file) => {
setImage(''); setImage("");
setLoading(false); setLoading(false);
setFileList([]); setFileList([]);
}} }}
> >
{image === "" ? uploadButton : null} {image === "" ? uploadButton : null}
</Upload> </Upload>
<h5 style={{ <h5
style={{
marginTop: 12, marginTop: 12,
color: "rgba(0, 0, 0, 0.45)", color: "rgba(0, 0, 0, 0.45)",
}}> }}
>
Max size of file 2 MB Max size of file 2 MB
</h5> </h5>
</div> </div>
@ -157,8 +157,10 @@ export const PaybackModal = ({initialData}) => {
> >
<InputNumber <InputNumber
style={{ width: "100%" }} style={{ width: "100%" }}
formatter={value => `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')} formatter={(value) =>
parser={value => value.replace(/\Rp.\s?|(,*)/g, '')} `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",")
}
parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")}
/> />
</Form.Item> </Form.Item>
</Form> </Form>

View File

@ -50,9 +50,9 @@ export const Product = observer(() => {
productCode: productCode, productCode: productCode,
}); });
if (response.status === 201) { if (response.status === 201) {
message.success("Berhasil Beli Produk"); message.success(response?.body?.message || "Berhasil Beli Produk");
} else { } else {
message.error("Gagal Beli Produk", 3); message.error(response?.body?.message || "Gagal Beli Produk", 3);
} }
} catch (e) { } catch (e) {
if (e.response?.body?.message) { if (e.response?.body?.message) {
@ -123,7 +123,7 @@ export const Product = observer(() => {
marginLeft: 10, marginLeft: 10,
borderColor: "salmon", borderColor: "salmon",
height: 100, height: 100,
marginBottom: 10, marginBottom: 10
}} }}
> >
<span style={{color: "black"}}>{item.product_name}</span> <span style={{color: "black"}}>{item.product_name}</span>

View File

@ -22,6 +22,7 @@ export class Category {
async getData() { async getData() {
try { try {
const response = await http.get(`/product/categories?page=${this.page}&pageSize=${this.pageSize}`); const response = await http.get(`/product/categories?page=${this.page}&pageSize=${this.pageSize}`);
console.log(response)
this.data = response.body.data.map((item, idx) => { this.data = response.body.data.map((item, idx) => {
item.key = idx; item.key = idx;
return item return item

View File

@ -38,7 +38,7 @@ export class Product {
async getData() { async getData() {
try { try {
const response = await http.get(`/product/all?supplier=${this.filterSupplier}&sub-category=${this.filterSubCategory}&page=${this.page}&pageSize=${this.pageSize}`); const response = await http.get(`/product/all?supplier=${this.filterSupplier}&sub-category=${this.filterSubCategory}&page=${this.page}&pageSize=${this.pageSize}`);
console.log(response) //console.log(response)
this.data = response.body.data.map((item, idx) => { this.data = response.body.data.map((item, idx) => {
item.key = idx; item.key = idx;
return item return item

View File

@ -29,6 +29,7 @@ export class Supplier {
async getData() { async getData() {
try { try {
const response = await http.get(`/users/supplier?page=${this.page}&pageSize=${this.pageSize}`); const response = await http.get(`/users/supplier?page=${this.page}&pageSize=${this.pageSize}`);
//console.log(response)
this.data = response.body.data ?? [] this.data = response.body.data ?? []
this.total_data = response.body.count ?? 0 this.total_data = response.body.count ?? 0
} catch (e) { } catch (e) {