From b05b03c5014458fd6e05e79fc0097e797f10043b Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Tue, 30 Jul 2024 17:36:35 +0330 Subject: [PATCH] creditdocuments in front --- Back/Controllers/OrdersController.cs | 10 +++ Back/Services/ServWalt.cs | 38 +++++++++- Shared/DTOs/CreditDocumentDto.cs | 18 +++++ .../CUSComponent/CreditDocuments.razor | 76 +++++++++++++++++++ 4 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 Shared/DTOs/CreditDocumentDto.cs create mode 100644 TaxPayerFull/CUSComponent/CreditDocuments.razor diff --git a/Back/Controllers/OrdersController.cs b/Back/Controllers/OrdersController.cs index 6ae4f94..321e4a7 100644 --- a/Back/Controllers/OrdersController.cs +++ b/Back/Controllers/OrdersController.cs @@ -197,5 +197,15 @@ namespace Back.Controllers return BadRequest(new List { "سفارش در این حالت امکان پرداخت ندارد" }); } + [HttpPost("GetCreditDocuments")] + public async Task>> GetCreditDocuments(GridDataProviderRequestDto value) + { + var claim = HttpContext.User.Claims.First(c => c.Type == "UserID"); + var UserID = claim.Value; + var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID)); + var Company = user.RolUsers.First().Company; + int CompanyID = Company.ID; + return Ok(await _servWalt.GetDocuments(value,CompanyID)); + } } } diff --git a/Back/Services/ServWalt.cs b/Back/Services/ServWalt.cs index ea749d9..6eeff37 100644 --- a/Back/Services/ServWalt.cs +++ b/Back/Services/ServWalt.cs @@ -1,5 +1,11 @@ -using Back.Data.Contracts; +using Back.Common; +using Back.Data.Contracts; using Back.Data.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.OpenApi.Extensions; +using Shared.DTOs; +using Shared.DTOs.Serch; +using Shared.Enums; namespace Back.Services { @@ -15,5 +21,35 @@ namespace Back.Services { return await _repoCreditDocuments.AddBoolResultAsync(document); } + public async Task> GetDocuments(GridDataProviderRequestDto value,int CompanyID) + { + var request = _repoCreditDocuments.GetAll(); + foreach (var item in value.Filters) + { + switch (item.PropertyName) + { + case "Date": + request = request.Where(w => w.Date.Contains(item.Value.Replace("/","")) || w.Date == item.Value); + break; + case "Type": + if (item.Value=="0" || item.Value == "1") + request = request.Where(w => w.type == (CreditDocumentType)Enum.Parse(typeof(CreditDocumentType), item.Value)); + break; + default: + break; + } + } + + return await _repoCreditDocuments.Get(document=>document.CompanyID==CompanyID) + .Select(s=>new CreditDocumentDto + { + Date=s.Date.ShamciToFormatShamci(), + Title=s.Title, + typeName = s.type.GetDisplayName(), + type=s.type, + Value=s.Value, + }) + .Paging(value.PageNumber, value.PageSize); + } } } diff --git a/Shared/DTOs/CreditDocumentDto.cs b/Shared/DTOs/CreditDocumentDto.cs new file mode 100644 index 0000000..02637c1 --- /dev/null +++ b/Shared/DTOs/CreditDocumentDto.cs @@ -0,0 +1,18 @@ +using Shared.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Shared.DTOs +{ + public class CreditDocumentDto + { + public string Date { get; set; } + public string Title { get; set; } + public string typeName { get; set; } + public CreditDocumentType type { get; set; } + public decimal Value { get; set; } + } +} diff --git a/TaxPayerFull/CUSComponent/CreditDocuments.razor b/TaxPayerFull/CUSComponent/CreditDocuments.razor new file mode 100644 index 0000000..dcf438e --- /dev/null +++ b/TaxPayerFull/CUSComponent/CreditDocuments.razor @@ -0,0 +1,76 @@ +@using Front.Services +@using Shared.DTOs +@using Shared.DTOs.Serch +@inject HttpClientController hc; + + + + @context.Date + + + @context.Title + + + @context.typeName + + + @context.Value + + + + +@code { + + + private async Task> DocumentDataProvider(GridDataProviderRequest request) + { + string sortString = ""; + SortDirection sortDirection = SortDirection.None; + + if (request.Sorting is not null && request.Sorting.Any()) + { + // Note: Multi column sorting is not supported at this moment + sortString = request.Sorting.FirstOrDefault()!.SortString; + sortDirection = request.Sorting.FirstOrDefault()!.SortDirection; + } + var itemsearch = new GridDataProviderRequestDto() + { + // CancellationToken = request.CancellationToken, + Filters = request.Filters.Select(s => new Shared.DTOs.Serch.FilterItem + { + Oper = s.Operator.ToString(), + PropertyName = s.PropertyName, + Value = s.Value + }).ToList(), + PageNumber = request.PageNumber, + PageSize = request.PageSize, + //sortString = sortString, + // SortDirection = sortDirection.ToString() + }; + var model = new PagingDto(0, 0, new List()); + var rsp = await hc.Post($"Orders/GetCreditDocuments", itemsearch); + if (rsp.IsSuccessStatusCode) + { + model = await rsp.Content.ReadFromJsonAsync>(); + } + return await Task.FromResult(new GridDataProviderResult { Data = model.list, TotalCount = model.RowCount }); + + + + + // if (request.Sorting is not null && request.Sorting.Any()) + // { + // // Note: Multi column sorting is not supported at this moment + // sortString = request.Sorting.FirstOrDefault()!.SortString; + // sortDirection = request.Sorting.FirstOrDefault()!.SortDirection; + // } + // var result = await _customerService.GetCustomersAsync(request.Filters, request.PageNumber, request.PageSize, sortString, sortDirection, request.CancellationToken); + // return await Task.FromResult(new GridDataProviderResult { Data = result.Item1, TotalCount = result.Item2 }); + } +}