123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package service
- import (
- "context"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/util/gconv"
- )
- type (
- // 开发票
- makeInvoiceAllParam struct {
- TaxNum string `json:"taxNum"` //企业税号*
- Tel string `json:"tel"` //登录电子税局手机号或身份证号*
- Data []MakeInvoiceData `json:"data"`
- }
- MakeInvoiceData struct {
- Type string `json:"type"` //票类* 1 增值税专用发票;2 普通发票
- Gmfmc string `json:"gmfmc"` //购买方名称* 人名
- Gmfnsrsbh string `json:"gmfnsrsbh"` //购买方纳税人识别号* 身份证号
- Id string `json:"id"` //发票流水号* 合作商开具的发票流水号,涉及到回调通知
- Gmfdz string `json:"gmfdz"` //购买方地址
- Lxdh string `json:"lxdh"` //购买方联系方式
- Yhyywdmc string `json:"yhyywdmc"` //购买方开户行
- Yhzh string `json:"yhzh"` //购买方银行账号
- Fhr string `json:"fhr"` //复核人
- Xsfkhh string `json:"xsfkhh"` //销售方开户行
- Xsfyhzh string `json:"xsfyhzh"` //销售方银行账号
- Notes string `json:"notes"` //发票备注
- InvoiceArr []MakeInvoiceItems `json:"invoiceArr"`
- }
- MakeInvoiceItems struct {
- Xmmc string `json:"xmmc"` //项目名称*
- Je string `json:"je"` //开票金额*
- WhStatus int `json:"wh_status"` //该开票项是否已调用接口进行维护: 1 已维护;0 未维护
- Xhgg string `json:"xhgg"` //型号规格
- Dw string `json:"dw"` //单位
- Sl string `json:"sl"` //数量
- Tsaxrate string `json:"taxrate"` //税率
- }
- //红冲
- makeRedInvoiceAllParam struct {
- TaxNum string `json:"taxNum"` //企业税号*
- Tel string `json:"tel"` //登录电子税局手机号或身份证号*
- Data []MakeRedInvoiceData `json:"data"`
- }
- MakeRedInvoiceData struct {
- Num string `json:"num"` //蓝票号码
- Date string `json:"date"` //购买方名称* 人名
- }
- )
- // MakeSingleInvoice 开单张发票
- func (t *TripartiteAuth) MakeSingleInvoice(param MakeInvoiceData) (err error) {
- return t.makeInvoices([]MakeInvoiceData{param})
- }
- // MakeInvoices 开多张发票(请勿使用,阻塞任务)
- func (t *TripartiteAuth) makeInvoices(invoices []MakeInvoiceData) (err error) {
- var (
- ctx = context.Background()
- param = makeInvoiceAllParam{
- TaxNum: g.Cfg().MustGet(ctx, "company.taxNum").String(),
- Tel: g.Cfg().MustGet(ctx, "company.account").String(),
- Data: invoices,
- }
- )
- err = CommonDoPost("/index_index/makeInvoiceC",
- t.GetJsonHeaderWithToken(),
- gconv.Map(gconv.String(param)),
- nil)
- if err != nil {
- err = gerror.Wrap(err, "开票接口异常")
- return
- }
- return nil
- }
- // MakeSingleRedInvoice 红冲发票
- func (t *TripartiteAuth) MakeSingleRedInvoice(red MakeRedInvoiceData) (err error) {
- var (
- ctx = context.Background()
- param = makeRedInvoiceAllParam{
- TaxNum: g.Cfg().MustGet(ctx, "company.taxNum").String(),
- Tel: g.Cfg().MustGet(ctx, "company.account").String(),
- Data: []MakeRedInvoiceData{red},
- }
- )
- err = CommonDoPost("/index_index/makeRedC",
- t.GetJsonHeaderWithToken(),
- gconv.Map(gconv.String(param)),
- nil,
- )
- if err != nil {
- err = gerror.Wrap(err, "开票红冲异常")
- return
- }
- return nil
- }
|