ужас
This commit is contained in:
parent
277588130b
commit
0cbba88298
@ -71,7 +71,7 @@ namespace ElectronicsShopBusinessLogic.BusinessLogic
|
|||||||
{
|
{
|
||||||
throw new ArgumentNullException("Сумма оплаты должна быть больше 0", nameof(model.SumPayment));
|
throw new ArgumentNullException("Сумма оплаты должна быть больше 0", nameof(model.SumPayment));
|
||||||
}
|
}
|
||||||
_logger.LogInformation($"Payment. ID:{model.ID}.ProductID:{model.ProductID}.Sum:{model.SumPayment}.OrderID:{model.OrderID}" +
|
_logger.LogInformation($"Payment. ID:{model.ID}.Sum:{model.SumPayment}.OrderID:{model.OrderID}" +
|
||||||
$".PayOption{model.PayOption}");
|
$".PayOption{model.PayOption}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,8 +12,6 @@ namespace ElectronicsShopContracts.BindingModels
|
|||||||
{
|
{
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
public int ProductID { get; set; }
|
|
||||||
|
|
||||||
public int OrderID { get; set; }
|
public int OrderID { get; set; }
|
||||||
|
|
||||||
public double SumPayment { get; set; }
|
public double SumPayment { get; set; }
|
||||||
|
@ -12,8 +12,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|||||||
namespace ElectronicsShopDataBaseImplement.Migrations
|
namespace ElectronicsShopDataBaseImplement.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(Database))]
|
[DbContext(typeof(Database))]
|
||||||
[Migration("20240531153626_Init")]
|
[Migration("20240601002930_InitMigration")]
|
||||||
partial class Init
|
partial class InitMigration
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||||
@ -200,9 +200,6 @@ namespace ElectronicsShopDataBaseImplement.Migrations
|
|||||||
b.Property<int?>("PaymentID")
|
b.Property<int?>("PaymentID")
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
||||||
b.Property<int>("ProductID")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<double>("SumPayment")
|
b.Property<double>("SumPayment")
|
||||||
.HasColumnType("float");
|
.HasColumnType("float");
|
||||||
|
|
@ -6,7 +6,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
|
|||||||
namespace ElectronicsShopDataBaseImplement.Migrations
|
namespace ElectronicsShopDataBaseImplement.Migrations
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public partial class Init : Migration
|
public partial class InitMigration : Migration
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
@ -111,7 +111,6 @@ namespace ElectronicsShopDataBaseImplement.Migrations
|
|||||||
{
|
{
|
||||||
ID = table.Column<int>(type: "int", nullable: false)
|
ID = table.Column<int>(type: "int", nullable: false)
|
||||||
.Annotation("SqlServer:Identity", "1, 1"),
|
.Annotation("SqlServer:Identity", "1, 1"),
|
||||||
ProductID = table.Column<int>(type: "int", nullable: false),
|
|
||||||
OrderID = table.Column<int>(type: "int", nullable: false),
|
OrderID = table.Column<int>(type: "int", nullable: false),
|
||||||
SumPayment = table.Column<double>(type: "float", nullable: false),
|
SumPayment = table.Column<double>(type: "float", nullable: false),
|
||||||
PayOption = table.Column<int>(type: "int", nullable: false),
|
PayOption = table.Column<int>(type: "int", nullable: false),
|
@ -197,9 +197,6 @@ namespace ElectronicsShopDataBaseImplement.Migrations
|
|||||||
b.Property<int?>("PaymentID")
|
b.Property<int?>("PaymentID")
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
||||||
b.Property<int>("ProductID")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<double>("SumPayment")
|
b.Property<double>("SumPayment")
|
||||||
.HasColumnType("float");
|
.HasColumnType("float");
|
||||||
|
|
||||||
|
@ -17,9 +17,6 @@ namespace ElectronicsShopDataBaseImplement.Models
|
|||||||
{
|
{
|
||||||
public int ID { get; set; }
|
public int ID { get; set; }
|
||||||
|
|
||||||
[ForeignKey("ProductID")]
|
|
||||||
public int ProductID { get; set; }
|
|
||||||
|
|
||||||
[ForeignKey("OrderID")]
|
[ForeignKey("OrderID")]
|
||||||
public int OrderID { get; set; }
|
public int OrderID { get; set; }
|
||||||
|
|
||||||
@ -38,7 +35,6 @@ namespace ElectronicsShopDataBaseImplement.Models
|
|||||||
return new Paymeant()
|
return new Paymeant()
|
||||||
{
|
{
|
||||||
ID = model.ID,
|
ID = model.ID,
|
||||||
ProductID = model.ProductID,
|
|
||||||
OrderID = model.OrderID,
|
OrderID = model.OrderID,
|
||||||
SumPayment = model.SumPayment,
|
SumPayment = model.SumPayment,
|
||||||
PayOption = model.PayOption,
|
PayOption = model.PayOption,
|
||||||
@ -50,7 +46,6 @@ namespace ElectronicsShopDataBaseImplement.Models
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ProductID = model.ProductID;
|
|
||||||
OrderID = model.OrderID;
|
OrderID = model.OrderID;
|
||||||
SumPayment = model.SumPayment;
|
SumPayment = model.SumPayment;
|
||||||
PayOption = model.PayOption;
|
PayOption = model.PayOption;
|
||||||
@ -59,7 +54,6 @@ namespace ElectronicsShopDataBaseImplement.Models
|
|||||||
public PaymeantViewModel GetViewModel => new()
|
public PaymeantViewModel GetViewModel => new()
|
||||||
{
|
{
|
||||||
ID = ID,
|
ID = ID,
|
||||||
ProductID = ProductID,
|
|
||||||
OrderID = OrderID,
|
OrderID = OrderID,
|
||||||
SumPayment = SumPayment,
|
SumPayment = SumPayment,
|
||||||
PayOption = PayOption,
|
PayOption = PayOption,
|
||||||
|
@ -10,7 +10,6 @@ namespace ElectronicsShopDataModels.Models
|
|||||||
{
|
{
|
||||||
public interface IPaymentModel: IID
|
public interface IPaymentModel: IID
|
||||||
{
|
{
|
||||||
int ProductID { get; }
|
|
||||||
int OrderID { get; }
|
int OrderID { get; }
|
||||||
double SumPayment { get; }
|
double SumPayment { get; }
|
||||||
PaymeantOption PayOption { get; }
|
PaymeantOption PayOption { get; }
|
||||||
|
@ -13,10 +13,12 @@ namespace ElectronicsShopRestAPI.Controllers {
|
|||||||
|
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly IClientLogic _logic;
|
private readonly IClientLogic _logic;
|
||||||
|
private readonly IPaymeantLogic _payLogic;
|
||||||
|
|
||||||
public ClientController(ILogger<ClientController> logger, IClientLogic logic) {
|
public ClientController(ILogger<ClientController> logger, IClientLogic logic, IPaymeantLogic payLogic) {
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_logic = logic;
|
_logic = logic;
|
||||||
|
_payLogic = payLogic;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
@ -54,5 +56,15 @@ namespace ElectronicsShopRestAPI.Controllers {
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void CreatePaymeant (PaymeantBindingModel model) {
|
||||||
|
try {
|
||||||
|
_payLogic.CreatePay(model);
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
_logger.LogError(ex, "Ошибка создания оплаты");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,12 +15,14 @@ builder.Services.AddTransient<IEmployeeStorage, EmployeeStorage>();
|
|||||||
builder.Services.AddTransient<IProductStorage, ProductStorage>();
|
builder.Services.AddTransient<IProductStorage, ProductStorage>();
|
||||||
builder.Services.AddTransient<IOrderStorage, OrderStorage>();
|
builder.Services.AddTransient<IOrderStorage, OrderStorage>();
|
||||||
builder.Services.AddTransient<ICostItemStorage, CostItemStorage>();
|
builder.Services.AddTransient<ICostItemStorage, CostItemStorage>();
|
||||||
|
builder.Services.AddTransient<IPaymeantStorage, PaymeantStorage>();
|
||||||
|
|
||||||
builder.Services.AddTransient<IClientLogic, ClientLogic>();
|
builder.Services.AddTransient<IClientLogic, ClientLogic>();
|
||||||
builder.Services.AddTransient<IEmployeeLogic, EmployeeLogic>();
|
builder.Services.AddTransient<IEmployeeLogic, EmployeeLogic>();
|
||||||
builder.Services.AddTransient<IProductLogic, ProductLogic>();
|
builder.Services.AddTransient<IProductLogic, ProductLogic>();
|
||||||
builder.Services.AddTransient<IOrderLogic, OrderLogic>();
|
builder.Services.AddTransient<IOrderLogic, OrderLogic>();
|
||||||
builder.Services.AddTransient<ICostItemLogic, CostItemLogic>();
|
builder.Services.AddTransient<ICostItemLogic, CostItemLogic>();
|
||||||
|
builder.Services.AddTransient<IPaymeantLogic, PaymeantLogic>();
|
||||||
|
|
||||||
builder.Services.AddControllers();
|
builder.Services.AddControllers();
|
||||||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||||
|
@ -2,6 +2,7 @@ using ElectronicsShopContracts.BindingModels;
|
|||||||
using ElectronicsShopContracts.BusinessLogicContracts;
|
using ElectronicsShopContracts.BusinessLogicContracts;
|
||||||
using ElectronicsShopContracts.SearchModels;
|
using ElectronicsShopContracts.SearchModels;
|
||||||
using ElectronicsShopContracts.ViewModels;
|
using ElectronicsShopContracts.ViewModels;
|
||||||
|
using ElectronicsShopDataModels.Enums;
|
||||||
using ElectronicsShopDataModels.Models;
|
using ElectronicsShopDataModels.Models;
|
||||||
using ElectronicsShopUserApp.Models;
|
using ElectronicsShopUserApp.Models;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@ -150,7 +151,7 @@ namespace ElectronicsShopUserApp.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public void EditOrder(int sum, int id) {
|
public void EditOrder(double sum, int id) {
|
||||||
if (sum <= 0) {
|
if (sum <= 0) {
|
||||||
APIClient.PostRequest($"api/main/deleteorders", new OrderBindingModel { ID = id });
|
APIClient.PostRequest($"api/main/deleteorders", new OrderBindingModel { ID = id });
|
||||||
}
|
}
|
||||||
@ -181,7 +182,7 @@ namespace ElectronicsShopUserApp.Controllers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public void OrderView(int sum, int id) {
|
public void OrderView(double sum, int id) {
|
||||||
if (sum <= 0) {
|
if (sum <= 0) {
|
||||||
APIClient.PostRequest($"api/main/deleteorders", new OrderBindingModel { ID = id});
|
APIClient.PostRequest($"api/main/deleteorders", new OrderBindingModel { ID = id});
|
||||||
}
|
}
|
||||||
@ -211,12 +212,6 @@ namespace ElectronicsShopUserApp.Controllers {
|
|||||||
Response.Redirect("OrderView");
|
Response.Redirect("OrderView");
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost]
|
|
||||||
public double Calc(int count, int product)
|
|
||||||
{
|
|
||||||
var _product = APIClient.GetRequset<ProductViewModel>($"api/main/getproduct?_productid={product}");
|
|
||||||
return count * (_product?.Price ?? 1);
|
|
||||||
}
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult Report()
|
public IActionResult Report()
|
||||||
{
|
{
|
||||||
@ -233,6 +228,8 @@ namespace ElectronicsShopUserApp.Controllers {
|
|||||||
//ViewBag.Reports = APIClient.GetRequset<List<ProductViewModel>>($"api/main/getproducts"); Ïèñåì òàê æå ïîêà íåìà
|
//ViewBag.Reports = APIClient.GetRequset<List<ProductViewModel>>($"api/main/getproducts"); Ïèñåì òàê æå ïîêà íåìà
|
||||||
return View();
|
return View();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
public IActionResult Payment(int id)
|
public IActionResult Payment(int id)
|
||||||
{
|
{
|
||||||
if (APIClient.Client == null)
|
if (APIClient.Client == null)
|
||||||
@ -242,7 +239,7 @@ namespace ElectronicsShopUserApp.Controllers {
|
|||||||
|
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
{
|
{
|
||||||
return Redirect("Orders");
|
return Redirect("~/Home/Index");
|
||||||
}
|
}
|
||||||
var products = APIClient.GetRequset<List<List<string>>>($"api/main/getorderproducts?_orderid={id}");
|
var products = APIClient.GetRequset<List<List<string>>>($"api/main/getorderproducts?_orderid={id}");
|
||||||
|
|
||||||
@ -257,5 +254,37 @@ namespace ElectronicsShopUserApp.Controllers {
|
|||||||
return View(tuple);
|
return View(tuple);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public void Payment(double sum, double paysum, int id) {
|
||||||
|
if (APIClient.Client == null) {
|
||||||
|
throw new Exception("Òîëüêî äëÿ àâòîðèçîâàííûõ");
|
||||||
|
}
|
||||||
|
if (paysum <= 0) {
|
||||||
|
throw new Exception("Ñóììà îïïëàòû äîëæíà áûòü áîëüøå 0");
|
||||||
|
}
|
||||||
|
if (paysum > sum) {
|
||||||
|
throw new Exception("Ññóìà îïëàòû íå äîëæíà ïðåâûøàòü ñóììó ê îïëàòå");
|
||||||
|
}
|
||||||
|
APIClient.PostRequest("api/client/createpaymeant", new PaymeantBindingModel {
|
||||||
|
OrderID = id,
|
||||||
|
SumPayment = sum,
|
||||||
|
PayOption = PayOptionCalc(sum, paysum)
|
||||||
|
});
|
||||||
|
Response.Redirect("Index");
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public PaymeantOption PayOptionCalc(double sum, double paysum) {
|
||||||
|
if (paysum < sum) {
|
||||||
|
return PaymeantOption.×àñòè÷íàÿ_îïëàòà;
|
||||||
|
}
|
||||||
|
else if (paysum == sum) {
|
||||||
|
return PaymeantOption.Ïîëíàÿ_îïëàòà;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return PaymeantOption.Íåîïëà÷åíî;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,17 +16,23 @@
|
|||||||
<div class="col-4"></div>
|
<div class="col-4"></div>
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
<input id="id" type="hidden" name="id" readonly value="@Model.Item1" />
|
<input id="id" type="hidden" name="id" readonly value="@Model.Item1" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class=" text-center">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-4">Сумма платежа:</div>
|
<div class="col-4">Сумма платежа:</div>
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
<input type="text" name="paysum" id="paysum" />
|
<input type="text" name="paysum" id="paysum" />
|
||||||
<input type="submit" value="Оплатить!" class="btn btn-primary" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">Сумма к оплате:</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<input type="text" name="sum" id="sum" readonly />
|
||||||
|
</divЫ>
|
||||||
|
<input type="submit" value="Оплатить!" class="btn btn-primary" />
|
||||||
</div>
|
</div>
|
||||||
<div class=" text-center">
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -70,28 +76,29 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-4"></div>
|
<div class="col-4"></div>
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
<input type="submit" value="Заказ готов, вернуться!" class="btn btn-primary" />
|
<a class="btn btn-primary btn-sm" asp-action="Index">Отменить - вернуться на главную страницу</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$('#paysum').on('change', function () {
|
$('#btn').on('click', function () {
|
||||||
check();
|
calc();
|
||||||
});
|
});
|
||||||
function check() {
|
|
||||||
var paysum = $('#paysum').val();
|
let sum = 0;
|
||||||
if (count && product) {
|
const elementRows = document.querySelectorAll('.element');
|
||||||
$.ajax({
|
calc();
|
||||||
method: "POST",
|
|
||||||
url: "/Home/Calc",
|
function calc() {
|
||||||
data: { paysum: paysum },
|
elementRows.forEach(row => {
|
||||||
success: function (result) {
|
const count = parseInt(row.querySelector('.count').innerHTML, 10);
|
||||||
$("#sum").val(result);
|
const countsum = parseInt(row.querySelector('.countsum').innerHTML, 10);
|
||||||
}
|
const rowTotal = count * countsum;
|
||||||
|
sum += rowTotal;
|
||||||
});
|
});
|
||||||
};
|
$('#sum').val(sum);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
Loading…
Reference in New Issue
Block a user