PageRenderTime 93ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 1ms

/magehelp/application/views/procurement/purchaseorder/purchase_order_grid_3.php

https://bitbucket.org/jit_bec/shopifine
PHP | 1640 lines | 1356 code | 205 blank | 79 comment | 60 complexity | fd5357fdc61b35d4d806dfda44f5b529 MD5 | raw file
Possible License(s): LGPL-3.0
  1. <html>
  2. <head>
  3. <?php $this->load->view("common/header"); ?>
  4. <!-- <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>-->
  5. <style>
  6. .column {
  7. float: left;
  8. padding: 1em;
  9. width:47%;
  10. }
  11. .extra-wide{
  12. width:95%;
  13. }
  14. .field{
  15. width:100%;
  16. }
  17. .ui-widget-header {height:12px;}
  18. .quote-column {
  19. float: left;
  20. padding-bottom: 0.5em;
  21. width: 95%;
  22. }
  23. .ui-combobox {
  24. width:14em;
  25. }
  26. .ui-combobox-input{
  27. width:12em;
  28. }
  29. #supplierOp-input{
  30. width:10em;
  31. }
  32. #warehouseOp-input{
  33. width:10em;
  34. }
  35. .calculated {
  36. color: green;
  37. font-size: 90%;
  38. }
  39. .row{
  40. width:100%;
  41. }
  42. .shopifine-ro-label {
  43. float: left;
  44. padding-right: 0.5em;
  45. width: 50%;
  46. word-wrap: break-word;
  47. color:#2E6E9E;
  48. font-size: 110%
  49. }
  50. .shopifine-output {
  51. float: right;
  52. width: 45%;
  53. word-wrap: break-word;
  54. font-weight:bold;
  55. }
  56. .ui-tabs {
  57. height: 80%;
  58. margin: 0 auto;
  59. width: 85%;
  60. left:0;
  61. }
  62. #notetab {
  63. height:30em;
  64. }
  65. #details {
  66. height:12em;
  67. }
  68. .ui-tabs-nav{
  69. height:22px;
  70. }
  71. .labeldiv {
  72. color: #2E6E9E;
  73. float: left;
  74. font-size: 110%;
  75. font-weight: bold;
  76. margin-right: .5em;
  77. width: 35%;
  78. word-wrap: break-word;
  79. }
  80. .valuediv {
  81. float: left;
  82. font-weight: bold;
  83. width: 45%;
  84. word-wrap: break-word;
  85. }
  86. label.error {
  87. width:8em ;
  88. margin-right: 0;
  89. }
  90. #status-message-li{
  91. color: red;
  92. font-size: 110%;
  93. font-style: italic;
  94. margin: 0 auto;
  95. width: 80%;
  96. }
  97. .help-message-left{
  98. color: green;
  99. font-size: 90%;
  100. font-style: italic;
  101. margin: 0 auto;
  102. width: 90%;
  103. float:left
  104. }
  105. </style>
  106. <script type="text/javascript">
  107. $(function() {
  108. $.validator.addMethod('comboBoxrequired', function(value, element) {
  109. var selectId = element.id;
  110. var inputIdSelector = "#" + selectId + "-input";
  111. if (value == ""){
  112. inputVal = $(inputIdSelector).val();
  113. if (inputVal == "" || inputVal == null){
  114. return false;
  115. }
  116. }
  117. return true;
  118. }, 'Please select from the dropdown or add new element in box');
  119. $.validator.addMethod('lessthanallowed', function (value, element, param) {
  120. var allowed_id = element.id + '-total';
  121. if (parseFloat(value)>parseFloat($("#"+allowed_id).val())){
  122. return false;
  123. }
  124. return true;
  125. },"{0} Quantity Can Not Be More Than Total Received/Returned For This Line Item");
  126. $.validator.addMethod('tallyquantity', function(value, element) {
  127. var ordered_quantity = parseInt($("#quantity").text());
  128. var already_received = parseInt($("#already_received").text());
  129. var received_quantity = parseInt($("#received_quantity").val());
  130. var returned_quantity = parseInt($("#returned_quantity").val());
  131. var subgrid=$("#subgrid_ref").val();
  132. var receipt_line_id = $("#receipt_line_ref").val();
  133. var action = $("#action").val();
  134. var oper = $("#oper").val();
  135. console.log("already_received" + already_received + "received_quantity" + received_quantity + "returned_quantity" + returned_quantity);
  136. var total_received = already_received + received_quantity + returned_quantity;
  137. if (action=='edit'){
  138. // for edit actionold values need to be subtracted
  139. total_received = total_received - $("#"+subgrid).getCell(receipt_line_id,'received_quantity')
  140. //}
  141. //else if (oper=="return"){
  142. total_received = total_received - $("#"+subgrid).getCell(receipt_line_id,'returned_quantity');
  143. //}
  144. }
  145. console.log("total_received/returned" + total_received);
  146. console.log("ordered_quantity" + ordered_quantity);
  147. if (total_received>ordered_quantity){
  148. return false;
  149. }
  150. return true;
  151. }, 'Total Received And Returned Can Not Be More Than Ordered');
  152. //form validation
  153. $("#quoteForm").validate();
  154. $("#ppItemForm").validate({
  155. rules:{
  156. pp_quantity_received:
  157. {required:true,
  158. lessthanallowed:"Part Payable Received"}
  159. }
  160. });
  161. $("#itemForm").validate({
  162. ignore:".ignore-fields",
  163. rules:{
  164. received_quantity:{
  165. required:true,
  166. //noBlank:true,
  167. digits:true,
  168. min:1
  169. },
  170. received_value:{
  171. required:true,
  172. //noBlank:true,
  173. number:true,
  174. minStrict:0
  175. },
  176. returned_quantity:{
  177. required:true,
  178. //noBlank:true,
  179. digits:true,
  180. min:1
  181. },
  182. returned_value:{
  183. required:true,
  184. //noBlank:true,
  185. number:true,
  186. minStrict:0
  187. },
  188. vat:{
  189. required:true,
  190. number:true,
  191. minStrict:0
  192. },
  193. free_items:{
  194. digits:true,
  195. min:1
  196. },
  197. discount:{
  198. number:true,
  199. minStrict:0
  200. }
  201. }
  202. }
  203. );
  204. // datepicker for Add Form
  205. $( "#expiry_date" ).datepicker({
  206. showOn: "button",
  207. buttonImage: "images/calendar.gif",
  208. buttonImageOnly: true,
  209. dateFormat:"dd/mm/yy",
  210. minDate:0
  211. });
  212. function quotegriddates(id){
  213. jQuery("#"+id+"_needed_by_date","#orders").datepicker({dateFormat:"yy-mm-dd",minDate:0});
  214. }
  215. //end datepicker
  216. var myGridPkd = $("#lineItems");
  217. $( "#dialog-form" ).dialog({
  218. autoOpen: false,
  219. height: 'auto',
  220. width: '65%',
  221. position:[220,25],
  222. modal: true,
  223. buttons: {
  224. "DoneButton": {
  225. id:"doneBtn",
  226. text:"Done",
  227. click:function() {
  228. var isValid = $("#quoteForm").valid();
  229. if (isValid){
  230. $( this ).dialog( "close" );
  231. } //end ifvalid
  232. }}, //end of Create button
  233. Cancel: function() {
  234. //in cancel just recset notes
  235. $("#receivingNotes").val("");
  236. $( this ).dialog( "close" );
  237. }
  238. },//end buttons
  239. open: function(){
  240. $( "#tabs" ).tabs({
  241. //cache
  242. beforeLoad: function( event, ui ) {
  243. var tabcache = $("#tabcache").val();
  244. if (tabcache==1){
  245. if ( ui.tab.data( "loaded" ) ) {
  246. event.preventDefault();
  247. return;
  248. }
  249. ui.jqXHR.success(function() {
  250. ui.tab.data( "loaded", true );
  251. });
  252. }
  253. },
  254. beforeActivate: function (event,ui){
  255. if (ui.oldTab[0].id=="notesLink"){
  256. $("#tabcache").val("1");
  257. }
  258. },
  259. load: function(event,ui){
  260. $.ajax({
  261. method:"POST",
  262. url:'index.php/procurement/getOrderDetails',
  263. data:{orderId: myGrid.getGridParam('selrow')},
  264. success:function(response){
  265. //console.log(response);
  266. var resJson = JSON.parse(response);
  267. //console.log(resJson);
  268. $("#orderRef").text(resJson.reference);
  269. $("#supplierOP").text(resJson.supplier_name);
  270. $("#warehouseOP").text(resJson.warehouse);
  271. $("#quoteOP").text(resJson.quote_reference);
  272. $("#raisedByOP").text(resJson.raised_by_name);
  273. $("#approvedByOP").text(resJson.approved_by_name);
  274. $("#estValueOP").text(resJson.estimated_value);
  275. $("#receivingNotes").val(resJson.receiving_notes);
  276. //$("#receivingNotes").val("abcc");
  277. }
  278. })
  279. $("#lineItems").jqGrid({
  280. url:'index.php/procurement/populateOrderItems',
  281. datatype: 'json',
  282. mtype: 'POST',
  283. postData:{orderId: myGrid.getGridParam('selrow')},
  284. colNames:['Product id','Product','Quantity','Received','Returned','Not Deliver','Need By Date','Price','Ordered Value','Received Value','Returned Value'/*'Notes'*/],
  285. colModel :[
  286. {name:'product_id', index:'product_id',editable:false, hidden:true},
  287. {name:'name', index:'name',editable:false, width:160, align:'right'},
  288. {name:'quoted_quantity', index:'quoted_quantity', editable:false,width:60, align:'right'},
  289. {name:'received_quantity', index:'received_quantity', editable:false,width:60, align:'right'},
  290. {name:'returned_quantity', index:'returned_quantity', editable:false,width:60, align:'right'},
  291. {name:'cnbd_quantity', index:'cnbd_quantity', editable:false,width:60, align:'right'},
  292. {name:'needed_by_date',index:'needed_by_date',editable:false, width:80, align:'right',hidden:true},
  293. {name:'expected_price',index:'expected_price',editable:false, width:60, align:'right',hidden:true},
  294. {name:'estimated_value', index:'estimated_value',editable:false, width:100, align:'right'},
  295. {name:'received_value', index:'received_value',editable:false, width:100, align:'right'},
  296. {name:'returned_value', index:'returned_value',editable:false, width:100, align:'right'},
  297. // {name:'comments', index:'comments',editable:true, width:180, align:'right'}
  298. ],
  299. pager: '#pagerPk',
  300. rowNum:10,
  301. rowList:[5,10,20],
  302. sortname: 'id',
  303. sortorder: 'desc',
  304. viewrecords: true,
  305. gridview: true,
  306. ignoreCase:true,
  307. rownumbers:true,
  308. multiselect:true,
  309. height:'auto',
  310. width:'60%',
  311. caption: 'Line Items',
  312. jsonReader : {
  313. root:"orderitemdata",
  314. page: "page",
  315. total: "total",
  316. records: "records",
  317. cell: "dprow",
  318. id: "id"
  319. },
  320. //receipt Item subgrid
  321. subGrid:true,
  322. subGridRowExpanded: function(subgrid_id, row_id) {
  323. var subgrid_table_id, pager_id;
  324. subgrid_table_id = subgrid_id+"_t";
  325. pager_id = "p_"+subgrid_table_id;
  326. $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
  327. jQuery("#"+subgrid_table_id).jqGrid({
  328. url:'index.php/procurement/populateReceiptItems?oper='+"orderline"+'&orderLineId='+row_id,
  329. datatype: 'json',
  330. colNames:['Line ref','Supplier Receipt','Reference','Receipt Id','Order Line Id','Order Line Ref','Product Id','Product','Qty','Qty Rcvd','Rcvd Value','Qty Rtrnd','Rtrnd Value','Rcvd Notes','Rtrnd Notes'],
  331. colModel :[
  332. {name:'line_reference', index:'line_reference',editable:false,width:60, align:'right',hidden:true},
  333. {name:'supplier_receipt_number', index:'supplier_receipt_number',editable:false,width:120, align:'right'},
  334. {name:'reference', index:'reference',editable:false,width:60, align:'right'},
  335. {name:'receipt_id', index:'receipt_id',editable:false, hidden:true},
  336. {name:'order_line_id', index:'order_line_id',editable:false, hidden:true},
  337. {name:'product_id', index:'product_id',editable:false, hidden:true},
  338. {name:'order_line_ref', index:'order_line_ref',editable:false, width:100, align:'right',hidden:true},
  339. {name:'name', index:'name',editable:false, width:100, align:'right',hidden:true},
  340. {name:'ordered_quantity', index:'ordered_quantity', editable:false,width:60, align:'right'},
  341. {name:'received_quantity', index:'received_quantity', editable:false,width:60, align:'right'},
  342. {name:'received_value', index:'received_value',editable:false, width:80, align:'right'},
  343. {name:'returned_quantity', index:'returned_quantity', editable:false,width:60, align:'right'},
  344. {name:'returned_value', index:'returned_value',editable:false, width:80, align:'right'},
  345. {name:'receiving_notes', index:'receiving_notes',editable:false, width:160, align:'right',hidden:true},
  346. {name:'returned_notes', index:'returned_notes', editable:false,width:160, align:'right',hidden:true}
  347. // {name:'comments', index:'comments',editable:false, width:160, align:'right'}
  348. ],
  349. rowNum:20,
  350. pager: pager_id,
  351. sortname: 'id',
  352. sortorder: "asc",
  353. height: '100%',
  354. multiselect:true,
  355. jsonReader : {
  356. root:"receiptitemdata",
  357. page: "page",
  358. total: "total",
  359. records: "records",
  360. cell: "dprow",
  361. id: "id"
  362. }
  363. });
  364. $("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false,search:false,view:true});
  365. // subgrid custom buttin navigation bar
  366. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  367. {
  368. caption:"",
  369. title:"Edit Received For This Receipt",
  370. buttonicon:"ui-icon-newwin",
  371. id:"receive_lineItems",
  372. onClickButton : function () {
  373. //need to pass grid id for dynamic reload;
  374. var noOfRows = $("#"+subgrid_table_id).getGridParam("selarrrow").length;
  375. if (noOfRows == 1){
  376. var lineId = $("#"+subgrid_table_id).getGridParam("selrow");
  377. // grid id would help us in getting order line related info from lineItem grid using order_line_id
  378. // Sub grid would help us in getting receipt related information using receipt id
  379. var gridData ={'grid_id':'lineItems','sub_grid_id':subgrid_table_id,'order_line_id':$("#"+subgrid_table_id).getCell(lineId,'order_line_id'),
  380. 'receipt_line_id':$("#"+subgrid_table_id).getGridParam("selrow"),'action':'edit','oper':'receive','url':"index.php/procurement/receiveItems"}
  381. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  382. }
  383. else {
  384. $( "#modal-warning" ).dialog("open") ;
  385. }
  386. }
  387. });
  388. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  389. {
  390. caption:"",
  391. title:"Edit Returned For This Receipt",
  392. buttonicon:"ui-icon-arrowreturnthick-1-w",
  393. id:"return_lineItems",
  394. onClickButton : function () {
  395. //need to pass grid id for dynamic reload;
  396. var noOfRows = $("#"+subgrid_table_id).getGridParam("selarrrow").length;
  397. if (noOfRows == 1){
  398. var lineId = $("#"+subgrid_table_id).getGridParam("selrow");
  399. // grid id would help us in getting order line related info from lineItem grid using order_line_id
  400. // Sub grid would help us in getting receipt related information using receipt id
  401. var gridData ={'grid_id':'lineItems','sub_grid_id':subgrid_table_id,'order_line_id':$("#"+subgrid_table_id).getCell(lineId,'order_line_id'),
  402. 'receipt_line_id':$("#"+subgrid_table_id).getGridParam("selrow"),'action':'edit','oper':'return','url':"index.php/procurement/receiveItems"}
  403. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  404. }
  405. else {
  406. $( "#modal-warning" ).dialog("open") ;
  407. }
  408. }
  409. });
  410. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  411. {
  412. caption:"",
  413. title:"Process For Part Payment",
  414. buttonicon:"ui-icon-clipboard",
  415. id:"pp_lineItems",
  416. onClickButton : function () {
  417. //need to pass grid id for dynamic reload;
  418. var noOfRows = $("#"+subgrid_table_id).getGridParam("selarrrow").length;
  419. if (noOfRows == 1){
  420. var lineId = $("#"+subgrid_table_id).getGridParam("selrow");
  421. // grid id would help us in getting order line related info from lineItem grid using order_line_id
  422. // Sub grid would help us in getting receipt related information using receipt id
  423. var gridData ={'grid_id':'lineItems','sub_grid_id':subgrid_table_id,'order_line_id':$("#"+subgrid_table_id).getCell(lineId,'order_line_id'),
  424. 'receipt_line_id':$("#"+subgrid_table_id).getGridParam("selrow"),'action':'edit','oper':'return','url':"index.php/procurement/receiveItems"}
  425. $( "#dialog-form-partpayment" ).dialog('option','title','REC-'+$("#"+subgrid_table_id).getCell(lineId,'line_reference'))
  426. $( "#dialog-form-partpayment" ).data('grid_data',gridData).dialog( "open" );
  427. }
  428. else {
  429. $( "#modal-warning" ).dialog("open") ;
  430. }
  431. }
  432. });
  433. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  434. { caption: "", buttonicon: "ui-icon-calculator",
  435. title: "Choose Columns",
  436. onClickButton: function() {
  437. $("#"+subgrid_table_id).jqGrid('columnChooser');
  438. }
  439. });
  440. //end sub grid navigator custom buttons
  441. }
  442. }).navGrid("#pagerPk",{edit:false,add:false,del:false,search:false,view:true},{},{},{},{},{});
  443. $("#lineItems").jqGrid('navButtonAdd','#pagerPk',{
  444. caption:"",
  445. title:"Receive Items",
  446. buttonicon:"ui-icon-newwin",
  447. id:"receive_lineItems",
  448. onClickButton : function () {
  449. //need to pass grid id for dynamic reload;
  450. var noOfRows = $("#lineItems").getGridParam("selarrrow").length;
  451. if (noOfRows == 1){
  452. var gridData ={'grid_id':'lineItems','order_line_id':$("#lineItems").getGridParam("selrow"),
  453. 'action':'add','oper':'receive','url':"index.php/procurement/receiveItems"}
  454. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  455. $("#receiptOp").combobox();
  456. }
  457. else {
  458. $( "#modal-warning" ).dialog("open") ;
  459. }
  460. }
  461. });
  462. $("#lineItems").jqGrid('navButtonAdd','#pagerPk',{
  463. caption:"",
  464. title:"Return Items",
  465. buttonicon:"ui-icon-arrowreturnthick-1-w",
  466. id:"return_lineItems",
  467. onClickButton : function () {
  468. //need to pass grid id for dynamic reload;
  469. var noOfRows = $("#lineItems").getGridParam("selarrrow").length;
  470. if (noOfRows == 1){
  471. var gridData ={'grid_id':'lineItems','order_line_id':$("#lineItems").getGridParam("selrow"),
  472. 'action':'add','oper':'return','url':"index.php/procurement/receiveItems"}
  473. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  474. $("#receiptOp").combobox();
  475. }
  476. else {
  477. $( "#modal-warning" ).dialog("open") ;
  478. }
  479. }
  480. });
  481. }
  482. });
  483. },
  484. close: function() {
  485. $("#tabcache").val("0");
  486. $.ajax({url:"index.php/procurement/validateReceiving",
  487. type:"POST",
  488. data:{
  489. receiving_notes:$("#receivingNotes").val(),
  490. order_id: $("#orders").getGridParam('selrow')
  491. },
  492. success:function(response)
  493. {}
  494. }); //end ajax
  495. $("#quoteForm").data('validator').resetForm();
  496. $('#quoteForm')[0].reset();
  497. $("#lineItems").jqGrid("GridUnload");
  498. $("#tabs").tabs("destroy");
  499. $("#orders").trigger("reloadGrid");
  500. }
  501. });
  502. // Main Request For Quotation Grid
  503. var myGrid = $("#orders");
  504. myGrid.jqGrid({
  505. url:'index.php/procurement/populatePOToReceive',
  506. datatype: 'json',
  507. mtype: 'GET',
  508. colNames:['Reference','Supplier Id','Supplier','Estimated Value',/*'Owner',*/'Status','Raised By',/*'Owner',*/'Needed By Date'],
  509. colModel :[
  510. {name:'reference', index:'reference', width:80, align:'right',editable:false},
  511. {name:'supplier_id', index:'supplier_id',hidden:true},
  512. {name:'supplier_name', index:'supplier_name', width:140, align:'right',editable:false},
  513. {name:'estimated_value', index:'estimated_value', width:100, align:'right',editable:false,editoptions:{size:"20",maxlength:"30"}},
  514. // {name:'owner', index:'owner', width:140, align:'right',editable:true,editoptions:{size:"20",maxlength:"30"}},
  515. {name:'status', index:'status', width:60, align:'right',editable:false,editoptions:{size:"20",maxlength:"30"}},
  516. {name:'raised_by_name', index:'raised_by_name',editable:false, width:80, align:'right'},
  517. // {name:'owner_name', index:'owner_name',editable:false, width:80, align:'right'},
  518. {name:'needed_by_date', index:'needed_by_date',editable:false, width:120, sorttype:'date'}
  519. ],
  520. pager: '#pager',
  521. rowNum:10,
  522. rowList:[5,10,20],
  523. sortname: 'id',
  524. sortorder: 'desc',
  525. viewrecords: true,
  526. gridview: true,
  527. multiselect:true,
  528. ignoreCase:true,
  529. rownumbers:true,
  530. height:'auto',
  531. width:680,
  532. caption: 'Purchase Orders',
  533. jsonReader : {
  534. root:"quotedata",
  535. page: "page",
  536. total: "total",
  537. records: "records",
  538. cell: "dprow",
  539. id: "id"
  540. },
  541. subGrid:true,
  542. subGridRowExpanded: function(subgrid_id, row_id) {
  543. var subgrid_table_id, pager_id;
  544. subgrid_table_id = subgrid_id+"_t";
  545. pager_id = "p_"+subgrid_table_id;
  546. $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
  547. jQuery("#"+subgrid_table_id).jqGrid({
  548. url:'index.php/procurement/populateOrderItems?q=2&orderId='+row_id,
  549. datatype: 'json',
  550. colNames:['Product Id','Product','Quantity','Received','Returned','Could Not Deliver','Need By Date','Unit Price','Estimated Value','Received Value','Returned Value','Notes'],
  551. colModel :[
  552. {name:'product_id', index:'product_id',editable:false, hidden:true},
  553. {name:'name', index:'name',editable:false, width:120, align:'right'},
  554. {name:'quoted_quantity', index:'quoted_quantity', editable:false,width:50, align:'right'},
  555. {name:'received_quantity', index:'received_quantity', editable:false,width:50, align:'right'},
  556. {name:'returned_quantity', index:'returned_quantity', editable:false,width:50, align:'right'},
  557. {name:'cnbd_quantity', index:'cnbd_quantity', editable:false,width:50, align:'right'},
  558. {name:'needed_by_date',index:'needed_by_date',editable:false, width:60, align:'right',hidden:true},
  559. {name:'expected_price',index:'expected_price',hidden:true, width:50, align:'right'},
  560. {name:'estimated_value', index:'estimated_value',editable:false, width:60, align:'right'},
  561. {name:'received_value', index:'received_value',editable:false, width:60, align:'right'},
  562. {name:'returned_value', index:'returned_value',editable:false, width:60, align:'right',hidden:true},
  563. {name:'comments', index:'comments',editable:false, width:160, align:'right'}
  564. ],
  565. rowNum:20,
  566. pager: pager_id,
  567. sortname: 'id',
  568. sortorder: "asc",
  569. height: '100%',
  570. jsonReader : {
  571. root:"orderitemdata",
  572. page: "page",
  573. total: "total",
  574. records: "records",
  575. cell: "dprow",
  576. id: "id"
  577. }
  578. });
  579. jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false,search:false,view:true});
  580. }
  581. }).navGrid("#pager",{edit:false,add:false,view:false,del:false,search:false},{height:280,reloadAfterSubmit:false,closeAfterEdit:true,recreateForm:true,checkOnSubmit:true},{},{},{},{});
  582. myGrid.jqGrid('navButtonAdd','#pager',{
  583. caption:"",
  584. title:"Match With Received Goods",
  585. buttonicon:"ui-icon-newwin",
  586. id:"add_orders",
  587. onClickButton : function () {
  588. var selectRows = myGrid.getGridParam('selarrrow');
  589. var noOfRows = selectRows.length;
  590. if (noOfRows != 1){
  591. $( "#modal-warning" ).dialog("open");
  592. }
  593. else {
  594. $( "#dialog-form" ).dialog( "open" );
  595. }
  596. }
  597. });
  598. myGrid.jqGrid('navButtonAdd','#pager',{
  599. caption:"",
  600. title:"Ready For Invoice",
  601. buttonicon:"ui-icon-tag",
  602. id:"ready_orders",
  603. onClickButton : function () {
  604. var selectRows = myGrid.getGridParam('selarrrow');
  605. var noOfRows = selectRows.length;
  606. var mismatch = 0;
  607. if (noOfRows == 0){
  608. $( "#modal-warning-none" ).dialog("open");
  609. }
  610. else {
  611. for (i=0;i<noOfRows;i++){
  612. //console.log(selectRows[i]);
  613. var status = myGrid.getCell(selectRows[i],'status');
  614. if (status!='received'){
  615. $( "#modal-warning-status" ).dialog("open");
  616. mismatch = 1;
  617. break;
  618. }
  619. }
  620. if (mismatch==0){
  621. $( "#dialog-confirm" ).dialog( "open" );
  622. }
  623. }
  624. }
  625. });
  626. myGrid.jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch : "cn"});
  627. //line item dialog
  628. $( "#dialog-form-item" ).dialog({
  629. autoOpen: false,
  630. height: 'auto',
  631. width: '60%',
  632. position:[250,25],
  633. modal: true,
  634. buttons: {
  635. "Done": {
  636. id:"processItems",
  637. text:"Confirm",
  638. click:function() {
  639. var isvalid = $("#itemForm").valid();
  640. var grid = $(this).data('grid_data').grid_id;
  641. var order_line_id = $(this).data('grid_data').order_line_id;
  642. var oper = $(this).data('grid_data').oper;
  643. var url = $(this).data('grid_data').url;
  644. var order_id = myGrid.getGridParam('selrow');
  645. //relevant only in case of edit
  646. var subgrid = $(this).data('grid_data').sub_grid_id;
  647. var receipt_line_id = $(this).data('grid_data').receipt_line_id;
  648. var action = $(this).data('grid_data').action;
  649. // by default assume action is "add"
  650. var total_received_quantity = parseInt($("#received_quantity").val())+parseInt($("#already_received").text());
  651. var total_received_value = parseFloat($("#received_value").val())+parseFloat($("#already_received_value").text());
  652. var total_returned_quantity=parseInt($("#returned_quantity").val())+parseInt($("#already_returned").text());
  653. var total_returned_value=parseFloat($("#returned_value").val())+parseFloat($("#already_returned_value").text());
  654. if (action=='edit'){
  655. //if (oper=='receive'){
  656. //subtract old received
  657. total_received_value = total_received_value - $("#"+subgrid).getCell(receipt_line_id,'received_value');
  658. total_received_quantity = total_received_quantity - $("#"+subgrid).getCell(receipt_line_id,'received_quantity');
  659. //}
  660. //else if (oper=='return'){
  661. //subtract old returned
  662. total_returned_value = total_returned_value - $("#"+subgrid).getCell(receipt_line_id,'returned_value');
  663. total_returned_quantity = total_returned_quantity - $("#"+subgrid).getCell(receipt_line_id,'returned_quantity');
  664. //}
  665. }
  666. if (isvalid){
  667. $.ajax({
  668. url:url,
  669. type:"POST",
  670. data:{
  671. order_id:order_id,
  672. order_line_id:order_line_id,
  673. product_id:$("#"+grid).getCell(order_line_id,'product_id'),
  674. supplier_id:myGrid.getCell(order_id,'supplier_id'),
  675. receipt:$("#receiptOp").val(),
  676. receipt_ip:$("#receiptOp-input").val(),
  677. discount:$("#discount").val(),
  678. vat:$("#vat").val(),
  679. expiry_date:$("#expiry_date").val(),
  680. batch_number:$("#batch_number").val(),
  681. free_items:$("#free_items").val(),
  682. total_received_quantity:total_received_quantity,
  683. received_value:$("#received_value").val(),
  684. total_received_value:total_received_value,
  685. received_quantity:$("#received_quantity").val(),
  686. quantity:parseInt($("#quantity").text()),
  687. returned_quantity:$("#returned_quantity").val(),
  688. returned_value:$("#returned_value").val(),
  689. total_returned_quantity:total_returned_quantity,
  690. total_returned_value:total_returned_value,
  691. receiving_notes:$("#receiving_notes").val(),
  692. returned_notes:$("#returned_notes").val(),
  693. oper:$("#oper").val(),
  694. action:$("#action").val()
  695. },
  696. success:function (response){
  697. //console.log("grid " + grid);
  698. $("#"+grid).trigger("reloadGrid");
  699. //reload Main Grid
  700. }
  701. })
  702. $( this ).dialog( "close" );
  703. }
  704. }},
  705. Cancel: function() {
  706. $( this ).dialog( "close" );
  707. }
  708. },
  709. open: function(event,ui){
  710. var grid = $(this).data('grid_data').grid_id;
  711. var order_line_id = $(this).data('grid_data').order_line_id;
  712. var oper = $(this).data('grid_data').oper;
  713. var order_id = myGrid.getGridParam('selrow');
  714. //relevant only in case of edit
  715. var subgrid = $(this).data('grid_data').sub_grid_id;
  716. var receipt_line_id = $(this).data('grid_data').receipt_line_id;
  717. var action = $(this).data('grid_data').action;
  718. $.ajax({
  719. url:"index.php/procurement/populateReceiptOptions",
  720. method:"get",
  721. data:{order_id:order_id},
  722. success : function (response){
  723. $("#receiptOp option").remove();
  724. var opts = '<option value="">Choose ';
  725. opts +=response;
  726. console.log(opts);
  727. $("#receiptOp").html(opts);
  728. if (action=="edit"){
  729. var selVal =$("#"+subgrid).getCell(receipt_line_id,'receipt_id') ;
  730. $("#receiptOp").val(selVal);
  731. $("#receiptOp").attr("disabled",true);
  732. }
  733. }
  734. })
  735. if (oper == "receive"){
  736. $("#received_quantity_cntnr,#received_value_cntnr,#receiving_notes_cntnr").show();
  737. $("#returned_quantity,#returned_value").val("0");
  738. //to be ignored by validation
  739. $("#returned_quantity,#returned_value").addClass("ignore-fields");
  740. $("#formHeaderItem").text("Receive Items");
  741. }
  742. else if (oper=="return"){
  743. $("#returned_quantity_cntnr,#returned_value_cntnr,#returned_notes_cntnr").show();
  744. $("#received_quantity,#received_value").val("0");
  745. //to be ignored by validation
  746. $("#received_quantity,#received_value").addClass("ignore-fields");
  747. $("#formHeaderItem").text("Return Items");
  748. }
  749. if (action=="edit"){
  750. $("#status-message-li").text("Warning!! You are about to edit earlier receive/return entry.This will \n\
  751. override previous entry. This is not for NEW entry.Use main grid buttons to add entries");
  752. $("#received_value").val($("#"+subgrid).getCell(receipt_line_id,'received_value'));
  753. $("#received_quantity").val($("#"+subgrid).getCell(receipt_line_id,'received_quantity'));
  754. //$("#receiving_notes").val($("#"+subgrid).getCell(receipt_line_id,'receiving_notes'));
  755. $("#returned_value").val($("#"+subgrid).getCell(receipt_line_id,'returned_value'));
  756. $("#returned_quantity").val($("#"+subgrid).getCell(receipt_line_id,'returned_quantity'));
  757. //$("#returned_notes").val($("#"+subgrid).getCell(receipt_line_id,'returned_notes'));
  758. // we need to store these for tally quantity validation
  759. $("#subgrid_ref").val(subgrid);
  760. $("#receipt_line_ref").val(receipt_line_id);
  761. }
  762. $("#oper").val(oper);
  763. $("#action").val(action);
  764. $("#product").text($("#"+grid).getCell(order_line_id,'name'));
  765. $("#neededdate").text($("#"+grid).getCell(order_line_id,'needed_by_date'));
  766. $("#quantity").text($("#"+grid).getCell(order_line_id,'quoted_quantity'));
  767. $("#already_received").text($("#"+grid).getCell(order_line_id,'received_quantity'));
  768. $("#already_returned").text($("#"+grid).getCell(order_line_id,'returned_quantity'));
  769. //$("#already_received").text(100);
  770. $("#orderprice").text($("#"+grid).getCell(order_line_id,'expected_price'));
  771. $("#estimated_value").text($("#"+grid).getCell(order_line_id,'estimated_value'));
  772. $("#already_received_value").text($("#"+grid).getCell(order_line_id,'received_value'));
  773. $("#already_returned_value").text($("#"+grid).getCell(order_line_id,'returned_value'));
  774. },
  775. close: function(event,ui) {
  776. $("#itemForm").data('validator').resetForm();
  777. $('#itemForm')[0].reset();
  778. $("#estValue").text("");
  779. $("#curPrice").text("");
  780. $("#status-message-li").empty();
  781. $("#received_quantity,#received_value,#returned_quantity,#returned_value").removeClass("ignore-fields");
  782. $("#received_quantity_cntnr,#received_value_cntnr,\n\
  783. #returned_quantity_cntnr,#returned_value_cntnr\n\
  784. ,#receiving_notes_cntnr,#returned_notes_cntnr").hide();
  785. $("#receiptOp").attr("disbled",false);
  786. //try to destroy only if action is not edit as we are not using this during edit action
  787. if ($(this).data('grid_data').action!='edit'){
  788. $("#receiptOp").combobox("destroy");
  789. }
  790. }
  791. });
  792. $( "#dialog-form-partpayment" ).dialog({
  793. autoOpen: false,
  794. height: 'auto',
  795. width: '35%',
  796. position:[450,25],
  797. modal: true,
  798. buttons: {
  799. "Done": {
  800. id:"processItems",
  801. text:"Process For PartPayment",
  802. click:function() {
  803. var isvalid = $("#itemForm").valid();
  804. var grid = $(this).data('grid_data').grid_id;
  805. var order_line_id = $(this).data('grid_data').order_line_id;
  806. var url = $(this).data('grid_data').url;
  807. var receipt_line_id = $(this).data('grid_data').receipt_line_id;
  808. if (isvalid){
  809. $.ajax({
  810. url:'test',
  811. type:"POST",
  812. data:{
  813. order_id:order_id,
  814. order_line_id:order_line_id,
  815. receipt_line_id:receipt_line_id,
  816. pp_quantity:$("#pp_quantity_received").val(),
  817. received_value:$("#pp_calculated_value").val(),
  818. returned_notes:$("#pp_notes").val()
  819. },
  820. success:function (response){
  821. //console.log("grid " + grid);
  822. $("#"+grid).trigger("reloadGrid");
  823. }
  824. })
  825. $( this ).dialog( "close" );
  826. }
  827. }},
  828. Cancel: function() {
  829. $( this ).dialog( "close" );
  830. }
  831. },
  832. open: function(event,ui){
  833. var grid = $(this).data('grid_data').grid_id;
  834. var order_line_id = $(this).data('grid_data').order_line_id;
  835. var oper = $(this).data('grid_data').oper;
  836. var order_id = myGrid.getGridParam('selrow');
  837. //relevant only in case of edit
  838. var subgrid = $(this).data('grid_data').sub_grid_id;
  839. var receipt_line_id = $(this).data('grid_data').receipt_line_id;
  840. $("#product_pp").text($("#"+grid).getCell(order_line_id,'name'));
  841. $("#sup_rec").text($("#"+subgrid).getCell(receipt_line_id,'supplier_receipt_number'));
  842. $("#receipt_line_pp").text($("#"+subgrid).getCell(receipt_line_id,'reference'))
  843. $("#pp_quantity_received_total").text(parseInt($("#"+subgrid).getCell(receipt_line_id,'received_quantity'))+parseInt($("#"+subgrid).getCell(receipt_line_id,'returned_quantity')));
  844. $("#already_received_rli").text($("#"+subgrid).getCell(receipt_line_id,'received_quantity'));
  845. $("#already_returned_rli").text($("#"+subgrid).getCell(receipt_line_id,'returned_quantity'));
  846. $("#already_received_value_rli").text($("#"+subgrid).getCell(receipt_line_id,'received_value'));
  847. $("#already_returned_value_rli").text($("#"+subgrid).getCell(receipt_line_id,'returned_value'));
  848. },
  849. close: function(event,ui) {
  850. $("#itemForm").data('validator').resetForm();
  851. $('#itemForm')[0].reset();
  852. $("#estValue").text("");
  853. $("#curPrice").text("");
  854. $("#status-message-li").empty();
  855. $("#received_quantity,#received_value,#returned_quantity,#returned_value").removeClass("ignore-fields");
  856. $("#received_quantity_cntnr,#received_value_cntnr,\n\
  857. #returned_quantity_cntnr,#returned_value_cntnr\n\
  858. ,#receiving_notes_cntnr,#returned_notes_cntnr").hide();
  859. $("#receiptOp").attr("disbled",false);
  860. //try to destroy only if action is not edit as we are not using this during edit action
  861. if ($(this).data('grid_data').action!='edit'){
  862. $("#receiptOp").combobox("destroy");
  863. }
  864. }
  865. });
  866. $( "#dialog-form-cnbd" ).dialog({
  867. autoOpen: false,
  868. height: 'auto',
  869. width: '30%',
  870. position:[450,25],
  871. modal: true,
  872. buttons: {
  873. "Done": {
  874. id:"processItems",
  875. text:"Register",
  876. click:function() {
  877. var isvalid = $("#cnbdItemForm").valid();
  878. var grid = $(this).data('grid_data').grid_id;
  879. var order_line_id = $(this).data('grid_data').order_line_id;
  880. if (isvalid){
  881. $.ajax({
  882. url:'index.php/procurement/registerUndelivered',
  883. type:"POST",
  884. data:{
  885. order_line_id:order_line_id,
  886. cnbd_quantity:$("#cnbd_quantity").val(),
  887. cnbd_notes:$("#cnbd_notes").val()
  888. },
  889. success:function (response){
  890. //console.log("grid " + grid);
  891. $("#"+grid).trigger("reloadGrid");
  892. }
  893. })
  894. $( this ).dialog( "close" );
  895. }
  896. }},
  897. Cancel: function() {
  898. $( this ).dialog( "close" );
  899. }
  900. },
  901. open: function(event,ui){
  902. var grid = $(this).data('grid_data').grid_id;
  903. var order_line_id = $(this).data('grid_data').order_line_id;
  904. var oper = $(this).data('grid_data').oper;
  905. if (oper=='edit'){
  906. $("#cnbd_quantity").val($("#"+grid).getCell(order_line_id,'cnbd_quantity'));
  907. }
  908. },
  909. close: function(event,ui) {
  910. $("#itemForm").data('validator').resetForm();
  911. $('#itemForm')[0].reset();
  912. $("#estValue").text("");
  913. $("#curPrice").text("");
  914. $("#status-message-li").empty();
  915. $("#received_quantity,#received_value,#returned_quantity,#returned_value").removeClass("ignore-fields");
  916. $("#received_quantity_cntnr,#received_value_cntnr,\n\
  917. #returned_quantity_cntnr,#returned_value_cntnr\n\
  918. ,#receiving_notes_cntnr,#returned_notes_cntnr").hide();
  919. $("#receiptOp").attr("disbled",false);
  920. //try to destroy only if action is not edit as we are not using this during edit action
  921. if ($(this).data('grid_data').action!='edit'){
  922. $("#receiptOp").combobox("destroy");
  923. }
  924. }
  925. });
  926. $( "#modal-warning" ).dialog({
  927. autoOpen:false,
  928. height: 90,
  929. modal: true
  930. });
  931. $( "#modal-warning-none" ).dialog({
  932. autoOpen:false,
  933. height: 90,
  934. modal: true
  935. });
  936. $( "#modal-warning-status" ).dialog({
  937. autoOpen:false,
  938. height: 120,
  939. modal: true
  940. });
  941. $("#received_value, #returned_value").change(function (){
  942. var ordered_quantity = parseInt($("#quantity").text());
  943. //
  944. var already_received = parseInt($("#already_received").text());
  945. var received_quantity = parseInt($("#received_quantity").val());
  946. var returned_quantity = parseInt($("#returned_quantity").val());
  947. // var subgrid=$("#subgrid_ref").val();
  948. // var receipt_line_id = $("#receipt_line_ref").val();
  949. // var action = $("#action").val();
  950. // var oper = $("#oper").val();
  951. // console.log("already_received" + already_received + "received_quantity" + received_quantity + "returned_quantity" + returned_quantity);
  952. var total_received = already_received + received_quantity + returned_quantity;
  953. if (action=='edit'){
  954. total_received = total_received - $("#"+subgrid).getCell(receipt_line_id,'received_quantity')- $("#"+subgrid).getCell(receipt_line_id,'returned_quantity');
  955. }
  956. //
  957. //
  958. // if (total_received>=ordered_quantity){
  959. var action = $("#action").val();
  960. var oper = $("#oper").val();
  961. var subgrid=$("#subgrid_ref").val();
  962. var receipt_line_id = $("#receipt_line_ref").val();
  963. var received = parseFloat($("#received_value").val());
  964. var returned = parseFloat($("#returned_value").val());
  965. var already_received_value = parseFloat($("#already_received_value").text());
  966. var estimated = parseFloat($("#estimated_value").text());
  967. var total = already_received_value + received + returned;
  968. console.log("already_received val " + already_received_value + "received_val" + received + "returned_val" + returned);
  969. if (action=='edit'){
  970. total = total - $("#"+subgrid).getCell(receipt_line_id,'received_value')- $("#"+subgrid).getCell(receipt_line_id,'returned_value');
  971. }
  972. console.log(total);
  973. var unit_price = total/total_received;
  974. var order_init_price = parseFloat($("#orderprice").text());
  975. if (unit_price>order_init_price){
  976. $("#status-message-li").text("Warning!! Current Unit Price Of Received/Returned Goods > Ordered");
  977. }
  978. else if (unit_price<order_init_price){
  979. $("#status-message-li").text("Warning!! Current Unit Price Of Received/Returned Goods < Ordered");
  980. }
  981. else {
  982. $("#status-message-li").empty();
  983. }
  984. //}
  985. });
  986. $( "#dialog-confirm" ).dialog({
  987. resizable: false,
  988. height:200,
  989. width:500,
  990. modal: true,
  991. autoOpen:false,
  992. buttons: {
  993. "I Am Sure": function() {
  994. $.ajax({
  995. url:"index.php/procurement/markForInvoicing",
  996. type:"POST",
  997. data:{orderIds:myGrid.getGridParam('selarrrow')
  998. },
  999. success:function (response){
  1000. emptyMessages();
  1001. showSuccessMessage("The Selected Orders Are Now Ready To Invoice")
  1002. myGrid.trigger("reloadGrid");
  1003. },
  1004. error:function (response){
  1005. emptyMessages();
  1006. showErrorMessage("The Selected Orders Could Not Be Processed Due To Internal Error")
  1007. }
  1008. });
  1009. $( this ).dialog( "close" );
  1010. },
  1011. Cancel: function() {
  1012. $( this ).dialog( "close" );
  1013. }
  1014. }
  1015. });
  1016. $("#autogen-batch").change(
  1017. function (){
  1018. if (this.checked){
  1019. $("#batch_number").removeClass("required");
  1020. }
  1021. else {
  1022. $("#batch_number").addClass("required");
  1023. }
  1024. }
  1025. )
  1026. });
  1027. </script>
  1028. </head>
  1029. <body>
  1030. <?php $this->load->view("common/menubar"); ?>
  1031. <div id="modal-warning" title="Warning">
  1032. <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Please Select Exactly One Row</p>
  1033. </div>
  1034. <div id="modal-warning-status" title="Error" class="ui-state-error" style="border:none;">
  1035. <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Only Completely Received Orders i.e. With Status "Received"
  1036. Can Be Readied For Invoice</p>
  1037. </div>
  1038. <div id="modal-warning-none" title="Warning">
  1039. <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Please Select Record(s) To Continue</p>
  1040. </div>
  1041. <div id="dialog-confirm" title="Warning">
  1042. <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>
  1043. Once Marked As "Ready For Invoice" Signifies All The Items For This Order Are
  1044. Dispatched By The Supplier And Marked As Received/Returned.
  1045. # Of Returned And Received Quantities Can Be Edited ONLY If REJECTED In Due Approval Process But Total Quantity Should Always Match Ordered.Are You Sure?</p>
  1046. </div>
  1047. <div id ="dialog-form">
  1048. <h1 id="formHeader">Purchase Order # <span id="orderRef"></span> Details</h1>
  1049. <form id="quoteForm">
  1050. <fieldset>
  1051. <div id="tabs">
  1052. <ul>
  1053. <li id="baseLink"><a id="basic" href="<?php echo site_url('procurement/loadFormFragment') ?>">Basic Details</a></li>
  1054. <li id="notesLink"><a id="notes" href="<?php echo site_url('procurement/loadNotesFragment') ?>">Notes</a></li>
  1055. </ul>
  1056. </div>
  1057. </fieldset>
  1058. </form>
  1059. <div class="table-grid" style="padding-top:2em;">
  1060. <h1 id="pkdheader">Line Items For This Purchase Order</h1>
  1061. <table id="lineItems"><tr><td/></tr></table>
  1062. <div id="pagerPk"></div>
  1063. </div>
  1064. </div>
  1065. <div style="display: block;height: 100%;" class="shopifine-ui-dialog ui-widget ui-widget-content ui-corner-all" tabindex="-1" role="dialog" aria-labelledby="ui-dialog-title-dialog-form">
  1066. <?php $this->load->view("common/message"); ?>
  1067. <div class="table-grid">
  1068. <h1 id="table header">Open Purchase Orders</h1>
  1069. <table id="orders"><tr><td/></tr></table>
  1070. <div id="pager"></div>
  1071. </div>
  1072. </div>
  1073. <div id ="dialog-form-item">
  1074. <div id ="status-message-li" class="ui-corner-all">
  1075. </div>
  1076. <h1 id="formHeaderItem">Receive Items <div id="neededdate" name ="neededdate" style="float:right;color:green;font-style: italic;text-decoration: underline" ></div></h1>
  1077. <form id="itemForm">
  1078. <fieldset style="border:1px solid #A6C9E2">
  1079. <legend style="color: #2E6E9E;font-size: 110%;font-weight: bold;margin-left: 15px;">
  1080. Order Line Related Info </legend>
  1081. <div class="row">
  1082. <div class="column">
  1083. <div class="field">
  1084. <div class="labeldiv">Products:</div>
  1085. <div class="valuediv" id="product" name ="product" class="required"></div>
  1086. </div>
  1087. </div>
  1088. <div class="column">
  1089. <div class="field">
  1090. <div class="labeldiv">Unit Price:</div>
  1091. <div class="valuediv" id="orderprice" name="orderprice" ></div>
  1092. </div>
  1093. </div>
  1094. </div>
  1095. <div class="row">
  1096. <div class="column">
  1097. <div class="field">
  1098. <div class="labeldiv">Ordered Quantity:</div>
  1099. <div class="valuediv" name="quantity" id="quantity" ></div>
  1100. </div>
  1101. </div>
  1102. <div class="column">
  1103. <div class="field">
  1104. <div class="labeldiv">Ordered Value :</div>
  1105. <div class="valuediv" id="estimated_value" name="estimated_value" ></div>
  1106. </div>
  1107. </div>
  1108. </div>
  1109. <div class="row">
  1110. <div class="column">
  1111. <div class="field">
  1112. <div class="labeldiv">Received Quantity Till Date:</div>
  1113. <div class="valuediv" name="already_received" id="already_received" ></div>
  1114. <div id ="return-help" class="ui-corner-all help-message-left">
  1115. (Ready For Payment Subject To Appropriate Approval)
  1116. </div>
  1117. </div>
  1118. </div>
  1119. <div class="column">
  1120. <div class="field">
  1121. <div class="labeldiv">Received Value Till Date:</div>
  1122. <div class="valuediv" id="already_received_value" name="already_received_value" ></div>
  1123. <div id ="return-help" class="ui-corner-all help-message-left">
  1124. (Payment Amount Subject To Appropriate Approval)
  1125. </div>
  1126. </div>
  1127. </div>
  1128. </div>
  1129. <div class="row">
  1130. <div class="column">
  1131. <div class="field">
  1132. <div class="labeldiv">Marked For Return :</div>
  1133. <div class="valuediv" name="already_returned" id="already_returned" ></div>
  1134. <div id ="return-help" class="ui-corner-all help-message-left">
  1135. (Till Date)
  1136. </div>
  1137. </div>
  1138. </div>
  1139. <div class="column">
  1140. <div class="field">
  1141. <div class="labeldiv">Marked For Return Value :</div>
  1142. <div class="valuediv" id="already_returned_value" name="already_returned_value"></div>
  1143. <div id ="return-help" class="ui-corner-all help-message-left">
  1144. (Till Date)
  1145. </div>
  1146. </div>
  1147. </div>
  1148. </div>
  1149. <div class="row">
  1150. <div class="column">
  1151. <div class="field">
  1152. <div class="labeldiv">Could Not Be Delivered :</div>
  1153. <div class="valuediv" name="cnbd_qty" id="cnbd_qty" ></div>
  1154. <div id ="cnbd-help" class="ui-corner-all help-message-left">
  1155. (Quantity Which Supplier Could Not Deliver)
  1156. </div>
  1157. </div>
  1158. </div>
  1159. </div>
  1160. </fieldset>
  1161. <fieldset>
  1162. <div class="row">
  1163. <div class="column">
  1164. <div class="field">
  1165. <label for="receipt" class="labeldiv">Receipt #:</label>
  1166. <select name="receiptOp" id ="receiptOp" class="comboBoxrequired">
  1167. </select>
  1168. </div>
  1169. </div>
  1170. <div class="column">
  1171. <div class="field">
  1172. <label for="batch_number" class="labeldiv">Batch Number:</label>
  1173. <input id="batch_number" name="batch_number" class="required"/>
  1174. <input id="autogen-batch" name="autogen-batch"type ="checkbox"/>
  1175. <div id ="return-help" class="ui-corner-all help-message-left">
  1176. Select The Check Box to Auto Generate ONLY If There Is No Batch Number In Exceptional Circumstances
  1177. </div>
  1178. </div>
  1179. </div>
  1180. </div>
  1181. <div class="row">
  1182. <div class="column">
  1183. <div class="field">
  1184. <label for="expiry_date" class="labeldiv">Best Before:</label>
  1185. <input id="expiry_date" name="expiry_date" class="required"/>
  1186. </div>
  1187. </div>
  1188. <div class="column">
  1189. <div class="field">
  1190. <label for="vat" class="labeldiv">Vat:</label>
  1191. <input id="vat" name="vat" class="required"/><span style="color:green;font-weight:bold"> %</span>
  1192. </div>
  1193. </div>
  1194. </div>
  1195. <div class="row">
  1196. <div class="column">
  1197. <div class="field">
  1198. <label for="discount" class="labeldiv">Discount:</label>
  1199. <input id="discount" name="discount"/><span style="color:green;font-weight:bold"> %</span>
  1200. </div>
  1201. </div>
  1202. <div class="column">
  1203. <div class="field">
  1204. <label for="free_items" class="labeldiv">Free Items:</label>
  1205. <input id="free_items" name="free_items" />
  1206. </div>
  1207. </div>
  1208. </div>
  1209. <div class="row">
  1210. <div id="received_quantity_cntnr" class="row" style="display:none">
  1211. <div class="column">
  1212. <div class="field">
  1213. <label for="received_quantity" class="labeldiv">Received Quantity:</label>
  1214. <input id="received_quantity" name="received_quantity" class="required tallyquantity noBlank"/>
  1215. </div>
  1216. </div>
  1217. </div>
  1218. <div id="received_value_cntnr" style="display:none">
  1219. <div class="column">
  1220. <div class="field">
  1221. <label for="received_value" class="labeldiv">Received Value:</label>
  1222. <input id="received_value" name="received_value" class="required noBlank"/>
  1223. </div>
  1224. </div>
  1225. </div>
  1226. </div>
  1227. <div class="row">
  1228. <div id="returned_quantity_cntnr" style="display:none">
  1229. <div class="column">
  1230. <div class="field">
  1231. <label for="returned_quantity" class="labeldiv">Returned Quantity:</label>
  1232. <input id="returned_quantity" name="returned_quantity" class="required tallyquantity noBlank"/>
  1233. </div>
  1234. </div>
  1235. </div>
  1236. <div id="returned_value_cntnr" style="display:none">
  1237. <div class="column quote-column single-column">
  1238. <div class="field">
  1239. <label for="returned_value" class="labeldiv">Returned Value:</label>
  1240. <input id="returned_value" name="returned_value" class="required noBlank"/>
  1241. </div>
  1242. </div>
  1243. </div>
  1244. </div>
  1245. <div class="row">
  1246. <div id="receiving_notes_cntnr" style="display:none">
  1247. <div class="column">
  1248. <div class="field">
  1249. <label for="receiving_notes" class="labeldiv">Receiving Notes:</label>
  1250. <textarea id="receiving_notes" name="receiving_notes" row="5" col="50"></textarea>
  1251. </div>
  1252. </div>
  1253. </div>
  1254. <div id="returned_notes_cntnr" style="display:none">
  1255. <div class="column">
  1256. <div class="field">
  1257. <label for="returned_notes" class="labeldiv">Returned Notes:</label>
  1258. <textarea id="returned_notes" name="returned_notes" row="5" col="50"></textarea>
  1259. </div>
  1260. </div>
  1261. </div>
  1262. </div>
  1263. <input id ="oper" name ="oper" type="hidden" value="">
  1264. <input id ="action" name ="action" type="hidden" value="">
  1265. <input id ="subgrid_ref" name ="subgrid_ref" type="hidden" value="">
  1266. <input id ="receipt_line_ref" name ="receipt_line_ref" type="hidden" value="">
  1267. </fieldset>
  1268. </form>
  1269. </div>
  1270. <div id ="dialog-form-partpayment">
  1271. <div id ="status-message-li-pp" class="ui-corner-all">
  1272. </div>
  1273. <h1 id="formPPHeaderItem">Request For Part Payment For Supplier Receipt # <div id="sup_rec"></div> </h1>
  1274. <form id="ppItemForm">
  1275. <fieldset style="border:1px solid #A6C9E2">
  1276. <legend style="color: #2E6E9E;font-size: 110%;font-weight: bold;margin-left: 15px;">
  1277. Receipt Line Related Info</legend>
  1278. <div class="row single-column-row">
  1279. <div class="column quote-column single-column">
  1280. <div class="field">
  1281. <div class="labeldiv">Receipt Line Reference:</div>
  1282. <div class="valuediv" name="receipt_line_pp" id="receipt_line_pp" ></div>
  1283. <div id ="receipt_line_pp_help_rli" class="ui-corner-all help-message-left">
  1284. (This Is Receipt Line Reference And Not <b>Receipt</b> Reference.System Receipt Reference Can Be Found In Title)
  1285. </div>
  1286. </div>
  1287. </div>
  1288. </div>
  1289. <div class="row single-column-row">
  1290. <div class="column quote-column single-column">
  1291. <div class="field">
  1292. <div class="labeldiv">Products:</div>
  1293. <div class="valuediv" id="product_pp" name ="product_pp" ></div>
  1294. </div>
  1295. </div>
  1296. </div>
  1297. <div class="row single-column-row">
  1298. <div class="column quote-column single-column">
  1299. <div class="field">
  1300. <div class="labeldiv">Total Quantity:</div>
  1301. <div class="valuediv" name="pp_quantity_received_total" id="pp_quantity_received_total" ></div>
  1302. <div id ="rli-help" class="ui-corner-all help-message-left">
  1303. (Total Quantity Received/Marked For Return For This Receipt Line Item)
  1304. </div>
  1305. </div>
  1306. </div>
  1307. </div>
  1308. <div class="row single-column-row">
  1309. <div class="column quote-column single-column">
  1310. <div class="field">
  1311. <div class="labeldiv">Received Quantity:</div>
  1312. <div class="valuediv" name="already_received_rli" id="already_received_rli" ></div>
  1313. <div id ="received_help_rli" class="ui-corner-all help-message-left">
  1314. (For This Receipt Line Item Till Date)
  1315. </div>
  1316. </div>
  1317. </div>
  1318. </div>
  1319. <div class="row single-column-row">
  1320. <div class="column quote-column single-column">
  1321. <div class="field">
  1322. <div class="labeldiv">Marked For Return :</div>
  1323. <div class="valuediv" name="already_returned_rli" id="already_returned_rli" ></div>
  1324. <div id ="return-help_rli" class="ui-corner-all help-message-left">
  1325. (For This Receipt Line Item Till Date)
  1326. </div>
  1327. </div>
  1328. </div>
  1329. </div>
  1330. <div class="row single-column-row">
  1331. <div class="column quote-column single-column">
  1332. <div class="field">
  1333. <div class="labeldiv">Received Value Till Date:</div>
  1334. <div class="valuediv" id="already_received_value_rli" name="already_received_value_rli" ></div>
  1335. <div id ="recval-help-rli" class="ui-corner-all help-message-left">
  1336. (Payment Amount Subject To Appropriate Approval)
  1337. </div>
  1338. </div>
  1339. </div>
  1340. </div>
  1341. <div class="row single-column-row">
  1342. <div class="column quote-column single-column">
  1343. <div class="field">
  1344. <div class="labeldiv">Marked For Return Value :</div>
  1345. <div class="valuediv" id="already_returned_value_rli" name="already_returned_value_rli"></div>
  1346. <div id ="memval-help-rli" class="ui-corner-all help-message-left">
  1347. (Memo Amount Subject To Appropriate Approval)
  1348. </div>
  1349. </div>
  1350. </div>
  1351. </div>
  1352. </fieldset>
  1353. <fieldset>
  1354. <div id="received_quantity_cntnr" class="row single-column-row">
  1355. <div class="column quote-column single-column">
  1356. <div class="field">
  1357. <label for="pp_quantity_received" class="labeldiv">Part Payment Qty:</label>
  1358. <input id="pp_quantity_received" name="pp_quantity_received" class="required"/>
  1359. </div>
  1360. </div>
  1361. </div>
  1362. <div id="pp_calculated_value_cntnr" class="row single-column-row">
  1363. <div class="column quote-column single-column">
  1364. <div class="field">
  1365. <label for="pp_calculated_value" class="labeldiv">Payment Value:</label>
  1366. <div class="valuediv" id="pp_calculated_value" name="pp_calculated_value"></div>
  1367. </div>
  1368. </div>
  1369. </div>
  1370. <!-- <div id="returned_quantity_cntnr" class="row single-column-row" style="display:none">
  1371. <div class="column quote-column single-column">
  1372. <div class="field">
  1373. <label for="returned_quantity" class="labeldiv">Quantity For Part Memo:</label>
  1374. <input id="returned_quantity" name="returned_quantity" class="required tallyquantity noBlank"/>
  1375. </div>
  1376. </div>
  1377. </div>
  1378. <div id="returned_value_cntnr" class="row single-column-row" style="display:none">
  1379. <div class="column quote-column single-column">
  1380. <div class="field">
  1381. <label for="returned_value" class="labeldiv">Returned Value:</label>
  1382. <input id="returned_value" name="returned_value" class="required noBlank"/>
  1383. </div>
  1384. </div>
  1385. </div>-->
  1386. <div id="pp_notes_cntnr" class="row single-column-row">
  1387. <div class="column quote-column single-column">
  1388. <div class="field">
  1389. <label for="pp_notes" class="labeldiv">Part Payment Notes:</label>
  1390. <textarea id="pp_notes" name="pp_notes" row="5" col="50"></textarea>
  1391. </div>
  1392. </div>
  1393. </div>
  1394. <!-- <div id="returned_notes_cntnr" class="row single-column-row" style="display:none">
  1395. <div class="column quote-column single-column">
  1396. <div class="field">
  1397. <label for="returned_notes" class="labeldiv">Returned Notes:</label>
  1398. <textarea id="returned_notes" name="returned_notes" row="5" col="50"></textarea>
  1399. </div>
  1400. </div>
  1401. </div>-->
  1402. <input id ="receipt_line_ref_pp" name ="receipt_line_ref_pp" type="hidden" value="">
  1403. </fieldset>
  1404. </form>
  1405. </div>
  1406. <div id ="dialog-form-cnbd">
  1407. <div id ="status-message-li-cndb" class="ui-corner-all">
  1408. </div>
  1409. <h1 id="formCnbdHeaderItem">Register Failure To Deliver</h1>
  1410. <form id="cnbdItemForm">
  1411. <fieldset>
  1412. <div id="cnbd_quantity_cntnr" class="row single-column-row">
  1413. <div class="column quote-column single-column">
  1414. <div class="field">
  1415. <label for="cnbd_quantity" class="labeldiv">Quantity:</label>
  1416. <input id="cnbd_quantity" name="cnbd_quantity" class="required"/>
  1417. </div>
  1418. </div>
  1419. </div>
  1420. <div id="cnbd_notes_cntnr" class="row single-column-row">
  1421. <div class="column quote-column single-column">
  1422. <div class="field">
  1423. <label for="cnbd_notes" class="labeldiv">Reason:</label>
  1424. <textarea id="cnbd_notes" name="cnbd_notes" row="5" col="50"></textarea>
  1425. </div>
  1426. </div>
  1427. </div>
  1428. <input id ="order_line_ref_cnbd" name ="order_line_ref_cnbd" type="hidden" value="">
  1429. </fieldset>
  1430. </form>
  1431. </div>
  1432. <?php $this->load->view("partial/footer"); ?>
  1433. <input id="tabcache" name="tabcache" value="0" type="hidden"/>
  1434. </body>
  1435. </html>