Save Jaspel
unknown
plain_text
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