中年プログラマーの息抜き

ブログをはじめました。気の向くままにプログラム関連ネタをメモしていきます。

法人の本店移転登記の必要書類と流れ

はじめに

移転ということで今回は「所在地住所の変更」に関した話題です。定款の所在地に市町村あたりまで記載としたとき、市内の中で移転する「管轄内の移転」と市外や県外に移転する「管轄外の移転」の2つに分類できるので、ここでは「管轄外の移転」で進めます。 また、少しでも節約できないかなと考え、移転日は月初日を外して2日以降で移転します。滞在1ヶ月未満だとカウントされない税があるらしい。。

法人体制

法人の移転先が決定した後、基本は以下の流れになってくると思いますが、ここからは、法人の体制により手続きや準備する書類など、微妙に違ってきます。今回は、以下体制の法人を対象に進めます。

1.定款変更の記載事項は「臨時株主総会」で決定する。

2.取締役会設置会社ではなく、「取締役」で決定する。

3.代表取締役が手続きを行う。

手続きの流れ

手続きの時系列を整理すると以下の通りで問題ないと思います。

※定款は直接に変更することはできない、法務局へ株主総会議事録を提出することで変更される、実書類は自分で変更内容を反映させる必要があるのだろう・・おそらく今後もないのだけれど(許認可申請など??定款を利用するときにはそうしてみるつもり)

1.株主らをリストにまとめる。

2.臨時株主総会で定款変更を検討してその結果を議事録にまとめる。

3.取締役らで本店移転日時と移転先住所を決定書にまとめる。

4.旧所在地の管轄法務局にすべての書類をまとめて提出して登記を申請。

移転に必要な書類の一覧

以下の8書類を準備すれば問題ないと思います。

1.本店移転登記申請書(旧所在地の管轄法務局用)

  商業・法人登記の申請書様式:法務局

2.収入印紙貼付台紙(3万円収入印紙を張り付け)

  自分で作成

  ※1.本店移転登記申請書と一緒にホッチキスでとめて契印

3.添付書類

 3.1.株主リスト

     法務省:「株主リスト」

 3.2.臨時株主総会議事録

     自分で作成 保管用と提出用で2通作った

 3.3.取締役決定書

     自分で作成 保管用と提出用で2通作った

4.印鑑(改印)届書

  印鑑(改印)届書 - 法務局

  申請者の記載と押印は不要、申請者の印鑑証明も添付しなくて良い

  ※提出先法務局へ要確認

5.本店移転登記申請書(新所在地の管轄法務局用)

  商業・法人登記の申請書様式:法務局

6.収入印紙貼付台紙(3万円収入印紙を張り付け)

  自分で作成

  ※5.本店移転登記申請書と一緒にホッチキスでとめて契印

提出方法

窓口来訪、オンライン、郵送、などいろいろな方法で提出できる。

※今回は、すべて郵送で申請しました

移転後に必要な書類の一覧

1.税務署(旧所在地

  異動事項に関する届出

  給与支払事務所等の開設・移転・廃止届出書

  消費税異動届出書

2.年金事務所旧所在地

  厚生年金保険適用事業所所在地変更(訂正)届

  厚生年金保険事業所関係地変更(訂正)届(処理票)

3.都道府県税事務所(新所在地所在地の両方

  異動届 様式第43号の7の2

4.市区町村(新所在地所在地の両方

  法人等の異動届

  特別徴収義務者の所在地・名称変更届出書

5.労働基準監督署新所在地

  労働保険名称・所在地等変更届

  労働局に取りに行く

6.ハローワーク新所在地

  雇用保険事業主事業所各種変更届

  ハローワークインターネットサービス - 利用上の注意

7.法務局(新所在地

   印鑑カード交付申請書

  印鑑カード交付申請書 - 法務局

まとめ

本店移転の登記は集める書類が多いので大変ですが整理して一気にやれば、幾分ははやく終わるのか・・ともあれ数時間では無理! 時間に余裕を持ったほうが良いなって感じです。本店移転登記申請書を提出から登記簿を手にいれるまで大体1~2週間かかるみたい。 次の移転に向けてメモがてらまとめました。書き方はまた今度

C#拡張メソッドでDataGridViewとEnumを密にする

はじめに

拡張メソッドを定義したいと思います。拡張メソッドというのは言語の型に機能(メソッド)を追加するような感じでしょうか。それでいてプログラミング言語で決まっているルールの範囲内というところが守られます。(難しいことは必要ない)

DataGridViewのCell

dataGridView1[columnIndex, rowIndex] でDataGridViewCellのオブジェクトが取得できますよね。しかし、DataGridViewを利用するときに列番号をEnumで管理したい。仕様変更に強い設計ですね。 そんなときこうなります。dataGridView1[(int)columnEnum, rowIndex]。このキャスト!数か所なら気にならないけど・・・なんかねえ。ということで

DataGridViewCellのための拡張メソッド

例えば下記のような拡張メソッドが容易に考え付きますが、これはコンパイルが通りません。Enum columnEnum を ValueType columnEnum とすれば通りますけど。。

public static DataGridViewCell Cell(this DataGridView self, Enum columnEnum, int rowIndex) {
     return self[(int)columnEnum, rowIndex];
}

Int32のソースコードでGetHashCode()をみてみる

referencesource.microsoft.comオブジェクトの値がそのまま返却されてます。

       public override int GetHashCode() {
            return m_value;
       }

EnumソースコードでGetHashCode()をみてみる

referencesource.microsoft.com

型付けされたクラスのGetHashCode()を呼び出してますね。

        public override unsafe int GetHashCode()
        {
            // Avoid boxing by inlining GetValue()
            // return GetValue().GetHashCode();
 
            fixed (void* pValue = &JitHelpers.GetPinningHelper(this).m_data)
            {
                switch (InternalGetCorElementType())
                {
                    case CorElementType.I1:
                        return (*(sbyte*)pValue).GetHashCode();
                    case CorElementType.U1:
                        return (*(byte*)pValue).GetHashCode();
                    case CorElementType.Boolean:
                        return (*(bool*)pValue).GetHashCode();
                    case CorElementType.I2:
                        return (*(short*)pValue).GetHashCode();
                    case CorElementType.U2:
                        return (*(ushort*)pValue).GetHashCode();
                    case CorElementType.Char:
                        return (*(char*)pValue).GetHashCode();
                    case CorElementType.I4:
                        return (*(int*)pValue).GetHashCode();
                    case CorElementType.U4:
                        return (*(uint*)pValue).GetHashCode();
                    case CorElementType.R4:
                        return (*(float*)pValue).GetHashCode();
                    case CorElementType.I8:
                        return (*(long*)pValue).GetHashCode();
                    case CorElementType.U8:
                        return (*(ulong*)pValue).GetHashCode();
                    case CorElementType.R8:
                        return (*(double*)pValue).GetHashCode();
                    case CorElementType.I:
                        return (*(IntPtr*)pValue).GetHashCode();
                    case CorElementType.U:
                        return (*(UIntPtr*)pValue).GetHashCode();
                    default:
                        Contract.Assert(false, "Invalid primitive type");
                        return 0;
                }
            }
        }

DataGridViewCellのための拡張メソッドはこうですね

EnumがInt32に型付けされていれば、下記のような拡張メソッドで実装が容易になるし、キャストの気持ち悪さから解放されます。。

public static DataGridViewCell Cell(this DataGridView self, Enum columnEnum, int rowIndex) {
     return self[columnEnum.GetHashCode(), rowIndex];
}

まとめ

拡張メソッドは重宝します。… ただ、個人的に単純なstaticな機能で提供されているもの(string.IsNullOrEmpty()など)をわざわざ拡張して実装しなおす必要なないと思っていて、例えば、今回のように実装しなおすとコードが読みやすくなると思えば利用するのはありなのかなと思います。 ほかにもstaticな機能が提供されるが複数の決まりきった引数を省略するためにこんな拡張もあり?

 

public static T ToEnum<T>(this Int32 self) {
     return (T)Enum.ToObject(typeof(T), self);
}


public static string ToName(this Enum self) {
     return Enum.GetName(self.GetType(), self);
}

 

db39

CISCO 841M 設定:その13:L3スイッチでVLAN 間のルーティングをフィルタする

f:id:tm-b:20170728004131j:plain

はじめに

L3スイッチが4ポートあり、それぞれVLAN1, VLAN2, VLAN3, VLAN4で分離したとしても、ルーティング機能により、VLAN2⇔VLAN3などVLANをまたいだ通信が可能です。(ノードからping を打つと届きます。)今回は例として、VLAN2⇔VLAN3をフィルタし通信を出来なくなるようなACLを考えてみました。(ノードからping が届かなくなります。)

VLAN2は「192.168.20.0/24」、VLAN3は「192.168.30.0/24」とします。

機材

CISCO 841M本体
・KAUMO USB RJ45 シリアルコンソールケーブル
・Win10 ノートPC

VLAN内でのフィルタイメージ

・VLAN2のACLグループ(120)を作成、設定する

・VLAN3のACLグループ(130)を作成、設定する

ACLグループ(120)

no access-list 120
access-list 120 deny ip any 192.168.30.0 0.0.0.255
access-list 120 permit ip any any
interface Vlan2
  ip access-group 120 in
  exit

ACLグループ(130)

no access-list 130
access-list 130 deny ip any 192.168.20.0 0.0.0.255
access-list 130 permit ip any any
interface Vlan3
  ip access-group 130 in
  exit

まとめ

in と out のイメージがつかみにくかったですが、VLAN内のACLということで考えをまとめ、整理しました。ネットワーク単位ではなくノード単位で細かく設定する場合は特にだと思いますが、いろいろな可能性を考えると、VLANで設定しておくほうが人にやさしいのかなと…