public IHttpActionResult Post([FromBody] SellingTransactionModel saleInfo) { SellingTransactionData data = new SellingTransactionData(); data.SaveSale(saleInfo); return(Ok()); }
/// <summary> /// Saves selling transaction to the database /// </summary> public void SaveSale(SellingTransactionModel saleInfo) { SellingTransactionMasterDBModel masterSaleData = new SellingTransactionMasterDBModel { SellingTransactionTypeId = saleInfo.SellingTransactionTypeId, TransactionTiming = DateTime.Now, Subtotal = saleInfo.Subtotal, calculatedTaxesPercentage = saleInfo.CalculatedTaxesPercentage, calculatedTaxesValue = saleInfo.CalculatedTaxesValue, calculatedDiscountPercentage = saleInfo.CalculatedDiscountPercentage, calculatedDiscountValue = saleInfo.CalculatedDiscountValue, TaxesPercentageOverInvoice = saleInfo.TaxesPercentageOverInvoice, TaxesValueOverInvoice = saleInfo.TaxesValueOverInvoice, DiscountPercentageOverInvoice = saleInfo.DiscountPercentageOverInvoice, DiscountValueOverInvoice = saleInfo.DiscountValueOverInvoice, Total = saleInfo.Total, SellerId = saleInfo.SellerId, ShiftOwnerId = saleInfo.ShiftOwnerId, CustomerId = saleInfo.CustomerId, NumberOfItems = saleInfo.NumberOfItems, NumberOfPieces = saleInfo.NumberOfPieces }; using (SqlDataAccess sql = new SqlDataAccess()) { try { sql.StartTransaction("GaroshaPrimoData"); //save the sale model sql.SaveDataInTransaction("dbo.spSellingTransactionMaster_Insert", masterSaleData); //get the id of the transaction masterSaleData.TransactionId = sql.LoadDataInTransaction <int, dynamic>("dbo.spSellingTransactionMaster_GetId", new { masterSaleData.SellerId, masterSaleData.TransactionTiming }).FirstOrDefault(); if (saleInfo.InvoicePayment.cash > 0) { CashPaymentDBModel cashPayment = new CashPaymentDBModel { SellingTransactionId = masterSaleData.TransactionId, Amount = saleInfo.InvoicePayment.cash }; sql.SaveDataInTransaction("dbo.spCashPayments_Insert", cashPayment); } if (saleInfo.InvoicePayment.bankCardsPayments.Length > 0) { for (int i = 0; i < saleInfo.InvoicePayment.bankCardsPayments.Length; i++) { saleInfo.InvoicePayment.bankCardsPayments[i].SellingTransactionId = masterSaleData.TransactionId; sql.SaveDataInTransaction("dbo.spBankCardsPayments_Insert", saleInfo.InvoicePayment.bankCardsPayments[i]); } } if (saleInfo.InvoicePayment.contractorsPayments.Length > 0) { for (int i = 0; i < saleInfo.InvoicePayment.contractorsPayments.Length; i++) { saleInfo.InvoicePayment.contractorsPayments[i].SellingTransactionId = masterSaleData.TransactionId; sql.SaveDataInTransaction("dbo.spContractorsPayments_Insert", saleInfo.InvoicePayment.contractorsPayments[i]); } } foreach (var item in saleInfo.SaleItems) { SellingTransactionItemDBModel saleItem = new SellingTransactionItemDBModel { SellingTransactionId = masterSaleData.TransactionId, ItemId = item.ItemId, ItemExpiryDate = item.ItemExpiryDate, SellingTransactionItemQuantity = item.SellingTransactionItemQuantity, ItemSellingPrice = item.ItemSellingPrice, ItemSubtotal = item.ItemSubtotal, ItemSellingDiscountPercentage = item.ItemSellingDiscountPercentage, ItemSellingDiscountValue = item.ItemSellingDiscountValue, ItemSellingTaxesPercentage = item.ItemSellingTaxesPercentage, ItemSellingTaxesValue = item.ItemSellingTaxesValue, ItemTotal = item.ItemTotal, ItemCostOnSelling = item.ItemCostOnSelling }; sql.SaveDataInTransaction("dbo.spSellingTransactionsItems_Insert", saleItem); UpdateQuantitiesOnSelling(item, sql); } sql.CommitTransaction(); } catch { sql.RollBackTransaction(); throw; } } }