Skip to content

Frozen column issue during data rendering #80

@smrutiranjanbehera

Description

@smrutiranjanbehera

Hi JLynch,
I have an issue in freeze column during vertical and horizontal scroll.
If I do freeze in any number of column and keep horizontal scroll at the right end of the the page and move the vertical scroll bat then data are not visible in freeze columns. Please refer the screen shot and attached code for more reference.

Please give the solution for this issue as it is breaking my flow.

slick grid freexissue
slick grid freexissue_1
slick grid freexissue_2

Html code

<script src="js/jquery-1.8.3.min.js" type="text/javascript" ></script> <script src="js/jquery-ui-1.9.2.custom.min.js" type="text/javascript"/> <script type="text/javascript" src="js/jquery.event.drag-2.2.js" ></script> <script type="text/javascript" src="slickgrid/jquery.mousewheel.js"></script> <script type="text/javascript" src="slickgrid/slick.core.js"></script> <script type="text/javascript" src="slickgrid/plugins/slick.checkboxselectcolumn.js"></script> <script type="text/javascript" src="slickgrid/plugins/slick.cellrangedecorator.js"></script> <script type="text/javascript" src="slickgrid/plugins/slick.cellrangeselector.js"></script> <script type="text/javascript" src="slickgrid/plugins/slick.cellcopymanager.js"></script> <script type="text/javascript" src="slickgrid/plugins/slick.cellselectionmodel.js"></script> <script type="text/javascript" src="slickgrid/plugins/slick.rowselectionmodel.js"></script> <script type="text/javascript" src="slickgrid/slick.editors.js"></script> <script type="text/javascript" src="slickgrid/slick.formatters.js"></script> <script type="text/javascript" src="slickgrid/slick.grid.js"></script> <script type="text/javascript" src="slickgrid/slick.dataview.js"></script> <script type="text/javascript" src="slickgrid/controls/slick.pager.js"></script> <script type="text/javascript" src="slickgrid/controls/slick.columnpicker.js"></script> <style type="text/css"> #grid_search_container { width:695px; background: #ccc; } </style>
<script type="text/javascript"> $(".ui-dialog-titlebar").hide(); var dataView; var grid; var data = []; var isFieldEdited = false; function checkEmpty(fieldValue){if(fieldValue == null || $.trim(fieldValue) +"" == ""){return true;}return false;} $(".textbox").keydown(function(e){if (e.keyCode === 8 && $(this).is('[readonly]')){return false;};}); $(document).ready(function(){$("#content_div").width($(".sidebartable").width() - 20);$("#displaygrid").width($("#content_div").width());}); function requiredFieldValidator(value) {if (value == null || value == undefined || !value.length) {return {valid: false, msg: "This is a required field"};} else {return {valid: true, msg: null};}}

/* ************************************ /
/
Slick Grid Implementation started /
/
************************************ */
var dataColumnMap = '[{"sortProperty":"false","allowFieldType":"ForceNumericWithHyphen","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":1,"columnId":"tpnb","wrapperMethod":"tpnbTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"TPNB","beanProperty":"tpnb","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"ForceNumericOnly","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":3,"columnId":"ean","wrapperMethod":"eanTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"EAN","beanProperty":"ean","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"ForceNumericWithHyphen","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":2,"columnId":"tpnd","wrapperMethod":"tpndTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"TPND","beanProperty":"tpnd","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"ForceNumericOnly","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"outerCaseCode","wrapperMethod":"outerCaseCodeTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Outer Case Code","beanProperty":"outerCaseCode","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textarea","width":"100","favoriteOrder":4,"columnId":"description","wrapperMethod":"descriptionTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"Description","beanProperty":"description","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"400","favoriteOrder":5,"columnId":"promOfferMech","wrapperMethod":"promOfferMech","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"Promotion Offer Mechanic","beanProperty":"promotionOfferMechanic","selectListJSONOBJ":"promofferMechJSONList","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"","width":"100","favoriteOrder":0,"columnId":"offerType","wrapperMethod":"","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Offer Type","beanProperty":"offerType","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"","width":"100","favoriteOrder":0,"columnId":"templateId","wrapperMethod":"","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Template Id","beanProperty":"templateId","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textarea","width":"400","favoriteOrder":0,"columnId":"promOffDesc","wrapperMethod":"promOffDescTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Promotion Offer Description (POS Label in store)","beanProperty":"promotionOfferDescription","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"estbSelSupp","wrapperMethod":"estbSelSuppTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Established Selling Price (per Kg/each) Supplier","beanProperty":"establishedSellingPriceSupplier","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"promSelPrice","wrapperMethod":"promSelPriceTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Promotion Selling Price (At 100% Redemption)","beanProperty":"promotionSellingPrice","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"howManyItems","wrapperMethod":"howManyItemsTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"How Many Items (Buy List)","beanProperty":"howManyItems","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"forHowMuch","wrapperMethod":"forHowMuchTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"For How Much","beanProperty":"forHowMuch","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"200","favoriteOrder":6,"columnId":"zoneOrFormatName","wrapperMethod":"zoneOrFormateName","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"Zone/Format Name","beanProperty":"zoneOrFormatName","selectListJSONOBJ":"ZoneOrFormatNameJSONList","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"","width":"100","favoriteOrder":0,"columnId":"zoneNumbers","wrapperMethod":"","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Zone Numbers","beanProperty":"zoneNumbers","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"caseSize","wrapperMethod":"caseSizeTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Case Size","beanProperty":"caseSize","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"100","favoriteOrder":0,"columnId":"fundingMethod","wrapperMethod":"fundingMethods","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Funding Method","beanProperty":"fundingMethod","selectListJSONOBJ":"fundingMethodsJSONList","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"ForceNumericOnly","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":8,"columnId":"suppNumber","wrapperMethod":"suppNumberTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"Supplier Number","beanProperty":"suppNumber","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":9,"columnId":"suppName","wrapperMethod":"suppNameTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"Supplier Name","beanProperty":"suppName","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"suppEmailId","wrapperMethod":"suppEmailIdTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Supplier Email id","beanProperty":"suppEmailId","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"suppFunding","wrapperMethod":"suppFundingTextbox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Supplier Funding %","beanProperty":"suppFunding","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"basicCost","wrapperMethod":"basicCostTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Basic Cost Per Case (Inclusive of Duty for BWS)","beanProperty":"basicCost","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"promCost","wrapperMethod":"promCostTextbox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Prom Cost Per Case","beanProperty":"promCost","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"datePicker","width":"100","favoriteOrder":0,"columnId":"costStartDate","wrapperMethod":"costStartDateTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Cost Start Date","beanProperty":"costStartDateStr","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"datePicker","width":"100","favoriteOrder":0,"columnId":"costEndDate","wrapperMethod":"costEndDateTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Cost End Date","beanProperty":"costEndDateStr","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"offInvoice","wrapperMethod":"offInvoiceTextbox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Off Invoice","beanProperty":"offInvoice","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"goodsOff","wrapperMethod":"goodsOffInvoiceTextbox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Goods in Depot Retro / Off Invoice Per Case","beanProperty":"goodsInDepotRetroOrOffInvoicePerCase","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"priceOrFlashMark","wrapperMethod":"priceOrFlashMarkTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Price/Flash Mark","beanProperty":"priceOrFlashMark","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textarea","width":"400","favoriteOrder":0,"columnId":"supplierComments","wrapperMethod":"supplierCommentsTextBox","mediaType":"pdf excel html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Supplier Comments (Optional)","beanProperty":"supplierComments","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"offerId","wrapperMethod":"offerIdTextBox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"OfferId","beanProperty":"offerId","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textarea","width":"100","favoriteOrder":0,"columnId":"nbsDescription","wrapperMethod":"nbsDescriptionTextBox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"NBS Description","beanProperty":"nbsDescription","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"","width":"100","favoriteOrder":0,"columnId":"discountPercent","wrapperMethod":"","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Discount %","beanProperty":"discountPercent","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"200","favoriteOrder":0,"columnId":"caseSizeNBSDump","wrapperMethod":"caseSizeNBSDumpTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Case Size NBSDump","beanProperty":"caseSizeNBSDump","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"200","favoriteOrder":0,"columnId":"basicCostNBSDump","wrapperMethod":"basicCostNBSDumpTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Basic Cost NBSDump","beanProperty":"basicCostNBSDump","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"eposRetro","wrapperMethod":"eposRetroTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"EPOSRetro","beanProperty":"eposRetro","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"200","favoriteOrder":0,"columnId":"netPromotionalCost","wrapperMethod":"netPromotionalCostTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Net Promotional Cost","beanProperty":"netPromotionalCost","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"datePicker","width":"400","favoriteOrder":0,"columnId":"supplierSubmittedPromotion","wrapperMethod":"supplierSubmittedPromotionTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Supplier Submitted Promotion","beanProperty":"supplierSubmittedPromotionStr","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"ForceNumericOnly","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":11,"columnId":"groupId","wrapperMethod":"groupIdTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"GroupId","beanProperty":"groupId","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"400","favoriteOrder":0,"columnId":"promotionApprovalRequired","wrapperMethod":"promotionApprovalRequiredSelectList","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Promotion Approval Required","beanProperty":"promotionApprovalRequired","selectListJSONOBJ":"S_Y_N_SELECT_JSONOBJ","defaultColumn":false,"linkAction":"","defaultValue":"YES"},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"percentageRedemptionOfDeal","wrapperMethod":"percentageRedemptionOfDealTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Percentage Redemption Of Deal","beanProperty":"percentageRedemptionOfDeal","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"promoCalcRetail","wrapperMethod":"promoCalcRetail","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Promo Calc Retail","beanProperty":"promoCalcRetail","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"amount","wrapperMethod":"amountTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Amount","beanProperty":"amount","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"tillSalesTriggerOrEPOS","wrapperMethod":"tillSalesTriggerOrEPOSTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Till Sales Trigger Or EPOS","beanProperty":"tillSalesTriggerOrEPOS","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"promotionNetCostPerCase","wrapperMethod":"promotionNetCostPerCaseTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Promotion Net Cost Per Case","beanProperty":"promotionNetCostPerCase","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"standardMargin","wrapperMethod":"standardMargin","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Standard Margin","beanProperty":"standardMargin","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"100","favoriteOrder":0,"columnId":"promotionMargin","wrapperMethod":"promotionMargin","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Promotion Margin","beanProperty":"promotionMargin","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"100","favoriteOrder":0,"columnId":"featureSpace","wrapperMethod":"featureSpaceTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Feature Space","beanProperty":"featureSpace","selectListJSONOBJ":"Y_N_SELECT_JSONOBJ","defaultColumn":false,"linkAction":"","defaultValue":"NO"},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"400","favoriteOrder":0,"columnId":"featureSpaceOrPOSFee","wrapperMethod":"featureSpaceOrPOSFeeTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Feature Space Or POS Fee","beanProperty":"featureSpaceOrPOSFee","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textarea","width":"100","favoriteOrder":0,"columnId":"buyerComments","wrapperMethod":"buyerCommentsTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Buyer Comments","beanProperty":"buyerComments","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textarea","width":"100","favoriteOrder":0,"columnId":"adminComments","wrapperMethod":"adminCommentsTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Admin Comments","beanProperty":"adminComments","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"100","favoriteOrder":0,"columnId":"posRequired","wrapperMethod":"posRequiredSelectList","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"POS Required","beanProperty":"posRequired","selectListJSONOBJ":"S_Y_N_SELECT_JSONOBJ","defaultColumn":false,"linkAction":"","defaultValue":"YES"},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textarea","width":"100","favoriteOrder":0,"columnId":"posDescription","wrapperMethod":"posDescriptionTextbox","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"POS Description","beanProperty":"posDescription","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"100","favoriteOrder":7,"columnId":"queryToBuyer","wrapperMethod":"queryToBuyerSelectList","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"Query Buyer","beanProperty":"queryToBuyer","selectListJSONOBJ":"Y_N_SELECT_JSONOBJ","defaultColumn":false,"linkAction":"","defaultValue":"NO"},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"100","favoriteOrder":0,"columnId":"amend","wrapperMethod":"amend","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Amend","beanProperty":"amend","selectListJSONOBJ":"S_Y_N_D_SELECT_JSONOBJ","defaultColumn":false,"linkAction":"","defaultValue":"NO"},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"200","favoriteOrder":10,"columnId":"buyerSignOffToLoad","wrapperMethod":"buyerSignOffToLoadSelectList","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":true,"columnName":"Buyer Sign Off To Load","beanProperty":"buyerSignOffToLoad","selectListJSONOBJ":"S_Y_N_SELECT_JSONOBJ","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"checkbox","width":"200","favoriteOrder":0,"columnId":"checkboxsave","wrapperMethod":"checkboxsave","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Check To Save/Submit","beanProperty":"checkboxsave","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":"NO"},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"textbox","width":"200","favoriteOrder":0,"columnId":"eposFundingPerUnitCost","wrapperMethod":"","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Epos Funding Per Unit Cost","beanProperty":"eposFundingPerUnitCost","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"selectList","width":"100","favoriteOrder":0,"columnId":"ranging","wrapperMethod":"ranging","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Ranging","beanProperty":"ranging","selectListJSONOBJ":"rangingJSONList","defaultColumn":false,"linkAction":"","defaultValue":""},{"sortProperty":"false","allowFieldType":"","rowClass":"text","fieldType":"label","width":"100","favoriteOrder":0,"columnId":"isBuyerSubmitted","wrapperMethod":"","mediaType":"html","linkColumn":false,"dataType":"text","isGroupField":null,"headerClass":"text","isFavorite":false,"columnName":"Submitted","beanProperty":"isBuyerSubmittedStr","selectListJSONOBJ":"","defaultColumn":false,"linkAction":"","defaultValue":""}] ';
var columns = [];
var columnFilters = {};
var searchString ='';
var favColMap = '';
var newRowCounter = -1;
var columnMap = JSON.parse(dataColumnMap);
if(columnMap != '' && columnMap != 'null'){counter =0;$.each(columnMap, function(i, item) {colwidth = $.trim(item["width"]);if($.trim(colwidth) == ''){colwidth = 100;}
columns.push({id: item["beanProperty"],name: item["columnName"],field: item["beanProperty"],width: parseInt(colwidth),maxWidth: 250,minWidth: 70,headerCssClass: item["headerClass"] + "header",resizable: true,toolTip: item["columnName"],editor: getEditor(item["fieldType"]),allowFieldType: item["allowFieldType"],extracolData: item});
});
}
var options = {editable: true,enableAddRow: false,showHeaderRow: false,enableCellNavigation: true,asyncEditorLoading: false,autoEdit: true,headerRowHeight: 30,explicitInitialization: false,enableColumnReorder: false,forceFitColumns: false,topPanelHeight: 25};
var blankItem;
var count=0;
$(function () {
var buyerReviewDetailsJSON_d ='[{"weekNo":null,"tillSalesTriggerOrEPOS":"123","supplierSubmittedPromotionStr":"23 Jul 2014","percentageRedemptionOfDeal":0,"offInvoice":0,"supplierSubmittedPromotion":null,"amount":312312,"suppName":"Niranjan","fundingMethod":"EPOS","wrongCostStartDate":true,"description":"testing","promotionSellingPrice":12,"wrongPromotionStartDate":false,"buyerSubmittedTimeStr":null,"howManyItems":"12","suppFunding":0,"offerId":null,"promotionApprovalRequired":"YES","suppEmailId":"niranjan@email.com","standardMargin":null,"eposRetro":123,"isBuyerSubmitted":true,"costEndDateStr":"12 Dec 2014","establishedSellingPriceExVat":10,"caseSizeNBSDump":null,"promotionNetCostPerCase":"123","disableAllColumns":true,"adminComments":null,"wrongPromotionEndDate":false,"ean":"4444","subCategoryId":11,"promotionOfferMechanic":"Quantity for a Price","promotionEndDate":"2014-08-01 00:00:00.0","isBuyerSubmittedStr":"Y","suppNumber":"23421","amendActionPerformed":3,"goodsInDepotRetroOrOffInvoicePerCase":0,"wrongCostEndDate":true,"nbsDescription":"N4 KIWI CUVEE OR CAPE PEAK 75cl 2 FOR £8","colorCode":"DUPLICATE_ROW","basicCost":12,"periodNo":1,"dataSummaryId":null,"promotionEndDateStr":null,"featureSpaceOrPOSFee":12,"promCost":0,"refId":0,"eposFundingPerUnitCost":20,"promotionStartDateStr":null,"teamId":null,"promoCalcRetailExVat":10,"posRequired":"YES","id":16,"queryToBuyer":"NO","ranging":null,"parentAmendType":null,"zoneNumbers":"5,6,7,9","promoCalcRetail":12,"promotionMargin":2.025,"isAmended":null,"featureSpace":"NO","promotionOfferDescription":"testing","forHowMuch":"12","superParentId":1,"zoneOrFormatName":"National","buyerComments":null,"posDescription":null,"priceOrFlashMark":"Price","costStartDateStr":"12 Dec 2014","tpnb":"044444440","buyerSignOffToLoad":"YES","buyerId":127,"isBuyerAdminSubmitted":true,"tpnd":"555555555","checkboxsave":null,"templateId":"A0000041","groupId":12,"offerType":"Threshold","netPromotionalCost":-123,"supplierComments":"testing","basicCostNBSDump":null,"caseSize":12,"establishedSellingPriceSupplier":12,"costStartDate":null,"costEndDate":null,"promotionStartDate":"2014-07-09 00:00:00.0","discountPercent":0,"amend":null,"outerCaseCode":"25458545845854"},{"weekNo":null,"tillSalesTriggerOrEPOS":"3123","supplierSubmittedPromotionStr":"09 Jul 2014","percentageRedemptionOfDeal":0,"offInvoice":1,"supplierSubmittedPromotion":null,"amount":33123,"suppName":"Niranjan","fundingMethod":"Off Invoice","wrongCostStartDate":false,"description":"testing","promotionSellingPrice":12,"wrongPromotionStartDate":true,"buyerSubmittedTimeStr":null,"howManyItems":"12","suppFunding":0,"offerId":null,"promotionApprovalRequired":"YES","suppEmailId":"niranjan@email.com","standardMargin":null,"eposRetro":123,"isBuyerSubmitted":true,"costEndDateStr":"13 Dec 2014","establishedSellingPriceExVat":10,"caseSizeNBSDump":null,"promotionNetCostPerCase":"1231","disableAllColumns":true,"adminComments":null,"wrongPromotionEndDate":false,"ean":"4444","subCategoryId":11,"promotionOfferMechanic":"BOGOF Cheapest Free","promotionEndDate":"2014-08-01 00:00:00.0","isBuyerSubmittedStr":"Y","suppNumber":"23421","amendActionPerformed":0,"goodsInDepotRetroOrOffInvoicePerCase":0,"wrongCostEndDate":true,"nbsDescription":"N4 Lambrini Bianco 75Cl 2 FOR £3","colorCode":null,"basicCost":12,"periodNo":1,"dataSummaryId":null,"promotionEndDateStr":null,"featureSpaceOrPOSFee":12,"promCost":0,"refId":0,"eposFundingPerUnitCost":0,"promotionStartDateStr":null,"teamId":null,"promoCalcRetailExVat":10,"posRequired":"YES","id":2,"queryToBuyer":"NO","ranging":"Nationally Ranged ","parentAmendType":null,"zoneNumbers":"9,15","promoCalcRetail":12,"promotionMargin":2.025,"isAmended":0,"featureSpace":"NO","promotionOfferDescription":"testing","forHowMuch":"12","superParentId":null,"zoneOrFormatName":"Scottish Superstore, Extra and Metro, Express","buyerComments":null,"posDescription":null,"priceOrFlashMark":"Price","costStartDateStr":"13 Dec 2014","tpnb":"044444445","buyerSignOffToLoad":"YES","buyerId":127,"isBuyerAdminSubmitted":true,"tpnd":"555555556","checkboxsave":null,"templateId":"A0000329","groupId":12,"offerType":"Multibuy","netPromotionalCost":-123,"supplierComments":"testing","basicCostNBSDump":null,"caseSize":12,"establishedSellingPriceSupplier":12,"costStartDate":null,"costEndDate":null,"promotionStartDate":"2014-07-09 00:00:00.0","discountPercent":12,"amend":null,"outerCaseCode":"25458545845854"},{"weekNo":null,"tillSalesTriggerOrEPOS":"3123","supplierSubmittedPromotionStr":"09 Jul 2014","percentageRedemptionOfDeal":0,"offInvoice":1,"supplierSubmittedPromotion":null,"amount":33123,"suppName":"Niranjan","fundingMethod":"Off Invoice","wrongCostStartDate":true,"description":"testing","promotionSellingPrice":12,"wrongPromotionStartDate":false,"buyerSubmittedTimeStr":null,"howManyItems":"12","suppFunding":0,"offerId":null,"promotionApprovalRequired":"YES","suppEmailId":"niranjan@email.com","standardMargin":null,"eposRetro":123,"isBuyerSubmitted":true,"costEndDateStr":"13 Dec 2014","establishedSellingPriceExVat":10,"caseSizeNBSDump":null,"promotionNetCostPerCase":"1231","disableAllColumns":true,"adminComments":null,"wrongPromotionEndDate":false,"ean":"4444","subCategoryId":11,"promotionOfferMechanic":"BOGOF Cheapest Free","promotionEndDate":"2014-08-01 00:00:00.0","isBuyerSubmittedStr":"Y","suppNumber":"23421","amendActionPerformed":3,"goodsInDepotRetroOrOffInvoicePerCase":0,"wrongCostEndDate":true,"nbsDescription":"N4 Lambrini Bianco 75Cl 2 FOR £3","colorCode":"DUPLICATE_ROW","basicCost":12,"periodNo":1,"dataSummaryId":null,"promotionEndDateStr":null,"featureSpaceOrPOSFee":12,"promCost":0,"refId":0,"eposFundingPerUnitCost":0,"promotionStartDateStr":null,"teamId":null,"promoCalcRetailExVat":10,"posRequired":"YES","id":17,"queryToBuyer":"NO","ranging":null,"parentAmendType":null,"zoneNumbers":"9,15","promoCalcRetail":12,"promotionMargin":2.025,"isAmended":null,"featureSpace":"NO","promotionOfferDescription":"testing","forHowMuch":"12","superParentId":2,"zoneOrFormatName":"Scottish Superstore, Extra and Metro, Express","buyerComments":null,"posDescription":null,"priceOrFlashMark":"Price","costStartDateStr":"13 Dec 2014","tpnb":"044444445","buyerSignOffToLoad":"YES","buyerId":127,"isBuyerAdminSubmitted":true,"tpnd":"555555556","checkboxsave":null,"templateId":"A0000329","groupId":12,"offerType":"Multibuy","netPromotionalCost":-123,"supplierComments":"testing","basicCostNBSDump":null,"caseSize":12,"establishedSellingPriceSupplier":12,"costStartDate":null,"costEndDate":null,"promotionStartDate":"2014-07-09 00:00:00.0","discountPercent":0,"amend":null,"outerCaseCode":"25458545845854"}]' ;

var buyerReviewDetailsJSON = JSON.parse(buyerReviewDetailsJSON_d);
$.each(buyerReviewDetailsJSON, function(j, beanitem) {var d = (data[j] = {});if(count == 0){blankItem ={};}$.each(columnMap, function(k, item) {colId = item["beanProperty"];beanValue = beanitem[colId];if(beanValue == null || $.trim(beanValue) == ''){beanValue = item["defaultValue"];}d[colId] = beanValue;if(count= 0){blankItem[colId] = "";}});d["colorCode"] = beanitem["colorCode"];d["refId"] = beanitem["refId"];d["id"] = beanitem["id"];d["disableAllColumns"] = beanitem["disableAllColumns"];d["buyerId"] = beanitem["buyerId"];d["subCategoryId"] = beanitem["subCategoryId"];d["buyerSubmittedTimeStr"] = beanitem["buyerSubmittedTimeStr"];d["isBuyerAdminSubmitted"] = beanitem["isBuyerAdminSubmitted"];d["promotionStartDate"] = beanitem["promotionStartDate"];d["promotionEndDate"] = beanitem["promotionEndDate"];if(count==0){blankItem["colorCode"] = "BLANK_ROW";blankItem["refId"] = "";blankItem["id"] = "0"; blankItem["disableAllColumns"] = "false";count++;}});
dataView = new Slick.Data.DataView({ inlineFilters: true });
grid = new Slick.Grid("#myGrid", dataView, columns, options);
var pager = new Slick.Controls.Pager(dataView, grid, $("#pager"));
dataView.setPagingOptions({pageSize: data.length, pageSetting: false});
dataView.getItemMetadata = function (row)
{return {"cssClasses": (dataView.getItem(row).colorCode == 'null'? '' : dataView.getItem(row).colorCode)}}
grid.setSelectionModel(new Slick.RowSelectionModel()); // wire up model events to drive the grid
dataView.onRowCountChanged.subscribe(function (e, args) {grid.updateRowCount();grid.render();});
dataView.onRowsChanged.subscribe(function (e, args) {grid.invalidateRows(args.rows);grid.render();});
grid.onAddNewRow.subscribe(function (e, args) {data.push(args.item);grid.invalidateRows([data.length]);grid.updateRowCount();grid.render();});
/* Onchange any value check save check box.*/
grid.onCellChange.subscribe(function(e,args){if(columns[args.cell].field != 'checkboxsave'){isFieldEdited = true;args.item["checkboxsave"] = "YES"; currentRow=0; if(dataView.getPagingInfo().pageNum > 0){currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());}else{currentRow = grid.getSelectedRows();}grid.updateRow(currentRow);grid.render();dataView.refresh();}});
function updateFilter() {dataView.setFilterArgs({searchString: searchString});dataView.refresh();}
$(grid.getHeaderRow()).delegate(":input", "change keyup", function (e) {var columnId = $(this).data("columnId");if (columnId != null) {columnFilters[columnId] = $.trim($(this).val());dataView.refresh();}});
grid.onHeaderRowCellRendered.subscribe(function(e, args) {$(args.node).empty();$("").data("columnId", args.column.id).val(columnFilters[args.column.id]).appendTo(args.node);});
grid.init();dataView.beginUpdate();dataView.setItems(data);dataView.setFilterArgs({searchString: searchString});
dataView.endUpdate();$("#gridContainer").resizable();$( '#setFrozenColumn' ).click(function() {if(grid.getOptions().frozenColumn == -1){grid.setOptions({ 'frozenColumn': 1 });}else{grid.setOptions({ 'frozenColumn': parseInt(-1)});}grid.render();
dataView.refresh();});});

function getEditor(fieldType)
{
if(fieldType == 'selectList')
{
return SelectOptions;
}
else if(fieldType == 'textarea')
{
return LongTextEditor;
}
else if(fieldType == 'datePicker')
{
return DateEditor;
}
else if(fieldType == 'checkbox')
{
return CheckboxEditor;
}
else if(fieldType == 'textbox')
{
return TextboxEditor;
}
}

function DateEditor(args) {
var $input;
var defaultValue;
var scope = this;
var calendarOpen = false;

this.init = function () {
    $input = $("<INPUT type=text class='textbox' readonly='true' />");
    $input.appendTo(args.container);
    //$input.focus().select();
    if(args.item["isBuyerSubmittedStr"] == 'N' && ((args.item["disableAllColumns"] + "") != 'true' || args.column.field == 'supplierSubmittedPromotionStr'))
    {
        $input.datepicker({
            showOn: "both",
            buttonImageOnly: true,
            buttonImage: "../images/calendar.gif",
            dateFormat: 'dd M yy',
            beforeShow: function () {
              calendarOpen = true
            },
            onClose: function () {
              calendarOpen = false;
              //$input.select();
            }
        });
    }
    $input.bind("change paste", this.refreshdata);
};

this.destroy = function () {
    $.datepicker.dpDiv.stop(true, true);
    $input.datepicker("hide");
    $input.datepicker("destroy");
    $input.remove();
};

this.show = function () {
  if (calendarOpen) {
    $.datepicker.dpDiv.stop(true, true).show();
  }
};

this.hide = function () {
  if (calendarOpen) {
    $.datepicker.dpDiv.stop(true, true).hide();
  }
};

this.position = function (position) {
  if (!calendarOpen) {
    return;
  }
  $.datepicker.dpDiv
      .css("top", position.top + 30)
      .css("left", position.left);
};

this.focus = function () {
  $input.focus();
};

this.refreshdata = function(){
    value = $input.val();
    fieldName = args.column.field;
    args.item[fieldName] = value;
    args.item["checkboxsave"] = "YES";

// grid.updateRow(grid.getSelectedRows());
// grid.render();
// dataView.refresh();
};

this.loadValue = function (item) {
  defaultValue = item[args.column.field];
  $input.val(defaultValue);
  $input[0].defaultValue = defaultValue;
  if((args.item["disableAllColumns"] + "") == 'true')
    {
        $input.prop("readonly", true);
        $input.datepicker("option", "disabled", true);
    }
  $input.select();
};

this.serializeValue = function () {
  return $input.val();
};

this.applyValue = function (item, state) {
  item[args.column.field] = state;
};

this.isValueChanged = function () {
  return (!($input.val() == "" && defaultValue == null)) && ($input.val() != defaultValue);
};

this.validate = function () {
  return {
    valid: true,
    msg: null
  };
};

this.init();

}

function LongTextEditor(args) {
var $input, $wrapper;
var defaultValue;
var scope = this;

this.init = function () {
  var $container = $("body");

  $wrapper = $("<DIV style='z-index:10000;position:absolute;background:white;padding:5px;border:3px solid gray; -moz-border-radius:10px; border-radius:10px;'/>")
      .appendTo($container);

  $input = $("<TEXTAREA hidefocus rows=5 style='backround:white;width:250px;height:80px;border:0;outline:0'>")
      .appendTo($wrapper);

  $("<DIV style='text-align:right'><BUTTON>Add</BUTTON><BUTTON>Close</BUTTON></DIV>")
      .appendTo($wrapper);

  $wrapper.find("button:first").bind("click", this.save);
  $wrapper.find("button:last").bind("click", this.cancel);
  $input.bind("keydown", this.handleKeyDown);

  scope.position(args.position);
  if(args.item["isBuyerSubmittedStr"] == 'Y' || 'nbsDescription' == args.column.field)
    {
        $input.prop("readonly", true);
        $wrapper.find("button").hide();
    }
  $input.focus().select();
  $input.bind("change paste", this.refreshdata);
};

this.handleKeyDown = function (e) {
  if (e.which == $.ui.keyCode.ENTER && e.ctrlKey) {
    scope.save();
  } else if (e.which == $.ui.keyCode.ESCAPE) {
    e.preventDefault();
    scope.cancel();
  } else if (e.which == $.ui.keyCode.TAB && e.shiftKey) {
    e.preventDefault(); 
    args.grid.navigatePrev();
  } else if (e.which == $.ui.keyCode.TAB) {
    e.preventDefault();
    args.grid.navigateNext();
  }
};

this.save = function () {
    $input.focus().select();
  args.commitChanges();
};

this.cancel = function () {
  $input.val(defaultValue);
  args.cancelChanges();
};

this.hide = function () {
  $wrapper.hide();
};

this.show = function () {
  $wrapper.show();
};

this.position = function (position) {
  $wrapper
      .css("top", position.top - 5)
      .css("left", position.left - 5)
};

this.destroy = function () {
  $wrapper.remove();
};

this.focus = function () {
  $input.focus();
};

this.refreshdata = function(){
    value = $input.val();
    fieldName = args.column.field;
    args.item[fieldName] = value;
    args.item["checkboxsave"] = "YES";
    currentRow=0
    if(dataView.getPagingInfo().pageNum > 0)
    {
        currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());
    }
    else
    {
        currentRow = grid.getSelectedRows();
    }
    grid.updateRow(currentRow);
    grid.render();
    dataView.refresh();
};

this.loadValue = function (item) {
  $input.val(defaultValue = item[args.column.field]);
 
  if((args.item["disableAllColumns"] + "") == 'true')
    {
        if(!(args.column.field == 'adminComments' || args.column.field == 'buyerComments' || args.column.field == 'posDescription'))
        {
            $input.prop("readonly", true);
            $wrapper.find("button").hide();
        }
    }
  $input.select();
};

this.serializeValue = function () {
  return $input.val();
};

this.applyValue = function (item, state) {
  item[args.column.field] = state;
};

this.isValueChanged = function () {
  return (!($input.val() == "" && defaultValue == null)) && ($input.val() != defaultValue);
};

this.validate = function () {
  return {
    valid: true,
    msg: null
  };
};

this.init();

}

function TextboxEditor(args) {
var $input;
var defaultValue;
var scope = this;
var calendarOpen = false;

this.init = function () {
    $input = $("<INPUT type=text class='textbox' />");
    if(args.column.field == 'suppFunding')
    {
        if(args.item["issuppfundingactive"])
        {
            $input.prop("readonly", false);
        }
        else
        {
            $input.prop("readonly", true);
        }
    }
    else if(args.column.field == 'promCost')
    {
        if(args.item["ispromcostactive"])
        {
            $input.prop("readonly", false);
        }
        else
        {
            $input.prop("readonly", true);
        } 
    }
    else if(args.column.field == 'offInvoice')
    {
        if(args.item["isoffinvoiceactive"])
        {
            $input.prop("readonly", false);
        }
        else
        {
            $input.prop("readonly", true);
        } 
    }
    else if(args.column.field == 'goodsOff')
    {
        if(args.item["isgoodsactive"])
        {
            $input.prop("readonly", false);
        }
        else
        {
            $input.prop("readonly", true);
        } 
    }
    if('offerId' == args.column.field || 'nbsDescription' == args.column.field || 'caseSizeNBSDump' == args.column.field 
            || 'basicCostNBSDump' == args.column.field || 'netPromotionalCost' == args.column.field || 'standardMargin' == args.column.field 
            || 'promotionMargin' == args.column.field || 'zoneNumbers' == args.column.field || 
            args.column.field == 'offerType' || args.column.field == 'templateId' || args.column.field == 'discountPercent')
    {
        $input.prop("readonly", true);
    }
    if((args.item["disableAllColumns"] + "") == 'true')
    {
        if(!(args.column.field == 'eposRetro' || args.column.field =='groupId' || args.column.field == 'amount' || args.column.field == 'tillSalesTriggerOrEPOS' 
                || args.column.field == 'promotionNetCostPerCase'))
        {
            $input.prop("readonly", true);
        }
    }
    
    if(args.item["isBuyerSubmittedStr"] == 'Y')
    {
        $input.prop("readonly", true);
    }
    $input.appendTo(args.container);
    $input.bind("change paste", this.refreshdata);
};

this.destroy = function () {
  $input.remove();
};

this.focus = function () {
  $input.focus();
};

this.refreshdata = function(){
    value = $input.val();
    fieldName = args.column.field;
    args.item[fieldName] = value;
    args.item["checkboxsave"] = "YES";
    currentRow=0
    if(dataView.getPagingInfo().pageNum > 0)
    {
        currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());
    }
    else
    {
        currentRow = grid.getSelectedRows();
    }
    grid.updateRow(currentRow);
    grid.render();
    dataView.refresh();
};

this.loadValue = function (item) {
  defaultValue = item[args.column.field];
  $input.val(defaultValue);
  $input[0].defaultValue = defaultValue;
  $input.select();
};


this.serializeValue = function () {
    
    var calculatePercent = false;
    if(args.column.field == 'eposRetro')
    {
        var promCost = args.item["promCost"];
        var goodsOffVal = args.item["goodsInDepotRetroOrOffInvoicePerCase"];
        var eposRetroVal = args.item["eposRetro"];
        var netPromotionalCost = (promCost - goodsOffVal - eposRetroVal);
        args.item["netPromotionalCost"] = netPromotionalCost;
    }
    
  return $input.val();
};

this.applyValue = function (item, state) {
  item[args.column.field] = state;
};

this.isValueChanged = function () {
  return (!($input.val() == "" && defaultValue == null)) && ($input.val() != defaultValue);
};

this.validate = function () {
  return {
    valid: true,
    msg: null
  };
};

this.init();

}

function SelectOptions(args) {
var selectListOBJ = args.column.extracolData.selectListJSONOBJ;
var $select;
var defaultValue;
var scope = this;

this.init = function () {
    var selectData = "<SELECT>";
    parseList = '';
    selectData += ("<option value='YES'>YES</option>");
    
    
    selectData += "</SELECT>";
    $select = $(selectData);
    $select.appendTo(args.container);
    $select.focus();
    $select.bind("change", this.refreshdata);
};

this.destroy = function () {
    $select.remove();
};

this.focus = function () {
    $select.focus();
};

this.refreshdata = function(){
    value = $select.find("option:selected").val();
    fieldName = args.column.field;
    args.item[fieldName] = value;
    args.item["checkboxsave"] = "YES";
    
    if(args.column.field == 'promotionOfferMechanic')
    {
        args.item["offerType"] = $select.find("option:selected").data("offertype");
        args.item["templateId"] = $select.find("option:selected").data("templateid");
    }
    else if(args.column.field == 'zoneOrFormatName')
    {
        args.item["zoneNumbers"] = $select.find("option:selected").data("zonenumbers");
    }
    else if(args.column.field == 'fundingMethod')
    {
        issuppfundingactive = $select.find("option:selected").data("suppfundingactive");
        ispromcostactive = $select.find("option:selected").data("promcostactive");
        isoffinvoiceactive = $select.find("option:selected").data("offinvoiceactive");
        isgoodsactive = $select.find("option:selected").data("goodsactive");
        
        args.item["issuppfundingactive"] = issuppfundingactive;
        args.item["ispromcostactive"] = ispromcostactive;
        args.item["isoffinvoiceactive"] = isoffinvoiceactive;
        args.item["isgoodsactive"] = isgoodsactive;
    }

// grid.updateRow(grid.getSelectedRows());
// grid.render();
// dataView.refresh();
$select.select();

    /* Amendment and Duplicate creation functionality*/
    if(selectListOBJ == 'S_Y_N_D_SELECT_JSONOBJ')
    {
        if(args.item["id"] != '' && args.item["id"] > 0)
        {
            if(value == 'BLANK')
            {
                var _blankItem = {};
                $.extend(_blankItem, blankItem);
                
                _blankItem["disableAllColumns"] = 'false';
                _blankItem["suppFunding"] = 0;
                _blankItem["offInvoice"] = 0;
                _blankItem["promCost"]=0;
                _blankItem["refId"] = args.item["id"];
                _blankItem["amendaction"] = "BLANK";
                _blankItem["id"] = --newRowCounter;
                _blankItem["buyerId"] = args.item["buyerId"];
                _blankItem["subCategoryId"] = args.item["subCategoryId"];
                _blankItem["isBuyerAdminSubmitted"] = args.item["isBuyerAdminSubmitted"];
                _blankItem["supplierFormId"] = 0;
                _blankItem["isBuyerSubmittedStr"] = 'N';
                
                currentRow=0
                if(dataView.getPagingInfo().pageNum > 0)
                {
                    currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());
                }
                else
                {
                    currentRow = grid.getSelectedRows();
                }
                dataView.insertItem((parseInt(currentRow) + 1), _blankItem);
            }
            else if(value == 'DUPLICATE')
            {
                duplicateitem = {};
                $.extend(duplicateitem, args.item);
                
                duplicateitem["disableAllColumns"] = 'false';
                duplicateitem["id"] = --newRowCounter;
                duplicateitem["supplierFormId"] = 0;
                duplicateitem["refId"] = args.item["id"];
                duplicateitem["isBuyerAdminSubmitted"] = args.item["isBuyerAdminSubmitted"];
                duplicateitem["promotionStartDate"] = args.item["promotionStartDate"];
                duplicateitem["promotionEndDate"] = args.item["promotionEndDate"];
                duplicateitem["amendaction"] = "DUPLICATE";
                duplicateitem["colorCode"] = "DUPLICATE_ROW";
                duplicateitem["isBuyerSubmittedStr"] = 'N';
                duplicateitem["buyerSubmittedTimeStr"] = '';
                duplicateitem["buyerSignOffToLoad"] = '';
                duplicateitem["isAmended"] = '';
                
                if(args.item["isAmended"] != '' || parseInt(args.item["isAmended"]) != 1)
                {
                    args.item["colorCode"]  = "";
                    args.item["isAmended"] = "3";
                }
                currentRow=0
                if(dataView.getPagingInfo().pageNum > 0)
                {
                    currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());
                }
                else
                {
                    currentRow = grid.getSelectedRows();
                }
                dataView.insertItem((parseInt(currentRow) + 1), duplicateitem);
            }
            else if(value == 'YES')
            {
                ammenditem = {};
                $.extend(ammenditem, args.item);
                ammenditem["disableAllColumns"] = 'false';
                ammenditem["id"] = --newRowCounter;
                ammenditem["supplierFormId"] = 0;
                ammenditem["refId"] = args.item["id"];
                ammenditem["colorCode"] = "AMENDED_CHILD_ROW";
                ammenditem["amendaction"] = "YES";
                ammenditem["isBuyerSubmittedStr"] = 'N';
                ammenditem["buyerSubmittedTimeStr"] = '';
                ammenditem["buyerSignOffToLoad"] = '';
                ammenditem["isAmended"] = '';
                ammenditem["isBuyerAdminSubmitted"] = args.item["isBuyerAdminSubmitted"];
                args.item["colorCode"]  = "AMENDED_PARENT_ROW";
                args.item["isAmended"] = "1";
                ammenditem["promotionStartDate"] = args.item["promotionStartDate"];
                ammenditem["promotionEndDate"] = args.item["promotionEndDate"];
                
                currentRow=0
                if(dataView.getPagingInfo().pageNum > 0)
                {
                    currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());
                }
                else
                {
                    currentRow = grid.getSelectedRows();
                }
                dataView.getItem(currentRow).colorCode = 'AMENDED_PARENT_ROW';
                dataView.updateItem(args.item["id"], dataView.getItem(currentRow));
                $($('.grid-canvas').children()[currentRow]).addClass('AMENDED_PARENT_ROW');
                dataView.insertItem((parseInt(currentRow) + 1), ammenditem);
            }
            currentRow=0
            if(dataView.getPagingInfo().pageNum > 0)
            {
                currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());
            }
            else
            {
                currentRow = grid.getSelectedRows();
            }
            grid.updateRow(currentRow);
            grid.updateRow((parseInt(currentRow) + 1));
            grid.render();
            dataView.refresh();
        }
        else
        {
            alert("Cannot perform amend on this row before save");
        }
    }
    
};

this.loadValue = function (item) {
    defaultValue = item[args.column.field];
    if(args.column.field == 'amend')
    {
        if(args.item["buyerSignOffToLoad"] != 'NO')
        {
            //$select.prop('disabled', 'disabled');
            
            $select.find("option").prop('disabled', 'disabled');
            $select.find("option[value='BLANK']").prop('disabled', false);
            $select.find("option[value='DUPLICATE']").prop('disabled', false);
        }
        else
        {
            //$select.prop('disabled', false);
            
            $select.find("option").prop('disabled', false);;
        }
    }
    if((args.item["disableAllColumns"] + "") == 'true')
    {
        if(!(args.column.field == 'queryToBuyer' || args.column.field == 'promotionApprovalRequired'
                || args.column.field == 'posRequired' || args.column.field == 'buyerSignOffToLoad' || args.column.field == 'amend'))
        {
            //$select.prop('disabled', 'disabled');
            $select.find("option").prop('disabled', 'disabled');;
        }
    }
    if(args.item["isBuyerSubmittedStr"] == 'Y')
    {
        if(!(args.column.field == 'amend'))
        {
            //$select.prop('disabled', 'disabled');
            $select.find("option").prop('disabled', 'disabled');;
        }
    }   
    $select.val((defaultValue == item[args.column.field]) ? item[args.column.field] : $select.find("option:first").val());
    $select.focus();
    $select.select();
};

this.serializeValue = function () {
    // This value will be set in refresh call. 
    var selectedVal = '';
    fieldName = args.column.field;
    selectedVal = args.item[fieldName];
    if(selectedVal == '')
    {
        selectedVal = $select.find("option:first").val();
    }
    return selectedVal;
};

this.applyValue = function (item, state) {
    item[args.column.field] = state;
};

this.isValueChanged = function () {
    return ($select.find("option:selected").val() != defaultValue);
};

this.validate = function () {
    return {
      valid: true,
      msg: null
    };
};

this.init();

}

function CheckboxEditor(args) {
var $input;
var defaultValue;
var scope = this;

this.init = function () {
    $input = $("<INPUT type=checkbox class='editor-checkbox' hideFocus>");
    $input.appendTo(args.container);
    $input.focus();
    $input.bind("blur keyup change", this.refreshdata);
};

this.destroy = function () {
    $input.remove();
};

this.focus = function () {
    $input.focus();
};

this.refreshdata = function(){
    value = ($input.prop('checked')? 'YES': 'NO');
    fieldName = args.column.field;
    args.item[fieldName] = value;
    currentRow=0
    if(dataView.getPagingInfo().pageNum > 0)
    {
        currentRow = parseInt((dataView.getPagingInfo().pageNum * dataView.getPagingInfo().pageSize)) + parseInt(grid.getSelectedRows());
    }
    else
    {
        currentRow = grid.getSelectedRows();
    }
    grid.updateRow(currentRow);
    grid.render();
    dataView.refresh();
};

this.loadValue = function (item) {
    defaultValue = item[args.column.field];
    if (defaultValue == 'YES') {
        $input.prop('checked', true);
    } else {
        $input.prop('checked', false);
    }
    if(defaultValue)
    {
        defaultValue = 'YES';
    }
    else
    {
        defaultValue = 'NO';
    }
};

this.serializeValue = function () {
    value = ($input.prop('checked')? 'YES': 'NO');
    return value;
};

this.applyValue = function (item, state) {
    item[args.column.field] = state;
};

this.isValueChanged = function () {
    return (!($input.val() == "" && defaultValue == null)) && ($input.val() != defaultValue);
};

this.validate = function () {
    return {
      valid: true,
      msg: null
    };
};
this.init();

}

function fnSubmitBuyerReviewChange()
{
fnSaveBuyerReviewChange(true)
}

function fnSaveBuyerReviewChange(isSubmit)
{
$('[name = buyerReviewCheckBox]').parent().css( "background-color", "white" );
var buyerReviewUpdateJsonArray = new Array();
var isChecked = false;
var isValidationFailed = false;
var alertMsg = "";
$.each(dataView.getItems(), function(i, item){
$($('.grid-canvas').children()[i]).removeClass('INVALID_ROW')
if(item.checkboxsave == 'YES')
{
isChecked = true;
item["rowId"] = i;
if(checkEmpty(item["tpnb"]))
{
alertMsg +="Tpnb, ";
if(!isValidationFailed)
{
isValidationFailed = true;
}
}
if(checkEmpty(item["ean"]))
{
alertMsg +="Ean, ";
if(!isValidationFailed)
{
isValidationFailed = true;
}
}
if(checkEmpty(item["tpnd"]))
{
alertMsg +="Tpnd, ";
if(!isValidationFailed)
{
isValidationFailed = true;
}
}
if(checkEmpty(item["outerCaseCode"]))
{
alertMsg +="Outer Case Code, ";
if(!isValidationFailed)
{
isValidationFailed = true;
}
}
if(checkEmpty(item["howManyItems"]))
{
alertMsg +="How Many Items, ";
if(!isValidationFailed)
{
isValidationFailed = true;
}
}
if(checkEmpty(item["forHowMuch"]))
{
alertMsg +="For How Much, ";
if(!isValidationFailed)
{
isValidationFailed = true;
}
}
if(checkEmpty(item["promotionOfferMechanic"]))
{
alertMsg +="Promotion Offer Mechanic, ";
if(!isValidationFailed)
{
isValidationFailed = true;
}
}

        if(checkEmpty(item["establishedSellingPriceSupplier"]))
        {
            alertMsg +="Established Selling Price Supplier, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["promotionSellingPrice"]))
        {
            alertMsg +="Promotion Selling Price, ";
            if(!isValidationFailed)
            {   
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["zoneOrFormatName"]))
        {
            alertMsg +="Zone Formt Name, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["caseSize"]))
        {
            alertMsg +="Case Size, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["fundingMethod"]))
        {
            alertMsg +="Funding Method, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["suppNumber"]))
        {
            alertMsg +="Supplier Number, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["suppName"]))
        {
            alertMsg +="Supplier Name, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["suppEmailId"]))
        {
            alertMsg +="Supplier Name, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["suppFunding"]))
        {
            alertMsg +="Supplier Funding, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["basicCost"]))
        {
            alertMsg +="Basic Cost, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["promCost"]))
        {
            alertMsg +="Prom Cost, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["costStartDateStr"]))
        {
            alertMsg +="Cost Start Date, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["costEndDateStr"]))
        {
            alertMsg +="Cost End Date, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["offInvoice"]))
        {
            alertMsg +="Off Invoice, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["goodsInDepotRetroOrOffInvoicePerCase"]))
        {
            alertMsg +="Goods In Depot Retro Or Off Invoice Per Case, ";
            if(!isValidationFailed)
            {   
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["priceOrFlashMark"]))
        {
            alertMsg +="Price Or Flash Mark, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        
        if(checkEmpty(item["eposRetro"]))
        {
            alertMsg +="Epos Retro, ";
            if(!isValidationFailed)
            {   
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["supplierSubmittedPromotionStr"]))
        {
            alertMsg +="Supplier Submitted Promotion, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["groupId"]))
        {
            alertMsg +="Group Id Promotion, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["amount"]))
        {
            alertMsg +="Amount, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["tillSalesTriggerOrEPOS"] ))
        {
            alertMsg +="Till Sales Trigger Or EPOS ";
            if(!isValidationFailed)
            {   
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["promotionNetCostPerCase"]))
        {
            alertMsg +="Promotion Net Cost Per Case, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["featureSpace"]))
        {
            alertMsg +="Feature Space, ";
            if(!isValidationFailed)
            {
                isValidationFailed = true;
            }
        }
        if(checkEmpty(item["featureSpaceOrPOSFee"]))
        {
            alertMsg +="Feature Space Or POS Fee, ";
            if(!isValidationFailed)
            {   
                isValidationFailed = true;
            }
        }
        if(!checkEmpty(item["queryToBuyer"]) && item["queryToBuyer"] == "YES")
        {
            if(checkEmpty(item["adminComments"]))
            {
                alertMsg +="Admin Comments, ";
                if(!isValidationFailed)
                {   
                    isValidationFailed = true;
                }
            }
        }
        if(item["buyerSignOffToLoad"] != "YES" && item["buyerSignOffToLoad"] != "NO")
        {
            alertMsg +="Buyer Sign Off To Load, ";
            if(!isValidationFailed)
            {   
                isValidationFailed = true;
            }
        }
        if(item["posRequired"] != "YES" && item["posRequired"] != "NO")
        {
            alertMsg +="Pos Required, ";
            if(!isValidationFailed)
            {   
                isValidationFailed = true;
            }
        }
        if(isValidationFailed)
        {
            $($('.grid-canvas').children()[i]).addClass('INVALID_ROW');
            $($('.grid-canvas').children()[i]).focus();
            alertMsg += " are required information";
            alert(alertMsg);
            return false;
        }
        buyerReviewUpdateJsonArray.push(JSON.stringify(item))
    }   
});

if(isChecked && !isValidationFailed)
{
    $("dynamiccolumntd").hide();
    $("savebuttontd").hide();
    $("nbsdownloadtd").hide();
    $("nbsdownloadtd1").hide();
    $("loadertd").show();
    $('#buyerChangeValJSON').val("["+(buyerReviewUpdateJsonArray.join(",")+"]"));
    
    
    $("#loadercontainer").dialog("open");
    
}
else if(!isValidationFailed)
{
    alert("Please select check box to update")
}

}
</script>

Regards,
Ranjan

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions