求助_需求提出,关于订单引用,上级销售订单产品引用给下级采购订单,产品已经有了,切换不_产供销
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 5  1/1   1  
作者
内容
chenfuhua  [个人空间]


注册  2023-02-23
发贴数  7
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#1»发布于2026-09-13 00:03

需求提出,关于订单引用,上级销售订单产品引用给下级采购订单,产品已经有了,切换不同供应商,价格不会跟随改变,已经定义价格信息,但是要先选择供应商再选产品,价格才带出来,实际上我们是根据销售订单产品来决定需要采购的产品,而产品是在销售订单引用到采购订单时候,价格还是销售订单的价格,我们引用的采购单已经有产品了,再点供应商  ,价格却不会变,需要手动改,这导致引用功能没有大的实际用处

蓝色价格不会跟随不同供应商改变

        


summer  [个人空间]
QQ名  summer


注册  2009-09-08
发贴数  861
精华贴  9
原创贴  7
来自  
状态  正常

级别  会员
#2»发布于2026-09-13 08:37

引用规则里 引用价格 不选择。


        




官方认证第三方服务团队  夏延明 QQ:15932787 13776070373
服务介绍: http://www.onlyit.cn/user_home?user_id=10304

chenfuhua  [个人空间]


注册  2023-02-23
发贴数  7
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#3»发布于2026-09-13 10:34

你好,引用规则里 引用价格 不选择          我采购订单就没有价格,需要一个个填价格,我需要对应供应商采购价格,产品是先引用的,切换不同供应商,价格不引用,还是不会变,因为每个供应商价格不一样的


        


chenfuhua  [个人空间]


注册  2023-02-23
发贴数  7
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#4»发布于2026-09-13 10:39

相当于引用产品,就没有意义,下个流程订单产品是不用再选择产品,但是采购价格就要一个个重新填,因为现在版本是先选择供应商再选择产品,才会带出在这之前设置的供应商价格,而引用产品规则,是先有产品再选择某个供应商,先后顺序不一样,就不会有价格


        


chenfuhua  [个人空间]


注册  2023-02-23
发贴数  7
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#5»发布于2026-09-15 00:58

用这个脚本能实现 
 
int db_fix() 

  string res_id, sql; 
  num v_num, v_price, v_amount, v_sum; 
  int i, n; 
  if(v_voucher_id<=0) return 1; 
  db_run("select res_id, inp_num, inp_price from ebs_vr_item where voucher_id=" + v_voucher_id); 
  n = db_row_count(); 
  for(i=0; i<n; i++) 
  { 
    db_go_row(i); 
    res_id = db_res_ext('res_id'); 
    if(res_id=='') continue; 
    v_num = db_res_ext('inp_num'); 
    v_price = db_res_ext('inp_price'); 
    v_amount = num_dec_cut(v_num * v_price, 2); 
    sql = "update ebs_vr_item set inp_amount=" + v_amount; 
    sql = sql + ", total_amount=" + v_amount; 
    sql = sql + " where voucher_id=" + v_voucher_id + " and res_id='" + res_id + "'"; 
    db_run(sql); 
  }; 
  db_run("select sum(total_amount) as v_s from ebs_vr_item where voucher_id=" + v_voucher_id); 
  if(db_row_count()>0) 
  { 
    db_go_head(); 
    v_sum = db_res_ext('v_s'); 
    sql = "update ebs_vr set amount=" + v_sum; 
    sql = sql + ", discount_amount=" + v_sum; 
    sql = sql + " where voucher_id=" + v_voucher_id; 
    db_run(sql); 
    db_run("update ebs_vr set io_amount = discount_amount + pre_amount where voucher_id = " + v_voucher_id); 
  }; 
  return 1; 
}; 
int do_reprice() 

  string sup_id, res_id, sql, v_noprice_res; 
  num v_num, v_price, v_amount, v_sum; 
  int i, n, v_noprice; 
  sup_id = gui_get_val('ComboBox_Ext_Sup_Id'); 
  if(sup_id=='') return 0; 
  n = grid_row_num('MG_Item'); 
  v_sum = 0; 
  v_noprice = 0; 
  v_noprice_res = ''; 
  for(i=0; i<n; i++) 
  { 
    res_id = grid_get_v('MG_Item','res_id',i); 
    if(res_id=='') continue; 
    // 过滤无效行:商品编号必须在商品档案里真实存在 
    db_run("select res_id from res where res_id='"+res_id+"'"); 
    if(db_row_count()<=0) continue; 
    v_price = 0; 
    // 第1级:供应价格表(返回分,除100得元) 
    db_run("select price from sup_price_info where sup_id='"+sup_id+"' and res_id='"+res_id+"'"); 
    if(db_row_count()>0) 
    { 
      db_go_head(); 
      v_price = db_res_ext('price') / 100; 
    } 
    else 
    { 
      // 第2级:该供应商最近一次已审核采购订单的价格(返回分,除100得元) 
      sql = "select top 1 a.inp_price from ebs_vr_item a, ebs_v b, ebs_vr c "; 
      sql = sql + "where a.voucher_id=b.voucher_id and b.voucher_id=c.voucher_id "; 
      sql = sql + "and b.voucher_type='AA' and c.eba_id='" + sup_id + "' "; 
      sql = sql + "and a.res_id='" + res_id + "' and b.check_user_id<>'' "; 
      sql = sql + "order by b.check_date desc, b.voucher_id desc"; 
      db_run(sql); 
      if(db_row_count()>0) 
      { 
        db_go_head(); 
        v_price = db_res_ext('inp_price') / 100; 
      } 
      else 
      { 
        // 第3级:商品档案参考进价(返回分,除100得元) 
        db_run("select in_ref_price from res where res_id='"+res_id+"'"); 
        if(db_row_count()>0) 
        { 
          db_go_head(); 
          v_price = db_res_ext('in_ref_price') / 100; 
        }; 
      }; 
    }; 
    if(v_price>0) 
    { 
      v_price = num_dec_cut(v_price, 2); 
      grid_set_v('MG_Item','inp_price',i,v_price); 
      v_num = grid_get_v('MG_Item','inp_num',i); 
      v_amount = num_dec_cut(v_num * v_price, 2); 
      grid_set_v('MG_Item','inp_amount',i,v_amount); 
      grid_set_v('MG_Item','total_amount',i,v_amount); 
      v_sum = v_sum + v_amount; 
    } 
    else 
    { 
      // 该供应商没有价格记录:清空单价金额 
      grid_set_v('MG_Item','inp_price',i,0); 
      grid_set_v('MG_Item','inp_amount',i,0); 
      grid_set_v('MG_Item','total_amount',i,0); 
      v_noprice = v_noprice + 1; 
      v_noprice_res = v_noprice_res + ' 商品' + res_id + '(' + grid_get_v('MG_Item','res_name',i) + ')'; 
    }; 
  }; 
  grid_cal_sum('MG_Item'); 
  gui_set_val('Edit_Amount', num_dec_cut(v_sum, 2)); 
  if(v_noprice>0) 
  { 
    msg('有 ' + v_noprice + ' 个商品该供应商没有价格,已清空,请手动输入:' + v_noprice_res); 
  }; 
  return 1; 
}; 
int func_user_menu_1() 

  if(do_reprice()==0) 
  { 
    msg('请先在单据表头选择供应商'); 
    return 0; 
  };  msg('取价完成'); 
  return 1; 
}; 
int init_test() 

  return 1; 
}; 
int create_voucher() 

  v_show_user_menu(1,'按供应商取价'); 
  return 1; 
}; 
int func_show() 

  int n;//获取列数 
  n=grid_col_num("MG_Item"); 
  int i; 
  i=1 
  for(i=1;i<=n;i++) 
  { 
    string name; 
    name=grid_get_col_name("MG_Item",i); 
    //dbg(name); 
    grid_set_col_align_right('MG_Item',name); 
  } 
  return 1; 
}; 
int cell_change() 

  //change_col,change_col_id,change_row_id 
  return 1; 
}; 
int obj_change() 

  if(change_obj=="ComboBox_Ext_Sup_Id") 
  { 
    do_reprice(); 
  }; 
  return 1; 
}; 
int init_row() 

  return 1; 
}; 
int init_row_cal_sub() 

  return 1; 
}; 
int adjust_row() 

  return 1; 
}; 
int func_before_print() 

  return 1; 
}; 
int func_before_save() 

  string uid,b,d;   //定义string类型 uid  ,b,d; 
  int id,r_num;  //int   id 定义循环变量   r_num定义记录数 
  num r_res_id,v,n,hjzl; 
  //r_res_id定义单元内容  v定义产品数量  n定义产品重量  产品扩展定义一  hjzl合计重量 表格明细扩展一 
 
  r_num = grid_row_num('MG_Item');//获取记录数 
 
  for(id=1;id<=r_num;id++) 
  { 
    r_res_id=grid_get_v('MG_Item','res_id',id);//获取单元编号 表格的名称,列名,行 res_id(产品编号) 
    v=grid_get_v('MG_Item','inp_num',id);//当前行号产品数量 
 
    //当前行号产品单片用藤重量(提前在产品扩展一里导入单个产品重量) 
    n=grid_get_v('MG_Item','res_ext_2',id); 
 
    grid_set_col_align_right('MG_Item','res_ext_2'); 
 
    if(r_res_id=='') break; 
    hjzl=num_dec_cut(v*n/1, 1);//计算数量*单件重量 
 
    //单据明细属性扩展里新建一列-合计重量,给合计重量那列赋值 
    grid_set_v('MG_Item','vr_item_ext_2',id,hjzl); 
    grid_set_col_align_right('MG_Item','vr_item_ext_2'); 
    grid_mark_sum('MG_Item','vr_item_ext_2');//统计合计重量 
 
    //当前行号产品单片编工单价(提前在产品扩展一里导入单个产品重量) 
    n=grid_get_v('MG_Item','res_ext_1',id); 
 
    grid_set_col_align_right('MG_Item','res_ext_1'); 
 
    hjzl=num_dec_cut(v*n/1, 1);//计算数量*单件重量 
 
    //单据明细属性扩展里新建一列-合计编工单价,给合计合计编工单价那列赋值 
    grid_set_v('MG_Item','vr_item_ext_1',id,hjzl); 
    grid_set_col_align_right('MG_Item','vr_item_ext_1'); 
    grid_mark_sum('MG_Item','vr_item_ext_1');//统计合计重量 
  }; 
  if(v_voucher_id>0) 
  { 
    db_run("update ebs_vr set io_amount = discount_amount + pre_amount where voucher_id = " + v_voucher_id); 
  }; 
  return 1; 
}; 
int func_before_check() 

  return 1; 
}; 
int func_after_save() 

  db_fix(); 
  return 1; 
}; 
int func_after_check() 

  return 1; 
}; 
int func_after_print() 

  return 1; 
}; 
int func_before_oper() 

  //oper_type=save,check,check_r,finish,finish_r,delete,giveup,ask_check,ask_check_r,checked_update; 
  //can_oper=1; 
  return 1; 
}; 
int func_after_oper() 

  //oper_type=save,check,check_r,finish,finish_r,delete,giveup,ask_check,ask_check_r,checked_update,duplicate; 
  return 1; 
}; 
int main() 

  return 1; 
};


        



 5  1/1   1  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]