深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 745|回复: 4
打印 上一主题 下一主题

WHS电子仓FIFO先进先出逻辑变更为SP

[复制链接]

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
跳转到指定楼层
楼主
发表于 2019-5-4 13:52:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
WHS电子仓FIFO先进先出逻辑变更为SP

  1. '于2019-05-04取消该函数,改为CHECK_FIFO_WHS_OUT_SP用SP来检查逻辑
  2. Public Function CHECK_FIFO_WHS_OUT(in_trsn As String) As Boolean

  3. Dim strsql As String
  4. Dim strkp As String
  5. Dim i, j As Integer
  6. Dim rs As ADODB.Recordset
  7. Dim rs1 As ADODB.Recordset
  8. Dim in_trsn_bak As String

  9. On Error GoTo check_Error
  10. strtrsn = ""

  11. '备份原始TR_SN﹐便于下面还原
  12. in_trsn_bak = in_trsn
  13. '根据TR_SN找到料号
  14. strsql = "SELECT TR_SN,CUST_KP_NO FROM smt.r_tr_sn WHERE TR_SN='" & in_trsn & "' "
  15. Set rs = Adocn.Execute(strsql)
  16. '找到料号赋值
  17. If Not rs.EOF Then
  18.     strkp = rs.Fields("CUST_KP_NO")
  19. Else
  20.     CHECK_FIFO_WHS_OUT = False
  21. End If
  22. '根据料号﹐查找此料号所有在WHS的序号﹐并按日期从小到大排序
  23. strsql = "SELECT SUBSTR (tr_sn, 2, 6) AS trno, cust_kp_no, tr_sn " & _
  24.          "From smt.r_tr_sn " & _
  25.          "WHERE cust_kp_no = '" & strkp & "' and location_flag='0' and work_flag=0 " & _
  26.          "ORDER BY TO_NUMBER(trno)"
  27. Set rs = Adocn.Execute(strsql)
  28. '将此料号在WHS中最旧料盘日期与目前将要发出的料盘进行对比
  29. If rs.EOF Then
  30.     CHECK_FIFO_WHS_OUT = True
  31. Else
  32.     '判断是否分盘记录﹐有则按原始条码日期为主
  33.     strsql = "select * from smt.r_tr_sn_adjust where sub_tr_sn='" & in_trsn & "'"
  34.     Set rs1 = Adocn.Execute(strsql)
  35.     If rs1.EOF = True Then
  36.         '没有分盘记录
  37.     Else
  38.         '有分盘记录﹐则找出原序号
  39.         in_trsn = rs1.Fields("tr_sn")
  40.     End If
  41.    
  42.     If rs!trno <> Mid(Trim(in_trsn), 2, 6) And rs!trno < Mid(Trim(in_trsn), 2, 6) Then
  43.        '发现库存中的料盘日期比目前先﹐则应该先发库存中的旧料﹔不符合FIFO
  44.         CHECK_FIFO_WHS_OUT = False
  45.         '找出旧的TR_SN
  46.         Do While Not rs.EOF
  47.             If rs!trno <> Mid(Trim(in_trsn), 2, 6) And rs!trno < Mid(Trim(in_trsn), 2, 6) Then
  48.                strtrsn = strtrsn + "'" + rs!tr_sn + "',"
  49.             End If
  50.             rs.MoveNext
  51.         Loop
  52. '        strtrsn = Left(strtrsn, Len(strtrsn) - 2)
  53.         strtrsn = Mid(strtrsn, 2, Len(strtrsn) - 3)
  54.     Else
  55.         CHECK_FIFO_WHS_OUT = True
  56.     End If
  57.     '还原序号﹐当有分盘记录时会变更﹐因此需要还原
  58.     in_trsn = in_trsn_bak
  59.    
  60. End If
  61.          
  62. Exit Function
  63. check_Error:

  64.     MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure CHECK_FIFO_WHS_OUT "

  65. End Function
复制代码
回复

使用道具 举报

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
沙发
 楼主| 发表于 2019-5-4 14:49:42 | 只看该作者
SP为:SMT.WHS_CHECK_FIFO

回复 支持 反对

使用道具 举报

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
板凳
 楼主| 发表于 2019-5-4 15:03:24 | 只看该作者
工厂WHS的FIFO分两种: 1是按DC,2是按收料入库的时间,注意区分客户工厂采用的哪种模式!
回复 支持 反对

使用道具 举报

3

主题

4

帖子

28

积分

版主

Rank: 7Rank: 7Rank: 7

积分
28
地板
发表于 2019-5-4 15:04:29 | 只看该作者
需确认用户的先进先出管控时间点类型
时间点类型分为
1.收料时间
2.入库时间
3.制造商D/C,L/C
4.IQC检验完成时间
依不同客户类型定义
回复 支持 反对

使用道具 举报

228

主题

466

帖子

2184

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2184
5#
发表于 2019-5-8 21:50:08 | 只看该作者
那如果是用PDA扫Check_out时呢?

控制SP: smt.APP_WHS_CHECKOUT
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 02:13 , Processed in 0.029771 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表