graph TD
Start((开始)) --> A[输入发货登记信息]
A --> B{检查单号是否为空}
B -->|是| C[提示:单号不能为空]
C --> A
B -->|否| D{检查日期是否有效}
D -->|是| E{检查客户名称是否为空}
D -->|否| F[提示:日期无效]
F --> A
E -->|是| G[提示:客户名称不能为空]
G --> A
E -->|否| H{检查客户地址是否为空}
H -->|是| I[提示:客户地址不能为空]
I --> A
H -->|否| J{检查产品名称与编号是否匹配}
J -->|是| K{检查库存数量是否充足}
J -->|否| L[提示:产品名称与编号不匹配]
L --> A
K -->|是| M{发货数量是否大于0}
K -->|否| N[提示:库存不足]
N --> A
M -->|是| O{发货数量是否超过库存数量}
M -->|否| P[提示:发货数量必须大于0]
P --> A
O -->|是| Q[提示:发货数量不能超过库存数量]
Q --> A
O -->|否| R{单价是否合法}
R -->|是| S[保存发货登记记录]
R -->|否| T[提示:单价必须大于0]
T --> A
S --> End((结束))