/** * Delete PO with rows in relative tables * @param $poId */ public static function deletePO($poId) { $po = Pos::model()->with('document.image')->findByPk($poId); if ($po) { $document = $po->document; $image = $document->image; $image->delete(); $document->delete(); PoDists::model()->deleteAllByAttributes(array( 'PO_ID' => $poId, )); PoDescDetail::model()->deleteAllByAttributes(array( 'PO_ID' => $poId, )); PoPmtsTraking::model()->deleteAllByAttributes(array( 'PO_ID' => $poId, )); // delete thumbnail $filePath = 'protected/data/thumbs/' . $po->Document_ID . '.jpg'; if (file_exists($filePath)) { @unlink($filePath); } // delete library links LibraryDocs::deleteDocumentLinks($po->Document_ID); $po->delete(); } }
/** * Save PO Details * @param $poId * @param $detailsToSave * @return bool */ public static function savePODetails($poId, $detailsToSave) { PoDescDetail::model()->deleteAllByAttributes(array( 'PO_ID' => $poId, )); $detailsToSave = array_slice($detailsToSave,0, 50, true); // only 50 items allowed foreach ($detailsToSave as $detailToSave) { $newDetail = new PoDescDetail(); $newDetail->PO_ID = $poId; if ($detailToSave['PO_Desc_Qty'] == '') { $newDetail->PO_Desc_Qty = 0; } else { $newDetail->PO_Desc_Qty = intval($detailToSave['PO_Desc_Qty']); } if ($detailToSave['PO_Desc_Desc'] == '') { $newDetail->PO_Desc_Desc = '-'; } else { $newDetail->PO_Desc_Desc = $detailToSave['PO_Desc_Desc']; } if ($detailToSave['PO_Desc_Purchase_Rental'] == 0) { $newDetail->PO_Desc_Purchase = 1; $newDetail->PO_Desc_Rental = 0; } else { $newDetail->PO_Desc_Purchase = 0; $newDetail->PO_Desc_Rental = 1; } if ($detailToSave['PO_Desc_Amount'] == '' || $detailToSave['PO_Desc_Amount'] == 0) { $newDetail->PO_Desc_Amount = 0; } else { $newDetail->PO_Desc_Amount = number_format(floatval($detailToSave['PO_Desc_Amount']), 2, '.', ''); } if ($detailToSave['PO_Desc_Budget_Line_Num'] == '') { $newDetail->PO_Desc_Budget_Line_Num = null; } else { $newDetail->PO_Desc_Budget_Line_Num = $detailToSave['PO_Desc_Budget_Line_Num']; } if ($newDetail->validate()) { $newDetail->save(); $result = true; } else { $result = false; } } return $result; }