BPOS关于“相邻库存查询”的调整
“相邻库存查询”的应用场景:主要是实现门店间,相互查看商品库存状况,但出于公司对门店的查看权限控制要求,不能一次性查看到相关店铺的所有库存,所以产生了“相邻库存查询”的功能,通过后台系统给指定门店定义相关联的店仓,让门店可以按照单款查询到的方式查询到已定义的“相邻店铺”的商品库存分布状况。
但是标准产品里面设计的“相邻库存查询”,因对查询条件的匹配限制(当输入“款号”能查询所有尺码的库存分布情况,输入“条码”时只能查询次条码的库存情况),这样的方式降低“相邻看下查询”的功能效果,接收很多客户的反馈之后,重新调整自定义了相关程序(getBarcodeQtyCanByUserId_C.jsp),添加条码解析函数(oracle数据库自定义函数get_mpda_no_mpt),实现了扫入条码,直接查询所有尺码的库存情况。
修改后的jsp
自定义函数get_mpda_no_mpt的代码
create or replace function get_mpda_no_mpt(p_no in varchar2) return number as v_seqname varchar2(80);
pos number(10);
m_pda_id number(10); begin --1条码
begin
EXECUTE IMMEDIATE '
select t.m_product_id from m_product_alias t where t.no = :1'
into m_pda_id
using p_no; exception
when no_data_found then
m_pda_id := null;
end;
if m_pda_id is not null then
return m_pda_id;
end if; --2条码
begin
EXECUTE IMMEDIATE '
select t.id from m_product t where t.name = :1'
into m_pda_id
using p_no; exception
when no_data_found then
m_pda_id := null;
end;
if m_pda_id is not null then
return m_pda_id;
end if; --3流水码(截取位数)
pos := ad_param_value(37, 'portal.6001', 0);
begin
--raise_application_error(-20201,pos);
FOR v IN (SELECT regexp_substr(pos, '[^,]+', 1, LEVEL, 'i') AS text
FROM dual
CONNECT BY LEVEL <=
length(pos) - length(REPLACE(pos, ',')) + 1) LOOP
EXECUTE IMMEDIATE 'select max(m_product_id) from m_product_alias where no=:1'
INTO m_pda_id
USING substr(p_no, 1, length(p_no) - v.text);
IF m_pda_id > 0 THEN
return m_pda_id;
END IF;
END LOOP;
exception
when no_data_found then
m_pda_id := null;
end;
if m_pda_id is not null then
return m_pda_id;
end if; --4国标码
begin
EXECUTE IMMEDIATE '
select t.m_product_id
from m_product_alias t
where t.INTSCODE = :1'
into m_pda_id
using p_no;
exception
when no_data_found then
m_pda_id := null;
end;
if m_pda_id is not null then
return m_pda_id;
end if; --5新旧条码对照
begin
EXECUTE IMMEDIATE '
select a.m_product_id
from m_pdt_alias_con t, m_product_alias g,m_product_alias a
where t.m_pda_old_id = g.id
and t.m_pda_new_id=a.id
and g.no = :1'
into m_pda_id
using p_no; exception
when no_data_found then
m_pda_id := null;
end; if m_pda_id is not null then
return m_pda_id;
end if; return m_pda_id; end;
后台“相邻店铺”维护调整,标准的“相邻店铺”维护只能是一一对应维护,例如定义A店铺的“相邻店铺”为B、C店铺,则需要再A店铺的店仓档案下的“相邻店铺”table也页添加B、C店铺后,再到B、C店铺的店仓档案下添加A店铺,维护起来很是不方便。
解决方案:通过给店仓档案添加新的标签,修改对应的店仓档案程序,在对店仓档案修改的时候,识别将统一标签的店仓直接相互更新到对应的“相邻店铺”。
1 /*根据店仓性质更新相邻店铺*/
2 --先删除原明细
3 delete from C_STORENEB;
4
5 for v in (select a.id, a.c_storekind_id
6 from c_store a
7 where a.isactive='Y') loop
8
9 --插入新的明细
10 insert into C_STORENEB t
11 (id,
12 ad_client_id,
13 ad_org_id,
14 c_neb_store_id,
15 c_store_id,
16 ownerid,
17 modifierid,
18 creationdate,
19 modifieddate,
20 isactive)
21 select get_sequences('C_STORENEB'),
22 a.ad_client_id,
23 a.ad_org_id,
24 a.id,
25 v.id,
26 ownerid,
27 modifierid,
28 creationdate,
29 modifieddate,
30 isactive
31 from c_store a
32 where a.isactive='Y';
33 end loop;
BPOS关于“相邻库存查询”的调整的更多相关文章
- Hamilton回路的判定与构造
定理1:在一个具有n个顶点的无向连通图G中,如果任意两个顶点的度数之和大于n,则G具有Hamilton回路.此条件为充分条件 定理2:设图G = <V,E>,是Hamilton图,则对于v ...
- 8大排序算法的java实现--做个人收藏
排序算法分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因为数据量太大,一次不能容纳全部的排序记录,在排序过程中需要访问外存.这里只讨论内部排序,常见的内部排序算法有:插入排序 ...
- Careercup | Chapter 3
3.1 Describe how you could use a single array to implement three stacks. Flexible Divisions的方案,当某个栈满 ...
- tmux 入门教程
tmux 本教程是基于ACWing的<Linux基础课>所做,希望大家支持ACWing 功能 分屏 当需要同时运行两个终端,并且进行比对着输入时,来回切换比较麻烦,就可以利用分屏 可以在一 ...
- lintcode: 最小调整代价
题目 最小调整代价 给一个整数数组,调整每个数的大小,使得相邻的两个数的差小于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少. 样例 对于数组,最小的调整 ...
- Ubuntu14.0使用gparted调整分区大小
不知道为什么,我总会碰到一些疑难杂症,别人的分区都是在同一个目录下,直接通过,不断调整同一目录下相邻分区之间的空间来达到调整目标分区大小的目的 但我的不一样,我的主要分区在扩展分区下,极其魔性,图片里 ...
- 算法进阶面试题04——平衡二叉搜索树、AVL/红黑/SB树、删除和调整平衡的方法、输出大楼轮廓、累加和等于num的最长数组、滴滴Xor
接着第三课的内容和讲了第四课的部分内容 1.介绍二叉搜索树 在二叉树上,何为一个节点的后继节点? 何为搜索二叉树? 如何实现搜索二叉树的查找?插入?删除? 二叉树的概念上衍生出的. 任何一个节点,左比 ...
- Linux下调整ext3分区大小【转】
本文转载自:https://blog.csdn.net/cruise_h/article/details/22403529 本文讨论如何再不丢失数据的情况下调整已有ext3分区的大小,包括: 压缩已有 ...
- 剑指offer十三之调整数组顺序使奇数位于偶数前面
一.题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 二.思路 此题可 ...
随机推荐
- PyQt(Python+Qt)学习随笔:Qt Designer中图像资源的使用及资源文件的管理
一.概述 在Qt Designer中要使用图片资源有三种方法:通过图像文件指定.通过资源文件指定.通过theme主题方式指定,对应的设置界面在需要指定图像的属性栏如windowIcon中通过点击属性设 ...
- 深入理解C#中的异步(一)——APM模式EAP模式
深入理解C#中的异步(一)--APM模式EAP模式 目录 深入理解C#中的异步(一)--APM模式EAP模式 1 使用异步编程的原因 2 异步编程模式 2.1 APM模式 2.1.1 APM模式示例代 ...
- 5分钟入门MP4文件格式
写在前面 本文主要内容包括,什么是MP4.MP4文件的基本结构.Box的基本结构.常见且重要的box介绍.普通MP4与fMP4的区别.如何通过代码解析MP4文件 等. 写作背景:最近经常回答团队小伙伴 ...
- Java基础学习之数据类型、基础语法与数组(3)
目录 1.数据类型 1.1.基本数据类型 1.2.引用数据类型 1.3.自动装箱与拆箱 2.基础语法 2.1.标识符 2.2.修饰符 2.2.1.访问控制修饰符 2.2.2.非访问控制修饰符 2.3. ...
- 关于VS.Net应用的图标提取方法
.Net的资源文件 VS.Net 支持三种文件类型的resource:.txt..resx..resources. system.resources 名字空间支持三种资源文件: txt 文件,只能有字 ...
- sql 执行语句函数
# sql 语句执行函数 def get_access(request): uid=request cursor=connection.cursor() cursor.execute("se ...
- UML—20—001
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...
- 06-flask-文件上传案例
前端代码 Demo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- 百测学习之postman-接口测试
一.postman的请求 1.url与uri的区别 url与uri的区别 http://doc.nnzhp.cn/ http+host(域名)+path路径(uri) 2.g ...
- Web服务器-HTTP相关-快速整一个服务器响应浏览器(3.2.1)
@ 目录 1.HTTP分析 2.简单服务器 关于作者 1.HTTP分析 当你去访问一个网址的时候,浏览器会发送而各种头信息给服务器 然后服务器根据信息,返回一定数据的格式 最简单的就是下面的代码 自己 ...