|
|
@@ -1,20 +1,23 @@
|
|
|
package oilsupplier
|
|
|
|
|
|
import (
|
|
|
+ "dashoo.cn/backend/api/business/audithistory"
|
|
|
"dashoo.cn/backend/api/business/baseUser"
|
|
|
+ "dashoo.cn/backend/api/business/oilsupplier/suppliercert"
|
|
|
"dashoo.cn/backend/api/business/organize"
|
|
|
"dashoo.cn/backend/api/business/paymentinfo"
|
|
|
"dashoo.cn/business2/areajson"
|
|
|
"dashoo.cn/business2/items"
|
|
|
"dashoo.cn/business2/permission"
|
|
|
|
|
|
- "dashoo.cn/backend/api/business/auditsetting"
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
|
|
|
+ "dashoo.cn/backend/api/business/auditsetting"
|
|
|
+
|
|
|
"dashoo.cn/backend/api/business/oilsupplier/annualaudit"
|
|
|
"dashoo.cn/backend/api/business/oilsupplier/supplier"
|
|
|
"dashoo.cn/backend/api/business/workflow"
|
|
|
@@ -35,6 +38,12 @@ type ShenHeModel struct {
|
|
|
AuditorRemark string
|
|
|
}
|
|
|
|
|
|
+type ComShenHeModel struct {
|
|
|
+ SupplierId int
|
|
|
+ SupplierTypeName string
|
|
|
+ Remark string
|
|
|
+}
|
|
|
+
|
|
|
// @Title 获取列表
|
|
|
// @Description get user by token
|
|
|
// @Success 200 {object} []annualaudit.OilAnnualAudit
|
|
|
@@ -163,6 +172,14 @@ func (this *AnnualAuditController) GetMyTaskEntityList() {
|
|
|
//找出待办任务
|
|
|
actisvc := workflow.GetActivitiService(utils.DBE)
|
|
|
certIdList := actisvc.GetMyTasks(workflow.OIL_AUDIT_APPLY, this.User.Id)
|
|
|
+ annuIdarr := strings.Split(certIdList, ",")
|
|
|
+ for i, item := range annuIdarr {
|
|
|
+ idx := strings.Index(item, "-")
|
|
|
+ if idx >= 0 {
|
|
|
+ annuIdarr[i] = strings.Split(item, "-")[0]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ certIdList = strings.Join(annuIdarr, ",")
|
|
|
where += " and Id in (" + certIdList + ")"
|
|
|
//根据部门查询待办任务
|
|
|
where += " and Status != 2 "
|
|
|
@@ -220,7 +237,7 @@ func (this *AnnualAuditController) GetDictList() {
|
|
|
}
|
|
|
// 部门
|
|
|
orgsvc := organize.GetOrganizeService(utils.DBE)
|
|
|
- dictList["Organizes"] = orgsvc.GetCollectionDetailviewlist("'"+this.User.AccCode+"'")
|
|
|
+ dictList["Organizes"] = orgsvc.GetCollectionDetailviewlist("'" + this.User.AccCode + "'")
|
|
|
//获得有专业审核接收权限的人员
|
|
|
var users1 []userRole.Base_RoleList
|
|
|
var auditWorkflow1 auditsetting.Base_OilAuditSetting
|
|
|
@@ -257,7 +274,7 @@ func (this *AnnualAuditController) GetEntity() {
|
|
|
}
|
|
|
|
|
|
// @Title 添加
|
|
|
-// @Description 新增
|
|
|
+// @Description 新增年审
|
|
|
// @Success 200 {object} controllers.Request
|
|
|
// @router /add [post]
|
|
|
func (this *AnnualAuditController) AddEntity() {
|
|
|
@@ -294,8 +311,8 @@ func (this *AnnualAuditController) AddEntity() {
|
|
|
suppliermodel = list[0]
|
|
|
model.RecUnitId = suppliermodel.RecUnitId
|
|
|
model.CerId, _ = strconv.Atoi(suppliermodel.CertId)
|
|
|
- model.Status = 0
|
|
|
- model.Step = 2
|
|
|
+ model.Status = "0"
|
|
|
+ model.Step = 1
|
|
|
model.BackReason = suppliermodel.BackReason
|
|
|
model.CreateOn = time.Now()
|
|
|
model.CreateBy = this.User.Realname
|
|
|
@@ -305,33 +322,29 @@ func (this *AnnualAuditController) AddEntity() {
|
|
|
annualId := model.Id
|
|
|
svcActiviti := workflow.GetActivitiService(utils.DBE)
|
|
|
//启动工作流
|
|
|
- processInstanceId := svcActiviti.StartProcess(workflow.OIL_AUDIT_APPLY, utils.ToStr(annualId), this.User.Id)
|
|
|
- //获得有审核权限的人员
|
|
|
- //var users []userRole.Base_RoleList
|
|
|
- //var userIds string
|
|
|
- //var auditWorkflow auditsetting.Base_OilAuditSetting
|
|
|
- //rsvc := auditsetting.GetOilAuditSettingService(utils.DBE)
|
|
|
- //rsvc.GetAuditStepRoleEntity(OilAuditSettingName, firstAudit, workflow.FIRST_TRIAL, &auditWorkflow)
|
|
|
- //users = rsvc.GetUserByRole(strconv.Itoa(auditWorkflow.RoleId), "")
|
|
|
- //for _, tmpUser := range users {
|
|
|
- // userIds += strconv.FormatInt(tmpUser.Id, 10) + ","
|
|
|
- //}
|
|
|
- //userIds = strings.Trim(userIds, ",")
|
|
|
+ businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(model.AuditIndex)
|
|
|
+ processInstanceId := svcActiviti.StartProcess(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id)
|
|
|
var ActiComplete workflow.ActiCompleteVM
|
|
|
ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
|
|
|
- ActiComplete.BusinessKey = strconv.Itoa(annualId)
|
|
|
+ ActiComplete.BusinessKey = businessKey
|
|
|
ActiComplete.UserNames = firstAudit
|
|
|
ActiComplete.UserId = this.User.Id
|
|
|
ActiComplete.Result = "1"
|
|
|
- ActiComplete.Remarks = "提交给二级单位初审"
|
|
|
+ ActiComplete.Remarks = model.Remark
|
|
|
ActiComplete.CallbackUrl = ""
|
|
|
//提交给二级单位初审
|
|
|
receiveVal := svcActiviti.TaskComplete(ActiComplete)
|
|
|
var auditmodel annualaudit.OilAnnualAudit
|
|
|
auditmodel.WorkflowId = processInstanceId
|
|
|
+ auditmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
|
|
|
+ auditmodel.AuditIndex = model.AuditIndex
|
|
|
+ auditmodel.BusinessKey = businessKey
|
|
|
cols := []string{
|
|
|
"Id",
|
|
|
"WorkflowId",
|
|
|
+ "FirstAudit",
|
|
|
+ "AuditIndex",
|
|
|
+ "BusinessKey",
|
|
|
}
|
|
|
if receiveVal == "true" {
|
|
|
_, err = svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
|
|
|
@@ -357,6 +370,87 @@ func (this *AnnualAuditController) AddEntity() {
|
|
|
|
|
|
}
|
|
|
|
|
|
+// @Title 提交审批
|
|
|
+// @Description 提交审批
|
|
|
+// @Success 200 {object} controllers.Request
|
|
|
+// @router /addauditcomm [post]
|
|
|
+func (this *AnnualAuditController) AddAuditEntity() {
|
|
|
+ var model ComShenHeModel
|
|
|
+ var errinfo ErrorDataInfo
|
|
|
+ var jsonBlob = this.Ctx.Input.RequestBody
|
|
|
+ svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
|
|
|
+ firstAudit := this.GetString("firstAudit")
|
|
|
+ json.Unmarshal(jsonBlob, &model)
|
|
|
+ where := "CerId = " + utils.ToStr(model.SupplierId) + " and SupplierTypeName = " + model.SupplierTypeName
|
|
|
+ var auditentity annualaudit.OilAnnualAudit
|
|
|
+ svc.GetEntityByWhere(""+OilAnnualAuditName, where, &auditentity)
|
|
|
+ historworkflowid := auditentity.WorkflowId
|
|
|
+ annualId := auditentity.Id
|
|
|
+ svcActiviti := workflow.GetActivitiService(utils.DBE)
|
|
|
+ //重新工作流
|
|
|
+ businessKey := utils.ToStr(annualId) + "-" + strconv.Itoa(auditentity.AuditIndex)
|
|
|
+ processInstanceId := svcActiviti.StartProcess(workflow.OIL_AUDIT_APPLY, businessKey, this.User.Id)
|
|
|
+
|
|
|
+ var ActiComplete workflow.ActiCompleteVM
|
|
|
+ ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
|
|
|
+ ActiComplete.BusinessKey = businessKey
|
|
|
+ ActiComplete.UserNames = firstAudit
|
|
|
+ ActiComplete.UserId = this.User.Id
|
|
|
+ ActiComplete.Result = "1"
|
|
|
+ ActiComplete.Remarks = model.Remark
|
|
|
+ ActiComplete.CallbackUrl = ""
|
|
|
+ //提交给二级单位初审
|
|
|
+ receiveVal := svcActiviti.TaskComplete(ActiComplete)
|
|
|
+
|
|
|
+ // 存储审批历史
|
|
|
+ var audithistoryentity audithistory.Base_AuditHistory
|
|
|
+ audithistoryentity.EntityId = annualId
|
|
|
+ audithistoryentity.WorkflowId = historworkflowid
|
|
|
+ audithistoryentity.Process = workflow.OIL_AUDIT_APPLY
|
|
|
+ audithistoryentity.BusinessKey = auditentity.BusinessKey
|
|
|
+ audithistoryentity.Type = model.SupplierTypeName
|
|
|
+ audithistoryentity.BackStep = utils.ToStr(auditentity.Status)
|
|
|
+ audithistoryentity.Index = auditentity.AuditIndex
|
|
|
+ audithistoryentity.CreateOn = time.Now()
|
|
|
+ audithistoryentity.CreateBy = this.User.Realname
|
|
|
+ audithistoryentity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
|
|
|
+ svc.InsertEntity(audithistoryentity)
|
|
|
+
|
|
|
+ var auditmodel annualaudit.OilAnnualAudit
|
|
|
+ auditmodel.WorkflowId = processInstanceId
|
|
|
+ auditmodel.Status = suppliercert.FIRST_TRIAL_STATUS //二级单位初审
|
|
|
+ auditmodel.FirstAudit, _ = strconv.Atoi(firstAudit)
|
|
|
+ auditmodel.BusinessKey = businessKey
|
|
|
+ cols := []string{
|
|
|
+ "Id",
|
|
|
+ "WorkflowId",
|
|
|
+ "Status",
|
|
|
+ "FirstAudit",
|
|
|
+ "BusinessKey",
|
|
|
+ }
|
|
|
+ if receiveVal == "true" {
|
|
|
+ _, err := svc.UpdateEntityByIdCols(annualId, auditmodel, cols)
|
|
|
+ if err == nil {
|
|
|
+ //新增
|
|
|
+ errinfo.Message = "添加成功!"
|
|
|
+ errinfo.Code = 0
|
|
|
+ errinfo.Item = annualId
|
|
|
+ this.Data["json"] = &errinfo
|
|
|
+ this.ServeJSON()
|
|
|
+ } else {
|
|
|
+ errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
|
|
|
+ errinfo.Code = -1
|
|
|
+ this.Data["json"] = &errinfo
|
|
|
+ this.ServeJSON()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ errinfo.Message = "工作流异常,请联系管理员!"
|
|
|
+ errinfo.Code = -1
|
|
|
+ this.Data["json"] = &errinfo
|
|
|
+ this.ServeJSON()
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
|
|
|
// @Title 删除单条信息
|
|
|
// @Description
|
|
|
@@ -391,7 +485,6 @@ func (this *AnnualAuditController) DeleteEntity() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// @Title 审核
|
|
|
// @Description 审核
|
|
|
// @Success 200 {object} controllers.Request
|
|
|
@@ -406,7 +499,7 @@ func (this *AnnualAuditController) AuditCallback() {
|
|
|
var err error
|
|
|
var errinfo ErrorInfo
|
|
|
var cols []string = []string{"Status"}
|
|
|
- entityempty.Status, _ = strconv.Atoi(status)
|
|
|
+ entityempty.Status = status
|
|
|
err = svc.UpdateEntityBytbl(OilAnnualAuditName, annualId, &entityempty, cols)
|
|
|
if err != nil {
|
|
|
errinfo.Message = "审核错误!"
|
|
|
@@ -425,7 +518,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
svc := annualaudit.GetOilAnnualAuditService(utils.DBE)
|
|
|
var jsonblob = this.Ctx.Input.RequestBody
|
|
|
var dataother ShenHeModel
|
|
|
- ProfAudit:= this.GetString("ProfAudit")
|
|
|
+ ProfAudit := this.GetString("ProfAudit")
|
|
|
json.Unmarshal(jsonblob, &dataother)
|
|
|
var list annualaudit.OilAnnualAudit
|
|
|
where := " Id = '" + strconv.Itoa(dataother.AnnualId) + "'"
|
|
|
@@ -436,7 +529,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
var errinfo ErrorInfo
|
|
|
var auditset []auditsetting.Base_OilAuditSetting
|
|
|
where := "OrganizeId=" + ProfAudit + " and AuditStepCode='" + workflow.PROF_RECE + "'"
|
|
|
- svc.GetEntitysByWhere(OilAuditSettingName,where, &auditset)
|
|
|
+ svc.GetEntitysByWhere(OilAuditSettingName, where, &auditset)
|
|
|
var users []userRole.Base_RoleList
|
|
|
if auditset != nil {
|
|
|
svc := auditsetting.GetOilAuditSettingService(utils.DBE)
|
|
|
@@ -449,7 +542,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
userIds = strings.Trim(userIds, ",")
|
|
|
var ActiComplete workflow.ActiCompleteVM
|
|
|
ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
|
|
|
- ActiComplete.BusinessKey = strconv.Itoa(dataother.AnnualId)
|
|
|
+ ActiComplete.BusinessKey = list.BusinessKey
|
|
|
ActiComplete.UserNames = userIds
|
|
|
ActiComplete.UserId = this.User.Id
|
|
|
ActiComplete.Result = "1"
|
|
|
@@ -458,7 +551,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
//提交给二级单位初审
|
|
|
receiveVal := svcActiviti.TaskComplete(ActiComplete)
|
|
|
var auditmodel annualaudit.OilAnnualAudit
|
|
|
- auditmodel.Status = 1
|
|
|
+ auditmodel.Status = "1"
|
|
|
cols := []string{
|
|
|
"Id",
|
|
|
"Status",
|
|
|
@@ -470,7 +563,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
errinfo.Code = 0
|
|
|
this.Data["json"] = &errinfo
|
|
|
this.ServeJSON()
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
errinfo.Message = "审核错误!" + utils.AlertProcess(err.Error())
|
|
|
errinfo.Code = -1
|
|
|
this.Data["json"] = &errinfo
|
|
|
@@ -487,7 +580,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
var errinfo ErrorInfo
|
|
|
var ActiComplete workflow.ActiCompleteVM
|
|
|
ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
|
|
|
- ActiComplete.BusinessKey = strconv.Itoa(dataother.AnnualId)
|
|
|
+ ActiComplete.BusinessKey = list.BusinessKey
|
|
|
ActiComplete.UserNames = ""
|
|
|
ActiComplete.UserId = this.User.Id
|
|
|
ActiComplete.Result = "0"
|
|
|
@@ -495,10 +588,12 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
ActiComplete.CallbackUrl = ""
|
|
|
receiveVal := svcActiviti.TaskComplete(ActiComplete)
|
|
|
var auditmodel annualaudit.OilAnnualAudit
|
|
|
- auditmodel.Status = 2
|
|
|
+ auditmodel.Status = "2"
|
|
|
+ auditmodel.AuditIndex = auditmodel.AuditIndex + 1
|
|
|
cols := []string{
|
|
|
"Id",
|
|
|
"Status",
|
|
|
+ "AuditIndex",
|
|
|
}
|
|
|
if receiveVal == "true" {
|
|
|
_, err := svc.UpdateEntityByIdCols(dataother.AnnualId, auditmodel, cols)
|
|
|
@@ -507,7 +602,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
errinfo.Code = 0
|
|
|
this.Data["json"] = &errinfo
|
|
|
this.ServeJSON()
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
errinfo.Message = "审核错误!" + utils.AlertProcess(err.Error())
|
|
|
errinfo.Code = -1
|
|
|
this.Data["json"] = &errinfo
|
|
|
@@ -519,11 +614,11 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
this.Data["json"] = &errinfo
|
|
|
this.ServeJSON()
|
|
|
}
|
|
|
- } else if dataother.SuccessStatus == 3 {
|
|
|
+ } else if dataother.SuccessStatus == 3 {
|
|
|
var errinfo ErrorInfo
|
|
|
var ActiComplete workflow.ActiCompleteVM
|
|
|
ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
|
|
|
- ActiComplete.BusinessKey = strconv.Itoa(dataother.AnnualId)
|
|
|
+ ActiComplete.BusinessKey = list.BusinessKey
|
|
|
ActiComplete.UserNames = ProfAudit
|
|
|
ActiComplete.UserId = this.User.Id
|
|
|
ActiComplete.Result = "1"
|
|
|
@@ -532,7 +627,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
//提交给业务处室专业审核
|
|
|
receiveVal := svcActiviti.TaskComplete(ActiComplete)
|
|
|
var auditmodel annualaudit.OilAnnualAudit
|
|
|
- auditmodel.Status = 3
|
|
|
+ auditmodel.Status = "3"
|
|
|
cols := []string{
|
|
|
"Id",
|
|
|
"Status",
|
|
|
@@ -544,7 +639,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
errinfo.Code = 0
|
|
|
this.Data["json"] = &errinfo
|
|
|
this.ServeJSON()
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
errinfo.Message = "分配错误!" + utils.AlertProcess(err.Error())
|
|
|
errinfo.Code = -1
|
|
|
this.Data["json"] = &errinfo
|
|
|
@@ -560,7 +655,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
var errinfo ErrorInfo
|
|
|
var ActiComplete workflow.ActiCompleteVM
|
|
|
ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
|
|
|
- ActiComplete.BusinessKey = strconv.Itoa(dataother.AnnualId)
|
|
|
+ ActiComplete.BusinessKey = list.BusinessKey
|
|
|
ActiComplete.UserNames = ""
|
|
|
ActiComplete.UserId = this.User.Id
|
|
|
ActiComplete.Result = "1"
|
|
|
@@ -568,7 +663,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
ActiComplete.CallbackUrl = ""
|
|
|
receiveVal := svcActiviti.TaskComplete(ActiComplete)
|
|
|
var auditmodel annualaudit.OilAnnualAudit
|
|
|
- auditmodel.Status = 4
|
|
|
+ auditmodel.Status = "4"
|
|
|
auditmodel.Step = 3
|
|
|
cols := []string{
|
|
|
"Id",
|
|
|
@@ -580,19 +675,19 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
paysvc := paymentinfo.GetPaymentService(utils.DBE)
|
|
|
var Amount float64
|
|
|
if list.SupplierTypeName == "01" {
|
|
|
- Amount = 6000
|
|
|
- }else if list.SupplierTypeName == "02"{
|
|
|
+ Amount = 6000
|
|
|
+ } else if list.SupplierTypeName == "02" {
|
|
|
Amount = 7000
|
|
|
- }else if list.SupplierTypeName == "03" {
|
|
|
+ } else if list.SupplierTypeName == "03" {
|
|
|
Amount = 8000
|
|
|
}
|
|
|
- err = paysvc.AddPaymentinfo(list.SupplierId, list.CerId, Amount,"2")
|
|
|
+ err = paysvc.AddPaymentinfo(list.SupplierId, list.CerId, Amount, "2")
|
|
|
if err == nil {
|
|
|
errinfo.Message = "审核通过!"
|
|
|
errinfo.Code = 0
|
|
|
this.Data["json"] = &errinfo
|
|
|
this.ServeJSON()
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
errinfo.Message = "审核错误!" + utils.AlertProcess(err.Error())
|
|
|
errinfo.Code = -1
|
|
|
this.Data["json"] = &errinfo
|
|
|
@@ -604,11 +699,11 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
this.Data["json"] = &errinfo
|
|
|
this.ServeJSON()
|
|
|
}
|
|
|
- }else if dataother.SuccessStatus == 5 {
|
|
|
+ } else if dataother.SuccessStatus == 5 {
|
|
|
var errinfo ErrorInfo
|
|
|
var ActiComplete workflow.ActiCompleteVM
|
|
|
ActiComplete.ProcessKey = workflow.OIL_AUDIT_APPLY
|
|
|
- ActiComplete.BusinessKey = strconv.Itoa(dataother.AnnualId)
|
|
|
+ ActiComplete.BusinessKey = list.BusinessKey
|
|
|
ActiComplete.UserNames = ""
|
|
|
ActiComplete.UserId = this.User.Id
|
|
|
ActiComplete.Result = "0"
|
|
|
@@ -616,7 +711,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
ActiComplete.CallbackUrl = ""
|
|
|
receiveVal := svcActiviti.TaskComplete(ActiComplete)
|
|
|
var auditmodel annualaudit.OilAnnualAudit
|
|
|
- auditmodel.Status = 5
|
|
|
+ auditmodel.Status = "5"
|
|
|
cols := []string{
|
|
|
"Id",
|
|
|
"Status",
|
|
|
@@ -628,7 +723,7 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
errinfo.Code = 0
|
|
|
this.Data["json"] = &errinfo
|
|
|
this.ServeJSON()
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
errinfo.Message = "审核错误!" + utils.AlertProcess(err.Error())
|
|
|
errinfo.Code = -1
|
|
|
this.Data["json"] = &errinfo
|
|
|
@@ -642,4 +737,3 @@ func (this *AnnualAuditController) AnnualAudit() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|