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.
280 lines
9.9 KiB
280 lines
9.9 KiB
var materialModal = $('#modal-material > .modal-dialog > .modal-content'); |
|
|
|
function resetFormAssignMaterial() { |
|
$('#select-material').val(null).trigger("change"); |
|
$('#select-material').find('option').remove(); |
|
$('#select-material').val(""); |
|
$('#form-assign-material').trigger("reset"); |
|
$('#btn-assign-material').html('Assign'); |
|
$('#btn-assign-material').prop("disabled", false); |
|
}; |
|
|
|
|
|
var rupiah = document.getElementById('price-req-material'); |
|
rupiah.addEventListener('keyup', function (e) { |
|
rupiah.value = formatRibuanInput(this.value); |
|
}); |
|
|
|
var qty = document.getElementById('qty-req-material'); |
|
qty.addEventListener('keyup', function (e) { |
|
qty.value = formatRibuanInput(this.value); |
|
}); |
|
|
|
$(document).ready(function () { |
|
var tableMaterial = $("#table-material").DataTable({ |
|
"processing": true, |
|
"serverSide": true, |
|
"ajax": { |
|
"url": `${base_url}assign-material/datatables`, |
|
"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: '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 deleteMaterialAssign(id) { |
|
$.ajax({ |
|
url: `${base_url}assign-material/delete/${id}`, |
|
type: "DELETE", |
|
success: function (data) { |
|
actionHappen = true; |
|
gantt.alert("Delete Material Assign Success!"); |
|
tableMaterial.draw(); |
|
}, |
|
error: function (data) { |
|
gantt.alert("Delete Material Assign Failed, try again later!"); |
|
} |
|
}); |
|
} |
|
|
|
$("#modal-material").on("click", "#show-form-material", function () { |
|
$(this).hide(); |
|
$("#hide-form-material").show(); |
|
$("#form-assign-material").show(); |
|
}); |
|
|
|
$("#modal-material").on("click", "#hide-form-material", function () { |
|
$(this).hide(); |
|
resetFormAssignMaterial() |
|
$("#show-form-material").show(); |
|
}); |
|
|
|
$('#modal-material').on('show.bs.modal', function (event) { |
|
$('#modal-material-title').html("Material Resource " + activityName); |
|
tableMaterial.draw(); |
|
}); |
|
|
|
$('#modal-material').on('hide.bs.modal', function (event) { |
|
// $("#hide-form-material").hide(); |
|
$("#show-form-material").show(); |
|
console.log("there's before action change ", actionHappen); |
|
if (actionHappen) { |
|
console.log("there's action change ", actionHappen); |
|
updateActivity(activityId); |
|
} |
|
resetFormAssignMaterial(); |
|
}); |
|
|
|
$('#select-material').select2({ |
|
dropdownParent: materialModal, |
|
placeholder: 'Pilih material resource', |
|
allowClear: true, |
|
ajax: { |
|
url: `${base_url}material-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 |
|
} |
|
}); |
|
|
|
$('#select-material-integration').select2({ |
|
dropdownParent: materialModal, |
|
placeholder: 'Pilih material', |
|
allowClear: true, |
|
minimumInputLength: 3, |
|
ajax: { |
|
url: `${adwIntegrationUrl}/request-material/get-material-integration`, |
|
type: "get", |
|
data: function (params) { |
|
var query = { |
|
'name': params.term, |
|
} |
|
return query; |
|
}, |
|
headers: { |
|
'Authorization': `Bearer ${token}` |
|
}, |
|
processResults: function (data) { |
|
var dataIntegrasiMaterial = []; |
|
if (data.data) { |
|
for(var i = 0; i < data.data.length; i++){ |
|
var newData = { |
|
id: data.data[i].description, |
|
text: data.data[i].description, |
|
} |
|
dataIntegrasiMaterial.push(newData); |
|
} |
|
} |
|
return { |
|
results: dataIntegrasiMaterial |
|
}; |
|
}, error: function (jqXHR, textStatus, errorThrown) { |
|
// console.log("textStatus ", textStatus); |
|
if (textStatus != "abort") { |
|
// gantt.alert(`Status: ${textStatus}`); |
|
gantt.alert(`Data Not Found`); |
|
// gantt.alert(`Error accessing URL: ${adwIntegrationUrl}/request-material/get-material-integration`); |
|
} |
|
} |
|
} |
|
}); |
|
// $('#required-date-req-material').datepicker({ |
|
// format: 'dd-mm-yyyy', // Set the desired format |
|
// autoclose: true // Close the datepicker when a date is selected |
|
// }); |
|
// |
|
// $('#required-date-plan-material').datepicker({ |
|
// format: 'dd-mm-yyyy', // Set the desired format |
|
// autoclose: true // Close the datepicker when a date is selected |
|
// }); |
|
$("#form-assign-material").on('submit', function (e) { |
|
e.preventDefault(); |
|
|
|
$('#btn-assign-material').html('Assign...'); |
|
$('#btn-assign-material').prop("disabled", true); |
|
|
|
// /request-material/add |
|
let desc_req_material = $("#select-material-integration").val(); |
|
let required_date = $("#required-date-req-material").val(); |
|
let plan_date = $("#required-date-plan-material").val(); |
|
let uom = $("#uom-req-material").val(); |
|
let price = $("#price-req-material").val(); |
|
let qty_planning = $("#qty-req-material").val(); |
|
let material_id = null; |
|
|
|
let payload = { |
|
description: desc_req_material, |
|
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; |
|
resetFormAssignMaterial(); |
|
|
|
let payloadAssign = { |
|
proyek_id: proyekId, |
|
activity_id: activityId, |
|
material_id: material_id, |
|
qty_planning: qty_planning, |
|
plan_date: plan_date |
|
} |
|
$.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("Material Assign Success!"); |
|
tableMaterial.draw(); |
|
resetFormAssignMaterial(); |
|
} |
|
else { |
|
gantt.alert({ type: "error", text: data.message }); |
|
$('#btn-assign-material').html('Assign'); |
|
$('#btn-assign-material').prop("disabled", false); |
|
} |
|
}, |
|
error: function (data) { |
|
gantt.alert("Material Assign Failed, try again later!"); |
|
resetFormAssignMaterial(); |
|
} |
|
}); |
|
} |
|
else { |
|
gantt.alert({ type: "error", text: data.message }); |
|
$('#btn-assign-material').html('Assign'); |
|
$('#btn-assign-material').prop("disabled", false); |
|
} |
|
}, |
|
error: function (data) { |
|
gantt.alert("Material Request Failed, try again later!"); |
|
resetFormAssignMaterial(); |
|
} |
|
}); |
|
|
|
}); |
|
|
|
// delete from row |
|
$("#table-material").on("click", ".btn-material-delete", function () { |
|
let id = $(this).data('id'); |
|
var box = gantt.confirm({ |
|
text: "Material resource will be deleted from activity, continue?", |
|
ok: "Delete", |
|
cancel: "Cancel", |
|
callback: function (result) { |
|
if (result) { |
|
deleteMaterialAssign(id); |
|
} |
|
} |
|
}); |
|
}); |
|
});
|
|
|