PageRenderTime 45ms CodeModel.GetById 8ms RepoModel.GetById 1ms app.codeStats 0ms

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

https://bitbucket.org/jit_bec/shopifine
PHP | 1456 lines | 1199 code | 179 blank | 78 comment | 55 complexity | d2a8d703fffa575c3b8b00bc6cc0f69f MD5 | raw file
Possible License(s): LGPL-3.0

Large files files are truncated, but you can click here to view the full file

  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:45%;
  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:95%;
  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. }
  49. .shopifine-output {
  50. float: right;
  51. width: 45%;
  52. word-wrap: break-word;
  53. font-weight:bold;
  54. }
  55. .ui-tabs {
  56. height: 80%;
  57. margin: 0 auto;
  58. width: 70%;
  59. left:0;
  60. }
  61. #notetab {
  62. height:30em;
  63. }
  64. #details {
  65. height:12em;
  66. }
  67. .ui-tabs-nav{
  68. height:22px;
  69. }
  70. .labeldiv {
  71. color: #2E6E9E;
  72. float: left;
  73. font-size: 110%;
  74. font-weight: bold;
  75. margin-right: .5em;
  76. width: 35%;
  77. word-wrap: break-word;
  78. }
  79. .valuediv {
  80. float: left;
  81. font-weight: bold;
  82. width: 45%;
  83. word-wrap: break-word;
  84. }
  85. label.error {
  86. margin-right: .5em;
  87. }
  88. #status-message-li{
  89. color: red;
  90. font-size: 110%;
  91. font-style: italic;
  92. margin: 0 auto;
  93. width: 80%;
  94. }
  95. .help-message-left{
  96. color: green;
  97. font-size: 90%;
  98. font-style: italic;
  99. margin: 0 auto;
  100. width: 90%;
  101. float:left
  102. }
  103. </style>
  104. <script type="text/javascript">
  105. $(function() {
  106. $.validator.addMethod('comboBoxrequired', function(value, element) {
  107. var selectId = element.id;
  108. var inputIdSelector = "#" + selectId + "-input";
  109. if (value == ""){
  110. inputVal = $(inputIdSelector).val();
  111. if (inputVal == "" || inputVal == null){
  112. return false;
  113. }
  114. }
  115. return true;
  116. }, 'Please select from the dropdown or add new element in box');
  117. $.validator.addMethod('lessthanallowed', function (value, element, param) {
  118. var allowed_id = element.id + '-total';
  119. if (parseFloat(value)>parseFloat($("#"+allowed_id).val())){
  120. return false;
  121. }
  122. return true;
  123. },"{0} Quantity Can Not Be More Than Total Received/Returned For This Line Item");
  124. $.validator.addMethod('tallyquantity', function(value, element) {
  125. var ordered_quantity = parseInt($("#quantity").text());
  126. var already_received = parseInt($("#already_received").text());
  127. var received_quantity = parseInt($("#received_quantity").val());
  128. var returned_quantity = parseInt($("#returned_quantity").val());
  129. var subgrid=$("#subgrid_ref").val();
  130. var receipt_line_id = $("#receipt_line_ref").val();
  131. var action = $("#action").val();
  132. var oper = $("#oper").val();
  133. console.log("already_received" + already_received + "received_quantity" + received_quantity + "returned_quantity" + returned_quantity);
  134. var total_received = already_received + received_quantity + returned_quantity;
  135. if (action=='edit'){
  136. // for edit actionold values need to be subtracted
  137. total_received = total_received - $("#"+subgrid).getCell(receipt_line_id,'received_quantity')
  138. //}
  139. //else if (oper=="return"){
  140. total_received = total_received - $("#"+subgrid).getCell(receipt_line_id,'returned_quantity');
  141. //}
  142. }
  143. console.log("total_received/returned" + total_received);
  144. console.log("ordered_quantity" + ordered_quantity);
  145. if (total_received>ordered_quantity){
  146. return false;
  147. }
  148. return true;
  149. }, 'Total Received And Returned Can Not Be More Than Ordered');
  150. //form validation
  151. $("#quoteForm").validate();
  152. $("#ppItemForm").validate({
  153. rules:{
  154. pp_quantity_received:
  155. {required:true,
  156. lessthanallowed:"Part Payable Received"}
  157. }
  158. });
  159. $("#itemForm").validate({
  160. ignore:".ignore-fields",
  161. rules:{
  162. received_quantity:{
  163. required:true,
  164. //noBlank:true,
  165. digits:true,
  166. min:1
  167. },
  168. received_value:{
  169. required:true,
  170. //noBlank:true,
  171. number:true,
  172. minStrict:0
  173. },
  174. returned_quantity:{
  175. required:true,
  176. //noBlank:true,
  177. digits:true,
  178. min:1
  179. },
  180. returned_value:{
  181. required:true,
  182. //noBlank:true,
  183. number:true,
  184. minStrict:0
  185. }
  186. }
  187. }
  188. );
  189. // datepicker for Add Form
  190. function quotegriddates(id){
  191. jQuery("#"+id+"_needed_by_date","#orders").datepicker({dateFormat:"yy-mm-dd",minDate:0});
  192. }
  193. //end datepicker
  194. var myGridPkd = $("#lineItems");
  195. $( "#dialog-form" ).dialog({
  196. autoOpen: false,
  197. height: 'auto',
  198. width: '65%',
  199. position:[220,25],
  200. modal: true,
  201. buttons: {
  202. "DoneButton": {
  203. id:"doneBtn",
  204. text:"Done",
  205. click:function() {
  206. var isValid = $("#quoteForm").valid();
  207. if (isValid){
  208. $( this ).dialog( "close" );
  209. } //end ifvalid
  210. }}, //end of Create button
  211. Cancel: function() {
  212. //in cancel just recset notes
  213. $("#receivingNotes").val("");
  214. $( this ).dialog( "close" );
  215. }
  216. },//end buttons
  217. open: function(){
  218. $( "#tabs" ).tabs({
  219. //cache
  220. beforeLoad: function( event, ui ) {
  221. var tabcache = $("#tabcache").val();
  222. if (tabcache==1){
  223. if ( ui.tab.data( "loaded" ) ) {
  224. event.preventDefault();
  225. return;
  226. }
  227. ui.jqXHR.success(function() {
  228. ui.tab.data( "loaded", true );
  229. });
  230. }
  231. },
  232. beforeActivate: function (event,ui){
  233. console.log(ui.newTab[0].id);
  234. console.log(ui.oldTab[0].id);
  235. if (ui.oldTab[0].id=="notesLink"){
  236. $("#tabcache").val("1");
  237. }
  238. },
  239. //load contents after the tab loading is complete
  240. load: function(event,ui){
  241. $.ajax({
  242. method:"POST",
  243. url:'index.php/procurement/getOrderDetails',
  244. data:{orderId: myGrid.getGridParam('selrow')},
  245. success:function(response){
  246. //console.log(response);
  247. var resJson = JSON.parse(response);
  248. //console.log(resJson);
  249. $("#orderRef").text(resJson.reference);
  250. $("#supplierOP").text(resJson.supplier_name);
  251. $("#warehouseOP").text(resJson.warehouse);
  252. $("#quoteOP").text(resJson.quote_reference);
  253. $("#raisedByOP").text(resJson.raised_by_name);
  254. $("#approvedByOP").text(resJson.approved_by_name);
  255. $("#estValueOP").text(resJson.estimated_value);
  256. $("#receivingNotes").val(resJson.receiving_notes);
  257. //$("#receivingNotes").val("abcc");
  258. }
  259. })
  260. $("#lineItems").jqGrid({
  261. url:'index.php/procurement/populateOrderItems',
  262. datatype: 'json',
  263. mtype: 'POST',
  264. postData:{orderId: myGrid.getGridParam('selrow')},
  265. colNames:['Product id','Product','Quantity','Received','Returned','Need By Date','Price','Ordered Value','Received Value','Returned Value'/*'Notes'*/],
  266. colModel :[
  267. {name:'product_id', index:'product_id',editable:false, hidden:true},
  268. {name:'name', index:'name',editable:false, width:160, align:'right'},
  269. {name:'quoted_quantity', index:'quoted_quantity', editable:false,width:60, align:'right'},
  270. {name:'received_quantity', index:'received_quantity', editable:false,width:60, align:'right'},
  271. {name:'returned_quantity', index:'returned_quantity', editable:false,width:60, align:'right'},
  272. {name:'needed_by_date',index:'needed_by_date',editable:false, width:80, align:'right',hidden:true},
  273. {name:'expected_price',index:'expected_price',editable:false, width:60, align:'right',hidden:true},
  274. {name:'estimated_value', index:'estimated_value',editable:false, width:100, align:'right'},
  275. {name:'received_value', index:'received_value',editable:false, width:100, align:'right'},
  276. {name:'returned_value', index:'returned_value',editable:false, width:100, align:'right'},
  277. // {name:'comments', index:'comments',editable:true, width:180, align:'right'}
  278. ],
  279. pager: '#pagerPk',
  280. rowNum:10,
  281. rowList:[5,10,20],
  282. sortname: 'id',
  283. sortorder: 'desc',
  284. viewrecords: true,
  285. gridview: true,
  286. ignoreCase:true,
  287. rownumbers:true,
  288. multiselect:true,
  289. height:'auto',
  290. width:'60%',
  291. caption: 'Line Items',
  292. jsonReader : {
  293. root:"orderitemdata",
  294. page: "page",
  295. total: "total",
  296. records: "records",
  297. cell: "dprow",
  298. id: "id"
  299. },
  300. //receipt Item subgrid
  301. subGrid:true,
  302. subGridRowExpanded: function(subgrid_id, row_id) {
  303. var subgrid_table_id, pager_id;
  304. subgrid_table_id = subgrid_id+"_t";
  305. pager_id = "p_"+subgrid_table_id;
  306. $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
  307. jQuery("#"+subgrid_table_id).jqGrid({
  308. url:'index.php/procurement/populateReceiptItems?oper='+"orderline"+'&orderLineId='+row_id,
  309. datatype: 'json',
  310. 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'],
  311. colModel :[
  312. {name:'line_reference', index:'line_reference',editable:false,width:60, align:'right',hidden:true},
  313. {name:'supplier_receipt_number', index:'supplier_receipt_number',editable:false,width:120, align:'right'},
  314. {name:'reference', index:'reference',editable:false,width:60, align:'right'},
  315. {name:'receipt_id', index:'receipt_id',editable:false, hidden:true},
  316. {name:'order_line_id', index:'order_line_id',editable:false, hidden:true},
  317. {name:'product_id', index:'product_id',editable:false, hidden:true},
  318. {name:'order_line_ref', index:'order_line_ref',editable:false, width:100, align:'right',hidden:true},
  319. {name:'name', index:'name',editable:false, width:100, align:'right',hidden:true},
  320. {name:'ordered_quantity', index:'ordered_quantity', editable:false,width:60, align:'right'},
  321. {name:'received_quantity', index:'received_quantity', editable:false,width:60, align:'right'},
  322. {name:'received_value', index:'received_value',editable:false, width:80, align:'right'},
  323. {name:'returned_quantity', index:'returned_quantity', editable:false,width:60, align:'right'},
  324. {name:'returned_value', index:'returned_value',editable:false, width:80, align:'right'},
  325. {name:'receiving_notes', index:'receiving_notes',editable:false, width:160, align:'right',hidden:true},
  326. {name:'returned_notes', index:'returned_notes', editable:false,width:160, align:'right',hidden:true}
  327. // {name:'comments', index:'comments',editable:false, width:160, align:'right'}
  328. ],
  329. rowNum:20,
  330. pager: pager_id,
  331. sortname: 'id',
  332. sortorder: "asc",
  333. height: '100%',
  334. multiselect:true,
  335. jsonReader : {
  336. root:"receiptitemdata",
  337. page: "page",
  338. total: "total",
  339. records: "records",
  340. cell: "dprow",
  341. id: "id"
  342. }
  343. });
  344. $("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false,search:false,view:true});
  345. // subgrid custom buttin navigation bar
  346. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  347. {
  348. caption:"",
  349. title:"Edit Received For This Receipt",
  350. buttonicon:"ui-icon-newwin",
  351. id:"receive_lineItems",
  352. onClickButton : function () {
  353. //need to pass grid id for dynamic reload;
  354. var noOfRows = $("#"+subgrid_table_id).getGridParam("selarrrow").length;
  355. if (noOfRows == 1){
  356. var lineId = $("#"+subgrid_table_id).getGridParam("selrow");
  357. // grid id would help us in getting order line related info from lineItem grid using order_line_id
  358. // Sub grid would help us in getting receipt related information using receipt id
  359. var gridData ={'grid_id':'lineItems','sub_grid_id':subgrid_table_id,'order_line_id':$("#"+subgrid_table_id).getCell(lineId,'order_line_id'),
  360. 'receipt_line_id':$("#"+subgrid_table_id).getGridParam("selrow"),'action':'edit','oper':'receive','url':"index.php/procurement/receiveItems"}
  361. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  362. }
  363. else {
  364. $( "#modal-warning" ).dialog("open") ;
  365. }
  366. }
  367. });
  368. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  369. {
  370. caption:"",
  371. title:"Edit Returned For This Receipt",
  372. buttonicon:"ui-icon-arrowreturnthick-1-w",
  373. id:"return_lineItems",
  374. onClickButton : function () {
  375. //need to pass grid id for dynamic reload;
  376. var noOfRows = $("#"+subgrid_table_id).getGridParam("selarrrow").length;
  377. if (noOfRows == 1){
  378. var lineId = $("#"+subgrid_table_id).getGridParam("selrow");
  379. // grid id would help us in getting order line related info from lineItem grid using order_line_id
  380. // Sub grid would help us in getting receipt related information using receipt id
  381. var gridData ={'grid_id':'lineItems','sub_grid_id':subgrid_table_id,'order_line_id':$("#"+subgrid_table_id).getCell(lineId,'order_line_id'),
  382. 'receipt_line_id':$("#"+subgrid_table_id).getGridParam("selrow"),'action':'edit','oper':'return','url':"index.php/procurement/receiveItems"}
  383. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  384. }
  385. else {
  386. $( "#modal-warning" ).dialog("open") ;
  387. }
  388. }
  389. });
  390. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  391. {
  392. caption:"",
  393. title:"Process For Part Payment",
  394. buttonicon:"ui-icon-clipboard",
  395. id:"pp_lineItems",
  396. onClickButton : function () {
  397. //need to pass grid id for dynamic reload;
  398. var noOfRows = $("#"+subgrid_table_id).getGridParam("selarrrow").length;
  399. if (noOfRows == 1){
  400. var lineId = $("#"+subgrid_table_id).getGridParam("selrow");
  401. // grid id would help us in getting order line related info from lineItem grid using order_line_id
  402. // Sub grid would help us in getting receipt related information using receipt id
  403. var gridData ={'grid_id':'lineItems','sub_grid_id':subgrid_table_id,'order_line_id':$("#"+subgrid_table_id).getCell(lineId,'order_line_id'),
  404. 'receipt_line_id':$("#"+subgrid_table_id).getGridParam("selrow"),'action':'edit','oper':'return','url':"index.php/procurement/receiveItems"}
  405. $( "#dialog-form-partpayment" ).dialog('option','title','REC-'+$("#"+subgrid_table_id).getCell(lineId,'line_reference'))
  406. $( "#dialog-form-partpayment" ).data('grid_data',gridData).dialog( "open" );
  407. }
  408. else {
  409. $( "#modal-warning" ).dialog("open") ;
  410. }
  411. }
  412. });
  413. $("#"+subgrid_table_id).jqGrid ('navButtonAdd', "#"+pager_id,
  414. { caption: "", buttonicon: "ui-icon-calculator",
  415. title: "Choose Columns",
  416. onClickButton: function() {
  417. $("#"+subgrid_table_id).jqGrid('columnChooser');
  418. }
  419. });
  420. //end sub grid navigator custom buttons
  421. }
  422. }).navGrid("#pagerPk",{edit:false,add:false,del:false,search:false,view:true},{},{},{},{},{});
  423. $("#lineItems").jqGrid('navButtonAdd','#pagerPk',{
  424. caption:"",
  425. title:"Receive Items",
  426. buttonicon:"ui-icon-newwin",
  427. id:"receive_lineItems",
  428. onClickButton : function () {
  429. //need to pass grid id for dynamic reload;
  430. var noOfRows = $("#lineItems").getGridParam("selarrrow").length;
  431. if (noOfRows == 1){
  432. var gridData ={'grid_id':'lineItems','order_line_id':$("#lineItems").getGridParam("selrow"),
  433. 'action':'add','oper':'receive','url':"index.php/procurement/receiveItems"}
  434. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  435. $("#receiptOp").combobox();
  436. }
  437. else {
  438. $( "#modal-warning" ).dialog("open") ;
  439. }
  440. }
  441. });
  442. $("#lineItems").jqGrid('navButtonAdd','#pagerPk',{
  443. caption:"",
  444. title:"Return Items",
  445. buttonicon:"ui-icon-arrowreturnthick-1-w",
  446. id:"return_lineItems",
  447. onClickButton : function () {
  448. //need to pass grid id for dynamic reload;
  449. var noOfRows = $("#lineItems").getGridParam("selarrrow").length;
  450. if (noOfRows == 1){
  451. var gridData ={'grid_id':'lineItems','order_line_id':$("#lineItems").getGridParam("selrow"),
  452. 'action':'add','oper':'return','url':"index.php/procurement/receiveItems"}
  453. $( "#dialog-form-item" ).data('grid_data',gridData).dialog( "open" );
  454. $("#receiptOp").combobox();
  455. }
  456. else {
  457. $( "#modal-warning" ).dialog("open") ;
  458. }
  459. }
  460. });
  461. }
  462. });
  463. },
  464. close: function() {
  465. //allFields.val( "" ).removeClass( "ui-state-error"
  466. var receiving_notes = $("#receivingNotes").val();
  467. console.log(receiving_notes);
  468. $("#tabcache").val("0");
  469. $.ajax({url:"index.php/procurement/validateReceiving",
  470. type:"POST",
  471. data:{
  472. receiving_notes:$("#receivingNotes").val(),
  473. order_id: $("#orders").getGridParam('selrow')
  474. },
  475. success:function(response)
  476. {}
  477. }); //end ajax
  478. $("#quoteForm").data('validator').resetForm();
  479. $('#quoteForm')[0].reset();
  480. $("#lineItems").jqGrid("GridUnload");
  481. $("#tabs").tabs("destroy");
  482. $("#orders").trigger("reloadGrid");
  483. }
  484. });
  485. // Main Request For Quotation Grid
  486. var myGrid = $("#orders");
  487. myGrid.jqGrid({
  488. url:'index.php/procurement/populatePOToReceive',
  489. datatype: 'json',
  490. mtype: 'GET',
  491. colNames:['Reference','Supplier Id','Supplier','Estimated Value',/*'Owner',*/'Status','Raised By',/*'Owner',*/'Needed By Date'],
  492. colModel :[
  493. {name:'reference', index:'reference', width:80, align:'right',editable:false},
  494. {name:'supplier_id', index:'supplier_id',hidden:true},
  495. {name:'supplier_name', index:'supplier_name', width:140, align:'right',editable:false},
  496. {name:'estimated_value', index:'estimated_value', width:100, align:'right',editable:false,editoptions:{size:"20",maxlength:"30"}},
  497. // {name:'owner', index:'owner', width:140, align:'right',editable:true,editoptions:{size:"20",maxlength:"30"}},
  498. {name:'status', index:'status', width:60, align:'right',editable:false,editoptions:{size:"20",maxlength:"30"}},
  499. {name:'raised_by_name', index:'raised_by_name',editable:false, width:80, align:'right'},
  500. // {name:'owner_name', index:'owner_name',editable:false, width:80, align:'right'},
  501. {name:'needed_by_date', index:'needed_by_date',editable:false, width:120, sorttype:'date'}
  502. ],
  503. pager: '#pager',
  504. rowNum:10,
  505. rowList:[5,10,20],
  506. sortname: 'id',
  507. sortorder: 'desc',
  508. viewrecords: true,
  509. gridview: true,
  510. multiselect:true,
  511. ignoreCase:true,
  512. rownumbers:true,
  513. height:'auto',
  514. width:680,
  515. caption: 'Purchase Orders',
  516. jsonReader : {
  517. root:"quotedata",
  518. page: "page",
  519. total: "total",
  520. records: "records",
  521. cell: "dprow",
  522. id: "id"
  523. },
  524. subGrid:true,
  525. subGridRowExpanded: function(subgrid_id, row_id) {
  526. var subgrid_table_id, pager_id;
  527. subgrid_table_id = subgrid_id+"_t";
  528. pager_id = "p_"+subgrid_table_id;
  529. $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
  530. jQuery("#"+subgrid_table_id).jqGrid({
  531. url:'index.php/procurement/populateOrderItems?q=2&orderId='+row_id,
  532. datatype: 'json',
  533. colNames:['Product Id','Product','Quantity','Received','Returned','Need By Date','Unit Price','Estimated Value','Received Value','Returned Value','Notes'],
  534. colModel :[
  535. {name:'product_id', index:'product_id',editable:false, hidden:true},
  536. {name:'name', index:'name',editable:false, width:120, align:'right'},
  537. {name:'quoted_quantity', index:'quoted_quantity', editable:false,width:50, align:'right'},
  538. {name:'received_quantity', index:'received_quantity', editable:false,width:50, align:'right'},
  539. {name:'returned_quantity', index:'returned_quantity', editable:false,width:50, align:'right'},
  540. {name:'needed_by_date',index:'needed_by_date',editable:false, width:60, align:'right',hidden:true},
  541. {name:'expected_price',index:'expected_price',hidden:true, width:50, align:'right'},
  542. {name:'estimated_value', index:'estimated_value',editable:false, width:60, align:'right'},
  543. {name:'received_value', index:'received_value',editable:false, width:60, align:'right'},
  544. {name:'returned_value', index:'returned_value',editable:false, width:60, align:'right',hidden:true},
  545. {name:'comments', index:'comments',editable:false, width:160, align:'right'}
  546. ],
  547. rowNum:20,
  548. pager: pager_id,
  549. sortname: 'id',
  550. sortorder: "asc",
  551. height: '100%',
  552. jsonReader : {
  553. root:"orderitemdata",
  554. page: "page",
  555. total: "total",
  556. records: "records",
  557. cell: "dprow",
  558. id: "id"
  559. }
  560. });
  561. jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false,search:false,view:true});
  562. }
  563. }).navGrid("#pager",{edit:false,add:false,view:false,del:false,search:false},{height:280,reloadAfterSubmit:false,closeAfterEdit:true,recreateForm:true,checkOnSubmit:true},{},{},{},{});
  564. myGrid.jqGrid('navButtonAdd','#pager',{
  565. caption:"",
  566. title:"Match With Received Goods",
  567. buttonicon:"ui-icon-newwin",
  568. id:"add_orders",
  569. onClickButton : function () {
  570. var selectRows = myGrid.getGridParam('selarrrow');
  571. var noOfRows = selectRows.length;
  572. if (noOfRows != 1){
  573. $( "#modal-warning" ).dialog("open");
  574. }
  575. else {
  576. $( "#dialog-form" ).dialog( "open" );
  577. }
  578. }
  579. });
  580. myGrid.jqGrid('navButtonAdd','#pager',{
  581. caption:"",
  582. title:"Ready For Invoice",
  583. buttonicon:"ui-icon-tag",
  584. id:"ready_orders",
  585. onClickButton : function () {
  586. var selectRows = myGrid.getGridParam('selarrrow');
  587. var noOfRows = selectRows.length;
  588. var mismatch = 0;
  589. if (noOfRows == 0){
  590. $( "#modal-warning-none" ).dialog("open");
  591. }
  592. else {
  593. for (i=0;i<noOfRows;i++){
  594. //console.log(selectRows[i]);
  595. var status = myGrid.getCell(selectRows[i],'status');
  596. if (status!='received'){
  597. $( "#modal-warning-status" ).dialog("open");
  598. mismatch = 1;
  599. break;
  600. }
  601. }
  602. if (mismatch==0){
  603. $( "#dialog-confirm" ).dialog( "open" );
  604. }
  605. }
  606. }
  607. });
  608. myGrid.jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, defaultSearch : "cn"});
  609. //line item dialog
  610. $( "#dialog-form-item" ).dialog({
  611. autoOpen: false,
  612. height: 'auto',
  613. width: '35%',
  614. position:[450,25],
  615. modal: true,
  616. buttons: {
  617. "Done": {
  618. id:"processItems",
  619. text:"Confirm",
  620. click:function() {
  621. var isvalid = $("#itemForm").valid();
  622. var grid = $(this).data('grid_data').grid_id;
  623. var order_line_id = $(this).data('grid_data').order_line_id;
  624. var oper = $(this).data('grid_data').oper;
  625. var url = $(this).data('grid_data').url;
  626. var order_id = myGrid.getGridParam('selrow');
  627. //relevant only in case of edit
  628. var subgrid = $(this).data('grid_data').sub_grid_id;
  629. var receipt_line_id = $(this).data('grid_data').receipt_line_id;
  630. var action = $(this).data('grid_data').action;
  631. // by default assume action is "add"
  632. var total_received_quantity = parseInt($("#received_quantity").val())+parseInt($("#already_received").text());
  633. var total_received_value = parseFloat($("#received_value").val())+parseFloat($("#already_received_value").text());
  634. var total_returned_quantity=parseInt($("#returned_quantity").val())+parseInt($("#already_returned").text());
  635. var total_returned_value=parseFloat($("#returned_value").val())+parseFloat($("#already_returned_value").text());
  636. if (action=='edit'){
  637. //if (oper=='receive'){
  638. //subtract old received
  639. total_received_value = total_received_value - $("#"+subgrid).getCell(receipt_line_id,'received_value');
  640. total_received_quantity = total_received_quantity - $("#"+subgrid).getCell(receipt_line_id,'received_quantity');
  641. //}
  642. //else if (oper=='return'){
  643. //subtract old returned
  644. total_returned_value = total_returned_value - $("#"+subgrid).getCell(receipt_line_id,'returned_value');
  645. total_returned_quantity = total_returned_quantity - $("#"+subgrid).getCell(receipt_line_id,'returned_quantity');
  646. //}
  647. }
  648. if (isvalid){
  649. $.ajax({
  650. url:url,
  651. type:"POST",
  652. data:{
  653. order_id:order_id,
  654. order_line_id:order_line_id,
  655. product_id:$("#"+grid).getCell(order_line_id,'product_id'),
  656. supplier_id:myGrid.getCell(order_id,'supplier_id'),
  657. receipt:$("#receiptOp").val(),
  658. receipt_ip:$("#receiptOp-input").val(),
  659. total_received_quantity:total_received_quantity,
  660. received_value:$("#received_value").val(),
  661. total_received_value:total_received_value,
  662. received_quantity:$("#received_quantity").val(),
  663. quantity:parseInt($("#quantity").text()),
  664. returned_quantity:$("#returned_quantity").val(),
  665. returned_value:$("#returned_value").val(),
  666. total_returned_quantity:total_returned_quantity,
  667. total_returned_value:total_returned_value,
  668. receiving_notes:$("#receiving_notes").val(),
  669. returned_notes:$("#returned_notes").val(),
  670. oper:$("#oper").val(),
  671. action:$("#action").val()
  672. },
  673. success:function (response){
  674. //console.log("grid " + grid);
  675. $("#"+grid).trigger("reloadGrid");
  676. //reload Main Grid
  677. }
  678. })
  679. $( this ).dialog( "close" );
  680. }
  681. }},
  682. Cancel: function() {
  683. $( this ).dialog( "close" );
  684. }
  685. },
  686. open: function(event,ui){
  687. var grid = $(this).data('grid_data').grid_id;
  688. var order_line_id = $(this).data('grid_data').order_line_id;
  689. var oper = $(this).data('grid_data').oper;
  690. var order_id = myGrid.getGridParam('selrow');
  691. //relevant only in case of edit
  692. var subgrid = $(this).data('grid_data').sub_grid_id;
  693. var receipt_line_id = $(this).data('grid_data').receipt_line_id;
  694. var action = $(this).data('grid_data').action;
  695. $.ajax({
  696. url:"index.php/procurement/populateReceiptOptions",
  697. method:"get",
  698. data:{order_id:order_id},
  699. success : function (response){
  700. $("#receiptOp option").remove();
  701. var opts = '<option value="">Choose ';
  702. opts +=response;
  703. console.log(opts);
  704. $("#receiptOp").html(opts);
  705. if (action=="edit"){
  706. var selVal =$("#"+subgrid).getCell(receipt_line_id,'receipt_id') ;
  707. $("#receiptOp").val(selVal);
  708. $("#receiptOp").attr("disabled",true);
  709. }
  710. }
  711. })
  712. if (oper == "receive"){
  713. $("#received_quantity_cntnr,#received_value_cntnr,#receiving_notes_cntnr").show();
  714. $("#returned_quantity,#returned_value").val("0");
  715. //to be ignored by validation
  716. $("#returned_quantity,#returned_value").addClass("ignore-fields");
  717. $("#formHeaderItem").text("Receive Items");
  718. }
  719. else if (oper=="return"){
  720. $("#returned_quantity_cntnr,#returned_value_cntnr,#returned_notes_cntnr").show();
  721. $("#received_quantity,#received_value").val("0");
  722. //to be ignored by validation
  723. $("#received_quantity,#received_value").addClass("ignore-fields");
  724. $("#formHeaderItem").text("Return Items");
  725. }
  726. if (action=="edit")

Large files files are truncated, but you can click here to view the full file