You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
645 lines
22 KiB
645 lines
22 KiB
var rAModal = $('#modal_report_activity > .modal-dialog > .modal-content'); |
|
var rAmaterialModal = $('#modal_report_activity_material > .modal-dialog > .modal-content'); |
|
var assignMaterialId; |
|
var materialName; |
|
var idStatus; |
|
|
|
function resetFormAddRa() { |
|
$("#show_form_ra").show(); |
|
$("#hide_form_ra").hide(); |
|
$("#id_ra").val(""); |
|
$("#form_report_activity").hide(); |
|
$('#form_report_activity').trigger("reset"); |
|
$('#btn_add_ra').html('Add'); |
|
$('#btn_add_ra').prop("disabled", false); |
|
} |
|
|
|
function resetFormAddRaMaterial() { |
|
$("#id_ra_material").val(""); |
|
$('#form_report_activity_material').trigger("reset"); |
|
$('#btn_add_ra_material').html('Add'); |
|
$('#btn_add_ra_material').prop("disabled", false); |
|
} |
|
|
|
var qtyActual = document.getElementById('volume_pekerjaan_material'); |
|
qtyActual.addEventListener('keyup', function (e) { |
|
qtyActual.value = formatRibuanInput(this.value); |
|
}); |
|
|
|
$(document).ready(function () { |
|
|
|
$("#table_report tbody").on("click", ".btn-update-status", function () { |
|
idStatus = $(this).data('id'); |
|
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 start = moment(dataRow.start_activity).format("YYYY-MM-DD"); |
|
let end = moment(dataRow.finish_activity).format("YYYY-MM-DD"); |
|
$("#ra_date_start_activity").val(start) |
|
$("#ra_date_end_activity").val(end) |
|
$("#ra_select_status").val(dataRow.status_activity) |
|
|
|
if (dataRow.status_activity == 'done') { |
|
$('#ra_date_end_activity').prop('disabled', false); |
|
} else { |
|
$('#ra_date_end_activity').prop('disabled', true); |
|
} |
|
|
|
$(".text-update-status").html(`Update Status Report Activity Material ${nameMaterial}`) |
|
$("#form_report_activity").show(); |
|
}); |
|
|
|
$("#btn-cancel-status").on("click", function () { |
|
resetFormAddRa() |
|
}); |
|
$("#ra_select_status").on("change", function () { |
|
let val = $(this).val() |
|
console.log(val) |
|
if (val == 'done') { |
|
$('#ra_date_end_activity').prop('disabled', false); |
|
} else { |
|
$('#ra_date_end_activity').prop('disabled', true); |
|
} |
|
}); |
|
|
|
$("#ra_date_end_activity").on("change", function () { |
|
let valEnd = $(this).val() |
|
let valStart = $('#ra_date_start_activity').val() |
|
|
|
const compDate = moment(valEnd).isBefore(moment(valStart)) |
|
if (compDate) { |
|
gantt.alert("End Activity Date cannot be lower than Start Activity Date"); |
|
} |
|
}); |
|
|
|
var tableRa = $("#table_report").DataTable({ |
|
"processing": true, |
|
"serverSide": true, |
|
"ajax": { |
|
"url": `${base_url}assign-material/datatablesForReportActivity`, |
|
"data": function (d) { |
|
d.idact = activityId; |
|
} |
|
}, |
|
"columns": [ |
|
{ data: 'material_name', name: 'material_name' }, |
|
{ |
|
data: 'qty_planning', render: function (data, type) { |
|
return data ? formatRupiah(data) : '-' |
|
} |
|
}, |
|
{ |
|
data: 'qty_sum', render: function (data, type) { |
|
if(data == "-"){ |
|
return data |
|
} |
|
return data ? formatRupiah(data) : '-' |
|
} |
|
}, |
|
{ data: 'uom', name: 'uom' }, |
|
{ |
|
data: 'start_activity', render: function (data, type) { |
|
console.log("start", data) |
|
return data ? formatDate(data) : '-' |
|
} |
|
}, |
|
{ |
|
data: 'finish_activity', render: function (data, type) { |
|
console.log("finish", data) |
|
return data ? formatDate(data) : '-' |
|
} |
|
}, |
|
{ |
|
data: 'status_activity', render: function (data, type) { |
|
console.log("status", data) |
|
const val = !data ? '-' : |
|
data == "done" ? `<span class="badge badge-success">${data}</span>` : |
|
data == "open" ? `<span class="badge badge-primary">${data}</span>` : |
|
`<span class="badge badge-warning">${data}</span>` |
|
return val |
|
} |
|
}, |
|
{ |
|
data: 'action', |
|
name: 'action', |
|
orderable: true, |
|
searchable: true |
|
}, |
|
] |
|
}); |
|
|
|
var tableRaMaterialActual = $("#table_activity_material_actual").DataTable({ |
|
"processing": true, |
|
"serverSide": true, |
|
"ajax": { |
|
"url": `${base_url}report-activity-material/datatables`, |
|
"data": function (d) { |
|
d.idAmi = assignMaterialId; |
|
d.idAct = activityId; |
|
d.type = 'actual'; |
|
} |
|
}, |
|
"columns": [ |
|
{ data: 'human_resource', name: 'human_resource' }, |
|
{ |
|
data: 'report_date', render: function (data, type) { |
|
return data ? formatDate(data) : '-' |
|
} |
|
}, |
|
{ |
|
data: 'qty', render: function (data, type) { |
|
return data ? formatRupiah(data) : '-' |
|
} |
|
}, |
|
{ data: 'description', name: 'description' }, |
|
{ |
|
data: 'action', |
|
name: 'action', |
|
orderable: true, |
|
searchable: true |
|
}, |
|
], |
|
"order": [[1, 'asc']], |
|
}); |
|
|
|
var tableRaMaterialPlan = $("#table_activity_material_plan").DataTable({ |
|
"processing": true, |
|
"serverSide": true, |
|
"ajax": { |
|
"url": `${base_url}report-activity-material/datatables`, |
|
"data": function (d) { |
|
d.idAmi = assignMaterialId; |
|
d.idAct = activityId; |
|
d.type = 'plan'; |
|
} |
|
}, |
|
"columns": [ |
|
{ data: 'material_name', name: 'material_name'}, |
|
{ |
|
data: 'qty_planning', render: function (data, type) { |
|
return data ? formatRupiah(parseInt(data)) : '-' |
|
} |
|
}, |
|
{ data: 'uom', name: 'uom' }, |
|
{ |
|
data: 'plan_date', render: function (data, type) { |
|
return data ? formatDate(data) : '-' |
|
} |
|
}, |
|
] |
|
}); |
|
|
|
|
|
$('#select_ra_hr').select2({ |
|
dropdownParent: rAModal, |
|
placeholder: 'Pilih human resource', |
|
allowClear: true, |
|
ajax: { |
|
url: `${base_url}user-to-proyek/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.name, |
|
id: item.id, |
|
} |
|
}) |
|
}; |
|
}, |
|
cache: false |
|
} |
|
}); |
|
|
|
$('#select_ra_hr_material').select2({ |
|
dropdownParent: rAmaterialModal, |
|
placeholder: 'Pilih human resource', |
|
allowClear: true, |
|
ajax: { |
|
url: `${base_url}user-to-proyek/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.name, |
|
id: item.id, |
|
} |
|
}) |
|
}; |
|
}, |
|
cache: false |
|
} |
|
}); |
|
|
|
$('#modal_report_activity').on('show.bs.modal', function (event) { |
|
$("#report_activity_title").html(`Report Activity ${activityName}`) |
|
tableRa.draw(); |
|
}); |
|
|
|
$('#modal_report_activity_material').on('show.bs.modal', function (event) { |
|
tableRaMaterialActual.draw(); |
|
}); |
|
|
|
$('#modal_report_activity').on('hide.bs.modal', function (event) { |
|
if (actionHappen) { |
|
updateActivity(activityId); |
|
} |
|
resetFormAddRa(); |
|
}); |
|
|
|
$("#modal_report_activity").on("click", "#show_form_ra", function () { |
|
$(this).hide(); |
|
$("#hide_form_ra").show(); |
|
$("#form_report_activity").show(); |
|
}); |
|
|
|
$("#modal_report_activity").on("click", "#hide_form_ra", function () { |
|
$(this).hide(); |
|
resetFormAddRa() |
|
$("#show_form_ra").show(); |
|
}); |
|
|
|
$("#modal_report_activity_material").on("click", "#show_form_ra_material", function () { |
|
$(this).hide(); |
|
// $("#hide_form_ra_material").show(); |
|
$("#form_report_activity_material").show(); |
|
}); |
|
|
|
$("#modal_report_activity_material").on("click", "#hide_form_ra_material", function () { |
|
$(this).hide(); |
|
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) { |
|
e.preventDefault(); |
|
console.log("submit status") |
|
|
|
let valEnd = $('#ra_date_end_activity').val() |
|
let valStart = $('#ra_date_start_activity').val() |
|
let valStatus = $('#ra_select_status').val() |
|
|
|
const compDate = moment(valEnd).isBefore(moment(valStart)) |
|
console.log({ valEnd, valStart, compDate }) |
|
|
|
if (valStatus == 'done' && compDate) { |
|
gantt.alert("End Activity Date cannot be lower than Start Activity Date"); |
|
|
|
} else { |
|
var formData = new FormData(this); |
|
// formData.append("assign_material_id", idStatus); |
|
formData.append("activity_id", activityId); |
|
actionHappen = true; |
|
|
|
$('#btn_add_ra').html('Updating..'); |
|
$('#btn_add_ra').prop("disabled", true); |
|
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); |
|
// } |
|
} |
|
|
|
|
|
}); |
|
|
|
$("#form_report_activity_material").on("submit", function (e) { |
|
e.preventDefault(); |
|
var formData = new FormData(this); |
|
formData.append("activity_id", activityId); |
|
// formData.append("assign_material_id", assignMaterialId) |
|
// formData.append("gantt", true); |
|
console.log("test nih ", formData); |
|
let idRa = $("#id_ra_material").val(); |
|
actionHappen = true; |
|
if (idRa && idRa != "") { |
|
$('#btn_add_ra_material').html('Updating..'); |
|
$('#btn_add_ra_material').prop("disabled", true); |
|
formData.append("_method", "PUT"); |
|
updateRaMaterial(formData, idRa); |
|
} else { |
|
$('#btn_add_ra_material').html('Adding..'); |
|
$('#btn_add_ra_material').prop("disabled", true); |
|
submitRaMaterial(formData); |
|
} |
|
}); |
|
|
|
async function submitStatus(formData) { |
|
const result = await axiosInstance |
|
.post(`${base_url}report-activity-material/update-status`, formData) |
|
.then(res => res) |
|
.catch((error) => error.response); |
|
|
|
// console.log("cek result", result); |
|
|
|
if (result && result.data.code == 200) { |
|
gantt.alert("Update Status report activity Success!"); |
|
resetFormAddRa(); |
|
$(".text-update-status").hide() |
|
tableRa.draw(); |
|
} else { |
|
resetFormAddRa(); |
|
$(".text-update-status").hide() |
|
gantt.alert("Update Status activity failed, try again later!"); |
|
} |
|
} |
|
|
|
async function submitRa(formData) { |
|
const result = await axiosInstance |
|
.post(`${base_url}report-activity/add`, formData) |
|
.then(res => res) |
|
.catch((error) => error.response); |
|
|
|
// console.log("cek result", result); |
|
|
|
if (result && result.status == 200) { |
|
gantt.alert("Add report activity Success!"); |
|
resetFormAddRa(); |
|
tableRa.draw(); |
|
} else { |
|
resetFormAddRa(); |
|
gantt.alert("Add report activity failed, try again later!"); |
|
} |
|
} |
|
|
|
async function updateRa(formData, id) { |
|
const result = await axiosInstance |
|
.post(`${base_url}report-activity/update/${id}`, formData) |
|
.then(res => res) |
|
.catch((error) => error.response); |
|
|
|
// console.log("cek result", result); |
|
|
|
if (result && result.status == 200) { |
|
gantt.alert("Edit report activity Success!"); |
|
resetFormAddRa(); |
|
tableRa.draw(); |
|
} else { |
|
resetFormAddRa(); |
|
gantt.alert("Edit report activity failed, try again later!"); |
|
} |
|
} |
|
|
|
async function submitRaMaterial(formData) { |
|
let qty_actual = $("#volume_pekerjaan_material").val(); |
|
formData.set('qty', qty_actual); |
|
const result = await axiosInstance |
|
.post(`${base_url}report-activity-material/add`, formData) |
|
.then(res => res) |
|
.catch((error) => error.response); |
|
|
|
// console.log("cek result", result); |
|
|
|
if (result && result.status == 200) { |
|
gantt.alert("Add report activity material Success!"); |
|
resetFormAddRaMaterial(); |
|
tableRaMaterialActual.draw(); |
|
} else { |
|
resetFormAddRaMaterial(); |
|
gantt.alert("Add report activity material failed, try again later!"); |
|
} |
|
} |
|
|
|
async function updateRaMaterial(formData, id) { |
|
const result = await axiosInstance |
|
.post(`${base_url}report-activity-material/update/${id}`, formData) |
|
.then(res => res) |
|
.catch((error) => error.response); |
|
|
|
// console.log("cek result", result); |
|
|
|
if (result && result.status == 200) { |
|
gantt.alert("Edit report activity Success!"); |
|
resetFormAddRaMaterial(); |
|
tableRaMaterialActual.draw(); |
|
} else { |
|
resetFormAddRaMaterial(); |
|
gantt.alert("Edit report activity failed, try again later!"); |
|
} |
|
} |
|
|
|
$("#table_report").on("click", ".btn_report_delete", function () { |
|
let id = $(this).data('id'); |
|
var box = gantt.confirm({ |
|
text: "Report activity will be deleted from activity, continue?", |
|
ok: "Delete", |
|
cancel: "Cancel", |
|
callback: function (result) { |
|
if (result) { |
|
deleteRa(id); |
|
} |
|
} |
|
}); |
|
}); |
|
|
|
$("#table_activity_material_actual").on("click", ".btn-ram-delete", function () { |
|
let id = $(this).data('id'); |
|
var box = gantt.confirm({ |
|
text: "Report activity material will be deleted from activity material, continue?", |
|
ok: "Delete", |
|
cancel: "Cancel", |
|
callback: function (result) { |
|
if (result) { |
|
deleteRaMaterial(id); |
|
} |
|
} |
|
}); |
|
}); |
|
|
|
$("#btn-close-material").on("click", function () { |
|
|
|
// setTimeout(() => { |
|
$(".modal-backdrop").remove(); |
|
$("#modal_report_activity_material").hide(); |
|
$("#modal_report_activity_material").css("opacity", "0"); |
|
}); |
|
|
|
$("#btn-back-material").on("click", function () { |
|
|
|
// setTimeout(() => { |
|
// $(".modal-backdrop").remove(); |
|
$("#modal_report_activity_material").hide(); |
|
$("#modal_report_activity_material").css("opacity", "0"); |
|
$("#modal_report_activity").show(); |
|
tableRa.draw(); |
|
}); |
|
|
|
$("#table_report").on("click", ".btn-lihat-actual", function () { |
|
assignMaterialId = $(this).data('id'); |
|
materialName = $(this).data('material-name'); |
|
|
|
// console.log(" okeee ",{ assignMaterialId, activityId, materialName }); |
|
$("#report_activity_material_title").html(`Report Activity Actual Material ${materialName}`) |
|
$("#modal_report_activity").hide(); |
|
|
|
$("#form_report_activity_material").show(); |
|
$("#activity_material_plan").hide(); |
|
$("#activity_material_actual").show(); |
|
$("#table_activity_material_plan").hide(); |
|
$("#table_activity_material_actual").show(); |
|
|
|
// setTimeout(() => { |
|
$("#modal_report_activity_material").show(); |
|
$("#modal_report_activity_material").css({ |
|
'opacity': '1', |
|
'margin-top': '40px', |
|
}); |
|
tableRaMaterialActual.draw(); |
|
|
|
// $(".modal-dialog .modal-lg").css({ |
|
// // 'opacity': '3', |
|
// 'padding-top': '20px', |
|
// }); |
|
|
|
// }, 1000); |
|
|
|
// tableInputProgress.draw(); |
|
}); |
|
|
|
$("#table_report").on("click", ".btn-lihat-plan", function () { |
|
assignMaterialId = $(this).data('id'); |
|
materialName = $(this).data('material-name'); |
|
// console.log(" okeee ",{ assignMaterialId, activityId, materialName }); |
|
$("#report_activity_material_title").html(`Report Activity Plan Material ${materialName}`) |
|
$("#modal_report_activity").hide(); |
|
// $("#show_form_ra_material").hide(); |
|
$("#activity_material_plan").show(); |
|
$("#activity_material_actual").hide(); |
|
$("#table_activity_material_plan").show(); |
|
$("#table_activity_material_actual").hide(); |
|
|
|
// setTimeout(() => { |
|
$("#modal_report_activity_material").show(); |
|
$("#modal_report_activity_material").css({ |
|
'opacity': '1', |
|
'margin-top': '40px', |
|
}); |
|
tableRaMaterialPlan.draw(); |
|
|
|
// $(".modal-dialog .modal-lg").css({ |
|
// // 'opacity': '3', |
|
// 'padding-top': '20px', |
|
// }); |
|
|
|
// }, 1000); |
|
|
|
// tableInputProgress.draw(); |
|
}); |
|
|
|
function deleteRa(id) { |
|
$.ajax({ |
|
url: `${base_url}report-activity/delete/${id}`, |
|
type: "DELETE", |
|
success: function (data) { |
|
actionHappen = true; |
|
gantt.alert("Delete Report Activity Success!"); |
|
tableRa.draw(); |
|
}, |
|
error: function (data) { |
|
gantt.alert("Delete Report Activity Failed, try again later!"); |
|
} |
|
}); |
|
} |
|
|
|
function deleteRaMaterial(id) { |
|
$.ajax({ |
|
url: `${base_url}report-activity-material/delete/${id}`, |
|
type: "DELETE", |
|
success: function (data) { |
|
actionHappen = true; |
|
gantt.alert("Delete Report Activity Material Success!"); |
|
tableRaMaterialActual.draw(); |
|
}, |
|
error: function (data) { |
|
gantt.alert("Delete Report Activity Material Failed, try again later!"); |
|
} |
|
}); |
|
} |
|
|
|
$("#table_report").on("click", ".btn_report_edit", function () { |
|
let id = $(this).data('id'); |
|
$("#id_ra").val(id); |
|
// console.log("cek edit id", id); |
|
$.ajax({ |
|
url: `${base_url}report-activity/edit/${id}`, |
|
type: "get", |
|
success: function (data) { |
|
console.log("data", data); |
|
if (data && data.code == 200) { |
|
let dataRes = data.data |
|
// console.log("dataRes", dataRes); |
|
$('#btn_add_ra').html('Edit'); |
|
var newOption = new Option(dataRes.user_name, dataRes.user_id, true, true); |
|
$('#select_ra_hr').append(newOption).trigger('change'); |
|
let reportDate = moment(dataRes.report_date).format("YYYY-MM-DD"); |
|
// console.log("reportDate", reportDate); |
|
$("#ra_date").val(reportDate); |
|
$("#volume_pekerjaan").val(dataRes.job_count_report); |
|
$("#ra_description").val(dataRes.description); |
|
$("#show_form_ra").hide(); |
|
$("#hide_form_ra").show(); |
|
$("#form_report_activity").show(); |
|
} else { |
|
resetFormAddRa(); |
|
gantt.alert("Edit Report Activity Failed, try again later!"); |
|
} |
|
// actionHappen = true; |
|
// gantt.alert("Delete Report Activity Success!"); |
|
// tableRa.draw(); |
|
}, |
|
error: function (data) { |
|
resetFormAddRa(); |
|
gantt.alert("Edit Report Activity Failed, try again later!"); |
|
} |
|
}); |
|
}); |
|
}); |