mirror of
https://github.com/stokebob/bnhtrade.git
synced 2026-03-19 14:37:16 +00:00
* complete read invoices from db * wip * wip * wip * wip * wip * wip * wip * wip * updated nuget package spapi * WIP * wip, now test * wip, jut need to fix tax inclusive line amounts not supported * wip * wip, before I f everything up * no, it complies now, this is the one before I f everything up * wip * wip * wip, logic ready for testing * wip it builds!!!! * wip tested, working, need to complete the gui section * wip * wip * wip - created export invoice data delete, time for testing * wip testing phase * wip - delete function fully tested and working * wip on to sorting out the issue with settlement invoices not tallying * wip * wip * wip * wip * wip before I complete change the ReadInvoiceLineItem sections * that appears to have worked, on with the main quest * no it's doesn't work, saving before i remove the confusing cache system (just use a dictionary!!) * wipping picadilli * wip * wip * implemented uow on inovice export, now for testing * wip * wip all tested do invoice currency convertion fearure * wip * pretty much done so long as xero accepts the exported invoices * Complete!
86 lines
3.4 KiB
C#
86 lines
3.4 KiB
C#
using FikaAmazonAPI.AmazonSpApiSDK.Models.ProductPricing;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using Microsoft.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Transactions;
|
|
|
|
namespace bnhtrade.Core.Data.Database.Sku
|
|
{
|
|
internal class InsertSku : Connection
|
|
{
|
|
public int InsertNew(int productId, int conditionId, int accountTaxCodeId)
|
|
{
|
|
using (TransactionScope scope = new TransactionScope())
|
|
using (SqlConnection conn = new SqlConnection(SqlConnectionString))
|
|
{
|
|
conn.Open();
|
|
|
|
// check tax code id is a valid for SKU
|
|
var dbTax = new Data.Database.Account.ReadTaxCode();
|
|
var taxCodeList = dbTax.GetByTaxCodeId(new List<int> { accountTaxCodeId });
|
|
|
|
if (taxCodeList.ContainsKey(accountTaxCodeId) == false)
|
|
{
|
|
throw new Exception("AccountTaxCodeID=" + accountTaxCodeId + " doesn't exist!");
|
|
}
|
|
else if (taxCodeList[accountTaxCodeId].IsValidOnIncome == false)
|
|
{
|
|
throw new Exception("AccountTaxCodeID=" + accountTaxCodeId + " is not a valid type for an SKU.");
|
|
}
|
|
|
|
// get info to create sku number
|
|
int skuCount;
|
|
int skuSuffix;
|
|
using (SqlCommand cmd = new SqlCommand("SELECT NEXT VALUE FOR SkuCountSequence;", conn))
|
|
{
|
|
skuCount = (int)cmd.ExecuteScalar();
|
|
}
|
|
|
|
using (SqlCommand cmd = new SqlCommand(@"
|
|
SELECT tblSkuCondition.scnSkuNumberSuffix
|
|
FROM tblSkuCondition
|
|
WHERE (((tblSkuCondition.scnSkuConditionID)=@conditionId));
|
|
", conn))
|
|
{
|
|
cmd.Parameters.AddWithValue("@conditionId", conditionId);
|
|
|
|
try
|
|
{
|
|
skuSuffix = (int)cmd.ExecuteScalar();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception("Error retriving SKU number suffix for SkuConditionID=" + conditionId + "." +
|
|
System.Environment.NewLine + "Error Message: " + ex.Message);
|
|
}
|
|
}
|
|
string skuNumber = skuCount.ToString("D6") + "-" + skuSuffix.ToString("D2");
|
|
|
|
// insert new sku
|
|
int skuId;
|
|
using (SqlCommand cmd = new SqlCommand(@"
|
|
INSERT INTO tblSku
|
|
(skuSkuNumber, skuProductID, skuSkuConditionID, AccountTaxCodeID)
|
|
OUTPUT INSERTED.skuSkuID
|
|
VALUES
|
|
(@skuNumber, @productId, @conditionId, @accountTaxCodeId)
|
|
", conn))
|
|
{
|
|
cmd.Parameters.AddWithValue("@skuNumber", skuNumber);
|
|
cmd.Parameters.AddWithValue("@productId", productId);
|
|
cmd.Parameters.AddWithValue("@conditionId", conditionId);
|
|
cmd.Parameters.AddWithValue("@accountTaxCodeId", accountTaxCodeId);
|
|
|
|
skuId = (int)cmd.ExecuteScalar();
|
|
}
|
|
|
|
scope.Complete();
|
|
return skuId;
|
|
}
|
|
}
|
|
}
|
|
}
|