package service import ( "XT_New/models" "time" ) func GetSupplyDrugList(orgid int64) (drug []*models.SpBaseDrug, err error) { db := XTReadDB().Table("xt_base_drug as x").Where("x.status = 1") if orgid > 0 { db = db.Where("x.org_id = ?", orgid) } err = db.Preload("DrugWarehouseInfo", "status = 1 and org_id = ?", orgid).Find(&drug).Error return drug, err } func GetSupplyGoodList(orgid int64) (good []*models.SpGoodInformation, err error) { db := XTReadDB().Table("xt_good_information as x").Where("x.status = 1") if orgid > 0 { db = db.Where("x.org_id = ?", orgid) } err = db.Preload("GoodWarehouseInfo", "status = 1 and org_id = ?", orgid).Find(&good).Error return good, err } func GetSupplierList(orgid int64) (suppler []*models.SpSupplierName, err error) { err = XTReadDB().Where("user_org_id = ? and status = 1", orgid).Find(&suppler).Error return suppler, err } func FindAllSupplyOrder(orgid int64) (total int64, err error) { err = XTReadDB().Model(&models.SupplierWarehouseInfo{}).Where("user_org_id = ? and status = 1", orgid).Count(&total).Error return total, err } func CreateSupplyWarehouse(info models.SupplierWarehouseInfo) error { err := XTWriteDB().Create(&info).Error return err } func FindLastSupplyWarehouseInfo(orgid int64) (models.SupplierWarehouseInfo, error) { info := models.SupplierWarehouseInfo{} err := XTReadDB().Where("user_org_id = ? and status = 1", orgid).Last(&info).Error return info, err } func CreateSupplyWarehousingOrder(order *models.SupplierWarehousingInfoOrder) error { err := XTWriteDB().Create(&order).Error return err } func GetAllPurchaseOrderList(check_id int64, startime int64, endtime int64, keyword string, page int64, limit int64, orgid int64) (info []*models.VmSupplierWarehouseInfo, total int64, err error) { db := XTReadDB().Model(&info).Where("status = 1") likeKey := "%" + keyword + "%" offset := (page - 1) * limit if check_id > 0 { db = db.Where("xt_supplier_warehouse_info.is_check = ?", check_id) } if startime > 0 { db = db.Where("xt_supplier_warehouse_info.record_date >= ?", startime) } if endtime > 0 { db = db.Where("xt_supplier_warehouse_info.record_date<=?", endtime) } if len(keyword) > 0 { db.Joins("join xt_supplier_name on xt_supplier_name.id = xt_supplier_warehouse_info.supplier_id") db = db.Where("xt_supplier_warehouse_info.number like ? or xt_supplier_name.supplier_name like ? ", likeKey, likeKey).Group("xt_supplier_warehouse_info.id") } if orgid > 0 { db = db.Where("xt_supplier_warehouse_info.user_org_id = ?", orgid) } err = db.Count(&total).Offset(offset).Limit(limit).Preload("SupplierWarehousingInfoOrder", "status= 1 and user_org_id = ?", orgid).Find(&info).Error return info, total, err } func GetSupplyWarehousingOrderInfo(id int64) (order []*models.SupplierWarehousingInfoOrder, err error) { err = XTReadDB().Where("warehousing_id = ? and status = 1", id).Find(&order).Error return order, err } func ModefySupplyWarehouseInfo(id int64, info models.SupplierWarehouseInfo) error { err := XTWriteDB().Model(&models.SupplierWarehouseInfo{}).Where("id = ? and status = 1", id).Updates(map[string]interface{}{"rate_of_concession": info.RateOfConcession, "discount_amount": info.DiscountAmount, "document_date": info.DocumentDate, "delivery_date": info.DeliveryDate, "supplier_id": info.SupplierId}).Error return err } func ModifySupplyWarehouseOrder(order *models.SupplierWarehousingInfoOrder) error { err := XTWriteDB().Model(&models.SupplierWarehousingInfoOrder{}).Where("id = ? and status = 1", order.ID).Updates(map[string]interface{}{}).Updates(map[string]interface{}{"is_source": order.IsSource, "count": order.Count, "price": order.Price, "amount": order.Amount, "remark": order.Remark, "project_id": order.ProjectId, "supply_license_number": order.SupplyLicenseNumber, "supply_type": order.SupplyType, "supply_specification_name": order.SupplySpecificationName, "supply_total": order.SupplyTotal, "supply_manufacturer": order.SupplyManufacturer, "name": order.Name}).Error return err } func UpdateSupplyWaresing(id int64, info models.SupplierWarehouseInfo) error { err := XTWriteDB().Model(&models.SupplierWarehouseInfo{}).Where("id = ? and status = 1", id).Updates(map[string]interface{}{"is_check": info.IsCheck, "checker": info.Checker, "check_time": info.CheckTime, "mtime": time.Now().Unix()}).Error return err } func GetPurchaseOrderDetail(id int64) (models.SupplierWarehouseInfo, error) { info := models.SupplierWarehouseInfo{} err := XTReadDB().Model(&info).Where("id =? and status =1", id).Find(&info).Error return info, err }