Advertisement
Guest User

Untitled

a guest
May 20th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 34.44 KB | None | 0 0
  1. USE [BELSFA]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[sp_ACU_importOrder] Script Date: 5/20/2019 2:53:59 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[sp_ACU_importOrder] --'SM000001'
  9. @UserName NVARCHAR(50)
  10. AS
  11.  
  12. BEGIN
  13.  
  14. /******************************
  15. * Initialize Variables
  16. *******************************/
  17. -- Lay companyID
  18. DECLARE @CompanyID INT
  19. SELECT @CompanyID = CompanyID
  20. FROM dbo.DMSAimStagingConfig
  21.  
  22.  
  23. /****************************************************************************
  24. * Step 1
  25. * --Lay danh sach nhung don hang chua import vao acu
  26. ****************************************************************************/
  27.  
  28. --Lay danh sach nhung don hang chua import vao acu
  29.  
  30. SELECT *
  31. INTO #Orderlist
  32. --FROM aimOrderHeader WHERE DistributorCode = @companyID AND SlsPerID = @SlsPerID
  33. FROM dbo.DMSAimOrderHeader
  34. WHERE DATEDIFF(dd, OrderDate, GETDATE()) <= 2
  35. AND UserName = @UserName
  36. AND OrderCode NOT IN (
  37. SELECT OrderNbr
  38. FROM BELDMS.dbo.DMSPDAOrder WITH ( NOLOCK )
  39. WHERE CompanyID = @CompanyID
  40. AND SalesmanID = @UserName
  41. AND DATEDIFF(dd, OrderDate, GETDATE()) <= 2 )
  42. AND OrderType IN ( 0, 2, 4 )
  43. --Lay detail
  44.  
  45. SELECT *
  46. INTO #OrderDetail
  47. FROM DMSAimOrderDetail
  48. WHERE UserName = @UserName
  49. AND OrderCode IN ( SELECT OrderCode
  50. FROM #Orderlist )
  51. -- Discount
  52. SELECT *
  53. INTO #OrderDiscount
  54. FROM DMSAimOrderDiscountDetail
  55. WHERE UserName = @UserName
  56. AND OrderCode IN ( SELECT OrderCode
  57. FROM #Orderlist )
  58. -- Loc bo nhung don hang khong có detail
  59. DELETE h
  60. FROM #Orderlist h
  61. LEFT JOIN #OrderDetail d ON h.OrderCode = d.OrderCode
  62. AND h.UserName = d.UserName
  63. WHERE d.OrderCode IS NULL
  64. -- Loc bo nhung don hang co detail, co KM nhung ko co trong bang KM
  65. DELETE h
  66. FROM #Orderlist h
  67. INNER JOIN #OrderDetail d ON h.OrderCode = d.OrderCode
  68. AND h.UserName = d.UserName
  69. AND d.AutoOrManual = 'A'
  70. AND d.PromotionID <> ''
  71. LEFT JOIN #OrderDiscount p ON d.OrderCode = p.OrderCode
  72. AND d.UserName = p.UserName
  73. AND d.PromotionID = p.PromotionID
  74. WHERE p.OrderCode IS NULL
  75. /****************************************************************************
  76. * Step 2
  77. * Insert header
  78. ****************************************************************************/
  79.  
  80. SELECT @CompanyID CompanyID, -- CompanyID - int
  81. b.BranchID , -- BranchID - int
  82. CASE WHEN l.OrderType = 2 THEN 'SO'
  83. WHEN l.OrderType = 4 THEN 'EO'
  84. ELSE 'IN'
  85. END OrderType, -- OrderType - nvarchar(2)
  86. l.OrderCode , -- OrderNbr - nvarchar(20)
  87. l.OrderDate , -- OrderDate - datetime
  88. l.Note , -- Description - nvarchar(255) dang thieu cot nay tren pda
  89. l.TotalLine , -- LineCntr - int
  90. l.CustomerCD , -- CustomerID - nvarchar(20)
  91. c.LocationID , -- CustomerLocation - int
  92. REPLACE(l.RouteCode, '_T', '') RouteCD, -- Route - nvarchar(20)
  93. l.UserName , -- SalesmanID - nvarchar(20)
  94. l.TotalQuantity , -- TotalQuantity - int
  95. l.TotalSKU , -- TotalSKUs - int
  96. l.OrderAmount , -- OrderAmount - decimal
  97. l.LineDiscount , -- LineDiscount - decimal
  98. l.DocDiscountAmt , -- DocumentDiscount - decimal
  99. l.OrderTotal , -- OrderTotal - decimal
  100. 'U' Status, -- Status - char(1)
  101. 'D' PaymentStatus, -- PaymentStatus - char(10
  102. l.ValidDate, -- ValidDate - bit
  103. l.ValidDistance, -- ValidDistance - bit
  104. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' CreatedByID, -- CreatedByID - uniqueidentifier
  105. 'PDA' CreatedByScreenID, -- CreatedByScreenID - char(8)
  106. GETDATE() CreatedDateTime, -- CreatedDateTime - datetime
  107. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' LastModifiedByID, -- LastModifiedByID - uniqueidentifier
  108. 'PDA' LastModifiedByScreenID, -- LastModifiedByScreenID - char(8)
  109. GETDATE() LastModifiedDateTime -- LastModifiedDateTime - datetime
  110. INTO #tmpHeader
  111. FROM #Orderlist l
  112. INNER JOIN BELDMS.dbo.Branch b ON b.BranchCD = l.DistributorCD
  113. AND b.CompanyID = @CompanyID
  114. INNER JOIN dbo.DMSAllCustomer c ON c.CustomerCD = l.CustomerCD
  115. AND c.LocationCD = l.LocationCD
  116. INNER JOIN dbo.DMSAimCustomerVisitedTime v ON v.CustomerCD = l.CustomerCD
  117. AND v.LocationCD = l.LocationCD
  118. AND v.VisitID = l.VisitID
  119. WHERE b.Active = 1;
  120.  
  121. -- Insert header cho đơn của KH mới
  122. INSERT INTO #tmpHeader
  123. (
  124. CompanyID,
  125. BranchID,
  126. OrderType,
  127. OrderCode,
  128. OrderDate,
  129. Note,
  130. TotalLine,
  131. CustomerCD,
  132. LocationID,
  133. RouteCD,
  134. UserName,
  135. TotalQuantity,
  136. TotalSKU,
  137. OrderAmount,
  138. LineDiscount,
  139. DocDiscountAmt,
  140. OrderTotal,
  141. Status,
  142. PaymentStatus,
  143. ValidDate,
  144. ValidDistance,
  145. CreatedByID,
  146. CreatedByScreenID,
  147. CreatedDateTime,
  148. LastModifiedByID,
  149. LastModifiedByScreenID,
  150. LastModifiedDateTime
  151. )
  152. SELECT @CompanyID , -- CompanyID - int
  153. b.BranchID , -- BranchID - int
  154. CASE WHEN l.OrderType = 2 THEN 'SO'
  155. WHEN l.OrderType = 4 THEN 'EO'
  156. ELSE 'IN'
  157. END , -- OrderType - nvarchar(2)
  158. l.OrderCode , -- OrderNbr - nvarchar(20)
  159. l.OrderDate , -- OrderDate - datetime
  160. l.Note , -- Description - nvarchar(255) dang thieu cot nay tren pda
  161. l.TotalLine , -- LineCntr - int
  162. l.CustomerCD , -- CustomerID - nvarchar(20)
  163. 0 , -- CustomerLocation - int
  164. REPLACE(l.RouteCode, '_T', '') , -- Route - nvarchar(20)
  165. l.UserName , -- SalesmanID - nvarchar(20)
  166. l.TotalQuantity , -- TotalQuantity - int
  167. l.TotalSKU , -- TotalSKUs - int
  168. l.OrderAmount , -- OrderAmount - decimal
  169. l.LineDiscount , -- LineDiscount - decimal
  170. l.DocDiscountAmt , -- DocumentDiscount - decimal
  171. l.OrderTotal , -- OrderTotal - decimal
  172. 'U' , -- Status - char(1)
  173. 'D' , -- PaymentStatus - char(10
  174. 0 , -- ValidDate - bit
  175. 0 , -- ValidDistance - bit
  176. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' , -- CreatedByID - uniqueidentifier
  177. 'PDA' , -- CreatedByScreenID - char(8)
  178. GETDATE() , -- CreatedDateTime - datetime
  179. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' , -- LastModifiedByID - uniqueidentifier
  180. 'PDA' , -- LastModifiedByScreenID - char(8)
  181. GETDATE()
  182. FROM #Orderlist l
  183. INNER JOIN BELDMS.dbo.Branch b ON b.BranchCD = l.DistributorCD
  184. AND b.CompanyID = @CompanyID
  185. WHERE b.Active = 1 AND NOT EXISTS (SELECT * FROM dbo.DMSAllCustomer c WHERE c.CustomerCD = l.CustomerCD)
  186.  
  187.  
  188.  
  189. /****************************************************************************
  190. * Step 3
  191. * Insert detail
  192. ****************************************************************************/
  193.  
  194. SELECT @CompanyID CompanyID, -- CompanyID - int
  195. b.BranchID , -- BranchID - int
  196. CASE WHEN l.OrderType = 2 THEN 'SO'
  197. WHEN l.OrderType = 4 THEN 'EO'
  198. ELSE 'IN'
  199. END OrderType, -- OrderType - nvarchar(2) =
  200. l.OrderCode , -- OrderNbr - nvarchar(20)
  201. ROW_NUMBER() OVER ( ORDER BY l.OrderCode ) LineNbr, -- LineNbr - int
  202. i.InventoryID , -- InventoryID - int
  203. N'' Description, -- Description - nvarchar(255)
  204. CASE WHEN m.SiteID IS NULL THEN c.SiteID
  205. ELSE m.SiteID
  206. END SiteID, -- SiteID - int
  207. 0 LocationID, -- LocationID - int
  208. d.FreeItem , -- IsFree - bit
  209. i.UnitPerCase , -- UOM - nvarchar(10)
  210. d.UnitPrice , -- SalesPrice - decimal
  211. d.SuggestQty , -- SuggestQty - decimal
  212. d.OrderQty , -- OrderQty - decimal
  213. d.DeliveryQty , -- DeliveryQty - decimal
  214. d.ShippedQty , -- ShippedQty - decimal
  215. CASE WHEN d.AutoOrManual = 'M' THEN 1
  216. ELSE 0
  217. END ManualDiscount, -- ManualDiscount - bit
  218. d.AllocationID , -- AllocationID - int
  219. p.PromotionID , -- PromotionID - int
  220. p2.PromotionID ManualPromotionID, -- ManualPromotionID - int
  221. d.IncentiveID , -- IncentiveID - int
  222. d.LineBeforeDiscount , -- LineBeforeDiscount - decimal
  223. d.DiscountAmt , -- DiscountAmt - decimal
  224. d.LineAmt , -- LineAmt - decimal
  225. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' CreatedByID, -- CreatedByID - uniqueidentifier
  226. 'PDA' CreatedByScreenID, -- CreatedByScreenID - char(8)
  227. GETDATE() CreatedDateTime, -- CreatedDateTime - datetime
  228. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' LastModifiedByID, -- LastModifiedByID - uniqueidentifier
  229. 'PDA' LastModifiedByScreenID, -- LastModifiedByScreenID - char(8)
  230. GETDATE() LastModifiedDateTime, -- LastModifiedDateTime - datetime
  231. d.IsPosm -- IsPosm - int
  232. INTO #tmpDetail
  233. FROM #OrderDetail d
  234. INNER JOIN #Orderlist l ON l.OrderCode = d.OrderCode
  235. AND l.UserName = d.UserName
  236. INNER JOIN BELDMS.dbo.Branch b ON b.BranchCD = l.DistributorCD
  237. AND b.CompanyID = @CompanyID
  238. INNER JOIN dbo.DMSAimInventoryList i ON d.InventoryCD = i.InventoryCD
  239. INNER JOIN dbo.DMSAimCustomer c ON c.CustomerCD = l.CustomerCD
  240. AND c.LocationCD = l.LocationCD
  241. AND c.UserName = l.UserName
  242. INNER JOIN dbo.DMSAllCustomer cu ON c.CustomerCD = cu.CustomerCD
  243. AND cu.LocationCD = c.LocationCD
  244. LEFT JOIN BELDMS.dbo.DMSPRODiscount p ON d.PromotionID = p.PromotionCD
  245. AND p.CompanyID = @CompanyID
  246. LEFT JOIN BELDMS.dbo.DMSPRODiscount p2 ON d.ManualPromotionID = p2.PromotionCD
  247. AND p2.CompanyID = @CompanyID
  248. LEFT JOIN BELDMS.dbo.DMSCustomerDeliveryMapping m ON cu.BaccountID = m.CustomerID
  249. AND cu.LocationID = m.CustomerLocationID
  250. AND m.CompanyID = @CompanyID
  251. AND b.BranchID = m.DistributorID
  252. WHERE b.Active = 1
  253. ORDER BY d.OrderCode
  254.  
  255. -- Insert detail cho đơn của KH mới
  256. INSERT INTO #tmpDetail
  257. (
  258. CompanyID,
  259. BranchID,
  260. OrderType,
  261. OrderCode,
  262. LineNbr,
  263. InventoryID,
  264. Description,
  265. SiteID,
  266. LocationID,
  267. FreeItem,
  268. UnitPerCase,
  269. UnitPrice,
  270. SuggestQty,
  271. OrderQty,
  272. DeliveryQty,
  273. ShippedQty,
  274. ManualDiscount,
  275. AllocationID,
  276. PromotionID,
  277. ManualPromotionID,
  278. IncentiveID,
  279. LineBeforeDiscount,
  280. DiscountAmt,
  281. LineAmt,
  282. CreatedByID,
  283. CreatedByScreenID,
  284. CreatedDateTime,
  285. LastModifiedByID,
  286. LastModifiedByScreenID,
  287. LastModifiedDateTime,
  288. IsPosm
  289. )
  290. SELECT @CompanyID , -- CompanyID - int
  291. b.BranchID , -- BranchID - int
  292. CASE WHEN l.OrderType = 2 THEN 'SO'
  293. WHEN l.OrderType = 4 THEN 'EO'
  294. ELSE 'IN'
  295. END , -- OrderType - nvarchar(2) =
  296. l.OrderCode , -- OrderNbr - nvarchar(20)
  297. ROW_NUMBER() OVER ( ORDER BY l.OrderCode ) , -- LineNbr - int
  298. i.InventoryID , -- InventoryID - int
  299. N'' , -- Description - nvarchar(255)
  300. s.SiteID , -- SiteID - int
  301. s.ReceiptLocationID , -- LocationID - int
  302. d.FreeItem , -- IsFree - bit
  303. i.UnitPerCase , -- UOM - nvarchar(10)
  304. d.UnitPrice , -- SalesPrice - decimal
  305. d.SuggestQty , -- SuggestQty - decimal
  306. d.OrderQty , -- OrderQty - decimal
  307. d.DeliveryQty , -- DeliveryQty - decimal
  308. d.ShippedQty , -- ShippedQty - decimal
  309. CASE WHEN d.AutoOrManual = 'M' THEN 1
  310. ELSE 0
  311. END , -- ManualDiscount - bit
  312. d.AllocationID , -- AllocationID - int
  313. p.PromotionID , -- PromotionID - int
  314. p2.PromotionID , -- ManualPromotionID - int
  315. d.IncentiveID , -- IncentiveID - int
  316. d.LineBeforeDiscount , -- LineBeforeDiscount - decimal
  317. d.DiscountAmt , -- DiscountAmt - decimal
  318. d.LineAmt , -- LineAmt - decimal
  319. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' , -- CreatedByID - uniqueidentifier
  320. 'PDA' , -- CreatedByScreenID - char(8)
  321. GETDATE() , -- CreatedDateTime - datetime
  322. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' , -- LastModifiedByID - uniqueidentifier
  323. 'PDA' , -- LastModifiedByScreenID - char(8)
  324. GETDATE() , -- LastModifiedDateTime - datetime
  325. d.IsPosm
  326. FROM #OrderDetail d
  327. INNER JOIN #Orderlist l ON l.OrderCode = d.OrderCode
  328. AND l.UserName = d.UserName
  329. INNER JOIN BELDMS.dbo.Branch b ON b.BranchCD = l.DistributorCD
  330. AND b.CompanyID = @CompanyID
  331. INNER JOIN
  332. (
  333. SELECT BranchID,
  334. SiteID,
  335. ReceiptLocationID,
  336. UsrIsDefault,
  337. RowNumber = ROW_NUMBER() OVER (PARTITION BY CompanyID,
  338. BranchID,
  339. SiteID,
  340. ISNULL(UsrIsDefault, 0)
  341. ORDER BY CompanyID,
  342. BranchID,
  343. SiteID,
  344. ISNULL(UsrIsDefault, 0) DESC
  345. )
  346. FROM BELDMS.dbo.INSite
  347. WHERE CompanyID = @CompanyID AND Active = 1
  348. ) s ON s.BranchID = b.BranchID
  349. AND (s.UsrIsDefault = 1 OR s.RowNumber = 1)
  350. INNER JOIN dbo.DMSAimInventoryList i ON d.InventoryCD = i.InventoryCD
  351. LEFT JOIN BELDMS.dbo.DMSPRODiscount p ON d.PromotionID = p.PromotionCD
  352. AND p.CompanyID = @CompanyID
  353. LEFT JOIN BELDMS.dbo.DMSPRODiscount p2 ON d.ManualPromotionID = p2.PromotionCD
  354. AND p2.CompanyID = @CompanyID
  355. WHERE NOT EXISTS (SELECT * FROM dbo.DMSAllCustomer c WHERE c.CustomerCD = l.CustomerCD)
  356. ORDER BY d.OrderCode
  357.  
  358.  
  359. -- Insert lô
  360. SELECT @CompanyID CompanyID, -- CompanyID - int
  361. ol.BranchID , -- BranchID - int
  362. ol.OrderType , -- OrderType - nvarchar(2)
  363. ol.OrderCode , -- OrderNbr - nvarchar(20)
  364. ol.LineNbr , -- LineNbr - int
  365. i.InventoryID , -- InventoryID - int
  366. ol.FreeItem , -- IsFree - bit
  367. lot.Quantity , -- OrderQty - decimal
  368. lot.AllocationID , -- AllocationID - int
  369. ol.PromotionID , -- PromotionID - int
  370. ol.ManualPromotionID , -- ManualPromotionID - int
  371. lot.IncentiveID , -- IncentiveID - nvarchar(20)
  372. lot.Lot , -- LotSerialNbr - nvarchar(100)
  373. lot.ExpireDate -- ExpireDate - datetime
  374. INTO #tmpLot
  375. FROM dbo.DMSAimOrderInventoryLot lot
  376. INNER JOIN dbo.DMSAimInventoryList i ON lot.InventoryCD = i.InventoryCD
  377. LEFT JOIN BELDMS.dbo.DMSPRODiscount p ON lot.PromotionID = p.PromotionCD
  378. AND p.CompanyID = @CompanyID
  379. LEFT JOIN BELDMS.dbo.DMSPRODiscount p2 ON lot.ManualPromotionID = p2.PromotionCD
  380. AND p2.CompanyID = @CompanyID
  381. INNER JOIN #tmpDetail ol ON lot.OrderCode = ol.OrderCode
  382. AND i.InventoryID = ol.InventoryID
  383. AND lot.FreeItem = ol.FreeItem
  384. AND ( p.PromotionID = ol.PromotionID
  385. OR ( p.PromotionID IS NULL
  386. AND ol.PromotionID IS NULL
  387. )
  388. )
  389. AND lot.AllocationID = ol.AllocationID
  390. AND ( p2.PromotionID = ol.ManualPromotionID
  391. OR ( p2.PromotionID IS NULL
  392. AND ol.ManualPromotionID IS NULL
  393. )
  394. )
  395. AND lot.IncentiveID = ol.IncentiveID
  396.  
  397. /****************************************************************************
  398. * Step 4
  399. * Insert promotion
  400. ****************************************************************************/
  401.  
  402. SELECT @CompanyID CompanyID, -- CompanyID - int
  403. b.BranchID , -- BranchID - int
  404. l.OrderCode , -- OrderNbr - varchar(15)
  405. CASE WHEN l.OrderType = 2 THEN 'SO'
  406. WHEN l.OrderType = 4 THEN 'EO'
  407. ELSE 'IN'
  408. END OrderType, -- OrderType - varchar(15)
  409. p.PromotionID , -- PromotionID - int
  410. di.Type , -- Type - char(1)
  411. i.InventoryID , -- InventoryID - int
  412. ROW_NUMBER() OVER ( ORDER BY l.OrderCode ) LineNbr, -- LineNbr - int
  413. di.OrderBreakQty , -- OrderBreakByQty - decimal
  414. CAST(CAST(di.OrderBreakAmt AS FLOAT) AS DECIMAL(18,
  415. 2)) OrderBreakByAmt, -- OrderBreakByAmt - decimal
  416. di.OrderFreeQty , -- OrderFreeQty - decimal
  417. CAST(CAST(di.OrderFreeAmt AS FLOAT) AS DECIMAL(18,
  418. 2)) OrderFreeAmt, -- OrderFreeAmt - decimal
  419. CAST(CAST(di.OrderContributeFreeAmt AS FLOAT) AS DECIMAL(18,
  420. 2)) OrderContributeFreeAmt, -- OrderContributeFreeAmt - decimal
  421. 0 ShipmentBreakQty, -- ShipmentBreakQty - decimal
  422. 0 ShipmentFreeQty, -- ShipmentFreeQty - decimal
  423. 0 InvoiceBreakQty, -- InvoiceBreakQty - decimal
  424. 0 InvoiceFreeQty, -- InvoiceFreeQty - decimal
  425. 0 InvoiceContributeFreeAmt, -- InvoiceContributeFreeAmt - decimal
  426. di.BreakDownLevelID
  427. INTO #tmpPromo
  428. FROM #OrderDiscount di
  429. INNER JOIN #Orderlist l ON l.DistributorCD = di.DistributorCD
  430. AND l.OrderCode = di.OrderCode
  431. AND l.UserName = di.UserName
  432. INNER JOIN BELDMS.dbo.Branch b ON b.BranchCD = l.DistributorCD
  433. AND b.CompanyID = @CompanyID
  434. INNER JOIN dbo.DMSAimInventoryList i ON i.InventoryCD = di.InventoryCD
  435. LEFT JOIN BELDMS.dbo.DMSPRODiscount p ON di.PromotionID = p.PromotionCD
  436. AND p.CompanyID = @CompanyID
  437. WHERE b.Active = 1
  438.  
  439. /****************************************************************************
  440. * Step 5
  441. * Insert Incentive detail
  442. ****************************************************************************/
  443.  
  444. SELECT @CompanyID AS CompanyID, -- CompanyID - int
  445. d.IncentiveLineNbr, -- IncentiveLineNbr - int
  446. d.IncentiveType, -- IncentiveType - char(1)
  447. b.BranchID, -- BranchID - int
  448. o.OrderCode, -- OrderNbr - varchar(20)
  449. o.OrderType, -- OrderType - varchar(15)
  450. ed.ProgramID, -- ProgramID - int
  451. ISNULL(il.InventoryID, 0) AS InventoryID, -- InventoryID - int
  452. ISNULL(d.IncentiveQty, 0) AS IncentiveQty, -- InventoryQty - decimal(18, 2)
  453. ISNULL(d.IncentiveAmount, 0) AS IncentiveAmount, -- IncentiveAmt - decimal(18, 2)
  454. ed.RefNbr, -- RefNbr - nvarchar(50)
  455. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' AS CreatedByID, -- CreatedByID - uniqueidentifier
  456. 'PDA' AS CreatedByScreenID, -- CreatedByScreenID - char(8)
  457. GETDATE() AS CreatedDateTime, -- CreatedDateTime - datetime
  458. 'B5344897-037E-4D58-B5C3-1BDFD0F47BF9' AS LastModifiedByID, -- LastModifiedByID - uniqueidentifier
  459. 'PDA' AS LastModifiedByScreenID, -- LastModifiedByScreenID - char(8)
  460. GETDATE() AS LastModifiedDateTime -- LastModifiedDateTime - datetime
  461. INTO #tmpIncentiveDetail
  462. FROM dbo.DMSAimOrderIncentiveDetail d
  463. JOIN #Orderlist o ON o.UserName = d.UserName
  464. AND o.OrderCode = d.OrderCode
  465. JOIN BELDMS.dbo.Branch b ON b.BranchCD = o.DistributorCD
  466. AND b.CompanyID = @CompanyID
  467. JOIN BELDMS.dbo.DMSEvaluationDefine ed ON ed.CompanyID = @CompanyID
  468. AND ed.RefNbr = d.IncentiveCD
  469. LEFT JOIN dbo.DMSAimInventoryList il ON il.InventoryCD = d.InventoryCD
  470. WHERE b.Active = 1
  471.  
  472. /****************************************************************************
  473. * Step 6
  474. * Insert all using transaction
  475. ****************************************************************************/
  476.  
  477. BEGIN TRY
  478. BEGIN TRANSACTION
  479.  
  480. INSERT INTO BELDMS.dbo.DMSPDAOrder
  481. (
  482. CompanyID,
  483. BranchID,
  484. OrderType,
  485. OrderNbr,
  486. OrderDate,
  487. Description,
  488. LineCntr,
  489. CustomerID,
  490. CustomerLocation,
  491. Route,
  492. SalesmanID,
  493. TotalQuantity,
  494. TotalSKUs,
  495. OrderAmount,
  496. LineDiscount,
  497. DocumentDiscount,
  498. OrderTotal,
  499. Status,
  500. PaymentStatus,
  501. ValidDate,
  502. ValidDistance,
  503. CreatedByID,
  504. CreatedByScreenID,
  505. CreatedDateTime,
  506. LastModifiedByID,
  507. LastModifiedByScreenID,
  508. LastModifiedDateTime
  509. )
  510. SELECT CompanyID,
  511. BranchID,
  512. OrderType,
  513. OrderCode,
  514. OrderDate,
  515. Note,
  516. TotalLine,
  517. CustomerCD,
  518. LocationID,
  519. RouteCD,
  520. UserName,
  521. TotalQuantity,
  522. TotalSKU,
  523. OrderAmount,
  524. LineDiscount,
  525. DocDiscountAmt,
  526. OrderTotal,
  527. Status,
  528. PaymentStatus,
  529. ValidDate,
  530. ValidDistance,
  531. CreatedByID,
  532. CreatedByScreenID,
  533. CreatedDateTime,
  534. LastModifiedByID,
  535. LastModifiedByScreenID,
  536. LastModifiedDateTime
  537. FROM #tmpHeader;
  538.  
  539.  
  540. INSERT INTO BELDMS.dbo.DMSPDAOrderLine
  541. (
  542. CompanyID,
  543. BranchID,
  544. OrderType,
  545. OrderNbr,
  546. LineNbr,
  547. InventoryID,
  548. Description,
  549. SiteID,
  550. LocationID,
  551. IsFree,
  552. UOM,
  553. SalesPrice,
  554. SuggestQty,
  555. OrderQty,
  556. DeliveryQty,
  557. ShippedQty,
  558. ManualDiscount,
  559. AllocationID,
  560. PromotionID,
  561. ManualPromotionID,
  562. IncentiveID,
  563. LineBeforeDiscount,
  564. DiscountAmt,
  565. LineAmt,
  566. CreatedByID,
  567. CreatedByScreenID,
  568. CreatedDateTime,
  569. LastModifiedByID,
  570. LastModifiedByScreenID,
  571. LastModifiedDateTime,
  572. IsPosm
  573. )
  574. SELECT CompanyID,
  575. BranchID,
  576. OrderType,
  577. OrderCode,
  578. LineNbr,
  579. InventoryID,
  580. Description,
  581. SiteID,
  582. LocationID,
  583. FreeItem,
  584. UnitPerCase,
  585. UnitPrice,
  586. SuggestQty,
  587. OrderQty,
  588. DeliveryQty,
  589. ShippedQty,
  590. ManualDiscount,
  591. AllocationID,
  592. PromotionID,
  593. ManualPromotionID,
  594. IncentiveID,
  595. LineBeforeDiscount,
  596. DiscountAmt,
  597. LineAmt,
  598. CreatedByID,
  599. CreatedByScreenID,
  600. CreatedDateTime,
  601. LastModifiedByID,
  602. LastModifiedByScreenID,
  603. LastModifiedDateTime,
  604. IsPosm
  605. FROM #tmpDetail;
  606.  
  607. INSERT INTO BELDMS.dbo.DMSPDAInventoryLot
  608. (
  609. CompanyID,
  610. BranchID,
  611. OrderType,
  612. OrderNbr,
  613. LineNbr,
  614. InventoryID,
  615. IsFree,
  616. OrderQty,
  617. AllocationID,
  618. PromotionID,
  619. ManualPromotionID,
  620. IncentiveID,
  621. LotSerialNbr,
  622. ExpireDate
  623. )
  624. SELECT CompanyID,
  625. BranchID,
  626. OrderType,
  627. OrderCode,
  628. LineNbr,
  629. InventoryID,
  630. FreeItem,
  631. Quantity,
  632. AllocationID,
  633. PromotionID,
  634. ManualPromotionID,
  635. IncentiveID,
  636. Lot,
  637. ExpireDate
  638. FROM #tmpLot;
  639.  
  640.  
  641. INSERT INTO BELDMS.dbo.DMSPDAPromotionDetail
  642. (
  643. CompanyID,
  644. BranchID,
  645. OrderNbr,
  646. OrderType,
  647. PromotionID,
  648. Type,
  649. InventoryID,
  650. LineNbr,
  651. OrderBreakByQty,
  652. OrderBreakByAmt,
  653. OrderFreeQty,
  654. OrderFreeAmt,
  655. OrderContributeFreeAmt,
  656. ShipmentBreakQty,
  657. ShipmentFreeQty,
  658. InvoiceBreakQty,
  659. InvoiceFreeQty,
  660. InvoiceContributeFreeAmt,
  661. OrderBreakByLevel
  662. )
  663. SELECT CompanyID,
  664. BranchID,
  665. OrderCode,
  666. OrderType,
  667. PromotionID,
  668. Type,
  669. InventoryID,
  670. LineNbr,
  671. OrderBreakQty,
  672. OrderBreakByAmt,
  673. OrderFreeQty,
  674. OrderFreeAmt,
  675. OrderContributeFreeAmt,
  676. ShipmentBreakQty,
  677. ShipmentFreeQty,
  678. InvoiceBreakQty,
  679. InvoiceFreeQty,
  680. InvoiceContributeFreeAmt,
  681. BreakDownLevelID
  682. FROM #tmpPromo;
  683.  
  684. INSERT INTO BELDMS.dbo.DMSPDAIncentiveDetail
  685. (
  686. CompanyID,
  687. IncentiveLineNbr,
  688. IncentiveType,
  689. BranchID,
  690. OrderNbr,
  691. OrderType,
  692. ProgramID,
  693. InventoryID,
  694. InventoryQty,
  695. IncentiveAmt,
  696. RefNbr,
  697. CreatedByID,
  698. CreatedByScreenID,
  699. CreatedDateTime,
  700. LastModifiedByID,
  701. LastModifiedByScreenID,
  702. LastModifiedDateTime
  703. )
  704. SELECT CompanyID,
  705. IncentiveLineNbr,
  706. IncentiveType,
  707. BranchID,
  708. OrderCode,
  709. OrderType,
  710. ProgramID,
  711. InventoryID,
  712. IncentiveQty,
  713. IncentiveAmount,
  714. RefNbr,
  715. CreatedByID,
  716. CreatedByScreenID,
  717. CreatedDateTime,
  718. LastModifiedByID,
  719. LastModifiedByScreenID,
  720. LastModifiedDateTime
  721. FROM #tmpIncentiveDetail;
  722.  
  723. COMMIT TRANSACTION
  724. END TRY
  725.  
  726. BEGIN CATCH
  727. SELECT ERROR_MESSAGE() AS ErrorMessage;
  728. ROLLBACK TRANSACTION
  729. END CATCH
  730.  
  731. DROP TABLE #Orderlist
  732. DROP TABLE #OrderDetail
  733. DROP TABLE #OrderDiscount
  734.  
  735. DROP TABLE #tmpHeader
  736. DROP TABLE #tmpDetail
  737. DROP TABLE #tmpLot
  738. DROP TABLE #tmpPromo
  739. DROP TABLE #tmpIncentiveDetail
  740.  
  741. EXEC dbo.sp_Import_SalesmanStockRequest @UserName, @CompanyID -- int
  742. EXEC dbo.sp_Import_ManagementPOSM @UserName , @CompanyID
  743. EXEC dbo.sp_import_Incentive @UserName , @CompanyID
  744.  
  745. EXEC dbo.sp_Import_Survey @UserName ,@CompanyID
  746. -- EXEC sp_Import_StockCount @UserName , @CompanyID
  747.  
  748. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement