Skip to content

Commit d78431d

Browse files
committed
add: init
1 parent 4363584 commit d78431d

File tree

14 files changed

+542
-211
lines changed

14 files changed

+542
-211
lines changed

inn/inn.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,6 @@ import (
88
"github.com/sshaplygin/docs-code/utils"
99
)
1010

11-
const (
12-
lengthLegal = 10
13-
lengthPhysical = 12
14-
)
15-
16-
type INNStruct struct {
17-
Code models.TaxRegionCode
18-
SerialNumber models.SerialNumber
19-
Hash10 uint
20-
Hash11 uint
21-
Hash12 uint
22-
}
23-
2411
// Validate check to valid inn from input string.
2512
// example: input format is 7707083893
2613
func Validate(inn string) (bool, error) {

inn/models.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
11
package inn
22

3+
import "github.com/sshaplygin/docs-code/models"
4+
35
const packageName = "packageName"
6+
7+
const (
8+
lengthLegal = 10
9+
lengthPhysical = 12
10+
)
11+
12+
type SerialNumber int
13+
14+
type INNStruct struct {
15+
taxCode models.TaxRegionCode
16+
serialNumber SerialNumber
17+
hash10 uint
18+
hash11 uint
19+
hash12 uint
20+
}

kpp/data.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package kpp
2+
3+
var supportedRegistrationReason = map[RegistrationReason]string{
4+
"01": "Постановка на учет в налоговом органе российской организации в качестве налогоплательщика по месту ее нахождения",
5+
"02": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее филиала, исполняющего обязанности организации по уплате налогов и сборов",
6+
"03": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее филиала, не исполняющего обязанности организации по уплате налогов и сборов",
7+
"04": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее представительства, исполняющего обязанности организации по уплате налогов и сборов",
8+
"05": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее представительства, не исполняющего обязанности организации по уплате налогов и сборов",
9+
"06": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств)",
10+
"07": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств), имеющей на территории одного налогового органа число объектов имущества, превышающее 999",
11+
"08": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему земельного участка",
12+
"10": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему морских транспортных средств",
13+
"12": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему речных транспортных средств",
14+
"14": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему воздушных транспортных средств",
15+
"16": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств",
16+
"17": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 999",
17+
"18": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 1998",
18+
"19": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 2997",
19+
"26": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему иных видов транспортных средств",
20+
"27": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств), имеющей на территории одного налогового органа число объектов имущества, превышающее 1998",
21+
"28": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств), имеющей на территории одного налогового органа число объектов имущества, превышающее 2997",
22+
"29": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 3996",
23+
"30": "Постановка на учет российской организации - налогового агента, не Учтенной в качестве налогоплательщика (по месту ее нахождения)",
24+
"31": "Постановка на учет налогоплательщика - российской организации по месту нахождения обособленного подразделения, в отношении которого не проведена процедура оформления в соответствии с пунктом 3 статьи 55 Гражданского кодекса Российской Федерации, исполняющего обязанности организации по уплате налогов и сборов",
25+
"32": "Постановка на учет налогоплательщика - российской организации по месту нахождения обособленного подразделения, в отношении которого не проведена процедура оформления в соответствии с пунктом 3 статьи 55 Гражданского кодекса Российской Федерации, не исполняющего обязанности организации по уплате налогов и сборов",
26+
"33": "Постановка на учет в налоговом органе организации по месту нахождения участка недр в качестве налогоплательщика налога на добычу полезных ископаемых",
27+
"34": "Учет в налоговом органе организации в качестве налогоплательщика налога на добычу полезных ископаемых на основании сообщений от органов, осуществляющих учет и (или) регистрацию пользователей природными ресурсами, а также лицензирование деятельности, связанной с пользованием этими ресурсами, в случаях, предусмотренных пунктами приказа МНС России",
28+
"35": "Постановка на учет организации - налогоплательщика единого налога на вмененный доход в налоговом органе по месту осуществления деятельности, подлежащей налогообложению единым налогом на вмененный доход.",
29+
"36": "Постановка на учет в налоговом органе организации при выполнении соглашения о разделе продукции",
30+
"37": "Постановка (восстановление с ранее присвоенным ИНН) на учет организации, ранее состоявшей на учете, в связи с внесением в ЕГРЮЛ записи об отмене судом решения о прекращении (ликвидации) юридического лица",
31+
"40": "Учет в налоговом органе организации при возникновении у нее обязанности по уплате отдельных видов налогов, предусмотренных действующим законодательством о налогах и сборах, в случае, когда организация осуществляет деятельность вне места своего нахождения сроком менее 1 месяца, не создавая при этом обособленное подразделение и не имея недвижимое имущество или транспортные средства по месту осуществления деятельности",
32+
"41": "Учет в налоговом органе организации, уплачивающей отдельные виды налогов, в случае отсутствия у нее на территории этого налогового органа оснований для постановки на учет",
33+
"42": "Учет сведений об исполнении организацией - участником договора простого товарищества (договора о совместной деятельности) обязанностей по исчислению и уплате всей суммы акциза, исчисленной по операциям, осуществляемым в рамках договора простого товарищества (договора о совместной деятельности) в налоговом органе по месту ее нахождения",
34+
"49": "Постановка на учет организации в качестве налогоплательщика налога на игорный бизнес в налоговом органе по месту установки объекта налогообложения",
35+
"50": "Постановка на учет в налоговом органе российской организации в качестве крупнейшего налогоплательщика",
36+
"51": "Постановка на учет отделения иностранной организации",
37+
"52": "Постановка на учет отделения иностранной организации в Российской Федерации, созданной филиалом этой иностранной организации в иностранном государстве",
38+
"53": "Постановка на учет отделения иностранной организации, созданной филиалом этой иностранной организации в Российской Федерации",
39+
"60": "Постановка на учет посольства иностранного государства",
40+
"61": "Постановка на учет консульства иностранного государства",
41+
"62": "Постановка на учет представительства иностранного государства, приравненного к дипломатическому",
42+
"63": "Постановка на учет международной организации",
43+
"70": "Постановка на учет иностранной (международной) организации, имеющей недвижимое имущество в Российской Федерации, за исключением транспортных средств, относящихся к недвижимому имуществу",
44+
"71": "Постановка на учет иностранной (международной) организации, имеющей транспортные средства в Российской Федерации, не относящиеся к недвижимому имуществу",
45+
"72": "Постановка на учет иностранной (международной) организации, имеющей морские транспортные средства в Российской Федерации",
46+
"73": "Постановка на учет иностранной (международной) организации, имеющей недвижимое имущество в Российской Федерации, за исключением транспортных средств, относящихся к недвижимому имуществу",
47+
"74": "Постановка на учет иностранной (международной) организации, имеющей воздушные транспортные средства в Российской Федерации",
48+
"75": "Постановка на учет иностранной (международной) организации, имеющей космические объекты в Российской Федерации",
49+
"76": "Постановка на учет иностранной организации, выступающей в качестве инвестора по соглашению о разделе продукции или оператора соглашения",
50+
"87": "Cчет иностранной (международной) организации в связи с открытием счетов в банках на территории Российской Федерации",
51+
}

kpp/errors.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ package kpp
33
import "errors"
44

55
var (
6+
// ErrNilKPP try call methods for nil kpp struct
7+
ErrNilKPP = errors.New("nil kpp struct")
8+
69
// ErrRegistrationReasonCode invalid registration reason code
710
ErrRegistrationReasonCode = errors.New("invalid registration reason code")
811
)

kpp/kpp.go

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,18 @@
11
package kpp
22

3-
import (
4-
"github.com/sshaplygin/docs-code/models"
5-
"github.com/sshaplygin/docs-code/utils"
6-
)
7-
8-
type KPP struct {
9-
Code models.TaxRegionCode
10-
Reason models.ReasonRegistration
11-
SerialNumber models.SerialNumber
12-
}
3+
import "fmt"
134

145
// Validate check to valid KPP format
156
// example: input format is 773643301
167
func Validate(kpp string) (bool, error) {
17-
if len(kpp) != 9 {
18-
return false, &models.CommonError{
19-
Method: packageName,
20-
Err: models.ErrInvalidLength,
21-
}
22-
}
23-
24-
_, err := utils.StrToArr(kpp)
8+
kppData, err := ParseKPP(kpp)
259
if err != nil {
26-
return false, err
27-
}
28-
29-
// todo: validate tax region/office models.TaxRegionCode(kpp[:4])
30-
31-
_, ok := models.SupportedRegistrationReasonSet[models.RegistrationReasonCode(kpp[4:6])]
32-
if !ok {
33-
return false, ErrRegistrationReasonCode
10+
return false, fmt.Errorf("parse %s model: %w", packageName, err)
3411
}
3512

36-
return true, nil
13+
return kppData.IsValid()
3714
}
3815

3916
func Generate() string {
40-
panic("not implemented!")
17+
return NewKPP().String()
4118
}

kpp/kpp_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"testing"
66

77
"github.com/stretchr/testify/assert"
8+
"github.com/stretchr/testify/require"
89

910
"github.com/sshaplygin/docs-code/models"
1011
)
@@ -129,3 +130,9 @@ func TestValidate(t *testing.T) {
129130
}
130131
})
131132
}
133+
134+
func Test_Generate(t *testing.T) {
135+
require.Panics(t, func() {
136+
Generate()
137+
})
138+
}

0 commit comments

Comments
 (0)