Reputation: 11
I am working on a project using Phalcon and encountering an issue while trying to save DrugOrder objects. Below is the relevant part of my code:
$drug_order = DrugOrder::find([
'conditions' => "resep_no = :resep_no: AND disposition= :disposition: AND hospital_id = :hospital_id:",
'bind' => [
'resep_no' => $resep_no,
'disposition' => 'retur',
'hospital_id' => $this->membership->houseID()
]
]);
if ($drug_order && count($drug_order) > 0) {
$discount = CF::toArray($discount);
foreach ($drug_order as $order) {
if (!empty($discount)) {
$checker = array_values(array_filter($discount, function ($d) use ($order) {
return $d['drug_order_id'] == $order->drug_order_id || $d['drug_order_id'] == $order->returned_drug_id;
}));
if (!empty($checker)) {
$order->discount_percentage = (double)$checker[0]['discount_percentage'];
$order->discount = (double)$checker[0]['discount'];
$order->sisa = (double)$checker[0]['sisa'];
}
}
$order->disposition = 'returned';
$order->retur_date = $now;
$order->retur_by = $security->user_id;
$order->retur_by_name = $security->full_name;
$order->modified_date = $now;
$order->modified_by = $security->user_id;
$order->modified_by_name = $security->full_name;
if ($order->save() === false) {
$messages = $order->getMessages();
foreach ($messages as $message) {
$this->base->logError($message, static::class, __LINE__);
}
} else {
$this->base->logDev($order->toArray()); // Log the order details after saving
}
}
}
$this->base->logDev($drug_order->toArray()); // Log the entire drug_order collection
$prescription_tags = preg_split('@,@', $drug_prescription->tags, -1, PREG_SPLIT_NO_EMPTY);
$resep_retur_no = CF::valuesInArrayByPrefix($prescription_tags, 'retur-from-resep-');
if (!empty($resep_retur_no)) {
foreach ($drug_order as $order) {
$order_drug_tags = preg_split('@,@', $order->tags, -1, PREG_SPLIT_NO_EMPTY);
$drug_retur_nos = CF::valuesInArrayByPrefix($order_drug_tags, 'retur-from-resep-');
$gudang_service->setUsedStockTransactionDisposition($drug_prescription->depo_id, current($drug_retur_nos), $gudang_service::STOCK_DISPOSITION_RETUR_USED, [], $order->returned_drug_id, $order->numero_retur, $usage, $drug_prescription->depo_name);
}
} else {
foreach ($drug_order as $order) {
$gudang_service->setUsedStockTransactionDisposition($drug_prescription->depo_id, $resep_no, $gudang_service::STOCK_DISPOSITION_RETUR_USED, [], $order->drug_order_id, $order->numero_retur, $usage);
}
}
$debug_key = sprintf('%s (%s)', $drug_prescription->full_name, $drug_prescription->rm_id);
$message = sprintf('Obat pada resep %s pasien dengan nama %s berhasil diretur.', $drug_prescription->resep_no, $debug_key);
$this->logger->logAction($this->resourceName, $message, [], strtolower($this->resourceName), $security->user_id, 'ok', $drug_prescription->resep_no);
The problem I'm facing is that when I perform logDev for drug_order, the result is [false, false, false] even though the save() method returns true for each DrugOrder.
I have tried adding detailed logging for each DrugOrder object after saving, but the result remains the same. I have also ensured that each DrugOrder is saved correctly without any error messages.
Can anyone provide insights into why drug_order still shows [false, false, false] in the logDev? Is there something I might be missing in the save or logging process? Thank you in advance for your assistance.
Upvotes: 0
Views: 32