Skip to content

Commit

Permalink
add: init
Browse files Browse the repository at this point in the history
  • Loading branch information
sshaplygin committed Jan 4, 2024
1 parent 4363584 commit d78431d
Show file tree
Hide file tree
Showing 14 changed files with 542 additions and 211 deletions.
13 changes: 0 additions & 13 deletions inn/inn.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,6 @@ import (
"github.com/sshaplygin/docs-code/utils"
)

const (
lengthLegal = 10
lengthPhysical = 12
)

type INNStruct struct {
Code models.TaxRegionCode
SerialNumber models.SerialNumber
Hash10 uint
Hash11 uint
Hash12 uint
}

// Validate check to valid inn from input string.
// example: input format is 7707083893
func Validate(inn string) (bool, error) {
Expand Down
17 changes: 17 additions & 0 deletions inn/models.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
package inn

import "github.com/sshaplygin/docs-code/models"

const packageName = "packageName"

const (
lengthLegal = 10
lengthPhysical = 12
)

type SerialNumber int

type INNStruct struct {
taxCode models.TaxRegionCode
serialNumber SerialNumber
hash10 uint
hash11 uint
hash12 uint
}
51 changes: 51 additions & 0 deletions kpp/data.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package kpp

var supportedRegistrationReason = map[RegistrationReason]string{
"01": "Постановка на учет в налоговом органе российской организации в качестве налогоплательщика по месту ее нахождения",
"02": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее филиала, исполняющего обязанности организации по уплате налогов и сборов",
"03": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее филиала, не исполняющего обязанности организации по уплате налогов и сборов",
"04": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее представительства, исполняющего обязанности организации по уплате налогов и сборов",
"05": "Постановка на учет налогоплательщика - российской организации по месту нахождения ее представительства, не исполняющего обязанности организации по уплате налогов и сборов",
"06": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств)",
"07": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств), имеющей на территории одного налогового органа число объектов имущества, превышающее 999",
"08": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему земельного участка",
"10": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему морских транспортных средств",
"12": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему речных транспортных средств",
"14": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему воздушных транспортных средств",
"16": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств",
"17": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 999",
"18": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 1998",
"19": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 2997",
"26": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему иных видов транспортных средств",
"27": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств), имеющей на территории одного налогового органа число объектов имущества, превышающее 1998",
"28": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащего ему недвижимого имущества (за исключением земельных участков и транспортных средств), имеющей на территории одного налогового органа число объектов имущества, превышающее 2997",
"29": "Постановка на учет налогоплательщика - российской организации по месту нахождения принадлежащих ему автомобильных транспортных средств, число которых на территории одного налогового органа у данной организации превышает 3996",
"30": "Постановка на учет российской организации - налогового агента, не Учтенной в качестве налогоплательщика (по месту ее нахождения)",
"31": "Постановка на учет налогоплательщика - российской организации по месту нахождения обособленного подразделения, в отношении которого не проведена процедура оформления в соответствии с пунктом 3 статьи 55 Гражданского кодекса Российской Федерации, исполняющего обязанности организации по уплате налогов и сборов",
"32": "Постановка на учет налогоплательщика - российской организации по месту нахождения обособленного подразделения, в отношении которого не проведена процедура оформления в соответствии с пунктом 3 статьи 55 Гражданского кодекса Российской Федерации, не исполняющего обязанности организации по уплате налогов и сборов",
"33": "Постановка на учет в налоговом органе организации по месту нахождения участка недр в качестве налогоплательщика налога на добычу полезных ископаемых",
"34": "Учет в налоговом органе организации в качестве налогоплательщика налога на добычу полезных ископаемых на основании сообщений от органов, осуществляющих учет и (или) регистрацию пользователей природными ресурсами, а также лицензирование деятельности, связанной с пользованием этими ресурсами, в случаях, предусмотренных пунктами приказа МНС России",
"35": "Постановка на учет организации - налогоплательщика единого налога на вмененный доход в налоговом органе по месту осуществления деятельности, подлежащей налогообложению единым налогом на вмененный доход.",
"36": "Постановка на учет в налоговом органе организации при выполнении соглашения о разделе продукции",
"37": "Постановка (восстановление с ранее присвоенным ИНН) на учет организации, ранее состоявшей на учете, в связи с внесением в ЕГРЮЛ записи об отмене судом решения о прекращении (ликвидации) юридического лица",
"40": "Учет в налоговом органе организации при возникновении у нее обязанности по уплате отдельных видов налогов, предусмотренных действующим законодательством о налогах и сборах, в случае, когда организация осуществляет деятельность вне места своего нахождения сроком менее 1 месяца, не создавая при этом обособленное подразделение и не имея недвижимое имущество или транспортные средства по месту осуществления деятельности",
"41": "Учет в налоговом органе организации, уплачивающей отдельные виды налогов, в случае отсутствия у нее на территории этого налогового органа оснований для постановки на учет",
"42": "Учет сведений об исполнении организацией - участником договора простого товарищества (договора о совместной деятельности) обязанностей по исчислению и уплате всей суммы акциза, исчисленной по операциям, осуществляемым в рамках договора простого товарищества (договора о совместной деятельности) в налоговом органе по месту ее нахождения",
"49": "Постановка на учет организации в качестве налогоплательщика налога на игорный бизнес в налоговом органе по месту установки объекта налогообложения",
"50": "Постановка на учет в налоговом органе российской организации в качестве крупнейшего налогоплательщика",
"51": "Постановка на учет отделения иностранной организации",
"52": "Постановка на учет отделения иностранной организации в Российской Федерации, созданной филиалом этой иностранной организации в иностранном государстве",
"53": "Постановка на учет отделения иностранной организации, созданной филиалом этой иностранной организации в Российской Федерации",
"60": "Постановка на учет посольства иностранного государства",
"61": "Постановка на учет консульства иностранного государства",
"62": "Постановка на учет представительства иностранного государства, приравненного к дипломатическому",
"63": "Постановка на учет международной организации",
"70": "Постановка на учет иностранной (международной) организации, имеющей недвижимое имущество в Российской Федерации, за исключением транспортных средств, относящихся к недвижимому имуществу",
"71": "Постановка на учет иностранной (международной) организации, имеющей транспортные средства в Российской Федерации, не относящиеся к недвижимому имуществу",
"72": "Постановка на учет иностранной (международной) организации, имеющей морские транспортные средства в Российской Федерации",
"73": "Постановка на учет иностранной (международной) организации, имеющей недвижимое имущество в Российской Федерации, за исключением транспортных средств, относящихся к недвижимому имуществу",
"74": "Постановка на учет иностранной (международной) организации, имеющей воздушные транспортные средства в Российской Федерации",
"75": "Постановка на учет иностранной (международной) организации, имеющей космические объекты в Российской Федерации",
"76": "Постановка на учет иностранной организации, выступающей в качестве инвестора по соглашению о разделе продукции или оператора соглашения",
"87": "Cчет иностранной (международной) организации в связи с открытием счетов в банках на территории Российской Федерации",
}
3 changes: 3 additions & 0 deletions kpp/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ package kpp
import "errors"

var (
// ErrNilKPP try call methods for nil kpp struct
ErrNilKPP = errors.New("nil kpp struct")

// ErrRegistrationReasonCode invalid registration reason code
ErrRegistrationReasonCode = errors.New("invalid registration reason code")
)
33 changes: 5 additions & 28 deletions kpp/kpp.go
Original file line number Diff line number Diff line change
@@ -1,41 +1,18 @@
package kpp

import (
"github.com/sshaplygin/docs-code/models"
"github.com/sshaplygin/docs-code/utils"
)

type KPP struct {
Code models.TaxRegionCode
Reason models.ReasonRegistration
SerialNumber models.SerialNumber
}
import "fmt"

// Validate check to valid KPP format
// example: input format is 773643301
func Validate(kpp string) (bool, error) {
if len(kpp) != 9 {
return false, &models.CommonError{
Method: packageName,
Err: models.ErrInvalidLength,
}
}

_, err := utils.StrToArr(kpp)
kppData, err := ParseKPP(kpp)
if err != nil {
return false, err
}

// todo: validate tax region/office models.TaxRegionCode(kpp[:4])

_, ok := models.SupportedRegistrationReasonSet[models.RegistrationReasonCode(kpp[4:6])]
if !ok {
return false, ErrRegistrationReasonCode
return false, fmt.Errorf("parse %s model: %w", packageName, err)
}

return true, nil
return kppData.IsValid()
}

func Generate() string {
panic("not implemented!")
return NewKPP().String()
}
7 changes: 7 additions & 0 deletions kpp/kpp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

"github.com/sshaplygin/docs-code/models"
)
Expand Down Expand Up @@ -129,3 +130,9 @@ func TestValidate(t *testing.T) {
}
})
}

func Test_Generate(t *testing.T) {
require.Panics(t, func() {
Generate()
})
}
Loading

0 comments on commit d78431d

Please sign in to comment.