i am new at php, i am trying to understand how this code generating random number when clicked the button ( genbutton ) . it is generating 8 digit numbers, i want to change it to 13 digit.
button get the 'gencode' but there is not file name as gencode.php also there is no function calls gencode. probably it has a easy answer and i dont know because i am new.
@section('content')
<section class="forms">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header d-flex align-items-center">
<h4></h4>
</div>
<div class="card-body">
<p class="italic"><small>.</small></p>
<form id="product-form">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label> *</strong> </label>
<div class="input-group">
<select name="type" required class="form-control selectpicker" id="type">
<option value="standard">Standard</option>
<option value="combo">Combo</option>
<option value="digital">Digital</option>
</select>
</div>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label> *</strong> </label>
<input type="text" name="name" class="form-control" id="name" aria-describedby="name" required>
<span class="validation-msg" id="name-error"></span>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label> *</strong> </label>
<div class="input-group">
<input type="text" name="code" class="form-control" id="code" aria-describedby="code" required>
<div class="input-group-append">
<button id="genbutton" type="button" class="btn btn-sm btn-default" title=""><i class="fa fa-refresh"></i></button>
</div>
</div>
<span class="validation-msg" id="code-error"></span>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label> *</strong> </label>
<div class="input-group">
<select name="barcode_symbology" required class="form-control selectpicker">
<option value="C128">Code 128</option>
<option value="C39">Code 39</option>
<option value="UPCA">UPC-A</option>
<option value="UPCE">UPC-E</option>
<option value="EAN8">EAN-8</option>
<option value="EAN13">EAN-13</option>
</select>
</div>
</div>
</div>
<div id="digital" class="col-md-4">
<div class="form-group">
<label> *</strong> </label>
<div class="input-group">
<input type="file" name="file" class="form-control">
</div>
<span class="validation-msg"></span>
</div>
</div>
<div id="combo" class="col-md-9 mb-1">
<label></label>
<div class="search-box input-group mb-3">
<button class="btn btn-secondary"><i class="fa fa-barcode"></i></button>
<input type="text" name="product_code_name" id="lims_productcodeSearch" placeholder="Please type product code and select..." class="form-control" />
</div>
<label></label>
<div class="table-responsive">
<table id="myTable" class="table table-hover order-list">
<thead>
<tr>
<th></th>
<th></th>
<th></th>
<th><i class="dripicons-trash"></i></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<div class="table-responsive ml-2">
<table id="variant-table" class="table table-hover variant-list">
<thead>
<tr>
<th><i class="dripicons-view-apps"></i></th>
<th></th>
<th></th>
<th></th>
<th><i class="dripicons-trash"></i></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="col-md-4 mt-3">
<input name="promotion" type="checkbox" id="promotion" value="1">
<label><h5> </h5></label>
</div>
<div class="col-md-12">
<div class="row">
<div class="col-md-4" id="promotion_price">
<label></label>
<input type="number" name="promotion_price" class="form-control" step="any" />
</div>
<div class="col-md-4" id="start_date">
<div class="form-group">
<label></label>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text"><i class="dripicons-calendar"></i></div>
</div>
<input type="text" name="starting_date" id="starting_date" class="form-control" />
</div>
</div>
</div>
<div class="col-md-4" id="last_date">
<div class="form-group">
<label></label>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text"><i class="dripicons-calendar"></i></div>
</div>
<input type="text" name="last_date" id="ending_date" class="form-control" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="form-group">
<input type="button" value="" id="submit-btn" class="btn btn-primary">
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
<script type="text/javascript">
$("ul#product").siblings('a').attr('aria-expanded','true');
$("ul#product").addClass("show");
$("ul#product #product-create-menu").addClass("active");
$("#digital").hide();
$("#combo").hide();
$("#variant-section").hide();
$("#promotion_price").hide();
$("#start_date").hide();
$("#last_date").hide();
$('[data-toggle="tooltip"]').tooltip();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#genbutton').on("click", function(){
$.get('gencode', function(data){
$("input[name='code']").val(data);
});
});
tinymce.init({
selector: 'textarea',
height: 130,
plugins: [
'advlist autolink lists link image charmap print preview anchor textcolor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table contextmenu paste code wordcount'
],
toolbar: 'insert | undo redo | formatselect | bold italic backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat',
branding:false
});
$('select[name="type"]').on('change', function() {
if($(this).val() == 'combo'){
$("input[name='cost']").prop('required',false);
$("select[name='unit_id']").prop('required',false);
hide();
$("#combo").show(300);
$("input[name='price']").prop('disabled',true);
$("#is-variant").prop("checked", false);
$("#variant-section, #variant-option").hide(300);
}
else if($(this).val() == 'digital'){
$("input[name='cost']").prop('required',false);
$("select[name='unit_id']").prop('required',false);
$("input[name='file']").prop('required',true);
hide();
$("#digital").show(300);
$("#combo").hide(300);
$("input[name='price']").prop('disabled',false);
$("#is-variant").prop("checked", false);
$("#variant-section, #variant-option").hide(300);
}
else if($(this).val() == 'standard'){
$("input[name='cost']").prop('required',true);
$("select[name='unit_id']").prop('required',true);
$("input[name='file']").prop('required',false);
$("#cost").show(300);
$("#unit").show(300);
$("#alert-qty").show(300);
$("#variant-option").show(300);
$("#digital").hide(300);
$("#combo").hide(300);
$("input[name='price']").prop('disabled',false);
}
});
$('select[name="unit_id"]').on('change', function() {
unitID = $(this).val();
if(unitID) {
populate_category(unitID);
}else{
$('select[name="sale_unit_id"]').empty();
$('select[name="purchase_unit_id"]').empty();
}
});
<?php $productArray = []; ?>
var lims_product_code = [ @foreach($lims_product_list as $product)
<?php
$productArray[] = $product->code . ' [ ' . $product->name . ' ]';
?>
@endforeach
<?php
echo '"'.implode('","', $productArray).'"';
?> ];
var lims_productcodeSearch = $('#lims_productcodeSearch');
lims_productcodeSearch.autocomplete({
source: function(request, response) {
var matcher = new RegExp(".?" + $.ui.autocomplete.escapeRegex(request.term), "i");
response($.grep(lims_product_code, function(item) {
return matcher.test(item);
}));
},
select: function(event, ui) {
var data = ui.item.value;
$.ajax({
type: 'GET',
url: 'search',
data: {
data: data
},
success: function(data) {
var flag = 1;
$(".product-id").each(function() {
if ($(this).val() == data[4]) {
alert('Duplicate input is not allowed!')
flag = 0;
}
});
$("input[name='product_code_name']").val('');
if(flag){
var newRow = $("<tr>");
var cols = '';
cols += '<td>' + data[0] +' [' + data[1] + ']</td>';
cols += '<td><input type="number" class="form-control qty" name="product_qty[]" value="1" step="any"/></td>';
cols += '<td><input type="number" class="form-control unit_price" name="unit_price[]" value="' + data[3] + '" step="any"/></td>';
cols += '<td><button type="button" class="ibtnDel btn btn-sm btn-danger">X</button></td>';
cols += '<input type="hidden" class="product-id" name="product_id[]" value="' + data[4] + '"/>';
newRow.append(cols);
$("table.order-list tbody").append(newRow);
calculate_price();
}
}
});
}
});
//Change quantity or unit price
$("#myTable").on('input', '.qty , .unit_price', function() {
calculate_price();
});
//Delete product
$("table.order-list tbody").on("click", ".ibtnDel", function(event) {
$(this).closest("tr").remove();
calculate_price();
});
function hide() {
$("#cost").hide(300);
$("#unit").hide(300);
$("#alert-qty").hide(300);
}
function calculate_price() {
var price = 0;
$(".qty").each(function() {
rowindex = $(this).closest('tr').index();
quantity = $(this).val();
unit_price = $('table.order-list tbody tr:nth-child(' + (rowindex + 1) + ') .unit_price').val();
price += quantity * unit_price;
});
$('input[name="price"]').val(price);
}
function populate_category(unitID){
$.ajax({
url: 'saleunit/'+unitID,
type: "GET",
dataType: "json",
success:function(data) {
$('select[name="sale_unit_id"]').empty();
$('select[name="purchase_unit_id"]').empty();
$.each(data, function(key, value) {
$('select[name="sale_unit_id"]').append('<option value="'+ key +'">'+ value +'</option>');
$('select[name="purchase_unit_id"]').append('<option value="'+ key +'">'+ value +'</option>');
});
$('.selectpicker').selectpicker('refresh');
},
});
}
$("input[name='is_variant']").on("change", function () {
if ($(this).is(':checked')) {
$("#variant-section").show(300);
}
else
$("#variant-section").hide(300);
});
$("input[name='variant']").on("input", function () {
if($("#code").val() == ''){
$("input[name='variant']").val('');
alert('Please fillup above information first.');
}
else if($(this).val().indexOf(',') > -1) {
var variant_name = $(this).val().slice(0, -1);
var item_code = variant_name+'-'+$("#code").val();
var newRow = $("<tr>");
var cols = '';
cols += '<td style="cursor:grab"><i class="dripicons-view-apps"></i></td>';
cols += '<td><input type="text" class="form-control" name="variant_name[]" value="' + variant_name + '" /></td>';
cols += '<td><input type="text" class="form-control" name="item_code[]" value="'+item_code+'" /></td>';
cols += '<td><input type="number" class="form-control" name="additional_price[]" value="" step="any" /></td>';
cols += '<td><button type="button" class="vbtnDel btn btn-sm btn-danger">X</button></td>';
$("input[name='variant']").val('');
newRow.append(cols);
$("table.variant-list tbody").append(newRow);
}
});
//Delete variant
$("table#variant-table tbody").on("click", ".vbtnDel", function(event) {
$(this).closest("tr").remove();
});
$( "#promotion" ).on( "change", function() {
if ($(this).is(':checked')) {
$("#starting_date").val($.datepicker.formatDate('dd-mm-yy', new Date()));
$("#promotion_price").show(300);
$("#start_date").show(300);
$("#last_date").show(300);
}
else {
$("#promotion_price").hide(300);
$("#start_date").hide(300);
$("#last_date").hide(300);
}
});
var starting_date = $('#starting_date');
starting_date.datepicker({
format: "dd-mm-yyyy",
startDate: "<?php echo date('d-m-Y'); ?>",
autoclose: true,
todayHighlight: true
});
var ending_date = $('#ending_date');
ending_date.datepicker({
format: "dd-mm-yyyy",
startDate: "<?php echo date('d-m-Y'); ?>",
autoclose: true,
todayHighlight: true
});
$(window).keydown(function(e){
if (e.which == 13) {
var $targ = $(e.target);
if (!$targ.is("textarea") && !$targ.is(":button,:submit")) {
var focusNext = false;
$(this).find(":input:visible:not([disabled],[readonly]), a").each(function(){
if (this === e.target) {
focusNext = true;
}
else if (focusNext){
$(this).focus();
return false;
}
});
return false;
}
}
});
//dropzone portion
Dropzone.autoDiscover = false;
jQuery.validator.setDefaults({
errorPlacement: function (error, element) {
if(error.html() == 'Select Category...')
error.html('This field is required.');
$(element).closest('div.form-group').find('.validation-msg').html(error.html());
},
highlight: function (element) {
$(element).closest('div.form-group').removeClass('has-success').addClass('has-error');
},
unhighlight: function (element, errorClass, validClass) {
$(element).closest('div.form-group').removeClass('has-error').addClass('has-success');
$(element).closest('div.form-group').find('.validation-msg').html('');
}
});
function validate() {
var product_code = $("input[name='code']").val();
var barcode_symbology = $('select[name="barcode_symbology"]').val();
var exp = /^\d+$/;
if(!(product_code.match(exp)) && (barcode_symbology == 'UPCA' || barcode_symbology == 'UPCE' || barcode_symbology == 'EAN8' || barcode_symbology == 'EAN13') ) {
alert('Product code must be numeric.');
return false;
}
else if(product_code.match(exp)) {
if(barcode_symbology == 'UPCA' && product_code.length > 11){
alert('Product code length must be less than 12');
return false;
}
else if(barcode_symbology == 'EAN8' && product_code.length > 7){
alert('Product code length must be less than 8');
return false;
}
else if(barcode_symbology == 'EAN13' && product_code.length > 12){
alert('Product code length must be less than 13');
return false;
}
}
if( $("#type").val() == 'combo' ) {
var rownumber = $('table.order-list tbody tr:last').index();
if (rownumber < 0) {
alert("Please insert product to table!")
return false;
}
}
if($("#is-variant").is(":checked")) {
rowindex = $("table#variant-table tbody tr:last").index();
if (rowindex < 0) {
alert('This product has variant. Please insert variant to table');
return false;
}
}
$("input[name='price']").prop('disabled',false);
return true;
}
$("table#variant-table tbody").sortable({
items: 'tr',
cursor: 'grab',
opacity: 0.5,
});
$(".dropzone").sortable({
items:'.dz-preview',
cursor: 'grab',
opacity: 0.5,
containment: '.dropzone',
distance: 20,
tolerance: 'pointer',
stop: function () {
var queue = myDropzone.getAcceptedFiles();
newQueue = [];
$('#imageUpload .dz-preview .dz-filename [data-dz-name]').each(function (count, el) {
var name = el.innerHTML;
queue.forEach(function(file) {
if (file.name === name) {
newQueue.push(file);
}
});
});
myDropzone.files = newQueue;
}
});
myDropzone = new Dropzone('div#imageUpload', {
addRemoveLinks: true,
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 100,
maxFilesize: 12,
paramName: 'image',
clickable: true,
method: 'POST',
url: '',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
renameFile: function(file) {
var dt = new Date();
var time = dt.getTime();
return time + file.name;
},
acceptedFiles: ".jpeg,.jpg,.png,.gif",
init: function () {
var myDropzone = this;
$('#submit-btn').on("click", function (e) {
e.preventDefault();
if ( $("#product-form").valid() && validate() ) {
tinyMCE.triggerSave();
if(myDropzone.getAcceptedFiles().length) {
myDropzone.processQueue();
}
else {
$.ajax({
type:'POST',
url:'',
data: $("#product-form").serialize(),
success:function(response){
//console.log(response);
location.href = '../products';
},
error:function(response) {
if(response.responseJSON.errors.name) {
$("#name-error").text(response.responseJSON.errors.name);
}
else if(response.responseJSON.errors.code) {
$("#code-error").text(response.responseJSON.errors.code);
}
},
});
}
}
});
this.on('sending', function (file, xhr, formData) {
// Append all form inputs to the formData Dropzone will POST
var data = $("#product-form").serializeArray();
$.each(data, function (key, el) {
formData.append(el.name, el.value);
});
});
},
error: function (file, response) {
console.log(response);
if(response.errors.name) {
$("#name-error").text(response.errors.name);
this.removeAllFiles(true);
}
else if(response.errors.code) {
$("#code-error").text(response.errors.code);
this.removeAllFiles(true);
}
else {
try {
var res = JSON.parse(response);
if (typeof res.message !== 'undefined' && !$modal.hasClass('in')) {
$("#success-icon").attr("class", "fas fa-thumbs-down");
$("#success-text").html(res.message);
$modal.modal("show");
} else {
if ($.type(response) === "string")
var message = response; //dropzone sends it's own error messages in string
else
var message = response.message;
file.previewElement.classList.add("dz-error");
_ref = file.previewElement.querySelectorAll("[data-dz-errormessage]");
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
node = _ref[_i];
_results.push(node.textContent = message);
}
return _results;
}
} catch (error) {
console.log(error);
}
}
},
successmultiple: function (file, response) {
location.href = '../products';
//console.log(file, response);
},
completemultiple: function (file, response) {
console.log(file, response, "completemultiple");
},
reset: function () {
console.log("resetFiles");
this.removeAllFiles(true);
}
});
</script>
@endsection
Aucun commentaire:
Enregistrer un commentaire