零售加postopen事件 ,打开窗口 弹出来近效期商品
String ls_dyc010,ls_days
String ls_sql[],ls_err
str_exec_args lstr_args[]
Long ll_busno
Long ll_number
ll_busno = Long(gnvo_app.of_getini("posset","busno","0"))
ls_dyc010 = String(gf_get_sys_inicode(gl_compid,'DYC010', gl_userid))
ls_days = String(gf_get_sys_inicode(gl_compid,'DYC011', gl_userid))
If ls_dyc010 = '1' Then
ls_sql[1] = "select count(distinct A.wareid) from t_store_d A "+&
"left join t_store_i B on A.wareid=B.wareid and A.batid=B.batid "+&
"where A.compid="+String(gl_compid)+" and (A.wareqty - A.awaitqty)>0 and "+&
"A.busno="+String(ll_busno)+" and B.invalidate <= trunc(sysdate+"+ls_days+")"
lstr_args[1].DataType = {"number"}
If Not gnvo_datasource.of_exec(ls_sql,lstr_args,ls_err) Then
MessageBox("查询近效期商品种类数量失败,请联系管理员!",ls_err,stopsign!,ok!,1)
Return
End If
ll_number = lstr_args[1].ReturnValue[1]
if ll_number > 0 then
MessageBox("提示","有"+String(ll_number)+"种效期临近的商品,请检查并及时销售!")
end if
End If
生成近效期品种的报损单
CREATE OR REPLACE PROCEDURE CPROC_报损近效期商品(p_compid IN NUMBER,
p_busno IN NUMBER,
p_user IN NUMBER) AS
v_billno VARCHAR2(100);
v_dyc012 VARCHAR2(1);
v_dyc013 NUMBER(6);
BEGIN
v_dyc012 := f_get_sys_inicode(p_compid,'DYC012',NULL);
v_dyc013 := f_get_sys_inicode(p_compid,'DYC013',NULL);
-- 判断v_dyc012是否为'0',如果是则直接退出过程
IF v_dyc012 = '0' THEN
RETURN; -- 直接返回,结束存储过程
ELSE
-- 生成新的单号
v_billno := f_get_serial('ABN', p_compid);
-- 插入数据到t_abnormity_h表
INSERT INTO t_abnormity_h
(abnormityno, compid, busno, lastmodify, lasttime, status, checkbit1, checkbit2, checkbit3, checkbit4, checkbit5, ownerid, billcode, createuser, createtime, account_date, abnormity_type, notes, wms_flag)
VALUES
(v_billno, p_compid, p_busno, p_user, SYSDATE, 0, 0, 0, 0, 0, 0, '01', 'ABN', p_user, SYSDATE, SYSDATE, '3', TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') || '近效期自动产生报损单', 0);
-- 插入数据到t_abnormity_d表
INSERT INTO t_abnormity_d
(abnormityno, rowno, wareid, batid, stallno, wareqtya, wareqtyb, makeno, makedate, invalidate, vencusno, paytype, cashtype, buyer, purprice, purtax, saletax, saleprice, factoryid, reason, abntype, todestroy, subitemid)
SELECT v_billno, ROW_NUMBER() OVER (ORDER BY d.wareid), d.wareid, d.batid, d.stallno, 0, (d.wareqty - d.awaitqty - d.pendingqty) AS qty, i.makeno, i.makedate, i.invalidate, i.vencusno, i.paytype, i.cashtype, i.buyer, NVL(i.purprice,0), i.purtax, i.saletax, NVL(tws.saleprice,0), i.factoryid, '33', '006', '02', i.subitemid
FROM t_store_d d
LEFT JOIN t_store_i i ON d.wareid = i.wareid AND d.batid = i.batid
LEFT JOIN t_stall v_stall ON d.compid = v_stall.compid AND d.stallno = v_stall.stallno
INNER JOIN s_busi sb ON sb.compid = d.compid AND sb.busno = d.busno
LEFT JOIN t_ware_saleprice tws ON d.compid = tws.compid AND d.wareid = tws.wareid AND sb.salegroupid = tws.salegroupid
WHERE (d.wareqty - d.awaitqty - d.pendingqty) > 0
AND d.busno = p_busno
AND v_stall.Stalltype = 11
AND i.INVALIDATE <= SYSDATE + NVL(v_dyc013, 0);
-- 删除没有关联明细记录的异常主记录
DELETE FROM t_abnormity_h
WHERE NOT EXISTS (SELECT 1 FROM t_abnormity_d d WHERE d.abnormityno = t_abnormity_h.abnormityno);
END IF;
END;
项目切换前期销量自动计算导入
---插入老系统的销量 只需要如下几个数据
CREATE OR REPLACE VIEW CV_SALE_H1X AS
SELECT BUSNO,ACCDATE,WAREQTY,WAREID,compid
FROM t_rpt_sale
UNION ALL
SELECT to_number(a.busno) as busno ,a.accdate,a.wareqty,to_number(a.wareid) as wareid,2 as compid
FROM u_sale_c2 a
更新p_store_limit_busno 的存储过程,可使用替换存储过程
将p_store_limit_busno替换为cp_store_limit_busno
将 t_rpt_sale 替换为上面的视图 CV_SALE_H1X即可