Add project files.

This commit is contained in:
pkus
2025-01-24 13:37:01 +01:00
parent ee70a3c8af
commit ed726eea09
94 changed files with 4591 additions and 0 deletions

52
FA_WEB.sln Normal file
View File

@@ -0,0 +1,52 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35527.113
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaKrosnoApi", "FaKrosnoApi\FaKrosnoApi.csproj", "{E5027773-5627-42E0-A08F-6A241AE79075}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrdersManagement", "OrdersManagement\OrdersManagement.csproj", "{C9C87D21-E133-45BB-953F-5F42AEF369B5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataModels", "DataModels", "{6607ACC9-71B9-4095-9A81-B6FBB0AAAF17}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaKrosnoEfDataModel", "FaKrosnoEfDataModel\FaKrosnoEfDataModel.csproj", "{4671E3B6-4D11-4521-A927-DC3B1072FC4A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SytelineSaAppEfDataModel", "SytelineSaAppEfDataModel\SytelineSaAppEfDataModel.csproj", "{02B7F642-62C1-4BA2-87B0-0B9214319095}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FaKrosnoEfDataModelTests", "FaKrosnoEfDataModelTests\FaKrosnoEfDataModelTests.csproj", "{4D8AA0FD-6025-4D03-86B9-51CE07081D80}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E5027773-5627-42E0-A08F-6A241AE79075}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5027773-5627-42E0-A08F-6A241AE79075}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5027773-5627-42E0-A08F-6A241AE79075}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5027773-5627-42E0-A08F-6A241AE79075}.Release|Any CPU.Build.0 = Release|Any CPU
{C9C87D21-E133-45BB-953F-5F42AEF369B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9C87D21-E133-45BB-953F-5F42AEF369B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C9C87D21-E133-45BB-953F-5F42AEF369B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C9C87D21-E133-45BB-953F-5F42AEF369B5}.Release|Any CPU.Build.0 = Release|Any CPU
{4671E3B6-4D11-4521-A927-DC3B1072FC4A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4671E3B6-4D11-4521-A927-DC3B1072FC4A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4671E3B6-4D11-4521-A927-DC3B1072FC4A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4671E3B6-4D11-4521-A927-DC3B1072FC4A}.Release|Any CPU.Build.0 = Release|Any CPU
{02B7F642-62C1-4BA2-87B0-0B9214319095}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{02B7F642-62C1-4BA2-87B0-0B9214319095}.Debug|Any CPU.Build.0 = Debug|Any CPU
{02B7F642-62C1-4BA2-87B0-0B9214319095}.Release|Any CPU.ActiveCfg = Release|Any CPU
{02B7F642-62C1-4BA2-87B0-0B9214319095}.Release|Any CPU.Build.0 = Release|Any CPU
{4D8AA0FD-6025-4D03-86B9-51CE07081D80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D8AA0FD-6025-4D03-86B9-51CE07081D80}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D8AA0FD-6025-4D03-86B9-51CE07081D80}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D8AA0FD-6025-4D03-86B9-51CE07081D80}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4671E3B6-4D11-4521-A927-DC3B1072FC4A} = {6607ACC9-71B9-4095-9A81-B6FBB0AAAF17}
{02B7F642-62C1-4BA2-87B0-0B9214319095} = {6607ACC9-71B9-4095-9A81-B6FBB0AAAF17}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,25 @@
using Microsoft.AspNetCore.Mvc;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Services;
namespace FaKrosnoApi.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class CustomerOrdersController(ICustomerOrderService service) : Controller
{
[HttpGet]
public async Task<ActionResult<IEnumerable<CustomerOrderDto>>> GetAll()
{
IEnumerable<CustomerOrderDto?> ediCustomerOrders = await service.GetAll();
return Ok(ediCustomerOrders);
}
[HttpGet("by-order-number")]
public async Task<ActionResult<CustomerOrderDto?>> GetByCustomerOrderNumber([FromQuery] string customerOrderNumber)
{
CustomerOrderDto? scheduleOrder = await service.GetByOrderNumber(customerOrderNumber);
return scheduleOrder != null ? Ok(scheduleOrder) : NotFound();
}
}
}

View File

@@ -0,0 +1,39 @@
using Microsoft.AspNetCore.Mvc;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Services;
namespace FaKrosnoApi.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class EdiCustomerOrdersController(IEdiCustomerOrderService service) : Controller
{
[HttpGet]
public async Task<ActionResult<IEnumerable<EdiCustomerOrderDto>>> GetAll()
{
IEnumerable<EdiCustomerOrderDto?> ediCustomerOrders = await service.GetAll();
return Ok(ediCustomerOrders);
}
[HttpGet("by-date")]
public async Task<ActionResult<IEnumerable<EdiCustomerOrderDto>>> GetByDate([FromQuery] DateTime date)
{
IEnumerable<EdiCustomerOrderDto?> scheduleOrders = await service.GetByDate(date);
return Ok(scheduleOrders);
}
[HttpGet("by-order-number")]
public async Task<ActionResult<EdiCustomerOrderDto>> GetByCustomerOrderNumber([FromQuery] string customerOrderNumber)
{
EdiCustomerOrderDto? scheduleOrder = await service.GetByOrderNumber(customerOrderNumber);
return scheduleOrder != null ? Ok(scheduleOrder) : NotFound();
}
[HttpPost("send-to-syteline")]
public async Task<ActionResult<int>> SendOrderToSyteline([FromQuery] string customerOrderNumber)
{
int result = await service.SendOrderToSyteline(customerOrderNumber);
return result > 0 ? Ok() : BadRequest();
}
}
}

View File

@@ -0,0 +1,25 @@
using Microsoft.AspNetCore.Mvc;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Services;
namespace FaKrosnoApi.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ErrorLogController(IErrorLogService service) : Controller
{
[HttpGet]
public async Task<ActionResult<IEnumerable<ErrorLogDto>>> GetAll()
{
IEnumerable<ErrorLogDto?> errorLogs = await service.GetAll();
return Ok(errorLogs);
}
[HttpGet("by-order-number")]
public async Task<ActionResult<IEnumerable<ErrorLogDto>>> GetByCustomerOrderNumber([FromQuery] string customerOrderNumber)
{
var errorLogs = await service.GetByOrderNumber(customerOrderNumber);
return errorLogs.Any() ? Ok(errorLogs) : NotFound();
}
}
}

View File

@@ -0,0 +1,18 @@
using FaKrosnoEfDataModel.Dtos;
using FaKrosnoEfDataModel.Services;
using Microsoft.AspNetCore.Mvc;
namespace FaKrosnoApi.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class ScheduleOrderDetailsController(IScheduleOrderDetailsService service) : Controller
{
[HttpGet("order/{scheduleOrderId:int}")]
public async Task<ActionResult<IEnumerable<ScheduleOrderDto>>> GetByScheduleOrderId(int scheduleOrderId)
{
IEnumerable<ScheduleOrderDetailDto>? scheduleOrderDetails = await service.GetScheduleOrderDetailsAsync(scheduleOrderId);
return Ok(scheduleOrderDetails);
}
}
}

View File

@@ -0,0 +1,50 @@
using AutoMapper;
using FaKrosnoEfDataModel;
using FaKrosnoEfDataModel.Dtos;
using FaKrosnoEfDataModel.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace FaKrosnoApi.Controllers
{
[ApiController]
[Route("api/[controller]")]
//[Authorize]
public class ScheduleOrdersController(IScheduleOrderService service) : Controller
{
[HttpGet]
public async Task<ActionResult<IEnumerable<ScheduleOrderDto>>> GetAll()
{
IEnumerable<ScheduleOrderDto?> scheduleOrders = await service.GetEntities();
return Ok(scheduleOrders);
}
[HttpGet("by-date")]
public async Task<ActionResult<IEnumerable<ScheduleOrderDto>>> GetByDate([FromQuery] DateTime date)
{
IEnumerable<ScheduleOrderDto?> scheduleOrders = await service.GetEntitiesByLastUpdateDate(date);
return Ok(scheduleOrders);
}
[HttpGet("{id:int}")]
public async Task<ActionResult<ScheduleOrderDto>> GetById(int id)
{
ScheduleOrderDto? scheduleOrder = await service.GetById(id);
return scheduleOrder != null ? Ok(scheduleOrder) : NotFound();
}
[HttpGet("recipient/{recipientId:int}")]
public async Task<ActionResult<IEnumerable<ScheduleOrderDto>>> GetByRecipientId(int recipientId)
{
IEnumerable<ScheduleOrderDto?> scheduleOrders = await service.GetByRecipientId(recipientId);
return Ok(scheduleOrders);
}
[HttpGet("recipient/{recipientId:int}/date")]
public async Task<ActionResult<IEnumerable<ScheduleOrderDto>>> GetByRecipientAndLastUpdateDate(int recipientId, [FromQuery] DateTime date)
{
IEnumerable<ScheduleOrderDto?> scheduleOrders = await service.GetByRecipientAndLastUpdateDate(recipientId, date);
return Ok(scheduleOrders);
}
}
}

View File

@@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.11" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
<PackageReference Include="NSwag.AspNetCore" Version="14.2.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FaKrosnoEfDataModel\FaKrosnoEfDataModel.csproj" />
<ProjectReference Include="..\SytelineSaAppEfDataModel\SytelineSaAppEfDataModel.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,7 @@
@FaKrosnoApi_HostAddress = http://localhost:5152
### Access Swagger UI
GET {{FaKrosnoApi_HostAddress}}/swagger/index.html
Accept: text/html
###

73
FaKrosnoApi/Program.cs Normal file
View File

@@ -0,0 +1,73 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.IdentityModel.Tokens;
using System.Text;
using FaKrosnoEfDataModel;
using FaKrosnoEfDataModel.Services;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using SytelineSaAppEfDataModel;
using SytelineSaAppEfDataModel.Services;
using FaKrosnoMappingProfile = FaKrosnoEfDataModel.MappingProfile;
using SytelineSaAppMappingProfile = SytelineSaAppEfDataModel.MappingProfile;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddDbContext<FaKrosnoDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("FaKrosnoConnection")));
builder.Services.AddDbContext<SytelineSaAppDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("SytelineSaAppConnection")));
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddOpenApiDocument(config =>
{
config.Title = "FaKrosnoApi";
config.Version = "v1";
});
// Configure AutoMapper
builder.Services.AddAutoMapper(typeof(FaKrosnoMappingProfile), typeof(SytelineSaAppMappingProfile));
// Configure JWT Authentication
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = builder.Configuration["Jwt:Issuer"],
ValidAudience = builder.Configuration["Jwt:Audience"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["Jwt:Key"]))
};
});
builder.Services.AddScoped<IScheduleOrderService, ScheduleOrderService>();
builder.Services.AddScoped<IScheduleOrderDetailsService, ScheduleOrderDetailsService>();
builder.Services.AddScoped<IEdiCustomerOrderService, EdiCustomerOrderService>();
builder.Services.AddScoped<IErrorLogService, ErrorLogService>();
builder.Services.AddScoped<ICustomerOrderService, CustomerOrderService>();
var app = builder.Build();
// Configure the HTTP request pipeline.
//if (app.Environment.IsDevelopment())
//{
app.UseOpenApi(); // Serwuje dokument OpenAPI
app.UseSwaggerUi(); // Dodaje interfejs u¿ytkownika Swagger
//}
app.UseHttpsRedirection();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();
app.Run();

View File

@@ -0,0 +1,31 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:16065",
"sslPort": 0
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger/index.html",
"applicationUrl": "http://localhost:5152",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger/index.html",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@@ -0,0 +1,18 @@
{
"ConnectionStrings": {
"FaKrosnoConnection": "Server=192.168.0.7;Database=fakrosnotest;User Id=sa;Password=Tetum#2021!;TrustServerCertificate=true",
"SytelineSaAppConnection": "Server=192.168.0.7;Database=SL_PRODTEST_SA_APP;User Id=sa;Password=Tetum#2021!;TrustServerCertificate=true"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"Jwt": {
"Key": "ThisIsASecretKeyForJwt",
"Issuer": "FaKrosnoApi",
"Audience": "FaKrosnoClient"
},
"AllowedHosts": "*"
}

View File

@@ -0,0 +1,7 @@
namespace FaKrosnoEfDataModel.Dtos
{
public class DtoBase
{
public int ID { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class PurchaserDto : DtoBase
{
public string PurchaserCode { get; set; }
public string PurchaserDesc { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class RecipientDto : DtoBase
{
public int PurchaserID { get; set; }
public string RecipientCode { get; set; }
public string RecipientDesc { get; set; }
public PurchaserDto Purchaser { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class ScheduleOrderDetailDetailDto : DtoBase
{
public int ScheduleOrderDetailID { get; set; }
public int Qty { get; set; }
public DateTime DateFrom { get; set; }
public DateTime DateTo { get; set; }
public string SccType { get; set; }
public string? SccDesc { get; set; }
public string? QtyType { get; set; }
public string? QtyDesc { get; set; }
public string Status { get; set; }
public DateTime? ShipDate { get; set; }
public DateTime LastUpdateDate { get; set; }
public IList<ScheduleOrderDetailDetailMiscDto> ScheduleOrderDetailDetailMiscs { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class ScheduleOrderDetailDetailMiscDto : DtoBase
{
public int ScheduleOrderDetailDetailID { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string? Label { get; set; }
public bool Display { get; set; }
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class ScheduleOrderDetailDto : DtoBase
{
public int ScheduleOrderID { get; set; }
public string Sc_productCode { get; set; }
public string Sh_productCode { get; set; }
public int? Price { get; set; }
public IList<ScheduleOrderDetailDetailDto> ScheduleOrderDetailDetails { get; set; }
public IList<ScheduleOrderDetailMiscDto> ScheduleOrderDetailMiscs { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class ScheduleOrderDetailMiscDto : DtoBase
{
public int ScheduleOrderDetailID { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string? Label { get; set; }
public bool Display { get; set; }
}
}

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class ScheduleOrderDto : DtoBase
{
public string PONum { get; set; }
public int OrderID { get; set; }
public int RecipientID { get; set; }
public DateTime LastUpdateDate { get; set; }
public int DocNumber { get; set; }
public string? DocType { get; set; }
public RecipientDto Recipient { get; set; }
public IList<ScheduleOrderDetailDto> ScheduleOrderDetails { get; set; }
public IList<ScheduleOrderMiscDto> ScheduleOrderMiscs { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Dtos
{
public class ScheduleOrderMiscDto : DtoBase
{
public int ScheduleOrderID { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string? Label { get; set; }
public bool Display { get; set; }
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class EntityBase
{
public int ID { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class Purchaser : EntityBase
{
public string PurchaserCode { get; set; }
public string PurchaserDesc { get; set; }
public ICollection<Recipient> Recipients { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class Recipient : EntityBase
{
public int PurchaserID { get; set; }
public Purchaser Purchaser { get; set; }
public string RecipientCode { get; set; }
public string RecipientDesc { get; set; }
public ICollection<ScheduleOrder> ScheduleOrders { get; set; }
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class ScheduleOrder : EntityBase
{
public string PONum { get; set; }
public int OrderID { get; set; }
public int RecipientID { get; set; }
public Recipient Recipient { get; set; }
public DateTime LastUpdateDate { get; set; }
public int DocNumber { get; set; }
public string? DocType { get; set; }
public ICollection<ScheduleOrderDetail> ScheduleOrderDetails { get; set; }
public ICollection<ScheduleOrderMisc> ScheduleOrderMiscs { get; set; }
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class ScheduleOrderDetail : EntityBase
{
public int ScheduleOrderID { get; set; }
public ScheduleOrder ScheduleOrder { get; set; }
public string Sc_productCode { get; set; }
public string Sh_productCode { get; set; }
public int? Price { get; set; }
public ICollection<ScheduleOrderDetailDetail> ScheduleOrderDetailDetails { get; set; }
public ICollection<ScheduleOrderDetailMisc> ScheduleOrderDetailMiscs { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class ScheduleOrderDetailDetail : EntityBase
{
public int ScheduleOrderDetailID { get; set; }
public ScheduleOrderDetail ScheduleOrderDetail { get; set; }
public int Qty { get; set; }
public DateTime DateFrom { get; set; }
public DateTime DateTo { get; set; }
public string SccType { get; set; }
public string? SccDesc { get; set; }
public string? QtyType { get; set; }
public string? QtyDesc { get; set; }
public string Status { get; set; }
public DateTime? ShipDate { get; set; }
public DateTime LastUpdateDate { get; set; }
public ICollection<ScheduleOrderDetailDetailMisc> ScheduleOrderDetailDetailMiscs { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class ScheduleOrderDetailDetailMisc : EntityBase
{
public int ScheduleOrderDetailDetailID { get; set; }
public ScheduleOrderDetailDetail ScheduleOrderDetailDetail { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string? Label { get; set; }
public bool Display { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class ScheduleOrderDetailMisc : EntityBase
{
public int ScheduleOrderDetailID { get; set; }
public ScheduleOrderDetail ScheduleOrderDetail { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string? Label { get; set; }
public bool Display { get; set; }
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Entities
{
public class ScheduleOrderMisc : EntityBase
{
public int ScheduleOrderID { get; set; }
public ScheduleOrder ScheduleOrder { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string? Label { get; set; }
public bool Display { get; set; }
}
}

View File

@@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FaKrosnoEfDataModel.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace FaKrosnoEfDataModel
{
public class FaKrosnoDbContext : DbContext
{
public FaKrosnoDbContext(DbContextOptions<FaKrosnoDbContext> options) : base(options) { }
public DbSet<Purchaser> Purchasers { get; set; }
public DbSet<Recipient> Recipients { get; set; }
public DbSet<ScheduleOrder> ScheduleOrders { get; set; }
public DbSet<ScheduleOrderDetail> ScheduleOrderDetails { get; set; }
public DbSet<ScheduleOrderDetailDetail> ScheduleOrderDetailDetails { get; set; }
public DbSet<ScheduleOrderDetailDetailMisc> ScheduleOrderDetailDetailMiscs { get; set; }
public DbSet<ScheduleOrderDetailMisc> ScheduleOrderDetailMiscs { get; set; }
public DbSet<ScheduleOrderMisc> ScheduleOrderMiscs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var connectionString = configuration.GetConnectionString("FaKrosnoConnection");
optionsBuilder.UseSqlServer(connectionString, options => options.CommandTimeout(300));
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Purchaser>().ToTable("purchaser");
modelBuilder.Entity<Recipient>().ToTable("recipient")
.HasOne(p => p.Purchaser)
.WithMany(p => p.Recipients)
.HasForeignKey(p => p.PurchaserID);
modelBuilder.Entity<ScheduleOrder>().ToTable("schedule_order")
.HasOne(s => s.Recipient)
.WithMany(r => r.ScheduleOrders)
.HasForeignKey(s => s.RecipientID);
modelBuilder.Entity<ScheduleOrderDetail>().ToTable("schedule_order_detail")
.HasOne(s => s.ScheduleOrder)
.WithMany(s => s.ScheduleOrderDetails)
.HasForeignKey(s => s.ScheduleOrderID);
modelBuilder.Entity<ScheduleOrderDetailDetail>().ToTable("schedule_order_detail_detail")
.HasOne(s => s.ScheduleOrderDetail)
.WithMany(s => s.ScheduleOrderDetailDetails)
.HasForeignKey(s => s.ScheduleOrderDetailID);
modelBuilder.Entity<ScheduleOrderDetailDetailMisc>().ToTable("schedule_order_detail_detail_misc")
.HasOne(s => s.ScheduleOrderDetailDetail)
.WithMany(s => s.ScheduleOrderDetailDetailMiscs)
.HasForeignKey(s => s.ScheduleOrderDetailDetailID);
modelBuilder.Entity<ScheduleOrderDetailMisc>().ToTable("schedule_order_detail_misc")
.HasOne(s => s.ScheduleOrderDetail)
.WithMany(s => s.ScheduleOrderDetailMiscs)
.HasForeignKey(s => s.ScheduleOrderDetailID);
modelBuilder.Entity<ScheduleOrderMisc>().ToTable("schedule_order_misc")
.HasOne(s => s.ScheduleOrder)
.WithMany(s => s.ScheduleOrderMiscs)
.HasForeignKey(s => s.ScheduleOrderID);
modelBuilder.Entity<ScheduleOrderDetail>(entity => entity.Property(x => x.Price).IsRequired(false));
modelBuilder.Entity<ScheduleOrderDetailMisc>(entity => entity.Property(x => x.Label).IsRequired(false));
modelBuilder.Entity<ScheduleOrderDetailDetailMisc>(entity => entity.Property(x => x.Label).IsRequired(false));
modelBuilder.Entity<ScheduleOrderDetailDetail>(entity =>
{
entity.Property(x => x.SccDesc).IsRequired(false);
entity.Property(x => x.QtyType).IsRequired(false);
entity.Property(x => x.QtyDesc).IsRequired(false);
entity.Property(x => x.ShipDate).IsRequired(false);
});
}
}
}

View File

@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="13.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,25 @@
using AutoMapper;
using FaKrosnoEfDataModel.Dtos;
using FaKrosnoEfDataModel.Entities;
namespace FaKrosnoEfDataModel
{
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<EntityBase, DtoBase>().ReverseMap();
CreateMap<Purchaser, PurchaserDto>().IncludeBase<EntityBase, DtoBase>().ReverseMap();
CreateMap<Recipient, RecipientDto>().IncludeBase<EntityBase, DtoBase>().ReverseMap();
CreateMap<ScheduleOrder, ScheduleOrderDto>().IncludeBase<EntityBase, DtoBase>().ReverseMap();
CreateMap<ScheduleOrderDetail, ScheduleOrderDetailDto>().IncludeBase<EntityBase, DtoBase>().ReverseMap();
CreateMap<ScheduleOrderDetailDetail, ScheduleOrderDetailDetailDto>().IncludeBase<EntityBase, DtoBase>()
.ReverseMap();
CreateMap<ScheduleOrderDetailDetailMisc, ScheduleOrderDetailDetailMiscDto>()
.IncludeBase<EntityBase, DtoBase>().ReverseMap();
CreateMap<ScheduleOrderDetailMisc, ScheduleOrderDetailMiscDto>().IncludeBase<EntityBase, DtoBase>()
.ReverseMap();
CreateMap<ScheduleOrderMisc, ScheduleOrderMiscDto>().IncludeBase<EntityBase, DtoBase>().ReverseMap();
}
}
}

View File

@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FaKrosnoEfDataModel.Entities;
using Microsoft.EntityFrameworkCore;
namespace FaKrosnoEfDataModel.Queries
{
public static class ScheduleOrderQueries
{
public static readonly Func<FaKrosnoDbContext, IEnumerable<ScheduleOrder?>> GetEntities =
EF.CompileQuery((FaKrosnoDbContext context) => context.ScheduleOrders.Include(x => x.Recipient).ThenInclude(x => x.Purchaser)
.Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailMiscs)
.Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailDetails)
.ThenInclude(x => x.ScheduleOrderDetailDetailMiscs).Include(x => x.ScheduleOrderMiscs));
public static readonly Func<FaKrosnoDbContext, DateTime, IEnumerable<ScheduleOrder?>> GetEntitiesByDate =
EF.CompileQuery((FaKrosnoDbContext context, DateTime fromDate) => context.ScheduleOrders
.Include(x => x.Recipient).ThenInclude(x => x.Purchaser).Include(x => x.ScheduleOrderDetails)
.ThenInclude(x => x.ScheduleOrderDetailMiscs).Include(x => x.ScheduleOrderDetails)
.ThenInclude(x => x.ScheduleOrderDetailDetails).ThenInclude(x => x.ScheduleOrderDetailDetailMiscs)
.Include(x => x.ScheduleOrderMiscs).Where(x => x.LastUpdateDate > fromDate));
public static readonly Func<FaKrosnoDbContext, int, ScheduleOrder?> GetById = EF.CompileQuery(
(FaKrosnoDbContext context, int id) => context.ScheduleOrders.Include(x => x.Recipient).ThenInclude(x => x.Purchaser)
.Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailMiscs)
.Include(x => x.ScheduleOrderDetails).ThenInclude(x => x.ScheduleOrderDetailDetails)
.ThenInclude(x => x.ScheduleOrderDetailDetailMiscs).Include(x => x.ScheduleOrderMiscs)
.FirstOrDefault(x => x.ID == id));
}
}

View File

@@ -0,0 +1,14 @@
using FaKrosnoEfDataModel.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FaKrosnoEfDataModel.Services
{
public interface IScheduleOrderDetailsService
{
Task<IEnumerable<ScheduleOrderDetailDto>?> GetScheduleOrderDetailsAsync(int scheduleOrderId);
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FaKrosnoEfDataModel.Dtos;
namespace FaKrosnoEfDataModel.Services
{
public interface IScheduleOrderService
{
Task<IEnumerable<ScheduleOrderDto?>> GetEntities();
Task<ScheduleOrderDto?> GetById(int id);
Task<IEnumerable<ScheduleOrderDto?>> GetByRecipientId(int recipientId);
Task<IEnumerable<ScheduleOrderDto?>> GetEntitiesByLastUpdateDate(DateTime date);
Task<IEnumerable<ScheduleOrderDto?>> GetByRecipientAndLastUpdateDate(int recipientId, DateTime date);
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AutoMapper;
using AutoMapper.QueryableExtensions;
using FaKrosnoEfDataModel.Dtos;
using Microsoft.EntityFrameworkCore;
namespace FaKrosnoEfDataModel.Services
{
public class ScheduleOrderDetailsService : ServiceBase<ScheduleOrderDetailDto>, IScheduleOrderDetailsService
{
public ScheduleOrderDetailsService(FaKrosnoDbContext context, IMapper mapper) : base(context, mapper)
{
}
public async Task<IEnumerable<ScheduleOrderDetailDto>?> GetScheduleOrderDetailsAsync(int scheduleOrderId)
{
return await Context.ScheduleOrderDetails.Where(x => x.ScheduleOrderID == scheduleOrderId)
.ProjectTo<ScheduleOrderDetailDto>(Mapper.ConfigurationProvider).ToListAsync();
}
}
}

View File

@@ -0,0 +1,51 @@
using AutoMapper;
using FaKrosnoEfDataModel.Dtos;
using FaKrosnoEfDataModel.Entities;
using FaKrosnoEfDataModel.Queries;
using Microsoft.EntityFrameworkCore;
namespace FaKrosnoEfDataModel.Services
{
public class ScheduleOrderService : ServiceBase<ScheduleOrderDto>, IScheduleOrderService
{
public ScheduleOrderService(FaKrosnoDbContext context, IMapper mapper) : base(context, mapper)
{
}
public override async Task<ScheduleOrderDto?> GetById(int id)
{
var scheduleOrder = await Task.FromResult(ScheduleOrderQueries.GetById(Context, id));
return scheduleOrder != null ? Mapper.Map<ScheduleOrderDto>(scheduleOrder) : null;
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetByRecipientId(int recipientId)
{
IList<ScheduleOrderDto> scheduleOrders = (await GetAll()).ToList();
return scheduleOrders.Where(x => x?.RecipientID == recipientId);
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetByRecipientAndLastUpdateDate(int recipientId, DateTime date)
{
IList<ScheduleOrderDto?> scheduleOrders = (await GetEntitiesByLastUpdateDate(date)).ToList();
return scheduleOrders.Where(x => x?.RecipientID == recipientId && x.LastUpdateDate >= date);
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetEntities()
{
IList<ScheduleOrder> scheduleOrders = await Context.ScheduleOrders.Include(x => x.Recipient)
.ThenInclude(x => x.Purchaser).ToListAsync();
return Mapper.Map<IEnumerable<ScheduleOrderDto>>(scheduleOrders);
}
public async Task<IEnumerable<ScheduleOrderDto?>> GetEntitiesByLastUpdateDate(DateTime date)
{
IList<ScheduleOrder?> scheduleOrders =
(await Task.FromResult(ScheduleOrderQueries.GetEntitiesByDate(Context, date))).ToList();
return Mapper.Map<IEnumerable<ScheduleOrderDto>>(scheduleOrders);
}
}
}

View File

@@ -0,0 +1,73 @@
using AutoMapper;
using AutoMapper.Internal;
using FaKrosnoEfDataModel.Dtos;
using Microsoft.EntityFrameworkCore;
using System.Reflection;
namespace FaKrosnoEfDataModel.Services
{
public class ServiceBase<T> where T : DtoBase
{
protected readonly FaKrosnoDbContext Context;
protected readonly IMapper Mapper;
protected readonly Type EntityType;
public ServiceBase(FaKrosnoDbContext context, IMapper mapper)
{
Context = context;
Mapper = mapper;
EntityType = FindEntityTypeForDto(typeof(T));
}
public virtual async Task<T?> GetById(int id)
{
object? entity = await Context.FindAsync(EntityType, id);
if (entity != null)
{
return (T)Mapper.Map(entity, entity.GetType(), typeof(T));
}
return default;
}
public virtual async Task<IEnumerable<T>> GetAll()
{
MethodInfo? setMethod =
typeof(DbContext).GetMethod("Set", Array.Empty<Type>())?.MakeGenericMethod(EntityType);
IQueryable? dbSet = setMethod?.Invoke(Context, null) as IQueryable;
if (dbSet == null)
{
throw new InvalidOperationException("Failed to get DbSet for entity type.");
}
IList<object> entities = await Task.Run(() => dbSet.Cast<object>().ToListAsync());
return entities.Select(e => (T)Mapper.Map(e, e.GetType(), typeof(T)));
}
private Type FindEntityTypeForDto(Type dtoType)
{
IGlobalConfiguration? internalApi = Mapper.ConfigurationProvider.Internal();
TypeMap map = internalApi.FindTypeMapFor(dtoType, null);
if (map != null)
{
return map.DestinationType;
}
foreach (var typeMap in internalApi.GetAllTypeMaps())
{
if (typeMap.SourceType == dtoType)
{
return typeMap.DestinationType;
}
}
throw new InvalidOperationException($"No mapping found for DTO type: {dtoType.Name}");
}
}
}

View File

@@ -0,0 +1,5 @@
{
"ConnectionStrings": {
"FaKrosnoConnection": "Server=192.168.0.7;Database=fakrosnotest;User Id=sa;Password=Tetum#2021!;TrustServerCertificate=true"
}
}

View File

@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\FaKrosnoEfDataModel\FaKrosnoEfDataModel.csproj" />
<ProjectReference Include="..\SytelineSaAppEfDataModel\SytelineSaAppEfDataModel.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,4 @@
using FaKrosnoEfDataModelTests;
Service service = new Service();
await service.Process();

View File

@@ -0,0 +1,57 @@
using FaKrosnoEfDataModel;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FaKrosnoEfDataModel.Services;
using AutoMapper;
using FaKrosnoEfDataModel.Dtos;
using FaKrosnoEfDataModel.Entities;
using SytelineSaAppEfDataModel;
using SytelineSaAppEfDataModel.Dtos;
using MappingProfile = FaKrosnoEfDataModel.MappingProfile;
using MappingProfileSl = SytelineSaAppEfDataModel.MappingProfile;
namespace FaKrosnoEfDataModelTests
{
internal class Service
{
public async Task Process()
{
Console.WriteLine("Test");
var config = new MapperConfiguration(cfg =>
{
cfg.AddProfile<MappingProfile>();
cfg.AddProfile<MappingProfileSl>();
});
IMapper mapper = config.CreateMapper();
ServiceBase<ScheduleOrderDto> serviceBase =
new ServiceBase<ScheduleOrderDto>(new FaKrosnoDbContext(new DbContextOptions<FaKrosnoDbContext>()), mapper);
IScheduleOrderService scheduleOrderService =
new ScheduleOrderService(new FaKrosnoDbContext(new DbContextOptions<FaKrosnoDbContext>()), mapper);
//var entitiesByLastUpdateDate = scheduleOrderService.GetEntitiesByLastUpdateDate(new DateTime(2024, 11, 12));
//var purchaserDtos = await scheduleOrderService.GetById(15543);
//var byId = await serviceBase.GetById(15543);
SytelineSaAppEfDataModel.Services.EdiCustomerOrderService serviceBase1 =
new SytelineSaAppEfDataModel.Services.EdiCustomerOrderService(new SytelineSaAppDbContext(new DbContextOptions<SytelineSaAppDbContext>()), mapper);
SytelineSaAppEfDataModel.Services.ErrorLogService serviceBase2 =
new SytelineSaAppEfDataModel.Services.ErrorLogService(new SytelineSaAppDbContext(new DbContextOptions<SytelineSaAppDbContext>()), mapper);
//IEnumerable<EdiCustomerOrderDto> task = await serviceBase1.GetByDate(new DateTime(2025, 1, 1));
//EdiCustomerOrderDto ediCustomerOrderDto = await serviceBase1.GetByOrderNumber("EDI0004323");
//var sendOrderToSyteline = serviceBase1.SendOrderToSyteline("EDI0004475");
var byOrderNumber = serviceBase2.GetByOrderNumber("EDI0004490");
}
}
}

View File

@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css" rel="stylesheet" />
<link href="_content/Blazor.Bootstrap/blazor.bootstrap.css" rel="stylesheet" />
<link rel="stylesheet" href="app.css" />
<link rel="stylesheet" href="OrdersManagement.styles.css" />
<HeadOutlet @rendermode="@InteractiveServer" />
</head>
<body>
<Routes @rendermode="@InteractiveServer" />
<script src="_framework/blazor.web.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script>
<!-- Add chart.js reference if chart components are used in your application. -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.0.1/chart.umd.js" integrity="sha512-gQhCDsnnnUfaRzD8k1L5llCCV6O9HN09zClIzzeJ8OJ9MpGmIlCxm+pdCkqTwqJ4JcjbojFr79rl2F1mzcoLMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<!-- Add chartjs-plugin-datalabels.min.js reference if chart components with data label feature is used in your application. -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-datalabels/2.2.0/chartjs-plugin-datalabels.min.js" integrity="sha512-JPcRR8yFa8mmCsfrw4TNte1ZvF1e3+1SdGMslZvmrzDYxS69J7J49vkFL8u6u8PlPJK+H3voElBtUCzaXj+6ig==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdn.jsdelivr.net/npm/sortablejs@latest/Sortable.min.js"></script>
<script src="_content/Blazor.Bootstrap/blazor.bootstrap.js"></script>
</body>
</html>

View File

@@ -0,0 +1,52 @@
@using BlazorBootstrap
@inherits LayoutComponentBase
<div class="bb-page">
<Sidebar @ref="sidebar"
IconName="IconName.BootstrapFill"
Title="Blazor Bootstrap"
DataProvider="SidebarDataProvider" />
<main>
<div class="bb-top-row px-4 d-flex justify-content-end">
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
</div>
<article class="content px-4">
<div class="py-2">@Body</div>
</article>
</main>
</div>
@code {
Sidebar sidebar;
IEnumerable<NavItem> navItems;
private async Task<SidebarDataProviderResult> SidebarDataProvider(SidebarDataProviderRequest request)
{
if (navItems is null)
navItems = GetNavItems();
return await Task.FromResult(request.ApplyTo(navItems));
}
private IEnumerable<NavItem> GetNavItems()
{
navItems = new List<NavItem>
{
new NavItem { Id = "1", Href = "/", IconName = IconName.HouseDoorFill, Text = "Zamówienia DELFOR", Match=NavLinkMatch.All},
new NavItem { Id = "2", Href = "/edicustomerorders", IconName = IconName.Database, Text = "Zamówienia klienta EDI"}
};
return navItems;
}
}
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>

View File

@@ -0,0 +1,96 @@
.page {
position: relative;
display: flex;
flex-direction: column;
}
main {
flex: 1;
}
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row ::deep a, .top-row ::deep .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}
.top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
text-decoration: underline;
}
.top-row ::deep a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row {
justify-content: space-between;
}
.top-row ::deep a, .top-row ::deep .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page {
flex-direction: row;
}
.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row {
position: sticky;
top: 0;
z-index: 1;
}
.top-row.auth ::deep a:first-child {
flex: 1;
text-align: right;
width: 0;
}
.top-row, article {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}
#blazor-error-ui {
background: lightyellow;
bottom: 0;
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
display: none;
left: 0;
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
position: fixed;
width: 100%;
z-index: 1000;
}
#blazor-error-ui .dismiss {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}

View File

@@ -0,0 +1,30 @@
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">OrdersManagement</a>
</div>
</div>
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Counter
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="weather">
<span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather
</NavLink>
</div>
</nav>
</div>

View File

@@ -0,0 +1,105 @@
.navbar-toggler {
appearance: none;
cursor: pointer;
width: 3.5rem;
height: 2.5rem;
color: white;
position: absolute;
top: 0.5rem;
right: 1rem;
border: 1px solid rgba(255, 255, 255, 0.1);
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}
.navbar-toggler:checked {
background-color: rgba(255, 255, 255, 0.5);
}
.top-row {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}
.navbar-brand {
font-size: 1.1rem;
}
.bi {
display: inline-block;
position: relative;
width: 1.25rem;
height: 1.25rem;
margin-right: 0.75rem;
top: -1px;
background-size: cover;
}
.bi-house-door-fill-nav-menu {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}
.bi-plus-square-fill-nav-menu {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}
.bi-list-nested-nav-menu {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}
.nav-item {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.nav-item:first-of-type {
padding-top: 1rem;
}
.nav-item:last-of-type {
padding-bottom: 1rem;
}
.nav-item ::deep .nav-link {
color: #d7d7d7;
background: none;
border: none;
border-radius: 4px;
height: 3rem;
display: flex;
align-items: center;
line-height: 3rem;
width: 100%;
}
.nav-item ::deep a.active {
background-color: rgba(255,255,255,0.37);
color: white;
}
.nav-item ::deep .nav-link:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
.nav-scrollable {
display: none;
}
.navbar-toggler:checked ~ .nav-scrollable {
display: block;
}
@media (min-width: 641px) {
.navbar-toggler {
display: none;
}
.nav-scrollable {
/* Never collapse the sidebar for wide screens */
display: block;
/* Allow sidebar to scroll for tall menus */
height: calc(100vh - 3.5rem);
overflow-y: auto;
}
}

View File

@@ -0,0 +1,269 @@
@page "/edicustomerorder/{CustomerOrderId}"
@inject EdiCustomerOrderService EdiCustomerOrderService
@using SytelineSaAppEfDataModel.Dtos
@inherits LayoutComponentBase
<div class="row">
<h3>Zamówienie Klienta EDI</h3>
</div>
<div class="row">
<div class="col">
<SortableList TItem="EdiCustomerOrderDto" Data="_ediCustomerOrder">
<ItemTemplate>
<u>Numer zamówienia EDI:</u>&emsp;<b>@context.CustomerOrderNumber</b><br />
<u>Numer zamówienia Klienta:</u>&emsp;<b>@context.CustomerPoNumber</b><br />
<u>Numer klienta:</u>&emsp;<b>@context.CustomerNumber</b><br />
<u>Klient:</u>&emsp;<b>@context.CustomerName</b><br />
<u>Numer odbiorcy:</u>&emsp;<b>@(context.CustomerSequence?.ToString() ?? "N/A")</b><br />
<u>Data otrzymania:</u>&emsp;<b>@(context.RecivedDate?.ToString("dd.MM.yyyy HH:mm:ss") ?? "N/A")</b><br />
<u>Wysłano do Syteline?:</u>&emsp;<b>@((context.Posted?.ToString() ?? "0") == "0" ? "NIE" : "TAK")</b><br />
<u>Data wysyłki do Syteline:</u>&emsp;<b>@(context.PostedDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "N/A")</b><br />
<u>Data zamówienia:</u>&emsp;<b>@(context.OrderDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "N/A")</b><br />
</ItemTemplate>
</SortableList>
</div>
<div class="col">
<SortableList TItem="EdiCustomerOrderDto" Data="_ediCustomerOrder" Class="bg-light">
<ItemTemplate>
<u>Cena:</u>&emsp;<b>@(context.Price?.ToString("F2") ?? "N/A")</b><br />
<u>Waga:</u>&emsp;<b>@(context.Weight?.ToString("F2") ?? "N/A")</b><br />
<u>Magazyn:</u>&emsp;<b>@context.Warehouse</b><br />
<u>Gate:</u>&emsp;<b>@context.Gate</b><br />
<u>Kod odbiorcy:</u>&emsp;<b>@context.RecipientCode</b><br />
<u>Kod wysyłającego:</u>&emsp;<b>@context.SenderCode</b><br />
<u>Kod sprzedawcy:</u>&emsp;<b>@context.SellerCode</b><br />
<u>Kod kupującego:</u>&emsp;<b>@context.BuyerCode</b><br />
<u>Typ dokumentu:</u>&emsp;<b>@context.DocType</b><br />
</ItemTemplate>
</SortableList>
</div>
</div>
<br/>
<SortableList TItem="EdiCustomerOrderTranslateDto" Data="_ediCustomerOrderTranslate">
<ItemTemplate>
<u>Id:</u>&emsp;<b>@context.Id</b><br />
<u>CoEdiOrder:</u>&emsp;<b>@context.CoEdiOrder</b><br />
<u>CoRowPointer:</u>&emsp;<b>@context.CoRowPointer</b><br />
<u>CoCoNum:</u>&emsp;<b>@context.CoCoNum</b><br />
<u>CoType:</u>&emsp;<b>@context.CoType</b><br />
<u>CoTakenBy:</u>&emsp;<b>@context.CoTakenBy</b><br />
<u>EdiCoCoNum:</u>&emsp;<b>@context.EdiCoCoNum</b><br />
<u>OrdersCount:</u>&emsp;<b>@context.OrdersCount</b><br />
<u>OrderFound:</u>&emsp;<b>@context.OrderFound</b><br />
<u>CreatedDate:</u>&emsp;<b>@context.CreatedDate.ToString("yyyy-MM-dd HH:mm:ss")</b><br />
<u>FoundNumbers:</u>&emsp;<b>@context.FoundNumbers</b><br />
<u>ScheduleOrderId:</u>&emsp;<b>@context.ScheduleOrderId</b><br />
</ItemTemplate>
</SortableList>
<br />
<div class="row">
<h3>Indeksy</h3>
</div>
<div class="row">
<Grid @ref="_ediCustomerOrderLinesGrid"
TItem="EdiCustomerOrderLineDto"
Class="table table-hover table-bordered table-striped"
Data="_ediCustomerOrderLines"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="20"
AllowSelection="true"
AllowRowClick="true"
SelectionMode="GridSelectionMode.Single"
SelectedItemsChanged="SelectedEdiCustomerOrderLineChanged">
<GridColumns>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="CoLine" PropertyName="CoLine">
@context.CustomerOrderLine
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="SalesChannelProductCode" PropertyName="SalesChannelProductCode">
@context.Item
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="ShipperProductCode" PropertyName="ShipperProductCode">
@context.CustomerItemNumber
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Qty" TextAlignment="Alignment.End" PropertyName="Qty">
@context.BlanketQty
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="Address" PropertyName="Address">
@context.Address
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="BoxType" PropertyName="BoxType">
@context.BoxType
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="FinalDestination" PropertyName="FinalDestination">
@context.FinalDestination
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineDto" HeaderText="QtyPerBox" PropertyName="QtyPerBox">
@context.QtyPerBox
</GridColumn>
</GridColumns>
</Grid>
</div>
@if (_isVisibleEdiCustomerOrderLine)
{
<div class="row">
<h3>Szczegóły</h3>
</div>
<div class="row">
<div class="col">
<SortableList TItem="EdiCustomerOrderLineDto" Data="_selectedEdiCustomerOrderLine">
<ItemTemplate>
<u>CustomerOrderNumber:</u>&emsp;<b>@context.CustomerOrderNumber</b><br />
<u>CustomerOrderLine:</u>&emsp;<b>@context.CustomerOrderLine</b><br />
<u>Item:</u>&emsp;<b>@context.Item</b><br />
<u>CustomerItemNumber:</u>&emsp;<b>@context.CustomerItemNumber</b><br />
<u>BlanketQty:</u>&emsp;<b>@(context.BlanketQty?.ToString("F2") ?? "N/A")</b><br />
<u>EffectiveDate:</u>&emsp;<b>@(context.EffectiveDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "N/A")</b><br />
<u>ExpirationDate:</u>&emsp;<b>@(context.ExpirationDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "N/A")</b><br />
<u>ContPrice:</u>&emsp;<b>@(context.ContPrice?.ToString("F2") ?? "N/A")</b><br />
<u>Status:</u>&emsp;<b>@context.Status</b><br />
<u>Uom:</u>&emsp;<b>@context.Uom</b><br />
</ItemTemplate>
</SortableList>
</div>
<div class="col">
<SortableList TItem="EdiCustomerOrderLineDto" Data="_selectedEdiCustomerOrderLine">
<ItemTemplate>
<u>BlanketQtyReleased:</u>&emsp;<b>@(context.BlanketQtyReleased?.ToString("F2") ?? "N/A")</b><br />
<u>ContPriceReleased:</u>&emsp;<b>@(context.ContPriceReleased?.ToString("F2") ?? "N/A")</b><br />
<u>QtySent:</u>&emsp;<b>@(context.QtySent?.ToString("F2") ?? "N/A")</b><br />
<u>RecordDate:</u>&emsp;<b>@context.RecordDate.ToString("yyyy-MM-dd HH:mm:ss")</b><br />
<u>Description:</u>&emsp;<b>@context.Description</b><br />
<u>CreateDate:</u>&emsp;<b>@context.CreateDate.ToString("yyyy-MM-dd HH:mm:ss")</b><br />
<u>BoxType:</u>&emsp;<b>@context.BoxType</b><br />
<u>Address:</u>&emsp;<b>@context.Address</b><br />
<u>FinalDestination:</u>&emsp;<b>@context.FinalDestination</b><br />
<u>QtyPerBox:</u>&emsp;<b>@(context.QtyPerBox?.ToString() ?? "N/A")</b>
</ItemTemplate>
</SortableList>
</div>
</div>
<br />
<h3>Harmonogramy</h3>
<div class="row">
<Grid @ref="_ediCustomerOrderLineItemsGrid"
TItem="EdiCustomerOrderLineItemDto"
Class="table table-hover table-bordered table-striped"
Data="_ediCustomerOrderLineItems"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="20"
AllowSelection="true"
AllowRowClick="true"
SelectionMode="GridSelectionMode.Single"
SelectedItemsChanged="SelectedEdiCustomerOrderLineItemChanged">
<GridColumns>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Id" PropertyName="Id">
@context.CustomerOrderRelease
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Quantity Ordered" TextAlignment="Alignment.End" PropertyName="Quantity Ordered">
@context.QtyOrdered
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="Due Date" PropertyName="Due Date">
@context.DueDate?.ToString("yyyy-MM-dd")
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="RoutingCode" PropertyName="RoutingCode">
@context.RoutingCode
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="PalletCode" PropertyName="PalletCode">
@context.PalletCode
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="UnloadingPoint" PropertyName="UnloadingPoint">
@context.UnloadingPoint
</GridColumn>
<GridColumn TItem="EdiCustomerOrderLineItemDto" HeaderText="DestinationPoint" PropertyName="DestinationPoint">
@context.DestinationPoint
</GridColumn>
</GridColumns>
</Grid>
</div>
}@if (_isVisibleEdiCustomerOrderLineItem)
{
<div class="row">
<h3>Szczegóły</h3>
</div>
<div class="row">
<div class="col">
<SortableList TItem="EdiCustomerOrderLineItemDto" Data="_selectedEdiCustomerOrderLineItem">
<ItemTemplate>
<u>ReceivedDate:</u>&emsp;<b>@(context.ReceivedDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "N/A")</b><br />
<u>CustomerOrderNumber:</u>&emsp;<b>@context.CustomerOrderNumber</b><br />
<u>CustomerOrderLine:</u>&emsp;<b>@context.CustomerOrderLine</b><br />
<u>CustomerOrderRelease:</u>&emsp;<b>@context.CustomerOrderRelease</b><br />
<u>Item:</u>&emsp;<b>@context.Item</b><br />
<u>CustomerItem:</u>&emsp;<b>@context.CustomerItem</b><br />
<u>QtyOrdered:</u>&emsp;<b>@(context.QtyOrdered?.ToString("F2") ?? "N/A")</b><br />
<u>QtyReady:</u>&emsp;<b>@(context.QtyReady?.ToString("F2") ?? "N/A")</b><br />
<u>Cost:</u>&emsp;<b>@(context.Cost?.ToString("F2") ?? "N/A")</b><br />
<u>Price:</u>&emsp;<b>@(context.Price?.ToString("F2") ?? "N/A")</b><br />
<u>DueDate:</u>&emsp;<b>@(context.DueDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "N/A")</b><br />
<u>ReleaseDate:</u>&emsp;<b>@(context.ReleaseDate?.ToString("yyyy-MM-dd HH:mm:ss") ?? "N/A")</b><br />
<u>Warehouse:</u>&emsp;<b>@context.Warehouse</b><br />
</ItemTemplate>
</SortableList>
</div>
<div class="col">
<SortableList TItem="EdiCustomerOrderLineItemDto" Data="_selectedEdiCustomerOrderLineItem">
<ItemTemplate>
<u>TaxCodeOne:</u>&emsp;<b>@context.TaxCodeOne</b><br />
<u>Uom:</u>&emsp;<b>@context.Uom</b><br />
<u>QtyOrderedReleased:</u>&emsp;<b>@(context.QtyOrderedReleased?.ToString("F2") ?? "N/A")</b><br />
<u>PriceReleased:</u>&emsp;<b>@(context.PriceReleased?.ToString("F2") ?? "N/A")</b><br />
<u>CustomerOrderCustomerNumber:</u>&emsp;<b>@context.CustomerOrderCustomerNumber</b><br />
<u>Description:</u>&emsp;<b>@context.Description</b><br />
<u>CreateDate:</u>&emsp;<b>@context.CreateDate.ToString("yyyy-MM-dd HH:mm:ss")</b><br />
<u>RoutingCode:</u>&emsp;<b>@context.RoutingCode</b><br />
<u>DeliveryCallNumber:</u>&emsp;<b>@context.DeliveryCallNumber</b><br />
<u>UnloadingPoint:</u>&emsp;<b>@context.UnloadingPoint</b><br />
<u>DestinationPoint:</u>&emsp;<b>@context.DestinationPoint</b><br />
<u>PalletCode:</u>&emsp;<b>@context.PalletCode</b><br />
<u>PalletNumber:</u>&emsp;<b>@context.PalletNumber</b>
</ItemTemplate>
</SortableList>
</div>
</div>
}
@code {
[Parameter]
public string CustomerOrderId { get; set; } = string.Empty;
List<EdiCustomerOrderDto?>? _ediCustomerOrder;
List<EdiCustomerOrderTranslateDto?> _ediCustomerOrderTranslate = new();
List<EdiCustomerOrderLineDto> _ediCustomerOrderLines = new();
List<EdiCustomerOrderLineItemDto> _ediCustomerOrderLineItems = new();
List<EdiCustomerOrderLineDto?> _selectedEdiCustomerOrderLine = new();
List<EdiCustomerOrderLineItemDto?> _selectedEdiCustomerOrderLineItem = new();
Grid<EdiCustomerOrderLineDto>? _ediCustomerOrderLinesGrid;
Grid<EdiCustomerOrderLineItemDto>? _ediCustomerOrderLineItemsGrid;
private bool _isVisibleEdiCustomerOrderLine;
private bool _isVisibleEdiCustomerOrderLineItem;
protected override async Task OnInitializedAsync()
{
EdiCustomerOrderDto? ediCustomerOrder = await EdiCustomerOrderService.GetEdiCustomerOrderAsync(CustomerOrderId);
_ediCustomerOrder = new List<EdiCustomerOrderDto?> { ediCustomerOrder };
_ediCustomerOrderLines = ediCustomerOrder?.EdiCustomerOrderLines.ToList() ?? new List<EdiCustomerOrderLineDto>();
_ediCustomerOrderTranslate = new List<EdiCustomerOrderTranslateDto?> { ediCustomerOrder?.EdiCustomerOrderTranslates.MaxBy(x => x.CreatedDate) };
}
private void SelectedEdiCustomerOrderLineChanged(HashSet<EdiCustomerOrderLineDto> obj)
{
_isVisibleEdiCustomerOrderLine = obj.Any();
_selectedEdiCustomerOrderLine = new List<EdiCustomerOrderLineDto?> { obj.FirstOrDefault() };
_ediCustomerOrderLineItems = obj.FirstOrDefault()?.EdiCustomerOrderLineItems.ToList() ?? new List<EdiCustomerOrderLineItemDto>();
}
private void SelectedEdiCustomerOrderLineItemChanged(HashSet<EdiCustomerOrderLineItemDto> obj)
{
_isVisibleEdiCustomerOrderLineItem = obj.Any();
_selectedEdiCustomerOrderLineItem = new List<EdiCustomerOrderLineItemDto?> { obj.FirstOrDefault() };
}
}

View File

@@ -0,0 +1,161 @@
@page "/edicustomerorders"
@inject EdiCustomerOrderService EdiCustomerOrderService
@inject NavigationManager NavigationManager
@using SytelineSaAppEfDataModel.Dtos
@using FaKrosnoApi.Dtos
@using OrdersManagement.Dtos
@inherits LayoutComponentBase
<div class="row">
<h3>EdiCustomerOrders</h3>
</div>
<br />
<div class="row">
<div class="col-md-12">
<Switch ValueExpression="() => _filter" ValueChanged="FilterChanged" Label="Pokaż tylko niezaksięgowane" />
</div>
</div>
<br />
@if (_isVisible)
{
<div class="row">
<div class="col-md-12">
<Button Color="ButtonColor.Primary" @onclick="SendOrderToSyteLine">Księguj bieżący</Button>
</div>
</div>
}
<br />
<div class="row">
<Grid @ref="_grid"
TItem="EdiCustomerOrderDto"
Class="table table-hover table-bordered table-striped"
DataProvider="EdiCustomerOrdersDataProvider"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="20"
AllowSelection="true"
AllowRowClick="true"
OnRowDoubleClick="OnRowDoubleClick"
SelectedItemsChanged="SelectedItemsChanged">
<GridColumns>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="CO Number" PropertyName="CoNumber">
@context.CustomerOrderNumber
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Customer Number" PropertyName="CustNum">
@context.CustomerNumber
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Recipient" PropertyName="Recipient">
@context.CustomerSequence
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Last Update Date" PropertyName="LastUpdateDate">
@context.CreateDate
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="Gate" PropertyName="Gate">
@context.Gate
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="RecipientCode" PropertyName="RecipientCode">
@context.RecipientCode
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="SellerCode" PropertyName="SellerCode">
@context.SellerCode
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="SenderCode" PropertyName="SenderCode">
@context.SenderCode
</GridColumn>
<GridColumn TItem="EdiCustomerOrderDto" HeaderText="BuyerCode" PropertyName="BuyerCode">
@context.BuyerCode
</GridColumn>
</GridColumns>
</Grid>
</div>
<Modal @ref="_modal" Title="@_modalDto.Title">
<BodyTemplate>
@_modalDto.Body
</BodyTemplate>
<FooterTemplate>
<Button Color="ButtonColor.Primary" @onclick="OnHideModalClick">OK</Button>
</FooterTemplate>
</Modal>
@code {
Grid<EdiCustomerOrderDto>? _grid;
private IEnumerable<EdiCustomerOrderDto>? _ediCustomerOrders;
private EdiCustomerOrderDto? _selectedEdiCustomerOrder;
private Modal _modal = default!;
private ModalDto _modalDto = new(null, null);
private bool _isVisible;
private bool _filter;
// protected override async Task OnInitializedAsync()
// {
// _ediCustomerOrders = await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>();
// _ediCustomerOrders = _ediCustomerOrders.OrderByDescending(x => x.CreateDate).ToList();
// }
private async Task<GridDataProviderResult<EdiCustomerOrderDto>> EdiCustomerOrdersDataProvider(GridDataProviderRequest<EdiCustomerOrderDto> request)
{
_ediCustomerOrders = await EdiCustomerOrderService.GetEdiCustomerOrdersAsync() ?? new List<EdiCustomerOrderDto>();
_ediCustomerOrders = _ediCustomerOrders.OrderByDescending(x => x.CreateDate).ToList();
if (_filter)
{
_ediCustomerOrders = _ediCustomerOrders.Where(x => x.Posted == 0).ToList();
}
StateHasChanged();
return await Task.FromResult(request.ApplyTo(_ediCustomerOrders));
}
private void OnRowDoubleClick(GridRowEventArgs<EdiCustomerOrderDto> obj)
{
string customerOrderId = obj.Item.CustomerOrderNumber;
NavigationManager.NavigateTo($"/edicustomerorder/{customerOrderId}");
}
private async void SendOrderToSyteLine()
{
if (_selectedEdiCustomerOrder == null) return;
ResponseDto response = await EdiCustomerOrderService.SendOrderToSyteline(_selectedEdiCustomerOrder.CustomerOrderNumber);
if (response.Status == 1)
{
_modalDto = new ModalDto("Wysłano", $"Zamówienie EDI {_selectedEdiCustomerOrder.CustomerOrderNumber} zostało poprawnie zaksięgowane w Zamówieniach klienta pod numerem '{_selectedEdiCustomerOrder.EdiCustomerOrderTranslates.FirstOrDefault()?.CoCoNum}'");
await _modal.ShowAsync();
_grid?.RefreshDataAsync();
}
else
{
_modalDto = new ModalDto("Błąd", $"Zamówienie EDI {_selectedEdiCustomerOrder.CustomerOrderNumber} nie zostało poprawnie zaksięgowane w Zamówieniach klienta.{Environment.NewLine}Lista błędów:{Environment.NewLine}{response.Message}");
await _modal.ShowAsync();
}
}
private void SelectedItemsChanged(HashSet<EdiCustomerOrderDto> obj)
{
_selectedEdiCustomerOrder = obj.FirstOrDefault() ?? null;
_isVisible = _selectedEdiCustomerOrder?.Posted == 0;
}
private async Task OnHideModalClick()
{
await _modal.HideAsync();
}
private void FilterChanged(bool obj)
{
_filter = obj;
_grid?.RefreshDataAsync();
}
}

View File

@@ -0,0 +1,36 @@
@page "/Error"
@using System.Diagnostics
<PageTitle>Error</PageTitle>
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
@if (ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@RequestId</code>
</p>
}
<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
@code{
[CascadingParameter]
private HttpContext? HttpContext { get; set; }
private string? RequestId { get; set; }
private bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
protected override void OnInitialized() =>
RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier;
}

View File

@@ -0,0 +1,135 @@
@page "/details/{ScheduleOrderId:int}"
@inject ScheduleOrderDetailsService ScheduleOrderDetailsService
<div class="container-fluid">
<div class="row">
<div class="col-md-4 bg-light" style="min-height: 150vh;">
<h2 style="margin: 5px">Indeksy:</h2>
<Grid @ref="_grid"
TItem="ScheduleOrderDetailDto"
Class="table table-hover table-bordered table-striped"
DataProvider="ScheduleOrderDetailsDataProvider"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="20"
AllowSelection="true"
AllowRowClick="true"
SelectionMode="GridSelectionMode.Single"
SelectedItemsChanged="SelectedItemChanged">
<GridColumns>
<GridColumn TItem="ScheduleOrderDetailDto" HeaderText="Id" PropertyName="Id">
@context.ID
</GridColumn>
<GridColumn TItem="ScheduleOrderDetailDto" HeaderText="SalesChannelProductCode" PropertyName="SalesChannelProductCode">
@context.Sc_productCode
</GridColumn>
<GridColumn TItem="ScheduleOrderDetailDto" HeaderText="ShipperProductCode" PropertyName="ShipperProductCode">
@context.Sh_productCode
</GridColumn>
<GridColumn TItem="ScheduleOrderDetailDto" HeaderText="Price" PropertyName="Price">
@context.Price
</GridColumn>
</GridColumns>
</Grid>
@if (_isVisible)
{
<div id="rightTopContainer" class="col-12 bg-light" style="height: auto;">
<h2 style="margin: 5px">Dodatkowe informacje:</h2>
<SortableList TItem="ScheduleOrderDetailMiscDto" Data="_scheduleOrderDetailMiscs">
<ItemTemplate>
<u>@context.Label:</u>&emsp;<b>@context.Value</b>
</ItemTemplate>
</SortableList>
</div>
}
</div>
<div class="col-md-8">
<div class="row">
@if (_isVisible)
{
<div id="rightBottomContainer" class="col-12 bg-light">
<h2 style="margin: 5px">Harmonogramy:</h2>
<Grid @ref="_detailDetailsGrid"
TItem="ScheduleOrderDetailDetailDto"
Data="_scheduleOrderDetailsDetails"
Class="table table-hover table-bordered table-striped"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="20"
AllowSelection="true"
SelectionMode="GridSelectionMode.Single"
SelectedItemsChanged="SelectedDetailDetailChanged">
<GridColumns>
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Id" PropertyName="Id">
@context.ID
</GridColumn>
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="DateFrom" PropertyName="DateFrom">
@context.DateFrom
</GridColumn>
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="DateTo" PropertyName="DateTo">
@context.DateTo
</GridColumn>
<GridColumn TItem="ScheduleOrderDetailDetailDto" HeaderText="Qty" PropertyName="Qty">
@context.Qty
</GridColumn>
</GridColumns>
</Grid>
</div>
@if (_isVisibleDetailDetail)
{
<div id="rightTopContainer" class="col-12 bg-light" style="height: auto;">
<h2 style="margin: 5px">Dodatkowe informacje:</h2>
<SortableList TItem="ScheduleOrderDetailDetailMiscDto" Data="_scheduleOrderDetailDetailMiscs">
<ItemTemplate>
<u>@context.Label:</u>&emsp;<b>@context.Value</b>
</ItemTemplate>
</SortableList>
</div>
}
}
</div>
</div>
</div>
</div>
@code {
[Parameter]
public int ScheduleOrderId { get; set; }
private bool _isVisible;
private bool _isVisibleDetailDetail;
Grid<ScheduleOrderDetailDto>? _grid;
Grid<ScheduleOrderDetailDetailDto>? _detailDetailsGrid;
private IEnumerable<ScheduleOrderDetailDto>? _scheduleOrderDetails;
private IEnumerable<ScheduleOrderDetailDetailDto>? _scheduleOrderDetailsDetails;
private List<ScheduleOrderDetailMiscDto>? _scheduleOrderDetailMiscs;
private List<ScheduleOrderDetailDetailMiscDto>? _scheduleOrderDetailDetailMiscs;
private async Task<GridDataProviderResult<ScheduleOrderDetailDto>> ScheduleOrderDetailsDataProvider(GridDataProviderRequest<ScheduleOrderDetailDto> request)
{
_scheduleOrderDetails = await ScheduleOrderDetailsService.GetScheduleOrderDetails(ScheduleOrderId) ?? new List<ScheduleOrderDetailDto>();
StateHasChanged();
return await Task.FromResult(request.ApplyTo(_scheduleOrderDetails));
}
private void SelectedItemChanged(HashSet<ScheduleOrderDetailDto> obj)
{
_isVisible = obj.Any();
_scheduleOrderDetailMiscs = obj.FirstOrDefault()?.ScheduleOrderDetailMiscs.ToList();
_scheduleOrderDetailsDetails = obj.FirstOrDefault()?.ScheduleOrderDetailDetails.ToList();
}
private void SelectedDetailDetailChanged(HashSet<ScheduleOrderDetailDetailDto> obj)
{
_isVisibleDetailDetail = obj.Any();
_scheduleOrderDetailDetailMiscs = obj.FirstOrDefault()?.ScheduleOrderDetailDetailMiscs.ToList();
}
}

View File

@@ -0,0 +1,62 @@
@page "/"
@inject ScheduleOrderService ScheduleOrderService
@inject NavigationManager NavigationManager
@inherits LayoutComponentBase
<h3>ScheduleOrders</h3>
<Grid @ref="_grid"
TItem="ScheduleOrderDto"
Class="table table-hover table-bordered table-striped"
DataProvider="ScheduleOrdersDataProvider"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="20"
AllowSelection="true"
AllowRowClick="true"
OnRowDoubleClick="OnRowDoubleClick">
<GridColumns>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Id" PropertyName="Id">
@context.ID
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="OrderID" PropertyName="OrderID">
@context.OrderID
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="PO Number" PropertyName="PONum">
@context.PONum
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Recipient" PropertyName="Recipient">
@context.Recipient.RecipientCode
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Purchaser" Filterable="true" PropertyName="Purchaser">
@context.Recipient.Purchaser.PurchaserCode
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Last Update Date" PropertyName="LastUpdateDate">
@context.LastUpdateDate
</GridColumn>
</GridColumns>
</Grid>
@code {
Grid<ScheduleOrderDto>? _grid;
private IEnumerable<ScheduleOrderDto>? _scheduleOrders;
private async Task<GridDataProviderResult<ScheduleOrderDto>> ScheduleOrdersDataProvider(GridDataProviderRequest<ScheduleOrderDto> request)
{
_scheduleOrders = await ScheduleOrderService.GetScheduleOrdersAsync() ?? new List<ScheduleOrderDto>();
_scheduleOrders = _scheduleOrders.OrderByDescending(x => x.LastUpdateDate).ToList();
StateHasChanged();
return await Task.FromResult(request.ApplyTo(_scheduleOrders));
}
private void OnRowDoubleClick(GridRowEventArgs<ScheduleOrderDto> obj)
{
int scheduleOrderId = obj.Item.ID;
NavigationManager.NavigateTo($"/details/{scheduleOrderId}");
}
}

View File

@@ -0,0 +1,7 @@
@using OrdersManagement.Components.Layout
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(Layout.MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
</Router>

View File

@@ -0,0 +1,11 @@
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using BlazorBootstrap;
@using FaKrosnoEfDataModel.Dtos
@using OrdersManagement.Services

View File

@@ -0,0 +1,8 @@
namespace OrdersManagement.Dtos
{
public class ModalDto(string? title, string? body)
{
public string? Title { get; set; } = title;
public string? Body { get; set; } = body;
}
}

View File

@@ -0,0 +1,16 @@
namespace FaKrosnoApi.Dtos
{
public class ResponseDto
{
public int Status { get; set; }
public string Identifier { get; set; }
public string? Message { get; set; }
public ResponseDto(int status, string identifier, string? message)
{
Status = status;
Identifier = identifier;
Message = message;
}
}
}

View File

@@ -0,0 +1,36 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Blazor.Bootstrap" Version="3.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\FaKrosnoEfDataModel\FaKrosnoEfDataModel.csproj" />
<ProjectReference Include="..\SytelineSaAppEfDataModel\SytelineSaAppEfDataModel.csproj" />
</ItemGroup>
<ItemGroup>
<Content Update="Components\App.razor">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</Content>
<Content Update="Components\Layout\MainLayout.razor">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</Content>
<Content Update="Components\Pages\Error.razor">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</Content>
<Content Update="Components\Routes.razor">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</Content>
<Content Update="Components\_Imports.razor">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</Content>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,39 @@
using Microsoft.AspNetCore.Routing.Constraints;
using OrdersManagement.Components;
using OrdersManagement.Services;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddBlazorBootstrap();
string apiUrl = builder.Configuration["ApiUrl"] ?? "http://localhost:5000"; // Ustawienie na adres twojego API
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(apiUrl) });
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
builder.Services.AddScoped<ScheduleOrderService>();
builder.Services.AddScoped<ScheduleOrderDetailsService>();
builder.Services.AddScoped<EdiCustomerOrderService>();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAntiforgery();
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
app.Run();

View File

@@ -0,0 +1,38 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:61370",
"sslPort": 44319
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5295",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7215;http://localhost:5295",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@@ -0,0 +1,41 @@
using FaKrosnoApi.Dtos;
using SytelineSaAppEfDataModel.Dtos;
namespace OrdersManagement.Services
{
public class EdiCustomerOrderService(HttpClient httpClient)
{
public async Task<IEnumerable<EdiCustomerOrderDto>?> GetEdiCustomerOrdersAsync()
{
return await httpClient.GetFromJsonAsync<IEnumerable<EdiCustomerOrderDto>>("api/EdiCustomerOrders");
}
public async Task<EdiCustomerOrderDto?> GetEdiCustomerOrderAsync(string customerOrderNumber)
{
return await httpClient.GetFromJsonAsync<EdiCustomerOrderDto>(
$"api/EdiCustomerOrders/by-order-number/?customerOrderNumber={Uri.EscapeDataString(customerOrderNumber)}");
}
public async Task<ResponseDto> SendOrderToSyteline(string customerOrderNumber)
{
HttpResponseMessage responseMessage = await httpClient.PostAsync(
$"api/EdiCustomerOrders/send-to-syteline?customerOrderNumber={Uri.EscapeDataString(customerOrderNumber)}", null);
if (responseMessage.IsSuccessStatusCode)
{
return new ResponseDto(1, customerOrderNumber, null);
}
string? errorMessage = null;
IEnumerable<ErrorLogDto>? logs = await httpClient.GetFromJsonAsync<IEnumerable<ErrorLogDto>>(
$"api/ErrorLog/by-order-number/?customerOrderNumber={Uri.EscapeDataString(customerOrderNumber)}");
if (logs != null)
{
errorMessage = string.Join("\r\n", logs.Select(x => x.ErrMsg));
}
return new ResponseDto(0, customerOrderNumber, errorMessage);
}
}
}

View File

@@ -0,0 +1,13 @@
using FaKrosnoEfDataModel.Dtos;
namespace OrdersManagement.Services
{
public class ScheduleOrderDetailsService(HttpClient httpClient)
{
public async Task<IEnumerable<ScheduleOrderDetailDto>?> GetScheduleOrderDetails(int scheduleOrderId)
{
return await httpClient.GetFromJsonAsync<IEnumerable<ScheduleOrderDetailDto>>(
$"api/scheduleOrderDetails/order/{scheduleOrderId}");
}
}
}

View File

@@ -0,0 +1,12 @@
using FaKrosnoEfDataModel.Dtos;
namespace OrdersManagement.Services
{
public class ScheduleOrderService(HttpClient httpClient)
{
public async Task<IEnumerable<ScheduleOrderDto>?> GetScheduleOrdersAsync()
{
return await httpClient.GetFromJsonAsync<IEnumerable<ScheduleOrderDto>>("api/ScheduleOrders");
}
}
}

View File

@@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

View File

@@ -0,0 +1,51 @@
html, body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
a, .btn-link {
color: #006bb7;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}
.content {
padding-top: 1.1rem;
}
h1:focus {
outline: none;
}
.valid.modified:not([type=checkbox]) {
outline: 1px solid #26b050;
}
.invalid {
outline: 1px solid #e50000;
}
.validation-message {
color: #e50000;
}
.blazor-error-boundary {
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
padding: 1rem 1rem 1rem 3.7rem;
color: white;
}
.blazor-error-boundary::after {
content: "An error has occurred."
}
.darker-border-checkbox.form-check-input {
border-color: #929292;
}

View File

@@ -0,0 +1,125 @@
namespace SytelineSaAppEfDataModel.Dtos
{
public class CustomerOrderDto
{
public string Type { get; set; }
public string CoNum { get; set; }
public string EstNum { get; set; }
public string CustNum { get; set; }
public int CustSeq { get; set; }
public string Contact { get; set; }
public string Phone { get; set; }
public string CustPo { get; set; }
public DateTime OrderDate { get; set; }
public string TakenBy { get; set; }
public string TermsCode { get; set; }
public string ShipCode { get; set; }
public decimal? Price { get; set; }
public decimal? Weight { get; set; }
public short? QtyPackages { get; set; }
public decimal? Freight { get; set; }
public decimal? MiscCharges { get; set; }
public decimal? PrepaidAmt { get; set; }
public decimal? SalesTax { get; set; }
public string Stat { get; set; }
public decimal? Cost { get; set; }
public DateTime? CloseDate { get; set; }
public decimal? FreightT { get; set; }
public decimal? MChargesT { get; set; }
public decimal? PrepaidT { get; set; }
public decimal? SalesTaxT { get; set; }
public string Slsman { get; set; }
public DateTime? EffDate { get; set; }
public DateTime? ExpDate { get; set; }
public string Whse { get; set; }
public decimal? SalesTax2 { get; set; }
public decimal? SalesTaxT2 { get; set; }
public bool? EdiOrder { get; set; }
public string TransNat { get; set; }
public string ProcessInd { get; set; }
public string Delterm { get; set; }
public bool? UseExchRate { get; set; }
public string TaxCode1 { get; set; }
public string TaxCode2 { get; set; }
public string FrtTaxCode1 { get; set; }
public string FrtTaxCode2 { get; set; }
public string MscTaxCode1 { get; set; }
public string MscTaxCode2 { get; set; }
public string DiscountType { get; set; }
public decimal? DiscAmount { get; set; }
public decimal? Disc { get; set; }
public string Pricecode { get; set; }
public bool? ShipPartial { get; set; }
public bool? ShipEarly { get; set; }
public decimal? MatlCostT { get; set; }
public decimal? LbrCostT { get; set; }
public decimal? FovhdCostT { get; set; }
public decimal? VovhdCostT { get; set; }
public decimal? OutCostT { get; set; }
public string EndUserType { get; set; }
public decimal? ExchRate { get; set; }
public bool? FixedRate { get; set; }
public string OrigSite { get; set; }
public string LcrNum { get; set; }
public string EdiType { get; set; }
public bool? Invoiced { get; set; }
public bool? CreditHold { get; set; }
public DateTime? CreditHoldDate { get; set; }
public string CreditHoldReason { get; set; }
public string CreditHoldUser { get; set; }
public bool? SyncReqd { get; set; }
public DateTime? ProjectedDate { get; set; }
public string OrderSource { get; set; }
public string ConvertType { get; set; }
public bool? ApsPullUp { get; set; }
public bool? Consolidate { get; set; }
public string InvFreq { get; set; }
public bool? Summarize { get; set; }
public bool NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public bool? Einvoice { get; set; }
public string Charfld1 { get; set; }
public string Charfld2 { get; set; }
public string Charfld3 { get; set; }
public DateTime? Datefld { get; set; }
public decimal? Decifld1 { get; set; }
public decimal? Decifld2 { get; set; }
public decimal? Decifld3 { get; set; }
public bool? Logifld { get; set; }
public string AckStat { get; set; }
public string ConfigId { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public bool InWorkflow { get; set; }
public bool? IncludeTaxInPrice { get; set; }
public string TransNat2 { get; set; }
public string ApplyToInvNum { get; set; }
public string ExportType { get; set; }
public string ExternalConfirmationRef { get; set; }
public bool IsExternal { get; set; }
public string ProspectId { get; set; }
public string OppId { get; set; }
public string LeadId { get; set; }
public short? DaysShippedBeforeDueDateTolerance { get; set; }
public short? DaysShippedAfterDueDateTolerance { get; set; }
public decimal? ShippedOverOrderedQtyTolerance { get; set; }
public decimal? ShippedUnderOrderedQtyTolerance { get; set; }
public bool Consignment { get; set; }
public short? Priority { get; set; }
public string DemandingSite { get; set; }
public string DemandingSitePoNum { get; set; }
public string Uf_FKR_CoContract { get; set; }
public DateTime? Uf_BPX_DeliveryDate { get; set; }
public string Uf_FKR_EDI_CustName { get; set; }
public string Uf_FKR_EDI_Gate { get; set; }
public string Uf_FKR_EDI_RecipientCode { get; set; }
public string Uf_FKR_EDI_SellerCode { get; set; }
public string Uf_FKR_EDI_SenderCode { get; set; }
public string Uf_DocType { get; set; }
public string Uf_FKR_EDI_BuyerCode { get; set; }
public IEnumerable<CustomerOrderLineDto> CustomerOrderLines { get; set; } = new List<CustomerOrderLineDto>();
}
}

View File

@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Dtos
{
public class CustomerOrderLineDto
{
public string CoNum { get; set; }
public short CoLine { get; set; }
public string Item { get; set; }
public string CustItem { get; set; }
public string FeatStr { get; set; }
public decimal BlanketQty { get; set; }
public DateTime? EffDate { get; set; }
public DateTime? ExpDate { get; set; }
public decimal? ContPrice { get; set; }
public string Stat { get; set; }
public DateTime? PromiseDate { get; set; }
public string Pricecode { get; set; }
public string UM { get; set; }
public decimal BlanketQtyConv { get; set; }
public decimal? ContPriceConv { get; set; }
public string ShipSite { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string ConfigId { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public byte PrintKitComponents { get; set; }
public string NonInvAcct { get; set; }
public string NonInvAcctUnit1 { get; set; }
public string NonInvAcctUnit2 { get; set; }
public string NonInvAcctUnit3 { get; set; }
public string NonInvAcctUnit4 { get; set; }
public decimal? CostConv { get; set; }
public short? DaysShippedBeforeDueDateTolerance { get; set; }
public short? DaysShippedAfterDueDateTolerance { get; set; }
public decimal? ShippedOverOrderedQtyTolerance { get; set; }
public decimal? ShippedUnderOrderedQtyTolerance { get; set; }
public string ManufacturerId { get; set; }
public string ManufacturerItem { get; set; }
public string Uf_FKR_EDI_BLN_Address { get; set; }
public string Uf_FKR_EDI_BLN_BoxType { get; set; }
public string Uf_FKR_EDI_BLN_FinalDestination { get; set; }
public int? Uf_FKR_EDI_BLN_QtyPerBox { get; set; }
public IEnumerable<CustomerOrderLineItemDto> CustomerOrderLineItems { get; set; } =
new List<CustomerOrderLineItemDto>();
}
}

View File

@@ -0,0 +1,138 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Dtos
{
public class CustomerOrderLineItemDto
{
public string CoNum { get; set; }
public short CoLine { get; set; }
public short CoRelease { get; set; }
public string Item { get; set; }
public decimal QtyOrdered { get; set; }
public decimal QtyReady { get; set; }
public decimal QtyShipped { get; set; }
public decimal QtyPacked { get; set; }
public decimal Disc { get; set; }
public decimal Cost { get; set; }
public decimal Price { get; set; }
public string RefType { get; set; }
public string RefNum { get; set; }
public short? RefLineSuf { get; set; }
public short? RefRelease { get; set; }
public DateTime? DueDate { get; set; }
public DateTime? ShipDate { get; set; }
public decimal BrkQty1 { get; set; }
public decimal BrkQty2 { get; set; }
public decimal BrkQty3 { get; set; }
public decimal BrkQty4 { get; set; }
public decimal BrkQty5 { get; set; }
public byte Reprice { get; set; }
public string CustItem { get; set; }
public decimal QtyInvoiced { get; set; }
public decimal QtyReturned { get; set; }
public decimal CgsTotal { get; set; }
public string FeatStr { get; set; }
public string Stat { get; set; }
public string CustNum { get; set; }
public int CustSeq { get; set; }
public decimal? PrgBillTot { get; set; }
public decimal? PrgBillApp { get; set; }
public DateTime? ReleaseDate { get; set; }
public DateTime? PromiseDate { get; set; }
public string Whse { get; set; }
public string WksBasis { get; set; }
public decimal? WksValue { get; set; }
public string CommCode { get; set; }
public string TransNat { get; set; }
public string ProcessInd { get; set; }
public string Delterm { get; set; }
public decimal? UnitWeight { get; set; }
public string Origin { get; set; }
public int? ConsNum { get; set; }
public string TaxCode1 { get; set; }
public string TaxCode2 { get; set; }
public decimal? ExportValue { get; set; }
public string EcCode { get; set; }
public string Transport { get; set; }
public DateTime? PickDate { get; set; }
public string Pricecode { get; set; }
public string UM { get; set; }
public decimal QtyOrderedConv { get; set; }
public decimal PriceConv { get; set; }
public string CoCustNum { get; set; }
public byte? Packed { get; set; }
public byte? Bol { get; set; }
public decimal QtyRsvd { get; set; }
public decimal MatlCost { get; set; }
public decimal LbrCost { get; set; }
public decimal FovhdCost { get; set; }
public decimal VovhdCost { get; set; }
public decimal OutCost { get; set; }
public decimal CgsTotalMatl { get; set; }
public decimal CgsTotalLbr { get; set; }
public decimal CgsTotalFovhd { get; set; }
public decimal CgsTotalVovhd { get; set; }
public decimal CgsTotalOut { get; set; }
public decimal CostConv { get; set; }
public decimal MatlCostConv { get; set; }
public decimal LbrCostConv { get; set; }
public decimal FovhdCostConv { get; set; }
public decimal VovhdCostConv { get; set; }
public decimal OutCostConv { get; set; }
public string ShipSite { get; set; }
public byte? SyncReqd { get; set; }
public string CoOrigSite { get; set; }
public string CustPo { get; set; }
public string RmaNum { get; set; }
public short? RmaLine { get; set; }
public DateTime? ProjectedDate { get; set; }
public byte Consolidate { get; set; }
public string InvFreq { get; set; }
public byte Summarize { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string ConfigId { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string TransNat2 { get; set; }
public decimal SupplQtyConvFactor { get; set; }
public byte PrintKitComponents { get; set; }
public string ExternalReservationRef { get; set; }
public string NonInvAcct { get; set; }
public string NonInvAcctUnit1 { get; set; }
public string NonInvAcctUnit2 { get; set; }
public string NonInvAcctUnit3 { get; set; }
public string NonInvAcctUnit4 { get; set; }
public short? DaysShippedBeforeDueDateTolerance { get; set; }
public short? DaysShippedAfterDueDateTolerance { get; set; }
public decimal? ShippedOverOrderedQtyTolerance { get; set; }
public decimal? ShippedUnderOrderedQtyTolerance { get; set; }
public short? Priority { get; set; }
public byte InvoiceHold { get; set; }
public string ManufacturerId { get; set; }
public string ManufacturerItem { get; set; }
public decimal QtyPicked { get; set; }
public string Uf_ZPL_VATRegisterCode { get; set; }
public Guid? Uf_FKR_EDI_EdiCoItemRowPointer { get; set; }
public short? Uf_IMP_CoLineOrginal { get; set; }
public decimal? Uf_IMP_QtyOrdered { get; set; }
public decimal? Uf_IMP_QtyOrginal { get; set; }
public byte? Uf_IMP_SplitCoLine { get; set; }
public byte? Uf_IMP_SplitCoLineChange { get; set; }
public string Uf_FKR_EDI_ITEM_DeliveryCallNum { get; set; }
public string Uf_FKR_EDI_ITEM_RoutingCode { get; set; }
public char? Uf_pci_code { get; set; }
public string Uf_LOC_11_UnloadingPoint { get; set; }
public string Uf_LOC_159_DestinationPoint { get; set; }
public string Uf_Status { get; set; }
public string Uf_FKR_EDI_ITEM_PalletCode { get; set; }
}
}

View File

@@ -0,0 +1,6 @@
namespace SytelineSaAppEfDataModel.Dtos
{
public class DtoBase
{
}
}

View File

@@ -0,0 +1,111 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Dtos
{
public class EdiCustomerOrderLineItemDto
{
public string TransactionCode { get; set; }
public DateTime? ReceivedDate { get; set; }
public byte? Posted { get; set; }
public DateTime? PostedDate { get; set; }
public DateTime? ExtendedDate { get; set; }
public short? ErrorMessage { get; set; }
public byte? Override { get; set; }
public byte? Edi { get; set; }
public byte? Ack { get; set; }
public string AckNumber { get; set; }
public string AckType { get; set; }
public DateTime? AckDate { get; set; }
public string SymCustomerOrderNumber { get; set; }
public byte? QtyChanged { get; set; }
public byte? DateChanged { get; set; }
public byte? PriceChanged { get; set; }
public string CustomerOrderNumber { get; set; }
public int CustomerOrderLine { get; set; }
public int CustomerOrderRelease { get; set; }
public string Item { get; set; }
public decimal? QtyOrdered { get; set; }
public decimal? QtyReady { get; set; }
public decimal? QtyShipped { get; set; }
public decimal? QtyPacked { get; set; }
public decimal? Discount { get; set; }
public decimal? Cost { get; set; }
public decimal? Price { get; set; }
public string RefType { get; set; }
public string RefNumber { get; set; }
public short? RefLineSuf { get; set; }
public short? RefRelease { get; set; }
public DateTime? DueDate { get; set; }
public DateTime? ShipDate { get; set; }
public decimal? BrkQtyOne { get; set; }
public decimal? BrkQtyTwo { get; set; }
public decimal? BrkQtyThree { get; set; }
public decimal? BrkQtyFour { get; set; }
public decimal? BrkQtyFive { get; set; }
public byte? Reprice { get; set; }
public string CustomerItem { get; set; }
public decimal? QtyInvoiced { get; set; }
public decimal? QtyReturned { get; set; }
public decimal? CgsTotal { get; set; }
public string FeatStr { get; set; }
public string Status { get; set; }
public string CustomerNumber { get; set; }
public int? CustomerSequence { get; set; }
public decimal? PrgBillTot { get; set; }
public decimal? PrgBillApp { get; set; }
public DateTime? ReleaseDate { get; set; }
public DateTime? PromiseDate { get; set; }
public string Warehouse { get; set; }
public string WksBasis { get; set; }
public decimal? WksValue { get; set; }
public string CommCode { get; set; }
public string TransNat { get; set; }
public string ProcessInd { get; set; }
public string DelTerm { get; set; }
public decimal? UnitWeight { get; set; }
public string Origin { get; set; }
public int? ConsNumber { get; set; }
public string TaxCodeOne { get; set; }
public string TaxCodeTwo { get; set; }
public decimal? ExportValue { get; set; }
public string EcCode { get; set; }
public string Transport { get; set; }
public DateTime? PickupDate { get; set; }
public string PriceCode { get; set; }
public string Uom { get; set; }
public decimal? QtyOrderedReleased { get; set; }
public decimal? PriceReleased { get; set; }
public string CustomerOrderCustomerNumber { get; set; }
public byte? Packed { get; set; }
public byte? Bol { get; set; }
public decimal? QtyBco { get; set; }
public string BcoCode { get; set; }
public string ExternalRef { get; set; }
public string CustomerPoNumber { get; set; }
public string NonApplyData { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string TransNatTwo { get; set; }
public decimal SupplyQtyConvFactor { get; set; }
public string UfFkrEdiAddIntDest { get; set; }
public string UfFkrEdiCustPoLineNum { get; set; }
public string UfFkrEdiPlaceOrPortDischarge { get; set; }
public string RoutingCode { get; set; }
public string DeliveryCallNumber { get; set; }
public string UnloadingPoint { get; set; }
public string DestinationPoint { get; set; }
public string NewStatus { get; set; }
public string PalletCode { get; set; }
public string PalletNumber { get; set; }
}
}

View File

@@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Dtos
{
public class EdiCustomerOrderDto : DtoBase
{
public string TransactionCode { get; set; }
public string TpCode { get; set; }
public DateTime? RecivedDate { get; set; }
public byte? Posted { get; set; }
public DateTime? PostedDate { get; set; }
public DateTime? ExtendedDate { get; set; }
public short? ErrorMessage { get; set; }
public byte? Override { get; set; }
public byte? Ack { get; set; }
public string AckNumber { get; set; }
public int? AckSequence { get; set; }
public string AckType { get; set; }
public DateTime? AckDate { get; set; }
public string SymbolicCustomerOrderNumber { get; set; }
public decimal? BlanketDollar { get; set; }
public string Type { get; set; }
public string CustomerOrderNumber { get; set; }
public string EstimatedNumber { get; set; }
public string CustomerNumber { get; set; }
public int? CustomerSequence { get; set; }
public string Contact { get; set; }
public string Phone { get; set; }
public string CustomerPoNumber { get; set; }
public DateTime? OrderDate { get; set; }
public string TakenBy { get; set; }
public string TermsCode { get; set; }
public string ShipCode { get; set; }
public decimal? Price { get; set; }
public decimal? Weight { get; set; }
public short? QtyPackages { get; set; }
public decimal? Freight { get; set; }
public decimal? MiscCharges { get; set; }
public decimal? PrepaidAmount { get; set; }
public decimal? SalesTax { get; set; }
public string Status { get; set; }
public decimal? Cost { get; set; }
public DateTime? CloseDate { get; set; }
public decimal? FreightT { get; set; }
public decimal? MchargesT { get; set; }
public decimal? PrepaidT { get; set; }
public decimal? SalesTaxT { get; set; }
public string Salesman { get; set; }
public DateTime? EffectiveDate { get; set; }
public DateTime? ExpirationDate { get; set; }
public string Warehouse { get; set; }
public decimal? SalesTaxTwo { get; set; }
public decimal? SalesTaxTwoT { get; set; }
public string CharFieldOne { get; set; }
public string CharFieldTwo { get; set; }
public string CharFieldThree { get; set; }
public DateTime? DateField { get; set; }
public decimal? DecimalFieldOne { get; set; }
public decimal? DecimalFieldTwo { get; set; }
public decimal? DecimalFieldThree { get; set; }
public byte? LogiField { get; set; }
public byte? EdiOrder { get; set; }
public string TransactionNat { get; set; }
public string ProcessInd { get; set; }
public string DelTerm { get; set; }
public byte? UseExchangeRate { get; set; }
public string TaxCodeOne { get; set; }
public string TaxCodeTwo { get; set; }
public string FreightTaxCodeOne { get; set; }
public string FreightTaxCodeTwo { get; set; }
public string MscTaxCodeOne { get; set; }
public string MscTaxCodeTwo { get; set; }
public decimal? Discount { get; set; }
public string PriceCode { get; set; }
public byte? ShipPartial { get; set; }
public byte? ShipEarly { get; set; }
public string NonApplyData { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string DiscountType { get; set; }
public decimal? DiscountAmount { get; set; }
public string TransNatTwo { get; set; }
public string UfFkrEdiMessageRefNum { get; set; }
public string UfFkrEdiConsigneeAddress { get; set; }
public string UfFkrEdiConsigneeName { get; set; }
public string UfFkrEdiFileName { get; set; }
public string UfFkrEdiBuyerDunsNumber { get; set; }
public string Gate { get; set; }
public string CustomerName { get; set; }
public string RecipientCode { get; set; }
public string SenderCode { get; set; }
public string SellerCode { get; set; }
public string DocType { get; set; }
public string BuyerCode { get; set; }
public IEnumerable<EdiCustomerOrderLineDto> EdiCustomerOrderLines { get; set; } = new List<EdiCustomerOrderLineDto>();
public IEnumerable<EdiCustomerOrderTranslateDto> EdiCustomerOrderTranslates { get; set; } = new List<EdiCustomerOrderTranslateDto>();
}
}

View File

@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Dtos
{
public class EdiCustomerOrderLineDto
{
public string CustomerOrderNumber { get; set; }
public int CustomerOrderLine { get; set; }
public string Item { get; set; }
public string CustomerItemNumber { get; set; }
public string FeatStr { get; set; }
public decimal? BlanketQty { get; set; }
public DateTime? EffectiveDate { get; set; }
public DateTime? ExpirationDate { get; set; }
public decimal? ContPrice { get; set; }
public string Status { get; set; }
public DateTime? PromiseDate { get; set; }
public string PriceCode { get; set; }
public string Uom { get; set; }
public decimal? BlanketQtyReleased { get; set; }
public decimal? ContPriceReleased { get; set; }
public decimal? QtySent { get; set; }
public string SentCode { get; set; }
public string NonAppliedData { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string BoxType { get; set; }
public string Address { get; set; }
public string FinalDestination { get; set; }
public int? QtyPerBox { get; set; }
public IEnumerable<EdiCustomerOrderLineItemDto> EdiCustomerOrderLineItems { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Dtos
{
public class EdiCustomerOrderTranslateDto
{
public int Id { get; set; }
public byte CoEdiOrder { get; set; }
public Guid CoRowPointer { get; set; }
public string CoCoNum { get; set; }
public string CoType { get; set; }
public string CoTakenBy { get; set; }
public string EdiCoCoNum { get; set; }
public int OrdersCount { get; set; }
public bool OrderFound { get; set; }
public DateTime CreatedDate { get; set; }
public string FoundNumbers { get; set; }
public int ScheduleOrderId { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Dtos
{
public class ErrorLogDto
{
public string TrxNum { get; set; }
public short Seq { get; set; }
public int LineNum { get; set; }
public int ReleaseNum { get; set; }
public DateTime? ErrDate { get; set; }
public short? ErrNum { get; set; }
public string ErrMsg { get; set; }
public string TrxCode { get; set; }
public bool NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public bool InWorkflow { get; set; }
}
}

View File

@@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class CustomerOrder
{
public string Type { get; set; }
public string CoNum { get; set; }
public string EstNum { get; set; }
public string CustNum { get; set; }
public int CustSeq { get; set; }
public string Contact { get; set; }
public string Phone { get; set; }
public string CustPo { get; set; }
public DateTime OrderDate { get; set; }
public string TakenBy { get; set; }
public string TermsCode { get; set; }
public string ShipCode { get; set; }
public decimal? Price { get; set; }
public decimal? Weight { get; set; }
public short? QtyPackages { get; set; }
public decimal? Freight { get; set; }
public decimal? MiscCharges { get; set; }
public decimal? PrepaidAmt { get; set; }
public decimal? SalesTax { get; set; }
public string Stat { get; set; }
public decimal? Cost { get; set; }
public DateTime? CloseDate { get; set; }
public decimal? FreightT { get; set; }
public decimal? MChargesT { get; set; }
public decimal? PrepaidT { get; set; }
public decimal? SalesTaxT { get; set; }
public string Slsman { get; set; }
public DateTime? EffDate { get; set; }
public DateTime? ExpDate { get; set; }
public string Whse { get; set; }
public decimal? SalesTax2 { get; set; }
public decimal? SalesTaxT2 { get; set; }
public byte? EdiOrder { get; set; }
public string TransNat { get; set; }
public string ProcessInd { get; set; }
public string Delterm { get; set; }
public byte? UseExchRate { get; set; }
public string TaxCode1 { get; set; }
public string TaxCode2 { get; set; }
public string FrtTaxCode1 { get; set; }
public string FrtTaxCode2 { get; set; }
public string MscTaxCode1 { get; set; }
public string MscTaxCode2 { get; set; }
public string DiscountType { get; set; }
public decimal? DiscAmount { get; set; }
public decimal? Disc { get; set; }
public string Pricecode { get; set; }
public byte? ShipPartial { get; set; }
public byte? ShipEarly { get; set; }
public decimal? MatlCostT { get; set; }
public decimal? LbrCostT { get; set; }
public decimal? FovhdCostT { get; set; }
public decimal? VovhdCostT { get; set; }
public decimal? OutCostT { get; set; }
public string EndUserType { get; set; }
public decimal? ExchRate { get; set; }
public byte? FixedRate { get; set; }
public string OrigSite { get; set; }
public string LcrNum { get; set; }
public string EdiType { get; set; }
public byte? Invoiced { get; set; }
public byte? CreditHold { get; set; }
public DateTime? CreditHoldDate { get; set; }
public string CreditHoldReason { get; set; }
public string CreditHoldUser { get; set; }
public byte? SyncReqd { get; set; }
public DateTime? ProjectedDate { get; set; }
public string OrderSource { get; set; }
public string ConvertType { get; set; }
public byte? ApsPullUp { get; set; }
public byte? Consolidate { get; set; }
public string InvFreq { get; set; }
public byte? Summarize { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public byte? Einvoice { get; set; }
public string Charfld1 { get; set; }
public string Charfld2 { get; set; }
public string Charfld3 { get; set; }
public DateTime? Datefld { get; set; }
public decimal? Decifld1 { get; set; }
public decimal? Decifld2 { get; set; }
public decimal? Decifld3 { get; set; }
public byte? Logifld { get; set; }
public string AckStat { get; set; }
public string ConfigId { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public byte? IncludeTaxInPrice { get; set; }
public string TransNat2 { get; set; }
public string ApplyToInvNum { get; set; }
public string ExportType { get; set; }
public string ExternalConfirmationRef { get; set; }
public byte IsExternal { get; set; }
public string ProspectId { get; set; }
public string OppId { get; set; }
public string LeadId { get; set; }
public short? DaysShippedBeforeDueDateTolerance { get; set; }
public short? DaysShippedAfterDueDateTolerance { get; set; }
public decimal? ShippedOverOrderedQtyTolerance { get; set; }
public decimal? ShippedUnderOrderedQtyTolerance { get; set; }
public byte Consignment { get; set; }
public short? Priority { get; set; }
public string DemandingSite { get; set; }
public string DemandingSitePoNum { get; set; }
public string Uf_FKR_CoContract { get; set; }
public DateTime? Uf_BPX_DeliveryDate { get; set; }
public string Uf_FKR_EDI_CustName { get; set; }
public string Uf_FKR_EDI_Gate { get; set; }
public string Uf_FKR_EDI_RecipientCode { get; set; }
public string Uf_FKR_EDI_SellerCode { get; set; }
public string Uf_FKR_EDI_SenderCode { get; set; }
public string Uf_DocType { get; set; }
public string Uf_FKR_EDI_BuyerCode { get; set; }
}
}

View File

@@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class CustomerOrderLine
{
public string CoNum { get; set; }
public short CoLine { get; set; }
public string Item { get; set; }
public string CustItem { get; set; }
public string FeatStr { get; set; }
public decimal BlanketQty { get; set; }
public DateTime? EffDate { get; set; }
public DateTime? ExpDate { get; set; }
public decimal? ContPrice { get; set; }
public string Stat { get; set; }
public DateTime? PromiseDate { get; set; }
public string Pricecode { get; set; }
public string UM { get; set; }
public decimal BlanketQtyConv { get; set; }
public decimal? ContPriceConv { get; set; }
public string ShipSite { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string ConfigId { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public byte PrintKitComponents { get; set; }
public string NonInvAcct { get; set; }
public string NonInvAcctUnit1 { get; set; }
public string NonInvAcctUnit2 { get; set; }
public string NonInvAcctUnit3 { get; set; }
public string NonInvAcctUnit4 { get; set; }
public decimal? CostConv { get; set; }
public short? DaysShippedBeforeDueDateTolerance { get; set; }
public short? DaysShippedAfterDueDateTolerance { get; set; }
public decimal? ShippedOverOrderedQtyTolerance { get; set; }
public decimal? ShippedUnderOrderedQtyTolerance { get; set; }
public string ManufacturerId { get; set; }
public string ManufacturerItem { get; set; }
public string Uf_FKR_EDI_BLN_Address { get; set; }
public string Uf_FKR_EDI_BLN_BoxType { get; set; }
public string Uf_FKR_EDI_BLN_FinalDestination { get; set; }
public int? Uf_FKR_EDI_BLN_QtyPerBox { get; set; }
}
}

View File

@@ -0,0 +1,138 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class CustomerOrderLineItem
{
public string CoNum { get; set; }
public short CoLine { get; set; }
public short CoRelease { get; set; }
public string Item { get; set; }
public decimal QtyOrdered { get; set; }
public decimal QtyReady { get; set; }
public decimal QtyShipped { get; set; }
public decimal QtyPacked { get; set; }
public decimal Disc { get; set; }
public decimal Cost { get; set; }
public decimal Price { get; set; }
public string RefType { get; set; }
public string RefNum { get; set; }
public short? RefLineSuf { get; set; }
public short? RefRelease { get; set; }
public DateTime? DueDate { get; set; }
public DateTime? ShipDate { get; set; }
public decimal BrkQty1 { get; set; }
public decimal BrkQty2 { get; set; }
public decimal BrkQty3 { get; set; }
public decimal BrkQty4 { get; set; }
public decimal BrkQty5 { get; set; }
public byte Reprice { get; set; }
public string CustItem { get; set; }
public decimal QtyInvoiced { get; set; }
public decimal QtyReturned { get; set; }
public decimal CgsTotal { get; set; }
public string FeatStr { get; set; }
public string Stat { get; set; }
public string CustNum { get; set; }
public int CustSeq { get; set; }
public decimal? PrgBillTot { get; set; }
public decimal? PrgBillApp { get; set; }
public DateTime? ReleaseDate { get; set; }
public DateTime? PromiseDate { get; set; }
public string Whse { get; set; }
public string WksBasis { get; set; }
public decimal? WksValue { get; set; }
public string CommCode { get; set; }
public string TransNat { get; set; }
public string ProcessInd { get; set; }
public string Delterm { get; set; }
public decimal? UnitWeight { get; set; }
public string Origin { get; set; }
public int? ConsNum { get; set; }
public string TaxCode1 { get; set; }
public string TaxCode2 { get; set; }
public decimal? ExportValue { get; set; }
public string EcCode { get; set; }
public string Transport { get; set; }
public DateTime? PickDate { get; set; }
public string Pricecode { get; set; }
public string UM { get; set; }
public decimal QtyOrderedConv { get; set; }
public decimal PriceConv { get; set; }
public string CoCustNum { get; set; }
public byte? Packed { get; set; }
public byte? Bol { get; set; }
public decimal QtyRsvd { get; set; }
public decimal MatlCost { get; set; }
public decimal LbrCost { get; set; }
public decimal FovhdCost { get; set; }
public decimal VovhdCost { get; set; }
public decimal OutCost { get; set; }
public decimal CgsTotalMatl { get; set; }
public decimal CgsTotalLbr { get; set; }
public decimal CgsTotalFovhd { get; set; }
public decimal CgsTotalVovhd { get; set; }
public decimal CgsTotalOut { get; set; }
public decimal CostConv { get; set; }
public decimal MatlCostConv { get; set; }
public decimal LbrCostConv { get; set; }
public decimal FovhdCostConv { get; set; }
public decimal VovhdCostConv { get; set; }
public decimal OutCostConv { get; set; }
public string ShipSite { get; set; }
public byte? SyncReqd { get; set; }
public string CoOrigSite { get; set; }
public string CustPo { get; set; }
public string RmaNum { get; set; }
public short? RmaLine { get; set; }
public DateTime? ProjectedDate { get; set; }
public byte Consolidate { get; set; }
public string InvFreq { get; set; }
public byte Summarize { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string ConfigId { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string TransNat2 { get; set; }
public decimal SupplQtyConvFactor { get; set; }
public byte PrintKitComponents { get; set; }
public string ExternalReservationRef { get; set; }
public string NonInvAcct { get; set; }
public string NonInvAcctUnit1 { get; set; }
public string NonInvAcctUnit2 { get; set; }
public string NonInvAcctUnit3 { get; set; }
public string NonInvAcctUnit4 { get; set; }
public short? DaysShippedBeforeDueDateTolerance { get; set; }
public short? DaysShippedAfterDueDateTolerance { get; set; }
public decimal? ShippedOverOrderedQtyTolerance { get; set; }
public decimal? ShippedUnderOrderedQtyTolerance { get; set; }
public short? Priority { get; set; }
public byte InvoiceHold { get; set; }
public string ManufacturerId { get; set; }
public string ManufacturerItem { get; set; }
public decimal QtyPicked { get; set; }
public string Uf_ZPL_VATRegisterCode { get; set; }
public Guid? Uf_FKR_EDI_EdiCoItemRowPointer { get; set; }
public short? Uf_IMP_CoLineOrginal { get; set; }
public decimal? Uf_IMP_QtyOrdered { get; set; }
public decimal? Uf_IMP_QtyOrginal { get; set; }
public byte? Uf_IMP_SplitCoLine { get; set; }
public byte? Uf_IMP_SplitCoLineChange { get; set; }
public string Uf_FKR_EDI_ITEM_DeliveryCallNum { get; set; }
public string Uf_FKR_EDI_ITEM_RoutingCode { get; set; }
public char? Uf_pci_code { get; set; }
public string Uf_LOC_11_UnloadingPoint { get; set; }
public string Uf_LOC_159_DestinationPoint { get; set; }
public string Uf_Status { get; set; }
public string Uf_FKR_EDI_ITEM_PalletCode { get; set; }
}
}

View File

@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class EdiCustomerOrder : EntityBase
{
public string TransactionCode { get; set; }
public string TpCode { get; set; }
public DateTime? RecivedDate { get; set; }
public byte? Posted { get; set; }
public DateTime? PostedDate { get; set; }
public DateTime? ExtendedDate { get; set; }
public short? ErrorMessage { get; set; }
public byte? Override { get; set; }
public byte? Ack { get; set; }
public string AckNumber { get; set; }
public int? AckSequence { get; set; }
public string AckType { get; set; }
public DateTime? AckDate { get; set; }
public string SymbolicCustomerOrderNumber { get; set; }
public decimal? BlanketDollar { get; set; }
public string Type { get; set; }
public string CustomerOrderNumber { get; set; }
public string EstimatedNumber { get; set; }
public string CustomerNumber { get; set; }
public int? CustomerSequence { get; set; }
public string Contact { get; set; }
public string Phone { get; set; }
public string CustomerPoNumber { get; set; }
public DateTime? OrderDate { get; set; }
public string TakenBy { get; set; }
public string TermsCode { get; set; }
public string ShipCode { get; set; }
public decimal? Price { get; set; }
public decimal? Weight { get; set; }
public short? QtyPackages { get; set; }
public decimal? Freight { get; set; }
public decimal? MiscCharges { get; set; }
public decimal? PrepaidAmount { get; set; }
public decimal? SalesTax { get; set; }
public string Status { get; set; }
public decimal? Cost { get; set; }
public DateTime? CloseDate { get; set; }
public decimal? FreightT { get; set; }
public decimal? MchargesT { get; set; }
public decimal? PrepaidT { get; set; }
public decimal? SalesTaxT { get; set; }
public string Salesman { get; set; }
public DateTime? EffectiveDate { get; set; }
public DateTime? ExpirationDate { get; set; }
public string Warehouse { get; set; }
public decimal? SalesTaxTwo { get; set; }
public decimal? SalesTaxTwoT { get; set; }
public string CharFieldOne { get; set; }
public string CharFieldTwo { get; set; }
public string CharFieldThree { get; set; }
public DateTime? DateField { get; set; }
public decimal? DecimalFieldOne { get; set; }
public decimal? DecimalFieldTwo { get; set; }
public decimal? DecimalFieldThree { get; set; }
public byte? LogiField { get; set; }
public byte? EdiOrder { get; set; }
public string TransactionNat { get; set; }
public string ProcessInd { get; set; }
public string DelTerm { get; set; }
public byte? UseExchangeRate { get; set; }
public string TaxCodeOne { get; set; }
public string TaxCodeTwo { get; set; }
public string FreightTaxCodeOne { get; set; }
public string FreightTaxCodeTwo { get; set; }
public string MscTaxCodeOne { get; set; }
public string MscTaxCodeTwo { get; set; }
public decimal? Discount { get; set; }
public string PriceCode { get; set; }
public byte? ShipPartial { get; set; }
public byte? ShipEarly { get; set; }
public string NonApplyData { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string DiscountType { get; set; }
public decimal? DiscountAmount { get; set; }
public string TransNatTwo { get; set; }
public string UfFkrEdiMessageRefNum { get; set; }
public string UfFkrEdiConsigneeAddress { get; set; }
public string UfFkrEdiConsigneeName { get; set; }
public string UfFkrEdiFileName { get; set; }
public string UfFkrEdiBuyerDunsNumber { get; set; }
public string Gate { get; set; }
public string CustomerName { get; set; }
public string RecipientCode { get; set; }
public string SenderCode { get; set; }
public string SellerCode { get; set; }
public string DocType { get; set; }
public string BuyerCode { get; set; }
}
}

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class EdiCustomerOrderLine
{
public string CustomerOrderNumber { get; set; }
public int CustomerOrderLine { get; set; }
public string Item { get; set; }
public string CustomerItemNumber { get; set; }
public string FeatStr { get; set; }
public decimal? BlanketQty { get; set; }
public DateTime? EffectiveDate { get; set; }
public DateTime? ExpirationDate { get; set; }
public decimal? ContPrice { get; set; }
public string Status { get; set; }
public DateTime? PromiseDate { get; set; }
public string PriceCode { get; set; }
public string Uom { get; set; }
public decimal? BlanketQtyReleased { get; set; }
public decimal? ContPriceReleased { get; set; }
public decimal? QtySent { get; set; }
public string SentCode { get; set; }
public string NonAppliedData { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string BoxType { get; set; }
public string Address { get; set; }
public string FinalDestination { get; set; }
public int? QtyPerBox { get; set; }
}
}

View File

@@ -0,0 +1,111 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class EdiCustomerOrderLineItem
{
public string TransactionCode { get; set; }
public DateTime? ReceivedDate { get; set; }
public byte? Posted { get; set; }
public DateTime? PostedDate { get; set; }
public DateTime? ExtendedDate { get; set; }
public short? ErrorMessage { get; set; }
public byte? Override { get; set; }
public byte? Edi { get; set; }
public byte? Ack { get; set; }
public string AckNumber { get; set; }
public string AckType { get; set; }
public DateTime? AckDate { get; set; }
public string SymCustomerOrderNumber { get; set; }
public byte? QtyChanged { get; set; }
public byte? DateChanged { get; set; }
public byte? PriceChanged { get; set; }
public string CustomerOrderNumber { get; set; }
public int CustomerOrderLine { get; set; }
public int CustomerOrderRelease { get; set; }
public string Item { get; set; }
public decimal? QtyOrdered { get; set; }
public decimal? QtyReady { get; set; }
public decimal? QtyShipped { get; set; }
public decimal? QtyPacked { get; set; }
public decimal? Discount { get; set; }
public decimal? Cost { get; set; }
public decimal? Price { get; set; }
public string RefType { get; set; }
public string RefNumber { get; set; }
public short? RefLineSuf { get; set; }
public short? RefRelease { get; set; }
public DateTime? DueDate { get; set; }
public DateTime? ShipDate { get; set; }
public decimal? BrkQtyOne { get; set; }
public decimal? BrkQtyTwo { get; set; }
public decimal? BrkQtyThree { get; set; }
public decimal? BrkQtyFour { get; set; }
public decimal? BrkQtyFive { get; set; }
public byte? Reprice { get; set; }
public string CustomerItem { get; set; }
public decimal? QtyInvoiced { get; set; }
public decimal? QtyReturned { get; set; }
public decimal? CgsTotal { get; set; }
public string FeatStr { get; set; }
public string Status { get; set; }
public string CustomerNumber { get; set; }
public int? CustomerSequence { get; set; }
public decimal? PrgBillTot { get; set; }
public decimal? PrgBillApp { get; set; }
public DateTime? ReleaseDate { get; set; }
public DateTime? PromiseDate { get; set; }
public string Warehouse { get; set; }
public string WksBasis { get; set; }
public decimal? WksValue { get; set; }
public string CommCode { get; set; }
public string TransNat { get; set; }
public string ProcessInd { get; set; }
public string DelTerm { get; set; }
public decimal? UnitWeight { get; set; }
public string Origin { get; set; }
public int? ConsNumber { get; set; }
public string TaxCodeOne { get; set; }
public string TaxCodeTwo { get; set; }
public decimal? ExportValue { get; set; }
public string EcCode { get; set; }
public string Transport { get; set; }
public DateTime? PickupDate { get; set; }
public string PriceCode { get; set; }
public string Uom { get; set; }
public decimal? QtyOrderedReleased { get; set; }
public decimal? PriceReleased { get; set; }
public string CustomerOrderCustomerNumber { get; set; }
public byte? Packed { get; set; }
public byte? Bol { get; set; }
public decimal? QtyBco { get; set; }
public string BcoCode { get; set; }
public string ExternalRef { get; set; }
public string CustomerPoNumber { get; set; }
public string NonApplyData { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string Description { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
public string TransNatTwo { get; set; }
public decimal SupplyQtyConvFactor { get; set; }
public string UfFkrEdiAddIntDest { get; set; }
public string UfFkrEdiCustPoLineNum { get; set; }
public string UfFkrEdiPlaceOrPortDischarge { get; set; }
public string RoutingCode { get; set; }
public string DeliveryCallNumber { get; set; }
public string UnloadingPoint { get; set; }
public string DestinationPoint { get; set; }
public string NewStatus { get; set; }
public string PalletCode { get; set; }
public string PalletNumber { get; set; }
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class EdiCustomerOrderTranslate
{
public int Id { get; set; }
public byte CoEdiOrder { get; set; }
public Guid CoRowPointer { get; set; }
public string CoCoNum { get; set; }
public string CoType { get; set; }
public string CoTakenBy { get; set; }
public string EdiCoCoNum { get; set; }
public int OrdersCount { get; set; }
public bool OrderFound { get; set; }
public DateTime CreatedDate { get; set; }
public string FoundNumbers { get; set; }
public int ScheduleOrderId { get; set; }
}
}

View File

@@ -0,0 +1,6 @@
namespace SytelineSaAppEfDataModel.Entities
{
public class EntityBase
{
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SytelineSaAppEfDataModel.Entities
{
public class ErrorLog
{
public string TrxNum { get; set; }
public short Seq { get; set; }
public int LineNum { get; set; }
public int ReleaseNum { get; set; }
public DateTime? ErrDate { get; set; }
public short? ErrNum { get; set; }
public string ErrMsg { get; set; }
public string TrxCode { get; set; }
public byte NoteExistsFlag { get; set; }
public DateTime RecordDate { get; set; }
public Guid RowPointer { get; set; }
public string CreatedBy { get; set; }
public string UpdatedBy { get; set; }
public DateTime CreateDate { get; set; }
public byte InWorkflow { get; set; }
}
}

View File

@@ -0,0 +1,26 @@
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Entities;
namespace SytelineSaAppEfDataModel
{
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<EntityBase, DtoBase>().ReverseMap();
CreateMap<EdiCustomerOrder, EdiCustomerOrderDto>().ReverseMap();
CreateMap<EdiCustomerOrderLine, EdiCustomerOrderLineDto>().ReverseMap();
CreateMap<EdiCustomerOrderLineItem, EdiCustomerOrderLineItemDto>().ReverseMap();
CreateMap<EdiCustomerOrderTranslate, EdiCustomerOrderTranslateDto>().ReverseMap();
CreateMap<ErrorLog, ErrorLogDto>().ReverseMap();
CreateMap<CustomerOrder, CustomerOrderDto>().ReverseMap();
CreateMap<CustomerOrderLine, CustomerOrderLineDto>().ReverseMap();
}
}
}

View File

@@ -0,0 +1,41 @@
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using SytelineSaAppEfDataModel.Dtos;
namespace SytelineSaAppEfDataModel.Services
{
public class CustomerOrderService(SytelineSaAppDbContext context, IMapper mapper) : ICustomerOrderService
{
public async Task<IEnumerable<CustomerOrderDto>> GetAll()
{
return await context.CustomerOrders.Select(x => mapper.Map<CustomerOrderDto>(x))
.OrderByDescending(x => x.CreateDate).ToListAsync();
}
public async Task<CustomerOrderDto?> GetByOrderNumber(string orderNumber)
{
CustomerOrderDto? customerOrder = await context.CustomerOrders
.Where(x => x.CoNum == orderNumber)
.Select(x => mapper.Map<CustomerOrderDto>(x)).FirstOrDefaultAsync();
if (customerOrder == null) return null;
customerOrder.CustomerOrderLines = await context.CustomerOrderLines
.Where(x => x.CoNum == orderNumber)
.Select(x => mapper.Map<CustomerOrderLineDto>(x)).ToListAsync();
foreach (CustomerOrderLineDto customerOrderLine in customerOrder.CustomerOrderLines)
{
customerOrderLine.CustomerOrderLineItems = await context.CustomerOrderLineItems
.Where(x => x.CoNum == orderNumber && x.CoLine == customerOrderLine.CoLine)
.Select(x => mapper.Map<CustomerOrderLineItemDto>(x)).ToListAsync();
}
return customerOrder;
}
}
}

View File

@@ -0,0 +1,114 @@
using AutoMapper;
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using System.Data;
using SytelineSaAppEfDataModel.Dtos;
using SytelineSaAppEfDataModel.Entities;
namespace SytelineSaAppEfDataModel.Services
{
public class EdiCustomerOrderService(SytelineSaAppDbContext context, IMapper mapper) : IEdiCustomerOrderService
{
public async Task<IEnumerable<EdiCustomerOrderDto>> GetAll()
{
IList<EdiCustomerOrderTranslateDto> ediCustomerOrderTranslates = await context.EdiCustomerOrderTranslates
.Select(x => mapper.Map<EdiCustomerOrderTranslateDto>(x)).ToListAsync();
IList<EdiCustomerOrderDto> ediCustomerOrders =
await context.EdiCustomerOrders.Select(x => mapper.Map<EdiCustomerOrderDto>(x)).ToListAsync();
IDictionary<string, List<EdiCustomerOrderTranslateDto>> ediTranslatesByCoNumber = ediCustomerOrderTranslates
.GroupBy(x => x.EdiCoCoNum).ToDictionary(x => x.Key, y => y.ToList());
foreach (EdiCustomerOrderDto ediCustomerOrder in ediCustomerOrders)
{
if (!ediTranslatesByCoNumber.TryGetValue(ediCustomerOrder.CustomerOrderNumber,
out List<EdiCustomerOrderTranslateDto>? customerOrderTranslates)) continue;
customerOrderTranslates = customerOrderTranslates.OrderByDescending(x => x.CreatedDate).ToList();
ediCustomerOrder.EdiCustomerOrderTranslates = customerOrderTranslates;
}
return ediCustomerOrders;
}
public async Task<IEnumerable<EdiCustomerOrderDto?>> GetByDate(DateTime date)
{
IList<EdiCustomerOrderDto?> customerOrders = new List<EdiCustomerOrderDto?>();
IList<string> orderNumbers = await context.EdiCustomerOrders.Where(x => x.CreateDate > date)
.Select(x => x.CustomerOrderNumber).ToListAsync();
foreach (string orderNumber in orderNumbers)
{
customerOrders.Add(await GetByOrderNumber(orderNumber));
}
return customerOrders;
}
public async Task<EdiCustomerOrderDto?> GetByOrderNumber(string customerOrderNumber)
{
IList<EdiCustomerOrderLineDto> ediCustomerOrderLines = await context.EdiCustomerOrderLines
.Where(x => x.CustomerOrderNumber == customerOrderNumber)
.Select(x => mapper.Map<EdiCustomerOrderLineDto>(x)).ToListAsync();
foreach (EdiCustomerOrderLineDto ediCustomerOrderLine in ediCustomerOrderLines)
{
ediCustomerOrderLine.EdiCustomerOrderLineItems = await context.EdiCustomerOrderLineItems
.Where(x => x.CustomerOrderNumber == customerOrderNumber &&
x.CustomerOrderLine == ediCustomerOrderLine.CustomerOrderLine)
.Select(x => mapper.Map<EdiCustomerOrderLineItemDto>(x)).ToListAsync();
}
EdiCustomerOrderDto ediCustomerOrder = mapper.Map<EdiCustomerOrderDto>(
await context.EdiCustomerOrders.FirstOrDefaultAsync(x => x.CustomerOrderNumber == customerOrderNumber));
if (ediCustomerOrder == null)
{
return null;
}
IList<EdiCustomerOrderTranslateDto> ediCustomerOrderTranslates = await context.EdiCustomerOrderTranslates
.Where(x => x.EdiCoCoNum == ediCustomerOrder.CustomerOrderNumber)
.Select(x => mapper.Map<EdiCustomerOrderTranslateDto>(x)).ToListAsync();
ediCustomerOrder.EdiCustomerOrderLines = ediCustomerOrderLines;
ediCustomerOrder.EdiCustomerOrderTranslates = ediCustomerOrderTranslates;
return ediCustomerOrder;
}
public async Task<int> SendOrderToSyteline(string customerOrderNumber)
{
var ediCoNum = new SqlParameter("@PEdiCoNum", SqlDbType.NVarChar, 50) { Value = customerOrderNumber };
var ediCoCount = new SqlParameter("@PEdiCoCount", SqlDbType.Int) { Value = 0, Direction = ParameterDirection.Output };
var postedCount = new SqlParameter("@PPostedCount", SqlDbType.Int) { Value = 0, Direction = ParameterDirection.Output };
var infoBar = new SqlParameter("@Infobar", SqlDbType.NVarChar, 2800) { Value = "", Direction = ParameterDirection.Output };
var autoPost = new SqlParameter("@AutoPost", SqlDbType.Int) { Value = 0 };
var processId = new SqlParameter("@ProcessId", SqlDbType.Int) { Value = 423456 };
await context.Database.ExecuteSqlRawAsync(
"EXEC [dbo].[FKR_EDI_EXTGEN_EdiInOrderPSp] @PEdiCoNum, @PEdiCoCount OUT, @PPostedCount OUT, @Infobar OUT, @AutoPost, @ProcessId",
ediCoNum, ediCoCount, postedCount, infoBar, autoPost, processId);
//var result = await context.Database.ExecuteSqlRawAsync(
// "EXEC [dbo].[FKR_EDI_EXTGEN_EdiInOrderPSp] @PEdiCoNum, @PEdiCoCount, @PPostedCount, @Infobar, @AutoPost, @ProcessId",
// parameter1, parameter2, parameter3, parameter4, parameter5, parameter6);
string? infoBarResult = infoBar.Value?.ToString();
int ediCoCountResult = Convert.ToInt32(ediCoCount.Value);
int postedCountResult = Convert.ToInt32(postedCount.Value);
Console.WriteLine($"EDI Co Num: {infoBarResult}");
Console.WriteLine($"EDI Co Count: {ediCoCountResult}");
Console.WriteLine($"Posted Count: {postedCountResult}");
return postedCountResult;
//// Jeśli chcesz pobrać wyniki procedury składowanej:
//var results = context.SomeEntity.FromSqlRaw(
// "EXEC YourStoredProcedure @Param1, @Param2",
// parameter1, parameter2).ToList();
}
}
}

View File

@@ -0,0 +1,25 @@
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SytelineSaAppEfDataModel.Dtos;
namespace SytelineSaAppEfDataModel.Services
{
public class ErrorLogService(SytelineSaAppDbContext context, IMapper mapper) : IErrorLogService
{
public async Task<IEnumerable<ErrorLogDto>> GetAll()
{
return await context.ErrorLogs.Select(x => mapper.Map<ErrorLogDto>(x)).ToListAsync();
}
public async Task<IEnumerable<ErrorLogDto>> GetByOrderNumber(string customerOrderNumber)
{
return await context.ErrorLogs.Where(x => x.TrxNum == customerOrderNumber)
.Select(x => mapper.Map<ErrorLogDto>(x)).ToListAsync();
}
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SytelineSaAppEfDataModel.Dtos;
namespace SytelineSaAppEfDataModel.Services
{
public interface ICustomerOrderService
{
Task<IEnumerable<CustomerOrderDto>> GetAll();
Task<CustomerOrderDto?> GetByOrderNumber(string orderNumber);
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SytelineSaAppEfDataModel.Dtos;
namespace SytelineSaAppEfDataModel.Services
{
public interface IEdiCustomerOrderService
{
Task<IEnumerable<EdiCustomerOrderDto>> GetAll();
Task<IEnumerable<EdiCustomerOrderDto?>> GetByDate(DateTime date);
Task<EdiCustomerOrderDto?> GetByOrderNumber(string orderNumber);
Task<int> SendOrderToSyteline(string customerOrderNumber);
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SytelineSaAppEfDataModel.Dtos;
namespace SytelineSaAppEfDataModel.Services
{
public interface IErrorLogService
{
Task<IEnumerable<ErrorLogDto>> GetAll();
Task<IEnumerable<ErrorLogDto>> GetByOrderNumber(string customerOrderNumber);
}
}

View File

@@ -0,0 +1,631 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using SytelineSaAppEfDataModel.Entities;
namespace SytelineSaAppEfDataModel
{
public class SytelineSaAppDbContext : DbContext
{
public SytelineSaAppDbContext(DbContextOptions<SytelineSaAppDbContext> options) : base(options) { }
public DbSet<EdiCustomerOrder> EdiCustomerOrders { get; set; }
public DbSet<EdiCustomerOrderLine> EdiCustomerOrderLines { get; set; }
public DbSet<EdiCustomerOrderLineItem> EdiCustomerOrderLineItems { get; set; }
public DbSet<EdiCustomerOrderTranslate> EdiCustomerOrderTranslates { get; set; }
public DbSet<ErrorLog> ErrorLogs { get; set; }
public DbSet<CustomerOrder> CustomerOrders { get; set; }
public DbSet<CustomerOrderLine> CustomerOrderLines { get; set; }
public DbSet<CustomerOrderLineItem> CustomerOrderLineItems { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var connectionString = configuration.GetConnectionString("SytelineSaAppConnection");
optionsBuilder.UseSqlServer(connectionString, options => options.CommandTimeout(300));
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<EdiCustomerOrder>(entity =>
{
entity.ToTable("edi_co");
entity.HasKey(e => e.RowPointer);
entity.Property(e => e.TransactionCode).IsRequired(false).HasColumnName("trx_code").HasMaxLength(8);
entity.Property(e => e.TpCode).IsRequired(false).HasColumnName("tp_code").HasMaxLength(40);
entity.Property(e => e.RecivedDate).IsRequired(false).HasColumnName("recv_date");
entity.Property(e => e.Posted).IsRequired(false).HasColumnName("posted");
entity.Property(e => e.PostedDate).IsRequired(false).HasColumnName("post_date");
entity.Property(e => e.ExtendedDate).IsRequired(false).HasColumnName("ext_date");
entity.Property(e => e.ErrorMessage).IsRequired(false).HasColumnName("errmsg");
entity.Property(e => e.Override).IsRequired(false).HasColumnName("override");
entity.Property(e => e.Ack).IsRequired(false).HasColumnName("ack");
entity.Property(e => e.AckNumber).IsRequired(false).HasColumnName("ack_num").HasMaxLength(7);
entity.Property(e => e.AckSequence).IsRequired(false).HasColumnName("ack_seq");
entity.Property(e => e.AckType).IsRequired(false).HasColumnName("ack_type").HasMaxLength(2);
entity.Property(e => e.AckDate).IsRequired(false).HasColumnName("ack_date");
entity.Property(e => e.SymbolicCustomerOrderNumber).IsRequired(false).HasColumnName("sym_co_num").HasMaxLength(10);
entity.Property(e => e.BlanketDollar).IsRequired(false).HasColumnName("blnkt_dollar");
entity.Property(e => e.Type).IsRequired(false).HasColumnName("type").HasMaxLength(1);
entity.Property(e => e.CustomerOrderNumber).IsRequired(false).HasColumnName("co_num").HasMaxLength(10).IsRequired();
entity.Property(e => e.EstimatedNumber).IsRequired(false).HasColumnName("est_num").HasMaxLength(10);
entity.Property(e => e.CustomerNumber).IsRequired(false).HasColumnName("cust_num").HasMaxLength(7);
entity.Property(e => e.CustomerSequence).IsRequired(false).HasColumnName("cust_seq");
entity.Property(e => e.Contact).IsRequired(false).HasColumnName("contact").HasMaxLength(30);
entity.Property(e => e.Phone).IsRequired(false).HasColumnName("phone").HasMaxLength(25);
entity.Property(e => e.CustomerPoNumber).IsRequired(false).HasColumnName("cust_po").HasMaxLength(22);
entity.Property(e => e.OrderDate).IsRequired(false).HasColumnName("order_date");
entity.Property(e => e.TakenBy).IsRequired(false).HasColumnName("taken_by").HasMaxLength(15);
entity.Property(e => e.TermsCode).IsRequired(false).HasColumnName("terms_code").HasMaxLength(3);
entity.Property(e => e.ShipCode).IsRequired(false).HasColumnName("ship_code").HasMaxLength(4);
entity.Property(e => e.Price).IsRequired(false).HasColumnName("price");
entity.Property(e => e.Weight).IsRequired(false).HasColumnName("weight");
entity.Property(e => e.QtyPackages).IsRequired(false).HasColumnName("qty_packages");
entity.Property(e => e.Freight).IsRequired(false).HasColumnName("freight");
entity.Property(e => e.MiscCharges).IsRequired(false).HasColumnName("misc_charges");
entity.Property(e => e.PrepaidAmount).IsRequired(false).HasColumnName("prepaid_amt");
entity.Property(e => e.SalesTax).IsRequired(false).HasColumnName("sales_tax");
entity.Property(e => e.Status).IsRequired(false).HasColumnName("stat").HasMaxLength(1);
entity.Property(e => e.Cost).IsRequired(false).HasColumnName("cost");
entity.Property(e => e.CloseDate).IsRequired(false).HasColumnName("close_date");
entity.Property(e => e.FreightT).IsRequired(false).HasColumnName("freight_t");
entity.Property(e => e.MchargesT).IsRequired(false).HasColumnName("m_charges_t");
entity.Property(e => e.PrepaidT).IsRequired(false).HasColumnName("prepaid_t");
entity.Property(e => e.SalesTaxT).IsRequired(false).HasColumnName("sales_tax_t");
entity.Property(e => e.Salesman).IsRequired(false).HasColumnName("slsman").HasMaxLength(8);
entity.Property(e => e.EffectiveDate).IsRequired(false).HasColumnName("eff_date");
entity.Property(e => e.ExpirationDate).IsRequired(false).HasColumnName("exp_date");
entity.Property(e => e.Warehouse).IsRequired(false).HasColumnName("whse").HasMaxLength(4);
entity.Property(e => e.SalesTaxTwo).IsRequired(false).HasColumnName("sales_tax_2");
entity.Property(e => e.SalesTaxTwoT).IsRequired(false).HasColumnName("sales_tax_t2");
entity.Property(e => e.CharFieldOne).IsRequired(false).HasColumnName("charfld1").HasMaxLength(20);
entity.Property(e => e.CharFieldTwo).IsRequired(false).HasColumnName("charfld2").HasMaxLength(20);
entity.Property(e => e.CharFieldThree).IsRequired(false).HasColumnName("charfld3").HasMaxLength(20);
entity.Property(e => e.DateField).IsRequired(false).HasColumnName("datefld");
entity.Property(e => e.DecimalFieldOne).IsRequired(false).HasColumnName("decifld1");
entity.Property(e => e.DecimalFieldTwo).IsRequired(false).HasColumnName("decifld2");
entity.Property(e => e.DecimalFieldThree).IsRequired(false).HasColumnName("decifld3");
entity.Property(e => e.LogiField).IsRequired(false).HasColumnName("logifld");
entity.Property(e => e.EdiOrder).IsRequired(false).HasColumnName("edi_order");
entity.Property(e => e.TransactionNat).IsRequired(false).HasColumnName("trans_nat").HasMaxLength(2);
entity.Property(e => e.ProcessInd).IsRequired(false).HasColumnName("process_ind").HasMaxLength(1);
entity.Property(e => e.DelTerm).IsRequired(false).HasColumnName("delterm").HasMaxLength(4);
entity.Property(e => e.UseExchangeRate).IsRequired(false).HasColumnName("use_exch_rate");
entity.Property(e => e.TaxCodeOne).IsRequired(false).HasColumnName("tax_code1").HasMaxLength(6);
entity.Property(e => e.TaxCodeTwo).IsRequired(false).HasColumnName("tax_code2").HasMaxLength(6);
entity.Property(e => e.FreightTaxCodeOne).IsRequired(false).HasColumnName("frt_tax_code1").HasMaxLength(6);
entity.Property(e => e.FreightTaxCodeTwo).IsRequired(false).HasColumnName("frt_tax_code2").HasMaxLength(6);
entity.Property(e => e.MscTaxCodeOne).IsRequired(false).HasColumnName("msc_tax_code1").HasMaxLength(6);
entity.Property(e => e.MscTaxCodeTwo).IsRequired(false).HasColumnName("msc_tax_code2").HasMaxLength(6);
entity.Property(e => e.Discount).IsRequired(false).HasColumnName("disc");
entity.Property(e => e.PriceCode).IsRequired(false).HasColumnName("pricecode").HasMaxLength(3);
entity.Property(e => e.ShipPartial).IsRequired(false).HasColumnName("ship_partial");
entity.Property(e => e.ShipEarly).IsRequired(false).HasColumnName("ship_early");
entity.Property(e => e.NonApplyData).IsRequired(false).HasColumnName("non_appl_data").HasMaxLength(75);
entity.Property(e => e.NoteExistsFlag).HasColumnName("NoteExistsFlag");
entity.Property(e => e.RecordDate).HasColumnName("RecordDate");
entity.Property(e => e.RowPointer).HasColumnName("RowPointer");
entity.Property(e => e.CreatedBy).IsRequired(false).HasColumnName("CreatedBy").HasMaxLength(30).IsRequired();
entity.Property(e => e.UpdatedBy).IsRequired(false).HasColumnName("UpdatedBy").HasMaxLength(30).IsRequired();
entity.Property(e => e.CreateDate).HasColumnName("CreateDate");
entity.Property(e => e.InWorkflow).HasColumnName("InWorkflow");
entity.Property(e => e.DiscountType).IsRequired(false).HasColumnName("discount_type").HasMaxLength(1);
entity.Property(e => e.DiscountAmount).IsRequired(false).HasColumnName("disc_amount");
entity.Property(e => e.TransNatTwo).IsRequired(false).HasColumnName("trans_nat_2").HasMaxLength(2);
entity.Property(e => e.UfFkrEdiMessageRefNum).IsRequired(false).HasColumnName("uf_FKR_EDI_MessageRefNum").HasMaxLength(35);
entity.Property(e => e.UfFkrEdiConsigneeAddress).IsRequired(false).HasColumnName("Uf_FKR_EDI_ConsigneeAddress").HasMaxLength(35);
entity.Property(e => e.UfFkrEdiConsigneeName).IsRequired(false).HasColumnName("Uf_FKR_EDI_ConsigneeName").HasMaxLength(35);
entity.Property(e => e.UfFkrEdiFileName).IsRequired(false).HasColumnName("Uf_FKR_EDI_FileName");
entity.Property(e => e.UfFkrEdiBuyerDunsNumber).IsRequired(false).HasColumnName("uf_FKR_EDI_BuyerDunsNumber").HasMaxLength(35);
entity.Property(e => e.Gate).IsRequired(false).HasColumnName("Uf_FKR_EDI_Gate").HasMaxLength(255);
entity.Property(e => e.CustomerName).IsRequired(false).HasColumnName("Uf_FKR_EDI_CustName").HasMaxLength(255);
entity.Property(e => e.RecipientCode).IsRequired(false).HasColumnName("Uf_FKR_EDI_RecipientCode").HasMaxLength(50);
entity.Property(e => e.SenderCode).IsRequired(false).HasColumnName("Uf_FKR_EDI_SenderCode").HasMaxLength(50);
entity.Property(e => e.SellerCode).IsRequired(false).HasColumnName("Uf_FKR_EDI_SellerCode").HasMaxLength(50);
entity.Property(e => e.DocType).IsRequired(false).HasColumnName("Uf_DocType").HasMaxLength(50);
entity.Property(e => e.BuyerCode).IsRequired(false).HasColumnName("Uf_FKR_EDI_BuyerCode").HasMaxLength(50);
});
modelBuilder.Entity<EdiCustomerOrderLine>(entity =>
{
entity.ToTable("edi_cobln");
entity.HasKey(e => e.RowPointer);
entity.Property(e => e.CustomerOrderNumber).IsRequired(false).HasColumnName("co_num").HasMaxLength(10).IsRequired();
entity.Property(e => e.CustomerOrderLine).HasColumnType("smallint").HasColumnName("co_line").IsRequired();
entity.Property(e => e.Item).IsRequired(false).HasColumnName("item").HasMaxLength(30);
entity.Property(e => e.CustomerItemNumber).IsRequired(false).HasColumnName("cust_item").HasMaxLength(30);
entity.Property(e => e.FeatStr).IsRequired(false).HasColumnName("feat_str").HasMaxLength(40);
entity.Property(e => e.BlanketQty).IsRequired(false).HasColumnName("blanket_qty");
entity.Property(e => e.EffectiveDate).HasColumnName("eff_date");
entity.Property(e => e.ExpirationDate).HasColumnName("exp_date");
entity.Property(e => e.ContPrice).IsRequired(false).HasColumnName("cont_price");
entity.Property(e => e.Status).IsRequired(false).HasColumnName("stat").HasMaxLength(1);
entity.Property(e => e.PromiseDate).HasColumnName("promise_date");
entity.Property(e => e.PriceCode).IsRequired(false).HasColumnName("pricecode").HasMaxLength(3);
entity.Property(e => e.Uom).IsRequired(false).HasColumnName("u_m").HasMaxLength(3);
entity.Property(e => e.BlanketQtyReleased).IsRequired(false).HasColumnName("blanket_qty_conv");
entity.Property(e => e.ContPriceReleased).IsRequired(false).HasColumnName("cont_price_conv");
entity.Property(e => e.QtySent).IsRequired(false).HasColumnName("qty_bco");
entity.Property(e => e.SentCode).IsRequired(false).HasColumnName("bco_code").HasMaxLength(1);
entity.Property(e => e.NonAppliedData).IsRequired(false).HasColumnName("non_appl_data").HasMaxLength(75);
entity.Property(e => e.NoteExistsFlag).HasColumnName("NoteExistsFlag");
entity.Property(e => e.RecordDate).HasColumnName("RecordDate");
entity.Property(e => e.RowPointer).HasColumnName("RowPointer");
entity.Property(e => e.Description).IsRequired(false).HasColumnName("description").HasMaxLength(40);
entity.Property(e => e.CreatedBy).IsRequired(false).HasColumnName("CreatedBy").HasMaxLength(30).IsRequired();
entity.Property(e => e.UpdatedBy).IsRequired(false).HasColumnName("UpdatedBy").HasMaxLength(30).IsRequired();
entity.Property(e => e.CreateDate).HasColumnName("CreateDate");
entity.Property(e => e.InWorkflow).HasColumnName("InWorkflow");
entity.Property(e => e.BoxType).IsRequired(false).HasColumnName("Uf_FKR_EDI_BLN_BoxType").HasMaxLength(150);
entity.Property(e => e.Address).IsRequired(false).HasColumnName("Uf_FKR_EDI_BLN_Address").HasMaxLength(100);
entity.Property(e => e.FinalDestination).IsRequired(false).HasColumnName("Uf_FKR_EDI_BLN_FinalDestination").HasMaxLength(100);
entity.Property(e => e.QtyPerBox).IsRequired(false).HasColumnName("Uf_FKR_EDI_BLN_QtyPerBox");
});
modelBuilder.Entity<EdiCustomerOrderLineItem>(entity =>
{
entity.ToTable("edi_coitem");
entity.HasKey(e => e.RowPointer);
entity.Property(e => e.TransactionCode).IsRequired(false).HasColumnName("trx_code").HasMaxLength(8);
entity.Property(e => e.ReceivedDate).HasColumnName("recv_date");
entity.Property(e => e.Posted).IsRequired(false).HasColumnName("posted");
entity.Property(e => e.PostedDate).HasColumnName("post_date");
entity.Property(e => e.ExtendedDate).HasColumnName("ext_date");
entity.Property(e => e.ErrorMessage).IsRequired(false).HasColumnName("errmsg");
entity.Property(e => e.Override).IsRequired(false).HasColumnName("override");
entity.Property(e => e.Edi).IsRequired(false).HasColumnName("edi");
entity.Property(e => e.Ack).IsRequired(false).HasColumnName("ack");
entity.Property(e => e.AckNumber).IsRequired(false).HasColumnName("ack_num").HasMaxLength(7);
entity.Property(e => e.AckType).IsRequired(false).HasColumnName("ack_type").HasMaxLength(2);
entity.Property(e => e.AckDate).HasColumnName("ack_date");
entity.Property(e => e.SymCustomerOrderNumber).IsRequired(false).HasColumnName("sym_co_num").HasMaxLength(10);
entity.Property(e => e.QtyChanged).IsRequired(false).HasColumnName("qty_chg");
entity.Property(e => e.DateChanged).IsRequired(false).HasColumnName("date_chg");
entity.Property(e => e.PriceChanged).IsRequired(false).HasColumnName("price_chg");
entity.Property(e => e.CustomerOrderNumber).HasColumnName("co_num").HasMaxLength(10).IsRequired();
entity.Property(e => e.CustomerOrderLine).HasColumnType("smallint").HasColumnName("co_line").IsRequired();
entity.Property(e => e.CustomerOrderRelease).HasColumnType("smallint").HasColumnName("co_release").IsRequired();
entity.Property(e => e.Item).IsRequired(false).HasColumnName("item").HasMaxLength(30);
entity.Property(e => e.QtyOrdered).IsRequired(false).HasColumnName("qty_ordered");
entity.Property(e => e.QtyReady).IsRequired(false).HasColumnName("qty_ready");
entity.Property(e => e.QtyShipped).IsRequired(false).HasColumnName("qty_shipped");
entity.Property(e => e.QtyPacked).IsRequired(false).HasColumnName("qty_packed");
entity.Property(e => e.Discount).IsRequired(false).HasColumnName("disc");
entity.Property(e => e.Cost).IsRequired(false).HasColumnName("cost");
entity.Property(e => e.Price).IsRequired(false).HasColumnName("price");
entity.Property(e => e.RefType).IsRequired(false).HasColumnName("ref_type").HasMaxLength(1);
entity.Property(e => e.RefNumber).IsRequired(false).HasColumnName("ref_num").HasMaxLength(10);
entity.Property(e => e.RefLineSuf).IsRequired(false).HasColumnName("ref_line_suf");
entity.Property(e => e.RefRelease).IsRequired(false).HasColumnName("ref_release");
entity.Property(e => e.DueDate).HasColumnName("due_date");
entity.Property(e => e.ShipDate).HasColumnName("ship_date");
entity.Property(e => e.BrkQtyOne).IsRequired(false).HasColumnName("brk_qty##1");
entity.Property(e => e.BrkQtyTwo).IsRequired(false).HasColumnName("brk_qty##2");
entity.Property(e => e.BrkQtyThree).IsRequired(false).HasColumnName("brk_qty##3");
entity.Property(e => e.BrkQtyFour).IsRequired(false).HasColumnName("brk_qty##4");
entity.Property(e => e.BrkQtyFive).IsRequired(false).HasColumnName("brk_qty##5");
entity.Property(e => e.Reprice).IsRequired(false).HasColumnName("reprice");
entity.Property(e => e.CustomerItem).IsRequired(false).HasColumnName("cust_item").HasMaxLength(30);
entity.Property(e => e.QtyInvoiced).IsRequired(false).HasColumnName("qty_invoiced");
entity.Property(e => e.QtyReturned).IsRequired(false).HasColumnName("qty_returned");
entity.Property(e => e.CgsTotal).IsRequired(false).HasColumnName("cgs_total");
entity.Property(e => e.FeatStr).IsRequired(false).HasColumnName("feat_str").HasMaxLength(40);
entity.Property(e => e.Status).IsRequired(false).HasColumnName("stat").HasMaxLength(1);
entity.Property(e => e.CustomerNumber).IsRequired(false).HasColumnName("cust_num").HasMaxLength(7);
entity.Property(e => e.CustomerSequence).IsRequired(false).HasColumnName("cust_seq");
entity.Property(e => e.PrgBillTot).IsRequired(false).HasColumnName("prg_bill_tot");
entity.Property(e => e.PrgBillApp).IsRequired(false).HasColumnName("prg_bill_app");
entity.Property(e => e.ReleaseDate).HasColumnName("release_date");
entity.Property(e => e.PromiseDate).HasColumnName("promise_date");
entity.Property(e => e.Warehouse).IsRequired(false).HasColumnName("whse").HasMaxLength(4);
entity.Property(e => e.WksBasis).IsRequired(false).HasColumnName("wks_basis").HasMaxLength(1);
entity.Property(e => e.WksValue).IsRequired(false).HasColumnName("wks_value");
entity.Property(e => e.CommCode).IsRequired(false).HasColumnName("comm_code").HasMaxLength(12);
entity.Property(e => e.TransNat).IsRequired(false).HasColumnName("trans_nat").HasMaxLength(2);
entity.Property(e => e.ProcessInd).IsRequired(false).HasColumnName("process_ind").HasMaxLength(1);
entity.Property(e => e.DelTerm).IsRequired(false).HasColumnName("delterm").HasMaxLength(4);
entity.Property(e => e.UnitWeight).IsRequired(false).HasColumnName("unit_weight");
entity.Property(e => e.Origin).IsRequired(false).HasColumnName("origin").HasMaxLength(2);
entity.Property(e => e.ConsNumber).IsRequired(false).HasColumnName("cons_num");
entity.Property(e => e.TaxCodeOne).IsRequired(false).HasColumnName("tax_code1").HasMaxLength(6);
entity.Property(e => e.TaxCodeTwo).IsRequired(false).HasColumnName("tax_code2").HasMaxLength(6);
entity.Property(e => e.ExportValue).IsRequired(false).HasColumnName("export_value");
entity.Property(e => e.EcCode).IsRequired(false).HasColumnName("ec_code").HasMaxLength(2);
entity.Property(e => e.Transport).IsRequired(false).HasColumnName("transport").HasMaxLength(3);
entity.Property(e => e.PickupDate).HasColumnName("pick_date");
entity.Property(e => e.PriceCode).IsRequired(false).HasColumnName("pricecode").HasMaxLength(3);
entity.Property(e => e.Uom).IsRequired(false).HasColumnName("u_m").HasMaxLength(3);
entity.Property(e => e.QtyOrderedReleased).IsRequired(false).HasColumnName("qty_ordered_conv");
entity.Property(e => e.PriceReleased).IsRequired(false).HasColumnName("price_conv");
entity.Property(e => e.CustomerOrderCustomerNumber).IsRequired(false).HasColumnName("co_cust_num").HasMaxLength(7);
entity.Property(e => e.Packed).IsRequired(false).HasColumnName("packed");
entity.Property(e => e.Bol).IsRequired(false).HasColumnName("bol");
entity.Property(e => e.QtyBco).IsRequired(false).HasColumnName("qty_bco");
entity.Property(e => e.BcoCode).IsRequired(false).HasColumnName("bco_code").HasMaxLength(1);
entity.Property(e => e.ExternalRef).IsRequired(false).HasColumnName("ext_ref").HasMaxLength(6);
entity.Property(e => e.CustomerPoNumber).IsRequired(false).HasColumnName("cust_po").HasMaxLength(22);
entity.Property(e => e.NonApplyData).IsRequired(false).HasColumnName("non_appl_data").HasMaxLength(75);
entity.Property(e => e.NoteExistsFlag).HasColumnName("NoteExistsFlag");
entity.Property(e => e.RecordDate).HasColumnName("RecordDate");
entity.Property(e => e.RowPointer).HasColumnName("RowPointer");
entity.Property(e => e.Description).IsRequired(false).HasColumnName("description").HasMaxLength(40);
entity.Property(e => e.CreatedBy).IsRequired(false).HasColumnName("CreatedBy").HasMaxLength(30).IsRequired();
entity.Property(e => e.UpdatedBy).IsRequired(false).HasColumnName("UpdatedBy").HasMaxLength(30).IsRequired();
entity.Property(e => e.CreateDate).HasColumnName("CreateDate");
entity.Property(e => e.InWorkflow).HasColumnName("InWorkflow");
entity.Property(e => e.TransNatTwo).IsRequired(false).HasColumnName("trans_nat_2").HasMaxLength(2);
entity.Property(e => e.SupplyQtyConvFactor).HasColumnName("suppl_qty_conv_factor");
entity.Property(e => e.UfFkrEdiAddIntDest).IsRequired(false).HasColumnName("uf_FKR_EDI_AddIntDest").HasMaxLength(100);
entity.Property(e => e.UfFkrEdiCustPoLineNum).IsRequired(false).HasColumnName("Uf_FKR_EDI_CustPoLineNum").HasMaxLength(100);
entity.Property(e => e.UfFkrEdiPlaceOrPortDischarge).IsRequired(false).HasColumnName("uf_FKR_EDI_PlaceOrPortDischarge").HasMaxLength(100);
entity.Property(e => e.RoutingCode).IsRequired(false).HasColumnName("Uf_FKR_EDI_ITEM_RoutingCode").HasMaxLength(50);
entity.Property(e => e.DeliveryCallNumber).IsRequired(false).HasColumnName("Uf_FKR_EDI_ITEM_DeliveryCallNum").HasMaxLength(50);
entity.Property(e => e.UnloadingPoint).IsRequired(false).HasColumnName("Uf_LOC_11_UnloadingPoint").HasMaxLength(50);
entity.Property(e => e.DestinationPoint).IsRequired(false).HasColumnName("Uf_LOC_159_DestinationPoint").HasMaxLength(50);
entity.Property(e => e.NewStatus).IsRequired(false).HasColumnName("Uf_Status").HasMaxLength(50);
entity.Property(e => e.PalletCode).IsRequired(false).HasColumnName("Uf_pci_code").HasMaxLength(1);
entity.Property(e => e.PalletNumber).IsRequired(false).HasColumnName("Uf_FKR_EDI_ITEM_PalletCode").HasMaxLength(50);
});
modelBuilder.Entity<EdiCustomerOrderTranslate>(entity =>
{
entity.ToTable("edi_co_translate");
entity.Property(e => e.Id).HasColumnName("Id");
entity.Property(e => e.CoEdiOrder).HasColumnType("byte").HasColumnName("CoEdiOrder");
entity.Property(e => e.CoRowPointer).HasColumnName("CoRowPointer");
entity.Property(e => e.CoCoNum).HasColumnName("CoCoNum").HasMaxLength(50).IsRequired();
entity.Property(e => e.CoType).HasColumnName("CoType").HasMaxLength(1).IsRequired();
entity.Property(e => e.CoTakenBy).HasColumnName("CoTakenBy").HasMaxLength(15).IsRequired();
entity.Property(e => e.EdiCoCoNum).HasColumnName("EdiCoCoNum").HasMaxLength(10).IsRequired();
entity.Property(e => e.OrdersCount).HasColumnName("OrdersCount");
entity.Property(e => e.OrderFound).HasColumnName("OrderFound");
entity.Property(e => e.CreatedDate).HasColumnName("CreatedDate");
entity.Property(e => e.FoundNumbers).IsRequired(false).HasColumnName("FoundNumbers");
entity.Property(e => e.ScheduleOrderId).HasColumnName("ScheduleOrderId");
});
modelBuilder.Entity<ErrorLog>(entity =>
{
entity.ToTable("err_log");
entity.HasKey(e => new { e.TrxNum, e.Seq });
entity.Property(e => e.TrxNum).HasColumnName("trx_num").HasMaxLength(20);
entity.Property(e => e.LineNum).HasColumnName("line_num").HasColumnType("smallint");
entity.Property(e => e.ReleaseNum).HasColumnName("release_num").HasColumnType("smallint");
entity.Property(e => e.ErrDate).HasColumnName("err_date");
entity.Property(e => e.Seq).HasColumnName("seq");
entity.Property(e => e.ErrNum).HasColumnName("err_num");
entity.Property(e => e.ErrMsg).HasColumnName("err_msg").HasMaxLength(5600);
entity.Property(e => e.TrxCode).IsRequired(false).HasColumnName("trx_code").HasMaxLength(16);
entity.Property(e => e.NoteExistsFlag).HasColumnName("NoteExistsFlag");
entity.Property(e => e.RecordDate).HasColumnName("RecordDate");
entity.Property(e => e.RowPointer).HasColumnName("RowPointer").HasColumnType("uniqueidentifier");
entity.Property(e => e.CreatedBy).HasColumnName("CreatedBy").HasMaxLength(60);
entity.Property(e => e.UpdatedBy).HasColumnName("UpdatedBy").HasMaxLength(60);
entity.Property(e => e.CreateDate).HasColumnName("CreateDate");
entity.Property(e => e.InWorkflow).HasColumnName("InWorkflow");
});
modelBuilder.Entity<CustomerOrder>(entity =>
{
entity.ToTable("co");
entity.HasKey(e => e.CoNum);
entity.Property(e => e.Type).HasColumnName("type").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.CoNum).HasColumnName("co_num").HasMaxLength(20);
entity.Property(e => e.EstNum).HasColumnName("est_num").HasMaxLength(20).IsRequired(false);
entity.Property(e => e.CustNum).HasColumnName("cust_num").HasMaxLength(14).IsRequired(false);
entity.Property(e => e.CustSeq).HasColumnName("cust_seq");
entity.Property(e => e.Contact).HasColumnName("contact").HasMaxLength(60).IsRequired(false);
entity.Property(e => e.Phone).HasColumnName("phone").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.CustPo).HasColumnName("cust_po").HasMaxLength(44).IsRequired(false);
entity.Property(e => e.OrderDate).HasColumnName("order_date");
entity.Property(e => e.TakenBy).HasColumnName("taken_by").HasMaxLength(30).IsRequired(false);
entity.Property(e => e.TermsCode).HasColumnName("terms_code").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.ShipCode).HasColumnName("ship_code").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.Price).HasColumnName("price").IsRequired(false);
entity.Property(e => e.Weight).HasColumnName("weight").IsRequired(false);
entity.Property(e => e.QtyPackages).HasColumnName("qty_packages").HasColumnType("smallint");
entity.Property(e => e.Freight).HasColumnName("freight").IsRequired(false);
entity.Property(e => e.MiscCharges).HasColumnName("misc_charges").IsRequired(false);
entity.Property(e => e.PrepaidAmt).HasColumnName("prepaid_amt").IsRequired(false);
entity.Property(e => e.SalesTax).HasColumnName("sales_tax").IsRequired(false);
entity.Property(e => e.Stat).HasColumnName("stat").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.Cost).HasColumnName("cost").IsRequired(false);
entity.Property(e => e.CloseDate).HasColumnName("close_date").IsRequired(false);
entity.Property(e => e.FreightT).HasColumnName("freight_t").IsRequired(false);
entity.Property(e => e.MChargesT).HasColumnName("m_charges_t").IsRequired(false);
entity.Property(e => e.PrepaidT).HasColumnName("prepaid_t").IsRequired(false);
entity.Property(e => e.SalesTaxT).HasColumnName("sales_tax_t").IsRequired(false);
entity.Property(e => e.Slsman).HasColumnName("slsman").HasMaxLength(16).IsRequired(false);
entity.Property(e => e.EffDate).HasColumnName("eff_date").IsRequired(false);
entity.Property(e => e.ExpDate).HasColumnName("exp_date").IsRequired(false);
entity.Property(e => e.Whse).HasColumnName("whse").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.SalesTax2).HasColumnName("sales_tax_2").IsRequired(false);
entity.Property(e => e.SalesTaxT2).HasColumnName("sales_tax_t2").IsRequired(false);
entity.Property(e => e.EdiOrder).HasColumnName("edi_order").IsRequired(false);
entity.Property(e => e.TransNat).HasColumnName("trans_nat").HasMaxLength(4).IsRequired(false);
entity.Property(e => e.ProcessInd).HasColumnName("process_ind").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.Delterm).HasColumnName("delterm").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.UseExchRate).HasColumnName("use_exch_rate").IsRequired(false);
entity.Property(e => e.TaxCode1).HasColumnName("tax_code1").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.TaxCode2).HasColumnName("tax_code2").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.FrtTaxCode1).HasColumnName("frt_tax_code1").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.FrtTaxCode2).HasColumnName("frt_tax_code2").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.MscTaxCode1).HasColumnName("msc_tax_code1").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.MscTaxCode2).HasColumnName("msc_tax_code2").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.DiscountType).HasColumnName("discount_type").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.DiscAmount).HasColumnName("disc_amount").IsRequired(false);
entity.Property(e => e.Disc).HasColumnName("disc").IsRequired(false);
entity.Property(e => e.Pricecode).HasColumnName("pricecode").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.ShipPartial).HasColumnName("ship_partial").IsRequired(false);
entity.Property(e => e.ShipEarly).HasColumnName("ship_early").IsRequired(false);
entity.Property(e => e.MatlCostT).HasColumnName("matl_cost_t").IsRequired(false);
entity.Property(e => e.LbrCostT).HasColumnName("lbr_cost_t").IsRequired(false);
entity.Property(e => e.FovhdCostT).HasColumnName("fovhd_cost_t").IsRequired(false);
entity.Property(e => e.VovhdCostT).HasColumnName("vovhd_cost_t").IsRequired(false);
entity.Property(e => e.OutCostT).HasColumnName("out_cost_t").IsRequired(false);
entity.Property(e => e.EndUserType).HasColumnName("end_user_type").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.ExchRate).HasColumnName("exch_rate").IsRequired(false);
entity.Property(e => e.FixedRate).HasColumnName("fixed_rate").IsRequired(false);
entity.Property(e => e.OrigSite).HasColumnName("orig_site").HasMaxLength(16).IsRequired(false);
entity.Property(e => e.LcrNum).HasColumnName("lcr_num").HasMaxLength(40).IsRequired(false);
entity.Property(e => e.EdiType).HasColumnName("edi_type").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.Invoiced).HasColumnName("invoiced").IsRequired(false);
entity.Property(e => e.CreditHold).HasColumnName("credit_hold").IsRequired(false);
entity.Property(e => e.CreditHoldDate).HasColumnName("credit_hold_date").IsRequired(false);
entity.Property(e => e.CreditHoldReason).HasColumnName("credit_hold_reason").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.CreditHoldUser).HasColumnName("credit_hold_user").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.SyncReqd).HasColumnName("sync_reqd").IsRequired(false);
entity.Property(e => e.ProjectedDate).HasColumnName("projected_date").IsRequired(false);
entity.Property(e => e.OrderSource).HasColumnName("order_source").HasMaxLength(16).IsRequired(false);
entity.Property(e => e.ConvertType).HasColumnName("convert_type").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.ApsPullUp).HasColumnName("aps_pull_up").IsRequired(false);
entity.Property(e => e.Consolidate).HasColumnName("consolidate").IsRequired(false);
entity.Property(e => e.InvFreq).HasColumnName("inv_freq").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.Summarize).HasColumnName("summarize").IsRequired(false);
entity.Property(e => e.NoteExistsFlag).HasColumnName("NoteExistsFlag").HasColumnType("tinyint");
entity.Property(e => e.RecordDate).HasColumnName("RecordDate");
entity.Property(e => e.RowPointer).HasColumnName("RowPointer").HasColumnType("uniqueidentifier");
entity.Property(e => e.Einvoice).HasColumnName("einvoice").IsRequired(false);
entity.Property(e => e.Charfld1).HasColumnName("charfld1").HasMaxLength(40).IsRequired(false);
entity.Property(e => e.Charfld2).HasColumnName("charfld2").HasMaxLength(40).IsRequired(false);
entity.Property(e => e.Charfld3).HasColumnName("charfld3").HasMaxLength(40).IsRequired(false);
entity.Property(e => e.Datefld).HasColumnName("datefld").IsRequired(false);
entity.Property(e => e.Decifld1).HasColumnName("decifld1").IsRequired(false);
entity.Property(e => e.Decifld2).HasColumnName("decifld2").IsRequired(false);
entity.Property(e => e.Decifld3).HasColumnName("decifld3").IsRequired(false);
entity.Property(e => e.Logifld).HasColumnName("logifld").HasColumnType("tinyint").IsRequired(false);
entity.Property(e => e.AckStat).HasColumnName("ack_stat").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.ConfigId).HasColumnName("config_id").HasMaxLength(24).IsRequired(false);
entity.Property(e => e.CreatedBy).HasColumnName("CreatedBy").HasMaxLength(60);
entity.Property(e => e.UpdatedBy).HasColumnName("UpdatedBy").HasMaxLength(60);
entity.Property(e => e.CreateDate).HasColumnName("CreateDate");
entity.Property(e => e.InWorkflow).HasColumnName("InWorkflow").HasColumnType("tinyint");
entity.Property(e => e.IncludeTaxInPrice).HasColumnName("include_tax_in_price").IsRequired(false);
entity.Property(e => e.TransNat2).HasColumnName("trans_nat_2").HasMaxLength(4).IsRequired(false);
entity.Property(e => e.ApplyToInvNum).HasColumnName("apply_to_inv_num").HasMaxLength(24).IsRequired(false);
entity.Property(e => e.ExportType).HasColumnName("export_type").HasMaxLength(2);
entity.Property(e => e.ExternalConfirmationRef).HasColumnName("external_confirmation_ref").HasMaxLength(160).IsRequired(false);
entity.Property(e => e.IsExternal).HasColumnName("is_external").HasColumnType("tinyint");
entity.Property(e => e.ProspectId).HasColumnName("prospect_id").HasMaxLength(14).IsRequired(false);
entity.Property(e => e.OppId).HasColumnName("opp_id").HasMaxLength(20).IsRequired(false);
entity.Property(e => e.LeadId).HasColumnName("lead_id").HasMaxLength(20).IsRequired(false);
entity.Property(e => e.DaysShippedBeforeDueDateTolerance).HasColumnName("days_shipped_before_due_date_tolerance").HasColumnType("smallint");
entity.Property(e => e.DaysShippedAfterDueDateTolerance).HasColumnName("days_shipped_after_due_date_tolerance").HasColumnType("smallint");
entity.Property(e => e.ShippedOverOrderedQtyTolerance).HasColumnName("shipped_over_ordered_qty_tolerance").IsRequired(false);
entity.Property(e => e.ShippedUnderOrderedQtyTolerance).HasColumnName("shipped_under_ordered_qty_tolerance").IsRequired(false);
entity.Property(e => e.Consignment).HasColumnName("consignment").HasColumnType("tinyint");
entity.Property(e => e.Priority).HasColumnName("priority").HasColumnType("smallint");
entity.Property(e => e.DemandingSite).HasColumnName("demanding_site").HasMaxLength(16).IsRequired(false);
entity.Property(e => e.DemandingSitePoNum).HasColumnName("demanding_site_po_num").HasMaxLength(20).IsRequired(false);
entity.Property(e => e.Uf_FKR_CoContract).HasColumnName("Uf_FKR_CoContract").IsRequired(false);
entity.Property(e => e.Uf_BPX_DeliveryDate).HasColumnName("Uf_BPX_DeliveryDate").IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_CustName).HasColumnName("Uf_FKR_EDI_CustName").HasMaxLength(255).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_Gate).HasColumnName("Uf_FKR_EDI_Gate").HasMaxLength(255).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_RecipientCode).HasColumnName("Uf_FKR_EDI_RecipientCode").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_SellerCode).HasColumnName("Uf_FKR_EDI_SellerCode").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_SenderCode).HasColumnName("Uf_FKR_EDI_SenderCode").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_DocType).HasColumnName("Uf_DocType").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_BuyerCode).HasColumnName("Uf_FKR_EDI_BuyerCode").HasMaxLength(200).IsRequired(false);
});
modelBuilder.Entity<CustomerOrderLine>(entity =>
{
entity.ToTable("co_bln");
entity.HasKey(e => new { e.CoNum, e.CoLine });
entity.Property(e => e.CoNum).HasColumnName("co_num").HasMaxLength(20);
entity.Property(e => e.CoLine).HasColumnName("co_line").HasColumnType("smallint");
entity.Property(e => e.Item).HasColumnName("item").HasMaxLength(60);
entity.Property(e => e.CustItem).HasColumnName("cust_item").HasMaxLength(60).IsRequired(false);
entity.Property(e => e.FeatStr).HasColumnName("feat_str").HasMaxLength(80).IsRequired(false);
entity.Property(e => e.BlanketQty).HasColumnName("blanket_qty");
entity.Property(e => e.EffDate).HasColumnName("eff_date").IsRequired(false);
entity.Property(e => e.ExpDate).HasColumnName("exp_date").IsRequired(false);
entity.Property(e => e.ContPrice).HasColumnName("cont_price").IsRequired(false);
entity.Property(e => e.Stat).HasColumnName("stat").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.PromiseDate).HasColumnName("promise_date").IsRequired(false);
entity.Property(e => e.Pricecode).HasColumnName("pricecode").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.UM).HasColumnName("u_m").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.BlanketQtyConv).HasColumnName("blanket_qty_conv");
entity.Property(e => e.ContPriceConv).HasColumnName("cont_price_conv").IsRequired(false);
entity.Property(e => e.ShipSite).HasColumnName("ship_site").HasMaxLength(16).IsRequired(false);
entity.Property(e => e.NoteExistsFlag).HasColumnName("NoteExistsFlag").HasColumnType("tinyint");
entity.Property(e => e.RecordDate).HasColumnName("RecordDate");
entity.Property(e => e.RowPointer).HasColumnName("RowPointer").HasColumnType("uniqueidentifier");
entity.Property(e => e.Description).HasColumnName("description").HasMaxLength(80).IsRequired(false);
entity.Property(e => e.ConfigId).HasColumnName("config_id").HasMaxLength(24).IsRequired(false);
entity.Property(e => e.CreatedBy).HasColumnName("CreatedBy").HasMaxLength(60);
entity.Property(e => e.UpdatedBy).HasColumnName("UpdatedBy").HasMaxLength(60);
entity.Property(e => e.CreateDate).HasColumnName("CreateDate");
entity.Property(e => e.InWorkflow).HasColumnName("InWorkflow").HasColumnType("tinyint");
entity.Property(e => e.PrintKitComponents).HasColumnName("print_kit_components").HasColumnType("tinyint");
entity.Property(e => e.NonInvAcct).HasColumnName("non_inv_acct").HasMaxLength(24).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit1).HasColumnName("non_inv_acct_unit1").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit2).HasColumnName("non_inv_acct_unit2").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit3).HasColumnName("non_inv_acct_unit3").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit4).HasColumnName("non_inv_acct_unit4").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.CostConv).HasColumnName("cost_conv").IsRequired(false);
entity.Property(e => e.DaysShippedBeforeDueDateTolerance).HasColumnName("days_shipped_before_due_date_tolerance").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.DaysShippedAfterDueDateTolerance).HasColumnName("days_shipped_after_due_date_tolerance").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.ShippedOverOrderedQtyTolerance).HasColumnName("shipped_over_ordered_qty_tolerance").IsRequired(false);
entity.Property(e => e.ShippedUnderOrderedQtyTolerance).HasColumnName("shipped_under_ordered_qty_tolerance").IsRequired(false);
entity.Property(e => e.ManufacturerId).HasColumnName("manufacturer_id").HasMaxLength(14).IsRequired(false);
entity.Property(e => e.ManufacturerItem).HasColumnName("manufacturer_item").HasMaxLength(60).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_BLN_Address).HasColumnName("Uf_FKR_EDI_BLN_Address").HasMaxLength(100).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_BLN_BoxType).HasColumnName("Uf_FKR_EDI_BLN_BoxType").HasMaxLength(150).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_BLN_FinalDestination).HasColumnName("Uf_FKR_EDI_BLN_FinalDestination").HasMaxLength(100).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_BLN_QtyPerBox).HasColumnName("Uf_FKR_EDI_BLN_QtyPerBox").IsRequired(false);
});
modelBuilder.Entity<CustomerOrderLineItem>(entity =>
{
entity.ToTable("coitem");
entity.HasKey(e => new { e.CoNum, e.CoLine, e.CoRelease });
entity.Property(e => e.CoNum).HasColumnName("co_num").HasMaxLength(20);
entity.Property(e => e.CoLine).HasColumnName("co_line").HasColumnType("smallint");
entity.Property(e => e.CoRelease).HasColumnName("co_release").HasColumnType("smallint");
entity.Property(e => e.Item).HasColumnName("item").HasMaxLength(60);
entity.Property(e => e.QtyOrdered).HasColumnName("qty_ordered");
entity.Property(e => e.QtyReady).HasColumnName("qty_ready");
entity.Property(e => e.QtyShipped).HasColumnName("qty_shipped");
entity.Property(e => e.QtyPacked).HasColumnName("qty_packed");
entity.Property(e => e.Disc).HasColumnName("disc");
entity.Property(e => e.Cost).HasColumnName("cost");
entity.Property(e => e.Price).HasColumnName("price");
entity.Property(e => e.RefType).HasColumnName("ref_type").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.RefNum).HasColumnName("ref_num").HasMaxLength(20).IsRequired(false);
entity.Property(e => e.RefLineSuf).HasColumnName("ref_line_suf").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.RefRelease).HasColumnName("ref_release").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.DueDate).HasColumnName("due_date").IsRequired(false);
entity.Property(e => e.ShipDate).HasColumnName("ship_date").IsRequired(false);
entity.Property(e => e.BrkQty1).HasColumnName("brk_qty1");
entity.Property(e => e.BrkQty2).HasColumnName("brk_qty2");
entity.Property(e => e.BrkQty3).HasColumnName("brk_qty3");
entity.Property(e => e.BrkQty4).HasColumnName("brk_qty4");
entity.Property(e => e.BrkQty5).HasColumnName("brk_qty5");
entity.Property(e => e.Reprice).HasColumnName("reprice").HasColumnType("tinyint");
entity.Property(e => e.CustItem).HasColumnName("cust_item").HasMaxLength(60).IsRequired(false);
entity.Property(e => e.QtyInvoiced).HasColumnName("qty_invoiced");
entity.Property(e => e.QtyReturned).HasColumnName("qty_returned");
entity.Property(e => e.CgsTotal).HasColumnName("cgs_total");
entity.Property(e => e.FeatStr).HasColumnName("feat_str").HasMaxLength(80).IsRequired(false);
entity.Property(e => e.Stat).HasColumnName("stat").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.CustNum).HasColumnName("cust_num").HasMaxLength(14).IsRequired(false);
entity.Property(e => e.CustSeq).HasColumnName("cust_seq").HasColumnType("int").IsRequired(false);
entity.Property(e => e.PrgBillTot).HasColumnName("prg_bill_tot").IsRequired(false);
entity.Property(e => e.PrgBillApp).HasColumnName("prg_bill_app").IsRequired(false);
entity.Property(e => e.ReleaseDate).HasColumnName("release_date").IsRequired(false);
entity.Property(e => e.PromiseDate).HasColumnName("promise_date").IsRequired(false);
entity.Property(e => e.Whse).HasColumnName("whse").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.WksBasis).HasColumnName("wks_basis").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.WksValue).HasColumnName("wks_value").IsRequired(false);
entity.Property(e => e.CommCode).HasColumnName("comm_code").HasMaxLength(24).IsRequired(false);
entity.Property(e => e.TransNat).HasColumnName("trans_nat").HasMaxLength(4).IsRequired(false);
entity.Property(e => e.ProcessInd).HasColumnName("process_ind").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.Delterm).HasColumnName("delterm").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.UnitWeight).HasColumnName("unit_weight").IsRequired(false);
entity.Property(e => e.Origin).HasColumnName("origin").HasMaxLength(4).IsRequired(false);
entity.Property(e => e.ConsNum).HasColumnName("cons_num").IsRequired(false);
entity.Property(e => e.TaxCode1).HasColumnName("tax_code1").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.TaxCode2).HasColumnName("tax_code2").HasMaxLength(12).IsRequired(false);
entity.Property(e => e.ExportValue).HasColumnName("export_value").IsRequired(false);
entity.Property(e => e.EcCode).HasColumnName("ec_code").HasMaxLength(4).IsRequired(false);
entity.Property(e => e.Transport).HasColumnName("transport").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.PickDate).HasColumnName("pick_date").IsRequired(false);
entity.Property(e => e.Pricecode).HasColumnName("pricecode").HasMaxLength(6).IsRequired(false);
entity.Property(e => e.UM).HasColumnName("u_m").HasMaxLength(6);
entity.Property(e => e.QtyOrderedConv).HasColumnName("qty_ordered_conv");
entity.Property(e => e.PriceConv).HasColumnName("price_conv");
entity.Property(e => e.CoCustNum).HasColumnName("co_cust_num").HasMaxLength(14).IsRequired(false);
entity.Property(e => e.Packed).HasColumnName("packed").HasColumnType("tinyint").IsRequired(false);
entity.Property(e => e.Bol).HasColumnName("bol").HasColumnType("tinyint").IsRequired(false);
entity.Property(e => e.QtyRsvd).HasColumnName("qty_rsvd");
entity.Property(e => e.MatlCost).HasColumnName("matl_cost");
entity.Property(e => e.LbrCost).HasColumnName("lbr_cost");
entity.Property(e => e.FovhdCost).HasColumnName("fovhd_cost");
entity.Property(e => e.VovhdCost).HasColumnName("vovhd_cost");
entity.Property(e => e.OutCost).HasColumnName("out_cost");
entity.Property(e => e.CgsTotalMatl).HasColumnName("cgs_total_matl");
entity.Property(e => e.CgsTotalLbr).HasColumnName("cgs_total_lbr");
entity.Property(e => e.CgsTotalFovhd).HasColumnName("cgs_total_fovhd");
entity.Property(e => e.CgsTotalVovhd).HasColumnName("cgs_total_vovhd");
entity.Property(e => e.CgsTotalOut).HasColumnName("cgs_total_out");
entity.Property(e => e.CostConv).HasColumnName("cost_conv");
entity.Property(e => e.MatlCostConv).HasColumnName("matl_cost_conv");
entity.Property(e => e.LbrCostConv).HasColumnName("lbr_cost_conv");
entity.Property(e => e.FovhdCostConv).HasColumnName("fovhd_cost_conv");
entity.Property(e => e.VovhdCostConv).HasColumnName("vovhd_cost_conv");
entity.Property(e => e.OutCostConv).HasColumnName("out_cost_conv");
entity.Property(e => e.ShipSite).HasColumnName("ship_site").HasMaxLength(16).IsRequired(false);
entity.Property(e => e.SyncReqd).HasColumnName("sync_reqd").HasColumnType("tinyint").IsRequired(false);
entity.Property(e => e.CoOrigSite).HasColumnName("co_orig_site").HasMaxLength(16).IsRequired(false);
entity.Property(e => e.CustPo).HasColumnName("cust_po").HasMaxLength(44).IsRequired(false);
entity.Property(e => e.RmaNum).HasColumnName("rma_num").HasMaxLength(20).IsRequired(false);
entity.Property(e => e.RmaLine).HasColumnName("rma_line").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.ProjectedDate).HasColumnName("projected_date").IsRequired(false);
entity.Property(e => e.Consolidate).HasColumnName("consolidate").HasColumnType("tinyint");
entity.Property(e => e.InvFreq).HasColumnName("inv_freq").HasMaxLength(2).IsRequired(false);
entity.Property(e => e.Summarize).HasColumnName("summarize").HasColumnType("tinyint");
entity.Property(e => e.NoteExistsFlag).HasColumnName("NoteExistsFlag").HasColumnType("tinyint");
entity.Property(e => e.RecordDate).HasColumnName("RecordDate");
entity.Property(e => e.RowPointer).HasColumnName("RowPointer").HasColumnType("uniqueidentifier");
entity.Property(e => e.Description).HasColumnName("description").HasMaxLength(80).IsRequired(false);
entity.Property(e => e.ConfigId).HasColumnName("config_id").HasMaxLength(24).IsRequired(false);
entity.Property(e => e.CreatedBy).HasColumnName("CreatedBy").HasMaxLength(60);
entity.Property(e => e.UpdatedBy).HasColumnName("UpdatedBy").HasMaxLength(60);
entity.Property(e => e.CreateDate).HasColumnName("CreateDate");
entity.Property(e => e.InWorkflow).HasColumnName("InWorkflow").HasColumnType("tinyint");
entity.Property(e => e.TransNat2).HasColumnName("trans_nat_2").HasMaxLength(4).IsRequired(false);
entity.Property(e => e.SupplQtyConvFactor).HasColumnName("suppl_qty_conv_factor");
entity.Property(e => e.PrintKitComponents).HasColumnName("print_kit_components").HasColumnType("tinyint");
entity.Property(e => e.ExternalReservationRef).HasColumnName("external_reservation_ref").HasMaxLength(160).IsRequired(false);
entity.Property(e => e.NonInvAcct).HasColumnName("non_inv_acct").HasMaxLength(24).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit1).HasColumnName("non_inv_acct_unit1").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit2).HasColumnName("non_inv_acct_unit2").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit3).HasColumnName("non_inv_acct_unit3").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.NonInvAcctUnit4).HasColumnName("non_inv_acct_unit4").HasMaxLength(8).IsRequired(false);
entity.Property(e => e.DaysShippedBeforeDueDateTolerance).HasColumnName("days_shipped_before_due_date_tolerance").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.DaysShippedAfterDueDateTolerance).HasColumnName("days_shipped_after_due_date_tolerance").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.ShippedOverOrderedQtyTolerance).HasColumnName("shipped_over_ordered_qty_tolerance").IsRequired(false);
entity.Property(e => e.ShippedUnderOrderedQtyTolerance).HasColumnName("shipped_under_ordered_qty_tolerance").IsRequired(false);
entity.Property(e => e.Priority).HasColumnName("priority").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.InvoiceHold).HasColumnName("invoice_hold").HasColumnType("tinyint");
entity.Property(e => e.ManufacturerId).HasColumnName("manufacturer_id").HasMaxLength(14).IsRequired(false);
entity.Property(e => e.ManufacturerItem).HasColumnName("manufacturer_item").HasMaxLength(60).IsRequired(false);
entity.Property(e => e.QtyPicked).HasColumnName("qty_picked");
entity.Property(e => e.Uf_ZPL_VATRegisterCode).HasColumnName("uf_ZPL_VATRegisterCode").HasMaxLength(20).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_EdiCoItemRowPointer).HasColumnName("Uf_FKR_EDI_EdiCoItemRowPointer").HasColumnType("uniqueidentifier").IsRequired(false);
entity.Property(e => e.Uf_IMP_CoLineOrginal).HasColumnName("Uf_IMP_CoLineOrginal").HasColumnType("smallint").IsRequired(false);
entity.Property(e => e.Uf_IMP_QtyOrdered).HasColumnName("Uf_IMP_QtyOrdered").IsRequired(false);
entity.Property(e => e.Uf_IMP_QtyOrginal).HasColumnName("Uf_IMP_QtyOrginal").IsRequired(false);
entity.Property(e => e.Uf_IMP_SplitCoLine).HasColumnName("Uf_IMP_SplitCoLine").HasColumnType("tinyint").IsRequired(false);
entity.Property(e => e.Uf_IMP_SplitCoLineChange).HasColumnName("Uf_IMP_SplitCoLineChange").HasColumnType("tinyint").IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_ITEM_DeliveryCallNum).HasColumnName("Uf_FKR_EDI_ITEM_DeliveryCallNum").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_ITEM_RoutingCode).HasColumnName("Uf_FKR_EDI_ITEM_RoutingCode").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_pci_code).HasColumnName("Uf_pci_code").HasMaxLength(1).IsRequired(false);
entity.Property(e => e.Uf_LOC_11_UnloadingPoint).HasColumnName("Uf_LOC_11_UnloadingPoint").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_LOC_159_DestinationPoint).HasColumnName("Uf_LOC_159_DestinationPoint").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_Status).HasColumnName("Uf_Status").HasMaxLength(50).IsRequired(false);
entity.Property(e => e.Uf_FKR_EDI_ITEM_PalletCode).HasColumnName("Uf_FKR_EDI_ITEM_PalletCode").HasMaxLength(50).IsRequired(false);
});
}
}
}

View File

@@ -0,0 +1,30 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="13.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,5 @@
{
"ConnectionStrings": {
"SytelineSaAppConnection": "Server=192.168.0.7;Database=SL_PRODTEST_SA_APP;User Id=sa;Password=Tetum#2021!;TrustServerCertificate=true"
}
}