# 接送服務新增 api ###### tags: `接送服務` * 前端 - [x] ci_ser 若是從住客畫面開啟的話,自動帶入且不可修改, - [x] 從多筆開啟新增畫面,需要先選ci_ser,才可修改 - [x] 將旅客帳狀態房號、訂房卡號、入住日期、退房日期預設帶入,唯讀不可修改 - [x] 若傳入參數有資料序號,則多筆資料移至該資料序號,並編輯指定資料 - [x] schedule_dat帶預設值(送 為co_dat)(接 判斷住客狀態 已入住預設為滾房租日,未入住為ci_dat) - [x] atten_nam、tel1_nos、adult_qnt、child_qnt,需從訂房卡上帶預設值 - [x] appraise_amt,需>0,預設0 - [x] ci_ser、schedule_dat、schedule_tim 、pickup_typ 必填 - [x] schedule_dat,要在ci_dat 跟 co_dat之間,且需大於等於滾房租日期 - [x] appraise_ins(是否自動入帳)、appraise_amt(費用),要判斷訂房明細狀態為N,才可勾選及輸入。 - [x] 選擇班次依照 接/送,分別去HFD_ARRIVE_RF(接)/HFD_LEAVE_RF(送),抓資料呈現 - [x] 選擇班次時,若選擇的班次為自動入帳,要判斷是否能自動入帳(訂房明細狀態為N),才可預設勾選 如果不為入帳日期,則不可勾選。 接 不可再退房日期、送 不可再入住日期(此二情況下不可勾選) - [x] schedule_nos,可以開啟視窗,或是 enter 自動帶入(如果有背起來),帶入班次、時間、地點、是否自動入帳,enter 若無該筆資料,則清空欄位 - [x] 若為服務為(接),則判斷schedule_dat 是否在co_dat,在co_dat則不可勾選自動入帳 - [x] 若ci_dat跟co_dat一樣(day_use),則服務為(接),可以勾選自動入帳,服務為(送)不可 - [x] 若服務為(送),則判斷schedule_dat 是否在ci_dat,在ci_dat則不可勾選自動入帳 - [x] 更改日期後 schedule_dat,判斷有無該班次,有則保留,無則清空 - [x] 更改 pickup_type 後自動帶入日期,且清空 schedule_nos schedule_tim spot - [x] 在新增時,若後來有再更改ci_ser(住客)時,上述有相關的判斷需要再做一次(注意有lock) - [x] 指定住客會,lock 該筆住客。 - [x] 畫面上方的grid,利用ci_ser抓取資料,若有資料則呈現 - [ ] 儲存時,當appraise_ins(是否自動入帳)有勾選,若是開啟畫面是從訂房卡開啟的畫面,不用再lock order_mn,否則lock order_mn 做在儲存的時候,如果 自動入帳欄位,有異動,或是其值為Y,都要 lock order_dt。 - [x] 在新增畫面上按批次新增,一定要先存檔。 - [x] 批次新增欄位規則 開始日結束日 自己新增規則 1.開啟畫面後,帶入預設值為 schedule_dat +一天(但不能大於 co_dat),且開始介於 schedule_dat 與co_dat之間 2.結束日,不可大於開始日期。 - [ ] 以下任一條件成立則不可執行新增、批次新增 1. 訂房卡明細狀態不為N:正常、I:今日到達、O:已到或C:退房(C有額外處理) 2. 訂房卡明細狀態為C:退房,且退房日小於滾房租日co_dat < rent_dat - [ ] 訂房卡明細狀態為C:退房,且為退房日當天作業(退房日等於滾房租日),可執行新增、批次新增 - [x] 新增api若成功後端會回傳key_nos,利用key_nos重load,讓上方的grid可以被選取 - [x] 若從訂房明細住客tabpage 開啟,需要多待 pageFrom & tmpOrderAppraise_key_nos 兩個參數。 * 後端 - [x] 檢查pickup_typ,只能為A跟L - [x] appraise_amt,需>0 - [x] schedule_dat,要在ci_dat 跟 co_dat之間,且需大於等於滾房租日期 - [x] appraise_ins(是否自動入帳)、appraise_amt(費用),旅客帳為入住時且要判斷訂房明細狀態為N,才可輸入 - [x] 檢查 ci_ser 是否存在 - [x] 以下任一條件成立則不可執行新增、批次新增 1. 訂房卡明細狀態不為N:正常、I:今日到達、O:已到或C:退房(C有額外處理) 2. 訂房卡明細狀態為C:退房,且退房日小於滾房租日co_dat < rent_dat - [x] 訂房卡明細狀態為C:退房,且為退房日當天作業(退房日等於滾房租日),可執行新增、批次新增 - [x] 若為服務為(接),則判斷schedule_dat 是否在co_dat,在co_dat則不可勾選自動入帳 - [x] 若ci_dat跟co_dat一樣(day_use),則服務為(接),可以勾選自動入帳,服務為(送)不可勾選 - [x] 若為服務為(送),則判斷schedule_dat 是否在ci_dat,在ci_dat則不可勾選自動入帳 - [x] 入資料進pickup_typ - [x] 回傳前端key_nos - [x] 若有勾選 自動入帳,更新相對應的service_tr - [ ] 若從訂房明細住客tabpage,要拿pageFrom & tmpOrderAppraise_key_nos 兩個參數。抓 tmpOrderAppraise 該筆資料,並重算房價。 ```json= { "prg_id" : "PMS0210081", "socket_id" : "p6m5HF8u85NACf-0AAAO", "athena_id" : 25, "ins_usr" : "cio", "session_id" : 36729501, "func_id" : "0200", "params" : {}, "locale" : "zh_TW", "trans_log_id" : "20200227185833585", "mac" : "", "comp_cod" : "ZZATHENA", "hotel_cod" : "01", "server_ip" : "", "reve_code" : "PMS0210081", "client_ip" : "", "upd_usr" : "cio", "user" : "cio", "table" : { "hfd_pickup_dt" : [ { "pageFrom" : "PMS0110041",//只有訂房明細要傳 "tmpOrderAppraise_key_nos" : 1234,//只有訂房明細要傳 "action_cod" : "C", "athena_id" : "25", "hotel_cod" : "01", "ikey" : "00000557", "ikey_seq_nos" : "1", "ci_ser" : "20191104000153", "pickup_typ" : "L", "schedule_dat" : "2019/11/04", "schedule_nos" : "HUN", "schedule_tim" : "1722", "spot" : "天空競技場", "atten_nam" : "小傑", "tel1_nos" : "0911222333", "adult_qnt" : "1", "child_qnt" : "0", "appraise_ins" : "N", "appraise_amt" : "0", "remark1" : "愛的橡膠", "upd_usr" : "cio", "ins_usr" : "cio" } ] }, "event_time" : "2020-02-27T18:58:31+08:00" } ```