123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- package CheckYbjc
- import (
- "git.listensoft.net/tool/jspkit/common"
- "git.listensoft.net/tool/jspkit/common/models"
- "git.listensoft.net/tool/jspkit/common/models/sb"
- "math"
- "reflect"
- "strings"
- )
- func CheckSmallVat(vat []sb.GsSmallVat, basevat []sb.GsSmallVat, hw bool) (status int, errLog string) {
- status = 1
- var errLogs []string
- // 强制校验
- {
- index1 := []string{"本期数-货物及劳务", "本期数-服务、不动产和无形资产", "本年累计-货物及劳务", "本年累计-服务、不动产和无形资产"}
- for k, v := range index1 {
- //if hw {
- // if k == 1 || k == 3 {
- // continue
- // }
- //} else {
- // if k == 0 || k == 2 {
- // continue
- // }
- //}
- if Tran(basevat[k].Yzzzsbhsxse) < Tran(vat[k].Yzzzsbhsxse) {
- errLogs = append(errLogs, v+"-应征增值税不含税销售额(3%征收率)不一致税局为:税局为"+vat[k].Yzzzsbhsxse+"系统为:"+basevat[k].Yzzzsbhsxse)
- }
- if Tran(basevat[k].Swjgdkdzzszyfpbhsxse) < Tran(vat[k].Swjgdkdzzszyfpbhsxse) {
- errLogs = append(errLogs, v+"-增值税专用发票不含税销售额:税局为"+vat[k].Swjgdkdzzszyfpbhsxse+"系统为:"+basevat[k].Swjgdkdzzszyfpbhsxse)
- }
- if Tran(basevat[k].Skqjkjdptfpbhsxse) < Tran(vat[k].Skqjkjdptfpbhsxse) {
- errLogs = append(errLogs, v+"-其他增值税发票不含税销售额:税局为"+vat[k].Skqjkjdptfpbhsxse+"系统为:"+basevat[k].Skqjkjdptfpbhsxse)
- }
- //if Tran(basevat[k].Xsczbdcbhsxse) != Tran(vat[k].Xsczbdcbhsxse) {
- // errLogs = append(errLogs, v+"-(二)应征增值税不含税销售额(5%征收率):税局为"+vat[k].Xsczbdcbhsxse+"系统为:"+basevat[k].Xsczbdcbhsxse)
- //}
- //if Tran(basevat[k].Swjgdkdzzszyfpbhsxse1) != Tran(vat[k].Swjgdkdzzszyfpbhsxse1) {
- // errLogs = append(errLogs, v+"-增值税专用发票不含税销售额:税局为"+vat[k].Swjgdkdzzszyfpbhsxse1+"系统为:"+basevat[k].Swjgdkdzzszyfpbhsxse1)
- //}
- //if Tran(basevat[k].Skqjkjdptfpbhsxse2) != Tran(vat[k].Skqjkjdptfpbhsxse2) {
- // errLogs = append(errLogs, v+"-其他增值税发票不含税销售额:税局为"+vat[k].Skqjkjdptfpbhsxse2+"系统为:"+basevat[k].Skqjkjdptfpbhsxse2)
- //}
- if Tran(basevat[k].Msxse) < Tran(vat[k].Msxse) {
- errLogs = append(errLogs, v+"-免税销售额:税局为"+vat[k].Msxse+"系统为:"+basevat[k].Msxse)
- }
- if Tran(basevat[k].Xwqymsxse) < Tran(vat[k].Xwqymsxse) {
- errLogs = append(errLogs, v+"-小微企业免税销售额:税局为"+vat[k].Xwqymsxse+"系统为:"+basevat[k].Xwqymsxse)
- }
- if Tran(basevat[k].Wdqzdxse) < Tran(vat[k].Wdqzdxse) {
- errLogs = append(errLogs, v+"-未达起征点免税销售额:税局为"+vat[k].Wdqzdxse+"系统为:"+basevat[k].Wdqzdxse)
- }
- if Tran(basevat[k].Qtmsxse) < Tran(vat[k].Qtmsxse) {
- errLogs = append(errLogs, v+"-其他免税销售额:税局为"+vat[k].Qtmsxse+"系统为:"+basevat[k].Qtmsxse)
- }
- if math.Abs(Tran(basevat[k].Bqynsejze)-Tran(vat[k].Bqynsejze)) > 0.5 { // 五毛误差
- errLogs = append(errLogs, v+"-本期应纳税额减征额:税局为"+vat[k].Bqynsejze+"系统为:"+basevat[k].Bqynsejze)
- }
- //if Tran(basevat[k].Bqmse) < Tran(vat[k].Bqmse) {
- // errLogs = append(errLogs, v+"-本期免税额:税局为"+vat[k].Bqmse+"系统为:"+basevat[k].Bqmse)
- //}
- //if Tran(basevat[k].Xwqymse) < Tran(vat[k].Xwqymse) {
- // errLogs = append(errLogs, v+"-小微企业免税额:税局为"+vat[k].Xwqymse+"系统为:"+basevat[k].Xwqymse)
- //}
- //if Tran(basevat[k].Wdqzdmse) < Tran(vat[k].Wdqzdmse) {
- // errLogs = append(errLogs, v+"-未达起征点免税额:税局为"+vat[k].Wdqzdmse+"系统为:"+basevat[k].Wdqzdmse)
- //}
- //if Tran(basevat[k].Bqybtse) != Tran(vat[k].Bqybtse) {
- // errLogs = append(errLogs, v+"-本期应补(退)税额:税局为"+vat[k].Bqybtse+"系统为:"+basevat[k].Bqybtse)
- //}
- //zaplog.LoggerS.Info(Tran(basevat[k].Cjs), Tran(vat[k].Cjs))
- //if Tran(basevat[k].Cjs) != Tran(vat[k].Cjs) {
- // errLogs = append(errLogs, v+"-城市维护建设税本期应补(退)税额:税局为"+vat[k].Cjs+"系统为:"+basevat[k].Cjs)
- //}
- //if Tran(basevat[k].Jyf) != Tran(vat[k].Jyf) {
- // errLogs = append(errLogs, v+"-教育费附加本期应补(退)费额:税局为"+vat[k].Jyf+"系统为:"+basevat[k].Jyf)
- //}
- //if Tran(basevat[k].Dfjyf) != Tran(vat[k].Dfjyf) {
- // errLogs = append(errLogs, v+"-地方教育附加本期应补(退)费额:税局为"+vat[k].Dfjyf+"系统为:"+basevat[k].Dfjyf)
- //}
- //if Tran(basevat[k].Bqyjse1) != Tran(vat[k].Bqyjse1) {
- // errLogs = append(errLogs, v+"本期预缴税额:税局为"+vat[k].Bqyjse1+"系统为:"+basevat[k].Bqyjse1)
- //}
- }
- }
- // 普通检验
- if len(errLogs) > 0 {
- status = 3
- errLog = strings.Join(errLogs, ",")
- }
- return status, errLog
- }
- func CheckSmallAttach2(Attach2 []models.GsVatFjs, baseAttach2 []models.GsVatFjs) (status int, errLog string) {
- status = 1
- // 非强制校验
- {
- var KeyNAme = []string{
- "Zzsse",
- "Bqybtse",
- }
- for _, v1 := range Attach2 {
- for _, v2 := range baseAttach2 {
- if v1.ZsxmDm == v2.ZsxmDm {
- r1 := reflect.ValueOf(v1)
- r2 := reflect.ValueOf(v2)
- for _, key_name := range KeyNAme {
- if common.StrToFloat(r1.FieldByName(key_name).String()) != common.StrToFloat(r2.FieldByName(key_name).String()) {
- status = 2
- break
- }
- }
- if status == 2 {
- break
- }
- }
- }
- if status == 2 {
- break
- }
- }
- }
- var errLogs []string
- if len(errLogs) > 0 {
- status = 3
- errLog = strings.Join(errLogs, ",")
- }
- return status, errLog
- }
- func CheckSmallJm(jm []sb.GsSmallVatReduce, Jm []sb.GsSmallVatReduce) (status int, errLog string) {
- status = 1
- var errLogs []string
- var jsxm1 []sb.GsSmallVatReduce
- for _, v := range jm {
- if v.Type == 1 && (common.StrToFloat(v.Qcye) != 0 || common.StrToFloat(v.Qmye) != 0 || common.StrToFloat(v.Bqfse) != 0 || common.StrToFloat(v.Bqydjse) != 0 || common.StrToFloat(v.Bqsjdjse) != 0) {
- jsxm1 = append(jsxm1, v)
- }
- }
- var jsxm2 []sb.GsSmallVatReduce
- for _, v := range Jm {
- if v.Type == 1 && (common.StrToFloat(v.Qcye) != 0 || common.StrToFloat(v.Qmye) != 0 || common.StrToFloat(v.Bqfse) != 0 || common.StrToFloat(v.Bqydjse) != 0 || common.StrToFloat(v.Bqsjdjse) != 0) {
- jsxm2 = append(jsxm2, v)
- }
- }
- // 非强制校验
- {
- // 减税项目
- if len(jsxm1) != len(jsxm2) {
- status = 2
- //errLogs = append(errLogs, fmt.Sprintf("税局减税项目有%d条系统有%d条", len(jsxm1), len(jsxm2)))
- }
- for _, v1 := range jsxm1 {
- find := false
- for _, v2 := range jsxm2 {
- if v1.SbJmxzdmJmHm == v2.SbJmxzdmJmHm {
- find = true
- if common.StrToFloat(v1.Qcye) == common.StrToFloat(v2.Qcye) && common.StrToFloat(v1.Qmye) == common.StrToFloat(v2.Qmye) && common.StrToFloat(v1.Bqfse) == common.StrToFloat(v2.Bqfse) && common.StrToFloat(v1.Bqydjse) == common.StrToFloat(v2.Bqydjse) {
- status = 1
- } else {
- status = 2
- }
- break
- }
- }
- if !find {
- status = 2
- //errLogs = append(errLogs, fmt.Sprintf("税局减税项目:%s 为在系统中找到,请核实", len(jsxm1), len(jsxm2)))
- }
- }
- }
- if len(errLogs) > 0 {
- status = 3
- errLog = strings.Join(errLogs, ",")
- }
- return
- }
- func Tran(a string) float64 {
- if a == "" {
- return 0
- }
- return common.StrToFloat(strings.TrimSpace(strings.ReplaceAll(a, ",", "")))
- }
|