Beispiel #1
0
 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);
 }
Beispiel #2
0
 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>";
        }    

    }
Beispiel #4
0
 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);
     /**/
 }
Beispiel #5
0
 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>
Beispiel #7
0
 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);
 }