	function HTTP_RELOAD_QTY_BACKDATE(CALLBACK_METHOD)
	{
		if(PROPERTY_EDIT_ROW_INDEX < 0 && PROPERTY_MODE_ID != 3)
		{
			return;
		}
		
		
		GET_MAP_ARRAY = JSCUS_SQL._RECORD._EOD_PRODUCT.CUS_PREPARE_MAPPED_ARRAY_FOR_GET();	
		JSVC_MAP_ARRAY.VAR_SET
		(
			GET_MAP_ARRAY, 'PARAM_REC_EODPROD_CAT_PRODUCT_ID', 
			INVENTORY_DGV.CELL.VALUE('REC_INVENTORY_CAT_PRODUCT_ID', PROPERTY_EDIT_ROW_INDEX)
		);
		JSVC_MAP_ARRAY.VAR_SET
		(
			GET_MAP_ARRAY, 'PARAM_REC_EODPROD_DATE_FROM', 
			JSVC_DATE.VAR_FORMAT(JSVC_DATE.VAR_BEGIN_OF_DAY(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP)), 'YYYY-MM-DD HH:mm:ss') + ".000000"
		);
		JSVC_MAP_ARRAY.VAR_SET
		(
			GET_MAP_ARRAY, 'PARAM_REC_EODPROD_DATE_TO', 
			JSVC_DATE.VAR_END_OF_DAY(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP))
		);
		
		
		JSOC_DIALOG.VAR_LOADING_SPINNER(true);
		JSCUS_SQL._RECORD._EOD_PRODUCT.CUS_GET
		(
			GET_MAP_ARRAY,
			function(IS_SUCCESS, RESPONSE_STRING)
			{
				// Disable Dialogs
				CUS_SEND_DIALOG_TRY_DISMISS();
				
				// Validate
				if(IS_SUCCESS === false)
				{
					console.error("CONNECTION ERROR: \n" + RESPONSE_STRING);
					return;
				}
				
				// Validate JSON Response
				var JSON_OBJECT = JSRC_JSON.REF_CREATE(RESPONSE_STRING);
				if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
				{
					console.error("REQUEST ERROR: \n" + RESPONSE_STRING);
					return;
				}
				
				// JSON Empty (Clears the DataGrodView)
				if(JSRC_JSON.REF_READ(JSON_OBJECT, "JSON_COUNT") <= 0)
				{
					return;
				}
				
				// Apply fetched data to dialog		
				JSOC_ELEMENT.VAR_VALUE
				(
					"CURRENT_TXT", JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "REC_EODPROD_QTY_END", "1")
				);
				
				RECOMPUTE_INVENTORY_BALANCE();	
				if(JSVC_VAR.VAR_ISSET(CALLBACK_METHOD))
				{
					CALLBACK_METHOD();
				}	
			},
			true
		); 	
	};
	

	function HTTP_RELOAD_QTY(CALLBACK_METHOD, ON_SAVE = false)
	{
		// Prepare Request Parameter
		GET_MAP_ARRAY = JSCUS_SQL._RECORD._INVENTORY_CUSTOM.CUS_PREPARE_MAPPED_ARRAY_FOR_RELATED();	
		JSVC_MAP_ARRAY.VAR_SET
		(
			GET_MAP_ARRAY , 'PARAM_CAT_PRODUCT_ID', 
			INVENTORY_DGV.CELL.VALUE('REC_INVENTORY_CAT_PRODUCT_ID', PROPERTY_EDIT_ROW_INDEX)
		
		);	
		JSOC_DIALOG.VAR_LOADING_SPINNER(true);


		// Send Request
		JSCUS_SQL._RECORD._INVENTORY_CUSTOM.CUS_RELATED
		(
			GET_MAP_ARRAY,
			function(IS_SUCCESS, RESPONSE_STRING)
			{
				// Disable Dialogs
				CUS_SEND_DIALOG_TRY_DISMISS();
				
				// Validate
				if(IS_SUCCESS === false)
				{
					console.error("CONNECTION ERROR: \n" + RESPONSE_STRING);
					return;
				}
				
				// Validate JSON Response
				var JSON_OBJECT = JSRC_JSON.REF_CREATE(RESPONSE_STRING);
				if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
				{
					console.error("REQUEST ERROR: \n" + RESPONSE_STRING);
					return;
				}
				
				// JSON Empty (Clears the DataGrodView)
				if(JSRC_JSON.REF_READ(JSON_OBJECT, "JSON_COUNT") <= 0)
				{
					console.error("REQUEST ERROR: \n" + "Unable to retrieve data.");
					return;
				}
		
				// Apply fetched data to dialog		
				JSOC_ELEMENT.VAR_VALUE
				(
					"PRICE_ON_DATABASE_TXT", JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "CAT_PRODUCT_ING_PRICE", "1")
				);
				JSOC_ELEMENT.VAR_VALUE
				(
					"NET_CONTENT_TXT", JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "CAT_PRODUCT_ING_NET_CONTENT", "1")
				);
				JSOC_ELEMENT.VAR_VALUE
				(
					"CURRENT_TXT", JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "REC_INVENTORY_QUANTITY", "1")
				);	
				
				// Apply fetched data to datagridview
				INVENTORY_DGV.CELL.VALUE
				(
					'CAT_PRODUCT_ING_PRICE', PROPERTY_EDIT_ROW_INDEX, 
					JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "CAT_PRODUCT_ING_PRICE", "1")
				);
				INVENTORY_DGV.CELL.VALUE
				(
					'CAT_PRODUCT_ING_NET_CONTENT', PROPERTY_EDIT_ROW_INDEX, 
					JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "CAT_PRODUCT_ING_NET_CONTENT", "1")
				);
				INVENTORY_DGV.CELL.VALUE
				(
					'REC_INVENTORY_QUANTITY', PROPERTY_EDIT_ROW_INDEX, 
					JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "REC_INVENTORY_QUANTITY", "1")
				);	
				
				if(JSVC_VAR.VAR_ISSET(CALLBACK_METHOD))
				{
					CALLBACK_METHOD();
				}		
			},
			true
		); 				
	};
		
		
		
	// ===============================================================
	// Request Save
	// ===============================================================
	function HTTP_SAVE(CALLBACK_METHOD)
	{	
				
		// Initialize
		// _______________________________________________________________________
		var REC_STOCKCARD_CAT_STOCKFLOW_ID = 0;
		var RELOAD_QTY_METHOD = null;
		
		// Validate Zero [Numeric Input]
		// _______________________________________________________________________
		if(JSOC_INPUT_TEXT.CTL_NVAL(REC_INVENTORY_QUANTITY_TXT) == 0)
		{
			JSOC_DIALOG.VAR_MESSAGE_BOX
			(
				'Field Quantity cannot be zero(0).', 
				'Information',
				'OK', 'WARNING',
				function(MESSAGE_RESPONSE)
				{
					REC_INVENTORY_QUANTITY_TXT.style.borderColor = JSCUS_CACHE.SITE_ON_ERROR_BORDER_COLOR;
					REC_INVENTORY_QUANTITY_TXT.focus();
					CALLBACK_METHOD(false);
				}
			);		
			return;		
		}
	
	
		// Validate Negative [Numeric Input]
		// _______________________________________________________________________
		if(JSOC_INPUT_TEXT.CTL_NVAL(REC_INVENTORY_QUANTITY_TXT) < 0)
		{
			JSOC_DIALOG.VAR_MESSAGE_BOX
			(
				'Field Quantity cannot be negative.', 
				'Information',
				'OK', 'WARNING',
				function(MESSAGE_RESPONSE)
				{
					REC_INVENTORY_QUANTITY_TXT.style.borderColor = JSCUS_CACHE.SITE_ON_ERROR_BORDER_COLOR;
					REC_INVENTORY_QUANTITY_TXT.focus();
					CALLBACK_METHOD(false);
				}
			);	
			return;			
		}
		
		
		// Foreign key check [Stock-In]
		// _______________________________________________________________________
		if
		(
			PROPERTY_MODE_ID == 1 &&
			JSVC_VAR.VAR_ISSET(POSITIVE_STOCKFLOW_CMB) &&
			(
				JSOC_CMB.VAR_SELECTED_INDEX(POSITIVE_STOCKFLOW_CMB) < 0 ||
				JSVC_NUM.VAR_NVALL(JSOC_CMB.VAR_SELECTED_VALUE(POSITIVE_STOCKFLOW_CMB)) < 0
			)
		)
		{
			JSOC_DIALOG.VAR_MESSAGE_BOX
			(
				'Field Stock Flow is required.', 
				'Information',
				'OK', 'WARNING',
				function(MESSAGE_RESPONSE)
				{
					POSITIVE_STOCKFLOW_CMB.style.borderColor = JSCUS_CACHE.SITE_ON_ERROR_BORDER_COLOR;
					POSITIVE_STOCKFLOW_CMB.focus();
					CALLBACK_METHOD(false);
				}
			);	
			return;			
		}

		if
		(
			PROPERTY_MODE_ID == 2 &&
			JSVC_VAR.VAR_ISSET(NEGATIVE_STOCKFLOW_CMB) &&
			(
				JSOC_CMB.VAR_SELECTED_INDEX(NEGATIVE_STOCKFLOW_CMB) < 0 ||
				JSVC_NUM.VAR_NVALL(JSOC_CMB.VAR_SELECTED_VALUE(NEGATIVE_STOCKFLOW_CMB)) < 0
			)
		)
		{
			JSOC_DIALOG.VAR_MESSAGE_BOX
			(
				'Field Stock Flow is required.', 
				'Information',
				'OK', 'WARNING',
				function(MESSAGE_RESPONSE)
				{
					NEGATIVE_STOCKFLOW_CMB.style.borderColor = JSCUS_CACHE.SITE_ON_ERROR_BORDER_COLOR;
					NEGATIVE_STOCKFLOW_CMB.focus();
					CALLBACK_METHOD(false);
				}
			);	
			return;			
		}
		

		if
		(
			JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP)) == false &&
			JSOC_ELEMENT.VAR_VALUE_TO_DATE(BACKDATE_DTP) > JSVC_DATE.VAR_NOW()
		)
		{
			JSOC_DIALOG.VAR_MESSAGE_BOX
			(
				'Invalid Date', 
				'Information',
				'OK', 'WARNING',
				function(MESSAGE_RESPONSE)
				{
					BACKDATE_DTP.style.borderColor = JSCUS_CACHE.SITE_ON_ERROR_BORDER_COLOR;
					BACKDATE_DTP.focus();
					CALLBACK_METHOD(false);
				}
			);	
			return;			
		}			
		
		// Declare Post Request Handler
		// _______________________________________________________________________
		var HTTP_SAVE_UPDATE_QUANTITY = function()
		{
			// Prepare Request Parameter
			GET_MAP_ARRAY = JSCUS_SQL._RECORD._INVENTORY_CUSTOM.CUS_PREPARE_MAPPED_ARRAY_FOR_RELATED();	
			JSCUS_SQL._ADD_FROM
			(
				GET_MAP_ARRAY, 'REC_INVENTORY_CAT_PRODUCT_ID_TXT', 'PARAM_REC_INVENTORY_CAT_PRODUCT_ID'
			);						
			JSOC_DIALOG.VAR_LOADING_SPINNER(true);

			// Send Request
			JSCUS_SQL._RECORD._INVENTORY_CUSTOM.CUS_RELATED
			(
				GET_MAP_ARRAY,
				function(IS_SUCCESS, RESPONSE_STRING)
				{
					// Disable Dialogs
					CUS_SEND_DIALOG_TRY_DISMISS();
					
					// Validate
					if(IS_SUCCESS === false)
					{
						console.error("CONNECTION ERROR: \n" + RESPONSE_STRING);
						return;
					}
					
					// Validate JSON Response
					var JSON_OBJECT = JSRC_JSON.REF_CREATE(RESPONSE_STRING);
					if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
					{
						console.error("REQUEST ERROR: \n" + RESPONSE_STRING);
						return;
					}
					
					// JSON Empty (Clears the DataGrodView)
					if(JSRC_JSON.REF_READ(JSON_OBJECT, "JSON_COUNT") <= 0)
					{
						console.error("REQUEST ERROR: \n" + "Unable to retrieve data.");
						return;
					}
			
					// Load Dialog
					JSOC_ELEMENT.VAR_VALUE
					(
						"CURRENT_TXT", JSRC_JSON.REF_READ(JSON_OBJECT, "REC_INVENTORY_QUANTITY", "1")
					);			
					BAG_QUANTITY_TXT.onchange();			
					
					// Stock-In
					if(PROPERTY_MODE_ID == 1)
					{
						REC_STOCKCARD_CAT_STOCKFLOW_ID = JSOC_CMB.VAR_SELECTED_VALUE(POSITIVE_STOCKFLOW_CMB);
					}
					// Stock-Out
					else if(PROPERTY_MODE_ID == 2)
					{
						REC_STOCKCARD_CAT_STOCKFLOW_ID = JSOC_CMB.VAR_SELECTED_VALUE(NEGATIVE_STOCKFLOW_CMB);
					}
					
					// Adjustment Negative
					else if(JSOC_ELEMENT.VAR_VALUE_NVAL("REC_INVENTORY_QUANTITY_TXT") < 0)
					{
						REC_STOCKCARD_CAT_STOCKFLOW_ID = 4;
					}
					// Adjustment Positive
					else if(JSOC_ELEMENT.VAR_VALUE_NVAL("REC_INVENTORY_QUANTITY_TXT") > 0)
					{
						REC_STOCKCARD_CAT_STOCKFLOW_ID = 5;
					}
					 	
					// Save item [Prepare]
					var SAVE_MAP_ARRAY = null;
					
					if(JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP)))
					{
						SAVE_MAP_ARRAY = JSCUS_SQL._RECORD._STOCK_CARD.CUS_PREPARE_MAPPED_ARRAY_FOR_SAVE();						
					}
					else
					{
						SAVE_MAP_ARRAY = JSCUS_SQL._RECORD._STOCK_CARD.CUS_PREPARE_MAPPED_ARRAY_FOR_BACKDATE();						
					}
					
					JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_ID", -1);				
					JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_CAT_PRODUCT_ID", JSOC_ELEMENT.VAR_VALUE_NVALL("REC_INVENTORY_CAT_PRODUCT_ID_TXT"));
					JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_CAT_STOCKFLOW_ID", REC_STOCKCARD_CAT_STOCKFLOW_ID);
					JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_QUANTITY", JSOC_ELEMENT.VAR_VALUE_NVAL("REC_INVENTORY_QUANTITY_TXT"));	
					JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_REMARKS", JSOC_ELEMENT.VAR_VALUE(REMARKS_TXT));					
					JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_STATUS", 2);
		
					if(JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP)))
					{
						JSCUS_SQL._RECORD._STOCK_CARD.CUS_SAVE 
						(
							SAVE_MAP_ARRAY,
							RESPONSE_HANDLER
						);							
					}
					else
					{
						JSVC_MAP_ARRAY.VAR_SET
						(
							SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_DATE_TRANSACTION", 
							JSVC_DATE.VAR_FORMAT
							(
								JSOC_ELEMENT.VAR_VALUE_TO_DATE(BACKDATE_DTP),
								'YYYY-MM-DD HH:mm:ss' 
							) + '.999999'
						);
						JSCUS_SQL._RECORD._STOCK_CARD.CUS_BACKDATE
						(
							SAVE_MAP_ARRAY,
							RESPONSE_HANDLER
						);						
					}

				},
				true
			); 						
		};
		
				
		// Declare Post Request Handler
		// _______________________________________________________________________
		var RESPONSE_HANDLER = function(IS_SUCCESS, HTTP_RESPONSE)
		{
			// Disable Dialogs
			// ...........................................
			CUS_SEND_DIALOG_TRY_DISMISS();
			
			// Handle Error
			// ...........................................
			if(IS_SUCCESS === false)
			{
				METHOD_UNABLE_TO_SEND_REQUEST(CALLBACK_METHOD);	
				return;
			}
			
			// Catch JSON Error
			// ...........................................
			else if(JSRC_JSON.REF_IS_JSTRING(HTTP_RESPONSE) == false)
			{
				METHOD_SERVER_ISSUE(CALLBACK_METHOD, HTTP_RESPONSE);
				return;			
			}
				
			// Read Response
			// ...........................................
			else
			{
				// Load Response
				var JSON_OBJECT = JSRC_JSON.REF_CREATE(HTTP_RESPONSE);
				if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
				{
					METHOD_REQUEST_FAILURE(CALLBACK_METHOD, JSON_OBJECT);
					return;
				}
				
		
				// Post Save Action
				else
				{				
					// Retrieve Inserted ID
					INVENTORY_DGV.CELL.VALUE
					(
						'REC_INVENTORY_QUANTITY', PROPERTY_EDIT_ROW_INDEX,
						JSVC_NUM.VAR_CFORMAT(JSRC_JSON.REF_READ_NVAL(JSON_OBJECT, "REC_STOCKCARD_QUANTITY", "1"))
					);
					
					// Lift edit and Exit EditMode
					EDIT_HANDLER.REF_IS_MODIFIED = false;
					EDIT_HANDLER.HAS_NEWLY_SAVED_DATA = true;			
					JSOC_DIALOG.VAR_MODAL("INVENTORY_MODAL", false);		
					
					//SWAP_EDIT_MODE(false);
					CALLBACK_METHOD(true);											
				}
			}
		};
			
			
		// Save Item [Send Request]
		// _______________________________________________________________________
		JSOC_DIALOG.VAR_LOADING_SPINNER(true);
		//HTTP_SAVE_UPDATE_QUANTITY();
		//console.log(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP));
		
		if
		(
			PROPERTY_EDIT_ROW_INDEX >= 0 && 
			PROPERTY_MODE_ID == 3 &&
			JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP)) == false &&
			JSOC_ELEMENT.VAR_VALUE_TO_DATE(BACKDATE_DTP) < JSVC_DATE.VAR_BEGIN_OF_DAY(JSVC_DATE.VAR_NOW())
		)
		{
			RELOAD_QTY_METHOD = HTTP_RELOAD_QTY_BACKDATE;
		}
		else
		{
			RELOAD_QTY_METHOD = HTTP_RELOAD_QTY;
		}
		
		
		RELOAD_QTY_METHOD
		(
			function()
			{
				// Update Pricing if not match
				if
				(
					JSOC_ELEMENT.VAR_VALUE_NVAL("PRICE_TXT") != JSOC_ELEMENT.VAR_VALUE_NVAL("PRICE_ON_DATABASE_TXT")
				)
				{
					HTTP_SAVE_PRICING(CALLBACK_METHOD);
					return;
				}
					
				// Load Dialog
				BAG_QUANTITY_TXT.onchange();			
				
				// Stock-In
				if(PROPERTY_MODE_ID == 1)
				{
					REC_STOCKCARD_CAT_STOCKFLOW_ID = JSOC_CMB.VAR_SELECTED_VALUE(POSITIVE_STOCKFLOW_CMB);
				}
				// Stock-Out
				else if(PROPERTY_MODE_ID == 2)
				{
					REC_STOCKCARD_CAT_STOCKFLOW_ID = JSOC_CMB.VAR_SELECTED_VALUE(NEGATIVE_STOCKFLOW_CMB);
				}
				// Adjustment
				else if(PROPERTY_MODE_ID == 3)
				{
					REC_STOCKCARD_CAT_STOCKFLOW_ID = JSOC_CMB.VAR_SELECTED_VALUE('ADJUST_STOCKFLOW_CMB');
				}

				 	
				// Save item [Prepare]
				var SAVE_MAP_ARRAY = null;		
				if(JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP)))
				{
					SAVE_MAP_ARRAY = JSCUS_SQL._RECORD._STOCK_CARD.CUS_PREPARE_MAPPED_ARRAY_FOR_SAVE();						
				}
				else
				{
					SAVE_MAP_ARRAY = JSCUS_SQL._RECORD._STOCK_CARD.CUS_PREPARE_MAPPED_ARRAY_FOR_BACKDATE();						
				}
					
				JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_ID", -1);				
				JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_CAT_PRODUCT_ID", JSOC_ELEMENT.VAR_VALUE_NVALL("REC_INVENTORY_CAT_PRODUCT_ID_TXT"));
				JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_CAT_STOCKFLOW_ID", REC_STOCKCARD_CAT_STOCKFLOW_ID);
				JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_QUANTITY", JSOC_ELEMENT.VAR_VALUE_NVAL("REC_INVENTORY_QUANTITY_TXT"));	
				JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_REMARKS", JSOC_ELEMENT.VAR_VALUE(REMARKS_TXT));					
				JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_STATUS", 2);
				
				if(JSVC_STR.VAR_IS_BLANK(JSOC_ELEMENT.VAR_VALUE(BACKDATE_DTP)))
				{
					JSCUS_SQL._RECORD._STOCK_CARD.CUS_SAVE 
					(
						SAVE_MAP_ARRAY,
						RESPONSE_HANDLER
					);							
				}
				else
				{
					JSVC_MAP_ARRAY.VAR_SET
					(
						SAVE_MAP_ARRAY, "PARAM_REC_STOCKCARD_DATE_TRANSACTION", 
						JSVC_DATE.VAR_FORMAT
						(
							JSOC_ELEMENT.VAR_VALUE_TO_DATE(BACKDATE_DTP),
							'YYYY-MM-DD HH:mm:ss' 
						) + '.999999'
					);
					JSCUS_SQL._RECORD._STOCK_CARD.CUS_BACKDATE
					(
						SAVE_MAP_ARRAY,
						RESPONSE_HANDLER
					);						
				}
	
			}, 
			true
		);
	
	};
	
	
	
	// ===============================================================
	// Request Save
	// ===============================================================
	function HTTP_SAVE_PRICING(CALLBACK_METHOD)
	{			
		// Save item [Prepare]
		// _______________________________________________________________________
		var SAVE_MAP_ARRAY = JSCUS_SQL._CATEGORY._PRODUCT.CUS_PREPARE_MAPPED_ARRAY_FOR_SAVE();		
		JSCUS_SQL._ADD_FROM
		(
			SAVE_MAP_ARRAY, 'REC_INVENTORY_CAT_PRODUCT_ID_TXT', 'PARAM_CAT_PRODUCT_ID'
		);			
		JSVC_MAP_ARRAY.VAR_SET(SAVE_MAP_ARRAY, "PARAM_CAT_PRODUCT_ING_PRICE",JSOC_ELEMENT.VAR_VALUE_NVAL(PRICE_TXT));	
		
		
		// Declare Post Request Handler
		// _______________________________________________________________________
		var RESPONSE_HANDLER = function(IS_SUCCESS, HTTP_RESPONSE)
		{
			// Disable Dialogs
			// ...........................................
			CUS_SEND_DIALOG_TRY_DISMISS();
			
			// Handle Error
			// ...........................................
			if(IS_SUCCESS === false)
			{
				METHOD_UNABLE_TO_SEND_REQUEST(CALLBACK_METHOD);	
				return;
			}
			
			// Catch JSON Error
			// ...........................................
			else if(JSRC_JSON.REF_IS_JSTRING(HTTP_RESPONSE) == false)
			{
				METHOD_SERVER_ISSUE(CALLBACK_METHOD, HTTP_RESPONSE);
				return;			
			}

			// Load Response
			// ...........................................
			var JSON_OBJECT = JSRC_JSON.REF_CREATE(HTTP_RESPONSE);
			if(JSRC_JSON.REF_IS_SUCCESS(JSON_OBJECT) === false)
			{
				METHOD_REQUEST_FAILURE(CALLBACK_METHOD, JSON_OBJECT);
				return;
			}
			
			// Resume with the stock adjustment
			// ...........................................
			HTTP_SAVE(CALLBACK_METHOD);								
		};
			
			
		// Save Item [Send Request]
		// _______________________________________________________________________
		JSOC_DIALOG.VAR_LOADING_SPINNER(true);
		JSCUS_SQL._CATEGORY._PRODUCT.CUS_SAVE 
		(
			SAVE_MAP_ARRAY,
			RESPONSE_HANDLER
		);
		
	};