var isValidProvider = false; var isValidCity = false; var isNationalCode = false; $(function () { // show modal form type $("#form-type").modal({ backdrop: "static" }); //reset form and refresh $('#reset').on('click', function () { location.reload(); }); // select device tupe $('.btn-type').on('click', function () { buildForm($(this).val()).then( (onResolved) => { $('#form-type').modal('hide') } ); }); // get all provinces $.ajax({ url: "https://rms.rmto.ir/cmms/provinces/all", type: "GET", headers: { accept: "application/json", "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, cache: false, contentType: false, processData: false, success: function (res) { $("#province").empty(); $("#province").append(''); $.each(res.data, function (key, value) { $("#province").append( "" ); }); }, }); // get cities by provicens_id and validation $("#province").change(function () { isValidProvider = false; var province_id = $(this).val(); if (province_id != 0) { $.ajax({ url: "https://rms.rmto.ir/api/cmms/cities?id=" + province_id, type: "GET", headers: { accept: "application/json", "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, cache: false, contentType: false, processData: false, success: function (res) { $("#city").empty(); $("#city").append(''); $.each(res.data, function (key, value) { $("#city").append( "" ); }); }, }); } else { $("#city").empty(); $("#city").append(''); } // validation province if (province_id != 0) { isValidProvider = true; } else { isValidProvider = false; } formValid(); }); // validation city $("#city").change(function () { isValidCity = false; var cityId = $(this).val(); if (cityId != 0) { isValidCity = true; } else { isValidCity = false; } formValid(); }); $(".ott").click(function (event) { if (event.target.type !== "radio") { $(":radio", this).trigger("click"); } }); // send all data $("#send").on("click", function () { var isRequire = true; var car_type = $("#car_type").val() var data = new FormData(); // append Moshakhasat if ($("#personal_num").val() != '') data.append("dedicated_number", $("#personal_num").val()); else isRequire = false if ($("#shasi_num").val() != '') data.append("chassis_number", $("#shasi_num").val()); else isRequire = false if ($("#province").val() != '') data.append("province_id", $("#province").val()); else isRequire = false if ($("#city").val() != '') data.append("city_id", $("#city").val()); else isRequire = false if ($("#device_name").val() != '') data.append("device_name", $("#device_name").val()); else isRequire = false if ($("#gps_code").val() != '') data.append("gps_code", $("#gps_code").val()); else isRequire = false if ($("#operator_name").val() != '') data.append("operator_name", $("#operator_name").val()); else isRequire = false if ($("#national_code").val() != '') data.append("operator_nationalcode", $("#national_code").val()); else isRequire = false if ($("#mobile").val() != '') data.append("operator_phone", $("#mobile").val()); else isRequire = false // check values undefined before append if (typeof $('input[name="motor"]:checked').val() !== "undefined") data.append("motor", $('input[name="motor"]:checked').val()); else isRequire = false if (typeof $('input[name="power"]:checked').val() !== "undefined") data.append("power", $('input[name="power"]:checked').val()); else isRequire = false if (typeof $('input[name="hydraulic"]:checked').val() !== "undefined") data.append("hydraulic", $('input[name="hydraulic"]:checked').val()); else isRequire = false if (car_type == "B") { if (typeof $('input[name="ripper"]:checked').val() !== "undefined") data.append("ripper", $('input[name="ripper"]:checked').val()); else isRequire = false } if (typeof $('input[name="zirbandi"]:checked').val() !== "undefined") data.append("zirbandi", $('input[name="zirbandi"]:checked').val()); else isRequire = false if (car_type == "G") { if (typeof $('input[name="jolobandi"]:checked').val() !== "undefined") data.append("jolobandi", $('input[name="jolobandi"]:checked').val()); else isRequire = false } if (car_type == "Ex") { if (typeof $('input[name="bucket"]:checked').val() !== "undefined") data.append("bucket", $('input[name="bucket"]:checked').val()); else isRequire = false } if (typeof $('input[name="chassis"]:checked').val() !== "undefined") data.append("chassis", $('input[name="chassis"]:checked').val()); else isRequire = false if (typeof $('input[name="electrical"]:checked').val() !== "undefined") data.append("electrical", $('input[name="electrical"]:checked').val()); else isRequire = false if (typeof $('input[name="safety"]:checked').val() !== "undefined") data.append("safety", $('input[name="safety"]:checked').val()); else isRequire = false if (typeof $('input[name="gps"]:checked').val() !== "undefined") data.append("gps", $('input[name="gps"]:checked').val()); else isRequire = false if (typeof $('input[name="color"]:checked').val() !== "undefined") data.append("color", $('input[name="color"]:checked').val()); else isRequire = false data.append("motor_description", $('input[name="motor_description"]').val()); data.append("power_description", $('input[name="power_description"]').val()); data.append("hydraulic_description", $('input[name="hydraulic_description"]').val()); if (car_type == "B") data.append("ripper_description", $('input[name="ripper_description"]').val()); data.append("zirbandi_description", $('input[name="zirbandi_description"]').val()); if (car_type == "G") data.append("jolobandi_description", $('input[name="jolobandi_description"]').val()); if (car_type == "Ex") data.append("bucket_description", $('input[name="bucket_description"]').val()); data.append("chassis_description", $('input[name="chassis_description"]').val()); data.append("electrical_description", $('input[name="electrical_description"]').val()); data.append("safety_description", $('input[name="safety_description"]').val()); data.append("gps_description", $('input[name="gps_description"]').val()); data.append("color_description", $('input[name="color_description"]').val()); data.append("service_description", $('input[name="service_description"]').val()); data.append("fuel_description", $('input[name="fuel_description"]').val()); if ($('input[name="motor_score"]').val() != '') data.append("motor_score", $('input[name="motor_score"]').val()); else isRequire = false if ($('input[name="power_score"]').val() != '') data.append("power_score", $('input[name="power_score"]').val()); else isRequire = false if ($('input[name="hydraulic_score"]').val() != '') data.append("hydraulic_score", $('input[name="hydraulic_score"]').val()); else isRequire = false if (car_type == "B") { if ($('input[name="ripper_score"]').val() != '') data.append("ripper_score", $('input[name="ripper_score"]').val()); else isRequire = false } if ($('input[name="zirbandi_score"]').val() != '') data.append("zirbandi_score", $('input[name="zirbandi_score"]').val()); else isRequire = false if (car_type == "G") { if ($('input[name="jolobandi_score"]').val() != '') data.append("jolobandi_score", $('input[name="jolobandi_score"]').val()); else isRequire = false } if (car_type == "Ex") { if ($('input[name="bucket_score"]').val() != '') data.append("bucket_score", $('input[name="bucket_score"]').val()); else isRequire = false } if ($('input[name="chassis_score"]').val() != '') data.append("chassis_score", $('input[name="chassis_score"]').val()); else isRequire = false if ($('input[name="electrical_score"]').val() != '') data.append("electrical_score", $('input[name="electrical_score"]').val()); else isRequire = false if ($('input[name="safety_score"]').val() != '') data.append("safety_score", $('input[name="safety_score"]').val()); else isRequire = false if ($('input[name="gps_score"]').val() != '') data.append("gps_score", $('input[name="gps_score"]').val()); else isRequire = false if ($('input[name="color_score"]').val() != '') data.append("color_score", $('input[name="color_score"]').val()); else isRequire = false if ($('input[name="service_status"]').val() != '') data.append("service_status", $('input[name="service_status"]').val()); else isRequire = false if ($('input[name="fuel_form"]').val() != '') data.append("fuel_form", $('input[name="fuel_form"]').val()); else isRequire = false // append total points data.append("total_points", $('input[name="total_points"]').val()); // check questions undefined before append if (typeof $('input[name="question1"]:checked').val() !== "undefined") data.append("question1", $('input[name="question1"]:checked').val()); else isRequire = false if (typeof $('input[name="question2"]:checked').val() !== "undefined") data.append("question2", $('input[name="question2"]:checked').val()); else isRequire = false if (typeof $('input[name="question3"]:checked').val() !== "undefined") data.append("question3", $('input[name="question3"]:checked').val()); else isRequire = false if (typeof $('input[name="question4"]:checked').val() !== "undefined") data.append("question4", $('input[name="question4"]:checked').val()); else isRequire = false if (typeof $('input[name="question5"]:checked').val() !== "undefined") data.append("question5", $('input[name="question5"]:checked').val()); else isRequire = false // append auditor and members data.append("auditor_name", $("#auditor_name").val()); data.append("member1_name", $("#member1_name").val()); data.append("member2_name", $("#member2_name").val()); data.append("member3_name", $("#member3_name").val()); data.append("auditor_position", $("#auditor_position").val()); data.append("member1_position", $("#member1_position").val()); data.append("member2_position", $("#member2_position").val()); data.append("member3_position", $("#member3_position").val()); // append auditor_name data.append("car_type", $("#car_type").val()); // append device images if (typeof $('#deviceImg1').get(0).files[0] !== "undefined") data.append("image1", $('#deviceImg1').get(0).files[0]); else isRequire = false if (typeof $('#deviceImg2').get(0).files[0] !== "undefined") data.append("image2", $('#deviceImg2').get(0).files[0]); else isRequire = false if (typeof $('#deviceImg3').get(0).files[0] !== "undefined") data.append("image3", $('#deviceImg3').get(0).files[0]); else isRequire = false // append proceedings file if (typeof $('#proceedingsFile').get(0).files[0] !== "undefined") data.append("file1", $('#proceedingsFile').get(0).files[0]); else isRequire = false if (isRequire) { $.ajax({ url: "https://rms.rmto.ir/cmms/create", type: "POST", headers: { accept: "application/json", "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, beforeSend: function () { $('#send').attr('disabled', 'disabled'); $('#send').text('در حال ثبت'); }, data: data, cache: false, contentType: false, processData: false, success: function (res) { $('#print').removeAttr('disabled'); $('#reset').removeAttr('disabled'); $('#form_number').val(res.data.form_number); $('#form-date').val(moment().format('jYYYY/jMM/jDD')) $('#send').text('ثبت شد'); $('#send').removeClass('btn-primary'); $('#send').addClass('btn-success'); }, error: function (xhr) { $('#send').removeAttr('disabled'); $('#send').text('ثبت'); }, }); } }); // print $('#print').on('click', function () { window.print(); }); // get live dedicated_number by search $("#personal_num").autocomplete({ source: function (request, response) { var reqData = new FormData(); reqData.append("data", request.term); $.ajax({ url: "https://rms.rmto.ir/api/cmms/search", type: "POST", headers: { accept: "application/json", "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, data: reqData, cache: false, contentType: false, processData: false, success: function (res) { response(res.data); }, }); }, select: function (event, ui) { var reqData = new FormData(); reqData.append("dedicated_number", ui.item.label); $.ajax({ url: "https://rms.rmto.ir/api/cmms/machine", type: "POST", headers: { accept: "application/json", "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), }, data: reqData, cache: false, contentType: false, processData: false, success: function (res) { console.log(res); resetMoshakhasat(); isValidProvider = false; isValidCity = false; if (typeof res.data.operator_nationalcode !== "undefined") { if (checkNationalCode(res.data.operator_nationalcode)) isNationalCode = true; } formValid(); $("#shasi_num").val(res.data.body_number); $("#currentProvince").text(res.data.unit_group_fa); $("#currentCity").text(res.data.unit_name); $("#device_name").val(res.data.car_name); $("#oprator_name").val(res.data.driver_name); $("#gps_code").val(res.data.gps_code); $("#national_code").val(res.data.operator_nationalcode); $("#operator_phone").val(res.data.mobile); }, }); }, minLength: 2, }); // check scores between 1 and 5 before sum scores $(".shakhes_input").keyup(function () { var total = 0; var inputs = $(".shakhes_input"); for (var i = 0; i < inputs.length; i++) { if (inputs[i].value != "") { total += parseInt(inputs[i].value); } } $("#total_points").val(total); }); $(".shakhes_input").bind('keypress', function (event) { var key = event.which; var str = String.fromCharCode(key); if (key == 0 || key === 32) { return true; } var re = ($(this).hasClass('zero')) ? /^[0-5]$/ : /^[1-5]$/ if (re.test(str)) { return true } return false }); //upload files $('.img-input').on('change', function () { var input = this; var parent = $(this).parents('.img-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').removeAttr('disabled'); parent.find('.img-preview') .attr('src', e.target.result); }; reader.readAsDataURL(input.files[0]); } }) $('#national_code').keyup(function () { if (checkNationalCode($(this).val())) { $('#national_code_err').css('display', 'none'); isNationalCode = true; formValid() return true; } else { $('#national_code_err').css('display', 'block'); isNationalCode = false; formValid() return false; } }) //clear files $('.btn-delete-img').on('click', function () { var parent = $(this).parents('.img-file'); parent.find('.img-input').val(''); parent.find('.img-preview').removeAttr('src'); parent.find('.img-title').css('display', ''); $(this).attr('disabled', 'disabled') }) //reset moshakhasat function resetMoshakhasat() { $("#shasi_num").val(""); $("#province").val(0); $("#city").val(0); $("#device_name").val(""); $("#currentProvince").text(""); $("#currentCity").text(""); $("#oprator_name").val(""); $("#national_code").val(""); $("#operator_phone").val(""); } //build form by car_type function buildForm(car_type) { //reset form $(".form-bil").css("display", "none"); $(".form-grader").css("display", "none"); $(".form-loder").css("display", "none"); $(".form-boldozer").css("display", "none"); //build form switch (car_type) { case "Ex": $(".form-bil").css("display", ""); break; case "L": $(".form-loder").css("display", ""); break; case "G": $(".form-grader").css("display", ""); break; case "B": $(".form-boldozer").css("display", ""); break; } // update car_type form $("#car_type").val(car_type); return Promise.resolve("Success"); } // validation form function formValid() { if (isValidProvider && isValidCity && isNationalCode) $('#send').removeAttr('disabled'); else $('#send').attr('disabled', 'disabled'); } function checkNationalCode(code) { var L = code.length; if (L < 8 || parseInt(code, 10) == 0) return false; code = ('0000' + code).substr(L + 4 - 10); if (parseInt(code.substr(3, 6), 10) == 0) return false; var c = parseInt(code.substr(9, 1), 10); var s = 0; for (var i = 0; i < 9; i++) s += parseInt(code.substr(i, 1), 10) * (10 - i); s = s % 11; return (s < 2 && c == s) || (s >= 2 && c == (11 - s)); } });