NetSuite 会计期间查询

使用SuiteQL封装会计期间查询常用函数

/**
	 * 获取日期所在会计期间
	 * @param {String} date 日期
	 * @returns {Number} 会计期间内部ID
	 */
	function getPeriodIdByDate(date) {
		var sql =
			"SELECT id FROM accountingPeriod WHERE (TO_DATE('" +
			date +
			"', 'YYYY-MM-DD' ) BETWEEN startdate AND enddate) AND isQuarter = 'F' AND isYear = 'F'";

		var qryResults = query.runSuiteQL(sql).asMappedResults();
		return qryResults[0] && qryResults[0].id;
	}

	/**
	 * 根据会计期间ID获取日期范围
	 * @param {Number} id 会计期间内部ID
	 * @returns {Object} 包含会计期间开始日期、结束日期的对象
	 */
	function getPeriodDateRangeById(id) {
		var data = {
			startDate: '',
			endDate: ''
		};

		var sql = 'SELECT startdate, enddate FROM accountingPeriod WHERE id = ' + id;
		var qryResults = query.runSuiteQL(sql).asMappedResults();
		if (qryResults[0]) {
			data.startDate = qryResults[0].startdate;
			data.endDate = qryResults[0].enddate;
		}

		return data;
	}

	/**
	 * 根据日期范围获取会计期间
	 * 注意:当endDate晚于startDate时,两者会交换
	 * @param {String} startDate 开始日期
	 * @param {String} endDate 截止日期
	 * @returns {Array} 会计期间内部ID
	 */
	function getPeriodIdByDateRange(startDate, endDate) {
		var ids = [];
		var sql =
			"SELECT id FROM accountingperiod WHERE ((TO_DATE ('" +
			startDate +
			"', 'YYYY-MM-DD') BETWEEN startdate AND enddate) or (TO_DATE ('" +
			endDate +
			"', 'YYYY-MM-DD') BETWEEN startdate AND enddate) or (TO_DATE ('" +
			startDate +
			"', 'YYYY-MM-DD') <= startdate AND TO_DATE ('" +
			endDate +
			"', 'YYYY-MM-DD') >= enddate)) AND isQuarter = 'F'	AND isYear = 'F'";
		var qryResults = query.runSuiteQL(sql).asMappedResults();
		for (var i = 0; i < qryResults.length; i++) {
			ids.push(qryResults[i].id);
		}
		return ids;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值