Single declaration related to salaried and non-salaried work updated
This commit is contained in:
parent
0faed91ea1
commit
57a5b0ac32
|
|
@ -9,12 +9,15 @@ frappe.ui.form.on('Company', {
|
||||||
frm.add_custom_button(__('Get E-Taxes Profile'), function() {
|
frm.add_custom_button(__('Get E-Taxes Profile'), function() {
|
||||||
ETaxesCompany.checkAuthAndFetchProfile(frm);
|
ETaxesCompany.checkAuthAndFetchProfile(frm);
|
||||||
}, __('E-Taxes'));
|
}, __('E-Taxes'));
|
||||||
|
|
||||||
// Add Set Main Activity button
|
// Add Set Main Activity button
|
||||||
frm.add_custom_button(__('Set Main Activity'), function() {
|
frm.add_custom_button(__('Set Main Activity'), function() {
|
||||||
ETaxesCompany.showMainActivitySelector(frm);
|
ETaxesCompany.showMainActivitySelector(frm);
|
||||||
}, __('E-Taxes'));
|
}, __('E-Taxes'));
|
||||||
|
|
||||||
|
// Make declaration default fields always editable
|
||||||
|
ETaxesCompany.enableDeclarationDefaultFields(frm);
|
||||||
|
|
||||||
// Check gambling activity on refresh
|
// Check gambling activity on refresh
|
||||||
ETaxesCompany.checkGamblingActivity(frm);
|
ETaxesCompany.checkGamblingActivity(frm);
|
||||||
},
|
},
|
||||||
|
|
@ -26,6 +29,18 @@ frappe.ui.form.on('Company', {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'mdssüzrə': function(frm) {
|
||||||
|
ETaxesCompany.saveDeclarationDefaults(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
'icbaritibbisığortaüzrə': function(frm) {
|
||||||
|
ETaxesCompany.saveDeclarationDefaults(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
'işsizlikdənsığortaüzrə': function(frm) {
|
||||||
|
ETaxesCompany.saveDeclarationDefaults(frm);
|
||||||
|
},
|
||||||
|
|
||||||
seller: function(frm) {
|
seller: function(frm) {
|
||||||
ETaxesCompany.handleGamblingFieldChange(frm, 'seller');
|
ETaxesCompany.handleGamblingFieldChange(frm, 'seller');
|
||||||
},
|
},
|
||||||
|
|
@ -217,6 +232,44 @@ window.ETaxesCompany = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make declaration default fields editable regardless of docstatus
|
||||||
|
*/
|
||||||
|
enableDeclarationDefaultFields: function(frm) {
|
||||||
|
['mdssüzrə', 'icbaritibbisığortaüzrə', 'işsizlikdənsığortaüzrə'].forEach(function(fieldname) {
|
||||||
|
frm.set_df_property(fieldname, 'read_only', 0);
|
||||||
|
});
|
||||||
|
frm.refresh_fields(['mdssüzrə', 'icbaritibbisığortaüzrə', 'işsizlikdənsığortaüzrə']);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto-save declaration default fields via direct DB update (bypasses submit state)
|
||||||
|
*/
|
||||||
|
saveDeclarationDefaults: function(frm) {
|
||||||
|
frappe.call({
|
||||||
|
method: 'taxes_az.company_etaxes.force_update_declaration_defaults',
|
||||||
|
args: {
|
||||||
|
company_name: frm.doc.name,
|
||||||
|
mdss: frm.doc['mdssüzrə'] || '',
|
||||||
|
icbari: frm.doc['icbaritibbisığortaüzrə'] || '',
|
||||||
|
issizlik: frm.doc['işsizlikdənsığortaüzrə'] || ''
|
||||||
|
},
|
||||||
|
callback: function(r) {
|
||||||
|
if (r.message && r.message.success) {
|
||||||
|
frm.doc.__unsaved = 0;
|
||||||
|
if (frm.doc.docstatus === 1) {
|
||||||
|
frm.page.set_indicator(__('Submitted'), 'blue');
|
||||||
|
} else {
|
||||||
|
frm.page.clear_indicator();
|
||||||
|
}
|
||||||
|
frappe.show_alert({ message: __('Saved'), indicator: 'green' }, 2);
|
||||||
|
} else {
|
||||||
|
frappe.show_alert({ message: __('Save failed'), indicator: 'red' }, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check authentication and fetch profile with inline re-authentication
|
* Check authentication and fetch profile with inline re-authentication
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -542,6 +542,31 @@ def get_property_type_name_by_code(code, asan_login_name=None):
|
||||||
"message": "An error occurred while getting property type name"
|
"message": "An error occurred while getting property type name"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def force_update_declaration_defaults(company_name, mdss, icbari, issizlik):
|
||||||
|
"""Обновление полей умолчаний деклараций на компании, минуя проверку submit-статуса"""
|
||||||
|
try:
|
||||||
|
if not frappe.db.exists("Company", company_name):
|
||||||
|
return {"success": False, "message": f"Company {company_name} not found"}
|
||||||
|
|
||||||
|
frappe.db.sql("""
|
||||||
|
UPDATE `tabCompany`
|
||||||
|
SET `mdssüzrə` = %s,
|
||||||
|
`icbaritibbisığortaüzrə` = %s,
|
||||||
|
`işsizlikdənsığortaüzrə` = %s,
|
||||||
|
`modified` = NOW(),
|
||||||
|
`modified_by` = %s
|
||||||
|
WHERE `name` = %s
|
||||||
|
""", (mdss or '', icbari or '', issizlik or '', frappe.session.user, company_name))
|
||||||
|
|
||||||
|
frappe.db.commit()
|
||||||
|
return {"success": True}
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
frappe.log_error(f"Error in force_update_declaration_defaults: {str(e)}", "Declaration Defaults Error")
|
||||||
|
return {"success": False, "message": str(e)}
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def force_update_single_field(company_name, field_name, field_value):
|
def force_update_single_field(company_name, field_name, field_value):
|
||||||
"""Форсированное обновление одного поля компании"""
|
"""Форсированное обновление одного поля компании"""
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,33 @@
|
||||||
|
function fillFromCompanyDefaults(frm) {
|
||||||
|
const company = frappe.defaults.get_user_default('Company')
|
||||||
|
|| frappe.defaults.get_default('Company');
|
||||||
|
if (!company) return;
|
||||||
|
|
||||||
|
frappe.db.get_value(
|
||||||
|
'Company',
|
||||||
|
company,
|
||||||
|
['mdssüzrə', 'icbaritibbisığortaüzrə', 'işsizlikdənsığortaüzrə', 'main_activity']
|
||||||
|
).then(r => {
|
||||||
|
if (!r || !r.message) return;
|
||||||
|
const v = r.message;
|
||||||
|
if (v['mdssüzrə']) frm.set_value('mdssüzrə', v['mdssüzrə']);
|
||||||
|
if (v['icbaritibbisığortaüzrə']) frm.set_value('icbaritibbisığortaüzrə', v['icbaritibbisığortaüzrə']);
|
||||||
|
if (v['işsizlikdənsığortaüzrə']) frm.set_value('işsizlikdənsığortaüzrə', v['işsizlikdənsığortaüzrə']);
|
||||||
|
if (v['main_activity']) frm.set_value('vergiüzrə', v['main_activity']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
frappe.ui.form.on('Single declaration related to salaried and non-salaried work', {
|
||||||
|
onload: function(frm) {
|
||||||
|
if (!frm.doc.__islocal) return;
|
||||||
|
fillFromCompanyDefaults(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
il: function(frm) {
|
||||||
|
fillFromCompanyDefaults(frm);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Код для экспорта XML
|
// Код для экспорта XML
|
||||||
frappe.ui.form.on('Single declaration related to salaried and non-salaried work', {
|
frappe.ui.form.on('Single declaration related to salaried and non-salaried work', {
|
||||||
refresh: function(frm) {
|
refresh: function(frm) {
|
||||||
|
|
|
||||||
|
|
@ -137,8 +137,9 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "vergi\u00fczr\u0259",
|
"fieldname": "vergi\u00fczr\u0259",
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Link",
|
||||||
"label": "Vergi \u00fczr\u0259"
|
"label": "Vergi \u00fczr\u0259",
|
||||||
|
"options": "Main type of activity"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "azadolmav\u0259g\u00fcz\u0259\u015ftl\u0259r\u0259m\u0259km\u0259zuniyy\u0259tin\u0259g\u00f6r\u0259kompensasiya",
|
"fieldname": "azadolmav\u0259g\u00fcz\u0259\u015ftl\u0259r\u0259m\u0259km\u0259zuniyy\u0259tin\u0259g\u00f6r\u0259kompensasiya",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue