using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace dRetail.Common
{
public static class MeasurementUnitConversion
{
public static int GetDefaultMeasurementUnit(int measurementUnitID) {
var _db = Global.dbContext;
var measurementUnitTypeID = _db.Set_MeasurementUnit.Where(x => x.ID == measurementUnitID && x.IsActive == true).FirstOrDefault().MeasurementUnitTypeID;
var defaultMeasurementUnitID = _db.Set_MeasurementUnit.Where(x => x.MeasurementUnitTypeID == measurementUnitTypeID && x.IsDefault == true && x.IsActive == true).FirstOrDefault().ID;
return defaultMeasurementUnitID;
}
public static decimal Convert(int measurementUnitID, decimal qty)
{
try
{
if (qty != 0)
{
var _db = Global.dbContext;
var defaultMeasurementUnitID= GetDefaultMeasurementUnit(measurementUnitID);
if (defaultMeasurementUnitID == measurementUnitID)
{
return qty;
}
else
{
var unitConversion = _db.Set_UnitConversion.Where(x => x.FromUnitID == measurementUnitID && x.ToUnitID == defaultMeasurementUnitID).FirstOrDefault();
if (unitConversion != null) return qty * unitConversion.Value;
unitConversion = _db.Set_UnitConversion.Where(x => x.FromUnitID == defaultMeasurementUnitID && x.ToUnitID == measurementUnitID).FirstOrDefault();
if (unitConversion != null) return qty/unitConversion.Value;
throw new Exception();
}
}
return 0;
}
catch(Exception e)
{
throw e;
}
}
}
}