MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/ntc_cafsinfotech_in/application/views/order_dispatch/manage.php
<?php 
	$this->load->view("partial/header"); 
	$access_data    = $this->session->userdata('access_data');
	$page_name      = ucwords(str_replace("_"," ",$controller_name));
	$uniqueId       = "prime_".$controller_name."_id";
?>

<div class='row title_content'>
	<div class='col-md-3 col-xs-4'>
		<h1 class='page_txt'><?php echo $page_name;?></h1>
	</div>
	<div class='col-md-9 col-xs-8'>
		<ol class="breadcrumb">	
			<li><a href="<?php echo site_url()?>#Home">Home</a></li>
			<li><a href="<?php echo site_url($controller_name)?>#<?php echo "$controller_name";?>"><?php echo "$page_name";?></a></li>
			<li class="active">List</li>
		</ol>
	</div>
</div>
<div id="table_holder">
    <div class='row' style='margin:0px;'>
		<div class='col-md-12' style='border-radius: 2px; box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2);background-color: #f2f2f2;padding:15px 8px;'>
			<div class='row' style='margin:0px;'>
				<?php echo form_open($controller_name."/add_products", array('id' => 'add_products', 'class' => 'form-inline')); ?>
				<div class='col-md-3'>
				<div class="radio" style='margin-bottom: 8px;'>
							<label style='font-weight: bold; color: #274f9c;'>
								<input type="radio" name="search_by" id="by_cust_req" value="2" checked> Customer Request
							</label>
						</div>
						<div class="radio" style='margin-bottom: 8px;'>
							<label style='font-weight: bold; color: #274f9c;'>
								<input type="radio" name="search_by" id="by_product" value="1"> Product Search 
							</label>
						</div>
						<?php 
							echo form_input(array("name"=>'search_product', "id"=>'search_product',"value"=>'',"placeholder"=>'Search by product name or brand', "class"=>"form-control input-sm "));
						?>
					<?php echo form_close(); ?>
				</div>
				<div class='col-md-6'>
					<h4 class='tab_head' style='margin:0px;margin-bottom:5px;'>Customer Info</h4>
					<div id='cust_info'>
						<?php echo $list_view['cust_content']; ?>
					</div>
				</div>
				<div class='col-md-3' style='text-align:right;padding:28px 0px;'>
					<a class='btn btn-sm btn-danger' id='cancel_order'>Cancel</a>
					<button class='btn btn-sm btn-primary' id="order_submit">Submit</button>
				</div>
			</div>
			<div class='row' id='product_list' style='padding:0px 8px;margin:0px;'>
				<?php echo $list_view['cart_content']; ?>
			</div>
		</div>
	</div>
</div> 
<div class="modal fade" tabindex="-1" role="dialog" id='product_type_model' data-backdrop="static" data-keyboard="false">
  <div class="modal-dialog" role="document" style='width: 300px;'>
    <div class="modal-content">
      <div class="modal-body">
	  <form>
        <input type='hidden' value='prime_id' id='product_type_prime_id_tonnes'>
        <input type='hidden' value='prime_id' id='product_type_prime_id_temp'>
		<div class="form-group">
		<label for="tonnes">Enter Tonnes:</label>
		<input type='text' name='tonnes' class='form-control input-sm number valid' id='tonnes'>
		</div>
		<div class="form-group">
		<label for="temp">Enter Temperature:</label>
		<input type='text' name='temp' class='form-control input-sm number valid' id='temp'>
		</div>
		<a  class="btn btn-sm btn-primary" id='add_product_info'>Submit</a>
	  </form>
    </div>
  </div>
</div>
<script type="text/javascript">
    $(document).ready(function (){
		var global_prime_id;
		$(function () {
			$(".datepicker").datetimepicker({
				format: 'DD-MM-YYYY',
				//debug: true
			});
		});
		$(".number").bind('keyup', function(e) {
			this.value = this.value.replace(/[^0-9_.]/g,'');
		});
		$("#search_product").autocomplete({
		source: function(request, response) {
			$.getJSON('<?php echo site_url($controller_name . "/item_search"); ?>',{
				search_product: $('#search_product').val(),
				search_by: $('input[name=search_by]:checked').val()
			},response);
		},
		minLength: 1,
		select: function(event, ui){
			$(this).val(ui.item.value);
			$("#add_products").submit();
		}
	});
	$("#add_products").submit(function(event){ event.preventDefault(); }).validate({
		rules:{
			search_product:{required: true,},
			search_by:{required: true,},
		},
		submitHandler: function (form){
			$(form).ajaxSubmit({
				success: function(response){
					var error_str = "";
					$.each(response.error, function( index, value ){
						error_str += value+"\n";
					});
					if(error_str !== ""){
						toastr.error(error_str);
					}else{
						toastr.success("added Successfully");
					}
					$('#cust_info').html(response.cart_view.cust_content);
					$('#product_list').html(response.cart_view.cart_content);
					check_prime_id();
					$(function () {
						$(".datepicker").datetimepicker({
						format: 'DD-MM-YYYY',
						//debug: true
						});
					});
					$("#search_product").val('');
				},
				dataType: 'json'
			});
		}
	});	
	$("#cancel_order").click(function(){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/cancel_order"); ?>',
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.sts){
					toastr.success(rslt.message);
					location.reload();
				}
			},
		});
	});
	
	$("#order_submit").click(function(){			  
		var isValid = true;    
    	$('tbody').find("#tr_data td input:text,td select").each(function (){
            if ($.trim($(this).val()) == '') {
                isValid = false;
                $(this).css({
                    "border": "1px solid red"
                });
            }else{
                $(this).css({
                    "border": "",
                    "background": ""
               });
            }
        });
		if(isValid === true){
			$("#order_submit").html("<i class='fa fa-spinner fa-spin'></i> Processing...");
			$('#order_submit').attr('disabled','disabled');
			$.ajax({
				type: "POST",
				url: '<?php echo site_url($controller_name . "/save_order_dispatch"); ?>',			
				success: function(rslt){
					$('#order_submit').attr('disabled',false);
					$("#order_submit").html("Submit");
					var rslt = JSON.parse(rslt);
					if(rslt.success){
						toastr.success(rslt.message);
						location.reload();
					}else{
						toastr.error(rslt.message);
						location.reload();
					}	
					$('#product_list').html(rslt.table_content);	
				}
			});
		}
	});
	
	$('.datepicker').on('dp.hide',function(){
		var str = this.id;
		var res = str.split("_");
		var prime_id = res[3];
		update_product(prime_id);
	});
	check_prime_id();
});

//ADD PRODUCT INFORMATION (SVK EDIT NEED TO REVIEW)
$('#add_product_info').on('click',function(){
	var product_type = $("#product_type_"+global_prime_id).val();
	if(product_type === '1'){
		var tonnes = $("#tonnes").val();
		if(tonnes){
			$('#tonnes').val('');
			$('#packing_type_'+global_prime_id).val(tonnes);
			$('#product_type_model').modal('hide');
			update_product(global_prime_id);				
		}else{
			$('#packing_type_'+global_prime_id).val('');
			$('#packing_type_'+global_prime_id).prop("selected", false);
			toastr.warning("Tonnes must not be empty");
		}
	}else
	if(product_type === '4'){
		var temp = $("#temp").val();
		if(temp){
			$('#temp').val('');
			$('#packing_type_'+global_prime_id).val(temp);
			$('#product_type_model').modal('hide');	
			update_product(global_prime_id);			
		}else{
			$('#packing_type_'+global_prime_id).val('');
			$('#packing_type_'+global_prime_id).prop("selected", false);
			toastr.warning("Temperature must not be empty");
		}
	}
});

function get_warehouse_info(prime_id,location){
	var warehouse_name = $("#warehouse_name_"+prime_id).val();
	if(warehouse_name !== ""){
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/get_warehouse_info"); ?>',
			data: {warehouse_name:warehouse_name},
			success: function(data){
				var rslt = JSON.parse(data);
				if(rslt.sts){
					$('#location_'+prime_id).empty();
					var option = "<option value=''>--Select--</option>";
					$.each(rslt.get_warehouse_info, function (index, value){
						option += '<option value="' + index + '">' + value + '</option>'; 
					});
					$('#location_'+prime_id).append(option);
					$('#location_'+prime_id).val(location);
				}
			},
		});
	}
	update_product(prime_id);
}

//Get Packing Type (SVK EDIT NEED TO REVIEW)
function get_packing_type(prime_id){
	global_prime_id = prime_id;
	var product_type = $("#product_type_"+prime_id).val();
	if(product_type === '1'){
		$('#product_type_model').modal('show');
		$('#tonnes').parent().show();
		$('#temp').parent().hide();
	}else
	if(product_type === '4'){
		$('#product_type_model').modal('show');
		$('#temp').parent().show();
		$('#tonnes').parent().hide();
	}else{
		$('#product_type_model').modal('hide');
	}
}

function check_prime_id(){
	var prime_customer_id = parseInt($('#prime_customer_id').val());
	if(prime_customer_id > 0){
		$('#by_product').parent().show();
	}else{
		$('#by_product').parent().hide();
	}
}

function update_product(prime_id){
	if(prime_id){
		var product_id        = $("#product_id_"+prime_id).val();
		var product_name      = $("#product_name_"+prime_id).val();
		var brand_name        = $("#brand_name_"+prime_id).val();
		var packing_type      = $("#packing_type_"+prime_id).val();			
		var product_type      = $("#product_type_"+prime_id).val();
		var repacking         = $("#repacking_"+prime_id).val();
		var warehouse_name    = $("#warehouse_name_"+prime_id).val();
		var location          = $("#location_"+prime_id).val();
		var location_space    = $("#location_space_"+prime_id).val();
		var batch_no          = $("#batch_no_"+prime_id).val();
		var stock_expiry_date = $("#stock_expiry_date_"+prime_id).val();
		var price             = $("#price_"+prime_id).val();
		var quantity          = $("#quantity_"+prime_id).val();
		var can_process       = get_quantity(product_id,prime_id);				
		$.ajax({
			type: "POST",
			url: '<?php echo site_url($controller_name . "/update_product"); ?>',
			data: {product_id:product_id,product_name:product_name,brand_name:brand_name,packing_type:packing_type,product_type:product_type,repacking:repacking,warehouse_name:warehouse_name,location:location,location_space:location_space,batch_no:batch_no,stock_expiry_date:stock_expiry_date,price:price,quantity:quantity},
			success: function(rslt){
				var rslt = JSON.parse(rslt);
				toastr.success("updated Successfully");
				$('#cust_info').html(rslt.cart_view.cust_content);
				$('#product_list').html(rslt.cart_view.cart_content);
				$(function () {
					$(".datepicker").datetimepicker({
						format: 'DD-MM-YYYY',
						//debug: true
					});
					$(".number").bind('keyup', function(e) {
						this.value = this.value.replace(/[^0-9_.]/g,'');
					});
				});
				$("#product_type_"+prime_id).val(product_type);
				$("#repacking_"+prime_id).val(repacking);
				$("#warehouse_name_"+prime_id).val(warehouse_name);
				$("#stock_expiry_date_"+prime_id).val(stock_expiry_date);
				//get_warehouse_info(prime_id,location);
			}
		});
	}	
}

//QUANTITY CHECK BEFORE UPDATE
function get_quantity(product_id,prime_id){
	var quantity     = $("#quantity_"+prime_id).val();

	if(parseInt(quantity) > 0){		
		var send_url = '<?php echo site_url("$controller_name/check_quantity"); ?>';
		$.ajax({
			type: "POST",
			url: send_url,
			data:{product:product_id,quantity:quantity},
			success: function(data) {
				var rslt = JSON.parse(data);
				if(rslt.success){
					return true;
				}else{
					toastr.error(rslt.message);
					$("#quantity_"+prime_id).val(rslt.remaining_quantity);
					//setTimeout(function(){ location.reload(); }, 1500);
					return false;
				}
			}
		});
	}
}

</script>
<?php $this->load->view("partial/footer"); ?>