package receipt import ( "context" "muyu-apiserver/gateway/internal/svc" "muyu-apiserver/gateway/internal/types" "muyu-apiserver/rpc/purchase/purchaseservice" "github.com/zeromicro/go-zero/core/logx" ) type CreatePurchaseReceiptLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewCreatePurchaseReceiptLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreatePurchaseReceiptLogic { return &CreatePurchaseReceiptLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *CreatePurchaseReceiptLogic) CreatePurchaseReceipt(req *types.CreatePurchaseReceiptReq) (*types.IdResp, error) { details := make([]*purchaseservice.PurchaseReceiptDetailReq, 0, len(req.Details)) for _, d := range req.Details { details = append(details, &purchaseservice.PurchaseReceiptDetailReq{ OrderDetailId: d.OrderDetailId, ProductId: d.ProductId, ActualQty: d.ActualQty, UnitCost: d.UnitCost, Remark: d.Remark, }) } resp, err := l.svcCtx.PurchaseRpc.CreatePurchaseReceipt(l.ctx, &purchaseservice.CreatePurchaseReceiptReq{ OrderId: req.OrderId, ReceiptDate: req.ReceiptDate, ReceivedBy: req.ReceivedBy, Remark: req.Remark, Details: details, }) if err != nil { return nil, err } return &types.IdResp{Id: resp.Id}, nil }