博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle EBS 根据工作日历取工作日
阅读量:4465 次
发布时间:2019-06-08

本文共 3731 字,大约阅读时间需要 12 分钟。

/*=====================================================  根据NLT工作日历  如果p_due_date 是工作日, 返回p_due_date  如果p_due_date 不是工作日,取得 p_due_date 之前最近的一个工作日,返回  Add by xiaoiqng.zhang@2012-12-05  =====================================================*/  FUNCTION get_pre_work_day(p_due_date IN DATE) RETURN DATE IS    l_api_name CONSTANT VARCHAR2(30) := 'GET_PRE_WORK_DAY';    l_moudle   CONSTANT VARCHAR2(100) := g_pkg_name || '.' || l_api_name ||                                         ' : ';    l_fix_due_date  DATE; --向前推至最近的一个“工作日”,即支付开始日    l_calendar_code VARCHAR2(100) := 'CAL_FIN';    l_due_date      DATE; --待定支付开始日  BEGIN      l_due_date := p_due_date;      SELECT MAX(bcd.calendar_date)      INTO l_fix_due_date      FROM bom_calendar_dates bcd     WHERE bcd.calendar_code = l_calendar_code       AND NOT EXISTS     (SELECT 'holiday', bce.exception_date              FROM bom_calendar_exceptions bce             WHERE bce.calendar_code = l_calendar_code               AND bce.exception_date = bcd.calendar_date)       AND bcd.calendar_date <= l_due_date       AND bcd.calendar_date > l_due_date - 15       AND to_char(bcd.calendar_date, 'D') NOT IN ('1', '7');      dbms_output.put_line(to_char(l_fix_due_date, 'YYYY-MM-DD'));    RETURN l_fix_due_date;    EXCEPTION    WHEN no_data_found THEN      dbms_output.put_line(l_moudle || ' can not found!');      cux_avic_conc_utl.log_msg(l_moudle || ' can not found!');      RAISE fnd_api.g_exc_error;    WHEN too_many_rows THEN      dbms_output.put_line(l_moudle || ' too many rows');      cux_avic_conc_utl.log_msg(l_moudle || ' too many rows');      RAISE fnd_api.g_exc_error;    WHEN OTHERS THEN      dbms_output.put_line(l_moudle || 'unexception error occured!');      cux_avic_conc_utl.log_msg(l_moudle || 'unexception error occured!');      RAISE fnd_api.g_exc_error;  END;

  取日期之后最近的工作日

/*=====================================================  根据NLT工作日历  如果p_due_date 是工作日, 返回p_due_date  如果p_due_date 不是工作日,取得 p_due_date 之后最近的一个工作日,返回  Add by xiaoiqng.zhang@2012-12-05  =====================================================*/  FUNCTION get_after_work_day(p_due_date IN DATE) RETURN DATE IS    l_api_name CONSTANT VARCHAR2(30) := 'GET_AFTER_WORK_DAY';    l_moudle   CONSTANT VARCHAR2(100) := g_pkg_name || '.' || l_api_name ||                                         ' : ';    l_fix_due_date  DATE; --向前推至最近的一个“工作日”,即支付开始日    l_calendar_code VARCHAR2(100) := 'CAL_FIN';    l_due_date      DATE; --待定支付开始日  BEGIN      l_due_date := p_due_date;      SELECT MIN(bcd.calendar_date)      INTO l_fix_due_date      FROM bom_calendar_dates bcd     WHERE bcd.calendar_code = l_calendar_code       AND NOT EXISTS     (SELECT 'holiday', bce.exception_date              FROM bom_calendar_exceptions bce             WHERE bce.calendar_code = l_calendar_code               AND bce.exception_date = bcd.calendar_date)       AND bcd.calendar_date >= l_due_date       AND bcd.calendar_date < l_due_date + 15       AND to_char(bcd.calendar_date, 'D') NOT IN ('1', '7');      dbms_output.put_line(to_char(l_fix_due_date, 'YYYY-MM-DD'));    RETURN l_fix_due_date;    EXCEPTION    WHEN no_data_found THEN      dbms_output.put_line(l_moudle || ' can not found!');      cux_avic_conc_utl.log_msg(l_moudle || ' can not found!');      RAISE fnd_api.g_exc_error;    WHEN too_many_rows THEN      dbms_output.put_line(l_moudle || ' too many rows');      cux_avic_conc_utl.log_msg(l_moudle || ' too many rows');      RAISE fnd_api.g_exc_error;    WHEN OTHERS THEN      dbms_output.put_line(l_moudle || 'unexception error occured!');      cux_avic_conc_utl.log_msg(l_moudle || 'unexception error occured!');      RAISE fnd_api.g_exc_error;  END;

 

转载于:https://www.cnblogs.com/carlo/archive/2012/12/26/2833476.html

你可能感兴趣的文章
BNUOJ 3278 Candies
查看>>
POJ 1251 Jungle Roads
查看>>
POJ 3680 Intervals
查看>>
TypeScript设计模式之工厂
查看>>
JS相关基础
查看>>
常用的网站链接
查看>>
算法复习——后缀自动机
查看>>
高并发大流量专题---2、流量优化(防盗链处理)
查看>>
html5--select与HTML5新增的datalist元素
查看>>
js原型与继承
查看>>
Centos7.2 安装配置 Tengine(nginx)
查看>>
前后端接口沟通小结
查看>>
mui jquery 同时使用
查看>>
[转载]C#堆栈讲解
查看>>
工作室项目之好友列表展示
查看>>
层次分析法(Analytic Hierarchy Process,AHP)
查看>>
你自己觉得行,你就一定行
查看>>
supervisor 入门
查看>>
第二次作业——小学生四则运算
查看>>
CentOS 7安装PHP依赖管理Composer以及指定PHP版本使用Composer
查看>>