public Result PostMaterialPurchase([FromBody] MaterialPurchase materialPurchase) { var cnt = ServerConfig.ApiDb.Query <int>("SELECT COUNT(1) FROM `material_purchase` WHERE Purchase = @Purchase AND MarkedDelete = 0;", new { materialPurchase.Purchase }).FirstOrDefault(); if (cnt > 0) { return(Result.GenError <Result>(Error.MaterialPurchaseIsExist)); } materialPurchase.CreateUserId = Request.GetIdentityInformation(); materialPurchase.MarkedDateTime = DateTime.Now; MaterialPurchaseHelper.Instance.Add(materialPurchase); return(Result.GenError <Result>(Error.Success)); }
public Result QuoteMaterialPurchase([FromBody] MaterialPurchase materialPurchase) { if (materialPurchase.Id == 0) { return(Result.GenError <Result>(Error.MaterialPurchaseNotExist)); } var purchaseId = materialPurchase.Id; var cnt = MaterialPurchaseHelper.Instance.GetCountById(purchaseId); if (cnt <= 0) { return(Result.GenError <DataResult>(Error.MaterialPurchaseNotExist)); } var materialPurchaseQuote = materialPurchase.Items; if (materialPurchaseQuote == null || !materialPurchaseQuote.Any()) { ServerConfig.ApiDb.Execute( "UPDATE `material_purchase_quote` SET `MarkedDateTime` = NOW(), `MarkedDelete` = true WHERE `PurchaseId` = @Id;", new { materialPurchase.Id }); return(Result.GenError <Result>(Error.Success)); } if (materialPurchaseQuote.Any(x => x.Illegal())) { return(Result.GenError <Result>(Error.MaterialPurchaseQuoteNotEmpty)); } var oldMaterialPurchaseQuote = ServerConfig.ApiDb.Query <MaterialPurchaseQuote>("SELECT * FROM `material_purchase_quote` WHERE `MarkedDelete` = 0 AND `PurchaseId` = @PurchaseId;", new { purchaseId }); var materialPurchaseItems = ServerConfig.ApiDb.Query <MaterialPurchaseQuote>("SELECT * FROM `material_purchase_item` WHERE `MarkedDelete` = 0 AND `PurchaseId` = @PurchaseId;", new { purchaseId }); var markedDateTime = DateTime.Now; var delQuote = oldMaterialPurchaseQuote.Where(x => materialPurchaseQuote.All(y => y.Id != x.Id)); if (delQuote.Any()) { foreach (var quote in delQuote) { quote.MarkedDateTime = markedDateTime; quote.MarkedDelete = true; } ServerConfig.ApiDb.Execute( "UPDATE `material_purchase_quote` SET `MarkedDateTime` = @MarkedDateTime, `MarkedDelete` = @MarkedDelete WHERE `Id` = @Id;", delQuote); } var oldQuote = materialPurchaseQuote.Where(x => x.Id != 0); if (oldQuote.Any()) { foreach (var quote in oldQuote) { quote.MarkedDateTime = markedDateTime; } ServerConfig.ApiDb.Execute( "UPDATE `material_purchase_quote` SET `MarkedDateTime` = @MarkedDateTime, `Purchase` = @Purchase, `Time` = @Time, `ItemId` = @ItemId, `PurchaseId` = @PurchaseId, " + "`Code` = @Code, `Class` = @Class, `Category` = @Category, `Name` = @Name, `Supplier` = @Supplier, `Specification` = @Specification, `Number` = @Number, `Unit` = @Unit, " + "`Price` = @Price, `TaxPrice` = @TaxPrice, `TaxAmount` = @TaxAmount, `TaxRate` = @TaxRate, `Order` = @Order, `Purchaser` = @Purchaser, `PurchasingCompany` = @PurchasingCompany WHERE `Id` = @Id;", oldQuote); } var newQuote = materialPurchaseQuote.Where(x => x.Id == 0); if (newQuote.Any()) { var createUserId = Request.GetIdentityInformation(); foreach (var quote in newQuote) { var item = materialPurchaseItems.FirstOrDefault(x => x.Id == quote.ItemId); quote.CreateUserId = createUserId; quote.PurchaseId = purchaseId; quote.Class = quote.Class.IsNullOrEmpty() ? item?.Class ?? "" : quote.Class; quote.Category = quote.Category.IsNullOrEmpty() ? item?.Category ?? "" : quote.Category; quote.Supplier = quote.Supplier.IsNullOrEmpty() ? item?.Supplier ?? "" : quote.Supplier; quote.Order = quote.Order.IsNullOrEmpty() ? item?.Order ?? "" : quote.Order; quote.Purchaser = quote.Purchaser.IsNullOrEmpty() ? item?.Purchaser ?? "" : quote.Purchaser; quote.PurchasingCompany = quote.PurchasingCompany.IsNullOrEmpty() ? item?.PurchasingCompany ?? "" : quote.PurchasingCompany; } ServerConfig.ApiDb.Execute( "INSERT INTO `material_purchase_quote` (`CreateUserId`, `Purchase`, `Time`, `ItemId`, `PurchaseId`, `Code`, `Class`, `Category`, `Name`, `Supplier`, `Specification`, `Number`, `Unit`, `Price`, `TaxPrice`, `TaxAmount`, `TaxRate`, `Order`, `Purchaser`, `PurchasingCompany`) " + "VALUES (@CreateUserId, @Purchase, @Time, @ItemId, @PurchaseId, @Code, @Class, @Category, @Name, @Supplier, @Specification, @Number, @Unit, @Price, @TaxPrice, @TaxAmount, @TaxRate, @Order, @Purchaser, @PurchasingCompany);", newQuote); } ServerConfig.ApiDb.Execute( "UPDATE `material_purchase` SET `MarkedDateTime` = now(), `IsQuote` = @IsQuote WHERE Id = @purchaseId;", new { IsQuote = true, purchaseId }); return(Result.GenError <Result>(Error.Success)); }