批量更新功能
This commit is contained in:
@@ -136,8 +136,18 @@ func (c *BackendErpCustomerController) List() {
|
||||
return
|
||||
}
|
||||
|
||||
// 标记「同时也是供应商」:同一家单位可能既是客户又是供应商,列表上直接可见,避免重复转化
|
||||
alsoSupplier := partyNameExists(fmt.Sprintf("%d", claims.TenantId), "supplier", collectCustomerNames(list))
|
||||
rows := make([]customerListRow, 0, len(list))
|
||||
for _, r := range list {
|
||||
rows = append(rows, customerListRow{
|
||||
TenantCrmCustomer: r,
|
||||
AlsoSupplier: alsoSupplier[strings.TrimSpace(r.CustomerName)],
|
||||
})
|
||||
}
|
||||
|
||||
c.customerOk(map[string]interface{}{
|
||||
"list": list,
|
||||
"list": rows,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"pageSize": pageSize,
|
||||
@@ -172,6 +182,48 @@ func (c *BackendErpCustomerController) Detail() {
|
||||
c.customerOk(customer)
|
||||
}
|
||||
|
||||
// ConvertToSupplier POST /backend/erp/customer/:id/convert-supplier
|
||||
// 客户转供应商:把客户档案(含联系人)复制一套到供应商库。
|
||||
// 同一家单位可能既是客户又是供应商,因此原客户记录保留、不删除;
|
||||
// 供应商库已存在同名企业时不重复建档,只把联系人补同步过去。
|
||||
func (c *BackendErpCustomerController) ConvertToSupplier() {
|
||||
claims, err := c.customerClaims()
|
||||
if err != nil {
|
||||
c.customerJsonErr(401, 401, err.Error())
|
||||
return
|
||||
}
|
||||
id, _ := strconv.ParseUint(c.Ctx.Input.Param(":id"), 10, 64)
|
||||
if id == 0 {
|
||||
c.customerJsonErr(400, 400, "无效的ID")
|
||||
return
|
||||
}
|
||||
|
||||
tenantID := fmt.Sprintf("%d", claims.TenantId)
|
||||
var customer models.TenantCrmCustomer
|
||||
if err := models.Orm.QueryTable(new(models.TenantCrmCustomer)).
|
||||
Filter("id", id).
|
||||
Filter("tenant_id", tenantID).
|
||||
Filter("delete_time__isnull", true).
|
||||
One(&customer); err != nil {
|
||||
c.customerJsonErr(404, 404, "客户未找到")
|
||||
return
|
||||
}
|
||||
|
||||
existed, supplierID, inserted, merged, cerr := convertCustomerToSupplier(tenantID, &customer, claims)
|
||||
if cerr != nil {
|
||||
c.customerJsonErr(500, 500, cerr.Error())
|
||||
return
|
||||
}
|
||||
c.customerOk(map[string]interface{}{
|
||||
"id": supplierID,
|
||||
"existed": existed,
|
||||
"contacts": map[string]interface{}{
|
||||
"inserted": inserted,
|
||||
"merged": merged,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// Create POST /backend/erp/customer
|
||||
func (c *BackendErpCustomerController) Create() {
|
||||
claims, err := c.customerClaims()
|
||||
|
||||
Reference in New Issue
Block a user