Browse Source

new flow & bugfix old reporting problem

pull/1/head
Muhammad Sulaiman Yusuf 2 years ago
parent
commit
b7407e9274
  1. 232
      edit-mode/function/expenseResource.js
  2. 26
      edit-mode/function/ganttConfig.js
  3. 34
      edit-mode/function/materialResource.js
  4. 81
      edit-mode/function/reportActivity.js
  5. 99
      edit-mode/index.html

232
edit-mode/function/expenseResource.js

@ -0,0 +1,232 @@
var expenseModal = $('#modal-expense > .modal-dialog > .modal-content');
function resetFormAssignexpense() {
$('#select-expense').val(null).trigger("change");
$('#select-expense').find('option').remove();
$('#select-expense').val("");
$('#form-assign-expense').trigger("reset");
$('#btn-assign-expense').html('Assign');
$('#btn-assign-expense').prop("disabled", false);
};
var rupiah = document.getElementById('price-req-expense');
rupiah.addEventListener('keyup', function (e) {
rupiah.value = formatRibuanInput(this.value);
});
var qty = document.getElementById('qty-req-expense');
qty.addEventListener('keyup', function (e) {
qty.value = formatRibuanInput(this.value);
});
$(document).ready(function () {
var tableexpense = $("#table-expense").DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": `${base_url}assign-material/datatables`,
"data": function (d) {
d.idact = activityId;
d.type = "expense";
}
},
"columns": [
{ data: 'material_name', name: 'material_name' },
{
data: 'qty_planning', render: function (data, type) {
return data ? formatRupiah(data) : '-'
}
},
{ data: 'uom', name: 'uom' },
{
data: 'budget', render: function (data, type) {
return data ? "Rp. " + formatRupiah(data) : '-'
}
},
{
data: 'plan_date', render: function (data, type) {
return data ? formatDate(data) : '-'
}
},
{
data: 'action',
name: 'action',
orderable: true,
searchable: true
},
]
});
function deleteexpenseAssign(id) {
$.ajax({
url: `${base_url}assign-material/delete/${id}`,
type: "DELETE",
success: function (data) {
actionHappen = true;
gantt.alert("Delete expense Assign Success!");
tableexpense.draw();
},
error: function (data) {
gantt.alert("Delete expense Assign Failed, try again later!");
}
});
}
$("#modal-expense").on("click", "#show-form-expense", function () {
$(this).hide();
$("#hide-form-expense").show();
$("#form-assign-expense").show();
});
$("#modal-expense").on("click", "#hide-form-expense", function () {
$(this).hide();
resetFormAssignexpense()
$("#show-form-expense").show();
});
$('#modal-expense').on('show.bs.modal', function (event) {
$('#modal-expense-title').html("Other Expense " + activityName);
tableexpense.draw();
});
$('#modal-expense').on('hide.bs.modal', function (event) {
// $("#hide-form-expense").hide();
$("#show-form-expense").show();
console.log("there's before action change ", actionHappen);
if (actionHappen) {
console.log("there's action change ", actionHappen);
updateActivity(activityId);
}
resetFormAssignexpense();
});
$('#select-expense').select2({
dropdownParent: expenseModal,
placeholder: 'Pilih expense resource',
allowClear: true,
ajax: {
url: `${base_url}expense-resource/select`,
dataType: 'json',
data: function (params) {
var query = {
search: params.term,
type: 'public',
idProyek: proyekId,
idact: activityId
}
return query;
},
processResults: function (result) {
return {
results: $.map(result, function (item) {
// console.log("cek item", item)
return {
text: item.description,
id: item.id
}
})
};
},
cache: false
}
});
$("#form-assign-expense").on('submit', function (e) {
e.preventDefault();
$('#btn-assign-expense').html('Assign...');
$('#btn-assign-expense').prop("disabled", true);
// /request-expense/add
let desc_req_expense = $("#desc-expense").val();
let required_date = $("#required-date-req-expense").val();
let plan_date = $("#required-date-plan-expense").val();
let uom = $("#uom-req-expense").val();
let price = $("#price-req-expense").val();
let qty_planning = $("#qty-req-expense").val();
let expense_id = null;
let payload = {
description: desc_req_expense,
type: "expense",
fom_date: required_date,
required_date: required_date,
proyek_id: proyekId,
uom: uom,
qty: formatReplaceTitikRibuan(qty_planning),
price: formatReplaceTitikRibuan(price)
}
$.ajax({
data: JSON.stringify(payload),
url: `${base_url}request-material/add`,
type: "POST",
processData: false,
contentType: false,
success: function (data) {
if (data && data.code === 200) {
material_id = data.data.id;
resetFormAssignexpense();
let payloadAssign = {
proyek_id: proyekId,
activity_id: activityId,
material_id : material_id ,
qty_planning: qty_planning,
plan_date: plan_date,
type: "expense",
}
$.ajax({
data: JSON.stringify(payloadAssign),
url: `${base_url}assign-material/add`,
type: "POST",
processData: false,
contentType: false,
success: function (data) {
if (data && data.code === 200) {
actionHappen = true;
gantt.alert("Data added!");
tableexpense.draw();
resetFormAssignexpense();
}
else {
gantt.alert({ type: "error", text: data.message });
$('#btn-assign-expense').html('Assign');
$('#btn-assign-expense').prop("disabled", false);
}
},
error: function (data) {
gantt.alert("Assign Failed, try again later!");
resetFormAssignexpense();
}
});
}
else {
gantt.alert({ type: "error", text: data.message });
$('#btn-assign-expense').html('Assign');
$('#btn-assign-expense').prop("disabled", false);
}
},
error: function (data) {
gantt.alert("expense Request Failed, try again later!");
resetFormAssignexpense();
}
});
});
// delete from row
$("#table-expense").on("click", ".btn-expense-delete", function () {
let id = $(this).data('id');
var box = gantt.confirm({
text: "expense will be deleted from activity, continue?",
ok: "Delete",
cancel: "Cancel",
callback: function (result) {
if (result) {
deleteexpenseAssign(id);
}
}
});
});
});

26
edit-mode/function/ganttConfig.js

@ -256,14 +256,14 @@ var allColumns = [
{ name: "start_date", label: "Start Date", align: "center", min_width: 80, editor: editor.start_date, resize: true }, { name: "start_date", label: "Start Date", align: "center", min_width: 80, editor: editor.start_date, resize: true },
{ name: "end_date", label: "Finish Date", align: "center", min_width: 80, editor: editor.end_date, resize: true }, { name: "end_date", label: "Finish Date", align: "center", min_width: 80, editor: editor.end_date, resize: true },
{ name: "duration", label: "Duration", align: "center", min_width: 50, resize: true }, { name: "duration", label: "Duration", align: "center", min_width: 50, resize: true },
{ name: "rencana_biaya", label: "Cost Planning", align: "center", min_width: 100, resize: true, template: function (text) { { name: "rencana_biaya", label: "Cost Planning", align: "right", min_width: 100, resize: true, template: function (text) {
if(!text.rencana_biaya){ if(!text.rencana_biaya){
return return
} }
let rencana_biaya = text.rencana_biaya let rencana_biaya = text.rencana_biaya
return "Rp. "+ formatRupiah(rencana_biaya) return "Rp. "+ formatRupiah(rencana_biaya)
} }, } },
{ name: "cost_actual", label: "Cost Actual", align: "center", min_width: 100, resize: true, template: function (text) { { name: "cost_actual", label: "Cost Actual", align: "right", min_width: 100, resize: true, template: function (text) {
if(!text.biaya_actual){ if(!text.biaya_actual){
return return
} }
@ -300,16 +300,34 @@ var allColumns = [
var assign_material = text.assign_material var assign_material = text.assign_material
if(!assign_material || !assign_material.length){ if(!assign_material || !assign_material.length){
html = `<span class="badge badge-pill badge-danger">Unassigned</span>`; html = `<span class="badge badge-pill badge-danger">No Material</span>`;
}else{ }else{
if(assign_material.length > 0 ){ if(assign_material.length > 0 ){
html = `<span class="text-capitalize badge badge-pill badge-primary">Assigned</span>`; html = `<span class="text-capitalize badge badge-pill badge-primary">See Material</span>`;
} }
} }
return `<div class="d-flex justify-content-center align-items-center" data-toggle="modal" data-target="#modal-material" style="min-width:100%;height:100%;"> return `<div class="d-flex justify-content-center align-items-center" data-toggle="modal" data-target="#modal-material" style="min-width:100%;height:100%;">
${html} ${html}
</div>` </div>`
} }, } },
{ name: "expenses", label: "Other Expense", align: "center", min_width: 150, resize: true, template: function (text) {
if(text.type=="project" || text.type=="milestone" || text.type=="header"){
return;
}
let html = ``;
var assign_expense = text.assign_expense
if(!assign_expense || !assign_expense.length){
html = `<span class="badge badge-pill badge-danger">No Expense</span>`;
}else{
if(assign_expense.length > 0 ){
html = `<span class="text-capitalize badge badge-pill badge-primary">See Expense</span>`;
}
}
return `<div class="d-flex justify-content-center align-items-center" data-toggle="modal" data-target="#modal-expense" style="min-width:100%;height:100%;">
${html}
</div>`
} },
{ name: "tools", label: "Tools", align: "center", min_width: 150, resize: true, template: function (text) { { name: "tools", label: "Tools", align: "center", min_width: 150, resize: true, template: function (text) {
if(text.type=="project" || text.type=="milestone" || text.type=="header"){ if(text.type=="project" || text.type=="milestone" || text.type=="header"){
return; return;

34
edit-mode/function/materialResource.js

@ -200,9 +200,6 @@ $(document).ready(function () {
success: function (data) { success: function (data) {
if (data && data.code === 200) { if (data && data.code === 200) {
material_id = data.data.id; material_id = data.data.id;
// actionHappen = true;
// gantt.alert("Material Request Success!");
// tableMaterial.draw();
resetFormAssignMaterial(); resetFormAssignMaterial();
let payloadAssign = { let payloadAssign = {
@ -211,7 +208,6 @@ $(document).ready(function () {
material_id: material_id, material_id: material_id,
qty_planning: qty_planning, qty_planning: qty_planning,
plan_date: plan_date plan_date: plan_date
// budget: budget
} }
$.ajax({ $.ajax({
data: JSON.stringify(payloadAssign), data: JSON.stringify(payloadAssign),
@ -250,36 +246,6 @@ $(document).ready(function () {
} }
}); });
// let material_id = $("#select-material").val();
// if (!material_id || material_id < 0) {
// gantt.alert("Please choose material to assign!");
// $('#btn-assign-material').html('Assign');
// $('#btn-assign-material').prop("disabled", false);
// return false
// }
// if (!qty_planning || qty_planning < 0) {
// gantt.alert("Please input qty material!");
// $('#btn-assign-material').html('Assign');
// $('#btn-assign-material').prop("disabled", false);
// return false
// }
// if(!budget || budget < 0){
// gantt.alert("Please input price per-unit!");
// $('#btn-assign-material').html('Assign');
// $('#btn-assign-material').prop("disabled",false);
// return false
// }
// if(material_id === null){
// gantt.alert("Material Assign Failed, try again later!");
// resetFormAssignMaterial();
// }else{
// }
}); });
// delete from row // delete from row

81
edit-mode/function/reportActivity.js

@ -31,8 +31,6 @@ $(document).ready(function () {
$("#table_report tbody").on("click", ".btn-update-status", function () { $("#table_report tbody").on("click", ".btn-update-status", function () {
idStatus = $(this).data('id'); idStatus = $(this).data('id');
var dataRow = tableRa.row($(this).parents('tr')).data(); var dataRow = tableRa.row($(this).parents('tr')).data();
// var data_row = table.row( $(this).parents('tr') ).data()
console.log("data row", dataRow)
let nameMaterial = $(this).data('material-name'); let nameMaterial = $(this).data('material-name');
let start = moment(dataRow.start_activity).format("YYYY-MM-DD"); let start = moment(dataRow.start_activity).format("YYYY-MM-DD");
@ -116,9 +114,13 @@ $(document).ready(function () {
}, },
"columns": [ "columns": [
{ data: 'material_name', name: 'material_name' }, { data: 'material_name', name: 'material_name' },
{ data: 'type', name: 'type', render: function(data, type){
if(data == 'expense')
return "Lainnya"
return "Material"
}},
{ {
data: 'qty_planning', render: function (data, type) { data: 'qty_planning', render: function (data, type) {
console.log("render", [data, type]);
return data ? formatRupiah(data) : '-' return data ? formatRupiah(data) : '-'
} }
}, },
@ -131,22 +133,6 @@ $(document).ready(function () {
} }
}, },
{ data: 'uom', name: 'uom' }, { data: 'uom', name: 'uom' },
// {
// data: 'start_activity', render: function (data, type) {
// return data ? formatDate(data) : '-'
// }
// },
// {
// data: 'finish_activity', render: function (data, type) {
// return data ? formatDate(data) : '-'
// }
// },
// {
// data: 'status_activity', render: function (data, type) {
// console.log("status", data)
// return val
// }
// },
{ {
data: 'action', data: 'action',
name: 'action', name: 'action',
@ -165,6 +151,7 @@ $(document).ready(function () {
"data": function (d) { "data": function (d) {
d.idAmi = assignMaterialId; d.idAmi = assignMaterialId;
d.idAct = activityId; d.idAct = activityId;
d.materialName = materialName;
d.type = 'actual'; d.type = 'actual';
} }
}, },
@ -238,7 +225,6 @@ $(document).ready(function () {
processResults: function (result) { processResults: function (result) {
return { return {
results: $.map(result, function (item) { results: $.map(result, function (item) {
// console.log("cek item", item)
return { return {
text: item.name, text: item.name,
id: item.id, id: item.id,
@ -269,7 +255,6 @@ $(document).ready(function () {
processResults: function (result) { processResults: function (result) {
return { return {
results: $.map(result, function (item) { results: $.map(result, function (item) {
// console.log("cek item", item)
return { return {
text: item.name, text: item.name,
id: item.id, id: item.id,
@ -311,69 +296,34 @@ $(document).ready(function () {
$("#modal_report_activity_material").on("click", "#show_form_ra_material", function () { $("#modal_report_activity_material").on("click", "#show_form_ra_material", function () {
$(this).hide(); $(this).hide();
// $("#hide_form_ra_material").show();
$("#form_report_activity_material").show(); $("#form_report_activity_material").show();
}); });
$("#modal_report_activity_material").on("click", "#hide_form_ra_material", function () { $("#modal_report_activity_material").on("click", "#hide_form_ra_material", function () {
$(this).hide(); $(this).hide();
resetFormAddRaMaterial() resetFormAddRaMaterial()
// $("#show_form_ra_material").show();
}); });
// $("#form_report_activity").on("submit", function (e) {
// e.preventDefault();
// var formData = new FormData(this);
// formData.append("activity_id", activityId);
// formData.append("gantt", true);
// let idRa = $("#id_ra").val();
// actionHappen = true;
// if (idRa && idRa != "") {
// $('#btn_add_ra').html('Updating..');
// $('#btn_add_ra').prop("disabled", true);
// formData.append("_method", "PUT");
// updateRa(formData, idRa);
// } else {
// $('#btn_add_ra').html('Adding..');
// $('#btn_add_ra').prop("disabled", true);
// submitRa(formData);
// }
// });
$("#form_report_activity").on("submit", function (e) { $("#form_report_activity").on("submit", function (e) {
e.preventDefault(); e.preventDefault();
console.log("submit status")
let valEnd = $('#ra_date_end_activity').val() let valEnd = $('#ra_date_end_activity').val()
let valStart = $('#ra_date_start_activity').val() let valStart = $('#ra_date_start_activity').val()
let valStatus = $('#ra_select_status').val() let valStatus = $('#ra_select_status').val()
const compDate = moment(valEnd).isBefore(moment(valStart)) const compDate = moment(valEnd).isBefore(moment(valStart))
console.log({ valEnd, valStart, compDate })
if (valStatus == 'done' && compDate) { if (valStatus == 'done' && compDate) {
gantt.alert("End Activity Date cannot be lower than Start Activity Date"); gantt.alert("End Activity Date cannot be lower than Start Activity Date");
} else { } else {
var formData = new FormData(this); var formData = new FormData(this);
// formData.append("assign_material_id", idStatus);
formData.append("activity_id", activityId); formData.append("activity_id", activityId);
actionHappen = true; actionHappen = true;
$('#btn_add_ra').html('Updating..'); $('#btn_add_ra').html('Updating..');
$('#btn_add_ra').prop("disabled", true); $('#btn_add_ra').prop("disabled", true);
submitStatus(formData); submitStatus(formData);
// if (idRa && idRa != "") {
// $('#btn_add_ra').html('Updating..');
// $('#btn_add_ra').prop("disabled", true);
// formData.append("_method", "PUT");
// updateRa(formData, idRa);
// } else {
// $('#btn_add_ra').html('Adding..');
// $('#btn_add_ra').prop("disabled", true);
// submitStatus(formData, idStatus);
// }
} }
@ -383,9 +333,7 @@ $(document).ready(function () {
e.preventDefault(); e.preventDefault();
var formData = new FormData(this); var formData = new FormData(this);
formData.append("activity_id", activityId); formData.append("activity_id", activityId);
// formData.append("assign_material_id", assignMaterialId) formData.append("assign_material_id", assignMaterialId);
// formData.append("gantt", true);
console.log("test nih ", formData);
let idRa = $("#id_ra_material").val(); let idRa = $("#id_ra_material").val();
actionHappen = true; actionHappen = true;
if (idRa && idRa != "") { if (idRa && idRa != "") {
@ -456,7 +404,7 @@ $(document).ready(function () {
} }
} }
async function submitRaMaterial(formData) { async function submitRaMaterial(formData, id) {
let qty_actual = $("#volume_pekerjaan_material").val(); let qty_actual = $("#volume_pekerjaan_material").val();
formData.set('qty', qty_actual); formData.set('qty', qty_actual);
const result = await axiosInstance const result = await axiosInstance
@ -545,7 +493,7 @@ $(document).ready(function () {
materialName = $(this).data('material-name'); materialName = $(this).data('material-name');
// console.log(" okeee ",{ assignMaterialId, activityId, materialName }); // console.log(" okeee ",{ assignMaterialId, activityId, materialName });
$("#report_activity_material_title").html(`Report Activity Actual Material ${materialName}`) $("#report_activity_material_title").html(`Report Activity Actual ${materialName}`)
$("#modal_report_activity").hide(); $("#modal_report_activity").hide();
$("#form_report_activity_material").show(); $("#form_report_activity_material").show();
@ -576,7 +524,7 @@ $(document).ready(function () {
assignMaterialId = $(this).data('id'); assignMaterialId = $(this).data('id');
materialName = $(this).data('material-name'); materialName = $(this).data('material-name');
// console.log(" okeee ",{ assignMaterialId, activityId, materialName }); // console.log(" okeee ",{ assignMaterialId, activityId, materialName });
$("#report_activity_material_title").html(`Report Activity Plan Material ${materialName}`) $("#report_activity_material_title").html(`Report Activity Plan ${materialName}`)
$("#modal_report_activity").hide(); $("#modal_report_activity").hide();
// $("#show_form_ra_material").hide(); // $("#show_form_ra_material").hide();
$("#activity_material_plan").show(); $("#activity_material_plan").show();
@ -591,15 +539,6 @@ $(document).ready(function () {
'margin-top': '40px', 'margin-top': '40px',
}); });
tableRaMaterialPlan.draw(); tableRaMaterialPlan.draw();
// $(".modal-dialog .modal-lg").css({
// // 'opacity': '3',
// 'padding-top': '20px',
// });
// }, 1000);
// tableInputProgress.draw();
}); });
function deleteRa(id) { function deleteRa(id) {

99
edit-mode/index.html

@ -324,6 +324,73 @@
</div> </div>
</div> </div>
<div class="modal fade" id="modal-expense" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header d-flex flex-row justify-content-between" style="width: 100%;">
<h5 class="modal-title" id="modal-expense-title">Expense</h5>
</div>
<div class="modal-body">
<form id="form-assign-expense">
<div class="form-row">
<div class="col-md-2 form-group">
<label>Description</label>
<input type="text" id="desc-expense" name="descriptionReqexpense"
class="form-control form-control-sm" />
</div>
<div class="col-md-2 form-group">
<label>Price (IDR)</label>
<input type="text" id="price-req-expense" name="priceReqexpense"
class="form-control form-control-sm" />
</div>
<div class="col-md-2 form-group">
<label>QTY</label>
<input type="text" id="qty-req-expense" name="qtyReqexpense"
class="form-control form-control-sm" />
</div>
<div class="col-md-1 form-group">
<label>UOM</label>
<input type="text" id="uom-req-expense" name="uomReqexpense" class="form-control form-control-sm" />
</div>
<div class="col-md-2 form-group">
<label>Expected arrival date</label>
<input type="date" id="required-date-req-expense" name="requiredDateReqexpense"
class="form-control form-control-sm" />
</div>
<div class="col-md-2 form-group">
<label>Will be used at</label>
<input type="date" id="required-date-plan-expense" name="requiredDatePlanexpense"
class="form-control form-control-sm" />
</div>
<div class="col-md-1 form-group">
<button style="margin-top: 31px;" id="btn-assign-expense" type="submit"
class="btn btn-sm btn-primary">Assign</button>
</div>
</div>
<hr />
</form>
<table id="table-expense" class="table table-sm" style="width: 100%;">
<thead>
<tr>
<th scope="col">Description</th>
<th scope="col">QTY</th>
<th scope="col">UOM</th>
<th scope="col">Price</th>
<th scope="col">Planning Date</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- modal assign tools --> <!-- modal assign tools -->
<div class="modal fade" id="modal-tools" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal fade" id="modal-tools" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
@ -331,10 +398,6 @@
<div class="modal-header d-flex flex-row justify-content-between" style="width: 100%;"> <div class="modal-header d-flex flex-row justify-content-between" style="width: 100%;">
<h5 class="modal-title" id="exampleModalLabel">Tools Resource</h5> <h5 class="modal-title" id="exampleModalLabel">Tools Resource</h5>
<div> <div>
<!-- <button id="show-form-tools" type="button" class="btn btn-primary btn-sm"><i class="fa fa-plus"
aria-hidden="true"></i></button>
<button id="hide-form-tools" type="button" class="elm-hide btn btn-primary btn-sm"><i
class="fa fa-chevron-up" aria-hidden="true"></i></button> -->
</div> </div>
</div> </div>
<div class="modal-body"> <div class="modal-body">
@ -598,7 +661,8 @@
<table id="table_report" class="table table-sm" style="width: 100%;"> <table id="table_report" class="table table-sm" style="width: 100%;">
<thead> <thead>
<tr> <tr>
<th scope="col">Material</th> <th scope="col">Deskripsi</th>
<th scope="col">Tipe</th>
<th scope="col">Volume Kumulatif Plan</th> <th scope="col">Volume Kumulatif Plan</th>
<th scope="col">Volume Kumulatif Aktual</th> <th scope="col">Volume Kumulatif Aktual</th>
<th scope="col">UOM</th> <th scope="col">UOM</th>
@ -623,7 +687,7 @@
<!-- <div class="modal-dialog modal-lg" role="document"> --> <!-- <div class="modal-dialog modal-lg" role="document"> -->
<div class="modal-content"> <div class="modal-content">
<div class="modal-header d-flex flex-row justify-content-between" style="width: 100%;"> <div class="modal-header d-flex flex-row justify-content-between" style="width: 100%;">
<h5 class="modal-title" id="report_activity_material_title">Report Activity Material</h5> <h5 class="modal-title" id="report_activity_material_title">Report Activity</h5>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form class="mb-1 elm-hide" id="form_report_activity_material"> <form class="mb-1 elm-hide" id="form_report_activity_material">
@ -649,9 +713,8 @@
<input type="file" id="foto_ra_material" name="files" class="form-control form-control-sm" /> <input type="file" id="foto_ra_material" name="files" class="form-control form-control-sm" />
</div> </div>
<div class="col-md-4 form-group"> <div class="col-md-4 form-group">
<label>Deskripsi</label> <label>Keterangan</label>
<textarea id="ra_description_material" class="form-control form-control-sm" name="description" <textarea id="ra_description_material" class="form-control form-control-sm" name="description"></textarea>
required></textarea>
</div> </div>
</div> </div>
<div class="text-right"> <div class="text-right">
@ -661,23 +724,10 @@
</form> </form>
<!-- for plan --> <!-- for plan -->
<div class="table-responsive" id="activity_material_plan"> <div class="table-responsive" id="activity_material_plan">
<!-- <table id="table_activity_material" class="table table-sm" style="width: 100%;">
<thead>
<tr>
<th scope="col">Human Resource</th>
<th scope="col">Report Date</th>
<th scope="col">Volume Pekerjaan</th>
<th scope="col">Deskripsi</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
</tbody>
</table> -->
<table id="table_activity_material_plan" class="table table-sm" style="width: 100%;"> <table id="table_activity_material_plan" class="table table-sm" style="width: 100%;">
<thead> <thead>
<tr> <tr>
<th scope="col">Material</th> <th scope="col">Deskripsi</th>
<th scope="col">Volume Pekerjaan</th> <th scope="col">Volume Pekerjaan</th>
<th scope="col">UOM</th> <th scope="col">UOM</th>
<th scope="col">Plan Date</th> <th scope="col">Plan Date</th>
@ -696,7 +746,7 @@
<th scope="col">Human Resource</th> <th scope="col">Human Resource</th>
<th scope="col">Report Date</th> <th scope="col">Report Date</th>
<th scope="col">Volume Pekerjaan</th> <th scope="col">Volume Pekerjaan</th>
<th scope="col">Deskripsi</th> <th scope="col">Keterangan</th>
<th scope="col">Actions</th> <th scope="col">Actions</th>
</tr> </tr>
</thead> </thead>
@ -798,6 +848,7 @@
<script src="function/humanResource.js"></script> <script src="function/humanResource.js"></script>
<script src="function/toolsResource.js"></script> <script src="function/toolsResource.js"></script>
<script src="function/materialResource.js"></script> <script src="function/materialResource.js"></script>
<script src="function/expenseResource.js"></script>
<script src="function/milestone.js"></script> <script src="function/milestone.js"></script>
<script src="function/holiday.js"></script> <script src="function/holiday.js"></script>
<script src="function/reportActivity.js"></script> <script src="function/reportActivity.js"></script>

Loading…
Cancel
Save