var mapUrl = 'https://rmsmap.rmto.ir/141map/'; var addMap = null; var editMap = null; var startMarkerAdd = null; var endMarkerAdd = null; var startMarkerEdit = null; var endMarkerEdit = null; var routeControls = []; var isSetStartMarkerAdd = false; var isSetEndMarkerAdd = false; var isSetStartMarkerEdit = false; var isSetEndMarkerEdit = false; var arrOprationsDisable = [0, 0, 0, 0] var projectsTable; var access = {} var PERMISSIONS = [] var startDivIcon = L.divIcon({ html: `
شروع
`, iconSize: [55, 75], iconAnchor: [33, 64], }); var endDivIcon = L.divIcon({ html: `
پایان
`, iconSize: [55, 75], iconAnchor: [33, 64], }); var startDivIconEdit = L.divIcon({ html: `
شروع
`, iconSize: [55, 75], iconAnchor: [33, 64], }); var endDivIconEdit = L.divIcon({ html: `
پایان
`, iconSize: [55, 75], iconAnchor: [33, 64], }); (function () { $.ajax({ url: "/webapi/user/get-permission", type: "GET", cache: false, async: false, contentType: false, processData: false, success: function (result) { PERMISSIONS = result.data console.log(PERMISSIONS, "PERMISSIONS") }, error: function (request) { ajax_error(request.responseJSON, request.status); } }) $.ajax({ /// [start] lawmaker_filter_province_url url: `/webapi/getuser/province-perm${$.inArray('show-proposal-province', PERMISSIONS) != -1 ? '?type=all' : ''}`, /// [end] lawmaker_filter_province_url type: "GET", beforeSend: function () { showLoaderScreen(); }, success: function (result) { const provinces = result.data; $("#province_excel").empty(); $("#province_excel").append(''); for (let index = 0; index < provinces.length; index++) { $("#province_excel").append( "\ \ " ); } hideLoaderScreen(); }, error: function (request) { ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); /// [START] proposal_add_btn if (!($.inArray('add-proposal', PERMISSIONS) != -1 || $.inArray('add-proposal-province', PERMISSIONS) != -1)) $('.add-contract-btn').remove() /// [END] proposal_add_btn $("[data-mask]").inputmask(); /// [start] proposal_add_province if ($.inArray('add-proposal', PERMISSIONS) != -1 || $.inArray('add-proposal-province', PERMISSIONS) != -1) { $.ajax({ /// [start] proposal_add_province_url url: `/webapi/getuser/province-perm${$.inArray('add-proposal', PERMISSIONS) != -1 ? '?type=all' : ''}`, /// [end] proposal_add_province_url type: "GET", beforeSend: function () { showLoaderScreen(); }, success: function (result) { const provinces = result.data; $("#add_project_province").empty(); $("#add_project_province").append(''); for (let index = 0; index < provinces.length; index++) { $("#add_project_province").append( "\ \ " ); } hideLoaderScreen(); }, error: function (request) { ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); } /// [end] proposal_add_province /// [start] proposal_edit_province if ($.inArray('edit-proposal', PERMISSIONS) != -1 || $.inArray('edit-proposal-province', PERMISSIONS) != -1) { $.ajax({ /// [start] proposal_edit_province_url url: `/webapi/getuser/province-perm${$.inArray('edit-proposal', PERMISSIONS) != -1 ? '?type=all' : ''}`, /// [end] proposal_edit_province_url type: "GET", beforeSend: function () { showLoaderScreen(); }, success: function (result) { const provinces = result.data; $("#edit_project_province").empty(); $("#edit_project_province").append(''); for (let index = 0; index < provinces.length; index++) { $("#edit_project_province").append( "\ \ " ); } hideLoaderScreen(); }, error: function (request) { ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); } /// [end] proposal_edit_province projectsTable = $("#table_projects").DataTable({ dom: "p>", pagingType: "simple_numbers", paging: true, destroy: true, responsive: true, language: { sEmptyTable: "هیچ داده‌ای در جدول وجود ندارد", sInfo: "نمایش _START_ تا _END_ از _TOTAL_ ردیف", sInfoEmpty: "نمایش 0 تا 0 از 0 ردیف", sInfoFiltered: "(فیلتر شده از _MAX_ ردیف)", sInfoPostFix: "", sInfoThousands: ",", sLengthMenu: "نمایش _MENU_ ردیف", sLoadingRecords: "در حال بارگذاری...", sProcessing: "در حال پردازش...", sSearch: "جستجو: ", sZeroRecords: "رکوردی با این مشخصات پیدا نشد", oPaginate: { sFirst: "برگه‌ی نخست", sLast: "برگه‌ی آخر", sNext: "بعدی", sPrevious: "قبلی", }, oAria: { sSortAscending: ": فعال سازی نمایش به صورت صعودی", sSortDescending: ": فعال سازی نمایش به صورت نزولی", }, }, order: [ [0, "desc"] ], processing: true, ajax: { url: "/webapi/proposal/get-data", type: "GET", beforeSend: function () { showLoaderScreen(); }, dataSrc: function (json) { hideLoaderScreen(); return json.data; }, error: function (request) { ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }, columns: [{ className: "text-center", data: null, render: function (data, type, row, meta) { return meta.row + 1; }, }, { data: 'unique_code', className: 'text-center' }, { data: 'project_title', className: 'text-center' }, { data: 'project_type_fa', className: 'text-center text-nowrap' }, { data: null, render: function (data, type, row) { return ''; }, className: 'text-center' }, { data: 'priority_project_fa', className: 'text-center' }, { data: 'followup_priority_project', className: 'text-center' }, { data: 'office_fa', className: 'text-center text-nowrap' }, { data: 'province_fa', className: 'text-center' }, { data: 'axis_name', className: 'text-center' }, { data: 'axis_type_fa', className: 'text-center' }, { className: "text-center", data: null, render: function (data) { const national_credit = parseInt(data.national_credit).toLocaleString('en'); return national_credit } }, { className: "text-center", data: null, render: function (data) { const province_credit = parseInt(data.province_credit).toLocaleString('en'); return province_credit } }, { data: null, render: function (data, type, row) { let content = '
' /// [start] proposal_edit_can if (data.canEdit) content += '' /// [end] proposal_edit_can /// [start] proposal_delete_can if (data.canDelete) content += '
' /// [end] proposal_delete_can content += '
' return content }, className: 'text-center' }, ], buttons: [ { text: '
خروجی به اکسل
', action: function (e, dt, node, config) { topPosition = $(e.target).parents('.btn-table-excel').offset().top + $(e.target).parents('.btn-table-excel').height() + 5 $(".parent-excel").css('top', topPosition) $(".parent-excel").css("display", "block"); }, }, ], }); })() function showLoaderScreen() { $(".divloader").css("display", "flex").hide().fadeIn(); } function hideLoaderScreen() { $(".divloader").fadeOut(); } function createAddMap() { var bounds = [ [42.9130026312, 75.6166317076], [20.5782370061, 35.5092252948], ]; addMap = L.map("add_map", { maxBounds: bounds, minZoom: 6, }).setView([35.7065000000, 51.3477000000], 7); L.tileLayer(`${mapUrl}{z}/{x}/{y}.png`, {}).addTo(addMap); setMarkerDefaultAdd() } function clearAddMap() { isSetStartMarkerAdd = false; isSetEndMarkerAdd = false; if (routeControls.length) { $(routeControls).each(function (index, control) { addMap.removeControl(control); routeControls.splice(routeControls.indexOf(index), 1); }); } addMap.removeLayer(startMarkerAdd); if (endMarkerAdd != null) { addMap.removeLayer(endMarkerAdd); } addMap.setView([35.7065000000, 51.3477000000], 7); setMarkerDefaultAdd() } function setMarkerDefaultAdd() { startMarkerAdd = new L.marker(L.latLng(addMap.getCenter()), { icon: startDivIcon, draggable: true, }).addTo(addMap); endMarkerAdd = new L.marker(L.latLng(addMap.getCenter()), { icon: endDivIcon, draggable: true, }) addMap.on("move", function () { if (!isSetStartMarkerAdd && !isSetEndMarkerAdd) { startMarkerAdd.setLatLng(L.latLng(addMap.getCenter())); $("#pin-marker-start").removeClass("pin-set").addClass("pin-move"); } if (isSetStartMarkerAdd && !isSetEndMarkerAdd) { endMarkerAdd.setLatLng(L.latLng(addMap.getCenter())); $("#pin-marker-end").removeClass("pin-set").addClass("pin-move"); } }); addMap.on("moveend", function () { if (!isSetStartMarkerAdd && !isSetEndMarkerAdd) { startMarkerAdd.setLatLng(L.latLng(addMap.getCenter())); $("#pin-marker-start").removeClass("pin-move pin-set"); } if (isSetStartMarkerAdd && !isSetEndMarkerAdd) { endMarkerAdd.setLatLng(L.latLng(addMap.getCenter())); $("#pin-marker-end").removeClass("pin-move pin-set"); } }); startMarkerAdd.on("click", function () { if (!isSetStartMarkerAdd) { startMarkerAdd.setLatLng(L.latLng(addMap.getCenter())); endMarkerAdd.setLatLng(L.latLng(addMap.getCenter())); isSetStartMarkerAdd = true; $("#pin-marker-start") .removeClass("pin-move pin-warn") .addClass("pin-set"); $("#add_project_start_map").val( startMarkerAdd.getLatLng().lat.toFixed(6) + startMarkerAdd.getLatLng().lng.toFixed(6) ); $( "#add_project_start_map" ).removeClass("validity-checker"); } endMarkerAdd.addTo(addMap); $(this).hide(); $("#pin-marker-start") .removeClass("pin-move pin-warn") .addClass("pin-set"); }) startMarkerAdd.on("drag", function () { $("#pin-marker-start").addClass("pin-move"); }); startMarkerAdd.on("dragend", function () { $("#pin-marker-start").removeClass("pin-move"); if ($("#pin-marker-start").hasClass("pin-set") || isSetStartMarkerAdd) { $("#pin-marker-start").addClass("pin-set"); $("#add_project_start_map").val( startMarkerAdd.getLatLng().lat.toFixed(6) + startMarkerAdd.getLatLng().lng.toFixed(6) ); $( "#add_project_start_map" ).removeClass("validity-checker"); checkMarkersAndDrawPath(); } else { addMap.setView(startMarkerAdd.getLatLng()); } }); endMarkerAdd.on("click", function () { if (!isSetEndMarkerAdd) { isSetEndMarkerAdd = true; $("#pin-marker-end").removeClass("pin-move").addClass("pin-set"); $("#add_project_end_map").val( endMarkerAdd.getLatLng().lat.toFixed(6) + endMarkerAdd.getLatLng().lng.toFixed(6) ); $( "#add_project_end_map" ).removeClass("validity-checker"); } checkMarkersAndDrawPath(); }) endMarkerAdd.on("drag", function () { $("#pin-marker-end").addClass("pin-move"); checkMarkersAndDrawPath(); }); endMarkerAdd.on("dragend", function () { $("#pin-marker-end").removeClass("pin-move"); if ($("#pin-marker-end").hasClass("pin-set") || isSetEndMarkerAdd) { $("#pin-marker-end").addClass("pin-set"); $("#add_project_end_map").val( endMarkerAdd.getLatLng().lat.toFixed(6) + endMarkerAdd.getLatLng().lng.toFixed(6) ); $( "#add_project_end_map" ).removeClass("validity-checker"); checkMarkersAndDrawPath(); } else { addMap.setView(endMarkerAdd.getLatLng()); } }); } function checkMarkersAndDrawPath() { if ( $("#pin-marker-start").hasClass("pin-set") && !$("#pin-marker-start").hasClass("pin-move") && $("#pin-marker-end").hasClass("pin-set") && !$("#pin-marker-end").hasClass("pin-move") ) { drawPath(); } } function drawPath() { if (routeControls.length) { $(routeControls).each(function (index, control) { addMap.removeControl(control); routeControls.splice(routeControls.indexOf(index), 1); }); } routeControls.push( L.Routing.control({ waypoints: [ L.latLng( parseFloat(startMarkerAdd.getLatLng().lat), parseFloat(startMarkerAdd.getLatLng().lng) ), L.latLng( parseFloat(endMarkerAdd.getLatLng().lat), parseFloat(endMarkerAdd.getLatLng().lng) ), ], fitSelectedRoutes: false, draggableWaypoints: true, createMarker: function () { return null; }, lineOptions: { addWaypoints: false, styles: [{ color: "#28a745", opacity: 0.8, weight: 5, },], }, }) .addTo(addMap) ); $(".leaflet-control-container").css("display", "none"); $(".leaflet-routing-container-hide").css("display", "none"); } function drawPathEdit() { if (routeControls.length) { $(routeControls).each(function (index, control) { editMap.removeControl(control); routeControls.splice(routeControls.indexOf(index), 1); }); } routeControls.push( L.Routing.control({ waypoints: [ L.latLng( parseFloat(startMarkerEdit.getLatLng().lat), parseFloat(startMarkerEdit.getLatLng().lng) ), L.latLng( parseFloat(endMarkerEdit.getLatLng().lat), parseFloat(endMarkerEdit.getLatLng().lng) ), ], fitSelectedRoutes: false, draggableWaypoints: true, createMarker: function () { return null; }, lineOptions: { addWaypoints: false, styles: [{ color: "#28a745", opacity: 0.8, weight: 5, },], }, }) .addTo(editMap) ); $(".leaflet-control-container").css("display", "none"); $(".leaflet-routing-container-hide").css("display", "none"); } function createEditMap(position) { var bounds = [ [42.9130026312, 75.6166317076], [20.5782370061, 35.5092252948], ]; editMap = L.map("edit_map", { maxBounds: bounds, minZoom: 6, }).setView([position.start.lat, position.start.lng], 7); L.tileLayer(`${mapUrl}{z}/{x}/{y}.png`, {}).addTo(editMap); setMarkerDefaultEdit(position) } function clearEditMap(position) { if (routeControls.length) { $(routeControls).each(function (index, control) { editMap.removeControl(control); routeControls.splice(routeControls.indexOf(index), 1); }); } editMap.removeLayer(startMarkerEdit); editMap.removeLayer(endMarkerEdit); editMap.setView([position.start.lat, position.start.lng], 7); setMarkerDefaultEdit(position) } function setMarkerDefaultEdit(position) { isSetStartMarkerEdit = true; isSetEndMarkerEdit = true; startMarkerEdit = new L.marker([position.start.lat, position.start.lng], { icon: startDivIconEdit, draggable: true, }).addTo(editMap); endMarkerEdit = new L.marker([position.end.lat, position.end.lng], { icon: endDivIconEdit, draggable: true, }).addTo(editMap); $("#edit_pin-marker-start") .removeClass("pin-move pin-warn") .addClass("pin-set"); $("#edit_project_start_map").val( position.start.lat + position.start.lng ); $("#edit_pin-marker-end") .removeClass("pin-move pin-warn") .addClass("pin-set"); $("#edit_project_end_map").val( position.end.lat + position.end.lng ); drawPathEdit(); startMarkerEdit.on("click", function () { $("#edit_project_start_map").val( startMarkerEdit.getLatLng().lat.toFixed(6) + startMarkerEdit.getLatLng().lng.toFixed(6) ); }) startMarkerEdit.on("drag", function () { $("#edit_pin-marker-start").addClass("pin-move"); }); startMarkerEdit.on("dragend", function () { $("#edit_pin-marker-start").removeClass("pin-move"); if ($("#edit_pin-marker-start").hasClass("pin-set") || isSetStartMarkerEdit) { $("#edit_pin-marker-start").addClass("pin-set"); $("#edit_project_start_map").val( startMarkerEdit.getLatLng().lat.toFixed(6) + startMarkerEdit.getLatLng().lng.toFixed(6) ); $( "#edit_project_start_map" ).removeClass("validity-checker"); drawPathEdit(); } else { editMap.setView(startMarkerEdit.getLatLng()); } }); endMarkerEdit.on("click", function () { $("#edit_project_end_map").val( endMarkerEdit.getLatLng().lat.toFixed(6) + endMarkerEdit.getLatLng().lng.toFixed(6) ); drawPathEdit(); }) endMarkerEdit.on("drag", function () { $("#edit_pin-marker-end").addClass("pin-move"); }); endMarkerEdit.on("dragend", function () { $("#edit_pin-marker-end").removeClass("pin-move"); if ($("#edit_pin-marker-end").hasClass("pin-set") || isSetEndMarkerEdit) { $("#edit_pin-marker-end").addClass("pin-set"); $("#edit_project_end_map").val( endMarkerEdit.getLatLng().lat.toFixed(6) + endMarkerEdit.getLatLng().lng.toFixed(6) ); $( "#edit_project_end_map" ).removeClass("validity-checker"); drawPathEdit(); } else { editMap.setView(endMarkerEdit.getLatLng()); } }); } $(document).bind('click', function (e) { const clicked = $(e.target); if (clicked.parents('.datepicker-container').length != 0) return false; if (clicked.parents('.select2-selection__choice').length != 0) return false; if (clicked.closest('.btn-table-filter').length == 0 && clicked.closest(".parent-filter").length == 0 && $(".parent-filter").css("display") != "none") { $(".parent-filter").css("display", "none"); } if (clicked.closest('.btn-table-excel').length == 0 && clicked.closest(".parent-excel").length == 0 && $(".parent-excel").css("display") != "none") { $(".parent-excel").css("display", "none"); } }); $(document).on('click', '.add-contract-btn', function () { const modal = $('#modal_add_project') modal.find('.input-project').val('') modal.find('.input-project').removeClass("validity-checker"); modal.find('.select-project').val(0) modal.find('.select-project').removeClass("validity-checker"); modal.find('.select-project-opration').empty() modal.find('.select-project-opration').prop('disabled', true) modal.find('.select-project-opration').removeClass("validity-checker"); modal.find('.input-project-opration').val('') modal.find('.input-project-opration').prop('disabled', true) modal.find('.input-project-opration').removeClass("validity-checker"); modal.find('.input-project-opration-type-unit').text('-') modal.find('.hidden-project-opration').val(0) modal.find('.input-project-credit').val('') modal.find('.input-project-credit').removeClass("validity-checker"); modal.find('.span-project-credit').text('0') modal.find('.img-input').val(''); modal.find('.img-preview').removeAttr('src'); modal.find('.img-title').css('display', ''); modal.find('.btn-delete-img').prop('disabled', true) modal.find('.img-box').removeClass("validity-checker"); modal.find('.file-input').val(''); modal.find('.file-title').map((index, titleElement) => { $(titleElement).text($(titleElement).data('defaultText')) }) modal.find('.btn-delete-file').prop('disabled', true) modal.find('.file-box').removeClass("validity-checker"); modal.find('#btn_add_project').prop('disabled', false) arrOprationsDisable = [0, 0, 0, 0] if (addMap == null) { setTimeout(() => { createAddMap(); }, 400); } else { clearAddMap() } modal.modal('show') }) $(document).on('click', '.btn-edit-project', function () { const modal = $('#modal_edit_project') const tr = $(this).closest("tr"); const row = projectsTable.row(tr); const positions = { start: { lat: row.data().start_lat, lng: row.data().start_lng }, end: { lat: row.data().end_lat, lng: row.data().end_lng } } modal.find('.input-project').val('') modal.find('.input-project').removeClass("validity-checker"); modal.find('.select-project').val(0) modal.find('.select-project').removeClass("validity-checker"); modal.find('.select-project-opration').empty() modal.find('.select-project-opration').removeClass("validity-checker"); modal.find('.input-project-opration').val('') modal.find('.input-project-opration').prop('disabled', true) modal.find('.input-project-opration').removeClass("validity-checker"); modal.find('.input-project-opration-type-unit').text('-') modal.find('.hidden-project-opration').val(0) modal.find('.input-project-credit').val('') modal.find('.input-project-credit').removeClass("validity-checker"); modal.find('.span-project-credit').text('0') modal.find('.img-input').val(''); modal.find('.img-preview').removeAttr('src'); modal.find('.img-title').css('display', ''); modal.find('.btn-delete-img').prop('disabled', true) modal.find('.img-box').removeClass("validity-checker"); modal.find('.file-input').val(''); modal.find('.file-title').map((index, titleElement) => { $(titleElement).text($(titleElement).data('defaultText')) }) modal.find('.btn-delete-file').prop('disabled', true) modal.find('.file-box').removeClass("validity-checker"); modal.find('#btn_edit_project').prop('disabled', false) arrOprationsDisable = [0, 0, 0, 0] modal.find(".select-project-opration").attr("disabled", false); modal.find(".select-project-opration").append(""); $.ajax({ url: "/csi/operation/" + row.data().project_type_id, type: "GET", cache: false, beforeSend: function () { showLoaderScreen(); }, contentType: false, processData: false, success: function (res) { $.each(res, function (key, value) { const unit = value.unit != "" ? value.unit : "-"; const amountable = value.amountable; modal.find(".select-project-opration").append(""); }); if (editMap == null) { setTimeout(() => { createEditMap(positions); }, 400); } else { clearEditMap(positions) } modal.find('#edit_project_id').val(row.data().id) modal.find('#modal_edit_uniqe_code').text(row.data().unique_code) modal.find('#edit_project_title').val(row.data().project_title) modal.find('#edit_project_type').val(row.data().project_type_id) const oprations = [ modal.find('#edit_project_opration_type_id_1').val(arrOprationsDisable[0] = row.data().operation_type_id1 != null ? row.data().operation_type_id1 : 0), modal.find('#edit_project_opration_type_id_2').val(arrOprationsDisable[1] = row.data().operation_type_id2 != null ? row.data().operation_type_id2 : 0), modal.find('#edit_project_opration_type_id_3').val(arrOprationsDisable[2] = row.data().operation_type_id3 != null ? row.data().operation_type_id3 : 0), modal.find('#edit_project_opration_type_id_4').val(arrOprationsDisable[3] = row.data().operation_type_id4 != null ? row.data().operation_type_id4 : 0), ] modal.find('#edit_project_opration_type_amount_1').val(row.data().operation_type_amount1 != null ? row.data().operation_type_amount1 : '') modal.find('#edit_project_opration_type_amount_2').val(row.data().operation_type_amount2 != null ? row.data().operation_type_amount2 : '') modal.find('#edit_project_opration_type_amount_3').val(row.data().operation_type_amount3 != null ? row.data().operation_type_amount3 : '') modal.find('#edit_project_opration_type_amount_4').val(row.data().operation_type_amount4 != null ? row.data().operation_type_amount4 : '') modal.find('#edit_project_opration_type_amount_1').prop('disabled', oprations[0].find('option:selected').attr('amountable') != 1 ? true : false) modal.find('#edit_project_opration_type_amount_2').prop('disabled', oprations[1].find('option:selected').attr('amountable') != 1 ? true : false) modal.find('#edit_project_opration_type_amount_3').prop('disabled', oprations[2].find('option:selected').attr('amountable') != 1 ? true : false) modal.find('#edit_project_opration_type_amount_4').prop('disabled', oprations[3].find('option:selected').attr('amountable') != 1 ? true : false) modal.find('#edit_project_opration_type_unit_1').text(oprations[0].find('option:selected').attr('unit')) modal.find('#edit_project_opration_type_unit_2').text(oprations[1].find('option:selected').attr('unit')) modal.find('#edit_project_opration_type_unit_3').text(oprations[2].find('option:selected').attr('unit')) modal.find('#edit_project_opration_type_unit_4').text(oprations[3].find('option:selected').attr('unit')) modal.find('#edit_project_opration_type_amountable_1').val(oprations[0].find('option:selected').attr('amountable')) modal.find('#edit_project_opration_type_amountable_2').val(oprations[1].find('option:selected').attr('amountable')) modal.find('#edit_project_opration_type_amountable_3').val(oprations[2].find('option:selected').attr('amountable')) modal.find('#edit_project_opration_type_amountable_4').val(oprations[3].find('option:selected').attr('amountable')) modal.find('.select-project-opration option').prop('disabled', false) for (let i = 0; i < arrOprationsDisable.length; i++) { if (arrOprationsDisable[i] != 0) modal.find(`.select-project-opration option[value=${arrOprationsDisable[i]}]`).prop('disabled', true) } modal.find('#edit_project_follower_person').val(row.data().follower_person ?? 0) modal.find('#edit_project_priority').val(row.data().priority_project) modal.find('#edit_project_followup_priority').val(row.data().followup_priority_project_id) modal.find('#edit_project_office').val(row.data().office_id) modal.find('#edit_project_province').val(row.data().province_id) modal.find('#edit_project_axis_name').val(row.data().axis_name) modal.find('#edit_project_axis_type').val(row.data().axis_type_id) modal.find('#edit_project_user_description').val(row.data().user_description) modal.find('#edit_project_national_credit').val(row.data().national_credit) modal.find('#edit_project_province_credit').val(row.data().province_credit != '0' ? row.data().province_credit : '') modal.find('#edit_project_national_credit_span').text(parseInt(row.data().national_credit).toLocaleString('en')) modal.find('#edit_project_province_credit_span').text(parseInt(row.data().province_credit != '0' ? row.data().province_credit : 0).toLocaleString('en')) if (row.data().document_image != null) { modal.find('.img-title').css('display', 'none') modal.find('.btn-delete-img').prop('disabled', false) modal.find('#edit_project_document_image_preview').attr('src', `/storage/${row.data().document_image}`) } modal.modal('show') hideLoaderScreen(); }, error: function (request) { ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); }) $(document).on('change', '.select-project-type', function () { const modal = $(this).parents('.modal') const projectType = $(this).val() modal.find('.select-project-opration').empty() modal.find('.select-project-opration').prop('disabled', true) modal.find('.select-project-opration').removeClass("validity-checker"); modal.find('.input-project-opration').val('') modal.find('.input-project-opration').prop('disabled', true) modal.find('.input-project-opration').removeClass("validity-checker"); modal.find('.input-project-opration-type-unit').text('-') modal.find('.hidden-project-opration').val(0) if (projectType != 0) { modal.find(".select-project-opration").attr("disabled", false); modal.find(".select-project-opration").append(""); $.ajax({ url: "/csi/operation/" + projectType, type: "GET", cache: false, beforeSend: function () { showLoaderScreen(); }, contentType: false, processData: false, success: function (res) { $.each(res, function (key, value) { const unit = value.unit != "" ? value.unit : "-"; const amountable = value.amountable; modal.find(".select-project-opration").append(""); }); hideLoaderScreen(); }, error: function (request) { ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); } }) $(document).on('click', '.btn-delete-project', function () { const tr = $(this).closest("tr"); const row = projectsTable.row(tr); Swal.fire({ icon: "warning", title: "آیا برای حذف مطمئن هستید؟", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "بله، حذف شود", cancelButtonText: "منصرف شدم!", showLoaderOnConfirm: true, preConfirm: () => { $.ajax({ url: "/webapi/proposal/delete/" + row.data().id, type: "POST", headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, cache: false, contentType: false, processData: false, beforeSend: function () { showLoaderScreen(); }, success: function (result) { hideLoaderScreen(); projectsTable.ajax.reload(null, false); }, error: function (request) { ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); }, }); }) $(document).on('change', '.select-project-opration', function () { const modal = $(this).parents('.modal') const oprationBox = $(this).parents('.box-project-opration') const boxIndex = oprationBox.data('boxIndex') const opration = { value: $(this).val(), unit: $(this).find('option:selected').attr('unit'), amountable: $(this).find('option:selected').attr('amountable') } oprationBox.find('.input-project-opration').val('') oprationBox.find('.input-project-opration').removeClass("validity-checker"); oprationBox.find('.input-project-opration').prop('disabled', opration.amountable != 1 ? true : false) oprationBox.find('.input-project-opration-type-unit').text(opration.unit) oprationBox.find('.hidden-project-opration').val(opration.amountable) if (arrOprationsDisable[boxIndex] != opration.value) arrOprationsDisable[boxIndex] = opration.value modal.find('.select-project-opration option').prop('disabled', false) for (let i = 0; i < arrOprationsDisable.length; i++) { if (arrOprationsDisable[i] != 0) modal.find(`.select-project-opration option[value=${arrOprationsDisable[i]}]`).prop('disabled', true) } }) $(document).on('click', '#btn_add_project', function () { const thisBtn = $(this) thisBtn.prop('disabled', true) const modal = $('#modal_add_project') let isValid = true; let hasOpration = false let isSizeValidImage = true let isSizeValidVideo = true let isSizeValidTechnical = true const project_title = modal.find('#add_project_title').val() const project_type_id = modal.find('#add_project_type').val() const project_type_fa = modal.find('#add_project_type option:selected').text() const operation_type_id1 = modal.find('#add_project_opration_type_id_1 option:selected').val() const operation_type_fa1 = modal.find('#add_project_opration_type_id_1 option:selected').text() const operation_type_unit1 = modal.find('#add_project_opration_type_id_1 option:selected').attr('unit') const operation_type_amount1 = modal.find('#add_project_opration_type_amount_1').val() const operation_type_amountable1 = $('#add_project_opration_type_amountable_1').val() const operation_type_id2 = modal.find('#add_project_opration_type_id_2 option:selected').val() const operation_type_fa2 = modal.find('#add_project_opration_type_id_2 option:selected').text() const operation_type_unit2 = modal.find('#add_project_opration_type_id_2 option:selected').attr('unit') const operation_type_amount2 = modal.find('#add_project_opration_type_amount_2').val() const operation_type_amountable2 = modal.find('#add_project_opration_type_amountable_2').val() const operation_type_id3 = modal.find('#add_project_opration_type_id_3 option:selected').val() const operation_type_fa3 = modal.find('#add_project_opration_type_id_3 option:selected').text() const operation_type_unit3 = modal.find('#add_project_opration_type_id_3 option:selected').attr('unit') const operation_type_amount3 = modal.find('#add_project_opration_type_amount_3').val() const operation_type_amountable3 = $('#add_project_opration_type_amountable_3').val() const operation_type_id4 = modal.find('#add_project_opration_type_id_4 option:selected').val() const operation_type_fa4 = modal.find('#add_project_opration_type_id_4 option:selected').text() const operation_type_unit4 = modal.find('#add_project_opration_type_id_4 option:selected').attr('unit') const operation_type_amount4 = modal.find('#add_project_opration_type_amount_4').val() const operation_type_amountable4 = $('#add_project_opration_type_amountable_4').val() const follower_person = modal.find('#add_project_follower_person').val() const follower_person_fa = modal.find('#add_project_follower_person option:selected').text() const priority_project = modal.find('#add_project_priority').val() const priority_project_fa = modal.find('#add_project_priority option:selected').text() const followup_priority_project_id = modal.find('#add_project_followup_priority').val() const followup_priority_project = modal.find('#add_project_followup_priority option:selected').text() const office_id = modal.find('#add_project_office').val() const office_fa = modal.find('#add_project_office option:selected').text() const province_id = modal.find('#add_project_province').val() const province_fa = modal.find('#add_project_province option:selected').text() const axis_type_id = modal.find('#add_project_axis_type').val() const axis_type_fa = modal.find('#add_project_axis_type option:selected').text() const axis_name = modal.find('#add_project_axis_name').val() const user_description = modal.find('#add_project_user_description').val() const national_credit = modal.find('#add_project_national_credit').val() const province_credit = modal.find('#add_project_province_credit').val() const document_image = modal.find('#add_project_document_image').get(0).files[0] const document_video = modal.find('#add_project_document_video').get(0).files[0] const document_technical = modal.find('#add_project_document_technical').get(0).files[0] const start_lat = startMarkerAdd.getLatLng().lat.toFixed(6) const start_lng = startMarkerAdd.getLatLng().lng.toFixed(6) const end_lat = endMarkerAdd.getLatLng().lat.toFixed(6) const end_lng = endMarkerAdd.getLatLng().lng.toFixed(6) if (project_title == '') { isValid = false modal.find('#add_project_title').addClass("validity-checker"); } else { modal.find('#add_project_title').removeClass("validity-checker"); } if (project_type_id == 0) { isValid = false modal.find('#add_project_type').addClass("validity-checker"); } else { modal.find('#add_project_type').removeClass("validity-checker"); } if (modal.find('#add_project_start_map').val() == '') { isValid = false modal.find('#add_project_start_map').addClass("validity-checker"); } else { modal.find('#add_project_start_map').removeClass("validity-checker"); } if (modal.find('#add_project_end_map').val() == '') { isValid = false modal.find('#add_project_end_map').addClass("validity-checker"); } else { modal.find('#add_project_end_map').removeClass("validity-checker"); } if (operation_type_id1 != 0) { hasOpration = true if (operation_type_amountable1 == 1 && operation_type_amount1 == '') { isValid = false modal.find('#add_project_opration_type_amount_1').addClass("validity-checker"); } else { modal.find('#add_project_opration_type_amount_1').removeClass("validity-checker"); } } if (operation_type_id2 != 0) { hasOpration = true if (operation_type_amountable2 == 1 && operation_type_amount2 == '') { isValid = false modal.find('#add_project_opration_type_amount_2').addClass("validity-checker"); } else { modal.find('#add_project_opration_type_amount_2').removeClass("validity-checker"); } } if (operation_type_id3 != 0) { hasOpration = true if (operation_type_amountable3 == 1 && operation_type_amount3 == '') { isValid = false modal.find('#add_project_opration_type_amount_3').addClass("validity-checker"); } else { modal.find('#add_project_opration_type_amount_3').removeClass("validity-checker"); } } if (operation_type_id4 != 0) { hasOpration = true if (operation_type_amountable4 == 1 && operation_type_amount4 == '') { isValid = false modal.find('#add_project_opration_type_amount_4').addClass("validity-checker"); } else { modal.find('#add_project_opration_type_amount_4').removeClass("validity-checker"); } } if (follower_person == 0) { isValid = false modal.find('#add_project_follower_person').addClass("validity-checker"); } else { modal.find('#add_project_follower_person').removeClass("validity-checker"); } if (priority_project == 0) { isValid = false modal.find('#add_project_priority').addClass("validity-checker"); } else { modal.find('#add_project_priority').removeClass("validity-checker"); } if (followup_priority_project_id == 0) { isValid = false modal.find('#add_project_followup_priority').addClass("validity-checker"); } else { modal.find('#add_project_followup_priority').removeClass("validity-checker"); } if (office_id == 0) { isValid = false modal.find('#add_project_office').addClass("validity-checker"); } else { modal.find('#add_project_office').removeClass("validity-checker"); } if (province_id == 0) { isValid = false modal.find('#add_project_province').addClass("validity-checker"); } else { modal.find('#add_project_province').removeClass("validity-checker"); } if (axis_type_id == 0) { isValid = false modal.find('#add_project_axis_type').addClass("validity-checker"); } else { modal.find('#add_project_axis_type').removeClass("validity-checker"); } if (axis_name == '') { isValid = false modal.find('#add_project_axis_name').addClass("validity-checker"); } else { modal.find('#add_project_axis_name').removeClass("validity-checker"); } if (national_credit == '') { isValid = false modal.find('#add_project_national_credit').addClass("validity-checker"); } else { modal.find('#add_project_national_credit').removeClass("validity-checker"); } if (typeof document_image === "undefined") { isValid = false modal.find('#add_project_document_image_label').addClass("validity-checker"); } else if (document_image.size >= 2000000) { isSizeValidImage = false modal.find('#add_project_document_image_label').addClass("validity-checker"); } else { modal.find('#add_project_document_image_label').removeClass("validity-checker"); } if (typeof document_video !== "undefined") { if (document_video.size >= 30000000) { isSizeValidVideo = false modal.find('#add_project_document_video_label').addClass("validity-checker"); } } if (typeof document_technical !== "undefined") { if (document_technical.size >= 5000000) { isSizeValidTechnical = false modal.find('#add_project_document_technical_label').addClass("validity-checker"); } } if (!isValid) { Swal.fire({ icon: "warning", title: "هشدار", text: "لطفا تمامی مقادیر اجباری را وارد کنید", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!hasOpration) { Swal.fire({ icon: "warning", title: "هشدار", text: "حداقل باید یک عملیات را وارد کنید", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!isSizeValidImage) { Swal.fire({ icon: "warning", title: "هشدار", text: "حجم فایل عکس بیشتر از حد مجاز است", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!isSizeValidVideo) { Swal.fire({ icon: "warning", title: "هشدار", text: "حجم فایل ویدیو بیشتر از حد مجاز است", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!isSizeValidTechnical) { Swal.fire({ icon: "warning", title: "هشدار", text: "حجم فایل فایل بیشتر از حد مجاز است", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else { let formData = new FormData(); formData.append("project_title", project_title); formData.append("project_type_id", project_type_id); formData.append("project_type_fa", project_type_fa); formData.append("office_id", office_id); formData.append("office_fa", office_fa); formData.append("province_id", province_id); formData.append("province_fa", province_fa); formData.append("axis_type_id", axis_type_id); formData.append("axis_type_fa", axis_type_fa); formData.append("axis_name", axis_name); formData.append("follower_person", follower_person); formData.append("follower_person_fa", follower_person_fa); formData.append("followup_priority_project_id", followup_priority_project_id); formData.append("followup_priority_project", followup_priority_project); formData.append("priority_project", priority_project); formData.append("priority_project_fa", priority_project_fa); if (operation_type_id1 != 0) { formData.append("operation_type_id1", operation_type_id1); formData.append("operation_type_fa1", operation_type_fa1); formData.append("operation_type_unit1", operation_type_unit1); formData.append("operation_type_amount1", operation_type_amount1); } if (operation_type_id2 != 0) { formData.append("operation_type_id2", operation_type_id2); formData.append("operation_type_fa2", operation_type_fa2); formData.append("operation_type_unit2", operation_type_unit2); formData.append("operation_type_amount2", operation_type_amount2); } if (operation_type_id3 != 0) { formData.append("operation_type_id3", operation_type_id3); formData.append("operation_type_fa3", operation_type_fa3); formData.append("operation_type_unit3", operation_type_unit3); formData.append("operation_type_amount3", operation_type_amount3); } if (operation_type_id4 != 0) { formData.append("operation_type_id4", operation_type_id4); formData.append("operation_type_fa4", operation_type_fa4); formData.append("operation_type_unit4", operation_type_unit4); formData.append("operation_type_amount4", operation_type_amount4); } formData.append("user_description", user_description); formData.append("national_credit", national_credit); formData.append("province_credit", province_credit != '' ? province_credit : '0'); if (typeof document_image !== "undefined") formData.append("document_image", document_image); if (typeof document_video !== "undefined") formData.append("document_video", document_video); if (typeof document_technical !== "undefined") formData.append("document_technical", document_technical); formData.append("start_lat", start_lat); formData.append("start_lng", start_lng); formData.append("end_lat", end_lat); formData.append("end_lng", end_lng); $.ajax({ url: "/webapi/proposal/store", type: "POST", data: formData, cache: false, contentType: false, processData: false, headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, beforeSend: function () { showLoaderScreen(); }, success: function (result) { thisBtn.prop('disabled', false) modal.modal('hide') hideLoaderScreen(); Swal.fire({ icon: "success", title: "ثبت موفق", text: "پروژه جدید با موفقیت ثبت شد", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }).then(result => { projectsTable.ajax.reload(null, false); }) }, error: function (request) { thisBtn.prop('disabled', false) ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); } }) $(document).on('click', '#btn_edit_project', function () { const thisBtn = $(this) thisBtn.prop('disabled', true) const modal = $('#modal_edit_project') let isValid = true; let hasOpration = false let isSizeValidImage = true let isSizeValidVideo = true let isSizeValidTechnical = true const id = modal.find('#edit_project_id').val() const project_title = modal.find('#edit_project_title').val() const project_type_id = modal.find('#edit_project_type').val() const project_type_fa = modal.find('#edit_project_type option:selected').text() const operation_type_id1 = modal.find('#edit_project_opration_type_id_1 option:selected').val() const operation_type_fa1 = modal.find('#edit_project_opration_type_id_1 option:selected').text() const operation_type_unit1 = modal.find('#edit_project_opration_type_id_1 option:selected').attr('unit') const operation_type_amount1 = modal.find('#edit_project_opration_type_amount_1').val() const operation_type_amountable1 = $('#edit_project_opration_type_amountable_1').val() const operation_type_id2 = modal.find('#edit_project_opration_type_id_2 option:selected').val() const operation_type_fa2 = modal.find('#edit_project_opration_type_id_2 option:selected').text() const operation_type_unit2 = modal.find('#edit_project_opration_type_id_2 option:selected').attr('unit') const operation_type_amount2 = modal.find('#edit_project_opration_type_amount_2').val() const operation_type_amountable2 = modal.find('#edit_project_opration_type_amountable_2').val() const operation_type_id3 = modal.find('#edit_project_opration_type_id_3 option:selected').val() const operation_type_fa3 = modal.find('#edit_project_opration_type_id_3 option:selected').text() const operation_type_unit3 = modal.find('#edit_project_opration_type_id_3 option:selected').attr('unit') const operation_type_amount3 = modal.find('#edit_project_opration_type_amount_3').val() const operation_type_amountable3 = $('#edit_project_opration_type_amountable_3').val() const operation_type_id4 = modal.find('#edit_project_opration_type_id_4 option:selected').val() const operation_type_fa4 = modal.find('#edit_project_opration_type_id_4 option:selected').text() const operation_type_unit4 = modal.find('#edit_project_opration_type_id_4 option:selected').attr('unit') const operation_type_amount4 = modal.find('#edit_project_opration_type_amount_4').val() const operation_type_amountable4 = $('#edit_project_opration_type_amountable_4').val() const follower_person = modal.find('#edit_project_follower_person').val() const follower_person_fa = modal.find('#edit_project_follower_person option:selected').text() const priority_project = modal.find('#edit_project_priority').val() const priority_project_fa = modal.find('#edit_project_priority option:selected').text() const followup_priority_project_id = modal.find('#edit_project_followup_priority').val() const followup_priority_project = modal.find('#edit_project_followup_priority option:selected').text() const office_id = modal.find('#edit_project_office').val() const office_fa = modal.find('#edit_project_office option:selected').text() const province_id = modal.find('#edit_project_province').val() const province_fa = modal.find('#edit_project_province option:selected').text() const axis_type_id = modal.find('#edit_project_axis_type').val() const axis_type_fa = modal.find('#edit_project_axis_type option:selected').text() const axis_name = modal.find('#edit_project_axis_name').val() const user_description = modal.find('#edit_project_user_description').val() const national_credit = modal.find('#edit_project_national_credit').val() const province_credit = modal.find('#edit_project_province_credit').val() const document_image = modal.find('#edit_project_document_image').get(0).files[0] const document_video = modal.find('#edit_project_document_video').get(0).files[0] const document_technical = modal.find('#edit_project_document_technical').get(0).files[0] const start_lat = startMarkerEdit.getLatLng().lat.toFixed(6) const start_lng = startMarkerEdit.getLatLng().lng.toFixed(6) const end_lat = endMarkerEdit.getLatLng().lat.toFixed(6) const end_lng = endMarkerEdit.getLatLng().lng.toFixed(6) if (project_title == '') { isValid = false modal.find('#edit_project_title').addClass("validity-checker"); } else { modal.find('#edit_project_title').removeClass("validity-checker"); } if (project_type_id == 0) { isValid = false modal.find('#edit_project_type').addClass("validity-checker"); } else { modal.find('#edit_project_type').removeClass("validity-checker"); } if (modal.find('#edit_project_start_map').val() == '') { isValid = false modal.find('#edit_project_start_map').addClass("validity-checker"); } else { modal.find('#edit_project_start_map').removeClass("validity-checker"); } if (modal.find('#edit_project_end_map').val() == '') { isValid = false modal.find('#edit_project_end_map').addClass("validity-checker"); } else { modal.find('#edit_project_end_map').removeClass("validity-checker"); } if (operation_type_id1 != 0) { hasOpration = true if (operation_type_amountable1 == 1 && operation_type_amount1 == '') { isValid = false modal.find('#edit_project_opration_type_amount_1').addClass("validity-checker"); } else { modal.find('#edit_project_opration_type_amount_1').removeClass("validity-checker"); } } if (operation_type_id2 != 0) { hasOpration = true if (operation_type_amountable2 == 1 && operation_type_amount2 == '') { isValid = false modal.find('#edit_project_opration_type_amount_2').addClass("validity-checker"); } else { modal.find('#edit_project_opration_type_amount_2').removeClass("validity-checker"); } } if (operation_type_id3 != 0) { hasOpration = true if (operation_type_amountable3 == 1 && operation_type_amount3 == '') { isValid = false modal.find('#edit_project_opration_type_amount_3').addClass("validity-checker"); } else { modal.find('#edit_project_opration_type_amount_3').removeClass("validity-checker"); } } if (operation_type_id4 != 0) { hasOpration = true if (operation_type_amountable4 == 1 && operation_type_amount4 == '') { isValid = false modal.find('#edit_project_opration_type_amount_4').addClass("validity-checker"); } else { modal.find('#edit_project_opration_type_amount_4').removeClass("validity-checker"); } } if (follower_person == 0) { isValid = false modal.find('#edit_project_follower_person').addClass("validity-checker"); } else { modal.find('#edit_project_follower_person').removeClass("validity-checker"); } if (priority_project == 0) { isValid = false modal.find('#edit_project_priority').addClass("validity-checker"); } else { modal.find('#edit_project_priority').removeClass("validity-checker"); } if (followup_priority_project_id == 0) { isValid = false modal.find('#edit_project_followup_priority').addClass("validity-checker"); } else { modal.find('#edit_project_followup_priority').removeClass("validity-checker"); } if (office_id == 0) { isValid = false modal.find('#edit_project_office').addClass("validity-checker"); } else { modal.find('#edit_project_office').removeClass("validity-checker"); } if (province_id == 0) { isValid = false modal.find('#edit_project_province').addClass("validity-checker"); } else { modal.find('#edit_project_province').removeClass("validity-checker"); } if (axis_type_id == 0) { isValid = false modal.find('#edit_project_axis_type').addClass("validity-checker"); } else { modal.find('#edit_project_axis_type').removeClass("validity-checker"); } if (axis_name == '') { isValid = false modal.find('#edit_project_axis_name').addClass("validity-checker"); } else { modal.find('#edit_project_axis_name').removeClass("validity-checker"); } if (national_credit == '') { isValid = false modal.find('#edit_project_national_credit').addClass("validity-checker"); } else { modal.find('#edit_project_national_credit').removeClass("validity-checker"); } if (typeof document_image !== "undefined") { if (document_image.size >= 2000000) { isSizeValidImage = false modal.find('#edit_project_document_image_label').addClass("validity-checker"); } } if (typeof document_video !== "undefined") { if (document_video.size >= 30000000) { isSizeValidVideo = false modal.find('#edit_project_document_video_label').addClass("validity-checker"); } } if (typeof document_technical !== "undefined") { if (document_technical.size >= 5000000) { isSizeValidTechnical = false modal.find('#edit_project_document_technical_label').addClass("validity-checker"); } } if (!isValid) { Swal.fire({ icon: "warning", title: "هشدار", text: "لطفا تمامی مقادیر اجباری را وارد کنید", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!hasOpration) { Swal.fire({ icon: "warning", title: "هشدار", text: "حداقل باید یک عملیات را وارد کنید", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!isSizeValidImage) { Swal.fire({ icon: "warning", title: "هشدار", text: "حجم فایل عکس بیشتر از حد مجاز است", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!isSizeValidVideo) { Swal.fire({ icon: "warning", title: "هشدار", text: "حجم فایل ویدیو بیشتر از حد مجاز است", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else if (!isSizeValidTechnical) { Swal.fire({ icon: "warning", title: "هشدار", text: "حجم فایل فایل بیشتر از حد مجاز است", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); thisBtn.prop('disabled', false) return false } else { let formData = new FormData(); formData.append("project_title", project_title); formData.append("project_type_id", project_type_id); formData.append("project_type_fa", project_type_fa); formData.append("office_id", office_id); formData.append("office_fa", office_fa); formData.append("province_id", province_id); formData.append("province_fa", province_fa); formData.append("axis_type_id", axis_type_id); formData.append("axis_type_fa", axis_type_fa); formData.append("axis_name", axis_name); formData.append("follower_person", follower_person); formData.append("follower_person_fa", follower_person_fa); formData.append("followup_priority_project_id", followup_priority_project_id); formData.append("followup_priority_project", followup_priority_project); formData.append("priority_project", priority_project); formData.append("priority_project_fa", priority_project_fa); if (operation_type_id1 != 0) { formData.append("operation_type_id1", operation_type_id1); formData.append("operation_type_fa1", operation_type_fa1); formData.append("operation_type_unit1", operation_type_unit1); formData.append("operation_type_amount1", operation_type_amount1); } if (operation_type_id2 != 0) { formData.append("operation_type_id2", operation_type_id2); formData.append("operation_type_fa2", operation_type_fa2); formData.append("operation_type_unit2", operation_type_unit2); formData.append("operation_type_amount2", operation_type_amount2); } if (operation_type_id3 != 0) { formData.append("operation_type_id3", operation_type_id3); formData.append("operation_type_fa3", operation_type_fa3); formData.append("operation_type_unit3", operation_type_unit3); formData.append("operation_type_amount3", operation_type_amount3); } if (operation_type_id4 != 0) { formData.append("operation_type_id4", operation_type_id4); formData.append("operation_type_fa4", operation_type_fa4); formData.append("operation_type_unit4", operation_type_unit4); formData.append("operation_type_amount4", operation_type_amount4); } formData.append("user_description", user_description); formData.append("national_credit", national_credit); formData.append("province_credit", province_credit != '' ? province_credit : '0'); formData.append("start_lat", start_lat); formData.append("start_lng", start_lng); formData.append("end_lat", end_lat); formData.append("end_lng", end_lng); if (typeof document_image !== "undefined") formData.append("document_image", document_image); if (typeof document_video !== "undefined") formData.append("document_video", document_video); if (typeof document_technical !== "undefined") formData.append("document_technical", document_technical); $.ajax({ url: "/webapi/proposal/update/" + id, type: "POST", data: formData, cache: false, contentType: false, processData: false, headers: { "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, beforeSend: function () { showLoaderScreen(); }, success: function (result) { thisBtn.prop('disabled', false) modal.modal('hide') hideLoaderScreen(); Swal.fire({ icon: "success", title: "ویرایش موفق", text: "پروژه با موفقیت ویرایش شد", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }).then(result => { projectsTable.ajax.reload(null, false); }) }, error: function (request) { thisBtn.prop('disabled', false) ajax_error(request.responseJSON, request.status); hideLoaderScreen(); }, }); } }) $(document).on('click', '.btn-opration-type', function () { const modal = $('#modal_oprations'); const tr = $(this).closest("tr"); const row = projectsTable.row(tr); modal.find('input').val('') modal.find('#modal_unique_code').text(row.data().unique_code) modal.find('#modal_oprations_type_fa1').val(row.data().operation_type_fa1) modal.find('#modal_oprations_type_amount1').val(row.data().operation_type_amount1) modal.find('#modal_oprations_type_unit1').val(row.data().operation_type_unit1) modal.find('#modal_oprations_type_fa2').val(row.data().operation_type_fa2) modal.find('#modal_oprations_type_amount2').val(row.data().operation_type_amount2) modal.find('#modal_oprations_type_unit2').val(row.data().operation_type_unit2) modal.find('#modal_oprations_type_fa3').val(row.data().operation_type_fa3) modal.find('#modal_oprations_type_amount3').val(row.data().operation_type_amount3) modal.find('#modal_oprations_type_unit3').val(row.data().operation_type_unit3) modal.find('#modal_oprations_type_progress3').val(row.data().operation_type_progress3) modal.find('#modal_oprations_type_fa4').val(row.data().operation_type_fa4) modal.find('#modal_oprations_type_amount4').val(row.data().operation_type_amount4) modal.find('#modal_oprations_type_unit4').val(row.data().operation_type_unit4) modal.modal('show') }) $(document).on('input', '.input-project-credit', function () { var parent = $(this).closest('.project-credit-box') if ($(this).val() == '') { parent.find('.span-project-credit').text('0') return false; } parent.find('.span-project-credit').text(parseInt($(this).val()).toLocaleString('en')) }); $('input[type=text]').bind('keypress', function (event) { const arabicCharUnicodeRange = /[\u0600-\u06FF-0-9-45]/; const key = event.which; if (key == 8 || key == 0 || key === 32) { return true; } var str = String.fromCharCode(key); if (arabicCharUnicodeRange.test(str)) { return true; } Swal.fire({ icon: "warning", title: "هشدار", text: "لطفا فقط از حروف فارسی استفاده کنید", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); return false; }) $('textarea').bind('keypress', function (event) { const arabicCharUnicodeRange = /[\u0600-\u06FF-0-9-45]/; const key = event.which; if (key == 8 || key == 0 || key === 32) { return true; } var str = String.fromCharCode(key); if (arabicCharUnicodeRange.test(str)) { return true; } Swal.fire({ icon: "warning", title: "هشدار", text: "لطفا فقط از حروف فارسی استفاده کنید", cancelButtonText: "بستن", showConfirmButton: false, showCancelButton: true, }); return false; }) // add lat lng with input $("#modal_add_project input[name=add_project_start_map]").on( "keyup", function () { checkStartMarkerValidation(); } ); $("#modal_add_project input[name=add_project_end_map]").on( "keyup", function () { checkEndMarkerValidation(); } ); function checkStartMarkerValidation(forSaveData = false, pageOnLoad = false) { let reg = /^([0-9]){2}\.([0-9])+$/; let startLatLngVal = $( "#modal_add_project input[name=add_project_start_map]" ) .val() .split(" - "); let startLatLng = startLatLngVal.map(function (e) { e = e.replace(/_/g, ""); return parseFloat(e.slice(1, -1)); }); if (isNaN(startLatLng[0])) { if (!forSaveData) { $( "#modal_add_project input[name=add_project_start_map]" ).removeClass("is-invalid-input"); } else { $( "#modal_add_project input[name=add_project_start_map]" ).addClass("is-invalid-input"); } $("#pin-marker-start").removeClass("pin-move pin-set"); $("#modal_add_project input[name=add_project_start_map]").val(""); $("#modal_add_project input[name=add_project_start_map]").attr( "placeholder", "(شروع) => (عرض جغرافیایی) - (طول جغرافیایی)" ); return false; } else if (!startLatLng == 2 || !reg.test(startLatLng[0]) || !reg.test(startLatLng[1]) ) { $( "#modal_add_project input[name=add_project_start_map]" ).addClass("is-invalid-input"); $("#pin-marker-start").removeClass("pin-move pin-set"); return false; } else { if (!forSaveData) { $( "#modal_add_project input[name=add_project_start_map]" ).removeClass("is-invalid-input"); startMarkerAdd.setLatLng(startLatLng); if (pageOnLoad) { setTimeout(() => { $("#pin-marker-start").removeClass("pin-move").addClass("pin-set"); startMarkerAdd.setLatLng(startLatLng); }, 10); } else { $("#pin-marker-start").removeClass("pin-move").addClass("pin-set"); } if (!isSetEndMarkerAdd) { let markerLatLng = [ startMarkerAdd.getLatLng().lat, startMarkerAdd.getLatLng().lng + 0.0008, ]; addMap.setView(markerLatLng); endMarkerAdd.setLatLng(markerLatLng); if (!isSetStartMarkerAdd) { endMarkerAdd.addTo(addMap); } } isSetStartMarkerAdd = true; } checkMarkersAndDrawPath(); return true; } } function checkEndMarkerValidation(forSaveData = false, pageOnLoad = false) { let reg = /^([0-9]){2}\.([0-9])+$/; let endLatLngVal = $( "#modal_add_project input[name=add_project_end_map]" ) .val() .split(" - "); let endLatLng = endLatLngVal.map(function (e) { e = e.replace(/_/g, ""); return parseFloat(e.slice(1, -1)); }); if (isNaN(endLatLng[0])) { if (!forSaveData) { $( "#modal_add_project input[name=add_project_end_map]" ).removeClass("is-invalid-input"); } else { $( "#modal_add_project input[name=add_project_end_map]" ).addClass("is-invalid-input"); } $("#pin-marker-end").removeClass("pin-move pin-set"); $("#modal_add_project input[name=add_project_end_map]").val(""); $("#modal_add_project input[name=add_project_end_map]").attr( "placeholder", "(پایان) => (عرض جغرافیایی) - (طول جغرافیایی)" ); return false; } else if (!endLatLng == 2 || !reg.test(endLatLng[0]) || !reg.test(endLatLng[1]) ) { $("#modal_add_project input[name=add_project_end_map]").addClass( "is-invalid-input" ); $("#pin-marker-end").removeClass("pin-move pin-set"); return false; } else { if (!forSaveData) { $( "#modal_add_project input[name=add_project_end_map]" ).removeClass("is-invalid-input"); endMarkerAdd.setLatLng(endLatLng); isSetEndMarkerAdd = true; if (pageOnLoad) { setTimeout(() => { $("#pin-marker-end").removeClass("pin-move").addClass("pin-set"); endMarkerAdd.setLatLng(endLatLng); }, 10); } else { $("#pin-marker-end").removeClass("pin-move").addClass("pin-set"); } } else { projectEditData["project-end-latlng"] = [ endMarkerAdd.getLatLng().lat.toFixed(6), endMarkerAdd.getLatLng().lng.toFixed(6), ]; } checkMarkersAndDrawPath(); return true; } } //add lat lng with input // edit lat lng with input $("#modal_edit_project input[name=edit_project_start_map]").on( "keyup", function () { checkStartMarkerValidationEdit(); } ); $("#modal_edit_project input[name=edit_project_end_map]").on( "keyup", function () { checkEndMarkerValidationEdit(); } ); $('.img-input').on('change', function () { var input = this; var parent = $(this).parents('.file'); if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { parent.find('.img-title').css('display', 'none') parent.find('.btn-delete-img').prop('disabled', false) parent.find('.img-preview') .attr('src', e.target.result); }; reader.readAsDataURL(input.files[0]); } }) $('.btn-delete-img').on('click', function () { var parent = $(this).parents('.file'); parent.find('.img-input').val(''); parent.find('.img-preview').removeAttr('src'); parent.find('.img-title').css('display', ''); $(this).prop('disabled', true) }) $('.file-input').on('change', function () { var input = this; var parent = $(this).parents('.file'); if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { parent.find('.file-title').text(input.files[0].name) parent.find('.btn-delete-file').prop('disabled', false) }; reader.readAsDataURL(input.files[0]); } }) $('.btn-delete-file').on('click', function () { var parent = $(this).parents('.file'); parent.find('.file-input').val(''); parent.find('.file-title').text(parent.find('.file-title').data('defaultText')) $(this).prop('disabled', true) }) function checkStartMarkerValidationEdit(forSaveData = false, pageOnLoad = false) { let reg = /^([0-9]){2}\.([0-9])+$/; let startLatLngVal = $( "#modal_edit_project input[name=edit_project_start_map]" ) .val() .split(" - "); let startLatLng = startLatLngVal.map(function (e) { e = e.replace(/_/g, ""); return parseFloat(e.slice(1, -1)); }); if (isNaN(startLatLng[0])) { if (!forSaveData) { $( "#modal_edit_project input[name=edit_project_start_map]" ).removeClass("is-invalid-input"); } else { $( "#modal_edit_project input[name=edit_project_start_map]" ).addClass("is-invalid-input"); } $("#edit-pin-marker-start").removeClass("pin-move pin-set"); $("#modal_edit_project input[name=edit_project_start_map]").val(""); $("#modal_edit_project input[name=edit_project_start_map]").attr( "placeholder", "(شروع) => (عرض جغرافیایی) - (طول جغرافیایی)" ); return false; } else if (!startLatLng == 2 || !reg.test(startLatLng[0]) || !reg.test(startLatLng[1]) ) { $( "#modal_edit_project input[name=edit_project_start_map]" ).addClass("is-invalid-input"); $("#edit-pin-marker-start").removeClass("pin-move pin-set"); return false; } else { if (!forSaveData) { $( "#modal_edit_project input[name=edit_project_start_map]" ).removeClass("is-invalid-input"); startMarkerEdit.setLatLng(startLatLng); if (pageOnLoad) { setTimeout(() => { $("#edit-pin-marker-start").removeClass("pin-move").addClass("pin-set"); startMarkerEdit.setLatLng(startLatLng); }, 10); } else { $("#edit-pin-marker-start").removeClass("pin-move").addClass("pin-set"); } if (!isSetEndMarkerEdit) { let markerLatLng = [ startMarkerEdit.getLatLng().lat, startMarkerEdit.getLatLng().lng + 0.0008, ]; editMap.setView(markerLatLng); endMarkerEdit.setLatLng(markerLatLng); if (!isSetStartMarkerAdd) { endMarkerEdit.addTo(editMap); } } isSetStartMarkerEdit = true; } drawPathEdit(); return true; } } function checkEndMarkerValidationEdit(forSaveData = false, pageOnLoad = false) { let reg = /^([0-9]){2}\.([0-9])+$/; let endLatLngVal = $( "#modal_edit_project input[name=edit_project_end_map]" ) .val() .split(" - "); let endLatLng = endLatLngVal.map(function (e) { e = e.replace(/_/g, ""); return parseFloat(e.slice(1, -1)); }); if (isNaN(endLatLng[0])) { if (!forSaveData) { $( "#modal_edit_project input[name=edit_project_end_map]" ).removeClass("is-invalid-input"); } else { $( "#modal_edit_project input[name=edit_project_end_map]" ).addClass("is-invalid-input"); } $("#edit-pin-marker-end").removeClass("pin-move pin-set"); $("#modal_edit_project input[name=edit_project_end_map]").val(""); $("#modal_edit_project input[name=edit_project_end_map]").attr( "placeholder", "(پایان) => (عرض جغرافیایی) - (طول جغرافیایی)" ); return false; } else if (!endLatLng == 2 || !reg.test(endLatLng[0]) || !reg.test(endLatLng[1]) ) { $("#modal_edit_project input[name=edit_project_end_map]").addClass( "is-invalid-input" ); $("#edit-pin-marker-end").removeClass("pin-move pin-set"); return false; } else { if (!forSaveData) { $( "#modal_edit_project input[name=edit_project_end_map]" ).removeClass("is-invalid-input"); endMarkerEdit.setLatLng(endLatLng); isSetEndMarkerAdd = true; if (pageOnLoad) { setTimeout(() => { $("#edit-pin-marker-end").removeClass("pin-move").addClass("pin-set"); endMarkerEdit.setLatLng(endLatLng); }, 10); } else { $("#edit-pin-marker-end").removeClass("pin-move").addClass("pin-set"); } } drawPathEdit(); return true; } } //edit lat lng with input $("table").on("click", "tbody tr", function () { $("tr.selected").find("i").css("color", ""); $("tr.selected").css("color", ""); $("tr.selected").removeClass("selected"); $(this).addClass("selected"); $(this).css("color", "white"); $(this).find("i").css("color", "white"); }); $(document).on('click', '#btn_excel_download', function () { let queryParems = [] const province = $('#province_excel').val() if (province != 0) queryParems.push(`province=${province}`) const url = `/reports/proposal${queryParems.length != 0 ? `?${queryParems.join('&')}` : ''}` window.open(url, '_blank') })