|
@@ -0,0 +1,285 @@
|
|
|
+package controllers
|
|
|
+
|
|
|
+import (
|
|
|
+ "ERP_storage/Nats/NatsServer"
|
|
|
+ "ERP_storage/conf"
|
|
|
+ "ERP_storage/models/Account"
|
|
|
+ "ERP_storage/models/Purchase"
|
|
|
+ "fmt"
|
|
|
+ "github.com/beego/beego/v2/adapter/orm"
|
|
|
+ beego "github.com/beego/beego/v2/server/web"
|
|
|
+ userlibs "gogs.baozhida.cn/zoie/ERP_libs/User"
|
|
|
+ "gogs.baozhida.cn/zoie/ERP_libs/lib"
|
|
|
+ "math"
|
|
|
+)
|
|
|
+
|
|
|
+type PurchaseController struct {
|
|
|
+ beego.Controller
|
|
|
+ User userlibs.User
|
|
|
+}
|
|
|
+
|
|
|
+func (c *PurchaseController) Prepare() {
|
|
|
+ c.User = *Account.User_r
|
|
|
+}
|
|
|
+
|
|
|
+// 部门负责人查看的权限列表
|
|
|
+func (c *PurchaseController) Purchase_List() {
|
|
|
+
|
|
|
+ // 分页参数 初始化
|
|
|
+ page, _ := c.GetInt("page")
|
|
|
+ if page < 1 {
|
|
|
+ page = 1
|
|
|
+ }
|
|
|
+ page_z, _ := c.GetInt("page_z")
|
|
|
+ if page_z < 1 {
|
|
|
+ page_z = conf.Page_size
|
|
|
+ }
|
|
|
+
|
|
|
+ T_uuid := c.GetString("T_uuid")
|
|
|
+
|
|
|
+ T_start_date := c.GetString("T_start_date") // 开始时间
|
|
|
+ T_end_date := c.GetString("T_end_date") // 结束时间
|
|
|
+
|
|
|
+ T_state, _ := c.GetInt("T_state")
|
|
|
+
|
|
|
+ userList, _ := NatsServer.Read_User_List_All()
|
|
|
+ Account.Read_User_All_Map(userList)
|
|
|
+
|
|
|
+ PurchaseDao := Purchase.NewPurchase(orm.NewOrm())
|
|
|
+ R_List, R_cnt := PurchaseDao.Read_Purchase_List(T_uuid, "", T_state, T_start_date, T_end_date, page, page_z)
|
|
|
+
|
|
|
+ var r_jsons lib.R_JSONS
|
|
|
+ r_jsons.Num = R_cnt
|
|
|
+ r_jsons.Data = R_List
|
|
|
+ r_jsons.Page = page
|
|
|
+ r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 用户采购列表
|
|
|
+func (c *PurchaseController) Purchase_User_List() {
|
|
|
+
|
|
|
+ // 分页参数 初始化
|
|
|
+ page, _ := c.GetInt("page")
|
|
|
+ if page < 1 {
|
|
|
+ page = 1
|
|
|
+ }
|
|
|
+ page_z, _ := c.GetInt("page_z")
|
|
|
+ if page_z < 1 {
|
|
|
+ page_z = conf.Page_size
|
|
|
+ }
|
|
|
+ T_start_date := c.GetString("T_start_date") // 开始时间
|
|
|
+ T_end_date := c.GetString("T_end_date") // 结束时间
|
|
|
+
|
|
|
+ T_state, _ := c.GetInt("T_state")
|
|
|
+
|
|
|
+ userList, _ := NatsServer.Read_User_List_All()
|
|
|
+ Account.Read_User_All_Map(userList)
|
|
|
+
|
|
|
+ PurchaseDao := Purchase.NewPurchase(orm.NewOrm())
|
|
|
+ R_List, R_cnt := PurchaseDao.Read_Purchase_List(c.User.T_uuid, "", T_state, T_start_date, T_end_date, page, page_z)
|
|
|
+
|
|
|
+ var r_jsons lib.R_JSONS
|
|
|
+ r_jsons.Num = R_cnt
|
|
|
+ r_jsons.Data = R_List
|
|
|
+ r_jsons.Page = page
|
|
|
+ r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func (c *PurchaseController) Purchase_Get() {
|
|
|
+
|
|
|
+ // 查询
|
|
|
+ T_id, _ := c.GetInt("T_id")
|
|
|
+
|
|
|
+ o := orm.NewOrm()
|
|
|
+ PurchaseDao := Purchase.NewPurchase(o)
|
|
|
+ purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ userList, _ := NatsServer.Read_User_List_All()
|
|
|
+ Account.Read_User_All_Map(userList)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Purchase.PurchaseToPurchase_Detail(purchase)}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func (c *PurchaseController) Purchase_Add() {
|
|
|
+
|
|
|
+ T_uuid := c.GetString("T_uuid")
|
|
|
+ T_date := c.GetString("T_date")
|
|
|
+ T_remark := c.GetString("T_remark")
|
|
|
+ T_detail := c.GetString("T_detail")
|
|
|
+ T_approver := c.GetString("T_approver")
|
|
|
+
|
|
|
+ var_ := Purchase.Purchase{
|
|
|
+ T_uuid: T_uuid,
|
|
|
+ T_submit: c.User.T_uuid,
|
|
|
+ T_date: T_date,
|
|
|
+ T_remark: T_remark,
|
|
|
+ T_detail: T_detail,
|
|
|
+ T_approver: T_approver,
|
|
|
+ T_State: Purchase.WaitPurchase,
|
|
|
+ }
|
|
|
+
|
|
|
+ o := orm.NewOrm()
|
|
|
+ PurchaseDao := Purchase.NewPurchase(o)
|
|
|
+
|
|
|
+ id, err := PurchaseDao.Add_Purchase(var_)
|
|
|
+ if err != nil {
|
|
|
+ //o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ NatsServer.AddNews(T_approver, fmt.Sprintf("【采购申请】您有一条%s的采购申请待审批", c.User.T_name), conf.PurchaseAuditUrl)
|
|
|
+
|
|
|
+ NatsServer.AddUserLogs(c.User.T_uuid, "采购", "添加", var_)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func (c *PurchaseController) Purchase_Approval() {
|
|
|
+
|
|
|
+ T_id, _ := c.GetInt("T_id")
|
|
|
+ T_State, _ := c.GetInt("T_State")
|
|
|
+
|
|
|
+ o := orm.NewOrm()
|
|
|
+ PurchaseDao := Purchase.NewPurchase(o)
|
|
|
+
|
|
|
+ purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if purchase.T_State == T_State {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 1 待采购 2 已采购
|
|
|
+ purchase.T_State = T_State
|
|
|
+ _, err = PurchaseDao.Update_Purchase(purchase, "T_State")
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if T_State == Purchase.PurchaseCompleted {
|
|
|
+ NatsServer.AddNews(purchase.T_uuid, "【采购审核】您提交的采购申请已采购", conf.MyPurchaseNewsUrl)
|
|
|
+ }
|
|
|
+ NatsServer.AddUserLogs(c.User.T_uuid, "采购申请", "采购", purchase)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+func (c *PurchaseController) Purchase_Edit() {
|
|
|
+ T_id, _ := c.GetInt("T_id")
|
|
|
+ T_uuid := c.GetString("T_uuid")
|
|
|
+ T_date := c.GetString("T_date")
|
|
|
+ T_remark := c.GetString("T_remark")
|
|
|
+ T_State, _ := c.GetInt("T_State")
|
|
|
+ T_detail := c.GetString("T_detail")
|
|
|
+ T_approver := c.GetString("T_approver")
|
|
|
+
|
|
|
+ o := orm.NewOrm()
|
|
|
+ PurchaseDao := Purchase.NewPurchase(o)
|
|
|
+
|
|
|
+ purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
|
|
|
+ if err != nil {
|
|
|
+ //o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ clos := []string{}
|
|
|
+ if len(T_uuid) > 0 {
|
|
|
+ purchase.T_uuid = T_uuid
|
|
|
+ clos = append(clos, "T_uuid")
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(T_date) > 0 {
|
|
|
+ purchase.T_date = T_date
|
|
|
+ clos = append(clos, "T_date")
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(T_remark) > 0 {
|
|
|
+ purchase.T_remark = T_remark
|
|
|
+ clos = append(clos, "T_remark")
|
|
|
+ }
|
|
|
+ if len(T_detail) > 0 {
|
|
|
+ purchase.T_detail = T_detail
|
|
|
+ clos = append(clos, "T_detail")
|
|
|
+ }
|
|
|
+ if len(T_approver) > 0 {
|
|
|
+ purchase.T_approver = T_approver
|
|
|
+ clos = append(clos, "T_approver")
|
|
|
+ }
|
|
|
+ if T_State > 0 {
|
|
|
+ purchase.T_State = T_State
|
|
|
+ clos = append(clos, "T_State")
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = PurchaseDao.Update_Purchase(purchase, clos...)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ NatsServer.AddUserLogs(c.User.T_uuid, "采购", "修改", purchase)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+func (c *PurchaseController) Purchase_Del() {
|
|
|
+
|
|
|
+ T_id, _ := c.GetInt("T_id")
|
|
|
+
|
|
|
+ o := orm.NewOrm()
|
|
|
+ PurchaseDao := Purchase.NewPurchase(o)
|
|
|
+
|
|
|
+ purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
|
|
|
+ if err != nil {
|
|
|
+ //o.Rollback()
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if purchase.T_State == 2 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "已采购,禁止删除!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ _, err = PurchaseDao.Delete_Purchase(purchase)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ NatsServer.AddUserLogs(c.User.T_uuid, "采购", "删除", purchase.Id)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|