Browse Source

Merge branch 'general' of https://git.oslog.id/ordo/adw-frontend

pull/2/head
root 1 year ago
parent
commit
92dd8fe37f
  1. 14
      src/views/Master/MasterMenu/DialogForm.js
  2. 21
      src/views/Master/MasterMenu/index.js
  3. 25
      src/views/Master/MasterRoles/DialogForm.js
  4. 17
      src/views/Master/MasterRoles/index.js
  5. 7
      src/views/Master/ProjectPhase/DialogForm.js
  6. 8
      src/views/Master/ProjectPhase/index.js
  7. 12
      src/views/Master/RoleProject/DialogForm.js
  8. 12
      src/views/Master/RoleProject/index.js
  9. 29
      src/views/Pages/Login/Login.js
  10. 51
      src/views/SimproV2/Divisi/index.js
  11. 7
      src/views/SimproV2/ProjectType/DialogForm.js
  12. 7
      src/views/SimproV2/ProjectType/index.js
  13. 27
      src/views/SimproV2/ResourceWorker/DialogForm.js
  14. 10
      src/views/SimproV2/ResourceWorker/index.js
  15. 7
      src/views/SimproV2/Satuan/DialogForm.js
  16. 8
      src/views/SimproV2/Satuan/index.js

14
src/views/Master/MasterMenu/DialogForm.js

@ -7,7 +7,7 @@ import 'antd/dist/antd.css';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
const { Option } = Select const { Option } = Select
const company_id = window.localStorage.getItem('company_id');
const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit, dataMenu }) => { const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit, dataMenu }) => {
const [id, setId] = useState(0) const [id, setId] = useState(0)
const [name, setName] = useState('') const [name, setName] = useState('')
@ -68,7 +68,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
url, url,
sequence: parseInt(sequence), sequence: parseInt(sequence),
icon, icon,
alias_name: aliasName alias_name: aliasName,
company_id
} }
if (parentId && parentId > 0) { if (parentId && parentId > 0) {
@ -83,7 +84,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
url, url,
sequence: parseInt(sequence), sequence: parseInt(sequence),
icon, icon,
alias_name: aliasName alias_name: aliasName,
company_id
} }
if (parentId && parentId > 0) { if (parentId && parentId > 0) {
@ -133,9 +135,9 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
return ( return (
<Form> <Form>
<Row> <Row>
<Col md={12}> <Col md={12}>
<span style={{ color: "red" }}>*</span> Wajib diisi. <span style={{ color: "red" }}>*</span> Wajib diisi.
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col> <Col>

21
src/views/Master/MasterMenu/index.js

@ -10,7 +10,7 @@ import { NotificationContainer, NotificationManager } from 'react-notifications'
import { Pagination, Tooltip, Table } from 'antd'; import { Pagination, Tooltip, Table } from 'antd';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = window.localStorage.getItem('company_id');
const column = [ const column = [
{ name: "Nama" }, { name: "Nama" },
{ name: "Url" }, { name: "Url" },
@ -68,20 +68,20 @@ const Index = ({ params }) => {
const getDataAllMenu = async () => { const getDataAllMenu = async () => {
const result = await axios const result = await axios
.get(MENU_LIST, config) .get(MENU_LIST, config)
.then(res => res) .then(res => res)
.catch((error) => error.response); .catch((error) => error.response);
if (result && result.data && result.data.code == 200) { if (result && result.data && result.data.code == 200) {
let arr = [] let arr = []
let dataRes = result.data.data; let dataRes = result.data.data;
for (const v in dataRes) { for (const v in dataRes) {
arr.push(dataRes[v]) arr.push(dataRes[v])
} }
setAllDataMenu(arr); setAllDataMenu(arr);
}else { } else {
NotificationManager.error('Gagal Mengambil Data!!', 'Failed'); NotificationManager.error('Gagal Mengambil Data!!', 'Failed');
} }
} }
const getDataMenu = async () => { const getDataMenu = async () => {
@ -94,7 +94,8 @@ const Index = ({ params }) => {
const payload = { const payload = {
"paging": { "start": start, "length": rowsPerPage }, "paging": { "start": start, "length": rowsPerPage },
"columns": [ "columns": [
{ "name": "name", "logic_operator": "ilike", "value": search, "operator": "AND" } { "name": "name", "logic_operator": "ilike", "value": search, "operator": "AND" },
{ "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" },
], ],
"joins": [{ "joins": [{
"name": "m_menu", "name": "m_menu",

25
src/views/Master/MasterRoles/DialogForm.js

@ -9,6 +9,7 @@ import { MENU_SEARCH } from '../../../const/ApiConst.js';
const { Option } = Select const { Option } = Select
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = localStorage.getItem("company_id")
const config = { const config = {
headers: headers:
{ {
@ -27,7 +28,8 @@ class DialogForm extends Component {
openDialog: false, openDialog: false,
isParentClick: false, isParentClick: false,
menu: [], menu: [],
selectedMenu: null selectedMenu: null,
company_id
} }
} }
@ -44,7 +46,8 @@ class DialogForm extends Component {
id: dataEdit.id, id: dataEdit.id,
name: dataEdit.name, name: dataEdit.name,
description: dataEdit.description, description: dataEdit.description,
selectedMenu: dataEdit.default_page selectedMenu: dataEdit.default_page,
company_id
}) })
} else { } else {
this.setState({ this.setState({
@ -96,26 +99,30 @@ class DialogForm extends Component {
id, id,
name, name,
description, description,
selectedMenu selectedMenu,
company_id
} = this.state } = this.state
let data = ''; let data = '';
const err = this.validation(); const err = this.validation();
if(!err) { if (!err) {
if (this.props.typeDialog === "Save") { if (this.props.typeDialog === "Save") {
data = { data = {
id, id,
name, name,
description, description,
selectedMenu selectedMenu,
company_id
} }
// console.log('data', data);
this.props.closeDialog('save', data); this.props.closeDialog('save', data);
} else { } else {
data = { data = {
id, id,
name, name,
description, description,
selectedMenu selectedMenu,
company_id
} }
this.props.closeDialog('edit', data); this.props.closeDialog('edit', data);
} }
@ -144,13 +151,13 @@ class DialogForm extends Component {
<Label>{this.props.t('nameRole')}<span style={{ color: "red" }}>*</span></Label> <Label>{this.props.t('nameRole')}<span style={{ color: "red" }}>*</span></Label>
<Input type="text" value={this.state.name} onChange={(e) => this.setState({ name: e.target.value })} placeholder={this.props.t('inputName')} /> <Input type="text" value={this.state.name} onChange={(e) => this.setState({ name: e.target.value })} placeholder={this.props.t('inputName')} />
</FormGroup> </FormGroup>
</Col> </Col>
<Col md={12}> <Col md={12}>
<FormGroup> <FormGroup>
<Label>{this.props.t('description')}<span style={{ color: "red" }}>*</span></Label> <Label>{this.props.t('description')}<span style={{ color: "red" }}>*</span></Label>
<Input type="text" value={this.state.description} onChange={(e) => this.setState({ description: e.target.value })} placeholder={this.props.t('inputDescription')} /> <Input type="text" value={this.state.description} onChange={(e) => this.setState({ description: e.target.value })} placeholder={this.props.t('inputDescription')} />
</FormGroup> </FormGroup>
</Col> </Col>
<Col md={12}> <Col md={12}>
<FormGroup> <FormGroup>
<Label>Default Page<span style={{ color: "red" }}>*</span></Label> <Label>Default Page<span style={{ color: "red" }}>*</span></Label>
@ -165,7 +172,7 @@ class DialogForm extends Component {
))} ))}
</Input> </Input>
</FormGroup> </FormGroup>
</Col> </Col>
</Row> </Row>
</Form> </Form>
) )

17
src/views/Master/MasterRoles/index.js

@ -12,6 +12,8 @@ import { ROLE_ADD, ROLE_SEARCH, ROLE_EDIT, ROLE_DELETE, ROLEMENU_ADD, ROLEMENU_S
import { withTranslation } from 'react-i18next'; import { withTranslation } from 'react-i18next';
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = window.localStorage.getItem('company_id');
const BASE_URL = "http://siopas.co.id/custom-php/api/geohr/"; const BASE_URL = "http://siopas.co.id/custom-php/api/geohr/";
@ -55,6 +57,7 @@ class index extends Component {
tooltipTambah: false, tooltipTambah: false,
totalPage: 0, totalPage: 0,
typeDialog: 'Save', typeDialog: 'Save',
company_id: company_id
} }
this.columns = [ this.columns = [
@ -108,7 +111,8 @@ class index extends Component {
const formData = { const formData = {
"paging": { "start": start, "length": this.state.rowsPerPage }, "paging": { "start": start, "length": this.state.rowsPerPage },
"columns": [ "columns": [
{ "name": "name", "logic_operator": "ilike", "value": this.state.search, "operator": "AND" } { "name": "name", "logic_operator": "ilike", "value": this.state.search, "operator": "AND" },
{ "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" }
], ],
"joins": [], "joins": [],
"orders": { "columns": ["id"], "ascending": false } "orders": { "columns": ["id"], "ascending": false }
@ -165,9 +169,9 @@ class index extends Component {
.catch((error) => error.response); .catch((error) => error.response);
if (result && result.data && result.data.code === 200) { if (result && result.data && result.data.code === 200) {
await this.deleteCurrentRoleMenu(idDelete); await this.deleteCurrentRoleMenu(idDelete);
this.getDataRoles(); this.getDataRoles();
this.setState({ idDelete: 0, alertDelete: false }) this.setState({ idDelete: 0, alertDelete: false })
NotificationManager.success(`Data role berhasil dihapus`, 'Success!!'); NotificationManager.success(`Data role berhasil dihapus`, 'Success!!');
} else { } else {
this.setState({ idDelete: 0, alertDelete: false }) this.setState({ idDelete: 0, alertDelete: false })
@ -180,7 +184,8 @@ class index extends Component {
const formData = { const formData = {
name: data.name, name: data.name,
description: data.description, description: data.description,
default_page : data.selectedMenu default_page: data.selectedMenu,
company_id: company_id
} }
const result = await axios.post(ROLE_ADD, formData, config) const result = await axios.post(ROLE_ADD, formData, config)
@ -200,7 +205,7 @@ class index extends Component {
const formData = { const formData = {
name: data.name, name: data.name,
description: data.description, description: data.description,
default_page: data.selectedMenu default_page: data.selectedMenu
} }
const url = ROLE_EDIT(data.id) const url = ROLE_EDIT(data.id)
const result = await axios.put(url, formData, config) const result = await axios.put(url, formData, config)

7
src/views/Master/ProjectPhase/DialogForm.js

@ -8,6 +8,7 @@ import InputColor from "./InputColor";
import "./styles.css"; import "./styles.css";
import "rc-color-picker/assets/index.css"; import "rc-color-picker/assets/index.css";
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
const company_id = localStorage.getItem("company_id")
const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit }) => { const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit }) => {
const [id, setId] = useState(0) const [id, setId] = useState(0)
const [projectType, setProjectType] = useState('') const [projectType, setProjectType] = useState('')
@ -31,14 +32,16 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
if (typeDialog === "Save") { if (typeDialog === "Save") {
data = { data = {
name: projectType, name: projectType,
color color,
company_id
} }
closeDialog('save', data); closeDialog('save', data);
} else { } else {
data = { data = {
id, id,
name: projectType, name: projectType,
color color,
company_id
} }
closeDialog('edit', data); closeDialog('edit', data);
} }

8
src/views/Master/ProjectPhase/index.js

@ -10,6 +10,7 @@ import { PROJECT_PHASE_ADD, PROJECT_PHASE_EDIT, PROJECT_PHASE_DELETE, PROJECT_PH
import { Pagination, Button, Tooltip, Table } from 'antd'; import { Pagination, Button, Tooltip, Table } from 'antd';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = window.localStorage.getItem('company_id');
const config = { const config = {
headers: headers:
{ {
@ -20,6 +21,7 @@ const config = {
const ProjectPhase = ({ params }) => { const ProjectPhase = ({ params }) => {
const token = localStorage.getItem("token") const token = localStorage.getItem("token")
const company_id = localStorage.getItem("company_id")
/*const HEADER = { /*const HEADER = {
headers: { headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
@ -74,6 +76,12 @@ const ProjectPhase = ({ params }) => {
"logic_operator": "ilike", "logic_operator": "ilike",
"value": search, "value": search,
"operator": "AND" "operator": "AND"
},
{
"name": "company_id",
"logic_operator": "=",
"value": company_id,
"operator": "AND"
} }
], ],
"orders": { "orders": {

12
src/views/Master/RoleProject/DialogForm.js

@ -3,7 +3,7 @@ import { Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
import { Button, Form, FormGroup, Label, Input } from 'reactstrap'; import { Button, Form, FormGroup, Label, Input } from 'reactstrap';
import 'antd/dist/antd.css'; import 'antd/dist/antd.css';
import { withTranslation } from 'react-i18next'; import { withTranslation } from 'react-i18next';
const company_id = localStorage.getItem("company_id")
class DialogForm extends Component { class DialogForm extends Component {
constructor(props) { constructor(props) {
super(props) super(props)
@ -13,6 +13,7 @@ class DialogForm extends Component {
description: "", description: "",
openDialog: false, openDialog: false,
isParentClick: false, isParentClick: false,
company_id
} }
} }
@ -27,7 +28,8 @@ class DialogForm extends Component {
this.setState({ this.setState({
id: dataEdit.id, id: dataEdit.id,
name: dataEdit.name, name: dataEdit.name,
description: dataEdit.description description: dataEdit.description,
company_id
}) })
} else { } else {
this.setState({ this.setState({
@ -58,14 +60,16 @@ class DialogForm extends Component {
data = { data = {
id, id,
name, name,
description description,
company_id
} }
this.props.closeDialog('save', data); this.props.closeDialog('save', data);
} else { } else {
data = { data = {
id, id,
name, name,
description description,
company_id
} }
this.props.closeDialog('edit', data); this.props.closeDialog('edit', data);
} }

12
src/views/Master/RoleProject/index.js

@ -10,7 +10,7 @@ import { PROJECT_ROLE_ADD, PROJECT_ROLE_SEARCH, PROJECT_ROLE_EDIT, PROJECT_ROLE_
import { Pagination, Tooltip, Table } from 'antd'; import { Pagination, Tooltip, Table } from 'antd';
import { withTranslation } from 'react-i18next'; import { withTranslation } from 'react-i18next';
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = localStorage.getItem("company_id")
const BASE_URL = "http://siopas.co.id/custom-php/api/geohr/"; const BASE_URL = "http://siopas.co.id/custom-php/api/geohr/";
const config = { const config = {
@ -60,6 +60,7 @@ class index extends Component {
tooltipTambah: false, tooltipTambah: false,
totalPage: 0, totalPage: 0,
typeDialog: 'Save', typeDialog: 'Save',
company_id
} }
this.columns = [ this.columns = [
{ {
@ -108,7 +109,8 @@ class index extends Component {
const formData = { const formData = {
"paging": { "start": start, "length": this.state.rowsPerPage }, "paging": { "start": start, "length": this.state.rowsPerPage },
"columns": [ "columns": [
{ "name": "name", "logic_operator": "ilike", "value": this.state.search, "operator": "AND" } { "name": "name", "logic_operator": "ilike", "value": this.state.search, "operator": "AND" },
{ "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" }
], ],
"joins": [], "joins": [],
"orders": { "columns": ["id"], "ascending": false } "orders": { "columns": ["id"], "ascending": false }
@ -178,7 +180,8 @@ class index extends Component {
const formData = { const formData = {
name: data.name, name: data.name,
description: data.description description: data.description,
company_id
} }
const result = await axios.post(PROJECT_ROLE_ADD, formData, config) const result = await axios.post(PROJECT_ROLE_ADD, formData, config)
@ -198,7 +201,8 @@ class index extends Component {
const formData = { const formData = {
name: data.name, name: data.name,
description: data.description description: data.description,
company_id
} }
const url = PROJECT_ROLE_EDIT(data.id) const url = PROJECT_ROLE_EDIT(data.id)
const result = await axios.put(url, formData, config) const result = await axios.put(url, formData, config)

29
src/views/Pages/Login/Login.js

@ -66,7 +66,7 @@ class Login extends Component {
}, },
loader: false, loader: false,
type: 'password', type: 'password',
defaultPage: '' defaultPage: ''
} }
this.handleChange = this.handleChange.bind(this); this.handleChange = this.handleChange.bind(this);
this.showHide = this.showHide.bind(this); this.showHide = this.showHide.bind(this);
@ -98,8 +98,8 @@ class Login extends Component {
}); });
} }
getDataRole = async (token, role_id) => { getDataRole = async (token, role_id) => {
const config = { const config = {
headers: headers:
{ {
Authorization: `Bearer ${token}`, Authorization: `Bearer ${token}`,
@ -113,12 +113,12 @@ class Login extends Component {
{ "name": "id", "logic_operator": "=", "value": `${role_id}`, "operator": "AND" } { "name": "id", "logic_operator": "=", "value": `${role_id}`, "operator": "AND" }
], ],
"joins": [ "joins": [
{ {
"name": "m_menu", "name": "m_menu",
"column_join": "default_page", "column_join": "default_page",
"column_results": ["id", "name", "url"], "column_results": ["id", "name", "url"],
}, },
], ],
"orders": { "columns": ["id"], "ascending": false } "orders": { "columns": ["id"], "ascending": false }
} }
@ -129,9 +129,9 @@ class Login extends Component {
if (result && result.data && result.data.code == 200) { if (result && result.data && result.data.code == 200) {
let resData = result.data.data let resData = result.data.data
this.setState({defaultPage: resData[0].join_first_url}) this.setState({ defaultPage: resData[0].join_first_url })
} }
} }
getDataMenu = async (token, role_id) => { getDataMenu = async (token, role_id) => {
const config = { const config = {
@ -159,9 +159,9 @@ class Login extends Component {
else { else {
this.props.history.push("/dashboard"); this.props.history.push("/dashboard");
} }
if (this.state.defaultPage) { if (this.state.defaultPage) {
this.props.history.push(this.state.defaultPage); this.props.history.push(this.state.defaultPage);
} else if (role_id == 28) { } else if (role_id == 28) {
this.props.history.push("/dashboard-customer/58/63"); this.props.history.push("/dashboard-customer/58/63");
} }
else { else {
@ -208,13 +208,14 @@ class Login extends Component {
if (doLogin && doLogin.data && doLogin.data.code === 200) { if (doLogin && doLogin.data && doLogin.data.code === 200) {
const { access_token, data_user } = doLogin.data.data const { access_token, data_user } = doLogin.data.data
this.getDataRole(access_token, data_user.role_id) this.getDataRole(access_token, data_user.role_id)
this.getDataMenu(access_token, data_user.role_id) this.getDataMenu(access_token, data_user.role_id)
window.localStorage.setItem('isLogin', true); window.localStorage.setItem('isLogin', true);
window.localStorage.setItem('token', access_token); window.localStorage.setItem('token', access_token);
window.localStorage.setItem('user_id', data_user.id); window.localStorage.setItem('user_id', data_user.id);
window.localStorage.setItem('user_name', data_user.name); window.localStorage.setItem('user_name', data_user.name);
window.localStorage.setItem('role_id', data_user.role_id); window.localStorage.setItem('role_id', data_user.role_id);
window.localStorage.setItem('company_id', data_user.company_id);
} else { } else {
console.log("kode : ", doLogin.data.code); console.log("kode : ", doLogin.data.code);
// NotificationManager.error('Cek username atau password anda!', 'Gagal Login!'); // NotificationManager.error('Cek username atau password anda!', 'Gagal Login!');

51
src/views/SimproV2/Divisi/index.js

@ -12,6 +12,7 @@ import { useTranslation } from 'react-i18next';
const url = ""; const url = "";
const proyek_id = localStorage.getItem('proyek_id'); const proyek_id = localStorage.getItem('proyek_id');
const role_id = localStorage.getItem('role_id'); const role_id = localStorage.getItem('role_id');
const company_id = localStorage.getItem("company_id")
const format = "DD-MM-YYYY"; const format = "DD-MM-YYYY";
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const config = { const config = {
@ -55,7 +56,7 @@ const ProjectType = ({ params }) => {
const { t } = useTranslation() const { t } = useTranslation()
useEffect(() => { useEffect(() => {
getDataProjectType(); getDataProjectType();
}, [currentPage, rowsPerPage, search]) }, [currentPage, rowsPerPage, search])
useEffect(() => { useEffect(() => {
@ -73,9 +74,9 @@ const ProjectType = ({ params }) => {
if (listDivions && listDivions.data && listDivions.data.code == 200) { if (listDivions && listDivions.data && listDivions.data.code == 200) {
let arr = [] let arr = []
let dataRes = listDivions.data.data; let dataRes = listDivions.data.data;
const filteredData = dataRes.filter(item => item.parent === null); const filteredData = dataRes.filter(item => item.parent === null);
for (const v in filteredData) { for (const v in filteredData) {
arr.push(filteredData[v]) arr.push(filteredData[v])
} }
setDataDivisions(arr); setDataDivisions(arr);
@ -86,8 +87,8 @@ const ProjectType = ({ params }) => {
const getDataProjectType = async () => { const getDataProjectType = async () => {
let start = 0; let start = 0;
if (currentPage !== 1 && currentPage > 1) { if (currentPage !== 1 && currentPage > 1) {
start = currentPage * rowsPerPage - rowsPerPage; start = currentPage * rowsPerPage - rowsPerPage;
} }
const payload = { const payload = {
columns: [ columns: [
{ {
@ -95,6 +96,12 @@ const ProjectType = ({ params }) => {
logic_operator: "ilike", logic_operator: "ilike",
value: search, value: search,
operator: "AND" operator: "AND"
},
{
name: "company_id",
logic_operator: "=",
value: company_id,
operator: "AND"
} }
], ],
"orders": { "orders": {
@ -114,9 +121,9 @@ const ProjectType = ({ params }) => {
.catch((error) => error.response); .catch((error) => error.response);
if (result && result.data && result.data.code == 200) { if (result && result.data && result.data.code == 200) {
let dataRes = result.data.data || []; let dataRes = result.data.data || [];
setDatatable(dataRes); setDatatable(dataRes);
setTotalPage(result.data.totalRecord); setTotalPage(result.data.totalRecord);
} else { } else {
NotificationManager.error('Gagal Mengambil Data!!', 'Failed'); NotificationManager.error('Gagal Mengambil Data!!', 'Failed');
} }
@ -186,8 +193,8 @@ const ProjectType = ({ params }) => {
}; };
const handleOpenDialog = (type) => { const handleOpenDialog = (type) => {
setOpenDialog(true) setOpenDialog(true)
getListDivision(); getListDivision();
setTypeDialog(type) setTypeDialog(type)
} }
@ -277,7 +284,7 @@ const ProjectType = ({ params }) => {
if (dataTable.length === 0) { if (dataTable.length === 0) {
return ( return (
<tr> <tr>
<td align="center" colSpan="3">{t('noData')}</td> <td align="center" colSpan="4">{t('noData')}</td>
</tr> </tr>
) )
} }
@ -352,16 +359,16 @@ const ProjectType = ({ params }) => {
</Tooltip> </Tooltip>
</td> </td>
<td>{n.name}</td> <td>{n.name}</td>
<td>{n.description ?? '-'}</td> <td>{n.description ?? '-'}</td>
{n.color != null ? ( {n.color != null ? (
<td> <td>
<Tooltip title={n.color}> <Tooltip title={n.color}>
<span className="fa fa-square" style={{ color: n.color }}></span> <span className="fa fa-square" style={{ color: n.color }}></span>
</Tooltip> </Tooltip>
</td> </td>
): ( ) : (
<td><small style={{ color:"grey",fontStyle:"italic" }}>No color set</small></td> <td><small style={{ color: "grey", fontStyle: "italic" }}>No color set</small></td>
)} )}
</tr> </tr>
) )
})} })}

7
src/views/SimproV2/ProjectType/DialogForm.js

@ -9,6 +9,7 @@ import moment from 'moment';
import 'antd/dist/antd.css'; import 'antd/dist/antd.css';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
const { Option } = Select const { Option } = Select
const company_id = window.localStorage.getItem('company_id');
const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit }) => { const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit }) => {
const [id, setId] = useState(0) const [id, setId] = useState(0)
@ -39,7 +40,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
if (typeDialog === "Save") { if (typeDialog === "Save") {
data = { data = {
name: projectType, name: projectType,
description description,
company_id
} }
closeDialog('save', data); closeDialog('save', data);
@ -47,7 +49,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
data = { data = {
id, id,
name: projectType, name: projectType,
description description,
company_id
} }
closeDialog('edit', data); closeDialog('edit', data);
} }

7
src/views/SimproV2/ProjectType/index.js

@ -16,6 +16,7 @@ const proyek_id = localStorage.getItem('proyek_id');
const role_id = localStorage.getItem('role_id'); const role_id = localStorage.getItem('role_id');
const format = "DD-MM-YYYY"; const format = "DD-MM-YYYY";
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = window.localStorage.getItem('company_id');
const config = { const config = {
headers: headers:
{ {
@ -81,6 +82,12 @@ const ProjectType = ({ params }) => {
"logic_operator": "like", "logic_operator": "like",
"value": search, "value": search,
"operator": "AND" "operator": "AND"
},
{
"name": "company_id",
"logic_operator": "like",
"value": company_id,
"operator": "AND"
} }
], ],
"orders": { "orders": {

27
src/views/SimproV2/ResourceWorker/DialogForm.js

@ -12,6 +12,7 @@ import { useTranslation } from 'react-i18next';
const { Option } = Select const { Option } = Select
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = localStorage.getItem("company_id")
const config = { const config = {
headers: headers:
{ {
@ -117,7 +118,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
divisi_id: divisionId, divisi_id: divisionId,
address, address,
status_resource: statusResource, status_resource: statusResource,
status_boundary: statusRestriction status_boundary: statusRestriction,
company_id: company_id
} }
console.log(data) console.log(data)
@ -165,7 +167,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
divisi_id: divisionId, divisi_id: divisionId,
address, address,
status_resource: statusResource, status_resource: statusResource,
status_boundary: statusRestriction status_boundary: statusRestriction,
company_id: company_id
} }
if (birthDate && birthDate != "") { if (birthDate && birthDate != "") {
@ -254,11 +257,11 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
<FormGroup> <FormGroup>
<Label className="capitalize">Email</Label> <Label className="capitalize">Email</Label>
<Input type="email" value={email} onChange={(e) => setEmail(e.target.value)} placeholder={t('inputEmail')} <Input type="email" value={email} onChange={(e) => setEmail(e.target.value)} placeholder={t('inputEmail')}
onBlur={(e) => { onBlur={(e) => {
if (!isValidEmail(e.target.value)) { if (!isValidEmail(e.target.value)) {
alert("Masukkan email yang valid."); alert("Masukkan email yang valid.");
} }
}} }}
/> />
</FormGroup> </FormGroup>
</Col> </Col>
@ -341,11 +344,11 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
<FormGroup> <FormGroup>
<Label className="capitalize">Email</Label> <Label className="capitalize">Email</Label>
<Input type="email" defaultValue={""} value={email} onChange={(e) => setEmail(e.target.value)} placeholder={`Email...`} <Input type="email" defaultValue={""} value={email} onChange={(e) => setEmail(e.target.value)} placeholder={`Email...`}
onBlur={(e) => { onBlur={(e) => {
if (!isValidEmail(e.target.value)) { if (!isValidEmail(e.target.value)) {
alert("Masukkan email yang valid."); alert("Masukkan email yang valid.");
} }
}} }}
/> />
</FormGroup> </FormGroup>
</Col> </Col>

10
src/views/SimproV2/ResourceWorker/index.js

@ -28,6 +28,7 @@ const config = {
const ResourceWorker = ({ params }) => { const ResourceWorker = ({ params }) => {
const token = localStorage.getItem("token") const token = localStorage.getItem("token")
const company_id = localStorage.getItem("company_id")
const HEADER = { const HEADER = {
headers: { headers: {
"Content-Type": "application/json", "Content-Type": "application/json",
@ -171,6 +172,11 @@ const ResourceWorker = ({ params }) => {
"logic_operator": "~*", "logic_operator": "~*",
"value": search "value": search
}, },
{
"name": "company_id",
"logic_operator": "=",
"value": company_id
},
] ]
}, },
"joins": [ "joins": [
@ -232,7 +238,7 @@ const ResourceWorker = ({ params }) => {
const handleSync = async () => { const handleSync = async () => {
await axios.get(USER_SYNC, HEADER) await axios.get(USER_SYNC, HEADER)
.then(res => res) .then(res => res)
.catch((error)=>error.response) .catch((error) => error.response)
} }
const handleExportExcel = async () => { const handleExportExcel = async () => {
@ -560,7 +566,7 @@ const ResourceWorker = ({ params }) => {
<Col> <Col>
<Tooltip title={t('hradd')}> <Tooltip title={t('hradd')}>
<Button style={{ background: "#4caf50", color: "#fff" }} onClick={() => handleOpenDialog('Save')}><i className="fa fa-plus"></i></Button> <Button style={{ background: "#4caf50", color: "#fff" }} onClick={() => handleOpenDialog('Save')}><i className="fa fa-plus"></i></Button>
</Tooltip> </Tooltip>
<Tooltip title="HR Sync"> <Tooltip title="HR Sync">
<Button style={{ background: "#007bff ", color: "#fff", marginLeft: "5px" }} onClick={() => handleSync()}><i className="fa fa-spinner"></i></Button> <Button style={{ background: "#007bff ", color: "#fff", marginLeft: "5px" }} onClick={() => handleSync()}><i className="fa fa-spinner"></i></Button>
</Tooltip> </Tooltip>

7
src/views/SimproV2/Satuan/DialogForm.js

@ -6,6 +6,7 @@ import {
import 'antd/dist/antd.css'; import 'antd/dist/antd.css';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
const company_id = localStorage.getItem("company_id")
const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit }) => { const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdit }) => {
const [id, setId] = useState(0) const [id, setId] = useState(0)
@ -31,7 +32,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
if (typeDialog === "Save") { if (typeDialog === "Save") {
data = { data = {
name: name, name: name,
description description,
company_id
} }
closeDialog('save', data); closeDialog('save', data);
@ -39,7 +41,8 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi
data = { data = {
id, id,
name: name, name: name,
description description,
company_id
} }
closeDialog('edit', data); closeDialog('edit', data);
} }

8
src/views/SimproV2/Satuan/index.js

@ -10,6 +10,7 @@ import { SATUAN_ADD, SATUAN_EDIT, SATUAN_DELETE, SATUAN_SEARCH } from '../../../
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
const token = window.localStorage.getItem('token'); const token = window.localStorage.getItem('token');
const company_id = window.localStorage.getItem('company_id');
const config = { const config = {
headers: headers:
{ {
@ -20,6 +21,7 @@ const config = {
const Satuan = ({ params }) => { const Satuan = ({ params }) => {
const token = localStorage.getItem("token") const token = localStorage.getItem("token")
const company_id = localStorage.getItem("company_id")
const HEADER = { const HEADER = {
headers: { headers: {
"Content-Type": "application/json", "Content-Type": "application/json",
@ -72,6 +74,12 @@ const Satuan = ({ params }) => {
"logic_operator": "ilike", "logic_operator": "ilike",
"value": search, "value": search,
"operator": "AND" "operator": "AND"
},
{
"name": "company_id",
"logic_operator": "=",
"value": company_id,
"operator": "AND"
} }
], ],
"orders": { "orders": {

Loading…
Cancel
Save