Tolomh mas wis
unknown
php
a year ago
27 kB
7
Indexable
public function saveJasaPelayananNewLoopKeuangan(Request $request) { //TODO : SAVE PAGU DB::beginTransaction(); $dataReq = $request->all(); $noregistrasi = $request['noregistrasi']; ini_set('max_execution_time', 500); //6 minutes $peg = \DB::table('jasapelayanan_t') ->where('noregistrasi', $noregistrasi) ->get(); foreach ($peg as $x) { return ("Data Sudah Pernah DI Verifikasi"); # code... } try { //non bedah $data = DB::select( DB::raw( "select golonganpajakpegawai_m.id,jasadokter.objectkelompokpasienlastfk,jasadokter.namaexternal,jasadokter.objectbahanprodukfk,jasadokter.objectjenispetugaspefk, jasadokter.objectruanganfk, jasadokter.norecpp,jasadokter.objectdetailjenisprodukfk,jasadokter.norecppd,jasadokter.tarifrs,jasadokter.objectpegawaifk, jasadokter.produkfk,jasadokter.objectpajakpegawai,jasadokter.nocm, jasadokter.namalengkap, jasadokter.namaproduk, jasadokter.noregistrasi, jasadokter.komponenharga, jasadokter.hargajual, jasadokter.jumlah, jasadokter.namaruangan, jasadokter.tglpelayanan, jasadokter.jenispetugaspe, jasadokter.namadepartemen, jasadokter.namarekanan, jasadokter.idkelas, jasadokter.namakelas, jasacito, case when golonganpajakpegawai_m.nilaigolongan is null then 100 else golonganpajakpegawai_m.nilaigolongan end as nilaigolongan, golonganpajakpegawai_m.golonganpajakpegawai ,jasadokter.harganetto ,jasadokter.komponenhargafk , jasadokter.objectruanganfk, jasadokter.objectruanganasalfk FROM jasadokter LEFT OUTER JOIN golonganpajakpegawai_m ON jasadokter.objectpajakpegawai = golonganpajakpegawai_m.id WHERE (jasadokter.noregistrasi = '$noregistrasi')and jasadokter.tarifrs>0 and jasadokter.hargajual>0 and jasadokter.objectruanganfk not in (44,277)" ) ); $datax = DB::select( DB::raw( "select pasiendaftar_t.nosbmlastfk, cast(strukbuktipenerimaan_t.tglsbm as datetime) as tglsbm FROM pasiendaftar_t INNER JOIN strukbuktipenerimaan_t ON pasiendaftar_t.nosbmlastfk = strukbuktipenerimaan_t.norec WHERE pasiendaftar_t.noregistrasi = '$noregistrasi'" ) ); // $tglclosing = date('Y-m-d H:i:s'); $tglclosing = $request['tglclosing']; $tglnk = $request['tglnk']; // if (!empty($datax)) { // foreach ($datax as $itmx) { // $tglclosing = $itmx->tglsbm; // } // } $datax2 = DB::select( DB::raw( "select isclosing from pasiendaftar_t WHERE pasiendaftar_t.noregistrasi = '$noregistrasi'" ) ); if (!empty($datax2)) { if ($tglclosing != null) { $SCSC = Pasiendaftar::where('noregistrasi', '=', $noregistrasi) ->update([ 'isclosing' => 1, 'tglclosing' => $tglclosing, 'tanggalnk' => $tglnk ]); } } $berkasrs = false; $istrueberkasrs = NULL; $tampungcito = 0; if (count($data) > 0) { $tampungnorecpp = $data[0]->norecpp; } foreach ($data as $itm) { // harusnya ini buat sementara aja untuk dr yang naik golongan if ($itm->objectpegawaifk == 320261196) { $itm->nilaigolongan = 15; $itm->objectpegawaifk = 320261808; $itm->objectpajakpegawai = 1; } if ($itm->objectpegawaifk == 25179) { $itm->nilaigolongan = 15; $itm->objectpegawaifk = 320261718; $itm->objectpajakpegawai = 1; } if ($itm->objectpegawaifk == 320261233) { $itm->nilaigolongan = 15; $itm->objectpegawaifk = 320261713; $itm->objectpajakpegawai = 1; } if ($itm->objectpegawaifk == 320261641) { $itm->nilaigolongan = 15; $itm->objectpegawaifk = 320261805; $itm->objectpajakpegawai = 1; } if ($itm->objectpegawaifk == 25135) { $itm->nilaigolongan = 15; $itm->objectpegawaifk = 320261806; $itm->objectpajakpegawai = 1; } if ($itm->objectpegawaifk == 25186) { $itm->nilaigolongan = 15; $itm->objectpegawaifk = 320261807; $itm->objectpajakpegawai = 1; } $jasacito = 0; if ($itm->jasacito != null) { $jasacito = round($itm->jasacito, 0); $tampungcito = $tampungcito + $itm->jasacito; } $persenpph = 0; $persenpph = $itm->nilaigolongan; $bruto = $itm->jumlah * round($itm->hargajual, 0); if ($itm->objectdetailjenisprodukfk == '2016') { // if($itm->produkfk == '4056952'){ $dataMapp = \DB::table('mapPelayananToJasa') ->get(); foreach ($dataMapp as $map) { if ($map->produkfk == $itm->produkfk) { $pengali = 0.8; } else { if ($itm->objectkelompokpasienlastfk == 2 || $itm->objectkelompokpasienlastfk == 3) { if ($itm->id != 1) { $pengali = 0.8; } else { $pengali = 0.9; } } else { $pengali = 0.8; } } } if ($itm->komponenhargafk !== '98' || $itm->komponenhargafk !== '100' || $itm->komponenhargafk !== '25') { if (stripos($itm->namaproduk, 'PEMERIKSAAN') !== false) { if ($itm->komponenhargafk == 94) { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto) * $pengali; } else { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto); } } if (stripos($itm->namaproduk, 'KONSUL') !== false) { // if($itm->komponenhargafk == 94 ){ // $itm->tarifrs = $bruto; // $bruto = ($itm->jumlah * $bruto) * $pengali; // $istrueberkasrs = 1 ; // if($itm->objectbahanprodukfk == 1){ // $berkasrs = true; // $kodetindakankonsul = $itm->produkfk; // $ruangankoknsul = $itm->objectruanganfk; // $itm->tarifrs =$itm->tarifrs ; // $bruto = $bruto; // } // } // else{ // $itm->tarifrs = $bruto; // $bruto = ($itm->jumlah * $bruto); // $istrueberkasrs = 1 ; // } if ($itm->komponenhargafk == 94) { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto) * $pengali; if ($itm->objectbahanprodukfk == 1) { $berkasrs = true; $kodetindakankonsul = $itm->produkfk; $ruangankoknsul = $itm->objectruanganfk; if ($itm->objectpajakpegawai == 1) { $itm->tarifrs = 18000; $bruto = 18000; } else { $itm->tarifrs = 16000; $bruto = 16000; } $istrueberkasrs = 1; } } else { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto); if ($itm->objectbahanprodukfk == 1) { $istrueberkasrs = 1; } } } if (stripos($itm->namaproduk, 'PENDAFTARAN') !== false) { if ($itm->komponenhargafk == 94) { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto) * $pengali; } else { $itm->tarifrs = $bruto; $bruto = $bruto; } } } } elseif ($itm->objectdetailjenisprodukfk == '2143' || $itm->objectdetailjenisprodukfk == '2142' || $itm->objectdetailjenisprodukfk == '118') { $bruto = $itm->jumlah * 50000; //perhitungan bruto radiologi biasa } else if ($itm->objectdetailjenisprodukfk == '1497' && $itm->objectruanganfk == '576' && stripos($itm->namaproduk, 'USG') === false) { $tarifrad = 0; $tampungnorecpp2 = $itm->norecpp; foreach ($data as $rad) { if ($rad->komponenhargafk == 94) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } else if ($rad->komponenhargafk == 6) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } } $bruto = $tarifrad * 0.3; //perhitungan bruto radiologi mri } else if ($itm->objectdetailjenisprodukfk == '1426' && $itm->objectruanganfk == '576' && stripos($itm->namaproduk, 'USG') === false) { $tarifrad = 0; $tampungnorecpp2 = $itm->norecpp; foreach ($data as $rad) { if ($rad->komponenhargafk == 94) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } else if ($rad->komponenhargafk == 6) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } } $bruto = $tarifrad * 0.27; //perhitungan bruto radiologi ct scan } else if ($itm->objectdetailjenisprodukfk == '1425' && $itm->objectruanganfk == '576' && stripos($itm->namaproduk, 'USG') === false) { $tarifrad = 0; $tampungnorecpp2 = $itm->norecpp; foreach ($data as $rad) { if ($rad->komponenhargafk == 94) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } else if ($rad->komponenhargafk == 6) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } } $bruto = $tarifrad * 0.27; //perhitungan bruto radiologi usg } else if (stripos($itm->namaproduk, 'USG') !== false && $itm->objectruanganfk == '576') { $tarifrad = 0; $tampungnorecpp2 = $itm->norecpp; foreach ($data as $rad) { if ($rad->komponenhargafk == 94) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } else if ($rad->komponenhargafk == 6) { if ($tampungnorecpp2 == $rad->norecpp) { $tarifrad = $tarifrad + $rad->harganetto + $rad->jasacito; } } } $bruto = $tarifrad * 0.40; // perhitungan bruto lab all } else if ($itm->objectruanganfk == '575') { $tariflab = 0; $tampungnorecpp3 = $itm->norecpp; foreach ($data as $lab) { if ($tampungnorecpp3 == $lab->norecpp) { $tariflab = $tariflab + $lab->harganetto + $lab->jasacito; } } $bruto = $tariflab * 0.25; } // ini untuk n-cov inap bruto pph netto dipatok langsung if ($itm->produkfk == 4076909 || $itm->produkfk == 4074833) { if ($itm->komponenhargafk == 25) { $itm->tarifrs = 275000; $bruto = 12500; } else { $itm->tarifrs = 275000; $bruto = 37500; } } // ini untuk n-cov biasa dan n-cov naso bruto pph netto dipatok langsung if ($itm->produkfk == 4076908 || $itm->produkfk == 4076911) { $itm->tarifrs = 275000; $bruto = 55000; } // cek kalo ada bruto yang 18000 diubah ke 18000.1 biar muncul di laporannya if ($bruto == 18000) { $bruto = 18000.1; } if ($itm->objectruanganfk == '44') { $itm->tarifrs = $itm->harganetto; if (stripos($itm->namakelas, 'vip') !== false) { $bruto = ($itm->jumlah * $itm->tarifrs) * 0.9; } else { $bruto = ($itm->jumlah * $itm->tarifrs) * 0.8; } // return($bruto); // die(); } //persen pph disimpen disini karena tindakanya dilooping tiap dokter beda persen pphnya // $bruto = $itm->tarif * $persenbruto /100; if ($itm->namaexternal == "dl") { $bruto = $itm->tarifrs * $itm->jumlah; } $pph = $bruto * $persenpph / 100; //pemeriksaan dokter untuk komponen billing dan rm itu pphnya 0 if ($itm->objectdetailjenisprodukfk == '2016') { if (stripos($itm->namaproduk, 'PEMERIKSAAN') !== false) { if($itm->komponenhargafk == 99 || $itm->komponenhargafk == 100) { $pph = 0; } } } $netto = $bruto - $pph; // n-cov dipatok if ($itm->produkfk == 4076909 || $itm->produkfk == 4074833) { if ($itm->komponenhargafk == 25) { $pph = 625; $netto = 11875; } } // n-cov dipatok // if ($itm->produkfk == 4076908 || $itm->produkfk == 4076911) { // $pph = 8250; // $netto = 46750; // } if ($tglclosing == "") { $tglclosing = $itm->tglpelayanan; } $tarif = $itm->tarifrs * $itm->jumlah; if($tampungcito != 0) { $tarif = ($itm->tarifrs * $itm->jumlah) + $tampungcito; } $jaspel = new JasaPelayananDokter(); $norecjaspel = $jaspel->generateNewId(); $jaspel->norec = $norecjaspel; $jaspel->idpetugas = $itm->objectpegawaifk; $jaspel->produkfk = $itm->produkfk; $jaspel->tarif = $itm->tarifrs * $itm->jumlah; $jaspel->jeniskomponen = $itm->komponenhargafk; $jaspel->bruto = $bruto; $jaspel->pph = $pph; $jaspel->netto = $netto; $jaspel->petugasverif = $request['pegawaiverif']; $jaspel->noregistrasi = $request['noregistrasi']; $jaspel->ruanganfk = $itm->objectruanganfk; $jaspel->tglpelayanan = $itm->tglpelayanan; // $jaspel->tglverif = $itm->tglpelayanan; $jaspel->tglverif = $tglclosing; $jaspel->jumlah = (float)$itm->jumlah; $jaspel->kelasfk = $itm->idkelas; $jaspel->norecpp = $itm->norecpp; $jaspel->norecppd = $itm->norecppd; $jaspel->objectjenispetugaspefk = $itm->objectjenispetugaspefk; $jaspel->objectpajakfk = $itm->objectpajakpegawai; $jaspel->isberkasrs = $istrueberkasrs; $jaspel->save(); $istrueberkasrs = NULL; if ($itm->objectruanganfk == '576' || $itm->objectruanganfk == '575') { if ($tampungnorecpp == $itm->norecpp) { if ($tampungcito != 0) { $cito = JasaPelayananDokter::where('norecpp', $itm->norecpp)->update([ 'tarif' => $tarif ]); } } else { $tampungnorecpp = $itm->norecpp; if ($itm->jasacito != null) { $tampungcito = $itm->jasacito; } else { $tampungcito = 0; } } } } //gara2 ini gak muncul si pemeriksaan dokter // if ($berkasrs == true) { // $SCSC = JasaPelayananDokter::where('noregistrasi', $request['noregistrasi']) // ->where('produkfk', '!=', $kodetindakankonsul) // ->where('ruanganfk', $ruangankoknsul) // ->delete(); // } //bedah $data = DB::select( DB::raw( "select jasadokterbedah.objectkelompokpasienlastfk,jasadokterbedah.namaexternal, jasadokterbedah.objectjenispetugaspefk, jasadokterbedah.objectruanganfk, jasadokterbedah.norecpp,jasadokterbedah.objectdetailjenisprodukfk,jasadokterbedah.norecppd,jasadokterbedah.tarifrs,jasadokterbedah.objectpegawaifk, jasadokterbedah.produkfk,jasadokterbedah.objectpajakpegawai,jasadokterbedah.nocm, jasadokterbedah.namalengkap, jasadokterbedah.namaproduk, jasadokterbedah.noregistrasi, jasadokterbedah.komponenharga, jasadokterbedah.hargajual, jasadokterbedah.jumlah, jasadokterbedah.namaruangan, jasadokterbedah.tglpelayanan, jasadokterbedah.jenispetugaspe, jasadokterbedah.namadepartemen, jasadokterbedah.namarekanan, jasadokterbedah.idkelas, jasadokterbedah.namakelas, case when golonganpajakpegawai_m.nilaigolongan is null then 100 else golonganpajakpegawai_m.nilaigolongan end as nilaigolongan, golonganpajakpegawai_m.golonganpajakpegawai ,jasadokterbedah.harganetto ,jasadokterbedah.komponenhargafk , jasadokterbedah.objectruanganfk FROM jasadokterbedah LEFT OUTER JOIN golonganpajakpegawai_m ON jasadokterbedah.objectpajakpegawai = golonganpajakpegawai_m.id WHERE (jasadokterbedah.noregistrasi = '$noregistrasi')and jasadokterbedah.tarifrs>0 and jasadokterbedah.objectruanganfk in (44,277)" ) ); foreach ($data as $itm) { $persenpph = 0; $persenpph = $itm->nilaigolongan; $bruto = $itm->jumlah * round($itm->hargajual, 0); if ($itm->objectdetailjenisprodukfk == '2016') { $dataMapp = \DB::table('mapPelayananToJasa') ->get(); foreach ($dataMapp as $map) { if ($map->produkfk == $itm->produkfk) { $pengali = 0.8; } else { if ($itm->objectkelompokpasienlastfk == 2 || $itm->objectkelompokpasienlastfk == 3) { $pengali = 0.9; } else { $pengali = 0.8; } } } if ($itm->komponenhargafk !== '98' || $itm->komponenhargafk !== '100' || $itm->komponenhargafk !== '25') { if (stripos($itm->namaproduk, 'PEMERIKSAAN') !== false) { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto) * $pengali; } if (stripos($itm->namaproduk, 'KONSUL') !== false) { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto) * $pengali; } else { $itm->tarifrs = $bruto; $bruto = $bruto; } if (stripos($itm->namaproduk, 'PENDAFTARAN') !== false) { $itm->tarifrs = $bruto; $bruto = ($itm->jumlah * $bruto) * $pengali; } } } elseif ($itm->objectdetailjenisprodukfk == '2143' || $itm->objectdetailjenisprodukfk == '2142' || $itm->objectdetailjenisprodukfk == '118') { $bruto = $itm->jumlah * 50000; } if ($itm->objectruanganfk == '44') { $itm->tarifrs = $itm->harganetto; if (stripos($itm->namakelas, 'vip') !== false) { $bruto = ($itm->jumlah * $itm->tarifrs) * 0.9; } else { $bruto = ($itm->jumlah * $itm->tarifrs) * 0.8; } if ($itm->produkfk == 4077621 || $itm->produkfk == 4077623 || $itm->produkfk == 4077624 || $itm->produkfk == 4077625 || $itm->produkfk == 4077626 || $itm->produkfk == 4077627 || $itm->produkfk == 4077628 || $itm->produkfk == 4077629 || $itm->produkfk == 4077630 || $itm->produkfk == 4077631 || $itm->produkfk == 4077632 || $itm->produkfk == 4077633 || $itm->produkfk == 4077634 || $itm->produkfk == 4077635 || $itm->produkfk == 4077636) { $bruto = ($itm->jumlah * $itm->tarifrs) * 0.8; } // return($bruto); // die(); } //persen pph disimpen disini karena tindakanya dilooping tiap dokter beda persen pphnya // $bruto = $itm->tarif * $persenbruto /100; if ($itm->namaexternal == "dl") { $bruto = $itm->tarifrs * $itm->jumlah; } $pph = $bruto * $persenpph / 100; $netto = $bruto - $pph; if ($tglclosing == "") { $tglclosing = $itm->tglpelayanan; } $jaspel = new JasaPelayananDokter(); $norecjaspel = $jaspel->generateNewId(); $jaspel->norec = $norecjaspel; $jaspel->idpetugas = $itm->objectpegawaifk; $jaspel->produkfk = $itm->produkfk; $jaspel->tarif = $itm->tarifrs * $itm->jumlah; $jaspel->jeniskomponen = $itm->komponenhargafk; $jaspel->bruto = $bruto; $jaspel->pph = $pph; $jaspel->netto = $netto; $jaspel->petugasverif = $request['pegawaiverif']; $jaspel->noregistrasi = $request['noregistrasi']; $jaspel->ruanganfk = $itm->objectruanganfk; $jaspel->tglpelayanan = $itm->tglpelayanan; // $jaspel->tglverif = $itm->tglpelayanan; $jaspel->tglverif = $tglclosing; $jaspel->jumlah = (float)$itm->jumlah; $jaspel->kelasfk = $itm->idkelas; $jaspel->norecpp = $itm->norecpp; $jaspel->norecppd = $itm->norecppd; $jaspel->objectjenispetugaspefk = $itm->objectjenispetugaspefk; $jaspel->objectpajakfk = $itm->objectpajakpegawai; $jaspel->save(); } $transStatus = 'true'; } catch (\Exception $e) { $transStatus = 'false'; } $transMessage = "Remunerasi"; if ($transStatus == 'true') { $transMessage = $transMessage . " Berhasil"; DB::commit(); $result = array( "status" => 201, "by" => 'as@epic', ); } else { $transMessage = $transMessage . " Gagal!!"; DB::rollBack(); $result = array( "status" => 400, "by" => 'as@epic', ); } return $this->setStatusCode($result['status'])->respond($result, $transMessage); }
Editor is loading...
Leave a Comment