echo "";

日付 | 労働時間 | チェックボックス ぐるなびでは、勤怠時間の管理はidカードを使用しております。本記事は、イレギュラーが起きた際の連絡手段をシステム化させた方法・背景について記載しております。 はじめまして。ぐるなびエンジニアの吉次洋毅と申します。 2014年に新卒で入社して、現在3年目の24歳。 現在、PHPとPostgreSQLを使用して勤怠管理システムを break; PHP ベースの物で発見したのが kumquat です。 勤怠のデータやユーザーデータはデータベース(MySQL)で管理し、使用するテーブルも 2 つだけなので邪魔になりません。 さくらインターネットのレンタルサーバ(PHP5, MySQL4.0)でも動作を確認しました。 深夜 という処理になると思います。 時間外 顧客管理システムや出席管理システムなどの社内の管理システムは全般的にphpで作成できる。 なんでもインターネットの時代だ。社内の管理システムは、ブラウザで利用するのが一般的だろう。

以下に以前のコードを記載します。 $(function() { データベースの知識はかなり初心者です。 最近個人でサーバを立てる例をよく見かけますが、Internetを利用する

ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です 簡単に言うとWEB上で動く掲示板やチャットなどを作成するのに便利なプログラム言語ということです。 既にあるので(参考URL参照) ページ表示時にが実行されてしまい、うまくいきませんでした。 まずはデータベースの簡単な概念について覚えておいてください, 実際にサンプルを見ながら覚えた方が分かりやすかもしれないですね、 どうか、ご教授の程よろしくお願いします。, 「配列 SQL」に関するQ&A: PHPでMY SQLの連想配列をリンク先に受け渡す方法, 「作成 スタンプ」に関するQ&A: コロコロと転がして押すスタンプを作成してくれるお店はありますか?, gogo-tea様、いつもお世話になっております。 いることがあります。 $now= time();// UNIXタイムスタンプを取得

$w = 0; それを使った方が楽かと思いますが、それでも#1の方がおっしゃる $weekday= array("日","月","火","水","木","金","土"); //曜日の配列作成

}

頭が混乱しておりました… 4.案件に番号を振って管理し、その案件の担当者が更新 することができる(案件の管理といっても現在の進行状況をちょこっと書き込める程度のものでいい) 独学でつまづ... ExcelやWordと違いPHPの作業は1つのソフトウェアで完結しない

つまり } 「kintai.js」のJavaScriptファイルの下記部分の修正が間違えていた, ※この並び順も重要なので、もしも「kintai.js」が一番上にあると正しく動きません。, お手数をおかけいたしますが、一度上記の設定などをご確認いただけますでしょうか。宜しくお願い致します。, テーブル内に別要素を追加した時、レコードを作成したときにエラーが出てしましましたので、, アプリのフォーム内にフィールドを追加してその値も扱いたいということであれば、追加のプログラミングが必要になりますが、, こちらは記事のフィードバック欄でございますので、シナリオ以外のプログラミングのご相談は、コミュニティをご活用ください。, その上で、テーブルの行をカウントして勤務日数を追加したいということであれば、以下の投稿が参考になると思います。, https://developer.cybozu.io/hc/ja/community/posts/360000772506, そちらを試された上で、もしお困りのことがあれば、kintone カスタマイズフォーラム をご活用ください。, https://developer.cybozu.io/hc/ja/community/topics/200034345, ちなみに有休のチェック(何行目でも可)のチェックをいれると計算結果が正しく表示されます。, お世話になっております。cybozu developer network 事務局です。, こちらの現象を社内で調査したところ、不具合でした。エラー表示されなくなる方法ですが、現状回避方法はない状況です。データに影響はなく、レコード保存時には正常に自動計算されます。, https://js.cybozu.com/jquery/2.2.4/jquery.min.js, https://js.cybozu.com/sweetalert/v1.1.3/sweetalert.min.js, https://js.cybozu.com/momentjs/2.15.1/moment.min.js, https://js.cybozu.com/sweetalert/v1.1.3/sweetalert.css, kintoneカスタマイズで、holiday_jp-jsを使って営業日/休業日を判定する, 計算式に「終了 - 開始 - 休憩 * 60」、表示形式を「時間(例:26時間3分)」, レコード追加画面で自動的に起算日から1ヶ月間の日付と始業/終業時刻がデフォルトセットされます。. ちなみに、個人(一人)で作ろうと思っています。

作業場が一日に複数箇所あり得るなら工夫が必要でしょう。 OUT 質問ばかりで申し訳ございません。

$numOfDays = date('t', mktime(0, 0, 0, $month, 1, $year)); MySQLとは?: MySQL初心者入門講座, データベースとは、複数の主体で共有、利用したり、用途に応じて加工や再利用がしやすいように、一定の形式で作成、管理されたデータの集合のこと。広義には人が紙に書いてまとめたものなどを含む場合もあるが、今日では、単にデータベースといった場合はコンピュータ上で作成、保管され、専用のソフトウェア(データベース管理システム)によって管理されるものを指すことが多い。 この様にすれば、1日1レコードのデータができあがり、無限に追加することが出来ます。バイトなどが増えた場合でも、社員コードを追加すればすみます。 $w = date("w", mktime(0, 0, 0, $month, $d+1, $year)); 等のような形になります 解りにくい質問ではあると思いますが、ご教授・参考になる考え方など… sideNavMenuSection(menu.tips); // 日付が指定した月の日数以下ならば なんとなく理解できたでしょうか?, データベースの項目は、後から追加したりも出来るのですが、複雑になり問題が起きないよう、しっかり設計しておくことが大切です。, レタッチ企画第1弾!もう何も信じられない… Photoshopで男性を女性に加工してみた!?, Create(生成)、Read(読み取り)、Update(更新)、Delete(削除), デザインちーむ / Webデザイナー.   pg_query($con, "INSERT ~");   pg_query($con, "UPDATE~"); JAVAは初心者レベルです。(簡単なソースくらいなら解釈できる程度) 当方が行いたい処理として 2.ログインIDとパスワードで各社員がログインできる 能力の問題だと思ってあきらめてしまうのは、もったいないことです。 私は似たようなシステムにいくつか携わっているのですが、 ExcelやAccessで勉強するのも一考です。, ↑をアクセスで作成しています。今のところ、社員テーブル、作業場テーブル、部門テーブルなどを作ってあるのですが、肝心の出勤データはどう設計すればよいのかぜんぜんわかりません。月ごとに申告するものですが、年、月、日、さらに一日分の出社時刻、退社時刻、場所、その他いくつかの項目があり、複雑すぎてどうやればわかりません。もちろん社員分のデータ管理なので、一人分ではありません。かなりぱにくってます。どうぞおしえてください。, 社員番号 既にあるので(参考URL参照) ート検証する, 【イルルカSP】モンスターを確実に踊らせる(おどらせる)方法, Pythonで数ヶ月後の月数を算出する, Macでbrew installした際にディレクトリの権限エラーが出る. 実装したい機能としては、   以前仕事で勤怠管理システムを構築しました。勤怠管理システムといえば、時間を扱うことが中心でしたので、今回の記事では”date関数“について、簡単な使い方と実例を書きたいと思います。, ※筆者は”PHP Version 7.4.6″を使用しています。バージョンの違いにより、動作結果が違う場合がありますのでご注意ください。, まずはテキストエディタを開き、下記コードを入力して保存しましょう。 ※文字コードはUTF-8。 保存フォルダ場所:C:\xampp\htdocs\test ファイル名 :study_date.php, xamppを起動して、http://localhost/test/study_date.phpにアクセスします。, 表示した時分秒がパソコンとあっていない場合は、xamppからphp.iniを編集して日本時間を使うように指定しましょう。 (下記の記事に設定方法を参考にしてください), ちなみにカッコ内(引数)の書き方で表示する文字が変わります。(例)・date(‘y-m-d h:m:s’)…西暦(2桁)-月-日 時(12h表記):分:秒・date(‘w’) …日曜日の場合0、月曜日の場合1・・・土曜日の場合6 などなど…沢山ありますので、他にも知りたい方は下記ページを参考にどうぞ。, 今回のdate関数は、実際の勤怠システムでもよく使用されます。 一部を実例として挙げます。, 上記コードは、時間を文字列として$start_timeに代入し、画面に表示しています。, 次に退勤時間を表示させましょう。ここで、退勤時間は、study_date.phpにアクセスした時間としますので、date関数を使います。, http://localhost/test/study_date.phpにアクセスすると、退勤時間が表示されました。, strtotime関数が出てきましが、この関数は、引数に指定した文字列(日時)を 1970年1月1日 00:00:00 UTC からの経過秒数に変換して戻り値を返す関数です。, 10進数表記となる為、非常に見にくいと思います。 1=1時間の為、0.25=15分となるので、注意が必要です。見やすくする場合の一例としては以下があります。, クリックするだけ!HTML Imagemap Generatorで簡単にイメージマップを作ろう. 作業場番号 onClink="window.open(test.php)" SELECTして該当データがなければINSERT break;

} else { 休日深夜 一般的なサーバーサイドスクリプトの動作として、 ここでは簡単に書いて(抜粋して)ますので、あしからず!, PHPとはPHP: Hypertext Preprocessorの略(*1)でWEBページを記述することに特化したサーバーサイドスクリプト言語です。 ※以下の内容はPHPプログラミングの教科書の「3-4 スケジュール帳(P.192~)」から、カレンダーの作成に関する内容を抜粋して再構成したものです。, WordPressプラグイン「MTS Simple Booking C」による予約システムの作成, これから、次のようなカレンダーを作成します。簡単すぎず難しすぎず、PHPの基礎が習得できたか力試しになり、スケジュール帳や予約への応用など、今後の学習の展望も見えてきます。ざっとPHPの基礎を習得した方は、ぜひ、チャレンジしてみてください。, ポイントは2つあります。1つは行列形式のレイアウトの作成方法、もう1つは、そのレイアウトに1から31までの日付を表示していく方法です。特に、新たな週を作るための改行が重要です。, PHPスクリプトを記述する前に、準備として行列形式のレイアウトを作成するHTMLのtableタグを紹介しておきます。2行2列の簡単なテーブルを例に、その構造を見てみましょう。, テーブル全体は

の間に定義し、行を~、列(セル)を~の間に記述します。~を1から7まで繰り返せば1日から7日まで表示でき、~を5回繰り返せば、1週目から5週目までの行が作成できることはイメージできたでしょうか。早速、1日から31日までの日付を表示していきましょう。, 1日から月末日までの日付を表示するには、while文が役立ちます。PHPプログラミングの教科書(P.105)で作成したコードを利用して、好きな年月の日付を1日から月末日まで表示するコードを準備しましょう。次の例では、2012年2月の日付を表示しています。, ○実行結果

1234567891011121314151617181920212223242526272829, checkdate関数の3つのパラメータ($m, $d, $y)はそれぞれ、月、日、年を示しています。while文によって$dが1、2、3…と変化するので、実行すると、上のように1から月末日までの数値($d)が単純に1行で表示されます。, ここから、カレンダーらしくするため、tableタグで作成するレイアウトの中に、$dを表示していきましょう。具体的には、tableタグの列(セル)を繰り返す「」を「{$d}」になるように変更します。, カレンダーらしくするため、土曜日で改行しましょう。ここで言う改行とは、「」を出力してテーブルの行を終了するということです。さらに、次の週があるなら、「」を出力して新たな行を準備する必要があります。そのイメージは次のようになります。, 日付を表示するwhile文の中に、行(週)を終了して新たな週を開始するコードを記述しましょう。まず、土曜日で週を終了するには次のコードを記述します。, 今日の曜日番号が6の場合は「」を出力しています。「date(“w”)」によって、0(日曜日)から始まる曜日番号を取得できます。その番号が6、つまり、土曜日の場合は「」と出力して行を終了するということです。, 続いて、新たな週を準備します。その条件は「次の日が存在する場合は」です。日付が妥当か調べるcheckdate関数を使っています。改行した土曜日の次の日が有効な日付であれば、次の週が存在するということです。, なんとなくカレンダーらしくなってきましたが、最初の週に違和感があります。毎月1日は必ずしも左端(日曜日)とは限らないので、1日の該当する曜日まで空白を出力して移動する必要があります。それには、毎月1日の曜日番号を調べて、その位置まで空白を出力していきます。そのイメージは次のようになります。, 空白を出力するというのは、「 」のように何も表示しない列を出力するということです(レイアウトの都合で全角スペースを出力しています)。これを曜日番号の数だけ繰り返すことで、1日の日付を妥当な曜日まで“移動”することができます。この処理をコードにまとめると次のようになります。while文で1日から月末日までの表示を始める直前に記述します。, かなりカレンダーらしくなりましたが、月末日の曜日は必ずしも土曜日ではないことに注意が必要です。上の調整と同じように、最後の週に表示される月末日が土曜日以外の場合は土曜日まで空白を出力していく必要があります。そのコードをまとめます。これは、1日から月末日までの表示が終わった直後に記述します。, これで、指定した年月のカレンダーを表示できるようになりました。ただし、年月を示す$y、$mには固定値が入っています。ここから先の作業で、選択メニューで選んだ年月を表示するカレンダーにカスタマイズしやすいように、現在の年月を表示するように変更しておきましょう。, それには、スクリプトの先頭で現在の年月を6桁で取得して、4桁の年($y)と2桁の月($m)に分解します。substr関数がピンとこないときは、PHPプログラミングの教科書の文字列関数のページ(P.61)も参考にしてください。, 最後に、曜日ラベルを追加しておきましょう。それには、thタグを使います。tableタグの直後に記述します。以下に示す実際の記述を見れば、使い方はなんとなくわかるのではないでしょうか。, このように、~の中に曜日ラベルを追加すると、現在の年月のカレンダーが完成です。実行結果は2012年5月の例です。, カレンダーからPHPスクリプトを取り除いたテンプレートを用意しました。それぞれのステップについて、理解できたか確認しながらPHPスクリプトを記述してみましょう。できるだけコピーペーストせずに、実際に入力してみることが重要です。, シンプルなカレンダーは完成です。ここからは、必要に応じてフォームの知識を付けて、どんどんカスタマイズしていきましょう。PHPプログラミングの教科書では、最終的にスケジュール帳へと加工していきます。1行ずつ入力していくわけではないので、要点をしっかり習得しましょう。 // 読み込まれた休日と表示されている日付が同じならば、$wに0を代入(日曜日) // 指定した月の日数を取得 お勧めになってはいかがでしょうか。 せん。 [CDATA[ var menu = window.devnet.common.sidenav; 有料になってしまいますが、自社サーバにてグループウェアのASP

チェックを押したとき、DBに該当データがあれば、INSERTを… DBに大きな負荷をかけてしまい、壊しそうになっていたので 一応その道のプロということになっているSE, プログラマの人たちの しかし、肝心のチェックをつけた箇所だけINSERT、UPDATEするという処理 労働時間を入力し、

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません // $wに0~6までの数字に対応した曜日を代入 $sql = "SELECT * FROM work_tbl WHERE id = 'ログインしている人のID', day = '日付?';"; あれこれお試しサンプルコード、実験してみましょう! メニュー. 部門は社員の所属先と考えたので、出勤データにはいれてません。 システムは、よぼどの知識がない限り個人で構築することはお勧めしま システムは、よぼどの知...続きを読む, 社員・アルバイトの一週間分の出勤表を作りたいと思っているんですけど、その仕様というか、どういう風に作っていけばいいかさっぱりわかりません。 http://www.group-net.jp/

case 0: //日曜日の文字色 1.Webから更新や閲覧が可能 ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。 いることがあります。 $line = $weekday[$w]; 2)労働時間を入力してチェックボックスを押せば、日付と労働時間がDBに登録される 独学が続かないときは、カレンダーの作成を目標に if($holiday_plasticOperation == $date){ $date = date("Y年m月d日", mktime(0, 0, 0, $month, 15+$d, $year)); // ]]>, 記事のコメント欄は記事に対するフィードバックをする場となっております。 勤怠管理(Time Attendance)メニューから、勤怠記録(Report)をクリックしてください。 2. という処理を行いと思います。 という方法以外でお願いします。, AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません $result = pg_query($con, $sql) それにあわせて、どういったものを作るのか簡単に説明します。, 今回はMySQLとPHPを使って、データを登録、読み取り、編集、削除できる簡単なシステムを作ってみます。, 上記の4つの機能をCRUD(クラッド)「Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)」といい、基本的にデータベースを使ったシステムはこれらの機能が大前提になるようです。 頑張ってくださいヽ(^。^)ノ, ボタンをクリックしたときのみPHP文を実行したいのですが・・・ というフォームがあり、日付はPHPで表示しております。 日付

if(~){ 以上です。

戻り1~3 労働時間を入力し登録ボタンを押せば、そのままのページに再表示されるように作ろうと思っております。 echo ""; IN 難しい話しは置いといて、簡単なプログラムを作って「こんなことができるんだ」というのを紹介していきたいと思います。, あくまで”あらまし”を理解したい人向けのエントリーになってますので、これを理解したら参考書なんかも読んでおくことをお勧めします!, それにしてもこの会員さんたちは、サッカーが上手そうな気がする。 という処理を行いたいのですが、DBの該当データの有無によってINSERT、UPDATEを使い分ける知識が無いため、皆様のお力をお借りしたいと思っております。, 「チェック SQL」に関するQ&A: ACCESSでVBAから選択クエリの抽出条件を指定したい, 「配列 SQL」に関するQ&A: EXCEL VBA 配列データの部分コピー, いつもお世話になっています。家族に頼まれ、Webから誰でも更新・閲覧が可能な出勤管理システムのようなものを作りたいと思っています。(社員数は数十人程度)

でいけるかと思ったのですが、 サンプルとしてこんなテーブルを作ってみました。, このテーブルを先程の概念に当てはめると、↓こんな感じになります。 // $dateに15日から末日+14日までの値をyyyy年mm月dd日の形で代入 記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。, このページにある勤怠管理アプリと全く同じものを作ってみたいのですが、うまく動きませんでした。, ここで紹介されているkintai.jsで変えたところといえば、自分で作成した5行目と19行目を勤怠管理アプリと休日マスタのIDに変更したというくらいです。, いつもお世話になっております。cybozu developer network運営チームです。, >ここで紹介されているkintai.jsで変えたところといえば、自分で作成した5行目と19行目を勤怠管理アプリと休日マスタのIDに変更したというくらいです。, この部分で5行目の場合、「勤怠管理アプリ」のIDではなく、「休日マスタ」のIDを入力していただく必要があります。また、19行目の場合、変更を行う必要はありません。, お世話になっております。cybozu developer network運営チームです。今出ているエラーの場合、恐らくアプリの「有休」フィールドのフィールドコードが「有休」に指定されていないため、発生していると思われます。, フィールドコードを「有休」に修正を行い、改めてお試しいただけますでしょうか。お手数ですが、よろしくお願いします。, 初心者で大変恐れ入りますが、コードは以下だけで大丈夫でしょうか?なにかアドバイス頂ければ幸いです。, var start = "09:00"; //デフォルト始業時間 var end = "18:00"; //デフォルト終業時間, kintone.events.on(["app.record.create.change.有休", "app.record.edit.change.有休", "app.record.create.change.Table", "app.record.edit.change.Table" ], function(event) { var record = event.record; var cnt = 0; for (var i = 0; i < record.Table.value.length; i++) { if (record.Table.value[i].value.有休.value.length === 1) { cnt++; } }, お世話になっております。cybozu developer network運営チームです。, 日単位ではなく、時間単位でカウントさせたい場合、「cnt++」のところを「cnt = cnt + 8時間 -  勤務時間」のように変更します。次のサンプルソースコードは、勤務時間を分に変換してから計算しています。.