Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -2,6 +2,7 @@ package queries
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"strconv"
|
||||
|
||||
"bssapp-backend/models"
|
||||
)
|
||||
@@ -156,7 +157,16 @@ FROM dbo.prItemVariant WITH (UPDLOCK, HOLDLOCK)
|
||||
}
|
||||
|
||||
var inserted int64
|
||||
ensuredItems := make(map[string]struct{}, len(missing))
|
||||
for i, v := range missing {
|
||||
itemKey := strconv.FormatInt(int64(v.ItemTypeCode), 10) + "|" + v.ItemCode
|
||||
if _, ok := ensuredItems[itemKey]; !ok {
|
||||
if err := ensureCdItemTx(tx, v.ItemTypeCode, v.ItemCode, username); err != nil {
|
||||
return inserted, err
|
||||
}
|
||||
ensuredItems[itemKey] = struct{}{}
|
||||
}
|
||||
|
||||
plu := basePlu + int64(i) + 1
|
||||
res, err := tx.Exec(`
|
||||
IF NOT EXISTS (
|
||||
@@ -197,6 +207,93 @@ VALUES (
|
||||
return inserted, nil
|
||||
}
|
||||
|
||||
func ensureCdItemTx(tx *sql.Tx, itemTypeCode int16, itemCode string, username string) error {
|
||||
_, err := tx.Exec(`
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM dbo.cdItem
|
||||
WHERE ItemTypeCode = @p1
|
||||
AND ItemCode = @p2
|
||||
)
|
||||
BEGIN
|
||||
;WITH Template AS (
|
||||
SELECT TOP 1
|
||||
ItemDimTypeCode, ProductTypeCode, ProductHierarchyID,
|
||||
UnitOfMeasureCode1, UnitOfMeasureCode2, UnitConvertRate, UnitConvertRateNotFixed,
|
||||
UseInternet, UsePOS, UseStore, EnablePartnerCompanies, UseManufacturing, UseSerialNumber,
|
||||
GenerateOpticalDataMatrixCode, ByWeight, SupplyPeriod, GuaranteePeriod, ShelfLife, OrderLeadTime,
|
||||
ItemAccountGrCode, ItemTaxGrCode, ItemPaymentPlanGrCode, ItemDiscountGrCode, ItemVendorGrCode,
|
||||
PromotionGroupCode, PromotionGroupCode2, ProductCollectionGrCode, StorePriceLevelCode, PerceptionOfFashionCode,
|
||||
CommercialRoleCode, StoreCapacityLevelCode, CustomsTariffNumberCode, IsFixedExpense, BOMEntityCode, CompanyCode,
|
||||
IsBlocked, IsLocked, LockedDate, IsSalesOrderClosed, IsPurchaseOrderClosed, UseRoll, UseBatch,
|
||||
MaxCreditCardInstallmentCount, GenerateSerialNumber, IsSubsequentDeliveryForR, IsSubsequentDeliveryForRI,
|
||||
IGACommissionGroup, UniFreeCommissionGroup, CustomsProductGroupCode, IsUTSDeclaratedItem, IsStoreOrderClosed
|
||||
FROM dbo.cdItem WITH (UPDLOCK, HOLDLOCK)
|
||||
WHERE ItemTypeCode = @p1
|
||||
AND ItemCode LIKE 'U%'
|
||||
ORDER BY CreatedDate DESC
|
||||
)
|
||||
INSERT INTO dbo.cdItem (
|
||||
ItemTypeCode, ItemCode,
|
||||
ItemDimTypeCode, ProductTypeCode, ProductHierarchyID,
|
||||
UnitOfMeasureCode1, UnitOfMeasureCode2, UnitConvertRate, UnitConvertRateNotFixed,
|
||||
UseInternet, UsePOS, UseStore, EnablePartnerCompanies, UseManufacturing, UseSerialNumber,
|
||||
GenerateOpticalDataMatrixCode, ByWeight, SupplyPeriod, GuaranteePeriod, ShelfLife, OrderLeadTime,
|
||||
ItemAccountGrCode, ItemTaxGrCode, ItemPaymentPlanGrCode, ItemDiscountGrCode, ItemVendorGrCode,
|
||||
PromotionGroupCode, PromotionGroupCode2, ProductCollectionGrCode, StorePriceLevelCode, PerceptionOfFashionCode,
|
||||
CommercialRoleCode, StoreCapacityLevelCode, CustomsTariffNumberCode, IsFixedExpense, BOMEntityCode, CompanyCode,
|
||||
IsBlocked, IsLocked, LockedDate, IsSalesOrderClosed, IsPurchaseOrderClosed,
|
||||
CreatedUserName, CreatedDate, LastUpdatedUserName, LastUpdatedDate, RowGuid,
|
||||
UseRoll, UseBatch, MaxCreditCardInstallmentCount, GenerateSerialNumber,
|
||||
IsSubsequentDeliveryForR, IsSubsequentDeliveryForRI,
|
||||
IGACommissionGroup, UniFreeCommissionGroup, CustomsProductGroupCode, IsUTSDeclaratedItem, IsStoreOrderClosed
|
||||
)
|
||||
SELECT
|
||||
@p1, @p2,
|
||||
t.ItemDimTypeCode, t.ProductTypeCode, t.ProductHierarchyID,
|
||||
t.UnitOfMeasureCode1, t.UnitOfMeasureCode2, t.UnitConvertRate, t.UnitConvertRateNotFixed,
|
||||
t.UseInternet, t.UsePOS, t.UseStore, t.EnablePartnerCompanies, t.UseManufacturing, t.UseSerialNumber,
|
||||
t.GenerateOpticalDataMatrixCode, t.ByWeight, t.SupplyPeriod, t.GuaranteePeriod, t.ShelfLife, t.OrderLeadTime,
|
||||
t.ItemAccountGrCode, t.ItemTaxGrCode, t.ItemPaymentPlanGrCode, t.ItemDiscountGrCode, t.ItemVendorGrCode,
|
||||
t.PromotionGroupCode, t.PromotionGroupCode2, t.ProductCollectionGrCode, t.StorePriceLevelCode, t.PerceptionOfFashionCode,
|
||||
t.CommercialRoleCode, t.StoreCapacityLevelCode, t.CustomsTariffNumberCode, t.IsFixedExpense, t.BOMEntityCode, t.CompanyCode,
|
||||
t.IsBlocked, t.IsLocked, t.LockedDate, t.IsSalesOrderClosed, t.IsPurchaseOrderClosed,
|
||||
@p3, GETDATE(), @p3, GETDATE(), NEWID(),
|
||||
t.UseRoll, t.UseBatch, t.MaxCreditCardInstallmentCount, t.GenerateSerialNumber,
|
||||
t.IsSubsequentDeliveryForR, t.IsSubsequentDeliveryForRI,
|
||||
t.IGACommissionGroup, t.UniFreeCommissionGroup, t.CustomsProductGroupCode, t.IsUTSDeclaratedItem, t.IsStoreOrderClosed
|
||||
FROM Template t;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
INSERT INTO dbo.cdItem (
|
||||
ItemTypeCode, ItemCode,
|
||||
ItemDimTypeCode, ProductTypeCode, ProductHierarchyID,
|
||||
UnitOfMeasureCode1, UnitConvertRate, UnitConvertRateNotFixed,
|
||||
UseInternet, UsePOS, UseStore, EnablePartnerCompanies, UseManufacturing, UseSerialNumber,
|
||||
GenerateOpticalDataMatrixCode, ByWeight, SupplyPeriod, GuaranteePeriod, ShelfLife, OrderLeadTime,
|
||||
IsFixedExpense, IsBlocked, IsLocked, LockedDate, IsSalesOrderClosed, IsPurchaseOrderClosed,
|
||||
CreatedUserName, CreatedDate, LastUpdatedUserName, LastUpdatedDate, RowGuid,
|
||||
UseRoll, UseBatch, MaxCreditCardInstallmentCount, GenerateSerialNumber,
|
||||
IsSubsequentDeliveryForR, IsSubsequentDeliveryForRI, IsUTSDeclaratedItem, IsStoreOrderClosed
|
||||
)
|
||||
VALUES (
|
||||
@p1, @p2,
|
||||
2, 1, 2,
|
||||
'AD', 0, 0,
|
||||
0, 1, 1, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, '1900-01-01', 0, 0,
|
||||
@p3, GETDATE(), @p3, GETDATE(), NEWID(),
|
||||
0, 0, 12, 0,
|
||||
0, 0, 0, 0
|
||||
);
|
||||
END
|
||||
END
|
||||
`, itemTypeCode, itemCode, username)
|
||||
return err
|
||||
}
|
||||
|
||||
func UpdateOrderLinesTx(tx *sql.Tx, orderHeaderID string, lines []models.OrderProductionUpdateLine, username string) (int64, error) {
|
||||
var updated int64
|
||||
for _, line := range lines {
|
||||
|
||||
Reference in New Issue
Block a user