revert changes

This commit is contained in:
Ali 2025-10-27 20:31:36 +04:00
parent 3a7d88a53b
commit 6cd6c0dd90
2 changed files with 26 additions and 15 deletions

View File

@ -200,9 +200,12 @@ function calculate_agricultural_tax_for_row_silent(row, asset, total_area, group
agricultural_purpose_name = agricultural_purposes[asset.agricultural_purpose].purpose_name; agricultural_purpose_name = agricultural_purposes[asset.agricultural_purpose].purpose_name;
} }
if (!asset.cadastral_district_name || !asset.quality_groups || !asset.agricultural_land_purpose) { // Для неиспользуемых земель не нужны остальные поля
callback(); if (agricultural_purpose_name !== 'Təyinatı üzrə istifadə edilməyən kənd təsərrüfatı torpaqları üzrə hesablanmış vergi məbləği') {
return; if (!asset.cadastral_district_name || !asset.quality_groups || !asset.agricultural_land_purpose) {
callback();
return;
}
} }
frappe.call({ frappe.call({

View File

@ -61,19 +61,29 @@ def get_doctype_fields_info():
@frappe.whitelist() @frappe.whitelist()
def calculate_agricultural_tax(area_value, cadastral_district_name, quality_groups, agricultural_land_purpose, agricultural_purpose_name=None): def calculate_agricultural_tax(area_value, cadastral_district_name, quality_groups, agricultural_land_purpose, agricultural_purpose_name=None):
try: try:
if area_value is None or not cadastral_district_name or not quality_groups or not agricultural_land_purpose: if area_value is None:
frappe.throw("Area value is required")
area_float = float(area_value)
# Для неиспользуемых земель: Area × 2%
if agricultural_purpose_name == 'Təyinatı üzrə istifadə edilməyən kənd təsərrüfatı torpaqları üzrə hesablanmış vergi məbləği':
result = area_float * 0.02
return {
'tax_amount': result,
'calculation_details': {
'area_sqm': area_float,
'rate': 0.02,
'formula': f"{area_float} sq.m × 0.02 = {result}"
}
}
# Для используемых земель: Hectare × Score × Markup
if not cadastral_district_name or not quality_groups or not agricultural_land_purpose:
frappe.throw("Not all fields are filled for calculation") frappe.throw("Not all fields are filled for calculation")
hectare_value = float(area_value) 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) score = get_cadastral_score(cadastral_district_name, quality_groups)
markup = get_markup_coefficient(agricultural_land_purpose) markup = get_markup_coefficient(agricultural_land_purpose)
result = hectare_value * score * markup result = hectare_value * score * markup
@ -81,8 +91,6 @@ def calculate_agricultural_tax(area_value, cadastral_district_name, quality_grou
return { return {
'tax_amount': result, 'tax_amount': result,
'calculation_details': { 'calculation_details': {
'original_value': float(area_value),
'original_unit': original_unit,
'hectare': hectare_value, 'hectare': hectare_value,
'score': score, 'score': score,
'markup': markup, 'markup': markup,