@page "/createquotes/{id:int}"
@if (isloading)
{
Loading…
}
@using SeaHavenIndustries.Data.IRepository;
@inject IWorkOrderRepository _service;
@inject IQuotesRepository _service1;
@using Microsoft.JSInterop
@using global::Data.SeaHavenIndustries
@inject IJSRuntime JSRuntime
@inject NavigationManager Navigation
@code {
[Parameter]
public int? id { get; set; }
private int random5DigitNumber = 0;
public bool isloading = true;
private Quotes model = new();
private IEnumerable? order { get; set; }
private IEnumerable? workorderlist { get; set; }
private IEnumerable? contacts { get; set; }
private IEnumerable? contactslist { get; set; }
protected override async Task OnInitializedAsync()
{
random5DigitNumber = GenerateRandomNumber();
if (id != null && id != 0)
{
model = await _service1.GetQuotesById(id.Value);
random5DigitNumber = int.Parse(model.QuotId);
}
else
{
model.BillingAddress = "Amazon.com Services LLC 410 Terry Ave,North Seattle, Washington, 98109";
}
contacts = await _service.GetContacts();
contactslist = contacts;
order = await _service.Getworkorder();
workorderlist = order;
isloading = false;
}
protected void LoadworkorderData(LoadDataArgs args)
{
var query = workorderlist;
if (!string.IsNullOrEmpty(args.Filter))
{
query = query.Where(c => c.WorkerOrderTitle.ToLower().Contains(args.Filter.ToLower()));
}
if (query != null)
{
order = query.ToList();
}
InvokeAsync(StateHasChanged);
}
protected void LoadcontactData(LoadDataArgs args)
{
var query = contactslist;
if (!string.IsNullOrEmpty(args.Filter))
{
query = query.Where(c => (c.FirstName + " " + c.LastName).ToLower().Contains(args.Filter.ToLower()));
}
if (query != null)
{
contacts = query.ToList();
}
InvokeAsync(StateHasChanged);
}
private void OnWorkOrderChange(dynamic e)
{
if (e != null)
{
int selectedWorkOrderId = e;
var selectedWorkOrder = order.FirstOrDefault(item => item.Id == selectedWorkOrderId);
if (selectedWorkOrder != null)
{
model.PO = selectedWorkOrder.PO;
model.TT = selectedWorkOrder.TT;
if (selectedWorkOrder.Locations != null)
{
model.SiteName = selectedWorkOrder.Locations.Title;
model.SiteId = selectedWorkOrder.Locations.Name;
}
else
{
model.SiteName = string.Empty; // or any default value
model.SiteId = string.Empty; // or any default value
}
}
}
}
protected async Task SaveData()
{
model.QuotId = random5DigitNumber.ToString();
var res = await _service1.Addquotes(model);
if (res == "success")
{
await ShowSweetAlert("Sucessfully Saved Data", "success");
Navigation.NavigateTo("quotes");
}
else
{
await ShowSweetAlert(res, "error");
}
}
private async Task ShowSweetAlert(string title, string icon)
{
// Display a SweetAlert dialog
await JSRuntime.InvokeVoidAsync("Swal.fire", new
{
toast = true,
showConfirmButton = false,
timer = 3000,
title = title,
icon = icon,
position = "top-end"
});
await JSRuntime.InvokeVoidAsync("closemodal");
}
public async Task AddLineItem()
{
model.LineItems = model.LineItems == null ? new List() : model.LineItems;
int nextLineItemNumber = model.LineItems.Count + 1;
model.LineItems.Add(new QuotesLineItems { LineitemNumber = nextLineItemNumber, Lineitem = 0 });
}
public void RemoveLineItem(QuotesLineItems lineItems)
{
model.LineItems.Remove(lineItems);
}
private int GenerateRandomNumber()
{
Random random = new Random();
return random.Next(100000, 999999); // Generates a random number between 10000 and 99999
}
}