📄 demandreserve.asp
字号:
<%
'On Error Resume Next
'/*********************************************
'/帒椏惪媮嵟怴挔昜堦棗偺僥乕僽儖傾僋僙僗僋儔僗
'/*********************************************
Class DemandReserve
Dim l_db 'DBAccess DB傾僋僙僗梡
Dim l_rlm 'ReserveListMaster
Dim l_chutil 'CharUtil梡
Dim l_sysId '僔僗僥儉ID(String)
Dim l_coId '夛幮ID(String)
Dim l_total '崌寁嬥妟
Dim l_bundletime '掲傔帪娫
Dim l_kind '惪媮曽朄
Dim l_cmn
Dim l_demcmn
'/********************************************
'/* 弶婜張棟
'/********************************************
Public Function Init()
Dim l_dbinfo 'String
'DB僐僱僋僔儑儞庢摼
Set l_db = New DbAccess
Set l_cmn = New Common
Set l_chutil = New CharUtil
Set l_rlm = New ReserveListMaster
Call l_cmn.SearchSession
Call l_db.ProcConnection(DSN, USERID, PASSWD)
'僙僢僔儑儞傛傝儐乕僓乕忣曬庢摼
l_sysId = Session("User").Item("SYSTEM_ID") '僔僗僥儉ID
l_coId = Session("User").Item("COMPANY_ID") '夛幮ID
l_total = 0 '崌寁嬥妟
l_bundletime = Request.Cookies("Comp")("Time")
End Function
'/***********************************************************************************
'/* 嵼屔堷偒摉偰
'/* param丗l_kindflg 惪媮庬椶丂1丗昗弨丂2丗娙堈
'/* l_index 娙堈夋柺偺擖椡楍
'/* return丗寢壥攝楍(娙堈拲暥偱巊梡)丂l_listarray (0)丗寢壥僼儔僌
'/* ""丗堷摉OK
'/* "0"丗嵼屔側偟
'/* "1"丗擖壸懸偪OK
'/* "2"丗挔昜懚嵼偣偢
'/* (1)丗挔昜巬斣
'/* (2)丗挔昜柤
'/***********************************************************************************
Public Function ReserveStock(l_listcd,l_listeda,l_listmanage_no,l_quantity,l_kind)
Dim l_strSql
Dim l_rlm
Dim l_name
Dim l_kaniarray '娙堈偐傜偺擖椡抣
Dim l_paramdic '擖椡抣
Dim l_listrst 'RecordSet
Dim l_rsv 'RecordSet
Dim l_listdic
Dim l_detailDic '堷摉徻嵶忣曬Dictionary
Dim l_stcdic 'l_detailDic傪奿擺偡傞Dictionary
Dim l_count
Dim l_count2
Dim l_num
Dim l_reserve_num
Dim l_deli_place
Dim l_date '弌壸擔晅
Dim l_leavecount '儃乕僟乕
Dim l_leav
Dim l_decisionday '妋掕擔
Dim l_cancelday '庢徚壜擻擔
Dim l_logmes '儘僌儊僢僙乕僕
Dim l_conv_arr(3) '儘僌儊僢僙乕僕僼僅乕儅僢僩暥帤
'娙堈拲暥梡挔昜攝楍 (0)丗寢壥僼儔僌丂(1)丗挔昜巬斣丂(2)丗挔昜柤
Dim l_listarray(8)
Set l_demcmn = New DemandCommon
Set l_stcdic = CreateObject("Scripting.Dictionary")
Set l_paramdic = CreateObject("Scripting.Dictionary")
Set l_listdic = CreateObject("Scripting.Dictionary")
Set l_rlm = New ReserveListMaster
l_leav = l_demcmn.GetSectionKind(l_db,l_sysId,l_coId,Session("User").Item("SECTION_ID"))
'尰僶乕僕儑儞偲師僶乕僕儑儞偺嵼屔堷偒摉偰
For l_count2 = 1 to 2
Set l_listrst = l_rlm.ReserveSerchList(l_db,l_sysid,l_coid,l_kind,l_listmanage_no,l_listcd,l_listeda,l_leav)
'/挔昜偑懚嵼偟側偄応崌
If l_listrst.Eof Then
'尰僶乕僕儑儞偺応崌
If l_count2 = 1 Then
l_listarray(0) = "2"
ReserveStock = l_listarray
Exit Function
'/師僶乕僕儑儞偺専嶕偺応崌
ElseIf l_count2 = 2 And _
l_kind = CLM_METHOD_NOMAL Then
Response.Redirect "../demand/apology.asp?listcd=" & l_listdic.Item("list_cd") &_
"&listeda=" & l_listdic.Item("list_eda") &_
"&listname=" & l_chutil.StrEnDecode(l_listdic.Item("list_name"),4) &_
"&quantity=" & l_quantity &_
"&unitprice=" & l_listdic.Item("unit_price")
ElseIf l_count2 = 2 And _
l_kind = CLM_METHOD_KANI Then
l_listarray(3) = "4"
ReserveStock = l_listarray
Exit Function
End If
'/惪媮悢偑儃乕僟乕傪墇偊偰偄傞応崌
ElseIf l_listrst.Fields.Item("LEAV_DIRECTION") = "1" And _
l_listrst.Fields.Item("LEAV_DIRECTION_COUNT") <> "" Then
l_leavecount = l_listrst.Fields.Item("LEAV_DIRECTION_COUNT")
l_leavecount = CDbl(l_leavecount)
If CDbl(l_quantity) >= l_leavecount And _
l_leavecount >= 0 Then
l_listarray(0) = "3"
ReserveStock = l_listarray
Exit Function
End If
'/惪媮婜娫奜偺応崌
ElseIf l_listrst.Fields.Item("CLAIM_PERIOD_FLAG") <> "1" And _
IsNull(l_listrst.Fields.Item("CLAIM_PERIOD_START")) And _
IsNull(l_listrst.Fields.Item("CLAIM_PERIOD_END")) Then
l_listarray(0) = "2"
ReserveStock = l_listarray
Exit Function
ElseIf Not IsNull(l_listrst.Fields.Item("CLAIM_PERIOD_START")) And _
Not IsNull(l_listrst.Fields.Item("CLAIM_PERIOD_END")) Then
If l_listrst.Fields.Item("CLAIM_PERIOD_START") > Date Or _
l_listrst.Fields.Item("CLAIM_PERIOD_END") < Date Then
l_listarray(0) = "2"
ReserveStock = l_listarray
Exit Function
End If
End If
'Dictionary偺弶婜壔
l_listdic.RemoveAll
'/挔昜忣曬傪Dictionary偵捛壛
For l_count = 0 to l_listrst.Fields.Count - 1
l_listdic.add l_chutil.Asc_chk(l_listrst.Fields(l_count).Name,2),l_listrst.Fields(l_count).Value
Next
'娙堈拲暥梡偵巬斣傪僙僢僩
l_listeda = l_listdic.Item("list_eda")
'憅屔偛偲偵嵼屔傪尒傞
For l_count = 1 to 3
l_num = "NUM" & CStr(l_count)
l_reserve_num = "RESERVE_STOCK_NUM" & CStr(l_count)
l_deli_place = "DELIVERY_PLACE" & CStr(l_count)
'嵼屔悢偺嶼弌
Set l_rsv = l_rlm.GetWearStock(l_db,l_sysId,l_coId,l_listcd,l_listeda,l_quantity,l_num,l_reserve_num,l_deli_place)
'/嵼屔偑堷偒摉偰傜傟偨応崌
If Not l_rsv.Eof Then
'惪媮悢偑儃乕僟乕傪墇偊丄寈崘儊僢僙乕僕昞帵偺応崌
If l_listrst.Fields.Item("LEAV_DIRECTION") = "0" And _
Request.Form("warflg") = "" And _
l_listrst.Fields.Item("LEAV_DIRECTION_COUNT") <> "" Then
l_leavecount = l_listrst.Fields.Item("LEAV_DIRECTION_COUNT")
l_leavecount = CDbl(l_leavecount)
'儃乕僟乕挻偊丄捠忢惪媮
If CDbl(l_quantity) >= l_leavecount And _
l_kind = CLM_METHOD_NOMAL And _
l_leavecount >= 0 Then
Response.Redirect "../demand/warning.asp?listcd=" &_
l_listdic.Item("list_cd") &_
"&listeda=" & l_listdic.Item("list_eda") &_
"&listname=" & l_chutil.StrEnDecode(l_listdic.Item("list_name"),4) &_
"&quantity=" & l_quantity &_
"&unitprice=" & l_listdic.Item("unit_price") &_
"&listmanage=" & l_listdic.Item("list_manage_no")
'儃乕僟乕挻偊丄娙堈惪媮
ElseIf CDbl(l_quantity) >= l_leavecount And _
l_kind = CLM_METHOD_KANI And _
l_leavecount >= 0 Then
l_listarray(0) = "4"
l_listarray(1) = l_listdic.Item("list_eda")
l_listarray(2) = l_listdic.Item("list_name")
l_listarray(3) = l_listdic.Item("unit_price")
l_listarray(4) = CLM_METHOD_KANI
l_listarray(7) = l_listdic.Item("list_manage_no")
ReserveStock = l_listarray
Exit Function
End If
End If
'庢傝徚偟壜擻擔
l_cancelday = l_cmn.GetCancelAbleDay(now,"1")
'妋掕擔庢摼
l_decisionday = l_cmn.GetDecisionDay(l_cancelday,1)
'敪憲梊掕擔
l_date = l_cmn.GetShipmentDay(l_db,l_rsv.Fields.Item("DELIVERY_PLACE"),l_decisionday,"1")
Call l_rlm.UpDateStock(l_db,l_sysId,l_coId,l_reserve_num,l_rsv.Fields.Item("RESERVE_COUNT"),l_listcd,l_listeda)
Set l_detailDic = SetOrderData(l_rsv,l_listdic,l_num,l_reserve_num,l_kind,l_quantity,l_date,l_cancelday,l_decisionday)
'儘僌儊僢僙乕僕嶌惉
l_conv_arr(0) = l_detailDic.Item("company_name")
l_conv_arr(1) = l_listdic.Item("list_cd")
l_conv_arr(2) = l_listdic.Item("list_eda")
l_conv_arr(3) = l_quantity
l_logmes = l_cmn.GetLogMessage(DEMAND_BASKET_LOG,l_conv_arr)
'儘僌偺弌椡
Call l_cmn.OutputLogFile(l_logmes)
l_count = 0
'婛偵僇僑偺拞偵擖偭偰偄傞応崌
If IsObject(Session("StockDic")) Then
Set l_stcdic = Session("StockDic")
l_stcdic.add CStr(l_stcdic.Count+1),l_detailDic
Set Session("StockDic") = l_stcdic
Else
l_stcdic.add CStr(l_count),l_detailDic
Set Session("StockDic") = l_stcdic
End If
l_listarray(1) = l_listdic.Item("list_eda")
l_listarray(2) = l_listdic.Item("list_name")
l_listarray(3) = l_listdic.Item("unit_price")
l_listarray(4) = CLM_METHOD_KANI
l_listarray(0) = ""
ReserveStock = l_listarray
'Exit For
Exit Function
'/慡偰偺憅屔傪傒偰嵼屔偑堷偒摉偰傜傟偢丄捠忢惪媮偺応崌
ElseIf l_count = 3 And l_kind = CLM_METHOD_NOMAL Then
If l_listdic.Item("arrival_wait") = "1" Then
Response.Redirect "../demand/apology.asp?wait=1&listcd=" &_
l_listdic.Item("list_cd") &_
"&listeda=" & l_listdic.Item("list_eda") &_
"&listname=" & l_chutil.StrEnDecode(l_listdic.Item("list_name"),4) &_
"&quantity=" & l_quantity &_
"&unitprice=" & l_listdic.Item("unit_price") &_
"&unit=" & l_chutil.StrEnDecode(l_listdic.Item("list_unit"),4) &_
"&packingcount=" & l_listdic.Item("packing_count") &_
"&listmanage=" & l_listdic.Item("list_manage_no")
ElseIf l_count2 = 2 Then
Response.Redirect "../demand/apology.asp?listcd=" & l_listdic.Item("list_cd") &_
"&listeda=" & l_listdic.Item("list_eda") &_
"&listname=" & l_chutil.StrEnDecode(l_listdic.Item("list_name"),4) &_
"&quantity=" & l_quantity &_
"&unitprice=" & l_listdic.Item("unit_price") &_
"&listmanage=" & l_listdic.Item("list_manage_no")
End If
'/慡偰偺憅屔傪傒偰嵼屔偑堷偒摉偰傜傟偢丄娙堈惪媮偺応崌
ElseIf l_count = 3 And l_kind = CLM_METHOD_KANI Then
l_listarray(1) = l_listdic.Item("list_eda")
l_listarray(2) = l_listdic.Item("list_name")
l_listarray(3) = l_listdic.Item("unit_price")
l_listarray(4) = CLM_METHOD_KANI
l_listarray(5) = l_listdic.Item("list_unit")
l_listarray(6) = l_listdic.Item("packing_count")
l_listarray(7) = l_listdic.Item("list_manage_no")
If l_listdic.Item("arrival_wait") = "1" Then
l_listarray(0) = "1"
ReserveStock = l_listarray
Exit Function
ElseIf l_count2 = 2 Then
l_listarray(0) = "0"
ReserveStock = l_listarray
Exit Function
End If
End If
Next
l_listeda = CInt(l_listeda) + 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -