public function post_reporthutang() { $msg = null; $pool_id = Auth::user()->pool_id; $date = Input::get('dateops', date('Y-m-d')); $shift_id = Input::get('shift_id'); $page = Input::get('page'); $limit = Input::get('rows'); $sidx = Input::get('sidx', 'operasi_time'); $sord = Input::get('sord', 'asc'); if ($shift_id == 'all') { $count = Checkin::join('ksos', 'ksos.id', '=', 'kso_id')->where('checkins.operasi_time', '<=', $date)->where('ksos.pool_id', '=', Auth::user()->pool_id)->where('ksos.actived', '=', 1)->group_by('kso_id')->count(); } else { $count = Checkin::join('ksos', 'ksos.id', '=', 'kso_id')->where('checkins.operasi_time', '<=', $date)->where('checkins.shift_id', '=', $shift_id)->where('ksos.pool_id', '=', Auth::user()->pool_id)->where('ksos.actived', '=', 1)->group_by('kso_id')->count(); } if ($count > 0) { $total_pages = ceil($count / $limit); } else { $total_pages = 0; } if ($page > $total_pages) { $page = $total_pages; } $start = $limit * $page - $limit; if ($start < 0) { $start = 0; } $saldohutangbymonth = $this->sqlData($date, $pool_id, $shift_id, $start, $limit); $responce['page'] = $page; $responce['total'] = $total_pages; $responce['records'] = $count; if ($saldohutangbymonth) { $no = $start + 1; $ksavr = 0; $selisiavr = 0; $setoranopsavr = 0; $totalavr = 0; $cicilanksavr = 0; $dendaavr = 0; $cicilan_dp_ksoavr = 0; foreach ($saldohutangbymonth as $finan) { $saldosp = $finan->tabungan_sparepart + $finan->hutang_dp_sparepart + $finan->cicilan_sparepart - $finan->pemakaian_part; $responce['rows'][] = array('no' => $no++, 'taxi_number' => ($c = Fleet::find($finan->fleet_id)) ? $c->taxi_number : 'Body Error', 'bravo' => ($b = Driver::find($finan->bravo_driver_id)) ? $b->name : 'Bravo Error', 'shift_id' => Shift::find($finan->shift_id)->shift, 'pemakaian_sp' => $finan->pemakaian_part, 'tabungan_sp' => $finan->tabungan_sparepart, 'bayar_sp' => $finan->hutang_dp_sparepart + $finan->cicilan_sparepart, 'saldo_sp' => $saldosp, 'ks' => $finan->ks, 'bayar_ks' => $finan->cicilan_ks, 'selisi_ks' => $finan->selisi_ks, 'saldo_armada' => $saldosp + $finan->selisi_ks); } } return json_encode($responce); }
public function updateShift() { //gets the input values $shiftId = Input::get('id'); $clockin = Input::get('clockin'); $clockout = Input::get('clockout'); // if clockout = 0000-00... // then the shift has not been clocked out yet. // saving shifts before clocking out is fine, but // it breaks things when checking error checking. // We reset clockout to 0000-0... before saving. if ($clockout == '0000-00-00 00:00:00') { $clockout = (new DateTime())->format('Y-m-d H:i:s'); } // need date time for comparisons $clockinAsDateTime = new DateTime($clockin); $clockoutAsDateTime = new DateTime($clockout); $curDateTime = new DateTime(); // can't clock negative hours if ($clockoutAsDateTime < $clockinAsDateTime) { return json_encode(['error' => 'negative hours', 'info' => 'Clock in time must be before the current time and before the clock out time.']); } // wait til you have worked shift to clock it if ($clockoutAsDateTime > $curDateTime && $clockinAsDateTime > $curDateTime) { return json_encode(['error' => 'future shift', 'info' => 'Please log only shifts that you have worked, not ones that you expect to work.']); } // can't clock more than 24 hours $min_clockin = date_sub($clockoutAsDateTime, date_interval_create_from_date_string('1 day')); if ($clockinAsDateTime < $min_clockin) { return json_encode(['error' => 'too long', 'info' => 'The max shift time is 24 hours']); } //if we have met all previous requirements, get shift from db $thisShift = Shift::find($shiftId); // Before saving we should make sure no one is over clocking (i.e., // the updated shift times don't overlap with existing shift times); // To do this we query for conflicting shifts and reject if query // returns shifts. The query is pretty ugly, but it's really not // very complex. 4 steps total: // 1) Get shifts for the user who is updating his/her shifts. // 2) Filter out the id of the shift that we are updating. Obviously // the updated shift will conflict with itself, but that's not a // problem // 3) Find any shifts with clockin or clockout times that fall within the // updated shift times. If updated shift time is 2-3pm, this finds any // shift whose clockin or clockout is between 2pm and 3pm. // 4) Find any shifts that extend the updated shift times. If updated // shift time is 2-3pm and another shift is 1:30-3:30pm this finds // it. $conflictingShiftClockInTimes = Shift::where('eid', $thisShift->eid)->whereNotIn('id', array($thisShift->id))->where(function ($query) use($clockin, $clockout) { $query->whereBetween('clockIn', [$clockin, $clockout])->orWhereBetween('clockOut', [$clockin, $clockout])->orWhere(function ($query) use($clockin, $clockout) { $query->where('clockOut', '>', $clockout)->where('clockIn', '<', $clockin); }); })->select('clockIn')->get(); // if there are conflicting shifts return them as a string if (!$conflictingShiftClockInTimes->isEmpty()) { $conflicts = ""; foreach ($conflictingShiftClockInTimes as $time) { $conflicts .= $time->clockIn . "<br>"; } return json_encode(['error' => 'conflict', 'info' => $conflicts]); } $thisShift->clockIn = $clockin; $thisShift->clockout = Input::get('clockout'); $thisShift->save(); return json_encode(['error' => 'none']); }
public function parseRents( $rents ) { try { $client = Client::find(array('phone'=>$rents[7])); $inventory = Inventories::find( array('number'=>$rents[3]) ); $shift = null; $date = $this->searchDate( $rents[0] ); if(!is_null($date) ) $shift = Shift::find(array('shiftDate'=>$date)); $idInventory = -1; $idClient = -1; $idShift = -1; if ( !is_null($inventory) ) $idInventory = $inventory->id; if ( !is_null($client) ) $idClient = $client->id; if ( !is_null($shift) ) { $idShift = $shift->id; //echo $idShift."<br>"; } Rent::create( array( 'start'=>$rents[1], 'end'=>$rents[2], 'idInventory'=>$idInventory, 'idClient'=>$idClient, 'expense'=>$rents[22], 'idShift'=>$idShift ) ); } catch (\exception $e) { //echo "Exception in parseRents <br>"; echo $e->getMessage()."<br>"; } }
public function post_loaddatadaily() { $date = Input::get('dateops', date('Y-m-d')); $shift_id = Input::get('shift_id'); $page = Input::get('page'); $limit = Input::get('rows'); $sidx = Input::get('sidx', 'id'); $sord = Input::get('sord'); //$count = Driver::count(); $count = DB::table('financial_report_daily')->where('shift_id', '=', $shift_id)->where('operasi_time', '=', $date)->where_pool_id(Auth::user()->pool_id)->count(); if ($count > 0) { $total_pages = ceil($count / $limit); } else { $total_pages = 0; } if ($page > $total_pages) { $page = $total_pages; } $start = $limit * $page - $limit; if ($start < 0) { $start = 0; } $financials = DB::table('financial_report_daily')->where('shift_id', '=', $shift_id)->where('operasi_time', '=', $date)->where_pool_id(Auth::user()->pool_id)->order_by($sidx, $sord)->skip($start)->take($limit)->get(); $responce['page'] = $page; $responce['total'] = $total_pages; $responce['records'] = $count; $no = $start + 0; foreach ($financials as $finan) { $no++; $responce['rows'][] = array('no' => $no, 'taxi_number' => $finan->taxi_number, 'nip' => $finan->nip, 'name' => $finan->name, 'checkin_time' => $finan->checkin_time, 'shift_id' => Shift::find($finan->shift_id)->shift, 'setoran_cash' => $finan->setoran_cash, 'setoran_wajib' => $finan->setoran_wajib, 'tabungan_sparepart' => $finan->tabungan_sparepart, 'denda' => $finan->denda, 'potongan' => $finan->potongan, 'cicilan_sparepart' => $finan->cicilan_sparepart, 'cicilan_ks' => $finan->cicilan_ks, 'biaya_cuci' => $finan->biaya_cuci, 'iuran_laka' => $finan->iuran_laka, 'cicilan_dp_kso' => $finan->cicilan_dp_kso, 'cicilan_hutang_lama' => $finan->cicilan_hutang_lama, 'ks' => $finan->setoran_cash - ($finan->setoran_wajib + $finan->tabungan_sparepart + $finan->denda + $finan->cicilan_sparepart + $finan->cicilan_ks + $finan->biaya_cuci + $finan->iuran_laka + $finan->cicilan_dp_kso + $finan->cicilan_hutang_lama + $finan->cicilan_lain + $finan->hutang_dp_sparepart - $finan->potongan), 'cicilan_lain' => $finan->cicilan_lain, 'hutang_dp_sparepart' => $finan->hutang_dp_sparepart, 'operasi_status_id' => $finan->kode, 'total' => $finan->setoran_wajib + $finan->tabungan_sparepart + $finan->denda + $finan->cicilan_sparepart + $finan->cicilan_ks + $finan->biaya_cuci + $finan->iuran_laka + $finan->cicilan_dp_kso + $finan->cicilan_hutang_lama + $finan->cicilan_lain + $finan->hutang_dp_sparepart, 'setoranops' => $finan->setoran_cash - ($finan->biaya_cuci + $finan->iuran_laka)); } return json_encode($responce); /**/ }
public function post_loaddatamonthly() { $date = Input::get('dateops', date('Y-m-d')); $startdate = Input::get('startdateops', date('Y-m-01')); $pembagi = Input::get('pembagi', date('t')); $shift_id = Input::get('shift_id'); $page = Input::get('page'); $limit = Input::get('rows'); $sidx = Input::get('sidx', 'operasi_time'); $sord = Input::get('sord', 'asc'); //$count = Driver::count(); if ($shift_id == 'all') { $count = DB::table('financial_report_summary_graf')->where('operasi_time', '>=', $startdate)->where('operasi_time', '<=', $date)->where_pool_id(Auth::user()->pool_id)->count(); } else { $count = DB::table('financial_report_summary')->where('shift_id', '=', $shift_id)->where('operasi_time', '>=', $startdate)->where('operasi_time', '<=', $date)->where_pool_id(Auth::user()->pool_id)->count(); } if ($count > 0) { $total_pages = ceil($count / $limit); } else { $total_pages = 0; } if ($page > $total_pages) { $page = $total_pages; } $start = $limit * $page - $limit; if ($start < 0) { $start = 0; } if ($shift_id == 'all') { $financials = DB::table('financial_report_summary_graf')->where('operasi_time', '>=', $startdate)->where('operasi_time', '<=', $date)->where_pool_id(Auth::user()->pool_id)->order_by($sidx, $sord)->skip($start)->take($limit)->get(); } else { $financials = DB::table('financial_report_summary')->where('shift_id', '=', $shift_id)->where('operasi_time', '>=', $startdate)->where('operasi_time', '<=', $date)->where_pool_id(Auth::user()->pool_id)->order_by($sidx, $sord)->skip($start)->take($limit)->get(); } $responce['page'] = $page; $responce['total'] = $total_pages; $responce['records'] = $count; if ($financials) { $no = $start + 0; $ksavr = 0; $selisiavr = 0; $setoranopsavr = 0; $totalavr = 0; $cicilanksavr = 0; $dendaavr = 0; $cicilan_dp_ksoavr = 0; foreach ($financials as $finan) { $no++; $responce['rows'][] = array('no' => $no, 'operasi_time' => $finan->operasi_time, 'shift_id' => Shift::find($finan->shift_id)->shift, 'setoran_cash' => $finan->setoran_cash, 'setoran_wajib' => $finan->setoran_wajib, 'tabungan_sparepart' => $finan->tabungan_sparepart, 'denda' => $finan->denda, 'potongan' => $finan->potongan, 'cicilan_sparepart' => $finan->cicilan_sparepart, 'cicilan_ks' => $finan->cicilan_ks, 'biaya_cuci' => $finan->biaya_cuci, 'iuran_laka' => $finan->iuran_laka, 'cicilan_dp_kso' => $finan->cicilan_dp_kso, 'cicilan_hutang_lama' => $finan->cicilan_hutang_lama, 'ks' => $finan->setoran_cash - ($finan->setoran_wajib + $finan->tabungan_sparepart + $finan->denda + $finan->cicilan_sparepart + $finan->cicilan_ks + $finan->biaya_cuci + $finan->iuran_laka + $finan->cicilan_dp_kso + $finan->cicilan_hutang_lama + $finan->cicilan_lain + $finan->hutang_dp_sparepart - $finan->potongan), 'cicilan_lain' => $finan->cicilan_lain, 'hutang_dp_sparepart' => $finan->hutang_dp_sparepart, 'total' => $finan->setoran_wajib + $finan->tabungan_sparepart + $finan->denda + $finan->cicilan_sparepart + $finan->cicilan_ks + $finan->biaya_cuci + $finan->iuran_laka + $finan->cicilan_dp_kso + $finan->cicilan_hutang_lama + $finan->cicilan_lain + $finan->hutang_dp_sparepart, 'setoranops' => $finan->setoran_cash - ($finan->biaya_cuci + $finan->iuran_laka)); $dendaavr += $finan->denda; $cicilan_dp_ksoavr += $finan->cicilan_dp_kso; $cicilanksavr += $finan->cicilan_ks; $ksavr += $finan->setoran_cash - ($finan->setoran_wajib + $finan->tabungan_sparepart + $finan->denda + $finan->cicilan_sparepart + $finan->cicilan_ks + $finan->biaya_cuci + $finan->iuran_laka + $finan->cicilan_dp_kso + $finan->cicilan_hutang_lama + $finan->cicilan_lain + $finan->hutang_dp_sparepart - $finan->potongan); $selisiavr += $finan->selisi_ks; $setoranopsavr += $finan->setoran_cash - ($finan->biaya_cuci + $finan->iuran_laka); $totalavr += $finan->setoran_wajib + $finan->tabungan_sparepart + $finan->denda + $finan->cicilan_sparepart + $finan->cicilan_ks + $finan->biaya_cuci + $finan->iuran_laka + $finan->cicilan_dp_kso + $finan->cicilan_hutang_lama + $finan->cicilan_lain + $finan->hutang_dp_sparepart; } $responce['userdata']['ks'] = $ksavr / ($count - 2); $responce['userdata']['selisi_ks'] = $selisiavr / ($count - 2); $responce['userdata']['setoranops'] = $setoranopsavr / ($count - 2); $responce['userdata']['total'] = $totalavr / ($count - 2); $responce['userdata']['denda'] = $dendaavr / ($count - 2); $responce['userdata']['cicilan_ks'] = $cicilanksavr / ($count - 2); $responce['userdata']['cicilan_dp_kso'] = $cicilan_dp_ksoavr / ($count - 2); } $responce['userdata']['operasi_time'] = 'Rata-rata:'; return json_encode($responce); /**/ }
<th>Waktu Operasi</th> <th>Status Operasi</th> </tr> </thead> <tbody> <?php $i = 1; ?> @forelse($scheduleday as $sch) <tr> <td>{{ $i }}</td> <td>{{ $sch->taxi_number; }}</td> <td>{{ ($driver = Driver::find($sch->driver_id))? $driver->nip : ' ' }}</td> <td><a class="change_toggler" rel="{{$sch->id}}">{{ ($driver)? $driver->name: 'pengemudi terdelete'; }}</a></td> <td><?php $shift = Shift::find($sch->shift_id); ?> @if($shift) {{ $shift->shift }} @endif</td> <td>{{ ($sch->fg_check == 1) ? 'Sudah Print SPJ' : 'Belum Print SPJ' ; }}</td> </tr> <?php $i++; ?> @empty <tr> <td colspan="5"> is empty</td> </tr> @endforelse </tbody> </table> </div>
public function get_findbyid($id = false) { if (!$id) { return false; } $scheduledate = Scheduledate::find($id); $schedule = Schedule::find($scheduledate->schedule_id); $driverinfo = Driver::find($scheduledate->driver_id); $fleetinfo = Fleet::find($schedule->fleet_id); $status = 'OK'; $blocked = false; //if($driverinfo->fg_blocked === 1 OR $fleetinfo->fg_blocked === 1 OR $fleetinfo->fg_bengkel === 1) $status = 'Blocked'; if ($driverinfo->fg_blocked == 1) { $status = 'Pengemudi di block oleh sistem'; $blocked = true; } else { if ($driverinfo->fg_super_blocked == 1) { $status = 'Pengemudi terkena super block oleh sistem'; $blocked = true; } else { if ($fleetinfo->fg_blocked == 1) { $status = 'Armada di block'; $blocked = true; } else { if ($fleetinfo->fg_bengkel == 1) { $status = 'Armada di Bengkel'; $blocked = true; } } } } if ($fleetinfo->fg_setor == 1) { $status = 'Armada Belum Setoran'; $blocked = true; } $shift = Shift::find($scheduledate->shift_id); $time = Myfungsi::sysdate(); //date ajustment $start_time = strtotime($shift->spj_print_start); $end_time = strtotime($shift->spj_print_end); $print = false; if ($time >= $start_time && $time <= $end_time) { $print = true; } $returndata = array('id' => $scheduledate->id, 'nip' => $driverinfo->nip, 'driver_id' => $driverinfo->id, 'name' => $driverinfo->name, 'taxi_number' => $fleetinfo->taxi_number, 'police_number' => $fleetinfo->police_number, 'pool_id' => $fleetinfo->pool_id, 'pool' => Pool::find($fleetinfo->pool_id)->pool_name, 'status' => $status, 'print' => $print, 'blocked' => $blocked); return json_encode($returndata); }