freee

package module
v0.0.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2024 License: MIT Imports: 14 Imported by: 0

README

freee-go

GoDoc

freee API の go クライアント

現在開発中です。

Usage

go get github.com/kurusugawa-computer/freee-go

https://developer.freee.co.jp/startguide/starting-api の手順でアプリケーションを作成し、Client IDClient Secret を取得します。
コールバックURL には http://localhost:<port>/ を指定してください。
<port> は実装するアプリケーション側で決定します。

Example

package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
	"strconv"
	"strings"

	freee "github.com/kurusugawa-computer/freee-go"
	"github.com/kurusugawa-computer/freee-go/oauth"
)

func main() {
	clientID := "xxxx"
	clientSecret := "xxxx"

	// アクセストークンを取得します。
	accessToken, err := freee.Authorize(clientID, clientSecret, 8080,
		oauth.WithPrompt(func(authorizeURL string) error {
			fmt.Println("次のURLにアクセスして認証を行ってください。")
			fmt.Println(authorizeURL)
			return nil
		}),
		oauth.WithRenderer(func(w http.ResponseWriter, authorizationCode string, err error) {
			content := "認証に成功しました。ブラウザを閉じてください。"
			if err != nil {
				content = "認証に失敗しました。ブラウザを閉じて、アプリケーションをもう一度実行してください。"
			}
			w.Header().Set("Content-Type", "text/plain; charset=UTF-8")
			w.Header().Set("Content-Length", strconv.Itoa(len(content)))
			w.WriteHeader(http.StatusOK)
			io.Copy(w, strings.NewReader(content))
		}),
	)
	if err != nil {
		log.Fatalln(err)
	}

	// freee API クライアントを作成します。
	client, err := freee.New(clientID, clientSecret, accessToken)
	if err != nil {
		log.Fatalln(err)
	}

	// ログインユーザーを取得します。
	loginUser, err := client.GetLoginUser()
	if err != nil {
		log.Fatalln(err)
	}

	fmt.Println(loginUser.ID)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WithHTTPClient added in v0.0.3

func WithHTTPClient(httpClient *http.Client) func(*opt)

func WithHooks added in v0.0.4

func WithHooks(hooks Hooks) func(*opt)

Types

type AccessToken

type AccessToken = token.TokenInfo

func Authorize

func Authorize(clientID string, clientSecret string, callbackPort int, opts ...oauth.OptFunc) (*AccessToken, error)

Authorize は freee の OAuth 認証を実行し、アクセストークンを取得します。

この関数は次の手順で OAuth 認証を行います。

  1. freee の OAUTH 認証のために一時的な HTTP サーバーを起動します。
  2. ユーザーに freee の認証 URL へアクセスすることを促します。 ※ WithPrompt でこの処理を変更できます。
  3. ユーザーが freee の認証 URL へアクセスし、ユーザー認証を行い、アプリの利用を認可すると 一時的に起動した HTTP サーバーへリダイレクトされます。 ※ リダイレクト先のレンダリング内容は WithRenderer で変更できます。
  4. 一時的に起動した HTTP サーバーはリダイレクトされた情報を検証し、認可コードを取得します。
  5. 認可コードを使用して、アクセストークンを取得します。

この関数で認証を行うには、認証したいアプリの「コールバックURL」が http://localhost:<port>/ と完全に一致している必要があります。

type AvailableTypes

type AvailableTypes struct {
	AvailableTypes []string `json:"available_types"`
	BaseDate       string   `json:"base_date"`
}

type Client

type Client struct {
	Token *tokenManager
	// contains filtered or unexported fields
}

func New

func New(clientID string, clientSecret string, accessToken *AccessToken, opts ...OptFunc) (*Client, error)

func (*Client) CreateEmployee

func (c *Client) CreateEmployee(req *CreateEmployeeRequest) (Employee, error)

CreateEmployee は従業員を新規作成します。 注意点 - 管理者権限を持ったユーザーのみ実行可能です。

func (*Client) CreateTimeClock

func (c *Client) CreateTimeClock(employeeID int, request *CreateTimeClockRequest) (TimeClock, error)

CreateTimeClock は指定した従業員の打刻情報を登録します。 注意点 - 休憩開始の連続や退勤のみなど、整合性の取れていない打刻は登録できません。 打刻可能種別の取得APIを呼ぶことで、その従業員がその時点で登録可能な打刻種別が取得できます。 - 出勤の打刻は

  • 前日の出勤時刻から24時間以内の場合、前日の退勤打刻が必須です。
  • 前日の出勤時刻から24時間経過している場合は、前日の退勤打刻がなくとも出勤打刻を登録することができます。

- 退勤の打刻は

  • 『退勤を自動打刻する』の設定を使用している場合は、出勤打刻から24時間経過しても退勤打刻がない場合に、退勤打刻が自動で登録されます。
  • すでに登録されている退勤打刻よりも後の時刻であれば上書き登録することができます。

- 打刻が日をまたぐ場合は、base_date(打刻日)に前日の日付を指定してください。 - datetime(打刻日時)を指定できるのは管理者か事務担当者の権限を持ったユーザーのみです。

func (*Client) DeleteEmployee

func (c *Client) DeleteEmployee(companyID int, employeeID int) error

DeleteEmployee は指定したIDの従業員を削除します。 注意点 - 管理者権限を持ったユーザーのみ実行可能です。

func (*Client) DeleteWorkRecord

func (c *Client) DeleteWorkRecord(companyID int, employeeID int, date Date) error

DeleteWorkRecord は指定した従業員の勤怠情報を削除します。

func (*Client) GetAvailableTypes

func (c *Client) GetAvailableTypes(companyID int, employeeID int, opts *GetAvailableTypesOpts) (AvailableTypes, error)

GetAvailableTypes は指定した従業員・日付の打刻可能種別と打刻基準日を返します。 例: すでに出勤した状態だと、休憩開始、退勤が配列で返ります。

func (*Client) GetEmployee

func (c *Client) GetEmployee(companyID int, employeeID int, year int, month int) (Employee, error)

GetEmployee は指定したIDの従業員を返します。 注意点 - 管理者権限を持ったユーザーのみ実行可能です。 - 指定した年月に退職済みユーザーは取得できません。 - 保険料計算方法が自動計算の場合、対応する保険料の直接指定金額は無視されnullが返されます。(例: 給与計算時の健康保険料の計算方法が自動計算の場合、給与計算時の健康保険料の直接指定金額はnullが返されます) - 事業所が定額制の健康保険組合に加入している場合、保険料の直接指定金額は無視されnullが返されます。

func (*Client) GetLoginUser

func (c *Client) GetLoginUser() (LoginUser, error)

GetLoginUser はこのリクエストの認可セッションにおけるログインユーザーの情報を返します。 freee人事労務では一人のログインユーザーを複数の事業所に関連付けられるため、このユーザーと関連のあるすべての事業所の情報をリストで返します。 注意点 - 他のAPIのパラメータとしてcompany_idが求められる場合は、このAPIで取得したcompany_idを使用します。 - 給与計算対象外の従業員のemployee_idとdisplay_nameは取得できません。

func (*Client) GetTimeClock

func (c *Client) GetTimeClock(companyID int, employeeID int, timeClockID int) (TimeClock, error)

GetTimeClock は指定した従業員・指定した打刻の詳細情報を返します。

func (*Client) GetWorkRecord

func (c *Client) GetWorkRecord(companyID int, employeeID int, date Date) (WorkRecord, error)

GetWorkRecord は指定した従業員・日付の勤怠情報を返します。

func (*Client) GetWorkRecordSummaries added in v0.0.10

func (c *Client) GetWorkRecordSummaries(companyID int, employeeID int, year int, month int, opts *GetWorkRecordOpts) (WorkRecordSummaries, error)

GetWorkRecordSummariesは、指定した従業員、月の勤怠情報のサマリを返します。 注意点 - work_recordsオプションにtrueを指定することで、明細となる日次の勤怠情報もあわせて返却します。

func (*Client) ListCompaniesEmployees

func (c *Client) ListCompaniesEmployees(companyID int, opts *ListAllEmployeesOpts) ([]CompaniesEmployee, error)

ListEmployees は指定した事業所に所属する従業員をリストで返します。 注意点 - 管理者権限を持ったユーザーのみ実行可能です。 - 退職ユーザーも含めて取得可能です。

func (*Client) ListEmployees

func (c *Client) ListEmployees(companyID int, year int, month int, opts *ListEmployeesOpts) (*ListEmployeeResult, error)

ListEmployees は指定した対象年月に事業所に所属する従業員のリストと、条件に一致する従業員の総数を返します。 注意点 - 管理者権限を持ったユーザーのみ実行可能です。 - 指定した年月に退職済みユーザーは取得できません。 - 保険料計算方法が自動計算の場合、対応する保険料の直接指定金額は無視されnullが返されます。(例: 給与計算時の健康保険料の計算方法が自動計算の場合、給与計算時の健康保険料の直接指定金額はnullが返されます) - 事業所が定額制の健康保険組合に加入している場合、保険料の直接指定金額は無視されnullが返されます。

func (*Client) ListTimeClocks

func (c *Client) ListTimeClocks(companyID int, employeeID int, opts *ListTimeClocksOps) ([]TimeClock, error)

ListTimeClocks は指定した従業員・期間の打刻情報を返します。

func (*Client) PutWorkRecord

func (c *Client) PutWorkRecord(employeeID int, date Date, request *PutWorkRecordRequest) (WorkRecord, error)

PutWorkRecord は指定した従業員の勤怠情報を更新します。 注意点 - 振替出勤・振替休日・代休出勤・代休の登録はAPIでは行うことができません。

func (*Client) PutWorkRecordSummaries added in v0.0.10

func (c *Client) PutWorkRecordSummaries(employeeID int, year int, month int, request *PutWorkRecordSummariesRequest) (WorkRecordSummaries, error)

PutWorkRecordSummariesは、指定した従業員、月の勤怠情報のサマリを更新します。 注意点 - 管理者権限を持ったユーザーのみ実行可能です。 - 日毎の勤怠の更新はこのAPIではできません。日毎の勤怠の操作には勤怠APIを使用して下さい。 - 勤怠データが存在しない場合は新規作成、既に存在する場合は上書き更新されます。 - 値が設定された項目のみ更新されます。値が設定されなかった場合は自動的に0が設定されます。

func (*Client) UpdateEmployee

func (c *Client) UpdateEmployee(employeeID int, request *UpdateEmployeeRequest) (Employee, error)

UpdateEmployee は指定した従業員の情報を更新します。 注意点 - 管理者権限を持ったユーザーのみ実行可能です。

type CompaniesEmployee

type CompaniesEmployee struct {
	ID                 int     `json:"id"`
	Num                *string `json:"num"`
	DisplayName        string  `json:"display_name"`
	EntryDate          string  `json:"entry_date"`
	RetireDate         *string `json:"retire_date"`
	UserID             int     `json:"user_id"`
	Email              *string `json:"email"`
	PayrollCalculation bool    `json:"payroll_calculation"`
	ClosingDay         *int    `json:"closing_day"`
	PayDay             *int    `json:"pay_day"`
	MonthOfPayDay      *string `json:"month_of_pay_day"`
}

type CreateEmployeeRequest

type CreateEmployeeRequest struct {
	CompanyID int                           `json:"company_id"`
	Employee  CreateEmployeeRequestEmployee `json:"employee"`
}

type CreateEmployeeRequestEmployee added in v0.0.8

type CreateEmployeeRequestEmployee struct {
	Num                          string `json:"num,omitempty"`
	WorkingHoursSystemName       string `json:"working_hours_system_name,omitempty"`
	CompanyReferenceDateRuleName string `json:"company_reference_date_rule_name,omitempty"`
	LastName                     string `json:"last_name"`
	FirstName                    string `json:"first_name"`
	LastNameKana                 string `json:"last_name_kana"`
	FirstNameKana                string `json:"first_name_kana"`
	BirthDate                    Date   `json:"birth_date"`
	EntryDate                    Date   `json:"entry_date"`
	PayCalcType                  string `json:"pay_calc_type,omitempty"`
	PayAmount                    *int   `json:"pay_amount,omitempty"`
	Gender                       string `json:"gender,omitempty"`
	Married                      *bool  `json:"married,omitempty"`
	NoPayrollCalculation         *bool  `json:"no_payroll_calculation,omitempty"`
}

type CreateTimeClockRequest

type CreateTimeClockRequest struct {
	CompanyID int       `json:"company_id"`
	Type      string    `json:"type"`
	BaseDate  *Date     `json:"base_date,omitempty"`
	Datetime  *DateTime `json:"datetime,omitempty"`
}

type Date added in v0.0.8

type Date time.Time

func NewDate added in v0.0.8

func NewDate(year int, month time.Month, day int) *Date

func (*Date) MarshalJSON added in v0.0.8

func (d *Date) MarshalJSON() ([]byte, error)

func (*Date) String added in v0.0.8

func (d *Date) String() string

type DateTime added in v0.0.8

type DateTime time.Time

func NewDateTime added in v0.0.8

func NewDateTime(year int, month time.Month, day int, hour int, min int, sec int) *DateTime

func NewTime added in v0.0.8

func NewTime(hour int, min int, sec int) *DateTime

func (*DateTime) MarshalJSON added in v0.0.8

func (d *DateTime) MarshalJSON() ([]byte, error)

func (*DateTime) String added in v0.0.8

func (d *DateTime) String() string

type DayPattern added in v0.0.10

type DayPattern string
const (
	NormalDay         DayPattern = "normal_day"
	PrescribedHoliday DayPattern = "prescribed_holiday"
	LegalHoliday      DayPattern = "legal_holiday"
)

type DaysAndHours added in v0.0.10

type DaysAndHours struct {
	Days  float32 `json:"days"`
	Hours int     `json:"hours"`
}

type Employee

type Employee struct {
	ID                                 int     `json:"id"`
	CompanyID                          int     `json:"company_id"`
	Num                                *string `json:"num"`
	DisplayName                        string  `json:"display_name"`
	BasePensionNum                     *string `json:"base_pension_num"`
	EmploymentInsuranceReferenceNumber string  `json:"employment_insurance_reference_number"`
	BirthDate                          string  `json:"birth_date"`
	EntryDate                          string  `json:"entry_date"`
	RetireDate                         *string `json:"retire_date"`
	UserID                             *int    `json:"user_id"`
	ProfileRule                        struct {
		ID                        int     `json:"id"`
		CompanyID                 int     `json:"company_id"`
		EmployeeID                int     `json:"employee_id"`
		LastName                  string  `json:"last_name"`
		FirstName                 string  `json:"first_name"`
		LastNameKana              string  `json:"last_name_kana"`
		FirstNameKana             string  `json:"first_name_kana"`
		Zipcode1                  *string `json:"zipcode1"`
		Zipcode2                  *string `json:"zipcode2"`
		PrefectureCode            *int    `json:"prefecture_code"`
		Address                   *string `json:"address"`
		AddressKana               *string `json:"address_kana"`
		Phone1                    *string `json:"phone1"`
		Phone2                    *string `json:"phone2"`
		Phone3                    *string `json:"phone3"`
		ResidentialZipcode1       *string `json:"residential_zipcode1"`
		ResidentialZipcode2       *string `json:"residential_zipcode2"`
		ResidentialPrefectureCode *int    `json:"residential_prefecture_code"`
		ResidentialAddress        *string `json:"residential_address"`
		ResidentialAddressKana    *string `json:"residential_address_kana"`
		EmploymentType            *string `json:"employment_type"`
		Title                     *string `json:"title"`
		Gender                    string  `json:"gender"`
		Married                   bool    `json:"married"`
		IsWorkingStudent          bool    `json:"is_working_student"`
		WidowType                 string  `json:"widow_type"`
		DisabilityType            string  `json:"disability_type"`
		Email                     *string `json:"email"`
		HouseholderName           string  `json:"householder_name"`
		Householder               *string `json:"householder"`
	} `json:"profile_rule"`
	HealthInsuranceRule struct {
		ID                                          int      `json:"id"`
		CompanyID                                   int      `json:"company_id"`
		EmployeeID                                  int      `json:"employee_id"`
		Entried                                     bool     `json:"entried"`
		HealthInsuranceSalaryCalcType               string   `json:"health_insurance_salary_calc_type"`
		HealthInsuranceBonusCalcType                string   `json:"health_insurance_bonus_calc_type"`
		ManualHealthInsuranceAmountOfEmployeeSalary *int     `json:"manual_health_insurance_amount_of_employee_salary"`
		ManualHealthInsuranceAmountOfEmployeeBonus  *int     `json:"manual_health_insurance_amount_of_employee_bonus"`
		ManualHealthInsuranceAmountOfCompanySalary  *float64 `json:"manual_health_insurance_amount_of_company_salary"`
		ManualHealthInsuranceAmountOfCompanyBonus   *float64 `json:"manual_health_insurance_amount_of_company_bonus"`
		CareInsuranceSalaryCalcType                 string   `json:"care_insurance_salary_calc_type"`
		CareInsuranceBonusCalcType                  string   `json:"care_insurance_bonus_calc_type"`
		ManualCareInsuranceAmountOfEmployeeSalary   *int     `json:"manual_care_insurance_amount_of_employee_salary"`
		ManualCareInsuranceAmountOfEmployeeBonus    *int     `json:"manual_care_insurance_amount_of_employee_bonus"`
		ManualCareInsuranceAmountOfCompanySalary    *float64 `json:"manual_care_insurance_amount_of_company_salary"`
		ManualCareInsuranceAmountOfCompanyBonus     *float64 `json:"manual_care_insurance_amount_of_company_bonus"`
		ReferenceNum                                *string  `json:"reference_num"`
		StandardMonthlyRemuneration                 int      `json:"standard_monthly_remuneration"`
	} `json:"health_insurance_rule"`
	WelfarePensionInsuranceRule struct {
		ID                                                  int      `json:"id"`
		ChildAllowanceContributionBonusCalcType             string   `json:"child_allowance_contribution_bonus_calc_type"`
		ChildAllowanceContributionSalaryCalcType            string   `json:"child_allowance_contribution_salary_calc_type"`
		CompanyID                                           int      `json:"company_id"`
		EmployeeID                                          int      `json:"employee_id"`
		Entried                                             bool     `json:"entried"`
		ManualChildAllowanceContributionAmountBonus         *float64 `json:"manual_child_allowance_contribution_amount_bonus"`
		ManualChildAllowanceContributionAmountSalary        *float64 `json:"manual_child_allowance_contribution_amount_salary"`
		ManualWelfarePensionInsuranceAmountOfCompanyBonus   *float64 `json:"manual_welfare_pension_insurance_amount_of_company_bonus"`
		ManualWelfarePensionInsuranceAmountOfCompanySalary  *float64 `json:"manual_welfare_pension_insurance_amount_of_company_salary"`
		ManualWelfarePensionInsuranceAmountOfEmployeeBonus  *int     `json:"manual_welfare_pension_insurance_amount_of_employee_bonus"`
		ManualWelfarePensionInsuranceAmountOfEmployeeSalary *int     `json:"manual_welfare_pension_insurance_amount_of_employee_salary"`
		ReferenceNum                                        *string  `json:"reference_num"`
		StandardMonthlyRemuneration                         int      `json:"standard_monthly_remuneration"`
		WelfarePensionInsuranceBonusCalcType                string   `json:"welfare_pension_insurance_bonus_calc_type"`
		WelfarePensionInsuranceSalaryCalcType               string   `json:"welfare_pension_insurance_salary_calc_type"`
	} `json:"welfare_pension_insurance_rule"`
	DependentRules []struct {
		ID                                                  int     `json:"id"`
		CompanyID                                           int     `json:"company_id"`
		EmployeeID                                          int     `json:"employee_id"`
		LastName                                            string  `json:"last_name"`
		FirstName                                           string  `json:"first_name"`
		LastNameKana                                        *string `json:"last_name_kana"`
		FirstNameKana                                       *string `json:"first_name_kana"`
		Gender                                              string  `json:"gender"`
		Relationship                                        string  `json:"relationship"`
		BirthDate                                           string  `json:"birth_date"`
		ResidenceType                                       string  `json:"residence_type"`
		Zipcode1                                            *string `json:"zipcode1"`
		Zipcode2                                            *string `json:"zipcode2"`
		PrefectureCode                                      *int    `json:"prefecture_code"`
		Address                                             *string `json:"address"`
		AddressKana                                         *string `json:"address_kana"`
		BasePensionNum                                      *string `json:"base_pension_num"`
		Income                                              int     `json:"income"`
		AnnualRevenue                                       int     `json:"annual_revenue"`
		DisabilityType                                      string  `json:"disability_type"`
		Occupation                                          *string `json:"occupation"`
		AnnualRemittanceAmount                              int     `json:"annual_remittance_amount"`
		EmploymentInsuranceReceiveStatus                    *string `json:"employment_insurance_receive_status"`
		EmploymentInsuranceReceivesFrom                     *string `json:"employment_insurance_receives_from"`
		PhoneType                                           *string `json:"phone_type"`
		Phone1                                              *string `json:"phone1"`
		Phone2                                              *string `json:"phone2"`
		Phone3                                              *string `json:"phone3"`
		SocialInsuranceAndTaxDependent                      string  `json:"social_insurance_and_tax_dependent"`
		SocialInsuranceDependentAcquisitionDate             *string `json:"social_insurance_dependent_acquisition_date"`
		SocialInsuranceDependentAcquisitionReason           string  `json:"social_insurance_dependent_acquisition_reason"`
		SocialInsuranceOtherDependentAcquisitionReason      *string `json:"social_insurance_other_dependent_acquisition_reason"`
		SocialInsuranceDependentDisqualificationDate        *string `json:"social_insurance_dependent_disqualification_date"`
		SocialInsuranceDependentDisqualificationReason      string  `json:"social_insurance_dependent_disqualification_reason"`
		SocialInsuranceOtherDependentDisqualificationReason *string `json:"social_insurance_other_dependent_disqualification_reason"`
		TaxDependentAcquisitionDate                         *string `json:"tax_dependent_acquisition_date"`
		TaxDependentAcquisitionReason                       string  `json:"tax_dependent_acquisition_reason"`
		TaxOtherDependentAcquisitionReason                  *string `json:"tax_other_dependent_acquisition_reason"`
		TaxDependentDisqualificationDate                    *string `json:"tax_dependent_disqualification_date"`
		TaxDependentDisqualificationReason                  string  `json:"tax_dependent_disqualification_reason"`
		TaxOtherDependentDisqualificationReason             *string `json:"tax_other_dependent_disqualification_reason"`
		NonResidentDependentsReason                         string  `json:"non_resident_dependents_reason"`
	} `json:"dependent_rules"`
	BankAccountRule struct {
		ID             int     `json:"id"`
		CompanyID      int     `json:"company_id"`
		EmployeeID     int     `json:"employee_id"`
		BankName       *string `json:"bank_name"`
		BankNameKana   *string `json:"bank_name_kana"`
		BankCode       *string `json:"bank_code"`
		BranchName     *string `json:"branch_name"`
		BranchNameKana *string `json:"branch_name_kana"`
		BranchCode     *string `json:"branch_code"`
		AccountNumber  *string `json:"account_number"`
		AccountName    *string `json:"account_name"`
		AccountType    *string `json:"account_type"`
	} `json:"bank_account_rule"`
	BasicPayRule struct {
		ID          int    `json:"id"`
		CompanyID   int    `json:"company_id"`
		EmployeeID  int    `json:"employee_id"`
		PayCalcType string `json:"pay_calc_type"`
		PayAmount   int    `json:"pay_amount"`
	} `json:"basic_pay_rule"`
	PayrollCalculation           bool    `json:"payroll_calculation"`
	CompanyReferenceDateRuleName *string `json:"company_reference_date_rule_name"`
}

type GetAvailableTypesOpts

type GetAvailableTypesOpts struct {
	Date *Date // 従業員情報を取得したい年月日(YYYY-MM-DD)(例:2018-08-01)(デフォルト:当日)
}

type GetWorkRecordOpts added in v0.0.10

type GetWorkRecordOpts struct {
	WorkRecords bool // サマリ情報に日次の勤怠情報を含める(true/false)(デフォルト: false)
}

type Hooks added in v0.0.4

type Hooks struct {
	BeforeRequest func(*http.Request) (*http.Request, error)
	AfterResponse func(*http.Response) (*http.Response, error)
}

type ListAllEmployeesOpts

type ListAllEmployeesOpts struct {
	Limit                    int  // 取得レコードの件数 (デフォルト: 50, 最小: 1, 最大: 100)
	Offset                   int  // 取得レコードのオフセット (デフォルト: 0)
	WithNoPayrollCalculation bool // trueを指定すると給与計算対象外の従業員情報をレスポンスに含めます。
}

type ListEmployeeResult added in v0.0.8

type ListEmployeeResult struct {
	Employees  []Employee `json:"employees"`
	TotalCount int        `json:"total_count"`
}

type ListEmployeesOpts

type ListEmployeesOpts struct {
	Limit                    int  // 取得レコードの件数 (デフォルト: 50, 最小: 1, 最大: 100)
	Offset                   int  // 取得レコードのオフセット (デフォルト: 0)
	WithNoPayrollCalculation bool // trueを指定すると給与計算対象外の従業員情報をレスポンスに含めます。
}

type ListTimeClocksOps

type ListTimeClocksOps struct {
	FromDate *Date // 取得する打刻期間の開始日(YYYY-MM-DD)(例:2018-08-01)(デフォルト: 当月の打刻開始日)
	ToDate   *Date // 取得する打刻期間の終了日(YYYY-MM-DD)(例:2018-08-31)(デフォルト: 当日)
	Limit    int   // 取得レコードの件数 (デフォルト: 50, 最小: 1, 最大: 100)
	Offset   int   // 取得レコードのオフセット (デフォルト: 0)
}

type LoginUser

type LoginUser struct {
	ID        int `json:"id"`
	Companies []struct {
		ID          int     `json:"id"`
		Name        string  `json:"name"`
		Role        string  `json:"role"` // company_admin, self_only, clerk
		ExternalCID string  `json:"external_cid"`
		EmployeeID  *int    `json:"employee_id"`
		DisplayName *string `json:"display_name"`
	} `json:"companies"`
}

type OptFunc added in v0.0.3

type OptFunc func(*opt)

type PutWorkRecordBreakRecord added in v0.0.8

type PutWorkRecordBreakRecord struct {
	ClockInAt  DateTime `json:"clock_in_at,omitempty"`
	ClockOutAt DateTime `json:"clock_out_at,omitempty"`
}

type PutWorkRecordRequest

type PutWorkRecordRequest struct {
	CompanyID                int                        `json:"company_id"`
	BreakRecords             []PutWorkRecordBreakRecord `json:"break_records,omitempty"`
	ClockInAt                *DateTime                  `json:"clock_in_at,omitempty"`
	ClockOutAt               *DateTime                  `json:"clock_out_at,omitempty"`
	DayPattern               *DayPattern                `json:"day_pattern,omitempty"`
	EarlyLeavingMins         *int                       `json:"early_leaving_mins,omitempty"`
	IsAbsence                *bool                      `json:"is_absence,omitempty"`
	LatenessMins             *int                       `json:"lateness_mins,omitempty"`
	NormalWorkClockInAt      *DateTime                  `json:"normal_work_clock_in_at,omitempty"`
	NormalWorkClockOutAt     *DateTime                  `json:"normal_work_clock_out_at,omitempty"`
	NormalWorkMins           *int                       `json:"normal_work_mins,omitempty"`
	Note                     *string                    `json:"note,omitempty"`
	PaidHoliday              *int                       `json:"paid_holiday,omitempty"`
	HalfPaidHolidayMins      *int                       `json:"half_paid_holiday_mins,omitempty"`
	HourlyPaidHolidayMins    *int                       `json:"hourly_paid_holiday_mins,omitempty"`
	SpecialHoliday           *int                       `json:"special_holiday,omitempty"`
	SpecialHolidaySettingID  *int                       `json:"special_holiday_setting_id,omitempty"`
	HalfSpecialHolidayMins   *int                       `json:"half_special_holiday_mins,omitempty"`
	HourlySpecialHolidayMins *int                       `json:"hourly_special_holiday_mins,omitempty"`
	UseAttendanceDeduction   *bool                      `json:"use_attendance_deduction,omitempty"`
	UseDefaultWorkPattern    *bool                      `json:"use_default_work_pattern,omitempty"`
}

type PutWorkRecordSummariesRequest added in v0.0.10

type PutWorkRecordSummariesRequest struct {
	CompanyID                                      int     `json:"company_id"`                                                   // 事業所ID(必須)
	WorkDays                                       float32 `json:"work_days,omitempty"`                                          // 総勤務日数
	WorkDaysOnWeekdays                             float32 `json:"work_days_on_weekdays,omitempty"`                              // 所定労働日の勤務日数
	WorkDaysOnPrescribedHolidays                   float32 `json:"work_days_on_prescribed_holidays,omitempty"`                   // 所定休日の勤務日数
	WorkDaysOnLegalHolidays                        float32 `json:"work_days_on_legal_holidays,omitempty"`                        // 法定休日の勤務日数
	TotalWorkMins                                  int     `json:"total_work_mins,omitempty"`                                    // 労働時間(分)
	TotalNormalWorkMins                            int     `json:"total_normal_work_mins,omitempty"`                             // 所定労働時間(分)
	TotalExcessStatutoryWorkMins                   int     `json:"total_excess_statutory_work_mins,omitempty"`                   // 給与計算に用いられる法定内残業時間(分)
	TotalHolidayWorkMins                           int     `json:"total_holiday_work_mins,omitempty"`                            // 法定休日労働時間(分)
	TotalLatenightWorkMins                         int     `json:"total_latenight_work_mins,omitempty"`                          // 深夜労働時間(分)
	TotalActualExcessStatutoryWorkMins             int     `json:"total_actual_excess_statutory_work_mins,omitempty"`            // 実労働時間ベースの法定内残業時間(分)
	TotalOvertimeWorkMins                          int     `json:"total_overtime_work_mins,omitempty"`                           // 時間外労働時間(分)
	NumAbsences                                    float32 `json:"num_absences,omitempty"`                                       // 欠勤日数
	NumAbsencesForDeduction                        float32 `json:"num_absences_for_deduction,omitempty"`                         // 控除対象の欠勤日数
	TotalLatenessMins                              int     `json:"total_lateness_mins,omitempty"`                                // 遅刻時間(分)
	TotalLatenessMinsForDeduction                  int     `json:"total_lateness_mins_for_deduction,omitempty"`                  // 控除対象の遅刻時間(分)
	TotalEarlyLeavingMins                          int     `json:"total_early_leaving_mins,omitempty"`                           // 早退時間(分)
	TotalEarlyLeavingMinsForDeduction              int     `json:"total_early_leaving_mins_for_deduction,omitempty"`             // 控除対象の早退時間(分)
	NumPaidHolidays                                float32 `json:"num_paid_holidays,omitempty"`                                  // 有給取得日数
	TotalShortageWorkMins                          int     `json:"total_shortage_work_mins,omitempty"`                           // 不足時間(分)(フレックスタイム制でのみ使用)
	TotalDeemedPaidOvertimeExcessStatutoryWorkMins int     `json:"total_deemed_paid_excess_statutory_work_mins,omitempty"`       // 支給対象の法定内残業時間(分)(裁量労働制でのみ使用)
	TOtalDeemedPaidOvertimeExceptNormalWorkMins    int     `json:"total_deemed_paid_overtime_except_normal_work_mins,omitempty"` // 支給対象の時間外労働時間(分)(裁量労働制でのみ使用)
}

値が設定されなかった場合は自動的に0が設定されます

type Time added in v0.0.8

type Time time.Time

func (*Time) MarshalJSON added in v0.0.8

func (t *Time) MarshalJSON() ([]byte, error)

func (*Time) String added in v0.0.8

func (d *Time) String() string

type TimeClock

type TimeClock struct {
	ID               int    `json:"id"`
	Date             string `json:"date"`
	Type             string `json:"type"`
	Datetime         string `json:"datetime"`
	OriginalDatetime string `json:"original_datetime"`
	Note             string `json:"note"`
}

type UpdateEmployeeRequest

type UpdateEmployeeRequest struct {
	CompanyID int                           `json:"company_id"`
	Year      *int                          `json:"year,omitempty"`
	Month     *int                          `json:"month,omitempty"`
	Employee  UpdateEmployeeRequestEmployee `json:"employee"`
}

type UpdateEmployeeRequestEmployee added in v0.0.8

type UpdateEmployeeRequestEmployee struct {
	Num                                string `json:"num,omitempty"`
	DisplayName                        string `json:"display_name,omitempty"`
	BasePensionNum                     string `json:"base_pension_num,omitempty"`
	EmploymentInsuranceReferenceNumber string `json:"employment_insurance_reference_number,omitempty"`
	BirthDate                          Date   `json:"birth_date"`
	EntryDate                          Date   `json:"entry_date"`
	RetireDate                         *Date  `json:"retire_date,omitempty"`
	CompanyReferenceDateRuleName       string `json:"company_reference_date_rule_name,omitempty"`
}

type WorkRecord

type WorkRecord struct {
	BreakRecords []struct {
		ClockInAt  string `json:"clock_in_at"`
		ClockOutAt string `json:"clock_out_at"`
	} `json:"break_records"`
	ClockInAt                                 *string `json:"clock_in_at"`
	ClockOutAt                                *string `json:"clock_out_at"`
	Date                                      string  `json:"date"`
	DayPattern                                string  `json:"day_pattern"`
	SchedulePattern                           string  `json:"schedule_pattern"`
	EarlyLeavingMins                          int     `json:"early_leaving_mins"`
	HalfPaidHolidayMins                       int     `json:"half_paid_holiday_mins"`
	HalfSpecialHolidayMins                    int     `json:"half_special_holiday_mins"`
	HourlyPaidHolidayMins                     int     `json:"hourly_paid_holiday_mins"`
	HourlySpecialHolidayMins                  int     `json:"hourly_special_holiday_mins"`
	IsAbsence                                 bool    `json:"is_absence"`
	IsEditable                                bool    `json:"is_editable"`
	LatenessMins                              int     `json:"lateness_mins"`
	NormalWorkClockInAt                       *string `json:"normal_work_clock_in_at"`
	NormalWorkClockOutAt                      *string `json:"normal_work_clock_out_at"`
	NormalWorkMins                            int     `json:"normal_work_mins"`
	Note                                      string  `json:"note"`
	PaidHoliday                               float32 `json:"paid_holiday"`
	SpecialHoliday                            float32 `json:"special_holiday"`
	SpecialHolidaySettingID                   *int    `json:"special_holiday_setting_id"`
	UseAttendanceDeduction                    bool    `json:"use_attendance_deduction"`
	UseDefaultWorkPattern                     bool    `json:"use_default_work_pattern"`
	UseHalfCompensatoryHoliday                bool    `json:"use_half_compensatory_holiday"`
	TotalOvertimeWorkMins                     int     `json:"total_overtime_work_mins"`
	TotalHolidayWorkMins                      int     `json:"total_holiday_work_mins"`
	TotalLatenightWorkMins                    int     `json:"total_latenight_work_mins"`
	NotAutoCalcWorkTime                       bool    `json:"not_auto_calc_work_time"`
	TotalExcessStatutoryWorkMins              int     `json:"total_excess_statutory_work_mins"`
	TotalLatenightExcessStatutoryWorkMins     int     `json:"total_latenight_excess_statutory_work_mins"`
	TotalOvertimeExceptNormalWorkMins         int     `json:"total_overtime_except_normal_work_mins"`
	TotalLatenightOvertimeExceptNormalWorkMin int     `json:"total_latenight_overtime_except_normal_work_min"`
}

type WorkRecordSummaries added in v0.0.10

type WorkRecordSummaries struct {
	Year                                        int                       `json:"year"`
	Month                                       int                       `json:"month"`
	StartDate                                   string                    `json:"start_date"`
	EndDate                                     string                    `json:"end_date"`
	WorkDays                                    float32                   `json:"work_days"`
	TotalWorkMins                               int                       `json:"total_work_mins"`
	TotalNormalWorkMins                         int                       `json:"total_normal_work_mins"`
	TotalExcessStatutoryWorkMins                int                       `json:"total_excess_statutory_work_mins"`
	TotalOvertimeExceptNormalWorkMins           int                       `json:"total_overtime_except_normal_work_mins"`
	TotalOvertimeWithinNormalWorkMins           int                       `json:"total_overtime_within_normal_work_mins"`
	TotalHolidayWorkMins                        int                       `json:"total_holiday_work_mins"`
	TotalLatenightWorkMins                      int                       `json:"total_latenight_work_mins"`
	NumAbsences                                 float32                   `json:"num_absences"`
	NumPaidHolidays                             float32                   `json:"num_paid_holidays"`
	NumPaidHolidaysAndHours                     DaysAndHours              `json:"num_paid_holidays_and_hours"`
	NumPaidHolidaysLeft                         float32                   `json:"num_paid_holidays_left"`
	NumPaidHolidaysAndHoursLeft                 DaysAndHours              `json:"num_paid_holidays_and_hours_left"`
	NumSubstituteHolidaysUsed                   float32                   `json:"num_substitute_holidays_used"`
	NumCompensatoryHolidaysUsed                 float32                   `json:"num_compensatory_holidays_used"`
	NumSpecialHolidaysUsed                      float32                   `json:"num_special_holidays_used"`
	NumSpecialHolidaysAndHoursUsed              DaysAndHours              `json:"num_special_holidays_and_hours_used"`
	TotalLatenessAndEarlyLeavingMins            int                       `json:"total_lateness_and_early_leaving_mins"`
	MultiHourlyWages                            []WorkRecordSummariesWage `json:"multi_hourly_wages"`
	WorkRecords                                 []WorkRecord              `json:"work_records"`
	TotalShortageWorkMins                       *int                      `json:"total_shortage_work_mins"`
	TotalDeemedPaidExcessStatutoryWorkMins      *int                      `json:"total_deemed_paid_excess_statutory_work_mins"`
	TotalDeemedPaidOvertimeExceptNormalWorkMins *int                      `json:"total_deemed_paid_overtime_except_normal_work_mins"`
}

type WorkRecordSummariesWage added in v0.0.10

type WorkRecordSummariesWage struct {
	Name                string `json:"name"`
	TotalNormalTimeMins int    `json:"total_normal_time_mins"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL