Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz企业中心
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz企业套件
iBiz企业中心
提交
a3e4a0ac
提交
a3e4a0ac
编写于
6月 22, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
xignzi006 发布系统代码
上级
117e14f0
变更
31
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
31 个修改的文件
包含
5765 行增加
和
121 行删除
+5765
-121
quote-detail.ts
app_CRM/src/interface/entity/quote-detail.ts
+520
-0
en-US.ts
app_CRM/src/locale/lang/en-US.ts
+2
-0
zh-CN.ts
app_CRM/src/locale/lang/zh-CN.ts
+2
-0
quote-detail_en_US.ts
...locale/lanres/entities/quote-detail/quote-detail_en_US.ts
+69
-0
quote-detail_zh_CN.ts
...locale/lanres/entities/quote-detail/quote-detail_zh_CN.ts
+68
-0
quote-details.ts
app_CRM/src/mock/entity/quote-details/quote-details.ts
+380
-0
index.ts
app_CRM/src/mock/index.ts
+1
-0
entity-service-register.ts
app_CRM/src/service/entity-service-register.ts
+1
-0
quote-detail-service-base.ts
...CRM/src/service/quote-detail/quote-detail-service-base.ts
+179
-0
quote-detail-service.ts
app_CRM/src/service/quote-detail/quote-detail-service.ts
+25
-0
quote-detail-ui-service-base.ts
...rc/uiservice/quote-detail/quote-detail-ui-service-base.ts
+210
-0
quote-detail-ui-service.ts
...CRM/src/uiservice/quote-detail/quote-detail-ui-service.ts
+21
-0
ui-service-register.ts
app_CRM/src/uiservice/ui-service-register.ts
+1
-0
application-crm-prod.yml
...ntral-app-crm/src/main/resources/application-crm-prod.yml
+4
-0
systemResource.json
...al-core/src/main/resources/permission/systemResource.json
+8
-0
ParentAccountDTO.java
...zlab/businesscentral/centralapi/dto/ParentAccountDTO.java
+2604
-0
QuoteDetailDTO.java
...bizlab/businesscentral/centralapi/dto/QuoteDetailDTO.java
+1017
-0
ParentAccountMapping.java
...inesscentral/centralapi/mapping/ParentAccountMapping.java
+16
-0
QuoteDetailMapping.java
...usinesscentral/centralapi/mapping/QuoteDetailMapping.java
+16
-0
AccountResource.java
...zlab/businesscentral/centralapi/rest/AccountResource.java
+155
-0
ContactResource.java
...zlab/businesscentral/centralapi/rest/ContactResource.java
+13
-13
LeadResource.java
...ibizlab/businesscentral/centralapi/rest/LeadResource.java
+15
-15
ListAccountResource.java
.../businesscentral/centralapi/rest/ListAccountResource.java
+13
-13
ListContactResource.java
.../businesscentral/centralapi/rest/ListContactResource.java
+13
-13
ListLeadResource.java
...lab/businesscentral/centralapi/rest/ListLeadResource.java
+13
-13
OpportunityCompetitorResource.java
...entral/centralapi/rest/OpportunityCompetitorResource.java
+13
-13
OpportunityProductResource.java
...sscentral/centralapi/rest/OpportunityProductResource.java
+13
-13
OpportunityResource.java
.../businesscentral/centralapi/rest/OpportunityResource.java
+15
-15
ParentAccountResource.java
...usinesscentral/centralapi/rest/ParentAccountResource.java
+183
-0
QuoteDetailResource.java
.../businesscentral/centralapi/rest/QuoteDetailResource.java
+162
-0
QuoteResource.java
...bizlab/businesscentral/centralapi/rest/QuoteResource.java
+13
-13
未找到文件。
app_CRM/src/interface/entity/quote-detail.ts
0 → 100644
浏览文件 @
a3e4a0ac
/**
* 报价单产品
*
* @export
* @interface QuoteDetail
*/
export
interface
QuoteDetail
{
/**
* 负责人类型
*
* @returns {*}
* @memberof QuoteDetail
*/
owneridtype
?:
any
;
/**
* 金额 (Base)
*
* @returns {*}
* @memberof QuoteDetail
*/
baseamount_base
?:
any
;
/**
* 送货地的传真号码
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_fax
?:
any
;
/**
* 送至国家/地区
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_country
?:
any
;
/**
* 送货地的名称
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_name
?:
any
;
/**
* 送至街道 1
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_line1
?:
any
;
/**
* 送货地址
*
* @returns {*}
* @memberof QuoteDetail
*/
willcall
?:
any
;
/**
* SalesRepIdYomiName
*
* @returns {*}
* @memberof QuoteDetail
*/
salesrepidyominame
?:
any
;
/**
* 应收净额 (Base)
*
* @returns {*}
* @memberof QuoteDetail
*/
extendedamount_base
?:
any
;
/**
* 明细项目编号
*
* @returns {*}
* @memberof QuoteDetail
*/
lineitemnumber
?:
any
;
/**
* 说明
*
* @returns {*}
* @memberof QuoteDetail
*/
description
?:
any
;
/**
* 送货地的联系人姓名
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_contactname
?:
any
;
/**
* 更新时间
*
* @returns {*}
* @memberof QuoteDetail
*/
updatedate
?:
any
;
/**
* 报价单产品
*
* @returns {*}
* @memberof QuoteDetail
*/
quotedetailid
?:
any
;
/**
* Import Sequence Number
*
* @returns {*}
* @memberof QuoteDetail
*/
importsequencenumber
?:
any
;
/**
* 送货地的电话号码
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_telephone
?:
any
;
/**
* 零售折扣 (Base)
*
* @returns {*}
* @memberof QuoteDetail
*/
manualdiscountamount_base
?:
any
;
/**
* 批发折扣 (Base)
*
* @returns {*}
* @memberof QuoteDetail
*/
volumediscountamount_base
?:
any
;
/**
* 零售折扣
*
* @returns {*}
* @memberof QuoteDetail
*/
manualdiscountamount
?:
any
;
/**
* 货运条款
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_freighttermscode
?:
any
;
/**
* 送至市/县
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_city
?:
any
;
/**
* 建立时间
*
* @returns {*}
* @memberof QuoteDetail
*/
createdate
?:
any
;
/**
* 定价错误
*
* @returns {*}
* @memberof QuoteDetail
*/
pricingerrorcode
?:
any
;
/**
* 汇率
*
* @returns {*}
* @memberof QuoteDetail
*/
exchangerate
?:
any
;
/**
* 送至省/市/自治区
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_stateorprovince
?:
any
;
/**
* 送至街道 2
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_line2
?:
any
;
/**
* Record Created On
*
* @returns {*}
* @memberof QuoteDetail
*/
overriddencreatedon
?:
any
;
/**
* 建立人
*
* @returns {*}
* @memberof QuoteDetail
*/
createman
?:
any
;
/**
* 数量
*
* @returns {*}
* @memberof QuoteDetail
*/
quantity
?:
any
;
/**
* 报价单状态
*
* @returns {*}
* @memberof QuoteDetail
*/
quotestatecode
?:
any
;
/**
* 送至街道 3
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_line3
?:
any
;
/**
* 负责人
*
* @returns {*}
* @memberof QuoteDetail
*/
ownerid
?:
any
;
/**
* 单价 (Base)
*
* @returns {*}
* @memberof QuoteDetail
*/
priceperunit_base
?:
any
;
/**
* 目录外产品
*
* @returns {*}
* @memberof QuoteDetail
*/
productdescription
?:
any
;
/**
* 单价
*
* @returns {*}
* @memberof QuoteDetail
*/
priceperunit
?:
any
;
/**
* 更新人
*
* @returns {*}
* @memberof QuoteDetail
*/
updateman
?:
any
;
/**
* 税 (Base)
*
* @returns {*}
* @memberof QuoteDetail
*/
tax_base
?:
any
;
/**
* 自定义的价格
*
* @returns {*}
* @memberof QuoteDetail
*/
priceoverridden
?:
any
;
/**
* UTC Conversion Time Zone Code
*
* @returns {*}
* @memberof QuoteDetail
*/
utcconversiontimezonecode
?:
any
;
/**
* 父捆绑销售
*
* @returns {*}
* @memberof QuoteDetail
*/
parentbundleid
?:
any
;
/**
* 名称
*
* @returns {*}
* @memberof QuoteDetail
*/
quotedetailname
?:
any
;
/**
* 选择产品
*
* @returns {*}
* @memberof QuoteDetail
*/
productoverridden
?:
any
;
/**
* Product Name
*
* @returns {*}
* @memberof QuoteDetail
*/
productname
?:
any
;
/**
* Time Zone Rule Version Number
*
* @returns {*}
* @memberof QuoteDetail
*/
timezoneruleversionnumber
?:
any
;
/**
* 送货地的邮政编码
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_postalcode
?:
any
;
/**
* 送货地址 ID
*
* @returns {*}
* @memberof QuoteDetail
*/
shipto_addressid
?:
any
;
/**
* 属性配置
*
* @returns {*}
* @memberof QuoteDetail
*/
propertyconfigurationstatus
?:
any
;
/**
* 税
*
* @returns {*}
* @memberof QuoteDetail
*/
tax
?:
any
;
/**
* 要求交付日期
*
* @returns {*}
* @memberof QuoteDetail
*/
requestdeliveryby
?:
any
;
/**
* 产品类型
*
* @returns {*}
* @memberof QuoteDetail
*/
producttypecode
?:
any
;
/**
* 负责人
*
* @returns {*}
* @memberof QuoteDetail
*/
owneridyominame
?:
any
;
/**
* 金额
*
* @returns {*}
* @memberof QuoteDetail
*/
baseamount
?:
any
;
/**
* 应收净额
*
* @returns {*}
* @memberof QuoteDetail
*/
extendedamount
?:
any
;
/**
* 批发折扣
*
* @returns {*}
* @memberof QuoteDetail
*/
volumediscountamount
?:
any
;
/**
* SkipPriceCalculation
*
* @returns {*}
* @memberof QuoteDetail
*/
skippricecalculation
?:
any
;
/**
* 捆绑销售项关联
*
* @returns {*}
* @memberof QuoteDetail
*/
productassociationid
?:
any
;
/**
* Version Number
*
* @returns {*}
* @memberof QuoteDetail
*/
versionnumber
?:
any
;
/**
* 销售员
*
* @returns {*}
* @memberof QuoteDetail
*/
salesrepid
?:
any
;
/**
* 序号
*
* @returns {*}
* @memberof QuoteDetail
*/
sequencenumber
?:
any
;
/**
* Parent bundle product
*
* @returns {*}
* @memberof QuoteDetail
*/
parentbundleidref
?:
any
;
/**
* 报价单
*
* @returns {*}
* @memberof QuoteDetail
*/
quoteid
?:
any
;
/**
* 现有产品
*
* @returns {*}
* @memberof QuoteDetail
*/
productid
?:
any
;
/**
* 货币
*
* @returns {*}
* @memberof QuoteDetail
*/
transactioncurrencyid
?:
any
;
/**
* 计价单位
*
* @returns {*}
* @memberof QuoteDetail
*/
uomid
?:
any
;
}
\ No newline at end of file
app_CRM/src/locale/lang/en-US.ts
浏览文件 @
a3e4a0ac
...
...
@@ -32,6 +32,7 @@ import product_en_US from '@locale/lanres/entities/product/product_en_US';
import
competitor_en_US
from
'@locale/lanres/entities/competitor/competitor_en_US'
;
import
account_en_US
from
'@locale/lanres/entities/account/account_en_US'
;
import
salesorder_en_US
from
'@locale/lanres/entities/sales-order/sales-order_en_US'
;
import
quotedetail_en_US
from
'@locale/lanres/entities/quote-detail/quote-detail_en_US'
;
import
components_en_US
from
'@locale/lanres/components/components_en_US'
;
import
codelist_en_US
from
'@locale/lanres/codelist/codelist_en_US'
;
import
userCustom_en_US
from
'@locale/lanres/userCustom/userCustom_en_US'
;
...
...
@@ -171,6 +172,7 @@ export default {
competitor
:
competitor_en_US
,
account
:
account_en_US
,
salesorder
:
salesorder_en_US
,
quotedetail
:
quotedetail_en_US
,
},
components
:
components_en_US
,
codelist
:
codelist_en_US
,
...
...
app_CRM/src/locale/lang/zh-CN.ts
浏览文件 @
a3e4a0ac
...
...
@@ -32,6 +32,7 @@ import product_zh_CN from '@locale/lanres/entities/product/product_zh_CN';
import
competitor_zh_CN
from
'@locale/lanres/entities/competitor/competitor_zh_CN'
;
import
account_zh_CN
from
'@locale/lanres/entities/account/account_zh_CN'
;
import
salesorder_zh_CN
from
'@locale/lanres/entities/sales-order/sales-order_zh_CN'
;
import
quotedetail_zh_CN
from
'@locale/lanres/entities/quote-detail/quote-detail_zh_CN'
;
import
components_zh_CN
from
'@locale/lanres/components/components_zh_CN'
;
import
codelist_zh_CN
from
'@locale/lanres/codelist/codelist_zh_CN'
;
import
userCustom_zh_CN
from
'@locale/lanres/userCustom/userCustom_zh_CN'
;
...
...
@@ -171,6 +172,7 @@ export default {
competitor
:
competitor_zh_CN
,
account
:
account_zh_CN
,
salesorder
:
salesorder_zh_CN
,
quotedetail
:
quotedetail_zh_CN
,
},
components
:
components_zh_CN
,
codelist
:
codelist_zh_CN
,
...
...
app_CRM/src/locale/lanres/entities/quote-detail/quote-detail_en_US.ts
0 → 100644
浏览文件 @
a3e4a0ac
export
default
{
fields
:
{
owneridtype
:
'负责人类型'
,
baseamount_base
:
'金额 (Base)'
,
shipto_fax
:
'送货地的传真号码'
,
shipto_country
:
'送至国家/地区'
,
shipto_name
:
'送货地的名称'
,
shipto_line1
:
'送至街道 1'
,
willcall
:
'送货地址'
,
salesrepidyominame
:
'SalesRepIdYomiName'
,
extendedamount_base
:
'应收净额 (Base)'
,
lineitemnumber
:
'明细项目编号'
,
description
:
'说明'
,
shipto_contactname
:
'送货地的联系人姓名'
,
updatedate
:
'更新时间'
,
quotedetailid
:
'报价单产品'
,
importsequencenumber
:
'Import Sequence Number'
,
shipto_telephone
:
'送货地的电话号码'
,
manualdiscountamount_base
:
'零售折扣 (Base)'
,
volumediscountamount_base
:
'批发折扣 (Base)'
,
manualdiscountamount
:
'零售折扣'
,
shipto_freighttermscode
:
'货运条款'
,
shipto_city
:
'送至市/县'
,
createdate
:
'建立时间'
,
pricingerrorcode
:
'定价错误'
,
exchangerate
:
'汇率'
,
shipto_stateorprovince
:
'送至省/市/自治区'
,
shipto_line2
:
'送至街道 2'
,
overriddencreatedon
:
'Record Created On'
,
createman
:
'建立人'
,
quantity
:
'数量'
,
quotestatecode
:
'报价单状态'
,
shipto_line3
:
'送至街道 3'
,
ownerid
:
'负责人'
,
priceperunit_base
:
'单价 (Base)'
,
productdescription
:
'目录外产品'
,
priceperunit
:
'单价'
,
updateman
:
'更新人'
,
tax_base
:
'税 (Base)'
,
priceoverridden
:
'自定义的价格'
,
utcconversiontimezonecode
:
'UTC Conversion Time Zone Code'
,
parentbundleid
:
'父捆绑销售'
,
quotedetailname
:
'名称'
,
productoverridden
:
'选择产品'
,
productname
:
'Product Name'
,
timezoneruleversionnumber
:
'Time Zone Rule Version Number'
,
shipto_postalcode
:
'送货地的邮政编码'
,
shipto_addressid
:
'送货地址 ID'
,
propertyconfigurationstatus
:
'属性配置'
,
tax
:
'税'
,
requestdeliveryby
:
'要求交付日期'
,
producttypecode
:
'产品类型'
,
owneridyominame
:
'负责人'
,
baseamount
:
'金额'
,
extendedamount
:
'应收净额'
,
volumediscountamount
:
'批发折扣'
,
skippricecalculation
:
'SkipPriceCalculation'
,
productassociationid
:
'捆绑销售项关联'
,
versionnumber
:
'Version Number'
,
salesrepid
:
'销售员'
,
sequencenumber
:
'序号'
,
parentbundleidref
:
'Parent bundle product'
,
quoteid
:
'报价单'
,
productid
:
'现有产品'
,
transactioncurrencyid
:
'货币'
,
uomid
:
'计价单位'
,
},
};
\ No newline at end of file
app_CRM/src/locale/lanres/entities/quote-detail/quote-detail_zh_CN.ts
0 → 100644
浏览文件 @
a3e4a0ac
export
default
{
fields
:
{
owneridtype
:
'负责人类型'
,
baseamount_base
:
'金额 (Base)'
,
shipto_fax
:
'送货地的传真号码'
,
shipto_country
:
'送至国家/地区'
,
shipto_name
:
'送货地的名称'
,
shipto_line1
:
'送至街道 1'
,
willcall
:
'送货地址'
,
salesrepidyominame
:
'SalesRepIdYomiName'
,
extendedamount_base
:
'应收净额 (Base)'
,
lineitemnumber
:
'明细项目编号'
,
description
:
'说明'
,
shipto_contactname
:
'送货地的联系人姓名'
,
updatedate
:
'更新时间'
,
quotedetailid
:
'报价单产品'
,
importsequencenumber
:
'Import Sequence Number'
,
shipto_telephone
:
'送货地的电话号码'
,
manualdiscountamount_base
:
'零售折扣 (Base)'
,
volumediscountamount_base
:
'批发折扣 (Base)'
,
manualdiscountamount
:
'零售折扣'
,
shipto_freighttermscode
:
'货运条款'
,
shipto_city
:
'送至市/县'
,
createdate
:
'建立时间'
,
pricingerrorcode
:
'定价错误'
,
exchangerate
:
'汇率'
,
shipto_stateorprovince
:
'送至省/市/自治区'
,
shipto_line2
:
'送至街道 2'
,
overriddencreatedon
:
'Record Created On'
,
createman
:
'建立人'
,
quantity
:
'数量'
,
quotestatecode
:
'报价单状态'
,
shipto_line3
:
'送至街道 3'
,
ownerid
:
'负责人'
,
priceperunit_base
:
'单价 (Base)'
,
productdescription
:
'目录外产品'
,
priceperunit
:
'单价'
,
updateman
:
'更新人'
,
tax_base
:
'税 (Base)'
,
priceoverridden
:
'自定义的价格'
,
utcconversiontimezonecode
:
'UTC Conversion Time Zone Code'
,
parentbundleid
:
'父捆绑销售'
,
quotedetailname
:
'名称'
,
productoverridden
:
'选择产品'
,
productname
:
'Product Name'
,
timezoneruleversionnumber
:
'Time Zone Rule Version Number'
,
shipto_postalcode
:
'送货地的邮政编码'
,
shipto_addressid
:
'送货地址 ID'
,
propertyconfigurationstatus
:
'属性配置'
,
tax
:
'税'
,
requestdeliveryby
:
'要求交付日期'
,
producttypecode
:
'产品类型'
,
owneridyominame
:
'负责人'
,
baseamount
:
'金额'
,
extendedamount
:
'应收净额'
,
volumediscountamount
:
'批发折扣'
,
skippricecalculation
:
'SkipPriceCalculation'
,
productassociationid
:
'捆绑销售项关联'
,
versionnumber
:
'Version Number'
,
salesrepid
:
'销售员'
,
sequencenumber
:
'序号'
,
parentbundleidref
:
'Parent bundle product'
,
quoteid
:
'报价单'
,
productid
:
'现有产品'
,
transactioncurrencyid
:
'货币'
,
uomid
:
'计价单位'
,
},
};
\ No newline at end of file
app_CRM/src/mock/entity/quote-details/quote-details.ts
0 → 100644
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
app_CRM/src/mock/index.ts
浏览文件 @
a3e4a0ac
...
...
@@ -41,3 +41,4 @@ import './entity/products/products';
import
'./entity/competitors/competitors'
;
import
'./entity/accounts/accounts'
;
import
'./entity/sales-orders/sales-orders'
;
import
'./entity/quote-details/quote-details'
;
app_CRM/src/service/entity-service-register.ts
浏览文件 @
a3e4a0ac
...
...
@@ -73,6 +73,7 @@ export class EntityServiceRegister {
this
.
allEntityService
.
set
(
'competitor'
,
()
=>
import
(
'@/service/competitor/competitor-service'
));
this
.
allEntityService
.
set
(
'account'
,
()
=>
import
(
'@/service/account/account-service'
));
this
.
allEntityService
.
set
(
'salesorder'
,
()
=>
import
(
'@/service/sales-order/sales-order-service'
));
this
.
allEntityService
.
set
(
'quotedetail'
,
()
=>
import
(
'@/service/quote-detail/quote-detail-service'
));
}
/**
...
...
app_CRM/src/service/quote-detail/quote-detail-service-base.ts
0 → 100644
浏览文件 @
a3e4a0ac
import
{
Http
,
Util
}
from
'@/utils'
;
import
EntityService
from
'../entity-service'
;
/**
* 报价单产品服务对象基类
*
* @export
* @class QuoteDetailServiceBase
* @extends {EntityServie}
*/
export
default
class
QuoteDetailServiceBase
extends
EntityService
{
/**
* Creates an instance of QuoteDetailServiceBase.
*
* @param {*} [opts={}]
* @memberof QuoteDetailServiceBase
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
/**
* 初始化基础数据
*
* @memberof QuoteDetailServiceBase
*/
public
initBasicData
(){
this
.
APPLYDEKEY
=
'quotedetail'
;
this
.
APPDEKEY
=
'quotedetailid'
;
this
.
APPDENAME
=
'quotedetails'
;
this
.
APPDETEXT
=
'quotedetailname'
;
this
.
APPNAME
=
'crm'
;
this
.
SYSTEMNAME
=
'ibizbusinesscentral'
;
}
// 实体接口
/**
* Select接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
Select
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
get
(
`/quotedetails/
${
context
.
quotedetail
}
/select`
,
isloading
);
}
/**
* GetDraft接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
GetDraft
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/quotedetails/getdraft`
,
isloading
);
res
.
data
.
quotedetail
=
data
.
quotedetail
;
return
res
;
}
/**
* Update接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
Update
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
put
(
`/quotedetails/
${
context
.
quotedetail
}
`
,
data
,
isloading
);
return
res
;
}
/**
* Save接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
Save
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/quotedetails/
${
context
.
quotedetail
}
/save`
,
data
,
isloading
);
return
res
;
}
/**
* Remove接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
Remove
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
delete
(
`/quotedetails/
${
context
.
quotedetail
}
`
,
isloading
);
}
/**
* CheckKey接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
CheckKey
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
post
(
`/quotedetails/
${
context
.
quotedetail
}
/checkkey`
,
data
,
isloading
);
}
/**
* Get接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/quotedetails/
${
context
.
quotedetail
}
`
,
isloading
);
return
res
;
}
/**
* Create接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
Create
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
if
(
!
data
.
srffrontuf
||
data
.
srffrontuf
!==
"1"
){
data
[
this
.
APPDEKEY
]
=
null
;
}
if
(
data
.
srffrontuf
){
delete
data
.
srffrontuf
;
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/quotedetails`
,
data
,
isloading
);
return
res
;
}
/**
* FetchDefault接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof QuoteDetailServiceBase
*/
public
async
FetchDefault
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
tempData
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
return
Http
.
getInstance
().
get
(
`/quotedetails/fetchdefault`
,
tempData
,
isloading
);
}
}
\ No newline at end of file
app_CRM/src/service/quote-detail/quote-detail-service.ts
0 → 100644
浏览文件 @
a3e4a0ac
import
{
Http
,
Util
}
from
'@/utils'
;
import
QuoteDetailServiceBase
from
'./quote-detail-service-base'
;
/**
* 报价单产品服务对象
*
* @export
* @class QuoteDetailService
* @extends {QuoteDetailServiceBase}
*/
export
default
class
QuoteDetailService
extends
QuoteDetailServiceBase
{
/**
* Creates an instance of QuoteDetailService.
*
* @param {*} [opts={}]
* @memberof QuoteDetailService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
}
\ No newline at end of file
app_CRM/src/uiservice/quote-detail/quote-detail-ui-service-base.ts
0 → 100644
浏览文件 @
a3e4a0ac
import
{
Environment
}
from
'@/environments/environment'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
UIService
from
'../ui-service'
;
import
{
Subject
}
from
'rxjs'
;
import
QuoteDetailService
from
'@/service/quote-detail/quote-detail-service'
;
/**
* 报价单产品UI服务对象基类
*
* @export
* @class QuoteDetailUIServiceBase
*/
export
default
class
QuoteDetailUIServiceBase
extends
UIService
{
/**
* 是否支持工作流
*
* @memberof QuoteDetailUIServiceBase
*/
public
isEnableWorkflow
:
boolean
=
false
;
/**
* 当前UI服务对应的数据服务对象
*
* @memberof QuoteDetailUIServiceBase
*/
public
dataService
:
QuoteDetailService
=
new
QuoteDetailService
();
/**
* 所有关联视图
*
* @memberof QuoteDetailUIServiceBase
*/
public
allViewMap
:
Map
<
string
,
Object
>
=
new
Map
();
/**
* 状态值
*
* @memberof QuoteDetailUIServiceBase
*/
public
stateValue
:
number
=
0
;
/**
* 状态属性
*
* @memberof QuoteDetailUIServiceBase
*/
public
stateField
:
string
=
""
;
/**
* 主状态属性集合
*
* @memberof QuoteDetailUIServiceBase
*/
public
mainStateFields
:
Array
<
any
>
=
[];
/**
* 主状态集合Map
*
* @memberof QuoteDetailUIServiceBase
*/
public
allDeMainStateMap
:
Map
<
string
,
string
>
=
new
Map
();
/**
* Creates an instance of QuoteDetailUIServiceBase.
*
* @param {*} [opts={}]
* @memberof QuoteDetailUIServiceBase
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
initViewMap
();
this
.
initDeMainStateMap
();
}
/**
* 初始化视图Map
*
* @memberof QuoteDetailUIServiceBase
*/
public
initViewMap
(){
}
/**
* 初始化主状态集合
*
* @memberof QuoteDetailUIServiceBase
*/
public
initDeMainStateMap
(){
}
/**
* 获取指定数据的重定向页面
*
* @param srfkey 数据主键
* @param isEnableWorkflow 重定向视图是否需要处理流程中的数据
* @memberof QuoteDetailUIServiceBase
*/
public
async
getRDAppView
(
srfkey
:
string
,
isEnableWorkflow
:
boolean
){
this
.
isEnableWorkflow
=
isEnableWorkflow
;
// 进行数据查询
let
result
:
any
=
await
this
.
dataService
.
Get
({
quotedetail
:
srfkey
});
const
curData
:
any
=
result
.
data
;
//判断当前数据模式,默认为true,todo
const
iRealDEModel
:
boolean
=
true
;
let
bDataInWF
:
boolean
=
false
;
let
bWFMode
:
any
=
false
;
// 计算数据模式
if
(
this
.
isEnableWorkflow
)
{
bDataInWF
=
await
this
.
dataService
.
testDataInWF
({
stateValue
:
this
.
stateValue
,
stateField
:
this
.
stateField
},
curData
);
if
(
bDataInWF
)
{
bDataInWF
=
true
;
bWFMode
=
await
this
.
dataService
.
testUserExistWorklist
(
null
,
curData
);
}
}
let
strPDTViewParam
:
string
=
await
this
.
getDESDDEViewPDTParam
(
curData
,
bDataInWF
,
bWFMode
);
//若不是当前数据模式,处理strPDTViewParam,todo
//查找视图
//返回视图
return
this
.
allViewMap
.
get
(
strPDTViewParam
);
}
/**
* 获取实际的数据类型
*
* @memberof QuoteDetailUIServiceBase
*/
public
getRealDEType
(
entity
:
any
){
}
/**
* 获取实体单数据实体视图预定义参数
*
* @param curData 当前数据
* @param bDataInWF 是否有数据在工作流中
* @param bWFMode 是否工作流模式
* @memberof QuoteDetailUIServiceBase
*/
public
async
getDESDDEViewPDTParam
(
curData
:
any
,
bDataInWF
:
boolean
,
bWFMode
:
boolean
){
let
strPDTParam
:
string
=
''
;
if
(
bDataInWF
)
{
// 判断数据是否在流程中
}
//多表单,todo
const
isEnableMultiForm
:
boolean
=
false
;
const
multiFormDEField
:
string
|
null
=
null
;
if
(
isEnableMultiForm
&&
multiFormDEField
)
{
const
objFormValue
:
string
=
curData
[
multiFormDEField
];
if
(
!
Environment
.
isAppMode
){
return
'MOBEDITVIEW'
+
objFormValue
;
}
return
'EDITVIEW'
+
objFormValue
;
}
if
(
!
Environment
.
isAppMode
){
if
(
this
.
getDEMainStateTag
(
curData
)){
return
`MOBEDITVIEW:MSTAG:
${
await
this
.
getDEMainStateTag
(
curData
)}
`
;
}
return
'MOBEDITVIEW:'
;
}
if
(
this
.
getDEMainStateTag
(
curData
)){
return
`EDITVIEW:MSTAG:
${
await
this
.
getDEMainStateTag
(
curData
)}
`
;
}
return
'EDITVIEW:'
;
}
/**
* 获取数据对象的主状态标识
*
* @param curData 当前数据
* @memberof QuoteDetailUIServiceBase
*/
public
async
getDEMainStateTag
(
curData
:
any
){
if
(
this
.
mainStateFields
.
length
===
0
)
return
null
;
this
.
mainStateFields
.
forEach
((
singleMainField
:
any
)
=>
{
if
(
!
(
singleMainField
in
curData
)){
console
.
error
(
`当前数据对象不包含属性singleMainField,可能会发生错误`
);
}
})
let
strTag
:
String
=
""
;
for
(
let
i
=
0
;
i
<=
1
;
i
++
)
{
let
strTag
:
string
=
(
curData
[
this
.
mainStateFields
[
0
]])?(
i
==
0
)
?
curData
[
this
.
mainStateFields
[
0
]]
:
""
:
""
;
if
(
this
.
mainStateFields
.
length
>=
2
)
{
for
(
let
j
=
0
;
j
<=
1
;
j
++
)
{
let
strTag2
:
string
=
(
curData
[
this
.
mainStateFields
[
1
]])?
`
${
strTag
}
__
${(
j
==
0
)
?
curData
[
this
.
mainStateFields
[
1
]]
:
""
}
`
:
strTag
;
if
(
this
.
mainStateFields
.
length
>=
3
)
{
for
(
let
k
=
0
;
k
<=
1
;
k
++
)
{
let
strTag3
:
string
=
(
curData
[
this
.
mainStateFields
[
2
]])?
`
${
strTag2
}
__
${(
k
==
0
)
?
curData
[
this
.
mainStateFields
[
2
]]
:
""
}
`
:
strTag2
;
// 判断是否存在
return
this
.
allDeMainStateMap
.
get
(
strTag3
);
}
}
else
{
return
this
.
allDeMainStateMap
.
get
(
strTag2
);
}
}
}
else
{
return
this
.
allDeMainStateMap
.
get
(
strTag
);
}
}
return
null
;
}
}
\ No newline at end of file
app_CRM/src/uiservice/quote-detail/quote-detail-ui-service.ts
0 → 100644
浏览文件 @
a3e4a0ac
import
QuoteDetailUIServiceBase
from
'./quote-detail-ui-service-base'
;
/**
* 报价单产品UI服务对象
*
* @export
* @class QuoteDetailUIService
*/
export
default
class
QuoteDetailUIService
extends
QuoteDetailUIServiceBase
{
/**
* Creates an instance of QuoteDetailUIService.
*
* @param {*} [opts={}]
* @memberof QuoteDetailUIService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
}
\ No newline at end of file
app_CRM/src/uiservice/ui-service-register.ts
浏览文件 @
a3e4a0ac
...
...
@@ -73,6 +73,7 @@ export class UIServiceRegister {
this
.
allUIService
.
set
(
'competitor'
,
()
=>
import
(
'@/uiservice/competitor/competitor-ui-service'
));
this
.
allUIService
.
set
(
'account'
,
()
=>
import
(
'@/uiservice/account/account-ui-service'
));
this
.
allUIService
.
set
(
'salesorder'
,
()
=>
import
(
'@/uiservice/sales-order/sales-order-ui-service'
));
this
.
allUIService
.
set
(
'quotedetail'
,
()
=>
import
(
'@/uiservice/quote-detail/quote-detail-ui-service'
));
}
/**
...
...
businesscentral-app/businesscentral-app-crm/src/main/resources/application-crm-prod.yml
浏览文件 @
a3e4a0ac
...
...
@@ -143,6 +143,10 @@ zuul:
path
:
/salesorders/**
serviceId
:
ibizbusinesscentral-centralapi
stripPrefix
:
false
quotedetail
:
path
:
/quotedetails/**
serviceId
:
ibizbusinesscentral-centralapi
stripPrefix
:
false
loginv7
:
path
:
/v7/login
serviceId
:
ibzuaa-api
...
...
businesscentral-core/src/main/resources/permission/systemResource.json
浏览文件 @
a3e4a0ac
...
...
@@ -273,6 +273,14 @@
"sysmoudle"
:{
"id"
:
"SALES"
,
"name"
:
"Sales"
},
"dedataset"
:[{
"id"
:
"Default"
,
"name"
:
"DEFAULT"
}],
"deaction"
:[{
"id"
:
"CheckKey"
,
"name"
:
"CheckKey"
,
"type"
:
"BUILTIN"
},{
"id"
:
"GetDraft"
,
"name"
:
"GetDraft"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Get"
,
"name"
:
"Get"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Save"
,
"name"
:
"Save"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Remove"
,
"name"
:
"Remove"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Update"
,
"name"
:
"Update"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Create"
,
"name"
:
"Create"
,
"type"
:
"BUILTIN"
}],
"datascope"
:[{
"id"
:
"all"
,
"name"
:
"全部数据"
},
{
"id"
:
"createman"
,
"name"
:
"创建人"
}]
}
,
{
"dename"
:
"QuoteDetail"
,
"delogicname"
:
"报价单产品"
,
"sysmoudle"
:{
"id"
:
"SALES"
,
"name"
:
"Sales"
},
"dedataset"
:[{
"id"
:
"Default"
,
"name"
:
"DEFAULT"
}],
"deaction"
:[{
"id"
:
"GetDraft"
,
"name"
:
"GetDraft"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Update"
,
"name"
:
"Update"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Save"
,
"name"
:
"Save"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Remove"
,
"name"
:
"Remove"
,
"type"
:
"BUILTIN"
},{
"id"
:
"CheckKey"
,
"name"
:
"CheckKey"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Get"
,
"name"
:
"Get"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Create"
,
"name"
:
"Create"
,
"type"
:
"BUILTIN"
}],
"datascope"
:[{
"id"
:
"all"
,
"name"
:
"全部数据"
},
{
"id"
:
"createman"
,
"name"
:
"创建人"
}]
}
],
...
...
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/dto/ParentAccountDTO.java
0 → 100644
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/dto/QuoteDetailDTO.java
0 → 100644
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/mapping/ParentAccountMapping.java
0 → 100644
浏览文件 @
a3e4a0ac
package
cn
.
ibizlab
.
businesscentral
.
centralapi
.
mapping
;
import
org.mapstruct.*
;
import
cn.ibizlab.businesscentral.core.base.domain.Account
;
import
cn.ibizlab.businesscentral.centralapi.dto.ParentAccountDTO
;
import
cn.ibizlab.businesscentral.util.domain.MappingBase
;
import
org.mapstruct.factory.Mappers
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
{},
nullValuePropertyMappingStrategy
=
NullValuePropertyMappingStrategy
.
IGNORE
,
nullValueCheckStrategy
=
NullValueCheckStrategy
.
ALWAYS
)
public
interface
ParentAccountMapping
extends
MappingBase
<
ParentAccountDTO
,
Account
>
{
}
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/mapping/QuoteDetailMapping.java
0 → 100644
浏览文件 @
a3e4a0ac
package
cn
.
ibizlab
.
businesscentral
.
centralapi
.
mapping
;
import
org.mapstruct.*
;
import
cn.ibizlab.businesscentral.core.sales.domain.QuoteDetail
;
import
cn.ibizlab.businesscentral.centralapi.dto.QuoteDetailDTO
;
import
cn.ibizlab.businesscentral.util.domain.MappingBase
;
import
org.mapstruct.factory.Mappers
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
{},
nullValuePropertyMappingStrategy
=
NullValuePropertyMappingStrategy
.
IGNORE
,
nullValueCheckStrategy
=
NullValueCheckStrategy
.
ALWAYS
)
public
interface
QuoteDetailMapping
extends
MappingBase
<
QuoteDetailDTO
,
QuoteDetail
>
{
}
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/AccountResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/ContactResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/LeadResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/ListAccountResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/ListContactResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/ListLeadResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/OpportunityCompetitorResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/OpportunityProductResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/OpportunityResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/ParentAccountResource.java
0 → 100644
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/QuoteDetailResource.java
0 → 100644
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
businesscentral-provider/businesscentral-provider-centralapi/src/main/java/cn/ibizlab/businesscentral/centralapi/rest/QuoteResource.java
浏览文件 @
a3e4a0ac
此差异已折叠。
点击以展开。
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录