getCompanyPL method

Future<void> getCompanyPL(
  1. String companyName,
  2. String fiscalYear,
  3. Function callBack
)

This function if for getting the Profit and Loss for a given company

Implementation

Future<void> getCompanyPL(
  String companyName,
  String fiscalYear,
  Function callBack,
) async {
  List<dynamic> companyPLDetails = [];
  var headers = {'Cookie': cookieHeader, 'Accept': 'application/json'};
  final filters = {
    "company": companyName,
    "filter_based_on": "Fiscal Year",
    "from_fiscal_year": fiscalYear,
    "to_fiscal_year": fiscalYear,
    "periodicity": "Yearly",
  };
  final queryParam = {
    "report_name": "Profit and Loss Statement",
    "filters": jsonEncode(filters),
  };
  final response = await http.post(
    createUri('$baseUrl/api/method/frappe.desk.query_report.run', queryParam),
    headers: headers,
  );
  if (response.statusCode == 200) {
    var bodyJson = jsonDecode(response.body);
    companyPLDetails = bodyJson["message"]["result"];
  } else if (response.statusCode == 404) {
    MyAlertDialog().showMyAlertDialog(
      context,
      'Error: Resource not found (404)',
    );
  } else if (response.statusCode >= 400 && response.statusCode < 500) {
    MyAlertDialog().showMyAlertDialog(
      context,
      'Client Error: ${response.statusCode}',
    );
  } else if (response.statusCode >= 500 && response.statusCode < 600) {
    MyAlertDialog().showMyAlertDialog(
      context,
      'Server Error: ${response.statusCode}',
    );
  } else {
    MyAlertDialog().showMyAlertDialog(
      context,
      'Unknown Error: ${response.statusCode}',
    );
  }
  callBack(companyPLDetails);
}