accounting workflows
This commit is contained in:
@@ -107,6 +107,18 @@
|
||||
<option value="0">inactive</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<label for="sales_account" class="form-label">Sales Account</label>
|
||||
<input type="text" class="form-control account_search" id="sales_account"
|
||||
placeholder="Search account..." autocomplete="off">
|
||||
<input type="hidden" id="sales_account_code">
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<label for="purchase_account" class="form-label">Purchase Account</label>
|
||||
<input type="text" class="form-control account_search" id="purchase_account"
|
||||
placeholder="Search account..." autocomplete="off">
|
||||
<input type="hidden" id="purchase_account_code">
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<!-- Remove d-none from file input so it shows by default -->
|
||||
<div class="mb-3">
|
||||
@@ -160,6 +172,8 @@
|
||||
formData.append('barcode', $('#barcode').val() || '')
|
||||
formData.append('cost_price', $('#cost_price').val() || 0)
|
||||
formData.append('uom', $('#uom').val() || 'pcs')
|
||||
formData.append('sales_account_code', $('#sales_account_code').val() || '')
|
||||
formData.append('purchase_account_code', $('#purchase_account_code').val() || '')
|
||||
|
||||
return ajax_request({
|
||||
url: "<?php echo $server_url?>inventory/api/engine/manage_product.php",
|
||||
@@ -217,6 +231,9 @@
|
||||
el.val(item);
|
||||
});
|
||||
|
||||
set_account_field('#sales_account', '#sales_account_code', res.output.sales_account_code || '');
|
||||
set_account_field('#purchase_account', '#purchase_account_code', res.output.purchase_account_code || '');
|
||||
|
||||
// Handle image field
|
||||
if (res.output.product_image) {
|
||||
$('#current_file_label').val(res.output.product_image);
|
||||
@@ -243,12 +260,55 @@
|
||||
$(async function() {
|
||||
try {
|
||||
await retrieve_category();
|
||||
await load_accounts();
|
||||
await retrieve_for_edit();
|
||||
init_account_search_inputs(null, window.account_search_accounts || []);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
});
|
||||
|
||||
function load_accounts() {
|
||||
return ajax_request({
|
||||
url: "<?php echo $server_url?>accounting/api/engine/account.php",
|
||||
autoPrepare: true,
|
||||
checkRequired: 0,
|
||||
noLoading: true,
|
||||
action: 'read',
|
||||
onSuccess: function(res) {
|
||||
window.account_search_accounts = res.output || [];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function set_account_field(input_selector, hidden_selector, account_code) {
|
||||
var account = (window.account_search_accounts || []).find(function(row) {
|
||||
return String(row.account_code) === String(account_code);
|
||||
});
|
||||
var display = account ? account.account_code + ' - ' + account.account_name : account_code;
|
||||
$(input_selector)
|
||||
.val(display || '')
|
||||
.attr('secondary', display || '')
|
||||
.attr('data-account-code', account_code || '');
|
||||
$(hidden_selector).val(account_code || '');
|
||||
}
|
||||
|
||||
$(document).on('account:selected', '#sales_account', function(e, account) {
|
||||
$('#sales_account_code').val(account.account_code || '');
|
||||
});
|
||||
|
||||
$(document).on('account:selected', '#purchase_account', function(e, account) {
|
||||
$('#purchase_account_code').val(account.account_code || '');
|
||||
});
|
||||
|
||||
$(document).on('account:cleared', '#sales_account', function() {
|
||||
$('#sales_account_code').val('');
|
||||
});
|
||||
|
||||
$(document).on('account:cleared', '#purchase_account', function() {
|
||||
$('#purchase_account_code').val('');
|
||||
});
|
||||
|
||||
|
||||
function validate_stock_thresholds() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user