Kaynağa Gözat

wip:完善开票字段

wangkaiyue 1 yıl önce
ebeveyn
işleme
a25118885e

+ 6 - 3
config.yaml

@@ -36,10 +36,13 @@ tripartite:
 company:
   name: "北京剑鱼信息技术有限公司"
   taxNum: "91110105MA020L9F6R"
-  tel: "13733157437"
-  password: "13733157437Ph"
+  account: "13733157437"    #登录账号
+  password: "13733157437Ph" #登录密码
   hfr: "贺鹏飞" #发票复核人
-  taxCode: "65658fde58ab3c2b6e5132a39fae7cb9" #开票项
+  addr: "北京市朝阳区北辰西路69号19.5、20/20.5层3单元2011号"
+  tel: "010-58772571"
+  bank: "中国光大银行股份有限公司北京分行营业室"
+  bankNum: "5000188000675662"
 
 taxCodeList: #开票项
   - name: "技术服务费"

+ 23 - 11
internal/service/invoiceMake.go

@@ -21,7 +21,7 @@ func (im *InvoiceManager) simpleMakeInvoice(ctx context.Context) (total, okNum i
 	//查询需要开票的数据
 	//(新开发票【a.invoice_status=0 AND a.invoice_changed=0】,红冲后新开【a.invoice_status=2 AND a.invoice_changed=1】)
 	//线上申请发票【invoice_order_code is null 】, 管理后台一个订单拆分多个发票【invoice_order_code not like '%,%'】
-	res, err = g.DB().Query(ctx, "SELECT a.id,a.invoice_type,a.remark,a.invoice_variety,a.taxpayer_identnum,a.company_name,a.invoice_content,a.invoice_money,b.pay_money FROM invoice a INNER JOIN dataexport_order b ON a.order_code=b.order_code WHERE a.invoice_variety like '%电子%' AND ((a.invoice_status=0 AND a.invoice_changed=0) or (a.invoice_status=2 AND a.invoice_changed=1 )) AND  (a.invoice_order_code is NULL OR a.invoice_order_code not like '%,%') AND a.create_time > ? ", consts.InvoiceStartTime.Unix())
+	res, err = g.DB().Query(ctx, "SELECT a.*,b.pay_money FROM invoice a INNER JOIN dataexport_order b ON a.order_code=b.order_code WHERE a.invoice_variety like '%电子%' AND ((a.invoice_status=0 AND a.invoice_changed=0) or (a.invoice_status=2 AND a.invoice_changed=1 )) AND  (a.invoice_order_code is NULL OR a.invoice_order_code not like '%,%') AND a.create_time > ? ", consts.InvoiceStartTime.Unix())
 	if err != nil {
 		err = gerror.Wrap(err, "simpleMakeInvoice-查询待开票异常")
 		return
@@ -48,10 +48,13 @@ func (im *InvoiceManager) simpleMakeInvoice(ctx context.Context) (total, okNum i
 		}
 
 		c := MakeInvoiceData{
-			Type:  "2",
-			Id:    fmt.Sprintf("id:%d", id), //因为orderCode不唯一,此处禁止使用orderCode
-			Notes: remark,
-			Fhr:   g.Cfg().MustGet(ctx, "company.hfr", "贺鹏飞").String(),
+			Type:    "2",
+			Id:      fmt.Sprintf("id:%d", id), //因为orderCode不唯一,此处禁止使用orderCode
+			Notes:   remark,
+			Lxdh:    gconv.String(m["phone"]),
+			Fhr:     g.Cfg().MustGet(ctx, "company.hfr", "贺鹏飞").String(),
+			Xsfkhh:  g.Cfg().MustGet(ctx, "company.bank", "").String(),
+			Xsfyhzh: g.Cfg().MustGet(ctx, "company.bankNum", "").String(),
 			InvoiceArr: []MakeInvoiceItems{{
 				Xmmc:     consts.GetTaxCodeByName(invoiceContent),  //开票项
 				WhStatus: 1,                                        //开票项是否维护
@@ -68,6 +71,9 @@ func (im *InvoiceManager) simpleMakeInvoice(ctx context.Context) (total, okNum i
 		if iType == "单位" {
 			c.Gmfmc = gconv.String(m["company_name"])
 			c.Gmfnsrsbh = gconv.String(m["taxpayer_identnum"])
+			c.Gmfdz = gconv.String(m["company_address"]) //"购买方地址"
+			c.Yhyywdmc = gconv.String(m["bank_name"])    //"购买方开户行"
+			c.Yhzh = gconv.String(m["bank_account"])     //"购买方银行账号"
 		} else {
 			c.Gmfmc = iType
 		}
@@ -98,7 +104,7 @@ func (im *InvoiceManager) multipleOrdersMakeInvoice(ctx context.Context) (total,
 		res gdb.Result
 	)
 	//(新开发票【a.invoice_status=0 AND a.invoice_changed=0】,红冲后新开【a.invoice_status=2 AND a.invoice_changed=1】)
-	res, err = g.DB().Query(ctx, "SELECT a.only_Identifying,a.invoice_type,a.remark,a.invoice_variety,a.taxpayer_identnum,a.company_name,a.invoice_content,a.invoice_money FROM invoice a WHERE a.invoice_variety like '%电子%' AND ((a.invoice_status=0 AND a.invoice_changed=0) or (a.invoice_status=2 AND a.invoice_changed=1)) AND a.invoice_order_code like '%,%' AND a.create_time > ? GROUP BY invoice_order_code", consts.InvoiceStartTime.Unix())
+	res, err = g.DB().Query(ctx, "SELECT a.only_Identifying,a.invoice_type,a.remark,a.invoice_variety,a.taxpayer_identnum,a.company_name,a.invoice_content,a.invoice_money,a.company_address,a.phone,a.bank_account,a.bank_name FROM invoice a WHERE a.invoice_variety like '%电子%' AND ((a.invoice_status=0 AND a.invoice_changed=0) or (a.invoice_status=2 AND a.invoice_changed=1)) AND a.invoice_order_code like '%,%' AND a.create_time > ? GROUP BY only_Identifying", consts.InvoiceStartTime.Unix())
 	if err != nil {
 		err = gerror.Wrap(err, "multipleOrdersMakeInvoice-查询待开票异常")
 		return
@@ -125,10 +131,13 @@ func (im *InvoiceManager) multipleOrdersMakeInvoice(ctx context.Context) (total,
 		}
 
 		c := MakeInvoiceData{
-			Type:  "2",
-			Id:    fmt.Sprintf("only_Identifying:%s", onlyIdentifying),
-			Notes: remark,
-			Fhr:   g.Cfg().MustGet(ctx, "company.hfr", "贺鹏飞").String(),
+			Type:    "2",
+			Id:      fmt.Sprintf("only_Identifying:%s", onlyIdentifying),
+			Notes:   remark,
+			Lxdh:    gconv.String(m["phone"]),
+			Fhr:     g.Cfg().MustGet(ctx, "company.hfr", "贺鹏飞").String(),
+			Xsfkhh:  g.Cfg().MustGet(ctx, "company.bank", "").String(),
+			Xsfyhzh: g.Cfg().MustGet(ctx, "company.bankNum", "").String(),
 			InvoiceArr: []MakeInvoiceItems{{
 				Xmmc:     consts.GetTaxCodeByName(invoiceContent),  //开票项
 				WhStatus: 1,                                        //开票项是否维护
@@ -144,6 +153,9 @@ func (im *InvoiceManager) multipleOrdersMakeInvoice(ctx context.Context) (total,
 		if iType == "单位" {
 			c.Gmfmc = gconv.String(m["company_name"])
 			c.Gmfnsrsbh = gconv.String(m["taxpayer_identnum"])
+			c.Gmfdz = gconv.String(m["company_address"]) //"购买方地址"
+			c.Yhyywdmc = gconv.String(m["bank_name"])    //"购买方开户行"
+			c.Yhzh = gconv.String(m["bank_account"])     //"购买方银行账号"
 		} else {
 			c.Gmfmc = iType
 		}
@@ -215,7 +227,7 @@ func (im *InvoiceManager) multipleOrdersMakeRedInvoice(ctx context.Context) (tot
 		res gdb.Result
 	)
 	//冲红任务
-	res, err = g.DB().Query(ctx, "SELECT invoice_number,billing_time FROM invoice a  WHERE a.invoice_variety like '%电子%' AND a.invoice_status=0 AND a.invoice_changed=1 AND a.invoice_order_code like '%,%' AND a.create_time > ? GROUP BY invoice_order_code", consts.InvoiceStartTime.Unix())
+	res, err = g.DB().Query(ctx, "SELECT invoice_number,billing_time FROM invoice a  WHERE a.invoice_variety like '%电子%' AND a.invoice_status=0 AND a.invoice_changed=1 AND a.invoice_order_code like '%,%' AND a.create_time > ? GROUP BY only_Identifying", consts.InvoiceStartTime.Unix())
 	if err != nil {
 		err = gerror.Wrap(err, "multipleOrdersMakeRedInvoice-查询待冲红订单异常")
 		return

+ 4 - 2
internal/service/tripartiteInvoice.go

@@ -25,6 +25,8 @@ type (
 		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"`
 	}
@@ -63,7 +65,7 @@ func (t *TripartiteAuth) makeInvoices(invoices []MakeInvoiceData) (err error) {
 		ctx   = context.Background()
 		param = makeInvoiceAllParam{
 			TaxNum: g.Cfg().MustGet(ctx, "company.taxNum").String(),
-			Tel:    g.Cfg().MustGet(ctx, "company.tel").String(),
+			Tel:    g.Cfg().MustGet(ctx, "company.account").String(),
 			Data:   invoices,
 		}
 	)
@@ -84,7 +86,7 @@ func (t *TripartiteAuth) MakeSingleRedInvoice(red MakeRedInvoiceData) (err error
 		ctx   = context.Background()
 		param = makeRedInvoiceAllParam{
 			TaxNum: g.Cfg().MustGet(ctx, "company.taxNum").String(),
-			Tel:    g.Cfg().MustGet(ctx, "company.tel").String(),
+			Tel:    g.Cfg().MustGet(ctx, "company.account").String(),
 			Data:   []MakeRedInvoiceData{red},
 		}
 	)

+ 4 - 4
internal/service/tripartiteLogin.go

@@ -29,7 +29,7 @@ func (t *TripartiteAuth) Login() error {
 		t.GetFormHeaderWithToken(),
 		g.MapStrAny{
 			"taxNum":     g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":        g.Cfg().MustGet(ctx, "company.tel"),
+			"tel":        g.Cfg().MustGet(ctx, "company.account"),
 			"password":   g.Cfg().MustGet(ctx, "company.password"),
 			"login_type": loginType,
 			"parameter":  "cccc",
@@ -87,7 +87,7 @@ func (t *TripartiteAuth) LoginAfterKeepOnline(yzm string) error {
 		t.GetFormHeaderWithToken(),
 		g.MapStrAny{
 			"taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":    g.Cfg().MustGet(ctx, "company.tel"),
+			"tel":    g.Cfg().MustGet(ctx, "company.account"),
 			"yzm":    yzm,
 		},
 		nil)
@@ -106,7 +106,7 @@ func (t *TripartiteAuth) VerifyLogin() error {
 		t.GetFormHeaderWithToken(),
 		g.MapStrAny{
 			"taxNum": g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":    g.Cfg().MustGet(ctx, "company.tel"),
+			"tel":    g.Cfg().MustGet(ctx, "company.account"),
 		},
 		nil)
 	if err != nil {
@@ -124,7 +124,7 @@ func (t *TripartiteAuth) SyncData() error {
 		t.GetFormHeaderWithToken(),
 		g.MapStrAny{
 			"taxNum":     g.Cfg().MustGet(ctx, "company.taxNum"),
-			"tel":        g.Cfg().MustGet(ctx, "company.tel"),
+			"tel":        g.Cfg().MustGet(ctx, "company.account"),
 			"start_time": "2024-01-01",
 			"end_time":   "2024-05-01",
 			"total":      10,

+ 2 - 2
internal/service/tripartiteTaxCode.go

@@ -41,7 +41,7 @@ func (t *TripartiteAuth) AddTaxCode(items []Billitem) error {
 		ctx   = context.Background()
 		param = AddTaxCodeParam{
 			TaxNum:    g.Cfg().MustGet(ctx, "company.taxNum").String(),
-			Tel:       g.Cfg().MustGet(ctx, "company.tel").String(),
+			Tel:       g.Cfg().MustGet(ctx, "company.account").String(),
 			BillItems: items,
 		}
 	)
@@ -100,7 +100,7 @@ func (t *TripartiteAuth) DelTaxCode(uuid string) error {
 		ctx   = context.Background()
 		param = AddTaxCodeParam{
 			TaxNum:    g.Cfg().MustGet(ctx, "company.taxNum").String(),
-			Tel:       g.Cfg().MustGet(ctx, "company.tel").String(),
+			Tel:       g.Cfg().MustGet(ctx, "company.account").String(),
 			BillItems: []delItem{{UUid: uuid}},
 		}
 	)