heartinz_essentials 3.2.0 copy "heartinz_essentials: ^3.2.0" to clipboard
heartinz_essentials: ^3.2.0 copied to clipboard

Essentials provides a set of ready-to-use tools for calculations, date and time manipulations, currency conversions, and GST (tax) computations, making it an all-in-one solution for developers

example/example.dart

import 'package:decimal/decimal.dart';
import 'package:heartinz_essentials/heartinz_essentials.dart';

void main() {
  // Create an instance of Essentials
  final essentials = Essentials();

  // Example 1: Grand Total Calculation
  // GrandTotalModel grandTotal = essentials.calc.calculateGrandTotal(
  //   totalMrp: essentials.currency.toSubunit(0.5, "INR"),
  //   totalSalePrice: essentials.currency.toSubunit(0.245, "INR"),
  //   totalBasePrice: essentials.currency.toSubunit(1, "INR"),
  //   totalTaxAmount: 18,
  // );
  // print('/// GRAND TOTAL /// \n ${grandTotal.toMap()}');

  // Example 2: Convert to Currency
  // double currencyValue = essentials.currency.toCurrency(1500, 'USD');
  // print('/// CONVERT TO CURRENCY /// \n  $currencyValue');

  // Example 3: Convert to Subunits
  // int subunitValue = essentials.currency.toSubunit(1500.75, 'USD');
  // print('/// CONVERT TO SUBUNITS /// \n  $subunitValue');

  // Example 4: GST Calculation
  GSTResult gstDetails = essentials.calc.gstCalculate(
    mrp: essentials.currency.toSubunit(200, "INR"),
    salePrice: essentials.currency.toSubunit(150, "INR"),
    basePrice: essentials.currency.toSubunit(0, "INR"),
    taxPercent: 18,
    quantity: 99999999.001,
    lock: "SALEPRICE",
  );
  print('/// GST DETAILS /// \n ${gstDetails.toJson()}');

  // Example 5: Unit conversion (toSecondary + toPrimary round-trip)
  // conversion = 900 → multiplication always terminates (toSecondary safe)
  //              division 389160 ÷ 900 = 432.4̄ (non-terminating → needs scaleOnInfinitePrecision)
  final unitConfig = UnitConfig(
    primaryUnitCode: 'kg',
    primaryUnitName: 'Kilogram',
    secondaryUnitCode: 'g',
    secondaryUnitName: 'Gram',
    conversion: Decimal.parse('900'),
    stockScale: 1,
  );
  // toSecondaryQuantity: multiplication — always terminates
  final toSecondary = essentials.unit.toSecondaryQuantity(
    Decimal.parse('432.4'), // primary qty
    unitConfig: unitConfig,
  );
  print('/// UNIT - toSecondaryQuantity /// \n ${toSecondary.secondaryQty}'); // 389160.0

  // toPrimaryQuantity: division 389160 ÷ 900 = 432.4̄ (non-terminating)
  final toPrimary = essentials.unit.toPrimaryQuantity(
    Decimal.parse('389160'), // secondary qty
    unitConfig: unitConfig,
  );
  print('/// UNIT - toPrimaryQuantity /// \n ${toPrimary.primaryQty}'); // 432.4

  // Example 6: Date and Time Operations - ISO to Display Format
  // String isoString = "2024-12-16T15:30:00Z";
  // var displayTime = essentials.date.displayIso(isoString);
  // print('/// DISPLAY IN ISO /// \n $displayTime');

  // Example 7: Split ISO String
  // var isoSplit = essentials.date.splitIso(isoString);
  // print('/// SPLIT ISO /// \n  $isoSplit');

  // Example 9: Convert to Target Time Zone
  // String targetTimeZone = "Asia/Kolkata";
  // var timeInTargetZone = essentials.date.toTimeZone(isoString, targetTimeZone);
  // print(
  //     '/// CONVERT TO TARGET TIME ZONE /// \n $targetTimeZone: $timeInTargetZone');

  // Example 10: Current Time by Time Zone
  // var currentTime = essentials.date.getCurrentTimeByTimeZone("Asia/Kolkata");
  // print('/// CURRENT TIME BY TIME ZONE /// \n  $currentTime');

  // Example 11: Day Boundaries in UTC
  // String isoDateStr = "2024-12-16T15:30:00Z";
  // var dayBoundaries = essentials.date.dayBoundariesInUTC(isoDateStr);
  // print('/// DAY BOUNDRIES /// \n  $dayBoundaries');

  // Example 12: Time Difference Between Two Dates
  // var timeDifference = essentials.date.timeDifference(
  //     "2024-12-16T15:30:00Z", "2024-12-17T16:30:00Z");
  // print('/// TIME DIFFERENCE /// \n $timeDifference');

  // Example 13: Modify ISO Time by Duration
  // String modifiedIsoTime =
  //     essentials.date.modifyIso(isoString, Duration(hours: 2));
  // print('/// MODIFY ISO TIME BY DURATION /// \n  $modifiedIsoTime');

  // Example 14: Convert Date to ISO Format
  // String dateStr = "2024-12-16";
  // String type = "MM-dd-yyyy";
  // String timeZone = "Asia/Kolkata";
  // String isoFormat = essentials.date.toIso(
  //     dateStr: dateStr, type: type, timeZone: timeZone);
  // print('/// TO ISO FORMAT /// \n $isoFormat');

  // Example 15: Convert to UTC
  // var utcTime = essentials.date.toUtc(isoString);
  // print('/// TO UTC /// \n $utcTime');
}
1
likes
0
points
24
downloads

Publisher

unverified uploader

Weekly Downloads

Essentials provides a set of ready-to-use tools for calculations, date and time manipulations, currency conversions, and GST (tax) computations, making it an all-in-one solution for developers

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

decimal, intl, number_to_words, timezone

More

Packages that depend on heartinz_essentials