revert changes
This commit is contained in:
parent
cd8c1310f4
commit
3a7d88a53b
|
|
@ -195,6 +195,11 @@ function fill_agricultural_row_fields(row, asset, agricultural_purposes, total_a
|
|||
}
|
||||
|
||||
function calculate_agricultural_tax_for_row_silent(row, asset, total_area, group_info, callback, agricultural_purposes) {
|
||||
let agricultural_purpose_name = null;
|
||||
if (asset.agricultural_purpose && agricultural_purposes && agricultural_purposes[asset.agricultural_purpose]) {
|
||||
agricultural_purpose_name = agricultural_purposes[asset.agricultural_purpose].purpose_name;
|
||||
}
|
||||
|
||||
if (!asset.cadastral_district_name || !asset.quality_groups || !asset.agricultural_land_purpose) {
|
||||
callback();
|
||||
return;
|
||||
|
|
@ -206,7 +211,8 @@ function calculate_agricultural_tax_for_row_silent(row, asset, total_area, group
|
|||
area_value: total_area,
|
||||
cadastral_district_name: asset.cadastral_district_name,
|
||||
quality_groups: asset.quality_groups,
|
||||
agricultural_land_purpose: asset.agricultural_land_purpose
|
||||
agricultural_land_purpose: asset.agricultural_land_purpose,
|
||||
agricultural_purpose_name: agricultural_purpose_name
|
||||
},
|
||||
callback: function(response) {
|
||||
if (response.message && 'tax_amount' in response.message) {
|
||||
|
|
|
|||
|
|
@ -60,17 +60,20 @@ def get_doctype_fields_info():
|
|||
|
||||
@frappe.whitelist()
|
||||
def calculate_agricultural_tax(area_value, cadastral_district_name, quality_groups, agricultural_land_purpose, agricultural_purpose_name=None):
|
||||
"""
|
||||
Calculates tax for agricultural land
|
||||
Formula: hectare × score × markup
|
||||
|
||||
area_value: всегда в гектарах (без конвертации)
|
||||
"""
|
||||
try:
|
||||
if area_value is None or not cadastral_district_name or not quality_groups or not agricultural_land_purpose:
|
||||
frappe.throw("Not all fields are filled for calculation")
|
||||
|
||||
hectare_value = float(area_value)
|
||||
original_unit = "unknown"
|
||||
|
||||
if agricultural_purpose_name == 'Təyinatı üzrə istifadə edilməyən kənd təsərrüfatı torpaqları üzrə hesablanmış vergi məbləği':
|
||||
if hectare_value > 0:
|
||||
hectare_value = float(area_value) / 10000
|
||||
original_unit = "sq.m"
|
||||
else:
|
||||
original_unit = "hectares"
|
||||
|
||||
score = get_cadastral_score(cadastral_district_name, quality_groups)
|
||||
markup = get_markup_coefficient(agricultural_land_purpose)
|
||||
result = hectare_value * score * markup
|
||||
|
|
@ -78,6 +81,8 @@ def calculate_agricultural_tax(area_value, cadastral_district_name, quality_grou
|
|||
return {
|
||||
'tax_amount': result,
|
||||
'calculation_details': {
|
||||
'original_value': float(area_value),
|
||||
'original_unit': original_unit,
|
||||
'hectare': hectare_value,
|
||||
'score': score,
|
||||
'markup': markup,
|
||||
|
|
@ -125,12 +130,6 @@ def get_markup_coefficient(agricultural_land_purpose):
|
|||
|
||||
@frappe.whitelist()
|
||||
def calculate_industrial_tax(area_sqm, territorial_unit_name, industrial_land_purpose):
|
||||
"""
|
||||
Calculates tax for industrial land
|
||||
Formula: (area_in_sqm ÷ 100) × score (progressive system)
|
||||
|
||||
area_sqm: площадь в квадратных метрах (уже вычтена tax_exempt_area)
|
||||
"""
|
||||
try:
|
||||
if area_sqm is None or not territorial_unit_name or not industrial_land_purpose:
|
||||
frappe.throw("Not all fields are filled for calculation")
|
||||
|
|
|
|||
Loading…
Reference in New Issue