public function actionCk() { if (Yii::$app->request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $dataKeySelect = $request->post('keysSelect'); $dataKdPo = $request->post('kdpo'); $dataKdRo = $request->post('kdRo'); $dataKdBrg = $request->post('kdBrg'); /* Before Action -> 0 */ $AryKdRo = ArrayHelper::map(Rodetail::find()->where(['KD_RO' => $dataKdRo])->andWhere('STATUS=101')->all(), 'ID', 'ID'); //print_r($AryKdRo); $foreaceAryKdRo = $AryKdRo != 0 ? $AryKdRo : 'Array([0]=>"0")'; foreach ($foreaceAryKdRo as $keyRo) { $roDetailHapus = Rodetail::findOne($keyRo); $roDetailHapus->TMP_CK = 0; $roDetailHapus->save(); } $res = array('status' => 'true'); /* An Action -> 0 */ //print_r($dataKeySelect); if ($dataKeySelect != 0) { //$foreaceGvRoToPo=$dataKeySelect!=0? $dataKeySelect:'Array([0]=>"0")'; foreach ($dataKeySelect as $idx) { $roDetail = Rodetail::find()->where(['KD_RO' => $dataKdRo, 'ID' => $idx])->andWhere('STATUS=1')->one(); //STT =202 $poDetail = Purchasedetail::find()->where('STATUS<>3 AND KD_PO="' . $dataKdPo . '" AND KD_RO="' . $dataKdRo . '" AND KD_BARANG="' . $roDetail->KD_BARANG . '"')->one(); $poUnit = $roDetail->cunit; //$poBarangUmum=$roDetail->barangumum; if (!$poDetail) { //$roDetail = Rodetail::findOne($idx); $roDetail->TMP_CK = 0; /* Untuk testing Checkbook 1 | 0 */ //$roDetail->save(); $res = array('status' => true); /* tidak ada Data pada Purchasedetail |KD_RO&KD_BARANG */ /*Save To Purchase detail*/ $poDetailModel = new Purchasedetail(); $poDetailModel->KD_PO = $dataKdPo; $poDetailModel->KD_RO = $dataKdRo; $poDetailModel->KD_BARANG = $roDetail->KD_BARANG; $poDetailModel->NM_BARANG = $roDetail->NM_BARANG; $poDetailModel->UNIT = $poUnit->KD_UNIT; $poDetailModel->NM_UNIT = $poUnit->NM_UNIT; $poDetailModel->UNIT_QTY = $poUnit->QTY; $poDetailModel->UNIT_WIGHT = $poUnit->WEIGHT; /*FORMULA*/ $pqtyTaken = "SELECT SUM(QTY) as QTY FROM p0002 WHERE STATUS<>3 AND KD_RO='" . $dataKdRo . "' AND KD_BARANG='" . $roDetail->KD_BARANG . "' GROUP BY KD_BARANG"; $countQtyTaken = Purchasedetail::findBySql($pqtyTaken)->one(); if ($countQtyTaken) { $qtyInPo = $countQtyTaken->QTY != '' ? $countQtyTaken->QTY : 0; } else { $qtyInPo = 0; } // print_r($qtyInPo); // die(); //$qtyInPo=$countQtyTaken->QTY!=''? $countQtyTaken->QTY :0; $actualQty = $roDetail->SQTY - $qtyInPo; if ($actualQty > 0) { $poDetailModel->QTY = $actualQty; } else { $poDetailModel->QTY = 0; } //if($roDetail->PARENT_ROSO==0){ $poDetailModel->HARGA = $roDetail->HARGA; //RO //}elseif($roDetail->PARENT_ROSO==1){ // $poDetailModel->HARGA=$roDetail->HARGA_PABRIK; //SO //} $poDetailModel->STATUS = 0; // validasi if po // print_r($roDetail->KD_BARANG); // die(); $rorqty = "SELECT SUM(RQTY) as RQTY FROM r0003 WHERE STATUS<>3 AND KD_RO='" . $dataKdRo . "' AND KD_BARANG='" . $roDetail->KD_BARANG . "' GROUP BY KD_BARANG"; $countQtyro = Rodetail::findBySql($rorqty)->one(); $Rqty = $countQtyro->RQTY; if ($Rqty == $qtyInPo) { $res = array('status' => false); } else { $roDetail->save(); $poDetailModel->save(); } //$poDetailModel->STATUS_DATE =date;//\Yii::$app->formatter->asDate(date,'Y-M-d hh:mm:ss'); // $roDetail->save(); // $poDetailModel->save(); } else { $res = array('status' => false); /* sudah ada Data pada Purchasedetail |KD_RO&KD_BARANG */ } } } //$res = array('status' => 't'); return $res; } }