<?php include "system.php"; include_once '../simbiz/class/Track.inc.php'; $o = new Trackclass(); $s = new XoopsSecurity(); $action = $_REQUEST['action']; $isadmin = $xoopsUser->isAdmin(); $uid = $xoopsUser->getVar('uid'); switch ($action) { case "search": //return xml table to grid $wherestring = " WHERE trackheader_id>0"; $o->showTrackclass($wherestring); exit; //after return xml shall not run more code. break; case "lookup": //return xml table to grid include_once "../simantz/class/EBAGetHandler.php"; $defaultorganization_id = $_SESSION['defaultorganization_id']; $lookupdelay = 1000; $pagesize =& $_GET["pagesize"]; $ordinalStart =& $_GET["startrecordindex"]; $sortcolumn =& $_GET["sortcolumn"]; $sortdirection =& $_GET["sortdirection"]; $getHandler = new EBAGetHandler(); $getHandler->ProcessRecords(); $wherestring = " WHERE trackheader_id>0"; $o->showLookupTrackclass($wherestring); exit;
public function getInputForm($action = "new") { global $userid, $simbizctrl, $ctrl, $defaultorganization_id; $this->log->showLog(3, "Access Payment getInputForm()"); if ($o->track1_id == "") { $o->track1_id = 0; } if ($o->track2_id == "") { $o->track2_id = 0; } if ($o->track3_id == "") { $o->track3_id = 0; } $track1option = $simbizctrl->getSelectTrack($this->track1_id, "Y", " AND trackheader_id =1"); $track2option = $simbizctrl->getSelectTrack($this->track2_id, "Y", " AND trackheader_id =2"); $track3option = $simbizctrl->getSelectTrack($this->track3_id, "Y", " AND trackheader_id =3"); if ($action == "new") { include "../simbiz/class/Track.inc.php"; $track = new Trackclass(); $track_array = $track->getTrackName(); $this->track1_name = $track_array['track1_name']; $this->track2_name = $track_array['track2_name']; $this->track3_name = $track_array['track3_name']; $this->bpartneraccounts_id = 0; $tableheader = "New Payment"; $attnoption = "<option value='0'>Null</option>"; $uidoption = $ctrl->getSelectUsers($userid); $termsoption = "<option value='0'>Null</option>"; $addressoption = "<option value='0'>Null</option>"; $currencyoption = "<option value='0'>Null</option>"; $branchctrl = $ctrl->selectionOrganization($userid, $defaultorganization_id); $this->payment_id = 0; $this->document_no = $this->getNextNo(); $this->document_date = date("Y-m-d", time()); $this->exchangerate = 1; $this->subtotal = 0; $this->localamt = 0; } else { $tableheader = "Edit Payment"; include_once "../simantz/class/SelectCtrl.inc.php"; $ctrl = new SelectCtrl(); include "../bpartner/class/BPSelectCtrl.inc.php"; $bpctrl = new BPSelectCtrl(); include "../bpartner/class/BPartner.php"; $bp = new BPartner(); $bpartner_id = $_REQUEST['bpartner_id']; $bp->fetchBpartnerData($bpartner_id); $addressxml = $bpctrl->getSelectAddress($this->address_id, "N", $o->bpartner_id); $termsxml = $bpctrl->getSelectTerms($this->terms_id, "N"); $contactxml = $bpctrl->getSelectContacts($this->contacts_id, 'N', "", "", " and bpartner_id={$this->bpartner_id}"); $currencyxml = $ctrl->getSelectCurrency($this->currency_id); $branchctrl = $ctrl->selectionOrganization($userid, $this->organization_id); $attnoption = $contactxml; $uidoption = $ctrl->getSelectUsers($this->preparedbyuid); $termsoption = $termsxml; $addressoption = $addressxml; $currencyoption = $currencyxml; // $branchoption="<option value='1'>HQ</option>"; } $grid = $this->getGrid($this->payment_id); $html = <<<HTML <br/> <div id='centercontainer'> <div align="center" > <table style="width:990px;text-align: left; " > <tr><td align="left">{$this->addnewctrl}</td><td align="right">{$this->searchctrl}</td></tr></table> {$noperm} <br/> <div id='errormsg' class='red' style='display:none'></div> <form onsubmit='return false' method='post' name='frmPayment' id='frmPayment' action='{$this->paymentfilename}' enctype="multipart/form-data"> <table style="text-align: left; width: 990px;" border="0" cellpadding="0" cellspacing="1" class="searchformblock"> <tbody> <tr> <td colspan="4" rowspan="1" align="center" id="idHeaderText" class="searchformheader" >{$tableheader}</td> </tr> <tr> <td class="head">Payment No</td> <td class="even"><input name='sppayment_prefix' id='sppayment_prefix' value='{$this->sppayment_prefix}'size='3'> <input name='document_no' id='document_no' value='{$this->document_no}' size='10'> Branch <select id='organization_id' name='organization_id'> {$branchctrl}</select></td> <td class="head">Business Partner</td> <td class="even"> <ntb:Combo id="cmbbpartner_id" Mode="classic" theme="{$nitobicombothemes}" InitialSearch="{$this->bpartner_name}" onselectevent="chooseBPartner();"> <ntb:ComboTextBox Width="250px" DataFieldIndex=1 ></ntb:ComboTextBox> <ntb:ComboList Width="300px" Height="200px" DatasourceUrl="../simbiz/simbizlookup.php?action=searchbpartnercombo&showNull=Y" PageSize="25" > <ntb:ComboColumnDefinition Width="130px" DataFieldIndex=1 ></ntb:ComboColumnDefinition> <ntb:ComboMenu icon="images/add.gif" OnClickEvent="window.open('../bpartner/bpartner.php')" text=" Add product..."> </ntb:ComboList> </ntb:Combo> </td> </tr> <tr> <td class="head">Date (YYYY-MM-DD)</td> <td class="even"> <input id='document_date' name='document_date' size='10' value='{$this->document_date}'> <input id='btnpaymentdate' type='button' class='btndate' onclick="{$this->showCalendar}" value="Date"></td> <td class="head">Attn To </td> <td class="even"><select id='contacts_id' name='contacts_id' >{$attnoption}</select></td> </tr> <tr> <td class="head">Ref. No</td> <td class="even"><input id='ref_no' size='10' name='ref_no' value='{$this->ref_no}'></td> </tr> <tr> <td class="head">Prepared By</td> <td class="even"><select id='preparedbyuid' name='preparedbyuid'>{$uidoption}</select></td> <td class="head">Sales Agent</td> <td class="even"><input id='salesagentname' name='salesagentname' value='{$this->salesagentname}'></td> </tr> <tr> <td class="head">Address</td> <td class="even"><select id='address_id' name='address_id' onchange=updateAddressText()>{$addressoption}</select><br/> <textarea id='address_text' name='address_text' cols='30' rows='3'>{$this->address_text}</textarea> </td> <td class="head">Currency</td> <td class="even"> <select id='currency_id' name='currency_id' onchange=comparecurrency()>{$currencyoption}</select> Exchange rate: MYR<input size='8' id='exchangerate' onchange=updateCurrency() value="{$this->exchangerate}" name="exchangerate"><br/> </td> <tr> <td class="head" colspan='4'> <input name='save' onclick='saverecord(0)' type='submit' id='submit' value='Save'> <input name='save' onclick='saverecord(1);' type='submit' id='submit' value='Complete'> <input name='save' onclick='deleterecord()' type='submit' id='delete' value='Delete'> <input name='action' name='action' value='ajaxsave' type="hidden"> <input type="button" value="Reload" onclick=javascript:reloadPayment()> <input type="button" value="Receive All" onclick=javascript:receiveAll()> <input type="button" value="Preview" onclick=javascript:previewPayment()> <input name="track1_name" id="track1_name" type="hidden" value="{$this->track1_name}"> <input name="track2_name" id="track2_name" type="hidden" value="{$this->track2_name}"> <input name="track3_name" id="track3_name" type="hidden" value="{$this->track3_name}"> <input name='payment_id' id='payment_id' value='{$this->payment_id}' title='payment_id' type='hidden'> <input name='iscomplete' id='iscomplete' value='{$this->iscomplete}' title='iscomplete' type='hidden'> <input name='bpartneraccounts_id' id='bpartneraccounts_id' value='{$this->bpartneraccounts_id}' title='bpartneraccounts_id' type='hidden'> </td> </td></tr> <tr><td colspan='4'> <div id='detaildiv'> {$grid} <small>* Update payment detail via edit column Account, Paid Amt and following column, leave Paid Amt = 0 to delete particular payment detail</small> <div style="width:476px;text-align:right" > <b style="text-align:right; height:30px; border-top: 1px solid #000; border-bottom: 3px double #000; width:300px"> Total: <label id='lblsubtotal'><input id='subtotal' style="text-align:right" size="10" name='subtotal' readonly="readonly" value='{$this->subtotal}'></label></b><br/> Outstanding : <label id='lbltotalgst'><input id='outstandingamt' size="10" style="text-align:right" name='outstandingamt' readonly="readonly" value='{$this->outstandingamt}'></label> </div> </div> </td></tr> <td class="head">Description</td> <td class="even" colspan='2'><textarea cols='70' rows='3' id='description' name='description'>{$this->description}</textarea></td> <td rowspan="2"><br/><b>Tracking information</b> <div class="searchformblock" id="trackblock"> {$this->track1_name}: <select name="track1_id" id="track1_id">{$track1option}</select><br/> {$this->track2_name}: <select name="track2_id" id="track1_id">{$track2option}</select><br/> {$this->track3_name}: <select name="track3_id" id="track1_id">{$track3option}</select><br/> </div></td> </tr><tr> <td class="head">Note</td> <td class="even" colspan='2'><textarea cols='70' rows='3' id='note' name='note'>{$this->note}</textarea></td> </tr></table> </form> HTML; return $html; }
public function getBatchlineform() { global $nitobigridthemes, $isadmin, $havewriteperm, $action, $uid, $defcurrencycode, $defaultorganization_id, $iseditbpartner; $this->allowedit = 1; $this->fetchBatch($this->batch_id); $editBPartner = "true"; if ($iseditbpartner == "N" || $this->fromsys != "") { $editBPartner = "false"; } $add_imgpath = 'images/add_line.gif'; if ($this->batch_id == 0 || $this->batch_id == "") { $url_addline_img = $add_imgpath; } $editTax = "true"; if ($this->tax_type == 1) { $editTax = "false"; } $editabled = 0; $grIdColumn = 13; //define primary key column index for normal user // $deleteddefaultvalue_js=""; $changewidth = "width='365'"; if ($havewriteperm == 1) { //user with write permission can edit grid, have button $permctrl = " rowinsertenabled=\"true\" rowdeleteenabled=\"true\" onbeforesaveevent=\"beforesave()\""; if ($this->allowedit == 1) { if ($this->issubmit != 1 && $this->iscomplete != 1) { $savectrl = '<input id="ntbSavebtn" name="ntbSavebtn" onclick="save()" value="Save" type="button" style="display:inline">'; $addctrl = '<input id="ntbAddbtn" name="ntbAddbtn" onclick="addline()" value="Add Transaction" type="button" style="display:inline">'; $editabled = 1; $this->claimdetailsmsg = ""; } else { $editabled = 0; } } else { $savectrl = '<input id="ntbSavebtn" name="ntbSavebtn" onclick="save()" value="Save" type="button" style="display:none">'; $addctrl = '<input id="ntbAddbtn" name="ntbAddbtn" onclick="addline()" value="Add Transaction" type="button" style="display:none">'; $this->claimdetailsmsg = ""; } $alloweditgrid = "col!={$grIdColumn}"; } else { //user dun have write permission, cannot save grid $savectrl = ""; $permctrl = " rowinsertenabled=\"false\" rowdeleteenabled=\"false\" onbeforesaveevent=\"return false\" "; $alloweditgrid = "false"; } $timestamp = date("Y-m-d", time()); $rh = "odd"; if ($this->batch_id == 0) { include "../simbiz/class/Track.inc.php"; $track = new Trackclass(); $track_array = $track->getTrackName(); $track1_name = $track_array['track1_name']; $track2_name = $track_array['track2_name']; $track3_name = $track_array['track3_name']; } else { $track1_name = $this->track1_name; $track2_name = $this->track2_name; $track3_name = $this->track3_name; } if ($track1_name == "") { $track1_name = "Track 1"; } if ($track2_name == "") { $track1_name = "Track 2"; } if ($track3_name == "") { $track1_name = "Track 3"; } echo <<<EOF <link rel="stylesheet" type="text/css" href="../simantz/include/nitobi/nitobi.calendar/nitobi.calendar.css" /> <script type="text/javascript" src="../simantz/include/nitobi/nitobi.calendar/nitobi.calendar.js"></script> <script language="javascript" type="text/javascript"> var init_cell = 11; //testn = 12.054; //alert(Math.round(testn*100)/100); \$(document).ready((function (){ nitobi.loadComponent('DataboundGrid'); })); function roundAmtValue(val){ return (Math.round(val*100)/100).toFixed(2); } function search(){ var grid = nitobi.getGrid("DataboundGrid"); \tgrid.dataBind(); } function getTotalAmount(){ var grid= nitobi.getGrid('DataboundGrid'); var selRow = grid.getSelectedRow(); var selCol = grid.getSelectedColumn(); var total_row = grid.getDisplayedRowCount(); var typeline_cell = grid.getCellObject(selRow, init_cell+4); var temp_parent_cell = grid.getCellObject(selRow, init_cell+6); var debit_cell = grid.getCellObject(selRow, init_cell-5); var cerdit_cell = grid.getCellObject(selRow, init_cell-4); var parent_val = temp_parent_cell.getValue(); var typeline_val = typeline_cell.getValue(); var parent_col = init_cell-5; var child_col = init_cell-4; if(selCol == (init_cell-5)){//is debit if(debit_cell.getValue() > 0 ){ cerdit_cell.setValue('0.00'); parent_col = init_cell-4; child_col = init_cell-5; } else{ parent_col = init_cell-5; child_col = init_cell-4; } }else if(selCol == (init_cell-4)){//is credit if(cerdit_cell.getValue() > 0 ){ debit_cell.setValue('0.00'); parent_col = init_cell-5; child_col = init_cell-4; }else{ parent_col = init_cell-4; child_col = init_cell-5; } } var currentrow = document.getElementById('currentrow').value; if(typeline_val == 2 && selRow == currentrow){//if child do update parent updateTotalParent(parent_val,parent_col,child_col,0); } sumDebitCreditLine(); } function updateTotalParent(parent_val,parent_col,child_col,sub_value){ var grid= nitobi.getGrid('DataboundGrid'); var total_row = grid.getDisplayedRowCount(); var sum_col_val = 0; for(var i = 0; i < total_row; i++){ var typeline_cell = grid.getCellObject(i, init_cell+4); var temp_parent_cell = grid.getCellObject(i, init_cell+6); var line_debitchild = grid.getCellObject(i,init_cell-5); var line_creditchild = grid.getCellObject(i,init_cell-4); var parent_line = temp_parent_cell.getValue(); var typeline_line = typeline_cell.getValue(); var debit_line = line_debitchild.getValue(); var credit_line = line_creditchild.getValue(); if(parent_val == parent_line){//if same parent if(typeline_line == 1){//if parent update_col_1 = grid.getCellObject(i,parent_col); update_col_2 = grid.getCellObject(i,child_col); }else{ sum_col = grid.getCellObject(i,child_col); sum_col_val = parseFloat(sum_col_val) + parseFloat(sum_col.getValue()); } } } if(i > 0){ sum_col_val = parseFloat(sum_col_val) - parseFloat(sub_value); update_col_1.setValue(sum_col_val); update_col_2.setValue("0.00"); } } function sumDebitCreditLine(){ var grid= nitobi.getGrid('DataboundGrid'); var total_row = grid.getDisplayedRowCount(); ColTxt1 = "Subtotal"; ColTxt2 = ""; ColTxt3 = ""; var finalSubTotalArr= new Array(); var finalTotalDebitArr= new Array(); var finalTotalCreditArr= new Array(); var init_total = ""; var totalTaxDebitFinal = 0; var totalTaxCreditFinal = 0; var j = 0; var k = 0; total_debit_ori = 0; total_credit_ori = 0; total_debit = 0; total_credit = 0; debit_amt_tax = 0; credit_amt_tax = 0; for(var i = 0; i < total_row; i++){ var line_taxchild = grid.getCellObject(i,init_cell-3); var line_debitchild = grid.getCellObject(i,init_cell-5); var line_creditchild = grid.getCellObject(i,init_cell-4); var line_totaltaxchild = grid.getCellObject(i,init_cell+7); var val_taxchild = line_taxchild.getValue(); var val_debitchild = line_debitchild.getValue(); var val_creditchild = line_creditchild.getValue(); var val_totaltaxchild = line_totaltaxchild.getValue(); var debit_amt = val_debitchild; var credit_amt = val_creditchild; total_debit_ori = parseFloat(total_debit_ori) + parseFloat(debit_amt); total_credit_ori = parseFloat(total_credit_ori) + parseFloat(credit_amt); if(false){//val_totaltaxchild > 0 : not use j++; var totalTaxDebit = countTotalTax(val_totaltaxchild,val_debitchild);//(parseFloat(val_totaltaxchild)/100)*parseFloat(val_debitchild); var totalTaxCredit = countTotalTax(val_totaltaxchild,val_creditchild);//(parseFloat(val_totaltaxchild)/100)*parseFloat(val_creditchild); /* start define col for final total */ if(init_total != val_totaltaxchild){ var totalTaxDebitFinal = 0; var totalTaxCreditFinal = 0; var debit_amt_tax = 0; var credit_amt_tax = 0; } var prevDebit = finalTotalDebitArr[val_totaltaxchild*100]; if(prevDebit == undefined) prevDebit = 0; var prevCredit = finalTotalCreditArr[val_totaltaxchild*100]; if(prevCredit == undefined) prevCredit = 0; debit_amt_tax = parseFloat(debit_amt_tax) + parseFloat(debit_amt); credit_amt_tax = parseFloat(credit_amt_tax) + parseFloat(credit_amt); finalSubTotalArr[val_totaltaxchild*100] = val_totaltaxchild; finalTotalDebitArr[val_totaltaxchild*100] = parseFloat(prevDebit) + parseFloat(debit_amt_tax); finalTotalCreditArr[val_totaltaxchild*100] = parseFloat(prevCredit) + parseFloat(credit_amt_tax); /* end */ debit_amt = parseFloat(debit_amt) + totalTaxDebit; credit_amt = parseFloat(credit_amt) + totalTaxCredit; } total_debit = parseFloat(total_debit) + parseFloat(debit_amt); total_credit = parseFloat(total_credit) + parseFloat(credit_amt); total_debit = roundAmtValue(parseFloat(total_debit)); total_credit = roundAmtValue(parseFloat(total_credit)); total_debit_ori = roundAmtValue(parseFloat(total_debit_ori)); total_credit_ori = roundAmtValue(parseFloat(total_credit_ori)); } /* start update value */ document.getElementById("totaldebit").value=total_debit; document.getElementById("totalcredit").value=total_credit; /* not use //start final total for(i in finalSubTotalArr){ // in returns key, not object if(finalSubTotalArr[i] != undefined){ var taxTot = finalSubTotalArr[i]; var debitTot = finalTotalDebitArr[parseFloat(taxTot*100)]; var creditTot = finalTotalCreditArr[parseFloat(taxTot*100)]; var debitTotFinal = countTotalTax(taxTot,debitTot);//(parseFloat(taxTot)/100)*parseFloat(debitTot); var creditTotFinal = countTotalTax(taxTot,creditTot);//(parseFloat(taxTot)/100)*parseFloat(creditTot); ColTxt1 += "<br/><br/>Total Tax "+taxTot+"%"; ColTxt2 += "<br/><br/>"+roundAmtValue(debitTotFinal); ColTxt3 += "<br/><br/>"+roundAmtValue(creditTotFinal); } } ColTxt2 = total_debit_ori+""+ColTxt2; ColTxt3 = total_credit_ori+""+ColTxt3; document.getElementById("idSubTotal").innerHTML=ColTxt1; document.getElementById("idTotalDebit").innerHTML=ColTxt2; document.getElementById("idTotalCredit").innerHTML=ColTxt3; document.getElementById("idFinalTotalDebit").innerHTML=total_debit; document.getElementById("idFinalTotalCredit").innerHTML=total_credit; */ } function countTotalTax(tax_value,amt_value){ var retval = "0.00"; retval = (parseFloat(tax_value)/100)*parseFloat(amt_value); return parseFloat(retval); } function updateCurrentRow(eventArgs){ row=eventArgs.getCell().getRow(); document.getElementById('currentrow').value = row; } function getTotalAmountCell(eventArgs){ row=eventArgs.getCell().getRow(); col=eventArgs.getCell().getColumn(); var grid= nitobi.getGrid('DataboundGrid'); if(false){//if tax : col == init_cell-3 var line_taxchild = grid.getCellObject(row,init_cell-3); var line_totaltaxchild = grid.getCellObject(row,init_cell+7); var val_taxchild = line_taxchild.getValue(); var data = "action=getTotalTax&tax_id="+val_taxchild; \$.ajax({ url: "batch.php",type: "POST",data: data,cache: false, success: function (xml) { var total_tax = 0; if(xml != ""){ jsonObj = eval( '(' + xml + ')'); var total_tax = jsonObj.total_tax; } total_tax = roundAmtValue(parseFloat(total_tax)); line_totaltaxchild.setValue(total_tax); sumDebitCreditLine(); }}); }else if((col == init_cell-5) || (col == init_cell-4)){//if debit | credit getTotalAmount(); } } //optional function to generate primary key value, ignore this function because we use autogen method function GetNewRecordID() { return 0; } //after grid html render properly, set focus on it. It is important when use choose particular cell but // immediately press search again. From screen we won't detect cell is selected infact from javascript // detect selected function dataready(){ var g = nitobi.getGrid('DataboundGrid'); g.move(0,0);//need to trigger relative position 0,0 in for next code able to highlight at screen var selRow = g.getSelectedRow(); refreshGrid(); } //Call event after save complete function savedone(eventArgs){ var grid= nitobi.getGrid('DataboundGrid'); var dataSource =grid.getDataSource(); var errorMessage = dataSource.getHandlerError(); if (!errorMessage) {//save successfully \t jQuery('#msgbox').fadeTo('slow', 1, function() { \t document.getElementById('msgbox').innerHTML="Record saved successfully"; //document.getElementById('popupmessage').innerHTML="Please Wait....."; search(); popup('popUpDiv'); \t\t}); return true; } else{ //save failed \tsearch(); popup('popUpDiv'); \treturn false; \t} } //if save_data have error, trigger this function function showError(){ var grid= nitobi.getGrid('DataboundGrid'); var dataSource =grid.getDataSource(); var errorMessage = dataSource.getHandlerError(); if (errorMessage) { document.getElementById('msgbox').innerHTML="<b style=\\"color:red\\">"+errorMessage+"</b><br/>"; grid.dataBind(); } else document.getElementById('msgbox').innerHTML=""; jQuery('#msgbox').fadeTo('slow', 1, function() {}); } //if user click particular column, auto fall into edit mode function clickrecord(eventArgs){ alert("fds"); row=eventArgs.getCell().getRow(); col=eventArgs.getCell().getColumn(); var myGrid = nitobi.getGrid('DataboundGrid'); var myCell = myGrid.getCellObject(row, col); myCell.edit(); } //add line button will call this function addline(){ if('{$this->isreadonly}'=='0' && '{$this->iscomplete}'=='0'){ var grid= nitobi.getComponent('DataboundGrid'); grid.insertRow(); document.getElementById('line_type').value = "1"; var grid= nitobi.getComponent('DataboundGrid'); grid.insertRow(); } } //trigger save activity from javascript function save() { \tif(document.getElementById("afterconfirm").value==1){ //Ask for confirmation from delete activity already, process data immediately var g= nitobi.getGrid('DataboundGrid'); \t document.getElementById("afterconfirm").value=0; \t g.save(); } \telse{ // not yet request confirmation \t if(true){//confirm("Confirm the changes? Data will save into database immediately") \t var g= nitobi.getGrid('DataboundGrid'); \t document.getElementById("afterconfirm").value=0; \t g.save(); \t search(); \t } \t} } function beforesave(){ document.getElementById('popupmessage').innerHTML="Please Wait....."; popup('popUpDiv'); } function onclickdeletebutton(){ //when press delete button will triger this function and ask for confirmation if({$editabled}!=0){ var g= nitobi.getGrid('DataboundGrid'); var selRow = g.getSelectedRow(); if(selRow==-1){// no select any row alert("Please choose a row before deleting."); return false; } else g.deleteCurrentRow(); } sumDebitCreditLine(); } function checkAllowEdit(eventArgs){ \tvar g= nitobi.getGrid('DataboundGrid'); col=eventArgs.getCell().getColumn(); if({$alloweditgrid} && document.getElementById("iscomplete").value==0) //if user have permission to edit the cell, control primary key column read only at here too return true; else return false; } //after insert a new line will automatically fill in some value here function setDefaultValue(eventArgs,action_type) { var myGrid = eventArgs.getSource(); var r = eventArgs.getRow(); var rowNo = r.Row; {$deleteddefaultvalue_js} myGrid.selectCellByCoords(rowNo, 0); /* start css */ var grid = nitobi.getComponent("DataboundGrid"); if(action_type == "add"){ var linetype_new = document.getElementById('line_type').value; var linetype_cell = grid.getCellObject(rowNo, init_cell+4);//1st para : row , 2nd para : column seq if(linetype_new == 0 || linetype_new == "") linetype_new = 2;//set to child if 0 linetype_cell.setValue(linetype_new); }else if(action_type == "delete"){ var linetype_cell = grid.getCellObject(rowNo, init_cell+4);//1st para : row , 2nd para : column seq linetype_val = linetype_cell.getValue(); if(linetype_val == 2){//if child -> do calculatation var debit_cell = grid.getCellObject(rowNo, init_cell-5); var cerdit_cell = grid.getCellObject(rowNo, init_cell-4); var temp_parent_cell = grid.getCellObject(rowNo, init_cell+6); var parent_val = temp_parent_cell.getValue(); if(debit_cell.getValue() > 0 ){ updateTotalParent(parent_val,init_cell-4,init_cell-5,debit_cell.getValue()); }else{ updateTotalParent(parent_val,init_cell-5,init_cell-4,cerdit_cell.getValue()); } } } refreshGrid(); /* end */ } function refreshGrid(){ init_cell = 10; var grid = nitobi.getComponent("DataboundGrid"); var selRow = grid.getSelectedRow(); var total_col = grid.columnCount(); var total_row = grid.getDisplayedRowCount(); var j = 0; for(var i = 0; i < total_row; i++){ var linetype_cell = grid.getCellObject(i, init_cell+4);//1st para : row , 2nd para : column seq var refid_cell = grid.getCellObject(i, init_cell+5);//1st para : row , 2nd para : column seq var transid_cell = grid.getCellObject(i, init_cell+3);//1st para : row , 2nd para : column seq var seqno_cell = grid.getCellObject(i, init_cell+8);//1st para : row , 2nd para : column seq var linetype_val = linetype_cell.getValue(); var refid_val = refid_cell.getValue(); var transid_val = transid_cell.getValue(); seqno_cell.setValue(i+1); if(linetype_val == 0 || linetype_val == "" || (refid_val > 0 && transid_val > 0)){ linetype_val = 2;//set to child if 0 linetype_cell.setValue(2); } var tempparentid_cell = grid.getCellObject(i, init_cell+6);//1st para : row , 2nd para : column seq var row_element = nitobi.grid.Row.getRowElement(grid,i); var cell_delchild = grid.getCellElement(i,init_cell+1); var cell_addchild = grid.getCellElement(i,init_cell+2); var styleCountAdd = init_cell+4; var styleCountDel = init_cell+4; if(linetype_val == 1 || (refid_val == 0 && transid_val > 0)){ j++; tempparentid_cell.setValue(j); row_element.className="journalParent"; var divAddImg = '<div style="overflow: hidden; white-space: nowrap;" class="ntb-rowntb__1 ntb-column-datantb__1_13 ntb-cell" title=""><div style="background-image: url(""); background-repeat: no-repeat;" class="ntb-image"><img src="{$add_imgpath}" style="" align="middle" border="0"></div></div>'; cell_addchild.innerHTML = divAddImg }else{ tempparentid_cell.setValue(j); row_element.className="journalChild"; var divDelImg = '<div style="overflow: hidden; white-space: nowrap;padding-left:0px;" class="ntb-rowntb__1 ntb-column-datantb__1_13 ntb-cell" title=""><div style="background-image: url(""); background-repeat: no-repeat;" class="ntb-image"><img src="images/del.gif" style="" align="middle" border="0"></div></div>'; cell_addchild.innerHTML = ""; cell_delchild.innerHTML = divDelImg; // cell_delchild.style.paddingLeft="100px"; //document.getElementById("cell_"+i+"_12_ntb__"+{$this->createdby}).innerHTML = ""; } } } function beforeDelete(){ if(confirm('Delete this record? Data will save into database immediately.')){ document.getElementById("afterconfirm").value=1; //popup('popUpDiv'); return true; } else{ document.getElementById("afterconfirm").value=0; return false; } } function validateEmpty(){ var grid= nitobi.getGrid('DataboundGrid'); var isallow = true; var total_row = grid.getRowCount(); var detail =""; var purpose =""; var bill =""; var amount =""; for( var i = 0; i < total_row; i++ ) { var detailcell = grid.getCellObject( i, 1);//1st para : row , 2nd para : column seq var purposecell = grid.getCellObject( i, 2);//1st para : row , 2nd para : column seq var billcell = grid.getCellObject( i, 3);//1st para : row , 2nd para : column seq var amountcell = grid.getCellObject( i, 4);//1st para : row , 2nd para : column seq detail = detailcell.getValue(); purpose = purposecell.getValue(); bill = billcell.getValue(); amount = amountcell.getValue(); if(amount=="" || amount=="0") { isallow = false; document.getElementById('msgbox').innerHTML="<a class=\\"statusmsg\\">Please enter Amount.</a><br/>"; } if(bill=="") { isallow = false; document.getElementById('msgbox').innerHTML="<a class=\\"statusmsg\\">Please enter Bill/Invoice No.</a><br/>"; } if(purpose=="") { isallow = false; document.getElementById('msgbox').innerHTML="<a class=\\"statusmsg\\">Please enter Purpose.</a><br/>"; } if(detail=="") { isallow = false; document.getElementById('msgbox').innerHTML="<a class=\\"statusmsg\\">Please enter Detail of Expenditure.</a><br/>"; } } if(isallow) return true; else return false; } function onclickaddbutton(){ if("{$this->isreadonly}"=="0" && "{$this->iscomplete}"=="0"){ var g= nitobi.getGrid('DataboundGrid'); g.insertAfterCurrentRow(); document.getElementById('line_type').value = "2"; } } function shotcutinsertline(e){ if(e.charCode==32) onclickaddbutton(); } function shotcutdeleteline(e){ if(e.charCode==32) onclickdeletebutton(); } </script> <input type="hidden" id="line_type" value=""> <div id='blanket' style='display:none;'></div> <div id='popUpDiv' style='display:none;verticle-align:center'> <div id='popupmessage' style='text-align:center'></div>d<div id='progressimage' style='text-align:center'><img src='../simantz/images/ajax_indicator_01.gif'></div> </div> <div align="center"> <table style="width:940px;"> <tr><td align="left">{$addctrl}</td></tr> <tr><td align="center" style="background-color:#ffffff;"> <!-- onchangeevent="getTotalAmount()" onaftercelleditevent="getTotalAmountCell(eventArgs)"--> <ntb:grid id="DataboundGrid" mode="nonpaging" toolbarenabled='false' {$permctrl} onhtmlreadyevent="dataready()" singleclickeditenabled="true" keygenerator="GetNewRecordID();" onhandlererrorevent="showError()" gethandler="batch.php?action=searchbatchline&batch_id={$this->batch_id}" savehandler="batch.php?action=saveBatchline" onbeforecelleditevent="checkAllowEdit(eventArgs)" onafterrowinsertevent="setDefaultValue(eventArgs,'add')" rowhighlightenabled="false" width="960" height="200" onaftersaveevent="savedone(eventArgs)" onaftercelleditevent="getTotalAmountCell(eventArgs)" onbeforerowdeleteevent="setDefaultValue(eventArgs,'delete')" autosaveenabled="false" theme="{$nitobigridthemes}"> <ntb:columns> <ntb:textcolumn classname="{\$rh}" width="170" label="Account" xdatafld="accounts_cell" sortenabled="false"> <ntb:listboxeditor gethandler="simbizlookup.php?action=getaccountlistgrid" displayfields="accounts_name" valuefield="accounts_id" ></ntb:listboxeditor> </ntb:textcolumn> <ntb:textcolumn classname="{\$rh}" width="170" label="B.Partner" xdatafld="bpartner_cell" sortenabled="false" editable="{$editBPartner}"> <ntb:listboxeditor gethandler="simbizlookup.php?action=searchbpartnergrid" displayfields="bpartner_name" valuefield="bpartner_id" ></ntb:listboxeditor> </ntb:textcolumn> <ntb:textcolumn classname="{\$rh}" label="Cheque No." width="60" xdatafld="document_no2" sortenabled="false"></ntb:textcolumn> <ntb:textcolumn classname="{\$rh}" label="Doc No." width="60" xdatafld="document_no" sortenabled="false" editable="true"></ntb:textcolumn> <ntb:textcolumn classname="{\$rh}" label="Memo" width="125" xdatafld="linedesc" sortenabled="false"><ntb:textareaeditor></ntb:textareaeditor></ntb:textcolumn> <ntb:numbercolumn classname="{\$rh}" label="Debit({$defcurrencycode})" oncellvalidateevent="updateCurrentRow(eventArgs)" mask="#0.00" width="70" xdatafld="amt_debit" sortenabled="false"></ntb:numbercolumn> <ntb:numbercolumn classname="{\$rh}" label="Credit({$defcurrencycode})" oncellvalidateevent="updateCurrentRow(eventArgs)" mask="#0.00" width="70" xdatafld="amt_credit" sortenabled="false"></ntb:numbercolumn> <ntb:textcolumn classname="{\$rh}" width="50" label="Branch" xdatafld="organization_cell" sortenabled="false" initial="{$defaultorganization_id}"> <ntb:listboxeditor gethandler="simbizlookup.php?action=getbranchlistgrid" displayfields="organization_code" valuefield="organization_id" ></ntb:listboxeditor> </ntb:textcolumn> <ntb:textcolumn classname="{\$rh}" visible="false" width="40" label="{$track1_name}" xdatafld="track1_cell" sortenabled="false"> <ntb:listboxeditor gethandler="simbizlookup.php?action=gettracklist1grid" displayfields="track_name" valuefield="track_id" ></ntb:listboxeditor> </ntb:textcolumn> <ntb:textcolumn classname="{\$rh}" visible="false" width="40" label="{$track2_name}" xdatafld="track2_cell" sortenabled="false"> <ntb:listboxeditor gethandler="simbizlookup.php?action=gettracklist2grid" displayfields="track_name" valuefield="track_id" ></ntb:listboxeditor> </ntb:textcolumn> <ntb:textcolumn classname="{\$rh}" visible="false" width="40" label="{$track3_name}" xdatafld="track3_cell" sortenabled="false"> <ntb:listboxeditor gethandler="simbizlookup.php?action=gettracklist3grid" displayfields="track_name" valuefield="track_id" ></ntb:listboxeditor> </ntb:textcolumn> EOF; echo <<<EOF <ntb:textcolumn label="" xdatafld="imgdel" width="25" sortenabled="false" classname="{\$rh}" oncellclickevent="javascript:onclickdeletebutton()" align="right" onkeypressevent=javascrpt:shotcutdeleteline(eventArgs)> <ntb:imageeditor imageurl="images/del.gif"></ntb:imageeditor> </ntb:textcolumn> <ntb:textcolumn label="" xdatafld="imgadd" width="25" sortenabled="false" classname="{\$rh}" oncellclickevent="javascript:onclickaddbutton()" align="center" onkeypressevent=javascrpt:shotcutinsertline(eventArgs)> <ntb:imageeditor imageurl="{$url_addline_img}" ></ntb:imageeditor> </ntb:textcolumn> <ntb:numbercolumn visible="false" label="" width="0" xdatafld="trans_id" mask="###0" sortenabled="false"></ntb:numbercolumn> <ntb:numbercolumn visible="false" label="" width="0" xdatafld="row_typeline" mask="###0" sortenabled="false"></ntb:numbercolumn> <ntb:numbercolumn visible="false" label="" width="0" xdatafld="reference_id" mask="###0" sortenabled="false"></ntb:numbercolumn> <ntb:numbercolumn visible="false" label="" width="0" xdatafld="temp_parent_id" mask="###0" sortenabled="false"></ntb:numbercolumn> <ntb:numbercolumn visible="false" label="" width="0" xdatafld="total_tax" sortenabled="false" initial="0.00"></ntb:numbercolumn> <ntb:numbercolumn visible="false" label="" width="0" xdatafld="seqno" sortenabled="false" mask="###0"></ntb:numbercolumn> <ntb:textcolumn visible="false" classname="{\$rh}" width="0" label="" xdatafld="tax_cell" sortenabled="false" editable="{$editTax}"> <ntb:lookupeditor delay="1000" gethandler="simbizlookup.php?action=gettaxlistgrid" displayfields="tax_name" valuefield="tax_id"></ntb:lookupeditor> </ntb:textcolumn> </ntb:columns> </ntb:grid> </td></tr> <tr><td align="left"> <input id='afterconfirm' value='0' type='hidden'> <div id="msgbox" class="blockContent"></div> <div id="statusDiv"></div> </td></tr></table></div> EOF; }