fix(medical-store): define billerName in saveSale and link sale_id to credit ledger
This commit is contained in:
parent
6ce81eedd8
commit
ab3ab0c17f
|
|
@ -1180,6 +1180,11 @@ class MedicalStoreApi extends BaseController
|
||||||
// Increment sequence in store
|
// Increment sequence in store
|
||||||
$this->db->table('mst_stores')->where('store_id', $storeId)->update(['next_invoice_no' => $seq + 1]);
|
$this->db->table('mst_stores')->where('store_id', $storeId)->update(['next_invoice_no' => $seq + 1]);
|
||||||
|
|
||||||
|
$billerName = trim((string)($json['biller_name'] ?? ($json['operator_name'] ?? ($store['registered_pharmacist_name'] ?? 'Pharmacist'))));
|
||||||
|
if ($billerName === '') {
|
||||||
|
$billerName = 'Pharmacist';
|
||||||
|
}
|
||||||
|
|
||||||
$wholeDiscType = trim((string)($json['whole_discount_type'] ?? 'pct')); // 'pct' or 'val'
|
$wholeDiscType = trim((string)($json['whole_discount_type'] ?? 'pct')); // 'pct' or 'val'
|
||||||
$wholeDiscVal = (float)($json['whole_discount_val'] ?? 0);
|
$wholeDiscVal = (float)($json['whole_discount_val'] ?? 0);
|
||||||
|
|
||||||
|
|
@ -1633,7 +1638,7 @@ class MedicalStoreApi extends BaseController
|
||||||
$cashPaid = (float)($json['cash_paid'] ?? ($paymentMode === 'Cash' ? $finalNetPayable : 0));
|
$cashPaid = (float)($json['cash_paid'] ?? ($paymentMode === 'Cash' ? $finalNetPayable : 0));
|
||||||
$upiPaid = (float)($json['upi_paid'] ?? ($paymentMode === 'UPI' ? $finalNetPayable : 0));
|
$upiPaid = (float)($json['upi_paid'] ?? ($paymentMode === 'UPI' ? $finalNetPayable : 0));
|
||||||
$cardPaid = (float)($json['card_paid'] ?? ($paymentMode === 'Card' ? $finalNetPayable : 0));
|
$cardPaid = (float)($json['card_paid'] ?? ($paymentMode === 'Card' ? $finalNetPayable : 0));
|
||||||
$creditAmount = (float)($json['credit_amount'] ?? ($paymentMode === 'IPD_Credit' ? $finalNetPayable : 0));
|
$creditAmount = (float)($json['credit_amount'] ?? (($paymentMode === 'IPD_Credit' || $paymentMode === 'Staff_Credit') ? $finalNetPayable : 0));
|
||||||
} else {
|
} else {
|
||||||
// Net is negative: Pharmacy refunds difference to patient
|
// Net is negative: Pharmacy refunds difference to patient
|
||||||
$finalNetPayable = 0.00;
|
$finalNetPayable = 0.00;
|
||||||
|
|
@ -1790,7 +1795,13 @@ class MedicalStoreApi extends BaseController
|
||||||
if ($paymentMode === 'Staff_Credit' && $creditAccountId > 0) {
|
if ($paymentMode === 'Staff_Credit' && $creditAccountId > 0) {
|
||||||
$saleData['credit_account_id'] = $creditAccountId;
|
$saleData['credit_account_id'] = $creditAccountId;
|
||||||
$saleData['credit_amount'] = $finalNetPayable;
|
$saleData['credit_amount'] = $finalNetPayable;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->table('mst_sales')->insert($saleData);
|
||||||
|
$saleId = $this->db->insertID();
|
||||||
|
|
||||||
|
// If Staff / Customer Credit, update balance and ledger
|
||||||
|
if ($paymentMode === 'Staff_Credit' && $creditAccountId > 0) {
|
||||||
if ($this->db->tableExists('mst_credit_accounts')) {
|
if ($this->db->tableExists('mst_credit_accounts')) {
|
||||||
$this->db->table('mst_credit_accounts')
|
$this->db->table('mst_credit_accounts')
|
||||||
->where('account_id', $creditAccountId)
|
->where('account_id', $creditAccountId)
|
||||||
|
|
@ -1805,6 +1816,7 @@ class MedicalStoreApi extends BaseController
|
||||||
'store_id' => $storeId,
|
'store_id' => $storeId,
|
||||||
'account_id' => $creditAccountId,
|
'account_id' => $creditAccountId,
|
||||||
'entry_type' => 'CREDIT_SALE',
|
'entry_type' => 'CREDIT_SALE',
|
||||||
|
'sale_id' => $saleId,
|
||||||
'invoice_no' => $invoiceNo,
|
'invoice_no' => $invoiceNo,
|
||||||
'debit_amount' => $finalNetPayable,
|
'debit_amount' => $finalNetPayable,
|
||||||
'credit_amount' => 0.00,
|
'credit_amount' => 0.00,
|
||||||
|
|
@ -1818,9 +1830,6 @@ class MedicalStoreApi extends BaseController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->table('mst_sales')->insert($saleData);
|
|
||||||
$saleId = $this->db->insertID();
|
|
||||||
|
|
||||||
// If this sale originated from a Mobile Draft Bill, mark the draft as CONVERTED
|
// If this sale originated from a Mobile Draft Bill, mark the draft as CONVERTED
|
||||||
$draftId = !empty($json['draft_id']) ? (int)$json['draft_id'] : 0;
|
$draftId = !empty($json['draft_id']) ? (int)$json['draft_id'] : 0;
|
||||||
$draftCode = trim((string)($json['draft_code'] ?? ''));
|
$draftCode = trim((string)($json['draft_code'] ?? ''));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user