Order Promotion custom form

Jira code : BTN-520

Created a new form for promotions (Create Order Promotion). All the required fields were added in the form. On save, the promotion form created in the background.

Suitelet:

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 * @NModuleScope SameAccount
 */
/*******************************************************************************
 * Balaji Trading Inc
 * BTN-520 Promotions - URGENT
 * **************************************************************************
 * 
 * Date: 30-08-2018
 * 
 * Author: Jobin & Jismi IT Services LLP
 * 
 * Script Description:This script will create a custom page for creating promotions in netsuite
 *  
 * Date Created : 30/08/2018
 * REVISION HISTORY 
 * 
 * Revision 1 $ 30-08-2018 rosemol : Created
 * 
 *****************************************************************************
 **/
define(['N/http', 'N/record', 'N/redirect', 'N/search', 'N/ui/serverWidget'],
		/**
		 * @param {http} http
		 * @param {record} record
		 * @param {redirect} redirect
		 * @param {search} search
		 * @param {serverWidget} serverWidget
		 */
		function(http, record, redirect, search, serverWidget) {   
	function onRequest(context) {
		try {
			//create form
			if (context.request.method === 'GET'){
				var form = serverWidget.createForm({
					title : 'Create Order Promotion'
				});
				//create fields
				var promo_name = form.addField({                    
					id : 'custpage_promotion_name',
					type : serverWidget.FieldType.TEXT,
					label : 'NAME'
				});
				promo_name.isMandatory = true;
				var promo_details = form.addField({                    
					id : 'custpage_promotion_deatils',
					type : serverWidget.FieldType.TEXTAREA,
					label : 'DETAILS'
				});
				var promo_inactive = form.addField({                    
					id : 'custpage_promotion_inactive',
					type : serverWidget.FieldType.CHECKBOX,
					label : 'INACTIVE'
				});		
				var promo_start_date = form.addField({                    
					id : 'custpage_promotion_start_date',
					type : serverWidget.FieldType.DATE,
					label :'START DATE'
				});
				promo_start_date.defaultValue = new Date();
				var promo_end_date = form.addField({                    
					id : 'custpage_promotion_end_date',
					type : serverWidget.FieldType.DATE,
					label : 'END DATE'
				});
				form.addField({                    
					id : 'custpage_promotion_memo',
					type : serverWidget.FieldType.TEXT,
					label : 'MEMO'
				});	

				var promo_usage_limit = form.addField({                    
					id : 'custpage_promotion_usage_limit',
					type : serverWidget.FieldType.SELECT,
					label : 'EACH CUSTOMER CAN USE THE PROMOTION'
				});
				promo_usage_limit.addSelectOption({
					value : 'FIRSTSALE',
					text : 'One time only'
				});
				promo_usage_limit.addSelectOption({
					value : 'ALLSALES',
					text : 'Unlimited amount of times'
				});

				var promo_anything = form.addField({                    
					id : 'custpage_promotion_needs_to_buy',
					type : serverWidget.FieldType.RADIO,
					label : 'BUY ANYTHING',
					source : 'ANYTHING'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.MIDROW
				});
				form.addField({                    
					id : 'custpage_promotion_needs_to_buy',
					type : serverWidget.FieldType.RADIO,
					label : 'SPEND A MINIMUM ORDER AMOUNT OR BUY SPECIFIC ITEMS',
					source : 'min_oder_amt'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.MIDROW
				});	

				var promo_minimum_order_amount = form.addField({                    
					id : 'custpage_promotion_minimum_order_amount',
					type : serverWidget.FieldType.CHECKBOX,
					label : 'MINIMUM ORDER AMOUNT'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.MIDROW
				});
				var promo_specific_items = form.addField({                    
					id : 'custpage_promotion_specific_items',
					type : serverWidget.FieldType.CHECKBOX,
					label : 'SPECIFIC ITEMS'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.MIDROW
				});	

				var promo_discount_rate = form.addField({                    
					id : 'custpage_promotion_discount_rate',
					type : serverWidget.FieldType.CURRENCY,
					label : 'DISCOUNT RATE'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.OUTSIDEBELOW
				});
				promo_discount_rate.isMandatory = true;
				var promo_percent = form.addField({                    
					id : 'custpage_promotion_discount_radio',
					type : serverWidget.FieldType.RADIO,
					label : '%',
					source : 'percent'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.OUTSIDEBELOW
				});
				form.addField({                    
					id : 'custpage_promotion_discount_radio',
					type : serverWidget.FieldType.RADIO,
					label : 'FLAT',
					source : 'flat'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.OUTSIDEBELOW
				});

				var create_sublist = form.addSublist({
					id : 'custpage_item_sublist',
					type : serverWidget.SublistType.INLINEEDITOR,
					label : 'ITEM'
				});
				create_sublist.addField({                
					id : 'custpage_itemid',
					type : serverWidget.FieldType.SELECT,
					label : 'ITEM',
					source : 'inventoryitem'
				});
				var currencysublist = form.addSublist({
					id : 'custpage_currency_sublist',
					type : serverWidget.SublistType.EDITOR,
					label : 'CURRENCY'
				});
				currencysublist.addField({                
					id : 'custpage_currencytype',
					type : serverWidget.FieldType.TEXT,
					label : 'CURRENCY'
				});
				currencysublist.addField({                
					id : 'custpage_currency_amount',
					type : serverWidget.FieldType.TEXT,
					label : 'MINIMUM ORDER AMOUNT'
				});
				currencysublist.setSublistValue({
					id : 'custpage_currencytype',
					line : 0,
					value : "USA"
				});  
				currencysublist.setSublistValue({
					id : 'custpage_currencytype',
					line : 1,
					value : "British pound"
				});
				currencysublist.setSublistValue({
					id : 'custpage_currencytype',
					line : 2,
					value : "Canadian Dollar"
				});
				currencysublist.setSublistValue({
					id : 'custpage_currencytype',
					line : 3,
					value : "Euro"
				});
				currencysublist.setSublistValue({
					id : 'custpage_currencytype',
					line : 4,
					value : "Chinese Yuan"
				});
				currencysublist.setSublistValue({
					id : 'custpage_currencytype',
					line : 5,
					value : "MXN"
				});
				var promo_coupon_code_type = form.addField({                    
					id : 'custpage_promotion_coupon_code_type',
					type : serverWidget.FieldType.SELECT,
					label : 'COUPON CODE TYPE'
				}).updateLayoutType({
					layoutType: serverWidget.FieldLayoutType.ENDROW
				});
				promo_coupon_code_type.addSelectOption({
					value : "null",
					text : 'Select'
				});
				promo_coupon_code_type.addSelectOption({
					value : 'SINGLEUSE',
					text : 'Single Use'
				});
				promo_coupon_code_type.addSelectOption({
					value : 'MULTIPLEUSES',
					text : 'Multiple Uses'
				});
				
				var promo_code_pattern = form.addField({                    
					id : 'custpage_promotion_code_pattern',
					type : serverWidget.FieldType.TEXT,
					label : 'CODE PATTERN'
				});	
				var promo_no_of_codes_to_generate = form.addField({                    
					id : 'custpage_promotion_no_of_codes_to_generate',
					type : serverWidget.FieldType.INTEGER,
					label : 'NUMBER OF CODES TO GENERATE'
				});
				var promo_import_file = form.addField({                    
					id : 'custpage_promotion_import_file',
					type : serverWidget.FieldType.FILE,
					label : 'IMPORT FILE'
				});	
				var promo_coupon_code = form.addField({                    
					id : 'custpage_promotion_coupon_code',
					type : serverWidget.FieldType.TEXT,
					label : 'COUPON CODE'
				});
				form.addSubmitButton({
					label : 'SUBMIT'					
				});
				context.response.writePage(form);
				form.clientScriptFileId = '1284678';
			}else{
				try {
					//get values from current form
					var promoname = context.request.parameters.custpage_promotion_name;
					var promodetails = context.request.parameters.custpage_promotion_deatils;
					var promoinactive = context.request.parameters.custpage_promotion_inactive;			
					var promostartdate = context.request.parameters.custpage_promotion_start_date;	    				
					var promoenddate = context.request.parameters.custpage_promotion_end_date;    				
					var promomemo = context.request.parameters.custpage_promotion_memo;    				
					var promobuyradio = context.request.parameters.custpage_promotion_needs_to_buy;
					var promominimumorderamount = context.request.parameters.custpage_promotion_minimum_order_amount;    				
					var promospecificitem = context.request.parameters.custpage_promotion_specific_items;
					
					var promoitemsublist = context.request.parameters.custpage_item_sublist;
					var lines = context.request.getLineCount({ group: "custpage_item_sublist" }); 
					var woarray = new Array();
					var recordArray = new Array();
					for(var j = 0; j < lines; j++) {
						var woobject = new Object();
						var childitems1id = context.request.getSublistValue({ group: 'custpage_item_sublist', name: 'custpage_itemid', line: j });
						var itemid = childitems1id.split('.')[0];
					}   
					
					var promocouponcodetype = context.request.parameters.custpage_promotion_coupon_code_type;    				
					var promocouponcode = context.request.parameters.custpage_promotion_coupon_code;    				
					var promocodepattern = context.request.parameters.custpage_promotion_code_pattern;    				
					var promonoofcodestogenerate = context.request.parameters.custpage_promotion_no_of_codes_to_generate;    				
					
					
					var promocurrencysublist = context.request.parameters.custpage_currency_sublist;
					var lines1 = context.request.getLineCount({ group: "custpage_currency_sublist" }); 
					var cuarray = new Array();
					var currencyArray = new Array();
					for(var j = 0; j < lines1; j++) {
						var cuobject = new Object();
						var childcurrencyamount = context.request.getSublistValue({ group: 'custpage_currency_sublist', name: 'custpage_currency_amount', line: j });

						if(childcurrencyamount == null || childcurrencyamount == '' || childcurrencyamount == ' ' || childcurrencyamount == undefined){						
						}
						else{
							cuobject.currencyamount = childcurrencyamount.split('.')[0];						
							var childcurrencyid = context.request.getSublistValue({ group: 'custpage_currency_sublist', name: 'custpage_currencytype', line: j });
							cuobject.currencyid = childcurrencyid.split('.')[0];
						}					
						currencyArray.push(cuobject);
					}   
					
					var promodiscountrate = context.request.parameters.custpage_promotion_discount_rate;    				
					var promodiscountradio = context.request.parameters.custpage_promotion_discount_radio;    				
					var promousagelimit = context.request.parameters.custpage_promotion_usage_limit;    				
					//context.response.write('success');

					//create order promotion
					var objRecord = record.create({
						type: 'promotioncode', 
						isDynamic: true
					});
					//set custom form to Order Promotion - CS
					objRecord.setValue({
						fieldId : 'customform',
						value : 133
					});
					//set promotion name
					objRecord.setValue({
						fieldId : 'name',
						value : promoname
					});
					//set promotion description
					objRecord.setValue({
						fieldId : 'description',
						value : promodetails
					});  		


					//set inactive value
					if(promoinactive == "T"){	
						objRecord.setValue({
							fieldId : 'isinactive',
							value : true
						}); 
					}
					else{
						objRecord.setValue({
							fieldId : 'isinactive',
							value : false
						}); 
					}

					//set start date
					if(promostartdate){
						objRecord.setValue({
							fieldId : 'startdate',
							value : new Date(promostartdate)
						});
					}
					//set end date
					if(promoenddate){
						objRecord.setValue({
							fieldId : 'enddate',
							value : new Date(promoenddate)
						});
					}
					//set memo
					if(promomemo){
						objRecord.setValue({
							fieldId : 'custrecord170',
							value : promomemo
						});
					}
					//set combination type
					objRecord.setValue({
						fieldId : 'combinationtype',
						value : "GLOBALEXCLUSIVE"
					});
					//set customers buy radio button    			
					if(promobuyradio == "ANYTHING"){		
						objRecord.setValue({
							fieldId : 'whatthecustomerneedstobuy',
							value : promobuyradio
						}); 
					}
					else{
						objRecord.setValue({
							fieldId : 'whatthecustomerneedstobuy',
							value : "MINIMUMORDERAMOUNTORSPECIFICITEMS"
						}); 
					}
					//set minimum order amount
					if(promominimumorderamount == "T"){	
						objRecord.setValue({
							fieldId : 'minimumorderamountcheck',
							value : true
						}); 
					}
					else{
						objRecord.setValue({
							fieldId : 'minimumorderamountcheck',
							value : false
						}); 
					}
					//set specific item
					if(promospecificitem == "T"){	
						objRecord.setValue({
							fieldId : 'specificitemscheck',
							value : true
						}); 
					}
					else{
						objRecord.setValue({
							fieldId : 'specificitemscheck',
							value : false
						}); 
					}

					//add line item
					for(var j = 0; j < lines; j++) {
						objRecord.selectNewLine({
							sublistId: 'items'
						});
						objRecord.setCurrentSublistValue({
							sublistId: 'items',
							fieldId: 'item',
							value: itemid
						});
						objRecord.commitLine({
							sublistId: 'items'
						});
					}
					//set discount rate
					objRecord.setValue({
						fieldId : 'rate',
						value : promodiscountrate
					});
					// set discounttype
					if(promodiscountradio){
						objRecord.setValue({
							fieldId : 'discounttype',
							value : promodiscountradio
						});
					}
					// set coupon code type
					if(promocouponcodetype)
					objRecord.setValue({
						fieldId : 'usetype',
						value : promocouponcodetype
					});
					// set coupon code 
					if(promocouponcode){
						objRecord.setValue({
							fieldId : 'code',
							value : promocouponcode
						});
					}
					// set code pattern
					if(promocodepattern){
						objRecord.setValue({
							fieldId : 'codepattern',
							value : promocodepattern
						});
					}
					// set number of codes to generate
					if(promonoofcodestogenerate){
						objRecord.setValue({
							fieldId : 'numbertogenerate',
							value : promonoofcodestogenerate
						});
					}
					
					// set sales channel 
					objRecord.setValue({
						fieldId : 'saleschannels',
						value : "SPECIFICWEBSITES"
					});
					// set coupon code
					objRecord.setValue({
						fieldId : 'website',
						value : 3
					});
					//set usage limit
					objRecord.setValue({
						fieldId : 'applydiscountto',
						value : promousagelimit
					});
					// set discount
					objRecord.setValue({
						fieldId : 'discount',
						value : 134890
					});
					// add currency list
					for(var k = 0;k<currencyArray.length ; k++){
						var currencyname = currencyArray[k].currencyid;
						if(currencyname != ''){
							var currencyamnt = currencyArray[k].currencyamount;
							objRecord.selectLine({
								sublistId: 'currency',
								line: k
							});
							objRecord.setCurrentSublistValue({
								sublistId: 'currency',
								fieldId: 'minimumorderamount',
								value: currencyamnt
							});
							objRecord.commitLine({
								sublistId: 'currency'
							});
						}    					
					}
					// saving record
					var recordId = objRecord.save({
						enableSourcing : true,
						ignoreMandatoryFields : false
					});
					logme('recordId',recordId);	
					redirect.toRecord({
					    type : record.Type.PROMOTION_CODE, 
					    id : recordId  
					});

				} catch (e) {
					logme('Error in Post Method', getError(e));
				}

			}

		} catch (e) {
			logme('Error in Main try staement', getError(e));
		}

	}

	return {
		onRequest: onRequest
	};

});
/*******************************************************************************
 * return error
 * 
 * @param e
 * @returns
 */
function getError(e) {
	var stErrMsg = '';
	if (e.getDetails != undefined) {
		stErrMsg = '_' + e.getCode() + '<br>' + e.getDetails() + '<br>'
		+ e.getStackTrace();
	} else {
		stErrMsg = '_' + e.toString();
	}
	return stErrMsg;
}

/*******************************************************************************
 * Log these data
 * 
 * @param title
 * @param details
 * @returns
 */
function logme(title, details) {
	log.debug({
		title : title,
		details : details
	});
}

Client Scipt :

/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */
/*******************************************************************************
 * Balaji Trading Inc
 * BTN-520 Promotions - URGENT
 * **************************************************************************
 * 
 * Date: 05-09-2018
 * 
 * Author: Jobin & Jismi IT Services LLP
 * 
 * Script Description:This script will hide/show fields in custom page for creating promotions 
 *  
 * Date Created : 05/09/2018
 * REVISION HISTORY 
 * 
 * Revision 1 $ 05-09-2018 Maria : Created
 * 
 *****************************************************************************
 **/
define(['N/record','N/search','N/runtime'],

function(record,search,runtime) {
    
    /**
     * Function to be executed after page is initialized.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.mode - The mode in which the record is being accessed (create, copy, or edit)
     *
     * @since 2015.2
     */
    function pageInit(scriptContext) {
    	
    	//hide fields of SPEND A MINIMUM ORDER AMOUNT OR BUY SPECIFIC ITEMS
    	document.getElementById('custpage_promotion_minimum_order_amount_fs_lbl_uir_label').style.display = 'none';
    	document.getElementById('custpage_promotion_minimum_order_amount_fs').style.display = 'none';
    	document.getElementById('custpage_promotion_specific_items_fs_lbl_uir_label').style.display = 'none';
    	document.getElementById('custpage_promotion_specific_items_fs').style.display = 'none';   	
    	
    	//hide fields of SPECIFIC ITEMS
    	jQuery('.uir-table-block').css('display','none');
    	
    	
    	//hide fields of COUPON CODE TYPE 
    	document.getElementById('custpage_promotion_coupon_code_fs_lbl_uir_label').style.display = 'none';
    	document.getElementById('custpage_promotion_coupon_code_fs').style.display = 'none';
    	document.getElementById('custpage_promotion_import_file_fs_lbl_uir_label').style.display = 'none';
    	document.getElementById('custpage_promotion_import_file_fs').style.display = 'none';
    	document.getElementById('custpage_promotion_code_pattern_fs_lbl').style.display = 'none';
		document.getElementById('custpage_promotion_code_pattern_fs').style.display = 'none';
		document.getElementById('custpage_promotion_no_of_codes_to_generate_fs_lbl').style.display = 'none';
		document.getElementById('custpage_promotion_no_of_codes_to_generate_fs').style.display = 'none';
    	
    	
    	var currentReco=scriptContext.currentRecord;
    	currentReco.setValue({
    		fieldId : 'custpage_promotion_code_pattern',
			value : "ZW-[AN.3]-[A.3]"
		});
    }

    /**
     * Function to be executed when field is changed. 
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     * @param {string} scriptContext.fieldId - Field name
     * @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
     * @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
     *
     * @since 2015.2
     */
    function fieldChanged(scriptContext) {
    	try {
    		
    		var currentRec = scriptContext.currentRecord;

			if (scriptContext.fieldId == 'custpage_promotion_name') {
				var promotionname = currentRec.getValue({
					fieldId : 'custpage_promotion_name'
				});

				console.log("promotionname", promotionname);

				if (promotionname != null) {

					var promotioncodeSearchObj = search.create({
						type : "promotioncode",
						filters : [ [ "name", "is", promotionname ] ],
						columns : [ search.createColumn({
							name : "name",
							sort : search.Sort.ASC,
							label : "Name"
						}) ]
					});
					var searchResultCount = promotioncodeSearchObj.runPaged().count;

					if (searchResultCount > 0) {
						alert("Promotion name already exists");
					}
					console.log("promotioncodeSearchObj result count",searchResultCount);
				}
			}
    		
    		
    		if(scriptContext.fieldId == 'custpage_promotion_needs_to_buy')
    		{
    			var currentRec = scriptContext.currentRecord;
    			var minimumorderamount = currentRec.getValue({
    				fieldId : 'custpage_promotion_needs_to_buy'
    			});
    			console.log("minimumorderamount",minimumorderamount);
    			if (minimumorderamount == "min_oder_amt") {
    				//If SPEND A MINIMUM ORDER AMOUNT OR BUY SPECIFIC ITEMS show fields
    				document.getElementById('custpage_promotion_minimum_order_amount_fs_lbl_uir_label').style.display = 'block';
    				document.getElementById('custpage_promotion_minimum_order_amount_fs').style.display = 'block';
    				document.getElementById('custpage_promotion_specific_items_fs_lbl_uir_label').style.display = 'block';
    				document.getElementById('custpage_promotion_specific_items_fs').style.display = 'block';
    				
    			}	
    			else{
    				//hide fields
    				document.getElementById('custpage_promotion_minimum_order_amount_fs_lbl_uir_label').style.display = 'none';
    				document.getElementById('custpage_promotion_minimum_order_amount_fs').style.display = 'none';
    				document.getElementById('custpage_promotion_specific_items_fs_lbl_uir_label').style.display = 'none';
    				document.getElementById('custpage_promotion_specific_items_fs').style.display = 'none';
    				jQuery('.uir-table-block').css('display','none');
    			}
    		}
    		if(scriptContext.fieldId == 'custpage_promotion_specific_items')
    		{
    			//if SPECIFIC ITEMS 
    			var currentspecitem = scriptContext.currentRecord;
    			var specificitems = currentspecitem.getValue({
    				fieldId : 'custpage_promotion_specific_items'
    			}); 
    			if (specificitems == true) {
    				//show fields
    				jQuery('.uir-table-block').css('display','block');
    			}	
    			else{
    				//hide fields
    				jQuery('.uir-table-block').css('display','none');
    			}
    		}
    		if(scriptContext.fieldId == 'custpage_promotion_minimum_order_amount')
    		{
    			//if minimum order amount
    			var currentspecitem = scriptContext.currentRecord;
    			var minimumorderamount = currentspecitem.getValue({
    				fieldId : 'custpage_promotion_minimum_order_amount'
    			});
    			console.log("minimumorderamount",minimumorderamount);
    			 
    			if (minimumorderamount == true) {
    
    				//show fields
    				jQuery('.uir-table-block').css('display','block');
    				
    			       
    			}	
    			else{
    				//hide fields 
    				jQuery('.uir-table-block').css('display','none');
    			
 			    	
    			}
    		}
    		
    		if(scriptContext.fieldId == 'custpage_promotion_coupon_code_type'){
    			
    			var currentReccoupon = scriptContext.currentRecord;
    			var couponcodetype = currentReccoupon.getValue({
    				fieldId : 'custpage_promotion_coupon_code_type'
    			});
    			console.log("couponcodetype",couponcodetype);
    
    			if(couponcodetype == 'SINGLEUSE'){
    				//if coupon code type is single use
    				document.getElementById('custpage_promotion_code_pattern_fs_lbl').style.display = 'block';
    				document.getElementById('custpage_promotion_code_pattern_fs').style.display = 'block';
    				document.getElementById('custpage_promotion_no_of_codes_to_generate_fs_lbl').style.display = 'block';
    				document.getElementById('custpage_promotion_no_of_codes_to_generate_fs').style.display = 'block';
    				
    		    	document.getElementById('custpage_promotion_coupon_code_fs_lbl_uir_label').style.display = 'none';
    		    	document.getElementById('custpage_promotion_coupon_code_fs').style.display = 'none';
    		    	var codestogenerate = currentReccoupon.getValue({
    	 				fieldId : 'custpage_promotion_no_of_codes_to_generate'
    	 			});
    	 			console.log("codestogenerate",codestogenerate);
    		    	if(codestogenerate == null || codestogenerate == '' || codestogenerate == ' ' || codestogenerate == undefined){
    	 				alert('Enter value for NUMBER OF CODES TO GENERATE');
    	 			}
    		    	
    			}
    			else if(couponcodetype == 'MULTIPLEUSES'){
    				//if coupon code type is multiple users
    				document.getElementById('custpage_promotion_code_pattern_fs_lbl').style.display = 'none';
    				document.getElementById('custpage_promotion_code_pattern_fs').style.display = 'none';
    				document.getElementById('custpage_promotion_no_of_codes_to_generate_fs_lbl').style.display = 'none';
    		    	document.getElementById('custpage_promotion_no_of_codes_to_generate_fs').style.display = 'none';
    		    	
    		    	
    		    	document.getElementById('custpage_promotion_coupon_code_fs_lbl_uir_label').style.display = 'block';
    		    	document.getElementById('custpage_promotion_coupon_code_fs').style.display = 'block';
    		    	var couponcode = currentReccoupon.getValue({
    	 				fieldId : 'custpage_promotion_coupon_code'
    	 			});
    	 			console.log("couponcode",couponcode);
    		    	if(couponcode == null || couponcode == '' || couponcode == ' ' || couponcode == undefined){
    	 				alert('Enter value for COUPON CODE');
    	 			}
    			}
    			else if(couponcodetype == 'null'){
    				
    				document.getElementById('custpage_promotion_coupon_code_fs_lbl_uir_label').style.display = 'none';
    		    	document.getElementById('custpage_promotion_coupon_code_fs').style.display = 'none';
    		    	document.getElementById('custpage_promotion_code_pattern_fs_lbl').style.display = 'none';
    				document.getElementById('custpage_promotion_code_pattern_fs').style.display = 'none';
    				document.getElementById('custpage_promotion_no_of_codes_to_generate_fs_lbl').style.display = 'none';
    		    	document.getElementById('custpage_promotion_no_of_codes_to_generate_fs').style.display = 'none';
    			}
    		}
    		
    	} catch (e) {
    		console.log(e.message);
    	}
    }

    
    /**
     * Function to be executed when field is slaved.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     * @param {string} scriptContext.fieldId - Field name
     *
     * @since 2015.2
     */
    function postSourcing(scriptContext) {

    }

    /**
     * Function to be executed after sublist is inserted, removed, or edited.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     *
     * @since 2015.2
     */
    function sublistChanged(scriptContext) {

    }

    /**
     * Function to be executed after line is selected.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     *
     * @since 2015.2
     */
    function lineInit(scriptContext) {

    }

    /**
     * Validation function to be executed when field is changed.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     * @param {string} scriptContext.fieldId - Field name
     * @param {number} scriptContext.lineNum - Line number. Will be undefined if not a sublist or matrix field
     * @param {number} scriptContext.columnNum - Line number. Will be undefined if not a matrix field
     *
     * @returns {boolean} Return true if field is valid
     *
     * @since 2015.2
     */
    function validateField(scriptContext) {

    }

    /**
     * Validation function to be executed when sublist line is committed.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     *
     * @returns {boolean} Return true if sublist line is valid
     *
     * @since 2015.2
     */
    function validateLine(scriptContext) {

    }

    /**
     * Validation function to be executed when sublist line is inserted.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     *
     * @returns {boolean} Return true if sublist line is valid
     *
     * @since 2015.2
     */
    function validateInsert(scriptContext) {

    }

    /**
     * Validation function to be executed when record is deleted.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @param {string} scriptContext.sublistId - Sublist name
     *
     * @returns {boolean} Return true if sublist line is valid
     *
     * @since 2015.2
     */
    function validateDelete(scriptContext) {

    }

    /**
     * Validation function to be executed when record is saved.
     *
     * @param {Object} scriptContext
     * @param {Record} scriptContext.currentRecord - Current form record
     * @returns {boolean} Return true if record is valid
     *
     * @since 2015.2
     */
    function saveRecord(scriptContext) {
    	alert('success');
    	if(scriptContext.fieldId == 'custpage_promotion_coupon_code_type'){	
		    	var currentRecCouponcode = scriptContext.currentRecord;
		    	var couponcodetype = currentReccoupon.getValue({
    				fieldId : 'custpage_promotion_coupon_code_type'
    			});
    			console.log("couponcodetype",couponcodetype);
    
    			if(couponcodetype == 'MULTIPLEUSES'){
    				var couponcode = currentRecCouponcode.getValue({
    	 				fieldId : 'custpage_promotion_coupon_code'
    	 			});
    	 			console.log("couponcode",couponcode);
    	 			if(couponcode == null || couponcode == '' || couponcode == ' ' || couponcode == undefined){
    	 				alert('Enter value for COUPON CODE');
    	 			}
    			}
 			
			}
    	
    }

    return {
        pageInit: pageInit,
        fieldChanged: fieldChanged
        /*postSourcing: postSourcing,
        sublistChanged: sublistChanged,
        lineInit: lineInit,
        validateField: validateField,
        validateLine: validateLine,
        validateInsert: validateInsert,
        validateDelete: validateDelete,*/
     /*  saveRecord: saveRecord*/
    };
    
});

Leave a comment

Your email address will not be published. Required fields are marked *