// Code generated by ent, DO NOT EDIT. package ent import ( "bj_power_mes/ent/predicate" "bj_power_mes/ent/workorder" "context" "errors" "fmt" "time" "entgo.io/ent/dialect/sql" "entgo.io/ent/dialect/sql/sqlgraph" "entgo.io/ent/schema/field" ) // WorkOrderUpdate is the builder for updating WorkOrder entities. type WorkOrderUpdate struct { config hooks []Hook mutation *WorkOrderMutation modifiers []func(*sql.UpdateBuilder) } // Where appends a list predicates to the WorkOrderUpdate builder. func (_u *WorkOrderUpdate) Where(ps ...predicate.WorkOrder) *WorkOrderUpdate { _u.mutation.Where(ps...) return _u } // SetWorkOrderNo sets the "workOrderNo" field. func (_u *WorkOrderUpdate) SetWorkOrderNo(v string) *WorkOrderUpdate { _u.mutation.SetWorkOrderNo(v) return _u } // SetNillableWorkOrderNo sets the "workOrderNo" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableWorkOrderNo(v *string) *WorkOrderUpdate { if v != nil { _u.SetWorkOrderNo(*v) } return _u } // SetProductTypeId sets the "productTypeId" field. func (_u *WorkOrderUpdate) SetProductTypeId(v int) *WorkOrderUpdate { _u.mutation.ResetProductTypeId() _u.mutation.SetProductTypeId(v) return _u } // SetNillableProductTypeId sets the "productTypeId" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableProductTypeId(v *int) *WorkOrderUpdate { if v != nil { _u.SetProductTypeId(*v) } return _u } // AddProductTypeId adds value to the "productTypeId" field. func (_u *WorkOrderUpdate) AddProductTypeId(v int) *WorkOrderUpdate { _u.mutation.AddProductTypeId(v) return _u } // SetProductCode sets the "productCode" field. func (_u *WorkOrderUpdate) SetProductCode(v string) *WorkOrderUpdate { _u.mutation.SetProductCode(v) return _u } // SetNillableProductCode sets the "productCode" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableProductCode(v *string) *WorkOrderUpdate { if v != nil { _u.SetProductCode(*v) } return _u } // SetProductName sets the "productName" field. func (_u *WorkOrderUpdate) SetProductName(v string) *WorkOrderUpdate { _u.mutation.SetProductName(v) return _u } // SetNillableProductName sets the "productName" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableProductName(v *string) *WorkOrderUpdate { if v != nil { _u.SetProductName(*v) } return _u } // SetQuantity sets the "quantity" field. func (_u *WorkOrderUpdate) SetQuantity(v int) *WorkOrderUpdate { _u.mutation.ResetQuantity() _u.mutation.SetQuantity(v) return _u } // SetNillableQuantity sets the "quantity" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableQuantity(v *int) *WorkOrderUpdate { if v != nil { _u.SetQuantity(*v) } return _u } // AddQuantity adds value to the "quantity" field. func (_u *WorkOrderUpdate) AddQuantity(v int) *WorkOrderUpdate { _u.mutation.AddQuantity(v) return _u } // SetFinishedNum sets the "finishedNum" field. func (_u *WorkOrderUpdate) SetFinishedNum(v int) *WorkOrderUpdate { _u.mutation.ResetFinishedNum() _u.mutation.SetFinishedNum(v) return _u } // SetNillableFinishedNum sets the "finishedNum" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableFinishedNum(v *int) *WorkOrderUpdate { if v != nil { _u.SetFinishedNum(*v) } return _u } // AddFinishedNum adds value to the "finishedNum" field. func (_u *WorkOrderUpdate) AddFinishedNum(v int) *WorkOrderUpdate { _u.mutation.AddFinishedNum(v) return _u } // SetFailNum sets the "failNum" field. func (_u *WorkOrderUpdate) SetFailNum(v int) *WorkOrderUpdate { _u.mutation.ResetFailNum() _u.mutation.SetFailNum(v) return _u } // SetNillableFailNum sets the "failNum" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableFailNum(v *int) *WorkOrderUpdate { if v != nil { _u.SetFailNum(*v) } return _u } // AddFailNum adds value to the "failNum" field. func (_u *WorkOrderUpdate) AddFailNum(v int) *WorkOrderUpdate { _u.mutation.AddFailNum(v) return _u } // SetProcessSeq sets the "processSeq" field. func (_u *WorkOrderUpdate) SetProcessSeq(v string) *WorkOrderUpdate { _u.mutation.SetProcessSeq(v) return _u } // SetNillableProcessSeq sets the "processSeq" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableProcessSeq(v *string) *WorkOrderUpdate { if v != nil { _u.SetProcessSeq(*v) } return _u } // SetContractNo sets the "contractNo" field. func (_u *WorkOrderUpdate) SetContractNo(v string) *WorkOrderUpdate { _u.mutation.SetContractNo(v) return _u } // SetNillableContractNo sets the "contractNo" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableContractNo(v *string) *WorkOrderUpdate { if v != nil { _u.SetContractNo(*v) } return _u } // SetProjectNo sets the "projectNo" field. func (_u *WorkOrderUpdate) SetProjectNo(v string) *WorkOrderUpdate { _u.mutation.SetProjectNo(v) return _u } // SetNillableProjectNo sets the "projectNo" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableProjectNo(v *string) *WorkOrderUpdate { if v != nil { _u.SetProjectNo(*v) } return _u } // SetProductSerial sets the "productSerial" field. func (_u *WorkOrderUpdate) SetProductSerial(v string) *WorkOrderUpdate { _u.mutation.SetProductSerial(v) return _u } // SetNillableProductSerial sets the "productSerial" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableProductSerial(v *string) *WorkOrderUpdate { if v != nil { _u.SetProductSerial(*v) } return _u } // SetStatus sets the "status" field. func (_u *WorkOrderUpdate) SetStatus(v string) *WorkOrderUpdate { _u.mutation.SetStatus(v) return _u } // SetNillableStatus sets the "status" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableStatus(v *string) *WorkOrderUpdate { if v != nil { _u.SetStatus(*v) } return _u } // SetPlanStart sets the "planStart" field. func (_u *WorkOrderUpdate) SetPlanStart(v time.Time) *WorkOrderUpdate { _u.mutation.SetPlanStart(v) return _u } // SetNillablePlanStart sets the "planStart" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillablePlanStart(v *time.Time) *WorkOrderUpdate { if v != nil { _u.SetPlanStart(*v) } return _u } // ClearPlanStart clears the value of the "planStart" field. func (_u *WorkOrderUpdate) ClearPlanStart() *WorkOrderUpdate { _u.mutation.ClearPlanStart() return _u } // SetPlanEnd sets the "planEnd" field. func (_u *WorkOrderUpdate) SetPlanEnd(v time.Time) *WorkOrderUpdate { _u.mutation.SetPlanEnd(v) return _u } // SetNillablePlanEnd sets the "planEnd" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillablePlanEnd(v *time.Time) *WorkOrderUpdate { if v != nil { _u.SetPlanEnd(*v) } return _u } // ClearPlanEnd clears the value of the "planEnd" field. func (_u *WorkOrderUpdate) ClearPlanEnd() *WorkOrderUpdate { _u.mutation.ClearPlanEnd() return _u } // SetContext sets the "context" field. func (_u *WorkOrderUpdate) SetContext(v map[string]interface{}) *WorkOrderUpdate { _u.mutation.SetContext(v) return _u } // ClearContext clears the value of the "context" field. func (_u *WorkOrderUpdate) ClearContext() *WorkOrderUpdate { _u.mutation.ClearContext() return _u } // SetCompletedAt sets the "completedAt" field. func (_u *WorkOrderUpdate) SetCompletedAt(v time.Time) *WorkOrderUpdate { _u.mutation.SetCompletedAt(v) return _u } // SetNillableCompletedAt sets the "completedAt" field if the given value is not nil. func (_u *WorkOrderUpdate) SetNillableCompletedAt(v *time.Time) *WorkOrderUpdate { if v != nil { _u.SetCompletedAt(*v) } return _u } // ClearCompletedAt clears the value of the "completedAt" field. func (_u *WorkOrderUpdate) ClearCompletedAt() *WorkOrderUpdate { _u.mutation.ClearCompletedAt() return _u } // SetUpdatedAt sets the "updatedAt" field. func (_u *WorkOrderUpdate) SetUpdatedAt(v time.Time) *WorkOrderUpdate { _u.mutation.SetUpdatedAt(v) return _u } // ClearUpdatedAt clears the value of the "updatedAt" field. func (_u *WorkOrderUpdate) ClearUpdatedAt() *WorkOrderUpdate { _u.mutation.ClearUpdatedAt() return _u } // Mutation returns the WorkOrderMutation object of the builder. func (_u *WorkOrderUpdate) Mutation() *WorkOrderMutation { return _u.mutation } // Save executes the query and returns the number of nodes affected by the update operation. func (_u *WorkOrderUpdate) Save(ctx context.Context) (int, error) { _u.defaults() return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *WorkOrderUpdate) SaveX(ctx context.Context) int { affected, err := _u.Save(ctx) if err != nil { panic(err) } return affected } // Exec executes the query. func (_u *WorkOrderUpdate) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *WorkOrderUpdate) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (_u *WorkOrderUpdate) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok && !_u.mutation.UpdatedAtCleared() { v := workorder.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *WorkOrderUpdate) check() error { if v, ok := _u.mutation.WorkOrderNo(); ok { if err := workorder.WorkOrderNoValidator(v); err != nil { return &ValidationError{Name: "workOrderNo", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.workOrderNo": %w`, err)} } } if v, ok := _u.mutation.ProductCode(); ok { if err := workorder.ProductCodeValidator(v); err != nil { return &ValidationError{Name: "productCode", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productCode": %w`, err)} } } if v, ok := _u.mutation.ProductName(); ok { if err := workorder.ProductNameValidator(v); err != nil { return &ValidationError{Name: "productName", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productName": %w`, err)} } } if v, ok := _u.mutation.ProcessSeq(); ok { if err := workorder.ProcessSeqValidator(v); err != nil { return &ValidationError{Name: "processSeq", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.processSeq": %w`, err)} } } if v, ok := _u.mutation.ContractNo(); ok { if err := workorder.ContractNoValidator(v); err != nil { return &ValidationError{Name: "contractNo", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.contractNo": %w`, err)} } } if v, ok := _u.mutation.ProjectNo(); ok { if err := workorder.ProjectNoValidator(v); err != nil { return &ValidationError{Name: "projectNo", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.projectNo": %w`, err)} } } if v, ok := _u.mutation.ProductSerial(); ok { if err := workorder.ProductSerialValidator(v); err != nil { return &ValidationError{Name: "productSerial", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productSerial": %w`, err)} } } if v, ok := _u.mutation.Status(); ok { if err := workorder.StatusValidator(v); err != nil { return &ValidationError{Name: "status", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.status": %w`, err)} } } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *WorkOrderUpdate) Modify(modifiers ...func(u *sql.UpdateBuilder)) *WorkOrderUpdate { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *WorkOrderUpdate) sqlSave(ctx context.Context) (_node int, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(workorder.Table, workorder.Columns, sqlgraph.NewFieldSpec(workorder.FieldID, field.TypeInt)) if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.WorkOrderNo(); ok { _spec.SetField(workorder.FieldWorkOrderNo, field.TypeString, value) } if value, ok := _u.mutation.ProductTypeId(); ok { _spec.SetField(workorder.FieldProductTypeId, field.TypeInt, value) } if value, ok := _u.mutation.AddedProductTypeId(); ok { _spec.AddField(workorder.FieldProductTypeId, field.TypeInt, value) } if value, ok := _u.mutation.ProductCode(); ok { _spec.SetField(workorder.FieldProductCode, field.TypeString, value) } if value, ok := _u.mutation.ProductName(); ok { _spec.SetField(workorder.FieldProductName, field.TypeString, value) } if value, ok := _u.mutation.Quantity(); ok { _spec.SetField(workorder.FieldQuantity, field.TypeInt, value) } if value, ok := _u.mutation.AddedQuantity(); ok { _spec.AddField(workorder.FieldQuantity, field.TypeInt, value) } if value, ok := _u.mutation.FinishedNum(); ok { _spec.SetField(workorder.FieldFinishedNum, field.TypeInt, value) } if value, ok := _u.mutation.AddedFinishedNum(); ok { _spec.AddField(workorder.FieldFinishedNum, field.TypeInt, value) } if value, ok := _u.mutation.FailNum(); ok { _spec.SetField(workorder.FieldFailNum, field.TypeInt, value) } if value, ok := _u.mutation.AddedFailNum(); ok { _spec.AddField(workorder.FieldFailNum, field.TypeInt, value) } if value, ok := _u.mutation.ProcessSeq(); ok { _spec.SetField(workorder.FieldProcessSeq, field.TypeString, value) } if value, ok := _u.mutation.ContractNo(); ok { _spec.SetField(workorder.FieldContractNo, field.TypeString, value) } if value, ok := _u.mutation.ProjectNo(); ok { _spec.SetField(workorder.FieldProjectNo, field.TypeString, value) } if value, ok := _u.mutation.ProductSerial(); ok { _spec.SetField(workorder.FieldProductSerial, field.TypeString, value) } if value, ok := _u.mutation.Status(); ok { _spec.SetField(workorder.FieldStatus, field.TypeString, value) } if value, ok := _u.mutation.PlanStart(); ok { _spec.SetField(workorder.FieldPlanStart, field.TypeTime, value) } if _u.mutation.PlanStartCleared() { _spec.ClearField(workorder.FieldPlanStart, field.TypeTime) } if value, ok := _u.mutation.PlanEnd(); ok { _spec.SetField(workorder.FieldPlanEnd, field.TypeTime, value) } if _u.mutation.PlanEndCleared() { _spec.ClearField(workorder.FieldPlanEnd, field.TypeTime) } if value, ok := _u.mutation.Context(); ok { _spec.SetField(workorder.FieldContext, field.TypeJSON, value) } if _u.mutation.ContextCleared() { _spec.ClearField(workorder.FieldContext, field.TypeJSON) } if value, ok := _u.mutation.CompletedAt(); ok { _spec.SetField(workorder.FieldCompletedAt, field.TypeTime, value) } if _u.mutation.CompletedAtCleared() { _spec.ClearField(workorder.FieldCompletedAt, field.TypeTime) } if value, ok := _u.mutation.UpdatedAt(); ok { _spec.SetField(workorder.FieldUpdatedAt, field.TypeTime, value) } if _u.mutation.UpdatedAtCleared() { _spec.ClearField(workorder.FieldUpdatedAt, field.TypeTime) } _spec.AddModifiers(_u.modifiers...) if _node, err = sqlgraph.UpdateNodes(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{workorder.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return 0, err } _u.mutation.done = true return _node, nil } // WorkOrderUpdateOne is the builder for updating a single WorkOrder entity. type WorkOrderUpdateOne struct { config fields []string hooks []Hook mutation *WorkOrderMutation modifiers []func(*sql.UpdateBuilder) } // SetWorkOrderNo sets the "workOrderNo" field. func (_u *WorkOrderUpdateOne) SetWorkOrderNo(v string) *WorkOrderUpdateOne { _u.mutation.SetWorkOrderNo(v) return _u } // SetNillableWorkOrderNo sets the "workOrderNo" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableWorkOrderNo(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetWorkOrderNo(*v) } return _u } // SetProductTypeId sets the "productTypeId" field. func (_u *WorkOrderUpdateOne) SetProductTypeId(v int) *WorkOrderUpdateOne { _u.mutation.ResetProductTypeId() _u.mutation.SetProductTypeId(v) return _u } // SetNillableProductTypeId sets the "productTypeId" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableProductTypeId(v *int) *WorkOrderUpdateOne { if v != nil { _u.SetProductTypeId(*v) } return _u } // AddProductTypeId adds value to the "productTypeId" field. func (_u *WorkOrderUpdateOne) AddProductTypeId(v int) *WorkOrderUpdateOne { _u.mutation.AddProductTypeId(v) return _u } // SetProductCode sets the "productCode" field. func (_u *WorkOrderUpdateOne) SetProductCode(v string) *WorkOrderUpdateOne { _u.mutation.SetProductCode(v) return _u } // SetNillableProductCode sets the "productCode" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableProductCode(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetProductCode(*v) } return _u } // SetProductName sets the "productName" field. func (_u *WorkOrderUpdateOne) SetProductName(v string) *WorkOrderUpdateOne { _u.mutation.SetProductName(v) return _u } // SetNillableProductName sets the "productName" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableProductName(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetProductName(*v) } return _u } // SetQuantity sets the "quantity" field. func (_u *WorkOrderUpdateOne) SetQuantity(v int) *WorkOrderUpdateOne { _u.mutation.ResetQuantity() _u.mutation.SetQuantity(v) return _u } // SetNillableQuantity sets the "quantity" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableQuantity(v *int) *WorkOrderUpdateOne { if v != nil { _u.SetQuantity(*v) } return _u } // AddQuantity adds value to the "quantity" field. func (_u *WorkOrderUpdateOne) AddQuantity(v int) *WorkOrderUpdateOne { _u.mutation.AddQuantity(v) return _u } // SetFinishedNum sets the "finishedNum" field. func (_u *WorkOrderUpdateOne) SetFinishedNum(v int) *WorkOrderUpdateOne { _u.mutation.ResetFinishedNum() _u.mutation.SetFinishedNum(v) return _u } // SetNillableFinishedNum sets the "finishedNum" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableFinishedNum(v *int) *WorkOrderUpdateOne { if v != nil { _u.SetFinishedNum(*v) } return _u } // AddFinishedNum adds value to the "finishedNum" field. func (_u *WorkOrderUpdateOne) AddFinishedNum(v int) *WorkOrderUpdateOne { _u.mutation.AddFinishedNum(v) return _u } // SetFailNum sets the "failNum" field. func (_u *WorkOrderUpdateOne) SetFailNum(v int) *WorkOrderUpdateOne { _u.mutation.ResetFailNum() _u.mutation.SetFailNum(v) return _u } // SetNillableFailNum sets the "failNum" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableFailNum(v *int) *WorkOrderUpdateOne { if v != nil { _u.SetFailNum(*v) } return _u } // AddFailNum adds value to the "failNum" field. func (_u *WorkOrderUpdateOne) AddFailNum(v int) *WorkOrderUpdateOne { _u.mutation.AddFailNum(v) return _u } // SetProcessSeq sets the "processSeq" field. func (_u *WorkOrderUpdateOne) SetProcessSeq(v string) *WorkOrderUpdateOne { _u.mutation.SetProcessSeq(v) return _u } // SetNillableProcessSeq sets the "processSeq" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableProcessSeq(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetProcessSeq(*v) } return _u } // SetContractNo sets the "contractNo" field. func (_u *WorkOrderUpdateOne) SetContractNo(v string) *WorkOrderUpdateOne { _u.mutation.SetContractNo(v) return _u } // SetNillableContractNo sets the "contractNo" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableContractNo(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetContractNo(*v) } return _u } // SetProjectNo sets the "projectNo" field. func (_u *WorkOrderUpdateOne) SetProjectNo(v string) *WorkOrderUpdateOne { _u.mutation.SetProjectNo(v) return _u } // SetNillableProjectNo sets the "projectNo" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableProjectNo(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetProjectNo(*v) } return _u } // SetProductSerial sets the "productSerial" field. func (_u *WorkOrderUpdateOne) SetProductSerial(v string) *WorkOrderUpdateOne { _u.mutation.SetProductSerial(v) return _u } // SetNillableProductSerial sets the "productSerial" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableProductSerial(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetProductSerial(*v) } return _u } // SetStatus sets the "status" field. func (_u *WorkOrderUpdateOne) SetStatus(v string) *WorkOrderUpdateOne { _u.mutation.SetStatus(v) return _u } // SetNillableStatus sets the "status" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableStatus(v *string) *WorkOrderUpdateOne { if v != nil { _u.SetStatus(*v) } return _u } // SetPlanStart sets the "planStart" field. func (_u *WorkOrderUpdateOne) SetPlanStart(v time.Time) *WorkOrderUpdateOne { _u.mutation.SetPlanStart(v) return _u } // SetNillablePlanStart sets the "planStart" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillablePlanStart(v *time.Time) *WorkOrderUpdateOne { if v != nil { _u.SetPlanStart(*v) } return _u } // ClearPlanStart clears the value of the "planStart" field. func (_u *WorkOrderUpdateOne) ClearPlanStart() *WorkOrderUpdateOne { _u.mutation.ClearPlanStart() return _u } // SetPlanEnd sets the "planEnd" field. func (_u *WorkOrderUpdateOne) SetPlanEnd(v time.Time) *WorkOrderUpdateOne { _u.mutation.SetPlanEnd(v) return _u } // SetNillablePlanEnd sets the "planEnd" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillablePlanEnd(v *time.Time) *WorkOrderUpdateOne { if v != nil { _u.SetPlanEnd(*v) } return _u } // ClearPlanEnd clears the value of the "planEnd" field. func (_u *WorkOrderUpdateOne) ClearPlanEnd() *WorkOrderUpdateOne { _u.mutation.ClearPlanEnd() return _u } // SetContext sets the "context" field. func (_u *WorkOrderUpdateOne) SetContext(v map[string]interface{}) *WorkOrderUpdateOne { _u.mutation.SetContext(v) return _u } // ClearContext clears the value of the "context" field. func (_u *WorkOrderUpdateOne) ClearContext() *WorkOrderUpdateOne { _u.mutation.ClearContext() return _u } // SetCompletedAt sets the "completedAt" field. func (_u *WorkOrderUpdateOne) SetCompletedAt(v time.Time) *WorkOrderUpdateOne { _u.mutation.SetCompletedAt(v) return _u } // SetNillableCompletedAt sets the "completedAt" field if the given value is not nil. func (_u *WorkOrderUpdateOne) SetNillableCompletedAt(v *time.Time) *WorkOrderUpdateOne { if v != nil { _u.SetCompletedAt(*v) } return _u } // ClearCompletedAt clears the value of the "completedAt" field. func (_u *WorkOrderUpdateOne) ClearCompletedAt() *WorkOrderUpdateOne { _u.mutation.ClearCompletedAt() return _u } // SetUpdatedAt sets the "updatedAt" field. func (_u *WorkOrderUpdateOne) SetUpdatedAt(v time.Time) *WorkOrderUpdateOne { _u.mutation.SetUpdatedAt(v) return _u } // ClearUpdatedAt clears the value of the "updatedAt" field. func (_u *WorkOrderUpdateOne) ClearUpdatedAt() *WorkOrderUpdateOne { _u.mutation.ClearUpdatedAt() return _u } // Mutation returns the WorkOrderMutation object of the builder. func (_u *WorkOrderUpdateOne) Mutation() *WorkOrderMutation { return _u.mutation } // Where appends a list predicates to the WorkOrderUpdate builder. func (_u *WorkOrderUpdateOne) Where(ps ...predicate.WorkOrder) *WorkOrderUpdateOne { _u.mutation.Where(ps...) return _u } // Select allows selecting one or more fields (columns) of the returned entity. // The default is selecting all fields defined in the entity schema. func (_u *WorkOrderUpdateOne) Select(field string, fields ...string) *WorkOrderUpdateOne { _u.fields = append([]string{field}, fields...) return _u } // Save executes the query and returns the updated WorkOrder entity. func (_u *WorkOrderUpdateOne) Save(ctx context.Context) (*WorkOrder, error) { _u.defaults() return withHooks(ctx, _u.sqlSave, _u.mutation, _u.hooks) } // SaveX is like Save, but panics if an error occurs. func (_u *WorkOrderUpdateOne) SaveX(ctx context.Context) *WorkOrder { node, err := _u.Save(ctx) if err != nil { panic(err) } return node } // Exec executes the query on the entity. func (_u *WorkOrderUpdateOne) Exec(ctx context.Context) error { _, err := _u.Save(ctx) return err } // ExecX is like Exec, but panics if an error occurs. func (_u *WorkOrderUpdateOne) ExecX(ctx context.Context) { if err := _u.Exec(ctx); err != nil { panic(err) } } // defaults sets the default values of the builder before save. func (_u *WorkOrderUpdateOne) defaults() { if _, ok := _u.mutation.UpdatedAt(); !ok && !_u.mutation.UpdatedAtCleared() { v := workorder.UpdateDefaultUpdatedAt() _u.mutation.SetUpdatedAt(v) } } // check runs all checks and user-defined validators on the builder. func (_u *WorkOrderUpdateOne) check() error { if v, ok := _u.mutation.WorkOrderNo(); ok { if err := workorder.WorkOrderNoValidator(v); err != nil { return &ValidationError{Name: "workOrderNo", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.workOrderNo": %w`, err)} } } if v, ok := _u.mutation.ProductCode(); ok { if err := workorder.ProductCodeValidator(v); err != nil { return &ValidationError{Name: "productCode", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productCode": %w`, err)} } } if v, ok := _u.mutation.ProductName(); ok { if err := workorder.ProductNameValidator(v); err != nil { return &ValidationError{Name: "productName", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productName": %w`, err)} } } if v, ok := _u.mutation.ProcessSeq(); ok { if err := workorder.ProcessSeqValidator(v); err != nil { return &ValidationError{Name: "processSeq", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.processSeq": %w`, err)} } } if v, ok := _u.mutation.ContractNo(); ok { if err := workorder.ContractNoValidator(v); err != nil { return &ValidationError{Name: "contractNo", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.contractNo": %w`, err)} } } if v, ok := _u.mutation.ProjectNo(); ok { if err := workorder.ProjectNoValidator(v); err != nil { return &ValidationError{Name: "projectNo", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.projectNo": %w`, err)} } } if v, ok := _u.mutation.ProductSerial(); ok { if err := workorder.ProductSerialValidator(v); err != nil { return &ValidationError{Name: "productSerial", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.productSerial": %w`, err)} } } if v, ok := _u.mutation.Status(); ok { if err := workorder.StatusValidator(v); err != nil { return &ValidationError{Name: "status", err: fmt.Errorf(`ent: validator failed for field "WorkOrder.status": %w`, err)} } } return nil } // Modify adds a statement modifier for attaching custom logic to the UPDATE statement. func (_u *WorkOrderUpdateOne) Modify(modifiers ...func(u *sql.UpdateBuilder)) *WorkOrderUpdateOne { _u.modifiers = append(_u.modifiers, modifiers...) return _u } func (_u *WorkOrderUpdateOne) sqlSave(ctx context.Context) (_node *WorkOrder, err error) { if err := _u.check(); err != nil { return _node, err } _spec := sqlgraph.NewUpdateSpec(workorder.Table, workorder.Columns, sqlgraph.NewFieldSpec(workorder.FieldID, field.TypeInt)) id, ok := _u.mutation.ID() if !ok { return nil, &ValidationError{Name: "id", err: errors.New(`ent: missing "WorkOrder.id" for update`)} } _spec.Node.ID.Value = id if fields := _u.fields; len(fields) > 0 { _spec.Node.Columns = make([]string, 0, len(fields)) _spec.Node.Columns = append(_spec.Node.Columns, workorder.FieldID) for _, f := range fields { if !workorder.ValidColumn(f) { return nil, &ValidationError{Name: f, err: fmt.Errorf("ent: invalid field %q for query", f)} } if f != workorder.FieldID { _spec.Node.Columns = append(_spec.Node.Columns, f) } } } if ps := _u.mutation.predicates; len(ps) > 0 { _spec.Predicate = func(selector *sql.Selector) { for i := range ps { ps[i](selector) } } } if value, ok := _u.mutation.WorkOrderNo(); ok { _spec.SetField(workorder.FieldWorkOrderNo, field.TypeString, value) } if value, ok := _u.mutation.ProductTypeId(); ok { _spec.SetField(workorder.FieldProductTypeId, field.TypeInt, value) } if value, ok := _u.mutation.AddedProductTypeId(); ok { _spec.AddField(workorder.FieldProductTypeId, field.TypeInt, value) } if value, ok := _u.mutation.ProductCode(); ok { _spec.SetField(workorder.FieldProductCode, field.TypeString, value) } if value, ok := _u.mutation.ProductName(); ok { _spec.SetField(workorder.FieldProductName, field.TypeString, value) } if value, ok := _u.mutation.Quantity(); ok { _spec.SetField(workorder.FieldQuantity, field.TypeInt, value) } if value, ok := _u.mutation.AddedQuantity(); ok { _spec.AddField(workorder.FieldQuantity, field.TypeInt, value) } if value, ok := _u.mutation.FinishedNum(); ok { _spec.SetField(workorder.FieldFinishedNum, field.TypeInt, value) } if value, ok := _u.mutation.AddedFinishedNum(); ok { _spec.AddField(workorder.FieldFinishedNum, field.TypeInt, value) } if value, ok := _u.mutation.FailNum(); ok { _spec.SetField(workorder.FieldFailNum, field.TypeInt, value) } if value, ok := _u.mutation.AddedFailNum(); ok { _spec.AddField(workorder.FieldFailNum, field.TypeInt, value) } if value, ok := _u.mutation.ProcessSeq(); ok { _spec.SetField(workorder.FieldProcessSeq, field.TypeString, value) } if value, ok := _u.mutation.ContractNo(); ok { _spec.SetField(workorder.FieldContractNo, field.TypeString, value) } if value, ok := _u.mutation.ProjectNo(); ok { _spec.SetField(workorder.FieldProjectNo, field.TypeString, value) } if value, ok := _u.mutation.ProductSerial(); ok { _spec.SetField(workorder.FieldProductSerial, field.TypeString, value) } if value, ok := _u.mutation.Status(); ok { _spec.SetField(workorder.FieldStatus, field.TypeString, value) } if value, ok := _u.mutation.PlanStart(); ok { _spec.SetField(workorder.FieldPlanStart, field.TypeTime, value) } if _u.mutation.PlanStartCleared() { _spec.ClearField(workorder.FieldPlanStart, field.TypeTime) } if value, ok := _u.mutation.PlanEnd(); ok { _spec.SetField(workorder.FieldPlanEnd, field.TypeTime, value) } if _u.mutation.PlanEndCleared() { _spec.ClearField(workorder.FieldPlanEnd, field.TypeTime) } if value, ok := _u.mutation.Context(); ok { _spec.SetField(workorder.FieldContext, field.TypeJSON, value) } if _u.mutation.ContextCleared() { _spec.ClearField(workorder.FieldContext, field.TypeJSON) } if value, ok := _u.mutation.CompletedAt(); ok { _spec.SetField(workorder.FieldCompletedAt, field.TypeTime, value) } if _u.mutation.CompletedAtCleared() { _spec.ClearField(workorder.FieldCompletedAt, field.TypeTime) } if value, ok := _u.mutation.UpdatedAt(); ok { _spec.SetField(workorder.FieldUpdatedAt, field.TypeTime, value) } if _u.mutation.UpdatedAtCleared() { _spec.ClearField(workorder.FieldUpdatedAt, field.TypeTime) } _spec.AddModifiers(_u.modifiers...) _node = &WorkOrder{config: _u.config} _spec.Assign = _node.assignValues _spec.ScanValues = _node.scanValues if err = sqlgraph.UpdateNode(ctx, _u.driver, _spec); err != nil { if _, ok := err.(*sqlgraph.NotFoundError); ok { err = &NotFoundError{workorder.Label} } else if sqlgraph.IsConstraintError(err) { err = &ConstraintError{msg: err.Error(), wrap: err} } return nil, err } _u.mutation.done = true return _node, nil }