package taxerr
type SystemErr struct {
Msg string
}
func (t *SystemErr) Error() string {
return t.Msg
}
func (t *SystemErr) Is(err error) bool {
e, ok := err.(*SystemErr)
return ok && e.Msg == t.Msg
}
func New(msg string) *SystemErr {
return &SystemErr{
Msg: msg,
}
}
func NewSystemV3(errmsg, prompt string) *SystemErr {
return &SystemErr{
Msg: `[异常]:` + errmsg + `
[操作]:` + prompt,
}
}
/*错误规范
*1.结尾不带符号
*2.表明确错误信息,做到让不懂会计的也能看懂,报表问题按税局提示即可
*3.第一句提示错误原因,之后提示办法 例如 网页请求超时,请稍后重试
*4.通用错误例如超时,找不到报表等,优先使用定义好的错误
*5.需要明确提示错误信息,用New() NewUser()方法自定义 例如 NewUser("手机号不一致,税局为xxx,系统为xxx")
*/
var TimeOut = New("请求超时,请稍后重试")
var LaunchBrowserFail = New("打开浏览器失败,请联系运维人员处理")
type WebsiteType string
const (
Tax WebsiteType = "税局" //税局和发票平台都用这个
Bank WebsiteType = "银行" //银行采集
Business WebsiteType = "工商" //工商年报
OtherSoftware WebsiteType = "其他软件"
)
// 税局卡顿统一提示
func NewWebStuckTitle(cscsts bool) *SystemErr {
if cscsts {
return NewSystemV3("电子税局网页卡顿", "系统将于30分钟后重试(可在\"通用设置\"关闭)")
} else {
return NewSystemV3("电子税局网页卡顿", "请稍后重试(可在\"通用设置\"配置自动重试)")
}
}
// 税局卡顿统一提示
func NewWebStuckTitleForErr(err string, cscsts bool) *SystemErr {
if cscsts {
return NewSystemV3(err, "系统将于30分钟后重试(可在\"通用设置\"关闭)")
} else {
return NewSystemV3(err, "请稍后重试(可在\"通用设置\"配置自动重试)")
}
}
var ContactDevHanding = NewWebStuckTitle(false)
var InvoiceAuth = NewUserV3("当前企业办税员无电票平台登录权限!", "请切换有电票平台登录权限的办税员或法定代表人后重试。")
func ErrorCompanyName(ErrName string) *SystemErr {
return NewSystemV3(`无法登录电子税局,公司名称与税局不同,税局为`+ErrName+`。`, `[操作]:请在“企业信息”修改后重试!`)
}
func ErrorCompanyNameDppt(ErrName, comName string) *UserErr {
//return NewUserV3(`无法登录全电发票平台,公司名称不一致,平台为`+ErrName+`。`, `[操作]:请在“企业信息”修改后重试!`)
return NewUserV3(`企业名称与税局不符,税局内名称为:`+ErrName+`,系统内为`+comName, `请在“企业信息”里修改企业名称"`)
}
var PilotTaxpayer = NewUserV3(`您不是电子发票服务平台用票试点纳税人`, `请前往增值税发票综合服务平台办理相关业务`)
var TickAuthenticationDppt = NewUserV3(`税局未勾选确认进项发票!`, `请在税局勾选认证进项发票后重新发起采集!`)