商品信息增加调售价按钮

客户化解决方案

D8AC3D06-4AD4-47D8-9413-45131C4E9B7B 商品信息增加调售价单按钮

涉及改动

P64 商品信息专用窗体按钮方案 减少一些可视按钮 此按钮是否可视 设为0

增加postopen事件,将 相近品种 和 药易采 按钮隐藏了(49方案可以直接关掉的)

p49#cb_1.visible=false
p50#cb_1.visible=false

不然按钮太多了 分辨率太低的屏幕显示不出来全部按钮

Pasted-image-20250605134046-1-1.png

按钮方案 代码

Dec ld_saleprice
Long ll_row
String ls_out[], ls_warecode, ls_sql[],ls_err
Int li_re
str_DBParam lstr_dbp[]

ll_row = dw_master.GetRow()
If ll_row <= 0 Then
  MessageBox("提示", "请选中商品再操作!")
  Return -1
End If
ls_warecode = dw_master.GetItemString(ll_row, 'warecode')
li_re = gf_get_input({"请输入商品售价"}, {""}, {"number"}, Ref ls_out[])
If li_re <> 1 Then Return 0
ld_saleprice = Dec(ls_out[1])
If ld_saleprice = 0 Then Return 0

ls_sql[1] = "BEGIN " + '~r~n' + &
    "INSERT INTO tmp_disable_trigger (table_name) VALUES ('t_ware');" + '~r~n' + &
    "update t_ware set lastsaleprice = " +String(ld_saleprice)+ " Where compid = " + String(gl_compid) + " and warecode = '" + ls_warecode + "';" + '~r~n' + &
    "DELETE FROM tmp_disable_trigger WHERE table_name = 't_ware';" + '~r~n' + &
    "END;"

If Not gnvo_datasource.of_exec(ls_sql, ls_err) Then
        MessageBox("更新售价失败!", ls_err, stopsign!, ok!, 1)
        Return -1
End If

lstr_dbp[1].Item[1].pname = 'p_warecode'
lstr_dbp[1].Item[1].pvalue = ls_warecode
lstr_dbp[1].Item[2].pname = 'p_compid'
lstr_dbp[1].Item[2].pvalue = gl_compid
lstr_dbp[1].Item[3].pname = 'p_createuser'
lstr_dbp[1].Item[3].pvalue = gl_userid
lstr_dbp[1].Item[4].pname = 'p_saleprice'
lstr_dbp[1].Item[4].pvalue = ld_saleprice
If Not gnvo_datasource.of_execproc({'cproc_商品更新售价到调售价单'} ,Ref lstr_dbp,Ref ls_err) Then
   // p_warecode IN NUMBER,
   // p_compid IN NUMBER,
   // p_createuser IN NUMBER,
   // p_saleprice IN NUMBER
  gf_wait_end()
  MessageBox('错误',"更新售价失败,请检查 'cproc_商品更新售价到调售价单' ~r~n"+ls_err,stopsign!,ok!,1)
  Return 0
End If

MessageBox("提示","商品: " + ls_warecode+" 更新售价成功!" )
dw_master.SetItem(ll_row, 'lastsaleprice',Dec(ls_out[1]))
dw_master.ResetUpdate()
Return 0

存储过程 cproc_商品更新售价到调售价单 的代码

CREATE OR REPLACE PROCEDURE cproc_商品更新售价到调售价单(
    p_warecode IN NUMBER,
    p_compid IN NUMBER,
    p_createuser IN NUMBER,
    p_saleprice IN NUMBER
)
AS
    v_adjustno VARCHAR2(50);
    v_wareid NUMBER;
    v_purtax NUMBER;
BEGIN
    v_adjustno := f_get_serial('ADJ','1');

    BEGIN
        SELECT wareid, purtax
        INTO v_wareid, v_purtax
        FROM t_ware
        WHERE warecode = p_warecode
        AND compid = p_compid;
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            RAISE_APPLICATION_ERROR(-20001, '错误:商品编码['||p_warecode||']在公司['||p_compid||']中不存在!');
    END;

    IF v_wareid IS NULL THEN
        RAISE_APPLICATION_ERROR(-20002, '错误:获取商品内码失败,无法更新售价!');
    END IF;

    IF v_purtax IS NULL THEN
        RAISE_APPLICATION_ERROR(-20003, '错误:商品['||p_warecode||']的进项税率为空,无法更新售价!');
    END IF;

    IF p_saleprice = 0  THEN
        RAISE_APPLICATION_ERROR(-20004, '错误:无法更新售价为 0 !');
    END IF;

    INSERT INTO t_adjust_saleprice_h
      (compid, adjustno, adjusttime, proposer, status,
       checkbit1, checkbit2, checkbit3, checkbit4, checkbit5,
       createuser, createtime, busno, lastmodify, lasttime, account_date, notes)
    VALUES
      (p_compid, v_adjustno, sysdate, p_createuser, 0,
       0, 0, 0, 0, 0,
       p_createuser, sysdate, 1001, p_createuser, sysdate, trunc(sysdate),
       '账号 '||p_createuser||' 在[商品信息]调整售价自动生成');
    INSERT INTO t_adjust_saleprice_d
      (adjustno, salegroupid, wareid, maxsaleprice, salepriceb,
       salepricea, minpriceb, minpricea, mempriceb, mempricea,
       purprice, saletax, rowno, memminpriceb, memminpricea,
       memprice2, memminprice2, memprice3, memminprice3, memprice4,
       memminprice4, memprice5, memminprice5, memprice6, memminprice6,
       memprice7, memminprice7, memcardflag, compid, salegroupids,
       salegroupnames, minsalepriceb)
    SELECT
      v_adjustno, 8888, v_wareid, 0, NVL(saleprice,0), p_saleprice,
      0, 0, NVL(memprice,0), NVL(memprice,0), NVL(lastpurprice,0), NVL(v_purtax,0),
      ROWNUM, 0, 0, 0, 0,
      0, 0, 0, 0, 0,
      0, 0, 0, 0, 0,
      1, p_compid, '全部', '全部', 0
    FROM t_ware_saleprice
    WHERE wareid = v_wareid AND salegroupid = 1;

    UPDATE t_adjust_saleprice_h 
    SET checkbit1 = 1,
        checker1 = p_createuser,
        status = 1,
        execdate = sysdate 
    WHERE adjustno = v_adjustno;

    COMMIT;
EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
        RAISE; 
END cproc_商品更新售价到调售价单;

V2.0 增加调会员价

客户化解决方案

EBB1D794-D0F5-4B78-B7D0-0B6B334E6C24 商品信息增加调价格按钮

代码调整

按钮代码

Dec ld_saleprice,ld_memprice
Long ll_row
String ls_out[], ls_warecode, ls_sql[],ls_err
Int li_re
str_DBParam lstr_dbp[]

ll_row = dw_master.GetRow()
If ll_row <= 0 Then
    MessageBox("提示", "请选中商品再操作!")
    Return -1
End If
ls_warecode = dw_master.GetItemString(ll_row, 'warecode')
li_re = gf_get_input({"请输入售价","请输入会员价"}, {"",""},{"number","number"}, Ref ls_out[])
If li_re <> 1 Then Return 0
ld_saleprice = Dec(ls_out[1])
ld_memprice = Dec(ls_out[2])

If IsNull(ld_saleprice) Then ld_saleprice = 0

If IsNull(ld_memprice) Then ld_memprice = 0

If ld_saleprice = 0 And ld_memprice = 0 Then Return 0

ls_sql[1] = "BEGIN " + '~r~n' + &
    "INSERT INTO tmp_disable_trigger (table_name) VALUES ('t_ware');" + '~r~n' + &
    "update t_ware set lastsaleprice = " +String(ld_saleprice)+ ",lastmemprice = " +String(ld_memprice)+ " Where compid = " + String(gl_compid) + " and warecode = '" + ls_warecode + "';" + '~r~n' + &
    "DELETE FROM tmp_disable_trigger WHERE table_name = 't_ware';" + '~r~n' + &
    "END;"

If Not gnvo_datasource.of_exec(ls_sql, ls_err) Then
    MessageBox("更新价格失败!", ls_err, stopsign!, ok!, 1)
    Return -1
End If

lstr_dbp[1].Item[1].pname = 'p_warecode'
lstr_dbp[1].Item[1].pvalue = ls_warecode
lstr_dbp[1].Item[2].pname = 'p_compid'
lstr_dbp[1].Item[2].pvalue = gl_compid
lstr_dbp[1].Item[3].pname = 'p_createuser'
lstr_dbp[1].Item[3].pvalue = gl_userid
lstr_dbp[1].Item[4].pname = 'p_saleprice'
lstr_dbp[1].Item[4].pvalue = ld_saleprice
lstr_dbp[1].Item[5].pname = 'p_memprice'
lstr_dbp[1].Item[5].pvalue = ld_memprice
If Not gnvo_datasource.of_execproc({'cproc_商品更新价格到调售价单'} ,Ref lstr_dbp,Ref ls_err) Then
    // p_warecode IN NUMBER,
    // p_compid IN NUMBER,
    // p_createuser IN NUMBER,
    // p_saleprice IN NUMBER,
    // p_memprice IN NUMBER
    gf_wait_end()
    MessageBox('错误',"更新售价失败,请检查 'cproc_商品更新价格到调售价单' ~r~n"+ls_err,stopsign!,ok!,1)
    Return 0
End If

MessageBox("提示","商品: " + ls_warecode+" 更新价格成功!" )
dw_master.SetItem(ll_row, 'lastsaleprice',Dec(ls_out[1]))
dw_master.SetItem(ll_row, 'lastmemprice',Dec(ls_out[1]))
dw_master.ResetUpdate()
Return 0

存储过程

CREATE OR REPLACE PROCEDURE cproc_商品更新价格到调售价单(
    p_warecode IN NUMBER,
    p_compid IN NUMBER,
    p_createuser IN NUMBER,
    p_saleprice IN NUMBER,
    p_memprice IN NUMBER
)
AS
    v_adjustno VARCHAR2(50);
    v_wareid NUMBER;
    v_purtax NUMBER;
    v_old_saleprice NUMBER;
    v_old_memprice NUMBER;
BEGIN
    -- 获取调价单号
    v_adjustno := f_get_serial('ADJ', '1');

    -- 获取商品信息
    BEGIN
        SELECT wareid, purtax
        INTO v_wareid, v_purtax
        FROM t_ware
        WHERE warecode = p_warecode
        AND compid = p_compid;
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            RAISE_APPLICATION_ERROR(-20001, '错误:商品编码[' || p_warecode || ']在公司[' || p_compid || ']中不存在!');
    END;

    -- 验证商品信息
    IF v_wareid IS NULL THEN
        RAISE_APPLICATION_ERROR(-20002, '错误:获取商品内码失败,无法更新售价!');
    END IF;

    IF v_purtax IS NULL THEN
        RAISE_APPLICATION_ERROR(-20003, '错误:商品[' || p_warecode || ']的进项税率为空,无法更新售价!');
    END IF;

    -- 获取原价格
    BEGIN
        SELECT saleprice, memprice
        INTO v_old_saleprice, v_old_memprice
        FROM t_ware_saleprice e
        WHERE e.wareid = v_wareid
        AND e.compid = p_compid
        AND e.salegroupid = 1;
    EXCEPTION
        WHEN NO_DATA_FOUND THEN
            NULL;
    END;

    -- 检查价格有效性
    IF p_saleprice < 0 OR p_memprice < 0 THEN 
        RAISE_APPLICATION_ERROR(-20002, '错误:商品售价或会员价无法更新为负数,请检查!');
    END IF;

    -- 根据不同价格组合情况处理
    -- 情况1: 销售价=0且会员价>0
    IF p_saleprice = 0 AND p_memprice > 0 THEN 
        -- 插入调价单头
        INSERT INTO t_adjust_saleprice_h (
            compid, adjustno, adjusttime, proposer, status,
            checkbit1, checkbit2, checkbit3, checkbit4, checkbit5,
            createuser, createtime, busno, lastmodify, lasttime, account_date, notes
        )
        VALUES (
            p_compid, v_adjustno, SYSDATE, p_createuser, 0,
            0, 0, 0, 0, 0,
            p_createuser, SYSDATE, 1001, p_createuser, SYSDATE, TRUNC(SYSDATE),
            '账号 ' || p_createuser || ' 在[商品信息]调整价格自动生成'
        );

        -- 插入调价单明细
        INSERT INTO t_adjust_saleprice_d (
            adjustno, salegroupid, wareid, maxsaleprice, salepriceb,
            salepricea, minpriceb, minpricea, mempriceb, mempricea,
            purprice, saletax, rowno, memminpriceb, memminpricea,
            memprice2, memminprice2, memprice3, memminprice3, memprice4,
            memminprice4, memprice5, memminprice5, memprice6, memminprice6,
            memprice7, memminprice7, memcardflag, compid, salegroupids,
            salegroupnames, minsalepriceb
        )
        SELECT
            v_adjustno, 8888, v_wareid, 0, NVL(v_old_saleprice, 0), NVL(saleprice, v_old_saleprice),
            0, 0, NVL(v_old_memprice, 0), NVL(p_memprice, v_old_memprice), NVL(lastpurprice, 0), NVL(v_purtax, 0),
            ROWNUM, 0, 0, 0, 0,
            0, 0, 0, 0, 0,
            0, 0, 0, 0, 0,
            1, p_compid, '全部', '全部', 0
        FROM t_ware_saleprice
        WHERE wareid = v_wareid AND salegroupid = 1;

    -- 情况2: 销售价>0且会员价=0
    ELSIF p_saleprice > 0 AND p_memprice = 0 THEN 
        -- 插入调价单头
        INSERT INTO t_adjust_saleprice_h (
            compid, adjustno, adjusttime, proposer, status,
            checkbit1, checkbit2, checkbit3, checkbit4, checkbit5,
            createuser, createtime, busno, lastmodify, lasttime, account_date, notes
        )
        VALUES (
            p_compid, v_adjustno, SYSDATE, p_createuser, 0,
            0, 0, 0, 0, 0,
            p_createuser, SYSDATE, 1001, p_createuser, SYSDATE, TRUNC(SYSDATE),
            '账号 ' || p_createuser || ' 在[商品信息]调整价格自动生成'
        );

        -- 插入调价单明细
        INSERT INTO t_adjust_saleprice_d (
            adjustno, salegroupid, wareid, maxsaleprice, salepriceb,
            salepricea, minpriceb, minpricea, mempriceb, mempricea,
            purprice, saletax, rowno, memminpriceb, memminpricea,
            memprice2, memminprice2, memprice3, memminprice3, memprice4,
            memminprice4, memprice5, memminprice5, memprice6, memminprice6,
            memprice7, memminprice7, memcardflag, compid, salegroupids,
            salegroupnames, minsalepriceb
        )
        SELECT
            v_adjustno, 8888, v_wareid, 0, NVL(v_old_saleprice, 0), NVL(p_saleprice, v_old_saleprice),
            0, 0, NVL(v_old_memprice, 0), NVL(memprice, v_old_memprice), NVL(lastpurprice, 0), NVL(v_purtax, 0),
            ROWNUM, 0, 0, 0, 0,
            0, 0, 0, 0, 0,
            0, 0, 0, 0, 0,
            1, p_compid, '全部', '全部', 0
        FROM t_ware_saleprice
        WHERE wareid = v_wareid AND salegroupid = 1;

    -- 情况3: 销售价>0且会员价>0
    ELSIF p_saleprice > 0 AND p_memprice > 0 THEN 
        -- 插入调价单头
        INSERT INTO t_adjust_saleprice_h (
            compid, adjustno, adjusttime, proposer, status,
            checkbit1, checkbit2, checkbit3, checkbit4, checkbit5,
            createuser, createtime, busno, lastmodify, lasttime, account_date, notes
        )
        VALUES (
            p_compid, v_adjustno, SYSDATE, p_createuser, 0,
            0, 0, 0, 0, 0,
            p_createuser, SYSDATE, 1001, p_createuser, SYSDATE, TRUNC(SYSDATE),
            '账号 ' || p_createuser || ' 在[商品信息]调整价格自动生成'
        );

        -- 插入调价单明细
        INSERT INTO t_adjust_saleprice_d (
            adjustno, salegroupid, wareid, maxsaleprice, salepriceb,
            salepricea, minpriceb, minpricea, mempriceb, mempricea,
            purprice, saletax, rowno, memminpriceb, memminpricea,
            memprice2, memminprice2, memprice3, memminprice3, memprice4,
            memminprice4, memprice5, memminprice5, memprice6, memminprice6,
            memprice7, memminprice7, memcardflag, compid, salegroupids,
            salegroupnames, minsalepriceb
        )
        SELECT
            v_adjustno, 8888, v_wareid, 0, NVL(v_old_saleprice, 0), NVL(p_saleprice, v_old_saleprice),
            0, 0, NVL(v_old_memprice, 0), NVL(p_memprice, v_old_memprice), NVL(lastpurprice, 0), NVL(v_purtax, 0),
            ROWNUM, 0, 0, 0, 0,
            0, 0, 0, 0, 0,
            0, 0, 0, 0, 0,
            1, p_compid, '全部', '全部', 0
        FROM t_ware_saleprice
        WHERE wareid = v_wareid AND salegroupid = 1;
    END IF;

    -- 更新调价单状态为已审核
    UPDATE t_adjust_saleprice_h 
    SET checkbit1 = 1,
        checker1 = p_createuser,
        status = 1,
        execdate = SYSDATE 
    WHERE adjustno = v_adjustno;

    COMMIT;
EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
        RAISE; 
END;

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇