EchoTex_Payroll/HRM.UI/Controllers/Payroll/ExitClearanceController.cs

987 lines
40 KiB
C#
Raw Normal View History

2024-10-14 10:01:49 +06:00
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using HRM.BO;
using System.Globalization;
using HRM.DA;
using System.IO;
using Microsoft.AspNetCore.StaticFiles;
using Ease.Core.DataAccess;
using static Org.BouncyCastle.Math.EC.ECCurve;
using Microsoft.Extensions.Configuration;
using HRM.BO.Assets;
namespace HRM.UI.Controllers.Payroll
{
[Route("api/ExitClearance")]
[ApiController]
public class ExitClearanceController : ControllerBase
{
private readonly IAssetService _assetService;
private readonly IVendorService _vendorService;
private readonly IStoreService _storeService;
private readonly IAssetSerialService _assetSerialService;
private readonly IAssetCategoryService _assetCategoryService;
private readonly IAssetSerialTranService _assetSerialTranService;
private readonly IEmployeeService _employeeService;
private readonly IDepartmentService _departmentService;
private readonly ILocationService _locationService;
private readonly IAssetItService _assetItService;
private readonly IConfiguration _config;
private static string _filePath = @"Documents\Asset\Asset.csv"; //policy path
private static string _ePath = @"Documents\";
//private static string _filePath = @"ClientApp\Documents\Asset\Asset.csv"; //policy path
//private static string _ePath = @"ClientApp\Documents\";
int startIndex = 0;
public ExitClearanceController(IConfiguration config,
IAssetService assetService, IVendorService vendorService, IStoreService storeService,
IAssetSerialService assetSerialService, IAssetCategoryService assetCategoryService, IAssetSerialTranService assetSerialTranService,
IEmployeeService employeeService, IDepartmentService departmentService, ILocationService locationService, IAssetItService assetItService)
{
_config = config;
_assetService = assetService;
_vendorService = vendorService;
_storeService = storeService;
_assetSerialService = assetSerialService;
_assetCategoryService = assetCategoryService;
_assetSerialTranService = assetSerialTranService;
_employeeService = employeeService;
_departmentService = departmentService;
_locationService = locationService;
_assetItService = assetItService;
}
[HttpPost]
[Route("saveAsset")]
public ActionResult saveAsset(Asset termParameter)
{
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
if (termParameter.IsNew == true)
{
termParameter.CreatedBy = currentUser.UserID;
termParameter.CreatedDate = DateTime.Today;
}
else
{
termParameter.ModifiedBy = currentUser.UserID;
termParameter.ModifiedDate = DateTime.Today;
}
_assetService.Save(termParameter);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(termParameter);
}
[HttpGet("getAssets")]
public ActionResult getAssets()
{
List<Asset> assets = new List<Asset>();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
assets = _assetService.Get();
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assets);
}
[HttpGet("getAssetsNameDescription")]
public ActionResult getAssetsNameDescription()
{
List<Asset> assets = new List<Asset>();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
assets = _assetService.Get();
if (assets != null && assets.Count > 0)
{
foreach (var item in assets)
{
item.DescriptiveName = item.Name + "( " + item.Description + " )";
}
}
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assets);
}
[HttpPost("deleteAsset")]
public ActionResult DeleteAsset(Asset asset)
{
try
{
_assetService.Delete(asset.ID);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok();
}
[HttpGet("getVendors")]
public ActionResult getVendors()
{
List<Vendor> vendors = new List<Vendor>();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
vendors = _vendorService.Get();
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(vendors);
}
[HttpGet("getStores")]
public ActionResult getStores()
{
List<Store> stores = new List<Store>();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
stores = _storeService.Get(EnumStatus.Active);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(stores);
}
[HttpPost]
[Route("saveAssetSerialList")]
public ActionResult SaveAssetSerialList(List<AssetSerial> Items)
{
List<AssetSerial> items = new List<AssetSerial>();
List<AssetSerialTran> assetSerialTranList = new List<AssetSerialTran>();
try
{
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
foreach (var oAssetSerial in Items)
{
oAssetSerial.CreatedBy = ouser.UserID;
oAssetSerial.AssetStatus = EnumAssetStatus.Free;
}
items = _assetSerialService.SaveAssetSerialList(Items);
if (items != null && items.Count > 0)
{
foreach (var oAssetSerial in Items)
{
if (oAssetSerial.isNewAssetTran)
{
var serialTran = new AssetSerialTran();
serialTran.SerialId = oAssetSerial.ID;
serialTran.AssetId = oAssetSerial.AssetId;
serialTran.TranType = EnumAssetTranType.Receive;
serialTran.CreatedBy = ouser.UserID;
serialTran.UserId = ouser.UserID;
serialTran.TranDate = DateTime.Now;
serialTran.CreatedDate = DateTime.Now;
assetSerialTranList.Add(serialTran);
}
}
if (assetSerialTranList != null && assetSerialTranList.Count > 0)
{
_assetSerialTranService.SaveAssetSerialTranList(assetSerialTranList);
}
}
}
catch (Exception e)
{
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
}
return Ok();
}
[HttpGet]
[Route("GetAssetSerials/{fromDate}/{toDate}/{assetid}/{vendorid}/{storid}/{status}/{receiverType}/{receiverIds}")]
public ActionResult GetAssetSerials(DateTime? fromDate, DateTime? toDate, int assetid, int vendorid, int storid, int status, int receiverType, string receiverIds)
{
receiverIds= receiverIds == "undefined" ? null : receiverIds;
EnumAssetReceiverType? assetReceiverType = receiverType == 0 ? null : (EnumAssetReceiverType)receiverType;
EnumAssetStatus? assetStatus = (EnumAssetStatus)status;
List<AssetSerial> cvs = new List<AssetSerial>();
try
{
cvs = _assetSerialService.GetAssetSerials(fromDate, toDate, assetid, vendorid, storid, assetStatus, assetReceiverType, receiverIds);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(cvs);
}
[HttpGet("getAssetCatgories")]
public ActionResult getAssetCatgories()
{
List<AssetCategory> assetCategories = new List<AssetCategory>();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
int payrollTypeId = (int)ouser.PayrollTypeID;
try
{
assetCategories = _assetCategoryService.Get(EnumStatus.Active, payrollTypeId);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assetCategories);
}
[HttpGet("getAssetCategory/{categoryid}")]
public ActionResult getAssetCategory(int categoryid)
{
AssetCategory assetCategories = new AssetCategory();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
int payrollTypeId = (int)ouser.PayrollTypeID;
try
{
assetCategories = _assetCategoryService.Get(categoryid);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assetCategories);
}
[HttpGet]
[Route("GetAssetSerialPicker/{assetid}/{categoryid}/{status}")]
public ActionResult GetAssetSerialPicker(int assetid, int categoryid, EnumAssetStatus? status)
{
List<AssetSerial> cvs = new List<AssetSerial>();
try
{
cvs = _assetSerialService.GetAssetSerialPicker(assetid, categoryid, status);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(cvs);
}
[HttpPost]
[Route("saveAssetSerialTranList")]
public ActionResult saveAssetSerialTranList(List<AssetSerialTran> Items)
{
string connectionString = _config.GetSection("dbSettings").GetSection("SqlCommandConnection").Value;
// List<CV> allCVs = new List<CV>();
try
{
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
foreach (var oAssetSerialTran in Items)
{
oAssetSerialTran.CreatedBy = ouser.UserID;
oAssetSerialTran.UserId = ouser.UserID;
if (oAssetSerialTran.AssetSerialTranAttachment != null)
{
if (oAssetSerialTran.AssetSerialTranAttachment.ID <= 0 && oAssetSerialTran.AssetSerialTranAttachment.PreviousFileTobase64 != null)
{
string[] items = oAssetSerialTran.AssetSerialTranAttachment.PreviousFileTobase64.Split(new char[] { ',', ' ' }, StringSplitOptions.None);
byte[] newBytes = Convert.FromBase64String(items[1]);
oAssetSerialTran.AssetSerialTranAttachment.FileAsByteArray = newBytes;
oAssetSerialTran.AssetSerialTranAttachment.ConnectionString = connectionString;
}
}
}
_assetSerialTranService.SaveAssetSerialTranList(Items);
}
catch (Exception e)
{
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
}
return Ok();
}
[HttpGet("getLastAssetSerial/{assetId}")]
public ActionResult GetLastAssetSerial(int assetId)
{
AssetSerial assetSerial = new AssetSerial();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
assetSerial = _assetSerialService.GetLastAssetSerial(assetId);
if (assetSerial != null)
{
string stringCutted = assetSerial.SerialNo.Split('-').Last();
string trimSerialNo = stringCutted.TrimStart(new Char[] { '0' });
assetSerial.StartIndex = Convert.ToInt32(trimSerialNo);
}
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assetSerial);
}
[HttpGet("getAssetClearanceDamangeAmount/{empid}")]
public ActionResult getAssetClearanceDamangeAmount(int empid)
{
double amount = 0;
try
{
amount = this._assetSerialTranService.GetDamageAmount(empid);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(amount);
}
[HttpGet]
[Route("GetReceivedAssetSerials/{receiveDate}/{receiverType}/{receiverId}")]
public ActionResult GetReceivedAssetSerials(DateTime? receiveDate, EnumAssetReceiverType? receiverType, int receiverId)
{
EnumAssetReceiverType? assetReceiverType = receiverType == 0 ? null : (EnumAssetReceiverType)receiverType;
List<AssetSerial> cvs = new List<AssetSerial>();
try
{
cvs = _assetSerialService.GetReceivedAssetSerials(receiveDate, assetReceiverType, receiverId);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(cvs);
}
[HttpGet]
[Route("GetRepairedAssetSerials")]
public ActionResult GetRepairedAssetSerials()
{
List<AssetSerial> cvs = new List<AssetSerial>();
try
{
cvs = _assetSerialService.GetRepairedAssetSerials();
if (cvs != null)
{
foreach (var item in cvs)
{
item.ReceivedDateString = item.RepairedDate?.ToString("dd/MM/yyyy");
}
}
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(cvs);
}
[HttpGet]
[Route("GetEmployeeReceivedAssetSerial")]
public ActionResult GetEmployeeReceivedAssetSerials()
{
List<AssetSerial> cvs = new List<AssetSerial>();
try
{
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
cvs = _assetSerialService.GetReceivedAssetSerials(null, EnumAssetReceiverType.Employee, (int)ouser.EmployeeID);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(cvs);
}
[HttpPost]
[Route("uploadAssetSerialList")]
public ActionResult uploadAssetSerialList(List<UploadAssetSerial> Items)
{
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
int payrollTypeId = (int)ouser.PayrollTypeID;
int ans = 0;
//List<AssetCategory> assetCategories = new List<AssetCategory>();
//assetCategories = _assetCategoryService.Get();
List<Asset> assetList = new List<Asset>();
assetList = _assetService.Get();
List<Employee> employees = new List<Employee>();
employees = _employeeService.GetAllEmps();
List<Department> deptList = new List<Department>();
deptList = _departmentService.GetAll(payrollTypeId);
List<Location> locationList = new List<Location>();
locationList = _locationService.GetLocations();
List<AssetSerial> items = new List<AssetSerial>();
List<AssetSerial> itemList = new List<AssetSerial>();
List<Vendor> vendorList = new List<Vendor>();
vendorList = _vendorService.Get();
List<Store> storeList = new List<Store>();
storeList = _storeService.Get(EnumStatus.Active);
//List<UploadAssetSerial> items = new List<UploadAssetSerial>();
List<AssetSerialTran> assetSerialTranList = new List<AssetSerialTran>();
TransactionContext tc = null;
try
{
if (assetList == null || assetList.Count <= 0)
{
throw new Exception("Assets Not found");
}
//if (assetCategories == null || assetCategories.Count <= 0)
//{
// throw new Exception("Asset Categories Not found");
//}
var count = 0;
foreach (var uploadItem in Items)
{
count++;
var oAssetSerial = new AssetSerial();
oAssetSerial.CreatedBy = ouser.UserID;
oAssetSerial.AssetStatus = EnumAssetStatus.Free;
oAssetSerial.Specification = uploadItem.Specification;
oAssetSerial.SerialNo = uploadItem.SerialNo;
//oAssetSerial.UniqueIndentifier = uploadItem.UniqueId;
oAssetSerial.AssetId = uploadItem.AssetId;
oAssetSerial.ReceivedDate = DateTime.Now;
if (uploadItem.UniqueId != "null" && uploadItem.UniqueId != "undefined" && !String.IsNullOrEmpty(uploadItem.UniqueId))
{
oAssetSerial.UniqueIndentifier = uploadItem.UniqueId;
}
else
{
oAssetSerial.UniqueIndentifier = createUniqueIdentifier(uploadItem.AssetId);
startIndex++;
}
if (uploadItem.EmpId != "null" && uploadItem.EmpId != "undefined" && !String.IsNullOrEmpty(uploadItem.EmpId))
{
var tempEmployee = employees.Find(x => x.EmployeeNo.Trim().ToLower() == uploadItem.EmpId.Trim().ToLower());
//if (tempEmployee == null)
//{
// throw new Exception("Employee Not found, row no: " + count);
//}
//else
//{
// if (!String.IsNullOrWhiteSpace(uploadItem.AssignDate))
// {
// string trim = uploadItem.AssignDate.Replace("\r", "");
// trim = trim.Replace("\n", "");
// String[] strlist = trim.Split("-");
// int monthNumber = DateTime.ParseExact(strlist[1], "MMM", CultureInfo.CurrentCulture).Month;
// string fullYear = "20" + strlist[2];
// // DateTime tempDate=DateTime.ParseExact(trim, "dd/MM/yyyy", null);
// DateTime tempDate = new DateTime(Int32.Parse(fullYear), monthNumber, Int32.Parse(strlist[0]));
// oAssetSerial.AssignDate = tempDate;
// oAssetSerial.ReceivedDate = tempDate;
// oAssetSerial.AssetReceiverId = tempEmployee.ID;
// oAssetSerial.AssetStatus = EnumAssetStatus.Assigned;
// }
// else
// {
// throw new Exception("Date Time invalid");
// }
//}
if (tempEmployee != null)
{
if (!String.IsNullOrWhiteSpace(uploadItem.AssignDate))
{
string trim = uploadItem.AssignDate.Replace("\r", "");
trim = trim.Replace("\n", "");
String[] strlist = trim.Split("-");
int monthNumber = DateTime.ParseExact(strlist[1], "MMM", CultureInfo.CurrentCulture).Month;
string fullYear = "20" + strlist[2];
DateTime tempDate = new DateTime(Int32.Parse(fullYear), monthNumber, Int32.Parse(strlist[0]));
oAssetSerial.AssignDate = tempDate;
oAssetSerial.ReceivedDate = tempDate;
oAssetSerial.AssetReceiverId = tempEmployee.ID;
oAssetSerial.AssetStatus = EnumAssetStatus.Assigned;
}
else
{
throw new Exception("Date Time invalid");
}
}
else
{
throw new Exception("Please Provide Valid Employee. Employee No: " + uploadItem.EmpId);
}
oAssetSerial.AssetReceiverType = EnumAssetReceiverType.Employee;
}
if (uploadItem.DeptCode != "null" && uploadItem.DeptCode != "undefined" && !String.IsNullOrEmpty(uploadItem.DeptCode))
{
// var tempDepartment = deptList.Find(x => x.Name.Trim().ToLower() == uploadItem.DeptCode.Trim().ToLower() && x.Tier == 3);
//if (tempDepartment == null)
//{
// throw new Exception("Department Not found,row no: " + count);
//}
//else
//{
// oAssetSerial.AssetReceiverId = tempDepartment.ID;
//}
var tempDepartment = deptList.Find(x => x.Name.Trim().ToLower() == uploadItem.DeptCode.Trim().ToLower());
if (tempDepartment != null)
{
if (!String.IsNullOrWhiteSpace(uploadItem.AssignDate))
{
string trim = uploadItem.AssignDate.Replace("\r", "");
trim = trim.Replace("\n", "");
String[] strlist = trim.Split("-");
int monthNumber = DateTime.ParseExact(strlist[1], "MMM", CultureInfo.CurrentCulture).Month;
string fullYear = "20" + strlist[2];
// DateTime tempDate=DateTime.ParseExact(trim, "dd/MM/yyyy", null);
DateTime tempDate = new DateTime(Int32.Parse(fullYear), monthNumber, Int32.Parse(strlist[0]));
oAssetSerial.AssignDate = tempDate;
oAssetSerial.ReceivedDate = tempDate;
oAssetSerial.AssetReceiverId = tempDepartment.ID;
oAssetSerial.AssetStatus = EnumAssetStatus.Assigned;
}
else
{
throw new Exception("Date Time invalid");
}
}
else
{
throw new Exception("Please Provide Valid Department.Department No: " + uploadItem.DeptCode);
}
oAssetSerial.AssetReceiverType = EnumAssetReceiverType.Department;
}
else if (uploadItem.LocationCode != "null" && uploadItem.LocationCode != "undefined" && !String.IsNullOrEmpty(uploadItem.LocationCode))
{
//var tempLocation = locationList.Find(x => x.Name.Trim().ToLower() == uploadItem.LocationCode.Trim().ToLower() && x.Tier == 2);
//if (tempLocation == null)
//{
// throw new Exception("Location Not found, row no: " + count);
//}
//else
//{
// oAssetSerial.AssetReceiverId = tempLocation.ID;
//}
var tempLocation = locationList.Find(x => x.Name.Trim().ToLower() == uploadItem.LocationCode.Trim().ToLower());
if (tempLocation != null)
{
if (!String.IsNullOrWhiteSpace(uploadItem.AssignDate))
{
string trim = uploadItem.AssignDate.Replace("\r", "");
trim = trim.Replace("\n", "");
String[] strlist = trim.Split("-");
int monthNumber = DateTime.ParseExact(strlist[1], "MMM", CultureInfo.CurrentCulture).Month;
string fullYear = "20" + strlist[2];
// DateTime tempDate=DateTime.ParseExact(trim, "dd/MM/yyyy", null);
DateTime tempDate = new DateTime(Int32.Parse(fullYear), monthNumber, Int32.Parse(strlist[0]));
oAssetSerial.AssignDate = tempDate;
oAssetSerial.ReceivedDate = tempDate;
oAssetSerial.AssetReceiverId = tempLocation.ID;
oAssetSerial.AssetStatus = EnumAssetStatus.Assigned;
}
else
{
throw new Exception("Date Time invalid");
}
}
else
{
throw new Exception("Please Provide Valid Location.Location No:" + uploadItem.LocationCode);
}
oAssetSerial.AssetReceiverType = EnumAssetReceiverType.Location;
}
if ((uploadItem.EmpId == "null" || uploadItem.EmpId == "undefined" || String.IsNullOrEmpty(uploadItem.EmpId)) &&
(uploadItem.DeptCode == "null" || uploadItem.DeptCode == "undefined" || String.IsNullOrEmpty(uploadItem.DeptCode)) &&
(uploadItem.LocationCode == "null" || uploadItem.LocationCode == "undefined" || String.IsNullOrEmpty(uploadItem.LocationCode)))
{
oAssetSerial.AssetStatus = EnumAssetStatus.Free;
oAssetSerial.AssetReceiverType = EnumAssetReceiverType.None;
}
if (uploadItem.Store != "null" && uploadItem.Store != "undefined" && !String.IsNullOrEmpty(uploadItem.Store))
{
var tempStore = storeList.Find(x => x.Name.Trim().ToLower() == uploadItem.Store.Trim().ToLower());
if (tempStore == null)
{
throw new Exception("Store Not found, row no: " + count);
}
else
{
oAssetSerial.StoreId = tempStore.ID;
}
}
else
{
throw new Exception("Store Not found, row no: " + count);
}
if (uploadItem.Vendor != "null" && uploadItem.Vendor != "undefined" && !String.IsNullOrEmpty(uploadItem.Vendor))
{
var tempVendor = vendorList.Find(x => x.Name.Trim().ToLower() == uploadItem.Vendor.Trim().ToLower());
if (tempVendor == null)
{
throw new Exception("Vendor Not found, row no: " + count);
}
else
{
oAssetSerial.VendorId = tempVendor.ID;
}
}
if (uploadItem.Price != null)
{
oAssetSerial.Price = uploadItem.Price;
}
oAssetSerial.CreatedBy = ouser.UserID;
oAssetSerial.CreatedDate = DateTime.Today;
oAssetSerial.StoreId = oAssetSerial.StoreId == 0 ? null : oAssetSerial.StoreId;
oAssetSerial.VendorId = oAssetSerial.VendorId == 0 ? null : oAssetSerial.VendorId;
itemList.Add(oAssetSerial);
}
tc = TransactionContext.Begin(true);
items = _assetSerialService.SaveAssetSerialList(tc,itemList);
if (items != null && items.Count > 0)
{
foreach (var oAssetSerial in items)
{
if (oAssetSerial.isNewAssetTran)
{
var serialTran = new AssetSerialTran();
serialTran.SerialId = oAssetSerial.ID;
serialTran.AssetId = oAssetSerial.AssetId;
if (oAssetSerial.AssetStatus == EnumAssetStatus.Free)
serialTran.TranType = EnumAssetTranType.Receive;
else serialTran.TranType = EnumAssetTranType.Assign;
serialTran.CreatedBy = ouser.UserID;
serialTran.UserId = ouser.UserID;
serialTran.TranDate = DateTime.Now;
serialTran.CreatedDate = DateTime.Now;
serialTran.AssetReceiverId = oAssetSerial.AssetReceiverId;
serialTran.AssetReceiverType = oAssetSerial.AssetReceiverType;
serialTran.AssignDate = oAssetSerial.AssignDate;
serialTran.UploadReceiveDate = oAssetSerial.ReceivedDate;
serialTran.StoreId = (int)oAssetSerial.StoreId;
serialTran.VendorId = (int)oAssetSerial.VendorId;
assetSerialTranList.Add(serialTran);
}
}
if (assetSerialTranList != null && assetSerialTranList.Count > 0)
{
_assetSerialTranService.SaveAssetSerialTranList(tc,assetSerialTranList);
}
if(items != null && items.Count > 0)
{
var item = items.Where(y => !String.IsNullOrEmpty(y.Specification)).FirstOrDefault();
_assetService.UpdateAssetSpecification(tc,item);
}
}
tc.End();
}
catch (Exception e)
{
if (tc != null)
tc.HandleError();
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
}
return Ok();
}
[HttpPost]
[Route("deleteAssetSerial")]
public ActionResult DeleteAssetSerial(AssetSerial item)
{
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
_assetSerialService.Delete(item.ID);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(true);
}
[HttpGet]
[Route("generateSerial/{assetid}/{qty}")]
public ActionResult GetGenerateSerial(int assetid, int qty)
{
List<AssetSerial> assetSerials = new List<AssetSerial>();
AssetSerial lastAssetSerial = new AssetSerial();
Asset asset = new Asset();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
int startIndex = 0;
lastAssetSerial = _assetSerialService.GetLastAssetSerial(assetid);
asset = _assetService.Get(assetid);
if (lastAssetSerial != null)
{
string stringCutted = lastAssetSerial.UniqueIndentifier.Split('-').Last();
string trimSerialNo = stringCutted.TrimStart(new Char[] { '0' });
startIndex = lastAssetSerial.StartIndex = Convert.ToInt32(trimSerialNo);
}
//var dd = string(today.getdate()).padstart(2, '0');
//var mm = string(today.getmonth() + 1).padstart(2, '0'); //january is 0!
//var yyyy = today.getfullyear();
string dd = DateTime.Now.ToString("dd").PadLeft(2, '0');
string mm = DateTime.Now.ToString("mm").PadLeft(2, '0');
var yyyy = DateTime.Now.ToString("yyyy");
string date = dd + '/' + mm + '/' + yyyy;
for (int i = 0; i < qty; i++)
{
startIndex++;
var temp = new AssetSerial();
temp.AssetId = assetid;
temp.CreatedDate = DateTime.Now;
temp.UniqueIndentifier = asset.Code + "-" + date + "-" + startIndex.ToString().PadLeft(4, '0');
assetSerials.Add(temp);
}
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assetSerials);
}
public string createUniqueIdentifier(int assetid)
{
AssetSerial lastAssetSerial = new AssetSerial();
Asset asset = new Asset();
lastAssetSerial = _assetSerialService.GetLastAssetSerial(assetid);
asset = _assetService.Get(assetid);
if (lastAssetSerial != null)
{
string stringCutted = lastAssetSerial.UniqueIndentifier.Split('-').Last();
string trimSerialNo = stringCutted.TrimStart(new Char[] { '0' });
lastAssetSerial.StartIndex = Convert.ToInt32(trimSerialNo);
if (lastAssetSerial.StartIndex > startIndex)
startIndex = lastAssetSerial.StartIndex;
if (lastAssetSerial.StartIndex == 0 && startIndex == 0)
{
startIndex++;
}
}
if (startIndex == 0)
{
startIndex++;
}
string dd = DateTime.Now.ToString("dd").PadLeft(2, '0');
string mm = DateTime.Now.ToString("mm").PadLeft(2, '0');
var yyyy = DateTime.Now.ToString("yyyy");
string date = dd + '/' + mm + '/' + yyyy;
var uniqueIndentifier = asset.Code + "-" + date + "-" + startIndex.ToString().PadLeft(4, '0');
return uniqueIndentifier;
}
[HttpGet("getAssetNextCode")]
public ActionResult GetAssetNextCode()
{
string code = "";
try
{
code = _assetService.GetNextCode();
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(code);
}
//getAssetIT
[HttpGet("getAssetIt/{assetItId}")]
public ActionResult getAssetIt(int assetItId)
{
AssetIt assetIt = new AssetIt();
CurrentUser ouser = CurrentUser.GetCurrentUser(HttpContext.User);
try
{
assetIt = _assetItService.Get(assetItId);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assetIt);
}
//AssetIt Serial Picker
[HttpGet]
[Route("GetAssetItSerialPicker/{assetid}/{categoryid}/{assetitid}/{assetserialid}")]
public ActionResult GetAssetItSerialPicker(int assetid, int categoryid, int assetitid, int assetserialid)
{
List<AssetIt> cvs = new List<AssetIt>();
try
{
cvs = _assetItService.GetAssetItSerialPicker(assetid, categoryid, assetitid, assetserialid);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(cvs);
}
//Get All Asset It
[HttpGet("getAllAssetIt")]
public ActionResult GetAllAssetIt()
{
List<AssetIt> assets = new List<AssetIt>();
try
{
assets = _assetItService.Get();
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok(assets);
}
//Save Asset It
[HttpPost]
[Route("saveAssetIt")]
public ActionResult SaveAssetIt(AssetIt item)
{
try
{
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
if (item.IsNew)
{
item.CreatedBy = currentUser.UserID;
item.CreatedDate = DateTime.Today;
}
else
{
item.ModifiedBy = currentUser.UserID;
item.ModifiedDate = DateTime.Today;
}
_assetItService.Save(item);
}
catch (Exception e)
{
return StatusCode(StatusCodes.Status500InternalServerError, e.Message);
}
return Ok();
}
//Delete It
[HttpPost("deleteAssetIt")]
public ActionResult DeleteAssetIt(AssetIt assetIt)
{
try
{
_assetItService.Delete(assetIt.ID);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
return Ok();
}
[HttpGet]
[Route("get-asset-file")]
public async Task<IActionResult> GetAssetFile()
{
CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User);
string contentType = "";
try
{
var filePath = System.IO.Path.Combine(System.Environment.CurrentDirectory, _filePath);
Stream memory = new MemoryStream();
byte[] buffer = new byte[16 * 1024];
contentType = GetFileType("Asset.csv");
buffer = System.IO.File.ReadAllBytes(filePath);
string file = Convert.ToBase64String(buffer);
return Ok(file);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
public string GetFileType(string originalFileName)
{
string fileName = originalFileName;
string contentType;
new FileExtensionContentTypeProvider().TryGetContentType(fileName, out contentType);
return contentType ?? "application/vnd.ms-excel";
}
}
}