Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE [DevPluriva]
- GO
- /****** Object: StoredProcedure [Retail].[SyncRetailNewErp] Script Date: 11/20/2019 11:10:05 AM ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- ALTER PROCEDURE [Retail].[SyncRetailNewErp]
- @FirmaId INT=null
- , @DivizieID INT =null
- , @DinJob BIT = NULL
- , @Descarcare BIT = 1
- --Sincronizare bonuri(cap/pozitii) din Retail.BufferPozitiiBon
- --versiune inclusiv pozitii din buffer cu intrpozid si serieintrare
- AS
- BEGIN
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
- --SET XACT_ABORT ON;
- DECLARE
- @OK BIT = 0
- , @DataCrt DATETIME = GETDATE()
- EXEC dbo.StartSemafor
- 'POS_BONURI'
- , 30
- , @DataCrt
- , @DinJob
- , @OK OUTPUT
- , @FirmaId
- , @DivizieID
- IF (ISNULL(@OK, 0) = 1)
- BEGIN
- WHILE EXISTS (SELECT TOP 1
- [FirmaId]
- , [DivizieId]
- , [CapIesireId]
- , [PozIesireId]
- , [DataValidare]
- , ISNULL([Identificator],'')
- , ISNULL([IdentificatorStatieId],0)
- , ISNULL([CodServer],'')
- FROM retail.BufferPozitiiBon
- WHERE FirmaID = @FirmaId
- AND DivizieID = @DivizieId
- GROUP BY
- [FirmaId]
- , [DivizieId]
- , [CapIesireId]
- , [PozIesireId]
- , [DataValidare]
- , ISNULL([Identificator],'')
- , ISNULL([IdentificatorStatieId],0)
- , ISNULL([CodServer],'')
- HAVING COUNT(*) > 1)
- BEGIN
- DECLARE
- @capiesireid INT
- , @poziesireid INT
- , @datavalidare DATETIME
- , @identificator NVARCHAR(MAX)
- , @identificatorid INT
- , @codserver NVARCHAR(MAX)
- , @x INT
- SELECT TOP 1
- @capiesireid = CapIesireID
- , @poziesireid = PozIesireID
- , @datavalidare = DataValidare
- , @identificator = ISNULL(Identificator,'')
- , @identificatorid = ISNULL(IdentificatorStatieID,0)
- , @codserver = ISNULL(CodServer,'')
- , @x = COUNT(*) - 1
- FROM retail.BufferPozitiiBon
- WHERE FirmaID = @FirmaId
- AND DivizieID = @DivizieId
- GROUP BY
- [FirmaId]
- , [DivizieId]
- , [CapIesireId]
- , [PozIesireId]
- , [DataValidare]
- , ISNULL([Identificator],'')
- , ISNULL([IdentificatorStatieId],0)
- , ISNULL([CodServer],'')
- HAVING COUNT(*) > 1
- DELETE TOP (@x) rb
- FROM retail.BufferPozitiiBon rb
- WHERE FirmaID = @firmaid
- AND DivizieID = @divizieid
- AND CapIesireID = @capiesireid
- AND PozIesireID = @poziesireid
- AND DataValidare = @datavalidare
- AND ISNULL(Identificator,'') = ISNULL(@identificator,'')
- AND ISNULL(IdentificatorStatieID,0) = ISNULL(@identificatorid,0)
- AND ISNULL(CodServer,'') = ISNULL(@codserver,'')
- END
- BEGIN TRY
- DECLARE
- @DocIdBon INT
- , @Debug INT = 0
- , @IesCapId INT
- , @IesPozId INT
- , @IntrPozId INT
- , @FurnizorID INT
- , @FurnizorOriginalID INT
- , @NumarIntr NVARCHAR(50)
- , @DataIntr DATE
- , @DocIntrId INT
- , @TipDocINtrID INT
- , @DataScadenta DATE
- , @NumarFactIntr NVARCHAR(50)
- , @DataFactIntr DATE
- , @PretIntrare DECIMAL(18,5)
- , @PretIntrareRedus DECIMAL(18,5)
- , @PretCost DECIMAL(18,5)
- , @PretCMP DECIMAL(18,5)
- , @PretIntrareValuta DECIMAL(18,5)
- , @ValutaIntrareId CHAR(3)
- , @GestiuneId INT
- , @LotIntrare NVARCHAR(50)
- , @DataExpirare DATE
- , @DataFabricare DATE
- , @SerieIntrare NVARCHAR(50)
- , @IntrPozOrigId INT
- , @POOrderPozId INT
- , @CantIesire DECIMAL(18,5)
- , @Cant2 DECIMAL(18,5)
- , @CantRetur DECIMAL(18,5)
- , @Stoc DECIMAL(18,5)
- , @TempSyncID INT
- , @RetailPozIesireReturID INT
- , @IesPozRefDetId INT
- , @ProdusID INT
- , @Serie NVARCHAR(100)
- , @AgentId INT
- , @Amanunt BIT
- , @PretAmanuntBuffer DECIMAL(18,5)
- , @PretAmanuntStoc DECIMAL(18,5)
- , @Reev BIT
- , @UserId int
- , @GenerareReev BIT
- , @NrZecimaleAmanunt int
- , @NrZecimalePretVanzare int
- , @NrZecimalePretIntrare int
- , @IdIesPoz INT
- , @GestiuneDestinatieId INT
- , @AmanuntGestiuneDestinatie BIT
- , @setare623 INT
- , @setare351 INT
- , @Setare350 INT
- , @GestiuniMPIds NVARCHAR(MAX)
- SELECT
- @NrZecimaleAmanunt = ISNULL(dbo.ValoareSetare(529,@FirmaId,@DivizieId),2)
- , @NrZecimalePretVanzare = ISNULL(dbo.ValoareSetare(247,@FirmaId,@DivizieId),2)
- , @NrZecimalePretIntrare = ISNULL(dbo.ValoareSetare(295,@FirmaId,@divizieid),2)
- , @setare623 = ISNULL(dbo.ValoareSetare(623,@FirmaId,@divizieid),2)
- , @setare351 = dbo.ValoareSetare(351,@FirmaId,@DivizieID)
- , @setare350 = dbo.ValoareSetare(350,@FirmaId,@DivizieID)
- DECLARE @ErrorMessage NVARCHAR(4000)
- DECLARE @ErrorSeverity INT
- DECLARE @ErrorState INT
- DECLARE @CrsStat INT
- DECLARE @ValutaDefaultId VARCHAR(10)
- -- Citire configurari din Retail.Config
- DECLARE @ConfigTipDocIdFacturaCuStoc INT
- DECLARE @ConfigTipDocIdBonCuStoc INT
- DECLARE @ConfigTipDocBonConsum INT
- DECLARE @ConfigVersiune NVARCHAR(10) -- 3-frmwrk vechi, 4-frmwrk nou
- DECLARE @ConfigGestiuni NVARCHAR(4000) -- coduri gestiuni separate prin virgula
- DECLARE @GestiuniIdsBonConsum NVARCHAR(MAX)
- DECLARE @GestiuniRetail NVARCHAR(MAX)
- DECLARE @ConfigCapListaPreturiID INT -- catalogul de preturi
- DECLARE @ConfigClientImplicitID INT
- DECLARE @ConfigID INT
- DECLARE @ConfigTaxCode INT
- DECLARE @ConfigTaxCodeBFF INT
- DECLARE @ConfigTaxCodeBC INT
- DECLARE @IgnoraAmbalaje BIT
- DECLARE @TipDocStoc BIT
- DECLARE @TipDocBCStoc BIT
- DECLARE @PlajaBCId INT
- DECLARE @StareCmdNoua INT
- SELECT TOP 1 @StareCmdNoua = StareId
- FROM dbo.tblStariDoc (NOLOCK)
- WHERE DocId = 26--comanda client
- AND FirmaId = @FirmaId
- AND DivizieId = @DivizieId
- AND ISNULL(Final, 0) = 1
- AND ISNULL(FinalizatPartial, 0) = 1
- AND ISNULL(DocValidat, 0) = 1
- SELECT
- @ConfigID = ConfigId
- , @ConfigTipDocIdFacturaCuStoc = TipDocIdFacturaCuStoc
- , @ConfigTipDocIdBonCuStoc = TipDocIdBonCuStoc
- , @ConfigTipDocBonConsum = TipDocIdBonConsum
- , @ConfigVersiune = ISNULL(Versiune,'3')
- , @ConfigGestiuni = Gestiuni
- , @ConfigCapListaPreturiID = ISNULL(CapListaPreturiID,0)
- , @ConfigClientImplicitID = ClientImplicitID
- , @ConfigTaxCode = TaxCode
- , @ConfigTaxCodeBFF = TaxCodeBFFactura
- , @GenerareReev = ISNULL(GenerareReev,0)
- , @Descarcare = CASE WHEN FaraDescarcareStoc = 1 THEN 0 ELSE @Descarcare END
- --, @NrZecimaleAmanunt = ISNULL(NrZecimaleAmanunt,2)
- FROM Retail.Config (NOLOCK)
- WHERE FirmaId = @FirmaId
- AND DivizieId = @DivizieId
- IF @ConfigTipDocBonConsum IS NULL
- BEGIN
- SELECT TOP 1 @ConfigTipDocBonConsum = TipDocId
- FROM inv.TipDoc (NOLOCK)
- WHERE DocId = 13
- AND Firmaid = @FirmaId
- AND DivizieId = @DivizieId
- AND ISNULL(Inactiv,0) = 0
- END
- SELECT
- @GestiuniIdsBonConsum = GestiuneIds
- , @ConfigTaxCodeBC = TaxCodeP
- , @PlajaBCId = TPlajaId
- , @TipDocBCStoc = ISNULL(Stoc,0)
- FROM inv.TipDoc (NOLOCK)
- WHERE TipDocId = @ConfigTipDocBonConsum
- IF @PlajaBCId IS NULL
- BEGIN
- SELECT TOP 1 @PlajaBCId = pd.PlajaId
- FROM dbo.PlajaDoc pd (NOLOCK)
- WHERE pd.FirmaId = @FirmaId
- AND pd.DivizieId = @DivizieID
- AND pd.DocId = 13
- AND CAST(@DataCrt as DATE) BETWEEN CAST(ISNULL(pd.DataStart,'1979-01-01') AS DATE) AND CAST(ISNULL(pd.DataEnd,'2100-12-31') AS DATE)
- END
- SELECT
- @IgnoraAmbalaje = IgnoraAmbalaje
- , @TipDocStoc = ISNULL(Stoc,0)
- FROM inv.TipDoc (NOLOCK)
- WHERE TipDocId = @ConfigTipDocIdBonCuStoc
- SELECT TOP 1 @GestiuneDestinatieId = GestiuneId
- ,@AmanuntGestiuneDestinatie = ISNULL(Amanunt,0)
- FROM dbo.tblGestiuni (NOLOCK)
- WHERE FirmaId = @FirmaId
- AND DivizieId = @DivizieId
- AND ISNULL(Activ,0) = 1
- AND ISNULL(TipGestiune,0) = 3
- ORDER BY OrdineVanzare
- IF @GestiuneDestinatieId IS NULL
- BEGIN
- SELECT TOP 1 @GestiuneDestinatieId = g.GestiuneId
- ,@AmanuntGestiuneDestinatie = ISNULL(g.Amanunt,0)
- FROM dbo.tblGestiuni g (NOLOCK)
- INNER JOIN dbo.SplitString(@ConfigGestiuni,',') gest
- on gest.val = g.CodGestiune
- ORDER BY g.OrdineVanzare
- END
- SELECT @GestiuniMPIds = ISNULL(@GestiuniMPIds + ',','') + ',' + CAST(GestiuneId AS NVARCHAR(MAX))
- FROM dbo.tblGestiuni (NOLOCK)
- WHERE DivizieId = @DivizieId
- AND FirmaId = @FirmaId
- AND ISNULL(Activ,0) = 1
- AND ISNULL(TipGestiune,0) = 6
- ORDER BY OrdineVanzare
- IF (ISNULL(@ConfigID,0) = 0)
- RAISERROR ('---Nu au fost facute configurarile!', 16, 1)
- DECLARE
- @TipDocId INT
- , @PlajaId INT
- , @ReevCapId INT
- , @SYS_PARTID INT
- , @TaxCodeP INT
- SELECT @SYS_PARTID = PartenerFirmaId
- FROM dbo.tblFirme (NOLOCK)
- WHERE FirmaId = @FirmaId
- SELECT @ValutaDefaultId = pf.ValutaDefaultId
- FROM dbo.tblParteneriFirma pf (NOLOCK)
- WHERE pf.PartenerFirmaId = @SYS_PARTID
- SELECT TOP 1
- @TipDocId = TipDocId
- , @TaxCodeP = TaxCodeP
- FROM inv.TipDoc (NOLOCK)
- WHERE DocId = 53
- AND FirmaId = @FirmaId
- AND DivizieId = @DivizieID
- AND ISNULL(Stoc,0) = 1
- SELECT TOP 1 @PlajaId = p.PlajaId
- FROM dbo.Plaja p (NOLOCK)
- INNER JOIN dbo.PlajaDoc pd (NOLOCK)
- on pd.PlajaId = p.PlajaId
- and pd.FirmaId = @FirmaId
- and pd.DivizieId = @DivizieID
- and pd.DocId = 53
- and CAST(@DataCrt as DATE) BETWEEN CAST(ISNULL(DataStart,'1979-01-01') AS DATE) AND CAST(ISNULL(DataEnd,'2100-12-31') AS DATE)
- --produse echivalate
- PRINT 'Produse echivalate'
- DECLARE @Crt INT
- SET @Crt = 0
- DECLARE @Nr INT
- SET @Nr = 1
- WHILE ISNULL(@Crt,0) < 50 AND ISNULL(@Nr,0) <> 0
- BEGIN
- SET @Nr = 0
- UPDATE buff
- SET buff.ProdusID = CAST(REPLACE(eq.NewData,'ProdusId=','') AS INT)
- FROM Retail.BufferPozitiiBon buff (NOLOCK)
- INNER JOIN dbo.EchivQueue EQ (NOLOCK)
- ON 'ProdusId=' + CAST(buff.ProdusID AS VARCHAR(100)) = EQ.OldData
- WHERE buff.FirmaID = @FirmaId
- AND buff.DivizieID = @DivizieId
- AND ISNULL(buff.Prelucrat,0) = 0 --Prelucrat=1 => pozitie sincronizata
- AND eq.TabelaSursa = 'dbo.tblProduse'
- AND eq.DataProcesare IS NOT NULL
- AND ISNULL(eq.MsgProcesare,'') = ''
- SET @Nr = @@ROWCOUNT
- PRINT 'Nr. produse echivalate gasite pe care s-a facut update:' + CAST(@Nr AS VARCHAR)
- SET @Crt = @Crt + 1
- END
- --DocId bon fiscal - 21
- --DocId factura client - 5
- --temporar Update in buffer docid=33->docid=21
- UPDATE Retail.BufferPozitiiBon
- SET DocId = 21
- WHERE ISNULL(docID, 33) IN (33, 3310)
- SET @DocIdBon = 21
- IF OBJECT_ID('tempdb..#PozitiiBuffer') IS NOT NULL
- DROP TABLE #PozitiiBuffer
- CREATE TABLE #PozitiiBuffer
- (
- IesPozId INT IDENTITY(1,1)
- ,IesCapId INT
- ,IesCapInseratId INT
- ,DocInseratId INT
- ,DataIesInserat DATE
- ,ProdusID INT
- ,IntrPozId INT
- ,CantIesire DECIMAL(18,4)
- ,PretVanzare DECIMAL(18,2)
- ,PretVanzareRedus DECIMAL(18,2)
- ,Tva INT
- ,GestiuneID INT
- ,PretAmanunt DECIMAL(18,2)
- ,PretAmanuntRedus DECIMAL(18,6)
- ,Discount DECIMAL(18,2)
- ,RetailPozIesireID INT
- ,RetailPozIesireReturID INT
- ,Identificator VARCHAR(10)
- ,IdentificatorStatieID INT
- ,RetailCapIesireID INT
- ,DataDoc SMALLDATETIME
- ,ValoareCash DECIMAL(18,2)
- ,ValoareCard DECIMAL(18,2)
- ,ValoareBonuri DECIMAL(18,2)
- ,NrPozBon INT
- ,UserCreareID INT
- ,DataCreare DATETIME
- ,UserValidareID INT
- ,DataValidare DATETIME
- ,Retur BIT
- ,BufferPozitieBonID INT
- ,Serie NVARCHAR(100) NULL
- ,IntrPozOrigId INT NULL --se foloseste pt legatura la stoc a pozitiilor care vin cu intrpozid din buffer
- ,NrBonFiscal NVARCHAR(100)
- ,NrCard VARCHAR(50)
- ,Observatii NVARCHAR(MAX)
- ,ObservatiiInterne NVARCHAR(MAX)
- ,ChitantaPos NVARCHAR(100)
- ,IdCmdStornata INT
- ,IdCmdAvans INT
- ,SOrderPozId INT
- ,AgentId INT
- ,ValoareAmanuntRedus DECIMAL(18,6)
- ,ValoareAmanunt DECIMAL(18,6)
- ,ValoareFaraTva decimal(18,6)
- ,Valoaretva decimal(18,6)
- ,ValoareRedusaFaraTva decimal(18,6)
- ,ValoareRedusaTva decimal(18,6)
- ,IdIesPoz INT
- ,CodServer nvarchar(50)
- ,Plati xml
- ,Promotii xml
- ,Promotii_txt NVARCHAR(MAX)
- ,IsMeniu BIT
- ,ParentId INT
- ,CardId INT
- ,DocId INT
- ,TipDocId INT
- ,PlajaIncrement INT
- )
- IF OBJECT_ID('tempdb..#IesCap') IS NOT NULL
- DROP TABLE #IesCap
- CREATE TABLE #IesCap
- (
- IesCapID INT IDENTITY(1,1)
- ,IesCapInseratId INT
- ,ClientId INT
- ,FirmaId INT
- ,DivizieId INT
- ,DocId INT
- ,TipDocId INT
- ,DataIes DATE
- ,UserCreare NVARCHAR(50)
- ,DataCreare DATETIME
- ,ValoareFaraTVA DECIMAL(18,5)
- ,ValoareTVA DECIMAL(18,5)
- ,ValoareReducereFaraTVA DECIMAL(18,5)
- ,ValoareReducereTVA DECIMAL(18,5)
- ,ValoareAmanunt decimal(18,5)
- ,Retur BIT
- ,ValoareIncasata DECIMAL(18,2)
- ,BonValoric DECIMAL(18,2)
- ,[Card] DECIMAL(18,2)
- ,[RetailCapIesireID] INT
- ,CodCalc VARCHAR(10)
- ,IdentificatorStatieID INT
- ,DataValidare DATETIME
- ,UserValidare NVARCHAR(50)
- ,NrPozitii INT
- ,NrBonFiscal NVARCHAR(100)
- ,NrCard VARCHAR(50)
- ,Observatii NVARCHAR(MAX)
- ,ObservatiiInterne NVARCHAR(MAX)
- ,UserCreareId INT
- ,UserValidareId INT
- ,ChitantaPos NVARCHAR(100)
- ,IdCmdStornata INT
- ,IdCmdAvans INT
- ,AgentId INT
- ,IesCapFacturaId INT
- ,CodServer nvarchar(50)
- ,Plati xml
- ,CardId INT
- ,PlajaIncrement INT
- )
- IF OBJECT_ID('tempdb..#Tichete') IS NOT NULL
- DROP TABLE #Tichete
- CREATE TABLE #Tichete
- (
- Id INT IDENTITY(1,1)
- , IncasareBonuriID INT
- , FirmaId INT
- , DivizieId INT
- , CapIesireId INT
- , TichetId INT
- , CantitateBonuri INT
- , ValoareBon DECIMAL(18,2)
- , UserCreareID INT
- , DataCreare DATETIME
- , Prelucrat BIT
- , Identificator NVARCHAR(200)
- , CodServer NVARCHAR(200)
- , ModPlataId INT
- , IesCapInseratId INT
- )
- --toate bonuri neprelucrate, inclusiv retur
- INSERT INTO #PozitiiBuffer
- (
- IesCapId
- ,ProdusID
- ,IntrPozId
- ,CantIesire
- ,PretVanzare
- ,PretVanzareRedus
- ,Tva
- ,GestiuneId
- ,PretAmanunt
- ,PretAmanuntRedus
- ,Discount
- ,RetailPozIesireID
- ,RetailPozIesireReturID
- --info cap
- ,Identificator
- ,IdentificatorStatieID
- ,RetailCapIesireId
- ,DataDoc
- ,ValoareCash
- ,ValoareCard
- ,ValoareBonuri
- ,NrPozBon
- ,UserCreareID
- ,DataCreare
- ,UserValidareID
- ,DataValidare
- ,Retur
- ,BufferPozitieBonID
- ,Serie
- ,IntrPozOrigId
- ,NrBonFiscal
- ,NrCard
- ,Observatii
- ,ObservatiiInterne
- ,ChitantaPos
- ,IdCmdStornata
- ,SOrderPozId
- ,AgentId
- ,IdCmdAvans
- ,ValoareAmanuntRedus
- ,ValoareAmanunt
- ,ValoareRedusaFaraTva
- ,ValoareRedusaTva
- ,ValoareFaraTva
- ,Valoaretva
- ,IdIesPoz
- ,CodServer
- ,Plati
- ,Promotii
- ,Promotii_txt
- ,IsMeniu
- ,ParentId
- ,CardId
- ,DocId
- ,TipDocId
- ,PlajaIncrement
- )
- SELECT
- NULL AS IesCapId
- , b.ProdusID
- , NULL AS IntrPozId
- , b.Cantitate AS CantIesire
- , ROUND((b.PretAmanunt / ( 1 + ( CAST(t.Tva AS DECIMAL(18,2)) / 100 ) ) ),@NrZecimalePretVanzare) AS PretVanzare --??
- , ROUND(b.PretAmanuntRedus / ( 1 + CAST(t.Tva AS DECIMAL(18,2)) / 100 ), @NrZecimalePretVanzare) AS PretVanzareRedus --??
- , t.Tva AS TVA
- , NULL AS GestiuneID
- , b.PretAmanunt AS PretAmanunt
- , b.PretAmanuntRedus AS PretAmanuntRedus
- , b.Discount AS Discount
- , b.PozIesireID AS RetailPozIesireId
- , b.PozIesireReturID AS RetailPozIesireReturID
- --info cap
- , b.Identificator AS Identificator
- , b.IdentificatorStatieID
- , b.CapIesireId AS RetailCapIesireID
- , b.DataDoc AS DataDoc
- , b.ValoareCash
- , b.ValoareCard
- , b.ValoareBonuri
- , b.NrPozBon
- , b.UserCreareID
- , b.DataCreare
- , b.UserValidareID
- , b.DataValidare
- , b.Retur
- , b.BufferPozitieBonID
- , NULLIF(b.Serie,'')
- , NULLIF(b.IntrPozId,0) --IntrPozOrigId
- , b.NrBonFiscal
- , cf.NumarCard
- , b.Observatii
- , b.ObservatiiInterne
- , b.ChitantaPos
- , b.CapIesireIdCmdStorn
- , b.SOrderPozId
- , b.AgentId AS AgentId
- , b.CapIesireIdCmdIncas
- , b.ValoareAmanuntRedus
- , ROUND(b.Cantitate*b.PretAmanunt,2) as ValoareAmanunt
- --, ROUND(isnull(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt)) - ROUND(((isnull(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt)) * t.Tva) / (100.00 + t.Tva)), 6), 6) AS ValoareRedusaFaraTva
- , ROUND(ISNULL(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt))*100.00/(100.00+t.tva),6) AS ValoareRedusaFaraTva
- --, ROUND(((isnull(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt)) * t.Tva) / (100.00 + t.Tva)), 6) AS ValoareRedusaTva
- , ROUND(ISNULL(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt)),6) - ROUND(ISNULL(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt))*100.00/(100.00+t.tva),6) AS ValoareRedusaTva
- --, ROUND(b.Cantitate*b.PretAmanunt - ROUND((b.Cantitate*b.PretAmanunt * t.Tva) / (100.00 + t.Tva), 6), 6) AS ValoareFaraTva
- , CASE WHEN b.PretAmanunt = ISNULL(b.PretAmanuntRedus,b.PretAmanunt)
- THEN ROUND(ISNULL(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt))*100.00/(100.00+t.tva),6)
- ELSE ROUND(b.Cantitate*b.PretAmanunt*100.00/(100.00+t.tva),6)
- END AS ValoareFaraTva
- --, ROUND(( b.Cantitate*b.PretAmanunt * t.Tva) / (100.00 + t.Tva), 6) AS ValoareTva
- , CASE WHEN b.PretAmanunt = ISNULL(b.PretAmanuntRedus,b.PretAmanunt)
- THEN ROUND(ISNULL(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt)),6) - ROUND(ISNULL(b.ValoareAmanuntRedus,b.Cantitate*isnull(b.PretAmanuntRedus, b.PretAmanunt))*100.00/(100.00+t.tva),6)
- ELSE ROUND(b.Cantitate*b.PretAmanunt,6) - ROUND(b.Cantitate*b.PretAmanunt*100.00/(100.00+t.tva),6)
- END AS ValoareTva
- , b.IdIesPoz
- , b.CodServer
- , b.ModuriPlata
- , b.Promotii
- , CAST(b.Promotii AS NVARCHAR(MAX))
- , b.IsMeniu
- , b.ParentId
- , b.CardId
- , b.DocID
- , CASE WHEN b.DocID = 21 THEN @ConfigTipDocIdBonCuStoc ELSE @ConfigTipDocBonConsum END
- , CASE WHEN b.DocId = 13 THEN DENSE_RANK() OVER (PARTITION BY b.DocId ORDER BY b.CapIesireId) END
- FROM Retail.BufferPozitiiBon b ( NOLOCK )
- INNER JOIN dbo.tblTva t ( NOLOCK )
- ON b.TvaId = t.TvaId
- LEFT JOIN dbo.tblCardFidelitate cf ( NOLOCK )
- ON cf.CardId = b.CardId
- WHERE b.FirmaId = @FirmaId
- AND b.DivizieId = @DivizieId
- AND ISNULL(b.Prelucrat,0) <> 1
- AND ISNULL(b.DocId, @DocIdBon) IN (13,21)
- IF @Debug=1 /*d*/
- BEGIN
- SELECT '#PozitiiBuffer:'
- SELECT * FROM #PozitiiBuffer
- END
- INSERT INTO #IesCap
- (
- ClientId
- ,FirmaId
- ,DivizieId
- ,DocId
- ,TipDocId
- ,DataIes
- ,UserCreare
- ,DataCreare
- ,ValoareFaraTVA
- ,ValoareTVA
- ,ValoareReducereFaraTVA
- ,ValoareReducereTVA
- ,ValoareAmanunt
- ,Retur
- ,ValoareIncasata
- ,BonValoric
- ,[Card]
- ,[RetailCapIesireID]
- ,CodCalc
- ,IdentificatorStatieID
- ,DataValidare
- ,UserValidare
- ,NrPozitii
- ,NrBonFiscal
- ,NrCard
- ,Observatii
- ,ObservatiiInterne
- ,UserCreareId
- ,UserValidareId
- ,ChitantaPos
- ,IdCmdStornata
- ,AgentId
- ,IdCmdAvans
- ,IesCapFacturaId
- ,CodServer
- ,Plati
- ,CardId
- ,PlajaIncrement
- )
- SELECT
- @ConfigClientImplicitID
- , @FirmaID
- , @DivizieID
- , MAX(poz.DocId) -- @DocIdBon
- , MAX(poz.TipDocId) -- @ConfigTipDocIdBonCuStoc
- --, DATEDIFF(dd, 0, poz.DataCreare)--fara ore/minute, altfel nu apare in fisa magazie
- , poz.DataValidare
- , ISNULL(MAX(u.Name),'POS') AS UserCreare
- , poz.DataValidare AS DataCreare
- , SUM(ISNULL(poz.ValoareFaraTva, ROUND(poz.CantIesire * poz.PretVanzare,2)))
- --SUM(ROUND(poz.CantIesire * poz.PretVanzare * CAST(Tva AS DECIMAL(18, 2)) / 100, 2))
- , SUM(ISNULL(poz.VAloareTva, poz.CantIesire * ( poz.PretAmanunt - poz.PretVanzare )))
- , SUM(ISNULL(poz.ValoareRedusaFaraTva, ROUND(poz.CantIesire * poz.PretVanzareRedus,2)))
- --, SUM(ROUND(poz.CantIesire * poz.PretVanzareRedus * CAST(Tva AS DECIMAL(18, 2)) / 100.0, 2))
- , SUM(isnull(poz.ValoareRedusaTva, poz.CantIesire * ( poz.PretAmanuntRedus - poz.PretVanzareRedus )))
- , SUM(isnull(poz.ValoareAmanunt,ROUND(poz.CantIesire*poz.PretAmanunt,2)))
- , poz.Retur
- , MAX(ValoareCash) AS ValoareCash
- , MAX(ValoareBonuri) AS ValoareBonuri
- , MAX(ValoareCard) AS ValoareCard
- , MAX(poz.[RetailCapIesireID])
- , ISNULL(poz.Identificator,'')
- , MAX(poz.IdentificatorStatieID) AS IdentificatorStatieID
- , MAX(poz.DataValidare) AS DataValidare
- , MAX(u2.Name) AS UserValidare
- , MAX(poz.NrPozBon) AS NrPozitii
- , MAX(NrBonFiscal) AS NrBonFiscal
- , MAX(NrCard) as NrCard
- , MAX(poz.Observatii) AS Observatii
- , MAX(poz.ObservatiiInterne) AS ObservatiiInterne
- , MAX(UserCreareId) AS UserCreareId
- , MAX(UserValidareId) AS UserValidareId
- , MAX(ChitantaPos) AS ChitantaPos
- , MAX(IdCmdStornata) AS IdCmdStornata
- , MAX(isnull(poz.AgentId,u2.UnitateId)) AS AgentId
- , MAX(IdCmdAvans) AS IdCmdAvans
- , MAX(ipz.IesCapId) AS IesCapFacturaId
- , poz.CodServer
- , CAST(poz.Plati AS NVARCHAR(MAX))
- , MAX(poz.CardId)
- , MAX(poz.PlajaIncrement)
- FROM #PozitiiBuffer poz
- LEFT JOIN dbo.tblUsers u ( NOLOCK )
- ON poz.UserCreareId = u.UserId
- LEFT JOIN dbo.tblUsers u2 ( NOLOCK )
- ON poz.UserValidareId = u2.UserId
- LEFT JOIN inv.IesPoz ipz (NOLOCK)
- ON poz.IdIesPoz = ipz.IesPozId
- WHERE poz.IesCapId IS NULL
- AND (ISNULL(poz.IsMeniu,0) = 1 OR poz.ParentId IS NULL)
- GROUP BY
- poz.RetailCapIesireId
- , ISNULL(poz.Identificator,'')
- , poz.CodServer
- , poz.DataValidare
- , poz.Retur
- , CAST(poz.Plati AS NVARCHAR(MAX))
- IF @Debug=1 /*d*/
- BEGIN
- SELECT '#IesCap:'
- SELECT * FROM #IesCap
- END
- INSERT INTO #Tichete
- (
- IncasareBonuriID
- , FirmaId
- , DivizieId
- , CapIesireId
- , TichetId
- , CantitateBonuri
- , ValoareBon
- , UserCreareID
- , DataCreare
- , Prelucrat
- , Identificator
- , CodServer
- , ModPlataId
- )
- SELECT
- b.IncasareBonuriID
- , b.FirmaID
- , b.DivizieID
- , b.CapIesireID
- , b.TichetID
- , b.CantitateBonuri
- , b.ValoareBon
- , b.UserCreareID
- , b.DataCreare
- , 0
- , b.Identificator
- , b.CodServer
- , b.ModPlataId
- FROM Retail.BufferTichete b ( NOLOCK )
- INNER JOIN #IesCap cap
- ON cap.RetailCapIesireID = b.CapIesireID
- AND cap.CodServer = b.CodServer
- AND cap.CodCalc = b.Identificator
- AND cap.DataValidare = b.DataCreare
- WHERE b.FirmaId = @FirmaId
- AND b.DivizieId = @DivizieId
- AND ISNULL(b.Prelucrat,0) <> 1
- SELECT @GestiuniRetail = ISNULL(@GestiuniRetail + ',','') + CAST(g.GestiuneId AS NVARCHAR(MAX))
- FROM dbo.SplitString(@ConfigGestiuni,',') codGest
- INNER JOIN dbo.tblGestiuni g (NOLOCK)
- ON g.CodGestiune = codGest.val
- AND g.FirmaId = @FirmaId
- AND g.DivizieId = @DivizieId
- GROUP BY g.GestiuneId
- IF @GestiuniRetail = ''
- SET @GestiuniRetail = NULL
- IF OBJECT_ID('tempdb..#GestiuniBonFiscal') IS NOT NULL
- DROP TABLE #GestiuniBonFiscal
- IF OBJECT_ID('tempdb..#GestiuniBonConsum') IS NOT NULL
- DROP TABLE #GestiuniBonConsum
- SELECT x.val
- INTO #GestiuniBonFiscal
- FROM dbo.SplitString(@GestiuniRetail,',') x
- SELECT x.val
- INTO #GestiuniBonConsum
- FROM dbo.SplitString(@GestiuniIdsBonConsum,',') x
- IF OBJECT_ID('tempdb..#Retete') IS NOT NULL
- DROP TABLE #Retete
- -- Toate retetele de pe divizia curenta
- -- active
- -- neanulate
- -- care nu au bifa de IgnoraDescarcare
- -- care au completat Cant sau Cant2
- SELECT
- rc.ProdusId
- , rc.RetetaCapId
- , rc.ValabilDeLa
- , rc.ValabilPanaLa
- , rc.Cant
- , rc.Cant2
- , COALESCE(g1.GestiuneId,g2.GestiuneId,@GestiuneDestinatieId) AS GestiuneDestinatieId
- , COALESCE(g1.Amanunt,g2.Amanunt,@AmanuntGestiuneDestinatie) AS Amanunt
- , x.val
- INTO #Retete
- FROM dbo.tblRetetaCap rc (NOLOCK)
- INNER JOIN dbo.tblProduseDivizii pd (NOLOCK)
- ON pd.ProdusId = rc.ProdusId
- AND pd.DivizieId = @DivizieId
- INNER JOIN dbo.tblRetetaPoz rp (NOLOCK)
- ON rp.RetetaCapId = rc.RetetaCapId
- LEFT JOIN dbo.tblRetetaCapFirme rcf (NOLOCK)
- ON rcf.RetetaCapId = rc.RetetaCapId
- LEFT JOIN dbo.tblRetetaCapGestiuniDest rgd (NOLOCK)
- ON rgd.RetetaCapId = rc.RetetaCapId
- AND rgd.FirmaId = @FirmaId
- LEFT JOIN dbo.tblGestiuni g1 (NOLOCK)
- ON g1.GestiuneId = rc.GestiuneDestinatieId
- AND g1.DivizieId = @DivizieId
- AND g1.FirmaId = @FirmaId
- LEFT JOIN dbo.tblGestiuni g2 (NOLOCK)
- ON g2.GestiuneId = rgd.GestiuneId
- AND g2.DivizieId = @DivizieId
- AND g2.FirmaId = @FirmaId
- OUTER APPLY (SELECT * FROM dbo.SplitString(COALESCE(rc.GestiuneSursaIds,@GestiuniMPIds,NULLIF(@GestiuniRetail,'')),',')) x
- WHERE rc.DivizieId = @DivizieId
- AND ISNULL(rc.Inactiv,0) = 0
- AND rc.DataAnulare IS NULL
- AND ISNULL(rc.IgnoraDescarcare,0) = 0
- AND (rc.Cant IS NOT NULL OR rc.Cant2 IS NOT NULL)
- AND (rcf.RetetaCapFirmaId IS NULL OR rcf.FirmaId = @FirmaId)
- GROUP BY
- rc.ProdusId
- , rc.RetetaCapId
- , rc.ValabilDeLa
- , rc.ValabilPanaLa
- , rc.Cant
- , rc.Cant2
- , COALESCE(g1.GestiuneId,g2.GestiuneId,@GestiuneDestinatieId)
- , COALESCE(g1.Amanunt,g2.Amanunt,@AmanuntGestiuneDestinatie)
- , x.val
- DECLARE @CmdFin TABLE (SOrderCapId INT, FirmaId INT, DivizieId INT, UserId INT)
- BEGIN TRAN T1
- DECLARE @NrCifrePlajaBC INT
- DECLARE @CurentPlajaBC INT
- DECLARE @PrefixPlajaBC NVARCHAR(MAX)
- IF @ConfigTipDocBonConsum IS NOT NULL
- BEGIN
- SELECT @CurentPlajaBC = Curent
- , @PrefixPlajaBC = ISNULL(Prefix,'')
- FROM dbo.Plaja WITH (UPDLOCK, HOLDLOCK)
- WHERE PlajaId = @PlajaBCId
- SELECT @NrCifrePlajaBC = NrCifre
- FROM dbo.PlajaDoc (NOLOCK)
- WHERE PlajaId = @PlajaBCId
- AND DocId = 13
- UPDATE dbo.Plaja
- SET Curent = Curent + ISNULL((SELECT MAX(PlajaIncrement) FROM #IesCap),0)
- WHERE PlajaId = @PlajaBCId
- END
- IF OBJECT_ID('tempdb..#IesCapInserate') IS NOT NULL
- DROP TABLE #IesCapInserate
- CREATE TABLE #IesCapInserate (IesCapId INT, RetailCapIesireId INT, CodPos NVARCHAR(100), DataValidare DATETIME, Retur BIT, DocId INT, DataIes DATE)
- INSERT INTO inv.IesCap
- (
- ClientId
- ,FirmaId
- ,DivizieId
- ,DocId
- ,TipDocId
- ,NumarIes
- ,DataIes
- ,NumarFactIes
- ,DataFactIes
- ,UserCreare
- ,DataCreare
- ,ValoareFaraTVA
- ,ValoareTVA
- ,ValoareReducereFaraTVA
- ,ValoareReducereTVA
- ,ValoareAmanunt
- ,Retur
- ,ValoareIncasata
- ,BonValoric
- ,[Card]
- ,[RetailCapIesireID]
- ,CodCalc
- ,CodPos
- ,DataValidare
- ,UserValidare
- ,NrPozitii
- ,NrBonFiscal
- ,NumarCard
- ,Observatii
- ,ObservatiiInterne
- ,UserCreareId
- ,UserValidareId
- ,DataFacturare
- ,UserFacturare
- ,UserFacturareId
- ,NumarChitantaCard
- ,AgentId
- ,IdentificatorStatieId
- ,ValutaDefaultId
- ,IesCapFacturaId
- ,CapDocGeneratorId
- ,DocGeneratorId
- ,CodServer
- )
- OUTPUT inserted.IesCapId, inserted.RetailCapIesireId, inserted.CodPos, inserted.DataValidare, inserted.Retur, inserted.DocId, inserted.DataIes
- INTO #IesCapInserate(IesCapId, RetailCapIesireId, CodPos, DataValidare, Retur, DocId, DataIes)
- SELECT
- ClientId
- , FirmaId
- , DivizieId
- , DocId
- , TipDocId
- , CASE WHEN DocId = 13 THEN @PrefixPlajaBC + RIGHT(REPLICATE('0',ISNULL(@NrCifrePlajaBC,0)) + CAST(@CurentPlajaBC + PlajaIncrement - 1 AS NVARCHAR(MAX)),ISNULL(@NrCifrePlajaBC,40)) END
- , DataIes
- , CASE WHEN DocId = 13 THEN @PrefixPlajaBC + RIGHT(REPLICATE('0',ISNULL(@NrCifrePlajaBC,0)) + CAST(@CurentPlajaBC + PlajaIncrement - 1 AS NVARCHAR(MAX)),ISNULL(@NrCifrePlajaBC,40)) END
- , DataIes
- , UserCreare
- , @DataCrt--DataCreare
- , ValoareFaraTVA
- , ValoareTVA
- , ValoareReducereFaraTVA
- , ValoareReducereTVA
- , ValoareAmanunt
- , Retur
- , ValoareIncasata
- , BonValoric
- , [Card]
- , [RetailCapIesireID]
- , CodCalc
- , CodCalc
- , DataValidare
- , UserValidare
- , NrPozitii
- , NrBonFiscal
- , NrCard
- , Observatii
- , ObservatiiInterne
- , UserCreareId
- , UserValidareId
- , CASE WHEN DocId = 13 THEN @DataCrt END
- , CASE WHEN DocId = 13 THEN UserValidare END
- , CASE WHEN DocId = 13 THEN UserValidareId END
- , ChitantaPos
- , AgentId
- , IdentificatorStatieId
- , @ValutaDefaultId
- , IesCapFacturaId
- , IesCapFacturaId
- , CASE WHEN IesCapFacturaId IS NOT NULL THEN 5 END
- , CodServer
- FROM #IesCap
- update c
- set c.numaries=cast(c.iescapid as varchar(100))
- from inv.iescap c
- inner join #IesCapInserate ci on ci.IesCapId=c.IesCapId
- where c.numaries is null
- UPDATE tempCap
- SET IesCapInseratId = temp.IesCapId
- FROM #IesCap tempCap
- INNER JOIN #IesCapInserate temp
- ON temp.RetailCapIesireId = tempcap.RetailCapIesireID
- AND temp.CodPos = tempcap.CodCalc
- AND temp.DataValidare = tempcap.DataValidare
- AND ISNULL(temp.Retur,0) = ISNULL(temp.Retur,0)
- UPDATE tempPoz
- SET IesCapInseratId = temp.IesCapId
- , DocInseratId = temp.DocId
- , DataIesInserat = temp.DataIes
- FROM #PozitiiBuffer tempPoz
- INNER JOIN #IesCapInserate temp
- ON temp.RetailCapIesireId = tempPoz.RetailCapIesireID
- AND temp.CodPos = tempPoz.Identificator
- AND temp.DataValidare = tempPoz.DataValidare
- AND ISNULL(temp.Retur,0) = ISNULL(temp.Retur,0)
- UPDATE tempTichete
- SET IesCapInseratId = temp.IesCapId
- FROM #Tichete tempTichete
- INNER JOIN #IesCapInserate temp
- ON temp.RetailCapIesireId = tempTichete.CapIesireId
- AND temp.CodPos = tempTichete.Identificator
- AND temp.DataValidare = tempTichete.DataCreare
- INSERT dbo.IesCapModPlata
- (
- IesCapId
- , Valoare
- , ModPlataId
- )
- SELECT
- temp.IesCapInseratId-- ies.IesCapId
- , CASE WHEN ISNULL(p.value('(./val)[1]', 'NVARCHAR(50)'),'') <> ''
- THEN p.value('(./val)[1]', 'DECIMAL(18,5)')
- ELSE NULL
- END AS Valoare
- , CAST(NULLIF(LTRIM(RTRIM(p.value('(./id)[1]', 'nvarchar(40)'))), '') AS INT) AS ModPlataId
- FROM #IesCap temp
- --INNER JOIN inv.Iescap ies (NOLOCK)
- -- ON ies.RetailCapIesireId = temp.RetailCapIesireId
- -- AND ies.CodCalc = temp.CodCalc
- -- AND ies.DataValidare = temp.DataValidare
- -- AND ies.FirmaId = @FirmaId
- -- AND ies.DivizieId = @DivizieID
- OUTER APPLY temp.Plati.nodes('/plati/mp') t (p)
- WHERE CAST(NULLIF(LTRIM(RTRIM(p.value('(./id)[1]', 'nvarchar(40)'))), '') AS INT) IS NOT NULL
- AND ISNULL(CASE WHEN ISNULL(p.value('(./val)[1]', 'NVARCHAR(50)'),'') <> ''
- THEN p.value('(./val)[1]', 'DECIMAL(18,5)')
- ELSE NULL
- END,0) <> 0
- INSERT dbo.IesCapTichete
- (
- FirmaId
- , DivizieId
- , IescapId
- , ModPlataId
- , TichetId
- , ValoareBon
- , Cantitate
- , UserCreareId
- , DataCreare
- --, RetailIncasareBonuriId
- , RetailCapIesireId
- )
- --OUTPUT inserted.IesCapTichetID INTO @ict(IesCapTichetID)
- SELECT
- temp.FirmaId
- , temp.DivizieId
- , temp.IesCapInseratId --ies.IesCapId
- , temp.ModPlataId
- , temp.TichetId
- , temp.ValoareBon
- , SUM(temp.CantitateBonuri)
- , temp.UserCreareID
- , temp.DataCreare
- --, temp.IncasareBonuriID
- , temp.CapIesireId
- FROM #Tichete temp
- --INNER JOIN inv.IesCap ies (NOLOCK)
- -- ON ies.FirmaId = temp.FirmaId
- -- AND ies.DivizieId = temp.DivizieId
- -- AND ies.RetailCapIesireId = temp.CapIesireId
- -- AND ies.DataValidare = temp.DataCreare
- -- AND ies.CodCalc = temp.Identificator
- GROUP BY
- temp.FirmaId
- , temp.DivizieId
- , temp.IesCapInseratId --ies.IesCapId
- , temp.ModPlataId
- , temp.TichetId
- , temp.ValoareBon
- , temp.UserCreareId
- , temp.DataCreare
- , temp.CapIesireId
- UPDATE b
- SET Prelucrat = 1
- FROM retail.BufferTichete b
- INNER JOIN #Tichete temp
- ON temp.IncasareBonuriID = b.IncasareBonuriID
- and temp.CapIesireId = b.CapIesireID
- WHERE b.FirmaId = @FirmaId
- AND b.DivizieID = @DivizieID
- DECLARE @tcxs TABLE (TranContID INT)
- /* SELECT
- @DataCrt
- , p.value('cardid[1]', 'INT')
- , p.value('cid[1]', 'INT')
- , p.value('val[1]', 'DECIMAL(18, 5)')
- , temp.DataValidare
- , temp.UserValidareID
- , 1
- , @FirmaId
- , @DivizieID
- , temp.RetailCapIesireID
- , temp.RetailPozIesireID
- , temp.DataValidare
- , temp.Identificator
- , temp.IdentificatorStatieID
- , temp.CodServer
- --FROM #PuncteContoare temp
- FROM #PozitiiBuffer temp
- OUTER APPLY temp.Promotii.nodes('/promotii/promo') t (p)
- WHERE p.value('pozid[1]', 'INT') IS NOT NULL
- AND p.value('cid[1]', 'INT') <> 0
- AND p.value('val[1]', 'DECIMAL(18, 5)') <> 0
- SELECT
- @DataCrt
- , temp.CardId
- , p.value('cid[1]', 'INT')
- , (-1) * p.value('val[1]', 'DECIMAL(18, 5)')
- , temp.DataValidare
- , temp.UserValidareID
- , 1
- , @FirmaId
- , @DivizieID
- , temp.RetailCapIesireID
- , temp.RetailPozIesireID
- , temp.DataValidare
- , temp.Identificator
- , temp.IdentificatorStatieID
- , temp.CodServer
- --FROM #PuncteContoare temp
- FROM #PozitiiBuffer temp
- OUTER APPLY temp.Promotii.nodes('/plati/mp') t (p)
- LEFT JOIN dbo.tblTranzactiiContoare tc (NOLOCK)
- ON tc.FirmaID = @FirmaId
- AND tc.DivizieID = @DivizieID
- AND tc.CapIesireID = temp.RetailCapIesireID
- AND tc.DataValidare = temp.DataValidare
- AND tc.Identificator = temp.Identificator
- AND tc.IdentificatorStatieID = temp.IdentificatorStatieID
- AND tc.CodServer = temp.CodServer
- WHERE p.value('cid[1]', 'INT') <> 0
- AND p.value('val[1]', 'DECIMAL(18, 5)') <> 0
- AND tc.TranContID IS NULL
- */
- --acumulare puncte
- INSERT dbo.tblTranzactiiContoare
- (
- [Data]
- , [CardId]
- , [ContorId]
- , [Valoare]
- , [DataCreare]
- , [UserCreareId]
- , [Prelucrat]
- , [FirmaID]
- , [DivizieID]
- , [CapIesireID]
- , [PozIesireID]
- , [DataValidare]
- , [Identificator]
- , [IdentificatorStatieID]
- , [CodServer]
- )
- OUTPUT inserted.TranContID INTO @tcxs(TranContID)
- SELECT
- @DataCrt
- , p.value('cardid[1]', 'INT')
- , p.value('cid[1]', 'INT')
- , p.value('val[1]', 'DECIMAL(18, 5)')
- , temp.DataValidare
- , temp.UserValidareID
- , 1
- , @FirmaId
- , @DivizieID
- , temp.RetailCapIesireID
- , temp.RetailPozIesireID
- , temp.DataValidare
- , temp.Identificator
- , temp.IdentificatorStatieID
- , temp.CodServer
- --FROM #PuncteContoare temp
- FROM #PozitiiBuffer temp
- OUTER APPLY temp.Promotii.nodes('/promotii/promo') t (p)
- WHERE p.value('pozid[1]', 'INT') IS NOT NULL
- AND p.value('cid[1]', 'INT') <> 0
- AND p.value('val[1]', 'DECIMAL(18, 5)') <> 0
- --consum puncte
- INSERT dbo.tblTranzactiiContoare
- (
- [Data]
- , [CardId]
- , [ContorId]
- , [Valoare]
- , [DataCreare]
- , [UserCreareId]
- , [Prelucrat]
- , [FirmaID]
- , [DivizieID]
- , [CapIesireID]
- --, [PozIesireID]
- , [DataValidare]
- , [Identificator]
- , [IdentificatorStatieID]
- , [CodServer]
- )
- OUTPUT inserted.TranContID INTO @tcxs(TranContID)
- SELECT
- @DataCrt
- , temp.CardId
- , p.value('cid[1]', 'INT')
- , (-1) * p.value('val[1]', 'DECIMAL(18, 5)')
- , temp.DataValidare
- , temp.UserValidareID
- , 1
- , @FirmaId
- , @DivizieID
- , temp.RetailCapIesireID
- --, temp.RetailPozIesireID
- , temp.DataValidare
- , temp.CodCalc
- , temp.IdentificatorStatieID
- , temp.CodServer
- --FROM #PuncteContoare temp
- FROM #IesCap temp -- #PozitiiBuffer temp
- OUTER APPLY temp.Plati.nodes('/plati/mp') t (p)
- LEFT JOIN dbo.tblTranzactiiContoare tc (NOLOCK)
- ON tc.FirmaID = @FirmaId
- AND tc.DivizieID = @DivizieID
- AND tc.CapIesireID = temp.RetailCapIesireID
- AND tc.DataValidare = temp.DataValidare
- AND tc.Identificator = temp.CodCalc
- AND tc.IdentificatorStatieID = temp.IdentificatorStatieID
- AND tc.CodServer = temp.CodServer
- WHERE p.value('cid[1]', 'INT') <> 0
- AND p.value('val[1]', 'DECIMAL(18, 5)') <> 0
- AND tc.TranContID IS NULL
- UPDATE vc
- SET vc.Valoare = ISNULL(vc.Valoare, 0) + ISNULL(trx.Valoare, 0)
- FROM dbo.tblValoriContoare vc
- INNER JOIN (
- SELECT
- tc.ContorID
- , tc.CardId
- , SUM(tc.Valoare) AS Valoare
- FROM dbo.tblTranzactiiContoare tc
- INNER JOIN @tcxs x
- ON x.TranContID = tc.TranContID
- GROUP BY
- tc.ContorID
- , tc.CardId ) trx
- ON trx.ContorID = vc.ContorID
- AND trx.CardId = vc.CardID
- IF OBJECT_ID('tempdb..#IesPozInserate') IS NOT NULL
- DROP TABLE #IesPozInserate
- CREATE TABLE #IesPozInserate (CapDocId INT, DataDoc DATE, DocId INT, IesPozId INT, IesPoz2Id INT, FirmaId INT, DivizieId INT, Promotii XML )
- IF EXISTS (SELECT TOP 1 * FROM #PozitiiBuffer WHERE ISNULL(IsMeniu,0) = 1)
- BEGIN
- MERGE INTO inv.IesPoz2 T
- USING (
- SELECT DISTINCT
- pozRetail.IesCapInseratId AS IesCapId --cap.IesCapId
- , pozRetail.DataIesInserat AS DataIes --cap.DataIes
- , pozRetail.DocInseratId AS DocId --cap.DocId
- , pozRetail.ProdusID
- , pozRetail.CantIesire
- , pozRetail.PretVanzare
- , pozRetail.PretVanzareRedus
- , pozRetail.Discount
- , pozRetail.Tva
- , pozRetail.PretAmanunt
- , pozRetail.PretAmanuntRedus
- , pozRetail.RetailPozIesireID
- , pozRetail.RetailPozIesireReturID
- , NULL AS SorderPoz2Id
- , pozRetail.ValoareRedusaFaraTva
- , pozRetail.ValoareRedusaTva
- , pozRetail.ValoareFaraTva
- , pozRetail.ValoareTva
- , pozRetail.Promotii_txt AS Promotii
- FROM #PozitiiBuffer pozRetail
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = pozRetail.ProdusId
- --INNER JOIN #IesCap capRetail
- -- ON pozRetail.RetailCapIesireID = capRetail.RetailCapIesireId
- -- AND pozRetail.Identificator = capRetail.CodCalc
- --INNER JOIN inv.IesCap cap ( NOLOCK )
- -- ON capRetail.CodCalc = cap.CodCalc
- -- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- -- AND cap.DocId IN (13,21)
- -- AND cap.DataValidare = capRetail.DataValidare
- WHERE /*cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieID
- AND */ISNULL(pozRetail.IsMeniu,0) = 1) AS S
- ON 1 = 2
- WHEN NOT MATCHED BY TARGET THEN
- INSERT
- (
- IesCapId
- , ProdusID
- , Cant
- , Pret
- , PretRedus
- , Discount
- , Tva
- , PretAmanunt
- , PretAmanuntRedus
- , RetailPozIesireID
- , RetailPozIesireReturID
- , SorderPoz2Id
- , ValoareRedusaFaraTva
- , ValoareRedusaTva
- , ValoareFaraTva
- , ValoareTva
- )
- VALUES
- (
- s.IesCapId
- , s.ProdusID
- , s.CantIesire
- , s.PretVanzare
- , s.PretVanzareRedus
- , s.Discount
- , s.Tva
- , s.PretAmanunt
- , s.PretAmanuntRedus
- , s.RetailPozIesireID
- , s.RetailPozIesireReturID
- , NULL
- , s.ValoareRedusaFaraTva
- , s.ValoareRedusaTva
- , s.ValoareFaraTva
- , s.ValoareTva
- )
- OUTPUT s.IesCapId, s.DataIes, s.DocId, inserted.IesPoz2Id, @FirmaId, @DivizieId, CAST(s.Promotii AS XML)
- INTO #IesPozInserate (CapDocId, DataDoc, DocId, IesPoz2Id, FirmaId, DivizieId, Promotii);
- /*
- INSERT INTO inv.IesPoz2
- (
- IesCapId
- ,ProdusID
- ,Cant
- ,Pret
- ,PretRedus
- ,Tva
- ,PretAmanunt
- ,PretAmanuntRedus
- ,RetailPozIesireID
- ,RetailPozIesireReturID
- ,SorderPoz2Id
- ,ValoareRedusaFaraTva
- ,ValoareRedusaTva
- ,ValoareFaraTva
- ,ValoareTva
- )
- SELECT DISTINCT
- cap.IesCapId
- , pozRetail.ProdusID
- , pozRetail.CantIesire
- , pozRetail.PretVanzare
- , pozRetail.PretVanzareRedus
- , pozRetail.Tva
- , pozRetail.PretAmanunt
- , pozRetail.PretAmanuntRedus
- , pozRetail.RetailPozIesireID
- , pozRetail.RetailPozIesireReturID
- , NULL AS SorderPoz2Id
- , pozRetail.ValoareRedusaFaraTva
- , pozRetail.ValoareRedusaTva
- , pozRetail.ValoareFaraTva
- , pozRetail.ValoareTva
- FROM #PozitiiBuffer pozRetail
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = pozRetail.ProdusId
- INNER JOIN #IesCap capRetail
- ON pozRetail.RetailCapIesireID = capRetail.RetailCapIesireId
- AND pozRetail.Identificator = capRetail.CodCalc
- INNER JOIN inv.IesCap cap ( NOLOCK )
- ON capRetail.CodCalc = cap.CodCalc
- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- AND cap.DocId IN (13,21)
- AND cap.DataValidare = capRetail.DataValidare
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieID
- AND ISNULL(pozRetail.IsMeniu,0) = 1
- */
- MERGE INTO inv.IesPoz T
- USING (
- SELECT DISTINCT
- pozRetail.IesCapInseratId AS IesCapId --cap.IesCapId
- , pozRetail.DataIesInserat AS DataIes --cap.DataIes
- , pozRetail.DocInseratId AS DocId --cap.DocId
- , meniu.IesPoz2Id
- , pozRetail.ProdusID
- , pozRetail.IntrPozId
- , pozRetail.IntrPozOrigId
- , pozRetail.CantIesire
- , ROUND(ISNULL(pozRetail.CantIesire * pr.GreutateNeta, CASE WHEN UPPER(um.Um) = 'KG' THEN pozRetail.CantIesire END),3) AS Cantitate2
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzare END AS PretVanzare
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzareRedus END AS PretVanzareRedus
- , pozRetail.Tva
- , pozRetail.GestiuneID
- , pozRetail.PretAmanunt
- , pozRetail.PretAmanuntRedus
- , pozRetail.Discount
- , pozRetail.RetailPozIesireID
- , pozRetail.RetailPozIesireReturID
- , pozRetail.Serie
- , CASE WHEN pozRetail.DocId = 13 THEN @ConfigTaxCodeBC
- ELSE CASE WHEN ISNULL(pozRetail.IdIesPoz, 0) = 0 THEN @ConfigTaxCode ELSE @ConfigTaxCodeBFF END
- END AS TaxCode
- , pozRetail.SOrderPozId
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaFaraTva END AS ValoareRedusaFaraTva
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaTva END AS ValoareRedusaTva
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareFaraTva END AS ValoareFaraTva
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareTva END AS ValoareTva
- , pozRetail.Promotii_txt AS Promotii
- FROM #PozitiiBuffer pozRetail
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = pozRetail.ProdusId
- INNER JOIN dbo.tblUm UM (NOLOCK)
- ON um.UmId = pr.UmId
- --INNER JOIN #IesCap capRetail
- -- ON pozRetail.RetailCapIesireID = capRetail.RetailCapIesireId
- -- AND pozRetail.Identificator = capRetail.CodCalc
- --INNER JOIN inv.IesCap cap ( NOLOCK )
- -- ON capRetail.CodCalc = cap.CodCalc
- -- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- -- AND cap.DocId in (13,21)
- -- AND cap.DataValidare = capRetail.DataValidare
- INNER JOIN inv.IesPoz2 meniu (NOLOCK)
- ON meniu.IesCapId = pozRetail.IesCapInseratId --cap.IesCapId
- AND meniu.RetailPozIesireID = pozRetail.ParentId
- WHERE /*cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieID
- AND*/ pozRetail.ParentId IS NOT NULL) AS S
- ON 1 = 2
- WHEN NOT MATCHED BY TARGET THEN
- INSERT
- (
- IesCapId
- , IesPoz2Id
- , FirmaID
- , DivizieId
- , ProdusID
- , IntrPozId
- , IntrPozOrigId
- , CantIesire
- , Cantitate2
- , CantFacturata
- , PretVanzare
- , PretVanzareRedus
- , Tva
- , GestiuneID
- , PretAmanunt
- , PretAmanuntRedus
- , Discount
- , RetailPozIesireID
- , RetailPozIesireReturID
- , SerieIntrare
- , TaxCode
- , SOrderPozId
- , ValoareRedusaFaraTva
- , ValoareRedusaTva
- , ValoareFaraTva
- , ValoareTva
- )
- VALUES
- (
- s.IesCapId
- , s.IesPoz2Id
- , @FirmaId
- , @DivizieId
- , s.ProdusID
- , s.IntrPozId
- , s.IntrPozOrigId
- , s.CantIesire
- , s.Cantitate2
- , s.CantIesire
- , s.PretVanzare
- , s.PretVanzareRedus
- , s.Tva
- , s.GestiuneID
- , s.PretAmanunt
- , s.PretAmanuntRedus
- , s.Discount
- , s.RetailPozIesireID
- , s.RetailPozIesireReturID
- , s.Serie
- , s.TaxCode
- , s.SOrderPozId
- , s.ValoareRedusaFaraTva
- , s.ValoareRedusaTva
- , s.ValoareFaraTva
- , s.ValoareTva
- )
- OUTPUT s.IesCapId, s.DataIes, s.DocId, inserted.IesPozId, @FirmaId, @DivizieId, CAST(s.Promotii AS XML)
- INTO #IesPozInserate (CapDocId, DataDoc, DocId, IesPozId, FirmaId, DivizieId, Promotii);
- /*
- INSERT INTO inv.IesPoz
- (
- IesCapId
- ,IesPoz2Id
- ,FirmaID
- ,DivizieId
- ,ProdusID
- ,IntrPozId
- ,IntrPozOrigId
- ,CantIesire
- ,CantFacturata
- --,Cantitate2
- ,PretVanzare
- ,PretVanzareRedus
- ,Tva
- ,GestiuneID
- ,PretAmanunt
- ,PretAmanuntRedus
- ,RetailPozIesireID
- ,RetailPozIesireReturID
- ,SerieIntrare
- ,TaxCode
- --,Amanunt
- ,SOrderPozId
- ,ValoareRedusaFaraTva
- ,ValoareRedusaTva
- ,ValoareFaraTva
- ,ValoareTva
- )
- SELECT DISTINCT
- cap.IesCapId
- , meniu.IesPoz2Id
- , @FirmaID
- , @DivizieID
- , pozRetail.ProdusID
- , pozRetail.IntrPozId
- , pozRetail.IntrPozOrigId
- , pozRetail.CantIesire
- , pozRetail.CantIesire
- --, CASE WHEN (retcap.GestiuneDestinatieId IS NOT NULL OR g.GestiuneId IS NOT NULL OR ISNULL(retcap.IgnoraDescarcare,0) = 0) AND retcap.Cant IS NULL
- -- THEN pozRetail.CantIesire * pr.GreutateNeta
- -- END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzare END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzareRedus END
- , pozRetail.Tva
- , pozRetail.GestiuneID
- , pozRetail.PretAmanunt
- , pozRetail.PretAmanuntRedus
- , pozRetail.RetailPozIesireID
- , pozRetail.RetailPozIesireReturID
- , pozRetail.Serie
- , CASE WHEN pozRetail.DocId = 13 THEN @ConfigTaxCodeBC
- ELSE CASE WHEN ISNULL(pozRetail.IdIesPoz, 0) = 0 THEN @ConfigTaxCode ELSE @ConfigTaxCodeBFF END
- END
- --, 1
- , pozRetail.SOrderPozId
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaFaraTva END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaTva END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareFaraTva END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareTva END
- FROM #PozitiiBuffer pozRetail
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = pozRetail.ProdusId
- INNER JOIN #IesCap capRetail
- ON pozRetail.RetailCapIesireID = capRetail.RetailCapIesireId
- AND pozRetail.Identificator = capRetail.CodCalc
- INNER JOIN inv.IesCap cap ( NOLOCK )
- ON capRetail.CodCalc = cap.CodCalc
- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- AND cap.DocId in (13,21)
- AND cap.DataValidare = capRetail.DataValidare
- INNER JOIN inv.IesPoz2 meniu (NOLOCK)
- ON meniu.IesCapId = cap.IesCapId
- AND meniu.RetailPozIesireID = pozRetail.ParentId
- --LEFT JOIN dbo.tblRetetacap retcap (NOLOCK)
- -- ON retcap.ProdusId = pozRetail.ProdusId
- -- AND retcap.DivizieId = @divizieId
- -- AND ISNULL(retcap.Inactiv,0) = 0
- -- AND retcap.DataAnulare IS NULL
- -- AND cap.dataies BETWEEN ISNULL(retcap.ValabilDeLa,'') and ISNULL(retcap.ValabilPanaLA,'22000101')
- --LEFT JOIN dbo.tblRetetaCapGestiuniDest rgd (NOLOCK)
- -- ON rgd.RetetaCapId = retcap.RetetaCapId
- -- AND rgd.FirmaId = @FirmaId
- --LEFT JOIN dbo.tblGestiuni g (NOLOCK)
- -- ON g.GestiuneId = rgd.GestiuneId
- -- AND g.FirmaId = @FirmaId
- -- AND g.DivizieId = @DivizieID
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieID
- AND pozRetail.ParentId IS NOT NULL
- */
- END
- MERGE INTO inv.IesPoz T
- USING (
- SELECT DISTINCT
- pozRetail.IesCapInseratId AS IesCapId --cap.IesCapId
- , pozRetail.DataIesInserat AS DataIes --cap.DataIes
- , pozRetail.DocInseratId AS DocId --cap.DocId
- , pozRetail.ProdusID
- , pozRetail.IntrPozId
- , pozRetail.IntrPozOrigId
- , pozRetail.CantIesire
- , ROUND(ISNULL(pozRetail.CantIesire * pr.GreutateNeta, CASE WHEN UPPER(um.Um) = 'KG' THEN pozRetail.CantIesire END),3) AS Cantitate2
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzare END AS PretVanzare
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzareRedus END AS PretVanzareRedus
- , pozRetail.Tva
- , pozRetail.GestiuneID
- , pozRetail.PretAmanunt
- , pozRetail.PretAmanuntRedus
- , pozRetail.Discount
- , pozRetail.RetailPozIesireID
- , pozRetail.RetailPozIesireReturID
- , pozRetail.Serie
- , CASE WHEN pozRetail.DocId = 13 THEN @ConfigTaxCodeBC
- ELSE CASE WHEN ISNULL(pozRetail.IdIesPoz, 0) = 0 THEN @ConfigTaxCode ELSE @ConfigTaxCodeBFF END
- END AS TaxCode
- , pozRetail.SOrderPozId
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaFaraTva END AS ValoareRedusaFaraTva
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaTva END AS ValoareRedusaTva
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareFaraTva END AS ValoareFaraTva
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareTva END AS ValoareTva
- , pozRetail.Promotii_txt AS Promotii
- FROM #PozitiiBuffer pozRetail
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = pozRetail.ProdusId
- INNER JOIN dbo.tblUm um (NOLOCK)
- ON um.UmId = pr.UmId
- --INNER JOIN #IesCap capRetail
- -- ON pozRetail.RetailCapIesireID = capRetail.RetailCapIesireId
- -- AND pozRetail.Identificator = capRetail.CodCalc
- --INNER JOIN inv.IesCap cap ( NOLOCK )
- -- ON capRetail.CodCalc = cap.CodCalc
- -- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- -- AND cap.DocId IN (13,21)
- -- AND cap.DataValidare = capRetail.DataValidare
- WHERE /*cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieID
- AND*/ pozRetail.ParentId IS NULL
- AND ISNULL(pozRetail.IsMeniu,0) = 0) AS S
- ON 1 = 2
- WHEN NOT MATCHED BY TARGET THEN
- INSERT
- (
- IesCapId
- , FirmaID
- , DivizieId
- , ProdusID
- , IntrPozId
- , IntrPozOrigId
- , CantIesire
- , Cantitate2
- , CantFacturata
- , PretVanzare
- , PretVanzareRedus
- , Tva
- , GestiuneID
- , PretAmanunt
- , PretAmanuntRedus
- , Discount
- , RetailPozIesireID
- , RetailPozIesireReturID
- , SerieIntrare
- , TaxCode
- , SOrderPozId
- , ValoareRedusaFaraTva
- , ValoareRedusaTva
- , ValoareFaraTva
- , ValoareTva
- )
- VALUES
- (
- s.IesCapId
- , @FirmaID
- , @DivizieID
- , s.ProdusID
- , s.IntrPozId
- , s.IntrPozOrigId
- , s.CantIesire
- , s.Cantitate2
- , s.CantIesire
- , s.PretVanzare
- , s.PretVanzareRedus
- , s.Tva
- , s.GestiuneID
- , s.PretAmanunt
- , s.PretAmanuntRedus
- , s.Discount
- , s.RetailPozIesireID
- , s.RetailPozIesireReturID
- , s.Serie
- , s.TaxCode
- , s.SOrderPozId
- , s.ValoareRedusaFaraTva
- , s.ValoareRedusaTva
- , s.ValoareFaraTva
- , s.ValoareTva
- )
- OUTPUT s.IesCapId, s.DataIes, s.DocId, inserted.IesPozId, @FirmaId, @DivizieId, CAST(s.Promotii AS XML)
- INTO #IesPozInserate (CapDocId, DataDoc, DocId, IesPozId, FirmaId, DivizieId, Promotii);
- /*
- INSERT INTO inv.IesPoz
- (
- IesCapId
- ,FirmaID
- ,DivizieId
- ,ProdusID
- ,IntrPozId
- ,IntrPozOrigId
- ,CantIesire
- ,CantFacturata
- --,Cantitate2
- ,PretVanzare
- ,PretVanzareRedus
- ,Tva
- ,GestiuneID
- ,PretAmanunt
- ,PretAmanuntRedus
- ,RetailPozIesireID
- ,RetailPozIesireReturID
- ,SerieIntrare
- ,TaxCode
- --,Amanunt
- ,SOrderPozId
- ,ValoareRedusaFaraTva
- ,ValoareRedusaTva
- ,ValoareFaraTva
- ,ValoareTva
- )
- SELECT DISTINCT
- cap.IesCapId
- , @FirmaID
- , @DivizieID
- , pozRetail.ProdusID
- , pozRetail.IntrPozId
- , pozRetail.IntrPozOrigId
- , pozRetail.CantIesire
- , pozRetail.CantIesire
- --, CASE WHEN ret.RetetaCapId IS NOT NULL AND ret.Cant IS NULL
- -- THEN pozRetail.CantIesire * pr.GreutateNeta
- -- END
- --, CASE WHEN (retcap.GestiuneDestinatieId IS NOT NULL OR g.GestiuneId IS NOT NULL OR ISNULL(retcap.IgnoraDescarcare,0) = 0) AND retcap.Cant IS NULL
- -- THEN pozRetail.CantIesire * pr.GreutateNeta
- -- END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzare END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.PretVanzareRedus END
- , pozRetail.Tva
- , pozRetail.GestiuneID
- , pozRetail.PretAmanunt
- , pozRetail.PretAmanuntRedus
- , pozRetail.RetailPozIesireID
- , pozRetail.RetailPozIesireReturID
- , pozRetail.Serie
- , CASE WHEN pozRetail.DocId = 13 THEN @ConfigTaxCodeBC
- ELSE CASE WHEN ISNULL(pozRetail.IdIesPoz, 0) = 0 THEN @ConfigTaxCode ELSE @ConfigTaxCodeBFF END
- END
- --, 1
- , pozRetail.SOrderPozId
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaFaraTva END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareRedusaTva END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareFaraTva END
- , CASE WHEN pozRetail.DocId <> 13 THEN pozRetail.ValoareTva END
- FROM #PozitiiBuffer pozRetail
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = pozRetail.ProdusId
- INNER JOIN #IesCap capRetail
- ON pozRetail.RetailCapIesireID = capRetail.RetailCapIesireId
- AND pozRetail.Identificator = capRetail.CodCalc
- INNER JOIN inv.IesCap cap ( NOLOCK )
- ON capRetail.CodCalc = cap.CodCalc
- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- AND cap.DocId IN (13,21)
- AND cap.DataValidare = capRetail.DataValidare
- --LEFT JOIN #Retete ret
- -- ON ret.ProdusId = pozRetail.ProdusID
- -- AND cap.DataIes BETWEEN ISNULL(ret.ValabilDeLa,'') AND ISNULL(ret.ValabilPanaLa,'22000101')
- --LEFT JOIN dbo.tblRetetacap retcap (NOLOCK)
- -- ON retcap.ProdusId = pozRetail.ProdusId
- -- AND retcap.DivizieId = @divizieId
- -- AND ISNULL(retcap.Inactiv,0) = 0
- -- AND retcap.DataAnulare IS NULL
- -- AND cap.dataies BETWEEN ISNULL(retcap.ValabilDeLa,'') and ISNULL(retcap.ValabilPanaLA,'22000101')
- --LEFT JOIN dbo.tblRetetaCapGestiuniDest rgd (NOLOCK)
- -- ON rgd.RetetaCapId = retcap.RetetaCapId
- -- AND rgd.FirmaId = @FirmaId
- --LEFT JOIN dbo.tblGestiuni g (NOLOCK)
- -- ON g.GestiuneId = rgd.GestiuneId
- -- AND g.FirmaId = @FirmaId
- -- AND g.DivizieId = @DivizieID
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieID
- AND pozRetail.ParentId IS NULL
- AND ISNULL(pozRetail.IsMeniu,0) = 0
- */
- --INSERT dbo.tblPozDocPromo
- --(
- -- CapDocId
- --, DataDoc
- --, DocId
- --, PozDocId
- --, PozDoc2Id
- --, PromotieId
- --, ContorId
- --, Valoare
- --, ProdusId
- --, Procent
- --, CardId
- --, ClientId
- --, Mesaj
- --)
- --SELECT
- -- temp.CapDocId
- --, temp.DataDoc
- --, temp.DocId
- --, temp.IesPozId
- --, temp.IesPoz2Id
- --, p.value('pid[1]', 'INT')
- --, CASE WHEN p.value('cid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('cid[1]', 'INT') END
- --, CASE WHEN p.value('val[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('val[1]', 'DECIMAL(18, 5)') END
- --, CASE WHEN p.value('prodid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('prodid[1]', 'INT') END
- --, CASE WHEN p.value('proc[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('proc[1]', 'DECIMAL(18, 5)') END
- --, CASE WHEN p.value('cardid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('cardid[1]', 'INT') END
- --, CASE WHEN p.value('clientid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('clientid[1]', 'INT') END
- --, NULL
- --FROM #IesPozInserate temp
- -- OUTER APPLY temp.Promotii.nodes('/promotii/promo') t (p)
- --WHERE p.value('pid[1]', 'INT') IS NOT NULL
- -- AND p.value('pozid[1]', 'INT') IS NOT NULL
- SELECT
- temp.CapDocId
- , temp.DataDoc
- , temp.DocId
- , temp.IesPozId
- , temp.IesPoz2Id
- , CAST(p.value('pid[1]', 'INT') AS INT) PId
- , CAST(CASE WHEN p.value('cid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('cid[1]', 'INT') END AS INT) CId
- , CAST(CASE WHEN p.value('val[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('val[1]', 'DECIMAL(18, 5)') END AS DECIMAL(18,5)) Val
- , CAST(CASE WHEN p.value('prodid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('prodid[1]', 'INT') END AS INT) ProdId
- , CAST(CASE WHEN p.value('proc[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('proc[1]', 'DECIMAL(18, 5)') END AS DECIMAL(18,5)) [Proc]
- , CAST(CASE WHEN p.value('cardid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('cardid[1]', 'INT') END AS INT) CardId
- , CAST(CASE WHEN p.value('clientid[1]', 'NVARCHAR(MAX)') = '' THEN NULL ELSE p.value('clientid[1]', 'INT') END AS INT) ClientId
- , CAST(NULL AS NVARCHAR(MAX)) Mesaj
- INTO #TempPromotii
- FROM #IesPozInserate temp
- OUTER APPLY temp.Promotii.nodes('/promotii/promo') t (p)
- WHERE p.value('pid[1]', 'INT') IS NOT NULL
- AND p.value('pozid[1]', 'INT') IS NOT NULL
- IF EXISTS(SELECT TOP 1 * FROM #TempPromotii)
- BEGIN
- INSERT dbo.tblPozDocPromo
- (
- CapDocId
- , DataDoc
- , DocId
- , PozDocId
- , PozDoc2Id
- , PromotieId
- , ContorId
- , Valoare
- , ProdusId
- , Procent
- , CardId
- , ClientId
- , Mesaj
- )
- SELECT
- temp.CapDocId
- , temp.DataDoc
- , temp.DocId
- , temp.IesPozId
- , temp.IesPoz2Id
- , temp.PId
- , temp.CId
- , temp.Val
- , temp.ProdId
- , temp.[Proc]
- , temp.CardId
- , ISNULL(temp.ClientId,@ConfigClientImplicitID) AS ClientId
- , temp.Mesaj
- FROM #TempPromotii temp
- UPDATE capp
- set capp.Descrierepromotie = STUFF((SELECT ' ●' + isnull(temp.mesaj, pp.Promotie) + '<br>'
- from #TempPromotii temp
- inner join dbo.tblpromotii pp (NOLOCK)
- on pp.PromotieId = temp.PId
- WHERE temp.IesPozId = capp.IesPozId
- and (temp.val > 0 or temp.[Proc] > 0 or temp.mesaj is not null)
- and isnull(pp.NoDisplay,0) = 0
- order by pp.Promotie
- FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,0,'')
- from inv.IesPoz capp
- INNER JOIN #IesPozInserate ip
- ON ip.IesPozId = capp.IesPozId
- UPDATE capp
- set capp.[Descriere Promotii] = STUFF((SELECT ' ●' + isnull(temp.mesaj, pp.Promotie) + '<br>'
- from #TempPromotii temp
- inner join dbo.tblpromotii pp (NOLOCK)
- on pp.PromotieId = temp.PId
- WHERE temp.IesPoz2Id = capp.IesPoz2Id
- and (temp.val > 0 or temp.[Proc] > 0 or temp.mesaj is not null)
- and isnull(pp.NoDisplay,0) = 0
- order by pp.Promotie
- FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,0,'')
- from inv.IesPoz2 capp
- INNER JOIN #IesPozInserate ip
- ON ip.IesPoz2Id = capp.IesPoz2Id
- END
- --SELECT *
- --INTO TempPozPromo
- --FROM #IesPozInserate
- -- inserare detalii din comanda
- IF OBJECT_ID('tempdb..#ParentIesPozInserati') IS NOT NULL
- DROP TABLE #ParentIesPozInserati
- CREATE TABLE #ParentIesPozInserati (IesPozId INT)
- INSERT INTO inv.IesPoz
- (
- IesCapId
- ,FirmaID
- ,DivizieId
- ,ProdusID
- ,IntrPozId
- ,IntrPozOrigId
- ,CantIesire
- ,CantFacturata
- ,PretVanzare
- ,PretVanzareRedus
- ,Tva
- ,GestiuneID
- ,PretAmanunt
- ,PretAmanuntRedus
- --,RetailPozIesireID
- ,RetailPozIesireReturID
- ,SerieIntrare
- ,TaxCode
- --,Amanunt
- ,SOrderPozId
- ,ValoareRedusaFaraTva
- ,ValoareRedusaTva
- ,ValoareFaraTva
- ,ValoareTva
- ,ParentIesPozId
- ,RetailPozIesireID
- )
- OUTPUT inserted.ParentIesPozId INTO #ParentIesPozInserati(IesPozId)
- select p.IesCapId
- ,p.FirmaId
- ,p.DivizieId
- ,det.ProdusId
- ,null
- ,null
- ,ROUND((det.Cant/sp.Cant) * p.cantiesire,@setare623)
- ,ROUND((det.Cant/sp.Cant) * p.cantiesire,@setare623)
- ,det.pretvaluta * isnull(det.cursvalutar,1)
- ,isnull(det.pretvalutaredus,det.pretvaluta) * isnull(det.cursvalutar,1)
- ,t.Tva
- ,null
- ,null
- ,null
- --,null
- ,null
- ,null
- ,p.TaxCode--CASE WHEN pdet.TipItem='P' then td.TaxCodeP ELSE td.TaxCodeS END
- ,det.SOrderPozId
- ,ROUND(ROUND((det.Cant/sp.Cant) * p.cantiesire,@setare623) * ISNULL(det.pretvalutaredus,det.pretvaluta) * isnull(det.cursvalutar,1),2)
- ,ROUND(ROUND((det.Cant/sp.Cant) * p.cantiesire,@setare623) * ISNULL(det.pretvalutaredus,det.pretvaluta) * isnull(det.cursvalutar,1) * t.tva / 100.00,2)
- ,ROUND(ROUND((det.Cant/sp.Cant) * p.cantiesire,@setare623) * det.pretvaluta * isnull(det.cursvalutar,1),2)
- ,ROUND(ROUND((det.Cant/sp.Cant) * p.cantiesire,@setare623) * det.pretvaluta * isnull(det.cursvalutar,1) * t.tva / 100.00,2)
- ,p.IesPozId
- ,p.RetailPozIesireID
- FROM #Iescap capRetail
- --INNER JOIN inv.IesCap cap ( NOLOCK )
- -- ON capRetail.CodCalc = cap.CodCalc
- -- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- -- AND cap.DocId IN (13,21)
- -- AND cap.DataValidare = capRetail.DataValidare
- --INNER JOIN inv.TipDoc (NOLOCK) td on td.TipDocId=cap.TipDocId
- INNER JOIN inv.iespoz p (NOLOCK) on p.iescapid=capRetail.IesCapInseratId --cap.iescapid
- INNER JOIN dbo.SorderPoz sp (NOLOCK) on sp.SorderPozId = p.SorderPozId
- INNER JOIN dbo.SorderPoz det (NOLOCK) ON det.SOrderPozParentId IS NULL AND det.ParentSorderPozId = sp.SorderPozId
- INNER JOIN dbo.tblProduse pdet (NOLOCK) ON pdet.ProdusId=det.ProdusID
- INNER JOIN dbo.tblTva t (NOLOCK) on t.TvaId=pdet.TvaId
- UPDATE p
- SET p.Continedetalii = 1
- , p.gestiuneid = @GestiuneDestinatieId --ISNULL(@GestiuneDestinatieId,p.gestiuneid)
- , p.Amanunt = @AmanuntGestiuneDestinatie --g.Amanunt
- FROM #ParentIesPozInserati poz
- INNER JOIN inv.IesPoz p
- ON p.IesPozId = poz.IesPozId
- --FROM #Iescap capRetail
- --INNER JOIN inv.IesCap cap ( NOLOCK )
- -- ON capRetail.CodCalc = cap.CodCalc
- -- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- -- AND cap.DocId IN (13,21)
- -- AND cap.DataValidare = capRetail.DataValidare
- --INNER JOIN inv.TipDoc (NOLOCK) td on td.TipDocId = cap.TipDocId
- --INNER JOIN inv.iespoz p (NOLOCK) on p.iescapid = cap.iescapid
- --INNER JOIN inv.Iespoz pa (NOLOCK) on pa.ParentIesPozID = p.IesPozId
- --LEFT JOIN dbo.tblGestiuni g (NOLOCK) ON g.GestiuneId = ISNULL(@GestiuneDestinatieId,p.gestiuneid)
- --WHERE ISNULL(p.ContineDetalii,0) = 0
- DECLARE @CmdIncasAvSauStorn TABLE (IesCapId INT, IdCmdStornata INT, IdCmdAvans INT, Valoare DECIMAL(18, 5), DataValidare DATE)
- INSERT INTO @CmdIncasAvSauStorn(IesCapId, IdCmdStornata, IdCmdAvans, Valoare, DataValidare)
- SELECT cap.IesCapId,
- MAX(capRetail.IdCmdStornata) AS IdCmdStornata,
- MAX(capRetail.IdCmdAvans) AS IdCmdAvans,
- MAX(ISNULL(cap.ValoareFaraTva, 0) + ISNULL(cap.ValoareTva, 0)) AS Valoare,
- CAST(MAX(cap.DataValidare) AS DATE) AS DataValidare
- FROM #IesCap capRetail
- INNER JOIN inv.Iescap cap (NOLOCK)
- ON cap.IesCapId = capRetail.IesCapInseratId
- --FROM inv.IesCap cap (NOLOCK)
- --INNER JOIN #IesCap capRetail
- -- ON capRetail.CodCalc = cap.CodCalc
- -- AND capRetail.RetailCapIesireID = cap.RetailCapIesireID
- -- AND cap.DocId IN (13,21)
- -- AND capRetail.DataValidare = cap.DataValidare
- -- AND capRetail.IesCapFacturaId IS NULL
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieID
- AND (capRetail.IdCmdStornata IS NOT NULL OR capRetail.IdCmdAvans IS NOT NULL)
- --AND cap.IesCapFacturaId IS NULL
- --AND cap.DocGeneratorId IS NULL
- --AND cap.CapDocGeneratorId IS NULL
- GROUP BY cap.IesCapId
- UPDATE cmd
- SET cmd.IesCapId = Ies4Cmd.IesCapId,
- cmd.StareFinalizata = 1,
- cmd.StareId = ISNULL(@StareCmdNoua,cmd.StareId) /* ISNULL((SELECT TOP 1 StareId
- FROM dbo.tblStariDoc (NOLOCK)
- WHERE DocId = 26--comanda client
- AND ISNULL(Final, 0) = 1
- AND ISNULL(FinalizatPartial, 0) = 1
- AND ISNULL(DocValidat, 0) = 1
- AND FirmaId = @FirmaId
- AND DivizieId = @DivizieId
- ), cmd.StareId)*/
- OUTPUT inserted.SOrderCapId, inserted.FirmaId, inserted.DivizieId, inserted.UserValidareId INTO @CmdFin(SOrderCapId, FirmaId, DivizieId, UserId)
- FROM dbo.SOrderCap cmd (NOLOCK)
- INNER JOIN @CmdIncasAvSauStorn Ies4Cmd
- ON Ies4Cmd.IdCmdStornata = cmd.SOrderCapId
- WHERE cmd.FirmaId = @FirmaID
- AND cmd.DivizieId = @DivizieID
- AND cmd.IesCapId IS NULL
- --update valoare avans
- UPDATE cmd
- SET cmd.ValoareAvans = Ies4Cmd.Valoare
- FROM dbo.SOrderCap cmd (NOLOCK)
- INNER JOIN @CmdIncasAvSauStorn Ies4Cmd
- ON Ies4Cmd.IdCmdAvans = cmd.RetailCapIesireId
- AND Ies4Cmd.DataValidare = cmd.SOrderDate
- WHERE cmd.FirmaId = @FirmaID
- AND cmd.DivizieId = @DivizieID
- --WHILE (EXISTS(SELECT TOP 1 SOrderCapId FROM @CmdFin))
- --BEGIN
- -- DECLARE @SorderCapComId INT,
- -- @SYS_UNITID INT,
- -- @SYS_DIVID INT,
- -- @SYS_USERID INT
- -- SELECT TOP 1
- -- @SorderCapComId = SOrderCapId ,
- -- @SYS_UNITID = FirmaId,
- -- @SYS_DIVID = DivizieId,
- -- @SYS_USERID = UserId
- -- FROM @CmdFin
- -- EXEC dbo.ComandaClient_Finalizare
- -- @SorderCapID = @SorderCapComId,
- -- @SYS_UNITID = @SYS_UNITID,
- -- @SYS_DIVID = @SYS_DIVID,
- -- @SYS_USERID = @SYS_USERID,
- -- @SYS_LANGID = 'RO'
- -- DELETE FROM @CmdFin WHERE SOrderCapId = @SorderCapComId
- --END
- --=================== comenzi pos ===========================
- if @Debug=1 /*d*/
- BEGIN
- SELECT 'Set prelucrat in buffer'
- END
- UPDATE Retail.BufferPozitiiBon
- SET Prelucrat = 1
- FROM Retail.BufferPozitiiBon buff ( NOLOCK )
- INNER JOIN #PozitiiBuffer pozTemp
- ON buff.BufferPozitieBonID = pozTemp.BufferPozitieBonID
- AND buff.Identificator = pozTemp.Identificator
- WHERE FirmaID = @FirmaId
- AND DivizieId = @DivizieID
- IF XACT_STATE() = 1
- COMMIT TRANSACTION T1
- IF @Descarcare = 1 AND @GestiuniRetail IS NOT NULL
- BEGIN
- --=================================================== INCEPUT SINCRONIZARE CU STOC ==================================================================================
- --la sincronizarea cu stocul se vor completa in IesPoz toate campurile din IntrPoz
- --------------------------------------------------------------------------------------------------------------
- --Legatura la stoc la pozitiile cu cant pozitiva
- IF OBJECT_ID('tempdb..#TempSync') IS NOT NULL
- DROP TABLE #TempSync
- CREATE TABLE #TempSync
- (
- TempSyncId INT IDENTITY(1,1)
- ,IesCapId INT
- ,IesPozId INT
- ,CantIesire DECIMAL(18,5)
- ,Cantitate2 DECIMAL(18,5)
- ,Prelucrat BIT
- ,IntrPozOrigId INT NULL
- ,SerieIntrare NVARCHAR(200) NULL
- ,PretAmanunt DECIMAL(18,5)
- ,SOrderPozId int
- ,ProdusId int
- ,RetetaPozId Int NULL
- ,ParentIesPozId int NULL
- ,DataIes DATE
- ,DocId INT
- )
- INSERT INTO #TempSync
- (IesCapId
- ,IesPozId
- ,CantIesire
- ,Cantitate2
- ,Prelucrat
- ,IntrPozOrigId
- ,SerieIntrare
- ,PretAmanunt
- ,SOrderPozId
- ,ProdusID
- ,RetetaPozId
- ,ParentIesPozId
- ,DataIes
- ,DocId
- )
- SELECT
- cap.IesCapId
- , poz.IesPozId
- , poz.CantIesire
- , poz.Cantitate2
- , 0
- , poz.IntrPozOrigId
- , poz.SerieIntrare
- , poz.PretAmanunt
- , poz.SorderPozId
- , poz.ProdusID
- , poz.RetetaPozId
- , poz.ParentIesPozId
- , cap.DataIes
- , cap.DocId
- FROM inv.IesPoz poz ( NOLOCK )
- INNER JOIN inv.Iescap cap ( NOLOCK )
- ON cap.IesCapId = poz.IesCapId
- LEFT JOIN dbo.tblProduse p ( NOLOCK )
- ON p.ProdusId = poz.ProdusId
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieId
- AND cap.DataAnulare IS NULL
- AND poz.IntrPozId IS NULL-- nesincronizate cu stocul
- AND ((cap.DocId = 13 AND cap.TipDocId = @ConfigTipDocBonConsum AND @TipDocBCStoc = 1)
- OR (cap.Docid = 21 AND cap.TipDocId = @ConfigTipDocIdBonCuStoc AND @TipDocStoc = 1))
- --AND cap.TipDocId in (@ConfigTipDocIdBonCuStoc, @ConfigTipDocBonConsum)
- --AND cap.IesCapFacturaId IS NULL--fara bonurile din factura
- AND cap.RetailCapIesireID IS NOT NULL
- --AND poz.RetailPozIesireID IS NOT NULL
- AND cap.DocGeneratorId IS NULL
- AND cap.CapDocGeneratorId IS NULL
- AND ISNULL(cap.Retur,0) = 0
- AND poz.CantIesire > 0
- AND ISNULL(p.TipItem,'P') <> 'S'
- and ISNULL(poz.ContineDetalii,0)=0
- --AND @Descarcare = 1
- --AND @GestiuniRetail IS NOT NULL
- ORDER BY cap.DataIes
- --bonuri generate din comanda
- INSERT INTO #TempSync
- (
- IesCapId
- , IesPozId
- , CantIesire
- , Cantitate2
- , Prelucrat
- , IntrPozOrigId
- , SerieIntrare
- , PretAmanunt
- , SOrderPozId
- , ProdusID
- , RetetaPozId
- , ParentIesPozId
- , DataIes
- , DocId
- )
- SELECT
- cap.IesCapId
- , poz.IesPozId
- , poz.CantIesire
- , poz.Cantitate2
- , 0
- , poz.IntrPozOrigId
- , poz.SerieIntrare
- , poz.PretAmanunt
- , poz.SorderPozId
- , poz.ProdusID
- , poz.RetetaPozId
- , poz.ParentIesPozId
- , cap.DataIes
- , cap.DocId
- FROM inv.IesPoz poz ( NOLOCK )
- INNER JOIN inv.Iescap cap ( NOLOCK )
- ON cap.IesCapId = poz.IesCapId
- LEFT JOIN dbo.tblProduse p ( NOLOCK )
- ON p.ProdusId = poz.ProdusId
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieId
- AND cap.DataAnulare IS NULL
- AND poz.IntrPozId IS NULL-- nesincronizate cu stocul
- AND cap.DocId = @DocIdBon
- AND cap.TipDocId = @ConfigTipDocIdBonCuStoc
- AND ISNULL(@TipDocStoc,0) = 1
- --AND cap.IesCapFacturaId IS NULL--fara bonurile din factura
- AND cap.RetailCapIesireID IS NULL
- --AND poz.RetailPozIesireID IS NULL
- AND cap.DocGeneratorId = 26
- AND cap.CapDocGeneratorId IS NOT NULL
- AND ISNULL(cap.Retur,0) = 0
- AND poz.CantIesire > 0
- AND ISNULL(p.TipItem,'P') <> 'S'
- and ISNULL(poz.ContineDetalii,0)=0
- --AND @Descarcare = 1
- --AND @GestiuniRetail IS NOT NULL
- ORDER BY cap.DataIes
- if @Debug=1 /*d*/
- BEGIN
- SELECT '#TempSync:'
- SELECT * FROM #TempSync
- SELECT 'Begin WHILE Bonuri'
- END
- WHILE EXISTS
- ( SELECT TOP 1 *
- FROM #TempSync
- WHERE ISNULL(Prelucrat,0) = 0
- )
- BEGIN
- DECLARE @SorderPozId INT =null
- , @RetetaPozId INT =null
- , @RetetaCapId INT = NULL
- , @DataIes DATE = NULL
- , @DocIdSync INT = NULL
- SELECT @CantIesire = NULL
- , @Cant2 = NULL
- --iau prima pozitie nesincronizata
- SELECT TOP 1
- @TempSyncId = TempSyncId
- , @IesCapId = IesCapId
- , @IesPozId = IesPozId
- , @CantIesire = CantIesire
- , @Cant2 = Cantitate2
- , @IntrPozOrigId = IntrPozOrigId
- , @SerieIntrare = SerieIntrare
- , @PretAmanuntBuffer = PretAmanunt
- , @SorderPozId=SorderPozId
- , @ProdusId=ProdusId
- , @RetetaPozId=RetetaPozId
- , @DataIes = DataIes
- , @DocIdSync = DocId
- FROM #TempSync
- WHERE ISNULL(Prelucrat,0) = 0
- PRINT '@TempSyncId:' + CAST(@TempSyncId AS NVARCHAR)
- PRINT '@IesCapId:' + CAST(@IesCapId AS NVARCHAR)
- PRINT '@IesPozId:' + CAST(@IesPozId AS NVARCHAR)
- PRINT '@CantIesire:' + CAST(@CantIesire AS NVARCHAR)
- PRINT '@IntrPozOrigId:' + CAST(ISNULL(@IntrPozOrigId,0) AS NVARCHAR)
- PRINT '@SerieIntrare:' + CAST(ISNULL(@SerieIntrare,'') AS NVARCHAR)
- PRINT '@PretAmanuntBuffer:' + CAST(ISNULL(@PretAmanuntBuffer,0) AS NVARCHAR)
- BEGIN
- --SET @ProdusID = NULL
- SET @FurnizorID = NULL
- SET @FurnizorOriginalID = NULL
- SET @NumarIntr = NULL
- SET @DataIntr = NULL
- SET @DocIntrId = NULL
- SET @TipDocINtrID = NULL
- SET @DataScadenta = NULL
- SET @NumarFactIntr = NULL
- SET @DataFactIntr = NULL
- SET @PretIntrare = NULL
- SET @PretIntrareRedus = NULL
- SET @PretCost = NULL
- SET @PretCMP = NULL
- SET @GestiuneId = NULL
- SET @Amanunt = NULL
- SET @LotIntrare = NULL
- SET @DataExpirare = NULL
- SET @DataFabricare = NULL
- --SET @SerieIntrare = NULL
- --SET @IntrPozOrigId = NULL
- SET @POOrderPozId = NULL
- SET @Stoc = NULL
- SET @IntrPozId = NULL
- SET @PretAmanuntStoc = NULL
- SET @Reev = NULL
- DECLARE @SorderPozParentId int =null
- BEGIN TRAN
- IF(@SorderPozId IS NOT NULL)
- BEGIN
- SELECT TOP 1
- @IntrPozId = stoc.IntrPozId
- , @IntrPozOrigId = stoc.IntrPozOrigId
- , @GestiuneId = stoc.GestiuneId
- , @Amanunt = ISNULL(g.Amanunt,0)
- , @SerieIntrare = stoc.SerieIntrare
- , @LotIntrare = stoc.LotIntrare
- , @DataFabricare = stoc.DataFabricare
- , @DataExpirare = stoc.DataExpirare
- , @Stoc = stoc.Cant
- , @FurnizorID = stoc.FurnizorID
- , @FurnizorOriginalID = stoc.FurnizorOriginalID
- , @NumarIntr = stoc.NumarIntr
- , @DataIntr = stoc.DataIntr
- , @DocIntrId = stoc.DocIntrId
- , @TipDocINtrID = stoc.TipDocIntrId
- , @DataScadenta = stoc.DataScadentaIntr
- , @NumarFactIntr = stoc.NumarFactIntr
- , @DataFactIntr = stoc.DataFactIntr
- , @PretIntrare = stoc.PretIntrare
- , @PretIntrareRedus = stoc.PretIntrareRedus
- , @PretCost = stoc.PretCost
- , @PretCMP = stoc.PretCmp
- , @POOrderPozId = stoc.POrderPozId
- , @PretAmanuntStoc = ISNULL(stoc.PretAmanunt,0)
- , @Reev = CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0) THEN 0 ELSE 1 END
- , @SorderPozParentId = stoc.SorderPozId
- FROM dbo.SorderPoz stoc WITH ( ROWLOCK,UPDLOCK )
- INNER JOIN dbo.tblGestiuni G WITH ( NOLOCK )
- ON G.GestiuneId = stoc.GestiuneID
- --AND G.FirmaID = @FirmaID
- --AND G.DivizieId = @DivizieID
- LEFT JOIN #GestiuniBonConsum g13
- ON g13.val = g.GestiuneId
- AND @DocIdSync = 13
- LEFT JOIN #GestiuniBonFiscal g21
- ON g21.val = g.GestiuneId
- AND @DocIdSync = 21
- --INNER JOIN
- -- (
- -- SELECT val
- -- FROM dbo.SplitString(@ConfigGestiuni,',')
- -- WHERE LTRIM(RTRIM(ISNULL(val,''))) <> ''
- -- ) CodGestSetare1
- -- ON G.CodGestiune = CodGestSetare1.val
- WHERE stoc.SOrderPozParentId = @SorderPozId
- AND Stoc.Cant > 0
- AND (@IntrPozOrigId IS NULL OR stoc.IntrPozId = @IntrPozOrigId)
- AND (@SerieIntrare IS NULL OR stoc.SerieIntrare = @SerieIntrare)
- AND ((@DocIdSync = 13 AND g13.val IS NOT NULL) OR (@DocIdSync = 21 AND g21.val IS NOT NULL))
- ORDER BY
- CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0)
- THEN 1 ELSE 0
- END DESC
- , stoc.DataIntr
- END
- IF @IntrPozId IS NULL
- BEGIN
- IF(@RetetaPozId IS NOT NULL)
- BEGIN
- SELECT @RetetaCapId = RetetaCapId
- FROM dbo.tblRetetaPoz (NOLOCK)
- WHERE RetetaPozId = @RetetaPozId
- --SELECT TOP 1 @GestiuneSursaRetetaIds =cap.GestiuneSursaIds
- --FROM dbo.tblRetetaPoz p (NOLOCK)
- -- INNER JOIN dbo.tblretetacap cap (NOLOCK)
- -- on cap.RetetaCapId = p.RetetaCapId
- --WHERE p.RetetaPozId=@RetetaPozId
- --IF ISNULL(@GestiuneSursaRetetaIds,'') = ''
- -- SELECT @GestiuneSursaRetetaIds = @GestiuniMPIds
- SELECT TOP 1
- @IntrPozId = stoc.IntrPozId
- , @IntrPozOrigId = stoc.IntrPozOrigId
- , @GestiuneId = stoc.GestiuneId
- , @Amanunt = ISNULL(g.Amanunt,0)
- , @SerieIntrare = stoc.SerieIntrare
- , @LotIntrare = stoc.LotIntrare
- , @DataFabricare = stoc.DataFabricare
- , @DataExpirare = stoc.DataExpirare
- , @Stoc = stoc.Stoc
- , @FurnizorID = stoc.FurnizorID
- , @FurnizorOriginalID = stoc.FurnizorOriginalID
- , @NumarIntr = stoc.NumarIntr
- , @DataIntr = stoc.DataIntr
- , @DocIntrId = stoc.DocIntrId
- , @TipDocINtrID = stoc.TipDocINtrID
- , @DataScadenta = stoc.DataScadenta
- , @NumarFactIntr = stoc.NumarFactIntr
- , @DataFactIntr = stoc.DataFactIntr
- , @PretIntrare = stoc.PretIntrare
- , @PretIntrareRedus = stoc.PretIntrareRedus
- , @PretCost = stoc.PretCost
- , @PretCMP = stoc.PretCMP
- , @POOrderPozId = stoc.POrderPozId
- , @PretAmanuntStoc = ISNULL(stoc.PretAmanunt,0)
- , @Reev = CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0) THEN 0 ELSE 1 END
- FROM inv.Stoc stoc WITH ( ROWLOCK,UPDLOCK )
- INNER JOIN dbo.tblGestiuni G WITH ( NOLOCK )
- ON G.GestiuneId = stoc.GestiuneID
- INNER JOIN #Retete gr
- ON gr.RetetaCapId = @RetetaCapId
- AND gr.val = g.GestiuneId
- --INNER JOIN
- -- (
- -- SELECT val
- -- FROM dbo.SplitString(@GestiuneSursaRetetaIds,',')
- -- WHERE LTRIM(RTRIM(ISNULL(val,''))) <> ''
- -- ) CodGestSetare1
- -- ON G.gestiuneid = CodGestSetare1.val
- WHERE stoc.FirmaId = @FirmaId
- AND stoc.DivizieId = @DivizieId
- AND Stoc > 0
- AND stoc.PRodusID = @ProdusId
- AND stoc.ClientCustodieId IS NULL
- AND (@IntrPozOrigId IS NULL OR stoc.IntrPozId = @IntrPozOrigId)
- AND (@SerieIntrare IS NULL OR stoc.SerieIntrare = @SerieIntrare)
- ORDER BY
- stoc.DataIntr
- , CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0) THEN 1 ELSE 0 END DESC
- END
- --IF(@SToc is null)
- ELSE
- BEGIN
- --iau prima pozitie din stoc din gestiunile de retail cu produsid!
- SELECT TOP 1
- @IntrPozId = stoc.IntrPozId
- , @IntrPozOrigId = stoc.IntrPozOrigId
- , @GestiuneId = stoc.GestiuneId
- , @Amanunt = ISNULL(g.Amanunt,0)
- , @SerieIntrare = stoc.SerieIntrare
- , @LotIntrare = stoc.LotIntrare
- , @DataFabricare = stoc.DataFabricare
- , @DataExpirare = stoc.DataExpirare
- , @Stoc = stoc.Stoc
- , @FurnizorID = stoc.FurnizorID
- , @FurnizorOriginalID = stoc.FurnizorOriginalID
- , @NumarIntr = stoc.NumarIntr
- , @DataIntr = stoc.DataIntr
- , @DocIntrId = stoc.DocIntrId
- , @TipDocINtrID = stoc.TipDocINtrID
- , @DataScadenta = stoc.DataScadenta
- , @NumarFactIntr = stoc.NumarFactIntr
- , @DataFactIntr = stoc.DataFactIntr
- , @PretIntrare = stoc.PretIntrare
- , @PretIntrareRedus = stoc.PretIntrareRedus
- , @PretCost = stoc.PretCost
- , @PretCMP = stoc.PretCMP
- , @POOrderPozId = stoc.POrderPozId
- , @PretAmanuntStoc = ISNULL(stoc.PretAmanunt,0)
- , @Reev = CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0) THEN 0 ELSE 1 END
- FROM inv.Stoc stoc WITH ( ROWLOCK,UPDLOCK )
- INNER JOIN dbo.tblGestiuni G WITH ( NOLOCK )
- ON G.GestiuneId = stoc.GestiuneID
- LEFT JOIN #GestiuniBonConsum g13
- ON g13.val = g.GestiuneId
- AND @DocIdSync = 13
- LEFT JOIN #GestiuniBonFiscal g21
- ON g21.val = g.GestiuneId
- AND @DocIdSync = 21
- --INNER JOIN
- -- (
- -- SELECT val
- -- FROM dbo.SplitString(@ConfigGestiuni,',')
- -- WHERE LTRIM(RTRIM(ISNULL(val,''))) <> ''
- -- ) CodGestSetare1
- -- ON G.CodGestiune = CodGestSetare1.val
- WHERE stoc.FirmaId = @FirmaId
- AND stoc.DivizieId = @DivizieId
- AND Stoc > 0
- AND stoc.PRodusID = @ProdusId
- AND stoc.ClientCustodieId IS NULL
- AND (@IntrPozOrigId IS NULL OR stoc.IntrPozId = @IntrPozOrigId)
- AND (@SerieIntrare IS NULL OR stoc.SerieIntrare = @SerieIntrare)
- AND ((@DocIdSync = 13 AND g13.val IS NOT NULL) OR (@DocIdSync = 21 AND g21.val IS NOT NULL))
- ORDER BY stoc.DataIntr
- , CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0) THEN 1 ELSE 0 END DESC
- END
- --IF (
- -- ( @IntrPozId IS NULL
- -- OR @Stoc IS NULL
- -- )
- -- AND @SerieIntrare IS NOT NULL
- -- )
- --SELECT TOP 1
- -- @FurnizorID = stoc.FurnizorID
- -- , @FurnizorOriginalID = stoc.FurnizorOriginalID
- -- , @NumarIntr = stoc.NumarIntr
- -- , @DataIntr = stoc.DataIntr
- -- , @DocIntrId = stoc.DocIntrId
- -- , @TipDocINtrID = stoc.TipDocINtrID
- -- , @DataScadenta = stoc.DataScadenta
- -- , @NumarFactIntr = stoc.NumarFactIntr
- -- , @DataFactIntr = stoc.DataFactIntr
- -- , @PretIntrare = stoc.PretIntrare
- -- , @PretIntrareRedus = stoc.PretIntrareRedus
- -- , @PretCost = stoc.PretCost
- -- , @GestiuneId = stoc.GestiuneId
- -- , @Amanunt = ISNULL(g.Amanunt,0)
- -- , @LotIntrare = stoc.LotIntrare
- -- , @DataExpirare = stoc.DataExpirare
- -- , @DataFabricare = stoc.DataFabricare
- -- , @SerieIntrare = stoc.SerieIntrare
- -- , @IntrPozOrigId = stoc.IntrPozOrigId
- -- , @POOrderPozId = stoc.POrderPozId
- -- , @Stoc = stoc.Stoc
- -- , @IntrPozId = stoc.IntrPozId
- -- --, @ProdusID = stoc.ProdusId
- -- , @PretAmanuntStoc = ISNULL(stoc.PretAmanunt,0)
- -- , @Reev = CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0)
- -- THEN 0
- -- ELSE 1
- -- END
- --FROM inv.Stoc stoc WITH ( ROWLOCK,UPDLOCK )
- --INNER JOIN dbo.tblGestiuni G WITH ( NOLOCK )
- -- ON G.GestiuneId = stoc.GestiuneID
- -- --AND G.FirmaID = @FirmaID
- -- --AND G.DivizieId = @DivizieID
- --INNER JOIN
- -- (
- -- SELECT val
- -- FROM dbo.SplitString(@ConfigGestiuni,',')
- -- WHERE LTRIM(RTRIM(ISNULL(val,''))) <> ''
- -- ) CodGestSetare1
- -- ON G.CodGestiune = CodGestSetare1.val
- ----INNER JOIN tblProduse p WITH (NOLOCK)
- ---- ON P.ProdusId = stoc.ProdusId
- --WHERE stoc.FirmaId = @FirmaId
- --AND stoc.DivizieId = @DivizieId
- --AND Stoc > 0
- --AND stoc.ProdusId=@ProdusId
- --AND stoc.SerieIntrare = @SerieIntrare
- --AND stoc.ClientCustodieId IS NULL
- --ORDER BY CASE WHEN ISNULL(@PretAmanuntBuffer,0) = ISNULL(stoc.PretAmanunt,0)
- -- THEN 1
- -- ELSE 0
- -- END DESC
- -- , stoc.DataIntr
- ----ORDER BY DataExpirare
- END
- IF @IntrPozId IS NULL
- BEGIN
- SELECT @RetetaCapId = NULL
- , @GestiuneDestinatieId = NULL
- , @Amanunt = null
- SELECT TOP 1
- @RetetaCapId = RetetaCapId
- , @GestiuneDestinatieId = GestiuneDestinatieId
- , @Amanunt = Amanunt
- FROM #Retete
- WHERE ProdusId = @ProdusId
- AND @DataIes BETWEEN ISNULL(ValabilDeLa,@DataIes) AND ISNULL(ValabilPanaLa,@DataIes)
- AND ((@Cant2 IS NOT NULL AND Cant2 IS NOT NULL)
- OR Cant IS NOT NULL)
- ORDER BY ISNULL(ValabilDeLa,@DataIes)
- IF @RetetaCapId IS NOT NULL
- AND EXISTS(SELECT TOP 1 * FROM dbo.tblRetetaPoz (NOLOCK) WHERE RetetaCapId = @RetetaCapId AND ISNULL(ExcludereDinMeniu,0) = 0 AND ISNULL(Cant,0) <> 0)
- BEGIN
- INSERT INTO inv.IesPoz
- (
- IesCapId
- , FirmaID
- , DivizieId
- , ProdusID
- , IntrPozId
- , IntrPozOrigId
- , CantIesire
- , Cantitate2
- , CantFacturata
- , PretVanzare
- --, PretVanzareRedus
- , TaxCode
- , TaxInv
- , Tva
- , GestiuneID
- , PretAmanunt
- , PretAmanuntRedus
- , SerieIntrare
- , SOrderPozId
- , ValoareRedusaFaraTva
- , ValoareRedusaTva
- , ValoareFaraTva
- , ValoareTva
- , ParentIesPozId
- , RetetaPozId
- , DinJob
- )
- SELECT
- p.IesCapId
- , p.FirmaId
- , p.DivizieId
- , retpoz.ProdusId
- , null -- IntrPozId
- , null -- IntrPozOrigId
- , ROUND(CASE WHEN retpoz.DescarcaIntreg = 1
- THEN retpoz.Cant
- ELSE CASE WHEN @Cant2 IS NOT NULL AND retcap.Cant2 IS NOT NULL
- THEN (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant2) * ISNULL(NULLIF(p.Cantitate2,0),p.CantIesire*pp.GreutateNeta)
- ELSE (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant) * p.CantIesire
- END
- END,@Setare623) -- CantIesire
- , ROUND(CASE WHEN retpoz.DescarcaIntreg = 1
- THEN retpoz.Cant
- ELSE CASE WHEN @Cant2 IS NOT NULL AND retcap.Cant2 IS NOT NULL
- THEN (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant2) * ISNULL(NULLIF(p.Cantitate2,0),p.CantIesire*pp.GreutateNeta)
- ELSE (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant) * p.CantIesire
- END
- END * CASE WHEN pdet.GreutateNeta IS NOT NULL THEN pdet.GreutateNeta
- WHEN UPPER(um.UM) = 'KG' THEN 1
- END,3) -- Cantitate2
- , ROUND(CASE WHEN cap.DocId <> 8
- THEN CASE WHEN retpoz.DescarcaIntreg = 1
- THEN retpoz.Cant
- ELSE CASE WHEN @Cant2 IS NOT NULL AND retcap.Cant2 IS NOT NULL
- THEN (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant2) * ISNULL(NULLIF(p.Cantitate2,0),p.CantIesire*pp.GreutateNeta)
- ELSE (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant) * p.CantIesire
- END
- END
- ELSE 0
- END,@setare623) -- CantFacturata
- , pcat.PretRidicata -- PretVanzare
- --, retpoz.Pret -- PretVanzareRedus
- , p.TaxCode
- , p.TaxInv
- , p.Tva --t.Tva
- , null -- GestiuneId
- , pcat.PretAmanunt -- PretAmanunt
- , null -- PretAmanuntRedus
- , null -- SerieIntrare
- , null
- , ROUND(ROUND(CASE WHEN retpoz.DescarcaIntreg = 1
- THEN retpoz.Cant
- ELSE CASE WHEN @Cant2 IS NOT NULL AND retcap.Cant2 IS NOT NULL
- THEN (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant2) * ISNULL(NULLIF(p.Cantitate2,0),p.CantIesire*pp.GreutateNeta)
- ELSE (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant) * p.CantIesire
- END
- END,@Setare623) * retpoz.Pret,2)
- , ROUND(ROUND(CASE WHEN retpoz.DescarcaIntreg = 1
- THEN retpoz.Cant
- ELSE CASE WHEN @Cant2 IS NOT NULL AND retcap.Cant2 IS NOT NULL
- THEN (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant2) *ISNULL(NULLIF(p.Cantitate2,0),p.CantIesire*pp.GreutateNeta)
- ELSE (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant) * p.CantIesire
- END
- END,@setare623) * retpoz.Pret * t.Tva/100.00,2)
- , ROUND(ROUND(CASE WHEN retpoz.DescarcaIntreg = 1
- THEN retpoz.Cant
- ELSE CASE WHEN @Cant2 IS NOT NULL AND retcap.Cant2 IS NOT NULL
- THEN (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant2) * ISNULL(NULLIF(p.Cantitate2,0),p.CantIesire*pp.GreutateNeta)
- ELSE (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant) * p.CantIesire
- END
- END,@Setare623) * retpoz.Pret,@setare351)
- , ROUND(ROUND(CASE WHEN retpoz.DescarcaIntreg = 1
- THEN retpoz.Cant
- ELSE CASE WHEN @Cant2 IS NOT NULL AND retcap.Cant2 IS NOT NULL
- THEN (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant2) * ISNULL(NULLIF(p.Cantitate2,0),p.CantIesire*pp.GreutateNeta)
- ELSE (ISNULL(retpoz.Cant,0) / ISNULL(NULLIF(1-(ISNULL(retpoz.Pierdere,0)+ISNULL(retpoz.Pierdere2,0))/100.00,0),1) / retcap.Cant) * p.CantIesire
- END
- END,@setare623) * retpoz.Pret * t.Tva/100.00,@setare351)
- , ISNULL(p.ParentIesPozId,p.IesPozId)
- , retpoz.RetetaPozId
- , 2
- FROM inv.IesPoz p (NOLOCK)
- INNER JOIN dbo.tblProduse pp (NOLOCK)
- ON pp.ProdusId = p.ProdusId
- INNER JOIN inv.IesCap cap (NOLOCK)
- ON cap.IesCapId = p.IesCapId
- AND cap.DataAnulare IS NULL
- INNER JOIN dbo.tblRetetaCap retcap (NOLOCK)
- ON retcap.RetetaCapId = @RetetaCapId
- INNER JOIN dbo.tblRetetaPoz retpoz (NOLOCK)
- ON retpoz.RetetaCapId = @RetetaCapId
- INNER JOIN dbo.tblProduse pdet (NOLOCK)
- ON pdet.ProdusId = retpoz.ProdusID
- INNER JOIN dbo.tblTva t (NOLOCK)
- on t.TvaId = pdet.TvaId
- INNER JOIN dbo.tblUm um (NOLOCK)
- on um.UmId = pdet.UmId
- LEFT JOIN inv.TipDoc td (NOLOCK)
- ON td.TipDocId = cap.TipDocId
- LEFT JOIN inv.IesPoz principal (NOLOCK)
- ON principal.IesPozId = p.ParentIesPozId
- LEFT JOIN dbo.tblPreturiProduse pcat (NOLOCK)
- ON pcat.CapListaPreturiId = @ConfigCapListaPreturiID
- AND pcat.ProdusId = pdet.ProdusId
- AND cap.DataIes BETWEEN CAST(pcat.ValabilDela AS DATE) AND CAST(ISNULL(pcat.ValabilPanaLa,cap.DataIes) AS DATE)
- AND pcat.DataAnulare IS NULL
- WHERE p.IesPozId = @IesPozId
- AND (ISNULL(td.IgnoraAmbalaje,0) = 0 OR ISNULL(pdet.Ambalaj,0) = 0)
- AND (ISNULL(retpoz.ExcludereDinMeniu,0) = 0 OR COALESCE(principal.IesPoz2Id,p.IesPoz2Id,0) = 0)
- AND ISNULL(retpoz.Cant,0) <> 0
- --Daca este reteta la reteta fac update pe cantitate
- UPDATE inv.IesPoz
- SET CantIesire = 0
- WHERE IesPozId = @IesPozId
- AND ParentIesPozId IS NOT NULL
- -- Setez gestiunea destinatie
- UPDATE inv.IesPoz
- SET GestiuneId = @GestiuneDestinatieId
- , RetetaCapId = @RetetaCapId
- , ContineDetalii = 1
- , DinJob = 2
- , Amanunt = @Amanunt
- WHERE IesPozId = @IesPozId
- AND ParentIesPozId IS NULL
- INSERT #TempSync
- (
- IesCapId
- ,IesPozId
- ,CantIesire
- ,Cantitate2
- ,Prelucrat
- ,IntrPozOrigId
- ,SerieIntrare
- ,PretAmanunt
- ,SOrderPozId
- ,ProdusID
- ,RetetaPozId
- ,ParentIesPozId
- ,DataIes
- ,DocId
- )
- SELECT
- p.IesCapId
- , p.IesPozId
- , p.CantIesire
- , p.Cantitate2
- , 0
- , null
- , null
- , p.PretAmanunt
- , null
- , p.ProdusId
- , p.RetetaPozId
- , p.ParentIesPozId
- , cap.DataIes
- , cap.DocId
- FROM inv.IesPoz p (NOLOCK)
- INNER JOIN inv.IesCap cap (NOLOCK)
- ON cap.IesCapId = p.IesCapId
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = p.Produsid
- AND pr.tipitem = 'P'
- INNER JOIN dbo.tblProduseDivizii pd (NOLOCK)
- ON pd.ProdusId = p.ProdusId
- AND pd.DivizieId = @DivizieId
- LEFT JOIN dbo.tblContabProduseFirma cpf (NOLOCK)
- ON cpf.ContabProdusId = pd.ContabProdusId
- AND cpf.FirmaId = @FirmaId
- AND cpf.DivizieId = @DivizieId
- WHERE p.ParentIesPozId = @IesPozId
- AND p.IntrPozId IS NULL
- END
- END
- IF ( @IntrPozId IS NULL
- OR @Stoc IS NULL
- )
- BEGIN
- --SELECT TOP 1
- -- @ProdusId = ProdusID
- --FROM
- -- inv.IesPoz poz ( NOLOCK )
- --WHERE
- -- IesPozId = @IesPozId
- PRINT 'Nu exista stoc pentru produsul cu ID:' + CAST(@ProdusID AS VARCHAR)
- END
- ELSE
- BEGIN
- IF ( @Stoc >= @CantIesire )
- BEGIN
- PRINT '@Stoc>=CantIesire:' + CAST(@Stoc AS NVARCHAR(20)) + '>=' + CAST(@CantIesire AS NVARCHAR)
- UPDATE inv.IesPoz
- SET
- IntrPozId = @IntrPozId
- , FurnizorID = @FurnizorID
- , FurnizorOriginalID = @FurnizorOriginalID
- , NumarIntr = @NumarIntr
- , DataIntr = @DataIntr
- , DocIntrId = @DocIntrId
- , TipDocINtrID = @TipDocINtrID
- , NumarFactIntr = @NumarFactIntr
- , DataFactIntr = @DataFactIntr
- , PretIntrare = @PretIntrare
- , PretIntrareRedus = @PretIntrareRedus
- , PretCost = @PretCost
- , GestiuneId = @GestiuneId
- , Amanunt = @Amanunt
- , LotIntrare = @LotIntrare
- , DataExpirare = @DataExpirare
- , DataFabricare = @DataFabricare
- , SerieIntrare = @SerieIntrare
- , IntrPozOrigId = @IntrPozOrigId
- , POrderPozId = @POOrderPozId
- , SorderPozId=ISNULL(@SorderPozParentId,@SorderPozId)
- , DinJob=CASE WHEN ISNULL(DinJob,0) = 2 THEN 2 ELSE 1 END
- , PretVanzare = CASE WHEN @DocIdSync = 13 THEN @PretCost ELSE PretVanzare END
- , PretVanzareRedus = CASE WHEN @DocIdSync = 13 THEN @PretCost ELSE PretVanzareRedus END
- , ValoareRedusaFaraTva = CASE WHEN @DocIdSync = 13 THEN ROUND(CantIesire * @PretCost,2) ELSE ValoareRedusaFaraTva END
- , ValoareRedusaTva = CASE WHEN @DocIdSync = 13 THEN ROUND(CantIesire * @PretCost * Tva * (1-ISNULL(TaxInv,0)) / 100.00,2) ELSE ValoareRedusaTva END
- , ValoareFaraTva = CASE WHEN @DocIdSync = 13 THEN ROUND(CantIesire * @PretCost,@setare351) ELSE ValoareFaraTva END
- , ValoareTva = CASE WHEN @DocIdSync = 13 THEN ROUND(CantIesire * @PretCost * Tva * (1-ISNULL(TaxInv,0)) / 100.00,@setare351) ELSE ValoareTva END
- WHERE IesPozId = @IesPozId
- AND FirmaID = @FirmaID
- AND DivizieId = @DivizieID
- IF(@SOrderPozParentId is null)
- BEGIN
- UPDATE inv.Stoc
- SET Stoc = Stoc - @CantIesire
- WHERE IntrPozId = @IntrPozId
- AND ISNULL(DataExpirare,'') = ISNULL(@DataExpirare,'')
- AND ISNULL(GestiuneId,0) = ISNULL(@GestiuneId,0)
- AND ISNULL(DataFabricare,'') = ISNULL(@DataFabricare,'')
- AND ISNULL(SerieIntrare,'') = ISNULL(@SerieIntrare,'')
- AND ISNULL(LotIntrare,'') = ISNULL(@LotIntrare,'')
- AND ((ISNULL(@Reev,0) = 0 AND ISNULL(PretAmanunt,0) = ISNULL(@PretAmanuntBuffer,0)) OR ISNULL(PretAmanunt,0) = ISNULL(@PretAmanuntStoc,0))
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieID
- --AND Stoc>0
- AND ClientCustodieId IS NULL
- END
- ELSE
- BEGIN
- UPDATE SorderPoz
- set cant=cant-@CantIesire
- WHERE SorderPozId=@sorderPozParentId
- END
- END
- IF ( @Stoc < @CantIesire )
- BEGIN
- PRINT '@Stoc<CantIesire:' + CAST(@Stoc AS NVARCHAR) + '<' + CAST(@CantIesire AS NVARCHAR)
- UPDATE inv.IesPoz
- SET
- IntrPozId = @IntrPozId
- , CantIesire = @Stoc
- , CantFacturata = @Stoc
- , FurnizorID = @FurnizorID
- , FurnizorOriginalID = @FurnizorOriginalID
- , NumarIntr = @NumarIntr
- , DataIntr = @DataIntr
- , DocIntrId = @DocIntrId
- , TipDocINtrID = @TipDocINtrID
- , NumarFactIntr = @NumarFactIntr
- , DataFactIntr = @DataFactIntr
- , PretIntrare = @PretIntrare
- , PretIntrareRedus = @PretIntrareRedus
- , PretCost = @PretCost
- , GestiuneId = @GestiuneId
- , Amanunt = @Amanunt
- , LotIntrare = @LotIntrare
- , DataExpirare = @DataExpirare
- , DataFabricare = @DataFabricare
- , SerieIntrare = @SerieIntrare
- , IntrPozOrigId = @IntrPozOrigId
- , POrderPozId = @POOrderPozId
- , SorderPozId=isnull(@sorderPozParentId,@SorderPozId)
- , PretVanzare = CASE WHEN @DocIdSync = 13 THEN @PretCost ELSE PretVanzare END
- , PretVanzareRedus = CASE WHEN @DocIdSync = 13 THEN @PretCost ELSE PretVanzareRedus END
- , ValoareRedusaFaraTva = CASE WHEN @DocIdSync = 13 THEN ROUND(@Stoc * @PretCost,2) ELSE ROUND((ValoareRedusaFaraTva/CantIesire)*@Stoc,6) END
- , ValoareRedusaTva= CASE WHEN @DocIdSync = 13 THEN ROUND(@Stoc * @PretCost * Tva * (1-ISNULL(TaxInv,0)) / 100.00,2) ELSE ROUND((ValoareRedusaTva/CantIesire)*@Stoc,6) END
- , ValoareFaraTva=CASE WHEN @DocIdSync = 13 THEN ROUND(@Stoc * @PretCost,@setare351) ELSE ROUND((ValoareFaraTva/CantIesire)*@Stoc,6) END
- , ValoareTva=CASE WHEN @DocIdSync = 13 THEN ROUND(@Stoc * @PretCost * Tva * (1-ISNULL(TaxInv,0)) / 100.00,@Setare351) ELSE ROUND((ValoareTva/CantIesire)*@Stoc,6) END
- , DinJob=CASE WHEN ISNULL(DinJob,0) = 2 THEN 2 ELSE 1 END
- WHERE IesPozId = @IesPozId
- AND FirmaID = @FirmaID
- AND DivizieId = @DivizieID
- IF(@sorderPozParentId is null)
- BEGIN
- UPDATE inv.Stoc
- SET Stoc = 0
- WHERE IntrPozId = @IntrPozId
- AND ISNULL(DataExpirare,'') = ISNULL(@DataExpirare,'')
- AND ISNULL(GestiuneId,0) = ISNULL(@GestiuneId,0)
- AND ISNULL(DataFabricare,'') = ISNULL(@DataFabricare,'')
- AND ISNULL(SerieIntrare,'') = ISNULL(@SerieIntrare,'')
- AND ISNULL(LotIntrare,'') = ISNULL(@LotIntrare,'')
- AND ((ISNULL(@Reev,0) = 0 AND ISNULL(PretAmanunt,0) = ISNULL(@PretAmanuntBuffer,0)) OR ISNULL(PretAmanunt,0) = ISNULL(@PretAmanuntStoc,0))
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieID
- AND ClientCustodieId IS NULL
- END
- ELSE
- BEGIN
- UPDATE Sorderpoz
- set Cant=0
- WHERE SorderPozId=@SorderPozParentID
- END
- --SELECT 'Pozitie reinserat in IesPoz:'
- --SELECT IesCapId
- -- , FirmaID
- -- , DivizieId
- -- , ProdusID
- -- , @IntrPozId
- -- , @IntrPozId
- -- , @CantIesire - @Stoc
- -- , @CantIesire - @Stoc
- -- , PretVanzare
- -- , PretVanzareRedus
- -- , Tva
- -- , GestiuneID
- -- , PretAmanunt
- -- , PretAmanuntRedus
- -- , RetailPozIesireID
- --FROM inv.IesPoz (NOLOCK)
- --WHERE IesPozId = @IesPozID
- -- AND FirmaID = @FirmaID
- -- AND DivizieID = @DivizieID
- INSERT INTO inv.IesPoz
- (
- IesCapId
- ,ParentIesPozId
- ,FirmaID
- ,DivizieId
- ,ProdusID
- ,IntrPozId
- ,IntrPozOrigId
- ,CantIesire
- ,Cantitate2
- ,CantFacturata
- ,PretVanzare
- ,PretVanzareRedus
- ,Tva
- ,PretAmanunt
- ,PretAmanuntRedus
- ,RetailPozIesireID
- ,TaxCode
- ,SOrderPozId
- ,ValoareRedusaFaraTva
- ,ValoareRedusaTva
- ,ValoareFaraTva
- ,ValoareTva
- ,RetetaPozId
- ,DinJob
- --,Amanunt
- )
- SELECT
- IP.IesCapId
- , IP.ParentIesPozId
- , IP.FirmaID
- , IP.DivizieId
- , IP.ProdusID
- , NULL
- , NULL
- , @CantIesire - @Stoc
- , ROUND(ISNULL((@CantIesire - @Stoc) * pr.GreutateNeta, CASE WHEN UPPER(um.Um) = 'KG' THEN @CantIesire - @Stoc END),3) AS Cantitate2
- , @CantIesire - @Stoc
- , CASE WHEN IC.DocId <> 13 THEN IP.PretVanzare END
- , CASE WHEN IC.DocId <> 13 THEN IP.PretVanzareRedus END
- , IP.Tva
- , IP.PretAmanunt
- , IP.PretAmanuntRedus
- , IP.RetailPozIesireID
- , IP.TaxCode
- , @SorderPozID
- , CASE WHEN IC.DocId <> 13 THEN ROUND((IP.ValoareRedusaFaraTva/IP.CantIesire)*( @CantIesire - @Stoc),6) END
- , CASE WHEN IC.DocId <> 13 THEN ROUND((IP.ValoareRedusaTva/IP.CantIesire)*( @CantIesire - @Stoc),6) END
- , CASE WHEN IC.DocId <> 13 THEN ROUND((IP.ValoareFaraTva/IP.CantIesire)*( @CantIesire - @Stoc),6) END
- , CASE WHEN IC.DocId <> 13 THEN ROUND((IP.ValoareTva/IP.CantIesire)*( @CantIesire - @Stoc),6) END
- , IP.RetetaPozId
- , IP.DinJob
- --, 1
- FROM inv.IesPoz IP (NOLOCK)
- inner join inv.IesCap IC (NOLOCK)
- ON IC.IesCapId = IP.IesCapId
- inner join dbo.tblproduse pr (NOLOCK)
- on pr.produsid = ip.ProdusId
- inner join dbo.tblum um (NOLOCK)
- on um.umid = pr.UmId
- WHERE IP.IesPozId = @IesPozID
- AND IP.FirmaID = @FirmaID
- AND IP.DivizieID = @DivizieID
- DECLARE @IesPOzIdInserat INT
- SET @IesPozIdInserat = SCOPE_IDENTITY()
- PRINT '@IesPozIdInserat inserat pentru spargere:' + CAST(@IesPozIdInserat AS NVARCHAR)
- INSERT INTO #TempSync
- (
- IesCapId
- , IesPozId
- , CantIesire
- , Cantitate2
- , Prelucrat
- , IntrPozOrigId
- , SerieIntrare
- , PretAmanunt
- , SOrderPozId
- , ProdusID
- , RetetaPozId
- , ParentIesPozId
- , DataIes
- , DocId
- )
- SELECT
- cap.IesCapId
- , poz.IesPozId
- , poz.CantIesire
- , poz.Cantitate2
- , 0
- , poz.IntrPozOrigId
- , poz.SerieIntrare
- , poz.PretAmanunt
- , poz.SorderPozId
- , poz.ProdusID
- , poz.RetetaPozId
- , poz.ParentIesPozId
- , cap.DataIes
- , cap.DocId
- FROM inv.IesPoz poz ( NOLOCK )
- INNER JOIN inv.Iescap cap ( NOLOCK )
- ON cap.IesCapId = poz.IesCapId
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieId
- AND poz.IntrPozId IS NULL
- --AND cap.DocId = @DocIdBon
- --AND ISNULL(cap.TipDocId,0) = @ConfigTipDocIdBonCuStoc
- --AND ISNULL(@TipDocStoc,0) = 1
- --AND cap.RetailCapIesireID IS NOT NULL
- --AND poz.RetailPozIesireID IS NOT NULL
- AND poz.IesPozId = @IesPozIdInserat
- ORDER BY cap.DataIes
- DECLARE @TempSyncIdInserat INT
- SET @TempSyncIdInserat = SCOPE_IDENTITY()
- PRINT '@TempSyncIdInserat inserat pentru spargere:' + CAST(@TempSyncIdInserat AS NVARCHAR)
- END
- --select @PretAmanuntBuffer,@PretAmanuntStoc
- IF (ROUND(ISNULL(@PretAmanuntBuffer,0),@NrZecimaleAmanunt) <> ROUND(ISNULL(@PretAmanuntStoc,0),@NrZecimaleAmanunt)
- AND ISNULL(@GenerareReev,0) = 1
- )
- BEGIN
- IF @ReevCapId IS NULL --inserare antet schimbare pret
- BEGIN
- INSERT inv.ReevCap
- (
- FirmaId
- ,DivizieId
- ,DocId
- ,TipDocId
- ,PlajaId
- ,DataReev
- ,Observatii
- ,DataCreare
- ,UserCreare
- ,UserCreareId
- ,DataValidare
- ,UserValidare
- ,UserValidareId
- )
- SELECT TOP 1
- @FirmaId
- ,@DivizieID
- ,53
- ,@TipDocId
- ,@PlajaId
- ,CAST(@DataCrt AS DATE)
- ,NULL
- ,CAST(@DataCrt AS DATE)
- ,c.UserCreare
- ,c.UserCreareId
- ,CAST(@DataCrt AS DATE)
- ,ISNULL(c.UserValidare,c.UserCreare)
- ,ISNULL(c.UserValidareId,c.UserValidareId)
- FROM inv.IesPoz p (NOLOCK)
- INNER JOIN inv.IesCap c (NOLOCK)
- ON c.IesCapId = p.IesCapId
- WHERE p.IesPozId = @IesPozId
- SET @ReevCapId = @@IDENTITY
- UPDATE inv.reevcap
- SET NumarReev = CAST(@ReevCapId as nvarchar(100))
- WHERE ReevCapId = @ReevCapId
- END
- INSERT INTO inv.ReevPoz
- (
- ReevCapId
- ,ProdusId
- ,FirmaId
- ,DivizieId
- ,GestiuneId
- ,LotIntrare
- ,DataExpirare
- ,SerieIntrare
- ,DataFabricare
- ,IntrPozId
- ,FurnizorId
- ,FurnizorOriginalId
- ,NumarIntr
- ,DataIntr
- ,DocIntrId
- ,TipDocIntrId
- ,NumarFactIntr
- ,DataFactIntr
- ,PretIntrare
- ,PretIntrareRedus
- ,PretCostNew
- ,PretCostOld
- ,PretAmanuntNew
- ,PretAmanuntOld
- ,AssetId
- ,ClientCustodieId
- ,ExplicatiiIntr1
- ,ExplicatiiIntr2
- ,PretIntrareValuta
- ,ValutaIntrareId
- ,ValutaDefaultId
- ,CantReev
- ,ContractFurnizorPozId
- ,POrderPozId
- ,ValutaCmdFurnId
- ,PretCmdFurn
- ,PretCtrFurn
- ,ValutaCtrFurnId
- ,TVA
- ,TaxCode
- ,IdExternImport
- )
- SELECT @ReevCapId
- ,p.ProdusId
- ,p.FirmaId
- ,p.DivizieId
- ,p.GestiuneId
- ,p.LotIntrare
- ,p.DataExpirare
- ,p.SerieIntrare
- ,p.DataFabricare
- ,p.IntrPozId
- ,p.FurnizorId
- ,p.FurnizorOriginalId
- ,p.NumarIntr
- ,p.DataIntr
- ,p.DocIntrId
- ,p.TipDocIntrId
- ,p.NumarFactIntr
- ,p.DataFactIntr
- ,p.PretIntrare
- ,p.PretIntrareRedus
- ,p.PretCost
- ,p.PretCost
- ,ISNULL(p.PretAmanunt,0)
- ,ISNULL(@PretAmanuntStoc,0)
- ,p.AssetId
- ,p.ClientCustodieId
- ,p.ExplicatiiIntr1
- ,p.ExplicatiiIntr2
- ,p.PretIntrareValuta
- ,p.ValutaIntrareId
- ,p.ValutaIntrareDefaultId
- ,CASE WHEN @CantIesire <= @Stoc
- THEN @CantIesire
- ELSE @Stoc
- END
- ,p.ContractFurnizorPozId
- ,p.POrderPozId
- ,p.ValutaCmdFurnId
- ,p.PretCmdFurn
- ,p.PretCtrFurn
- ,p.ValutaCtrFurnId
- ,p.Tva
- ,@TaxCodeP
- ,p.RetailPozIesireId
- FROM inv.IesPoz p (NOLOCK)
- INNER JOIN inv.IesCap c (NOLOCK)
- ON p.IesCapId = c.IesCapId
- INNER JOIN dbo.tblGestiuni g (NOLOCK)
- on p.GestiuneId=g.GestiuneId
- WHERE p.IesPozId = @IesPozId
- and ISNULL(g.Amanunt,0)=1
- --AND c.IesCapFacturaId IS NULL--fara bonurile din factura
- END
- END
- UPDATE #TempSync
- SET Prelucrat = 1
- WHERE TempSyncId = @TempSyncId
- PRINT '@TempSyncId prelucrat:' + CAST(@TempSyncId AS NVARCHAR)
- IF XACT_STATE() = 1
- COMMIT TRANSACTION
- END
- END--end while
- IF EXISTS (SELECT TOP 1 * FROM #TempSync WHERE ParentIesPozId IS NOT NULL)
- BEGIN -- propagare pret vanzare in detalii
- UPDATE poz
- SET /*poz.PretVanzare = ROUND(ROUND(CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanunt,poz.PretVanzare * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * det.ValAmanuntParinte / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END,2) / (1 + poz.Tva / 100.00), @NrZecimalePretVanzare)
- ,*/poz.PretVanzareRedus = ROUND(ROUND(CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanuntRedus,ISNULL(poz.PretVanzareRedus,poz.PretVanzare) * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * ISNULL(det.ValAmanuntRedusParinte,det.ValAmanuntParinte) / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END,2) / (1 + poz.Tva / 100.00), @NrZecimalePretVanzare)
- /*,poz.PretAmanunt = ROUND(CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanunt,poz.PretVanzare * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * det.ValAmanuntParinte / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END,2)*/
- ,poz.PretAmanuntRedus = ROUND(CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanuntRedus,ISNULL(poz.PretVanzareRedus,poz.PretVanzare) * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * ISNULL(det.ValAmanuntRedusParinte,det.ValAmanuntParinte) / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END,2)
- ,poz.ValoareRedusaFaraTva = ROUND(poz.CantIesire * CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanuntRedus,ISNULL(poz.PretVanzareRedus,poz.PretVanzare) * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * ISNULL(det.ValAmanuntRedusParinte,det.ValAmanuntParinte) / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END - ROUND(((poz.CantIesire * CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanuntRedus,ISNULL(poz.PretVanzareRedus,poz.PretVanzare) * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * ISNULL(det.ValAmanuntRedusParinte,det.ValAmanuntParinte) / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END * poz.Tva) / (100.00 + poz.Tva)), 6), 6)
- ,poz.ValoareRedusaTva = ROUND(((poz.CantIesire * CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanuntRedus,ISNULL(poz.PretVanzareRedus,poz.PretVanzare) * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + (poz.Tva / 100.00)) * ISNULL(det.ValAmanuntRedusParinte,det.ValAmanuntParinte) / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END * poz.Tva) / (100.00 + poz.Tva)), 6)
- /*,poz.ValoareFaraTva = ROUND(poz.CantIesire * CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanunt,poz.PretVanzare * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * det.ValAmanuntParinte / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END - ROUND((poz.CantIesire * CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanunt,poz.PretVanzare * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * det.ValAmanuntParinte / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END * poz.Tva) / (100.00 + poz.Tva), 6), 6)
- ,poz.ValoareTva = ROUND((poz.CantIesire * CASE WHEN pr.TipItem = 'S'
- THEN ISNULL(poz.PretAmanunt,poz.PretVanzare * (1 + poz.Tva / 100.00))
- ELSE (ISNULL(poz.PretCost,0) * (1 + poz.Tva / 100.00) * det.ValAmanuntParinte / ISNULL(NULLIF(det.ValoareCostCuTva,0),1))
- END * poz.Tva) / (100.00 + poz.Tva), 6)*/
- FROM inv.IesPoz poz
- INNER JOIN dbo.tblProduse pr (NOLOCK)
- ON pr.ProdusId = poz.ProdusId
- INNER JOIN dbo.tblTva t (NOLOCK)
- ON t.TvaId = pr.TvaId
- INNER JOIN (SELECT
- p.ParentIesPozId
- , SUM(CASE WHEN prod.TipItem = 'P' THEN p.CantIesire * ISNULL(p.PretCost,0) * (1 + p.Tva / 100.00)
- ELSE 0 END) AS ValoareCostCuTva
- , MAX(pp.CantIesire * pp.PretAmanunt) AS ValAmanuntParinte
- , MAX(pp.CantIesire * ISNULL(pp.PretAmanuntRedus,pp.PretAmanunt)) AS ValAmanuntRedusParinte
- , SUM(CASE WHEN prod.TipItem = 'S' THEN p.CantIesire * ISNULL(p.PretVanzare,0)
- ELSE 0 END) AS ValoareServicii
- , SUM(CASE WHEN prod.TipItem = 'S' THEN p.CantIesire * COALESCE(p.PretVanzareRedus,p.PretVanzare,0)
- ELSE 0 END) AS ValoareRedusaServicii
- FROM inv.IesPoz p (nolock)
- INNER JOIN inv.IesPoz (nolock) pp
- on pp.IesPozId = p.ParentIesPozId
- INNER JOIN dbo.tblProduse prod (NOLOCK)
- ON prod.ProdusId = p.ProdusId
- INNER JOIN (SELECT temp.ParentIesPozId as IesPozId
- FROM #TempSync temp
- GROUP BY temp.ParentIesPozId) temp
- ON temp.IesPozId = p.ParentIesPozId
- GROUP BY p.ParentIesPozId) det
- ON poz.ParentIesPozId = det.ParentIesPozId
- UPDATE poz
- SET poz.PretCost = ROUND(ISNULL(det.ValoareCost,0) / ISNULL(NULLIF(poz.CantIesire,0),1),@NrZecimalePretIntrare)
- FROM inv.IesPoz poz
- INNER JOIN (SELECT p.ParentIesPozId
- , SUM(CASE WHEN prod.TipItem = 'P' THEN p.CantIesire * ISNULL(p.PretCost,0) ELSE 0 END) AS ValoareCost
- FROM inv.IesPoz p (NOLOCK)
- INNER JOIN dbo.tblProduse prod (NOLOCK)
- ON prod.ProdusId = p.ProdusId
- INNER JOIN (SELECT temp.ParentIesPozId as IesPozId
- FROM #TempSync temp
- GROUP BY temp.ParentIesPozId) temp
- ON temp.IesPozId = p.ParentIesPozId
- GROUP BY p.ParentIesPozId) det
- on poz.IesPozId = det.ParentIesPozId
- END
- IF EXISTS (SELECT TOP 1 * FROM #TempSync WHERE DocId = 13)
- BEGIN
- DECLARE @CapDocIds NVARCHAR(MAX)
- , @DataDeLa DATE
- , @DataPanaLa DATE
- SELECT @CapDocIds = ISNULL(@CapDocIds + ',','') + CAST(IesCapId AS NVARCHAR(MAX))
- , @DataDeLa = MIN(DataIes)
- , @DataPanaLa = MAX(DataIes)
- FROM #TempSync
- WHERE DocId = 13
- GROUP BY IesCapId
- Update cap
- SET ValoareFaraTva = a.ValoareFaraTva
- , ValoareTva = a.ValoareTva
- , ValoareReducereFaraTva = a.ValoareReducereFaraTva
- , ValoareReducereTva = a.ValoareReducereTva
- , ValoareValuta = a.Valoarevaluta
- , ValoareValutaTva = a.ValoareValutaTva
- , ValoareValutaRedus = a.ValoareValutaredus
- , ValoareValutaTvaRedus=a.ValoareValutaTvaRedus
- , FaraTva = FaraTva --CASE WHEN @FaraTva = 1 THEN 1 ELSE 0 END
- , NrPozitii = a.NrPozitii
- , GreutateBrutaTotal = a.GreutateBrutaTotal
- , GreutateNetaTotal = a.GreutateNetaTotal
- , GreutateBrutaBax = a.GreutateBrutaBax
- , VolumBax = a.VolumBax
- FROM inv.IesCap cap
- INNER JOIN #TempSync tc
- ON tc.IescapId = cap.Iescapid
- AND tc.Docid = 13
- INNER JOIN (
- SELECT p.IesCapId
- , SUM(ROUND(ISNULL(p.ValoareFaraTva,p.CantIesire * /*p.PretVanzare*/ p.PretCost),@setare351)) as ValoareFaraTva
- , SUM(ROUND(ISNULL(p.ValoareTva,p.CantIesire * /*p.PretVanzare*/ p.PretCost * p.Tva * (1-ISNULL(p.TaxInv, 0)) / 100.00),@setare351)) as ValoareTva
- , SUM(ROUND(ISNULL(p.ValoareRedusaFaraTva,p.CantIesire * /*ISNULL(p.PretVanzareRedus,p.PretVanzare)*/ p.PretCost),2)) as ValoareReducereFaraTva
- , SUM(ROUND(ISNULL(p.ValoareRedusaTva,p.CantIesire * /*ISNULL(p.PretVanzareRedus,p.PretVanzare)*/ p.PretCost * p.Tva * (1-ISNULL(p.TaxInv,0)) / 100.00),2)) as ValoareReducereTva
- , SUM(ROUND(p.CantIesire * p.PretVanzareValuta,@setare351)) as ValoareValuta
- , SUM(ROUND(p.CantIesire * p.PretVanzareValuta * p.Tva * (1-ISNULL(p.TaxInv,0)) / 100.00,@setare351)) as ValoareValutaTva
- , SUM(ROUND(p.CantIesire * ISNULL(p.PretVanzareValutaRedus,p.PretVanzareValuta),@setare351) )as ValoareValutaRedus
- , SUM(ROUND(p.CantIesire * p.PretVanzareValutaRedus * p.Tva * (1-ISNULL(p.TaxInv,0)) / 100.00,@setare351)) as ValoareValutaTvaRedus
- , COUNT(p.IesPozId) as NrPozitii
- , SUM(p.CantIesire * p.GreutateBruta) as GreutateBrutaTotal
- , SUM(p.CantIesire * p.GreutateNeta) as GreutateNetaTotal
- , SUM(p.GreutateBrutaBax) as GreutateBrutaBax
- , SUM(p.VolumBax) as VolumBax
- FROM inv.Iespoz p (NOLOCK)
- INNER JOIN dbo.tf_IDs_from_a_string(@CapDocIds) x
- ON x.Numbers = p.IesCapId
- WHERE ISNULL(p.ParentIesPozId, 0) = 0
- AND p.IesPoz2Id IS NULL
- --AND p.IntrPozId IS NOT NULL
- GROUP BY p.IesCapId) a
- ON a.IesCapId = cap.IesCapId
- WHERE cap.FirmaId = @FirmaId
- AND cap.DivizieId = @DivizieId
- EXEC dbo.Doc2Conta
- @DocIds = '13'
- , @CapId = @CapDocIds
- , @DeLa = @DataDeLa
- , @PanaLa = @DataPanaLa
- , @SYS_USERID = 0
- , @SYS_LANGID = 'RO'
- , @SYS_UNITID = @FirmaId
- , @SYS_DIVID = @DivizieID
- , @SYS_PARTID = @SYS_PARTID
- END
- if @Debug=1 /*d*/
- BEGIN
- SELECT 'End WHILE Bonuri'
- END
- ------------------------------------------------------------------------------
- --SELECT 'Pozitii nesincronizate:'
- --SELECT *
- --FROM inv.IesPoz poz (NOLOCK)
- --JOIN inv.IesCap cap (NOLOCK)
- -- ON poz.IesCapId = cap.IesCapId
- --WHERE cap.FirmaId = @FirmaId
- -- AND cap.DivizieId = @DivizieId
- -- AND cap.DocId = @DocIdBon
- -- AND poz.IntrPozId IS NULL
- -- AND cap.CodCalc IS NOT NULL
- -- AND cap.RetailCapIesireId IS NOT NULL
- -- AND poz.RetailPozIesireId IS NOT NULL
- -- AND ISNULL(cap.Retur, 0) <> 1
- --------------------------------------------------------------------------------------------------------------
- --Legatura la stoc la pozitiile de retur (cant negativa)
- PRINT 'Bonuri retur'
- IF OBJECT_ID('tempdb..#TempSyncRetur') IS NOT NULL
- DROP TABLE #TempSyncRetur
- CREATE TABLE #TempSyncRetur
- (
- TempSyncId INT IDENTITY(1,1)
- ,IesCapId INT
- ,IesPozId INT
- ,RetailPozIesireReturId INT
- ,IesPozRefDetId INT
- ,CantRetur DECIMAL(18,5)
- ,ProdusId INT
- ,Prelucrat BIT
- ,ParentIesPozId INT
- )
- INSERT INTO #TempSyncRetur
- (
- IesCapId
- ,IesPozId
- ,RetailPozIesireReturId
- ,IesPozRefDetId
- ,CantRetur
- ,ProdusId
- ,Prelucrat
- ,ParentIesPozId
- )
- SELECT
- cap.IesCapId
- , poz.IesPozId
- , poz.RetailPozIesireReturId
- , CASE WHEN poz.RetailPozIesireReturId IS NULL THEN poz.IesPozRefId END
- , poz.CantIesire
- , poz.ProdusId
- , 0
- , poz.ParentIesPozId
- FROM inv.IesPoz poz ( NOLOCK )
- INNER JOIN inv.Iescap cap ( NOLOCK )
- ON cap.IesCapId = poz.IesCapId
- LEFT JOIN dbo.tblProduse p ( NOLOCK )
- ON poz.ProdusId = p.ProdusId
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieId
- AND cap.DataAnulare IS NULL
- --AND poz.IesPozRefId IS NULL-- nesincronizate
- AND poz.IntrPozId IS NULL
- AND ISNULL(poz.ContineDetalii,0) = 0
- AND ((cap.DocId = 13 AND cap.TipDocId = @ConfigTipDocBonConsum AND @TipDocBCStoc = 1)
- OR (cap.Docid = 21 AND cap.TipDocId = @ConfigTipDocIdBonCuStoc AND @TipDocStoc = 1))
- AND cap.RetailCapIesireID IS NOT NULL
- AND ((poz.RetailPozIesireID IS NOT NULL AND poz.RetailPozIesireReturID IS NOT NULL)
- OR poz.ParentIesPozId IS NOT NULL)
- AND cap.DocGeneratorId IS NULL
- AND cap.CapDocGeneratorId IS NULL
- AND ISNULL(cap.Retur,0) = 1
- AND ISNULL(p.TipItem,'P') <> 'S'
- --AND cap.IesCapFacturaId IS NULL--fara bonurile din factura
- --AND @Descarcare = 1
- --AND @GestiuniRetail IS NOT NULL
- ORDER BY cap.DataIes
- if @Debug=1 /*d*/
- BEGIN
- SELECT '#TempSyncRetur:'
- SELECT * FROM #TempSyncRetur
- SELECT 'Begin WHILE Bonuri retur'
- END
- WHILE EXISTS
- (
- SELECT TOP 1
- *
- FROM #TempSyncRetur
- WHERE ISNULL(Prelucrat,0) = 0
- )
- BEGIN
- SELECT @TempSyncID = NULL
- , @IesCapId = NULL
- , @IesPozId = NULL
- , @CantRetur = NULL
- , @RetailPozIesireReturID = NULL
- , @IesPozRefDetId = NULL
- , @ProdusID = NULL
- SELECT TOP 1
- @TempSyncId = TempSyncId
- , @IesCapId = IesCapId
- , @IesPozId = IesPozId
- , @CantRetur = CantRetur
- , @RetailPozIesireReturID = RetailPozIesireReturId
- , @IesPozRefDetId = IesPozRefDetId
- , @ProdusID = ProdusId
- FROM #TempSyncRetur
- WHERE ISNULL(Prelucrat,0) = 0
- PRINT '@TempSyncId:' + CAST(@TempSyncId AS NVARCHAR)
- PRINT '@IesCapId:' + CAST(@IesCapId AS NVARCHAR)
- PRINT '@IesPozId:' + CAST(@IesPozId AS NVARCHAR)
- PRINT '@CantRetur:' + CAST(@CantRetur AS NVARCHAR)
- PRINT '@RetailPozIesireReturId:' + CAST(@RetailPozIesireReturId AS NVARCHAR)
- PRINT '@ProdusID:' + CAST(@ProdusID AS NVARCHAR)
- --DECLARE @RetailCapIesireId INT
- --, @RetailPozIesireId INT --pozitia originala a bonului la care fac retur =
- --, @Identificator NVARCHAR(20)
- --SELECT @RetailCapIesireId = CapIesireId
- -- , @RetailPozIesireId = PozIesireId
- -- , @Identificator = Identificator
- --FROM Retail.BufferPozitiiBon (NOLOCK)
- --WHERE FirmaId = @FirmaId
- -- AND DivizieId = @DivizieId
- -- AND PozIesireId = @RetailPozIesireReturID
- --PRINT '@RetailCapIesireId:' + CAST(@RetailCapIesireId AS NVARCHAR(10))
- --PRINT '@RetailPozIesireId:' + CAST(@RetailPozIesireId AS NVARCHAR(10))
- --PRINT '@Identificator:' + CAST(@Identificator AS NVARCHAR(20))
- --IF (
- -- ISNULL(@RetailCapIesireId, 0) > 0
- -- AND ISNULL(@RetailPozIesireId, 0) > 0
- -- )
- -- BEGIN
- DECLARE @IesPozIdRef INT, @ContineDetalii BIT, @CantitatePF DECIMAL(22,8)
- DECLARE
- @IesCapIdREf INT
- , @CantReturRamasa DECIMAL(18,5)
- SET @IntrPozId = NULL
- SET @DataExpirare = NULL
- SET @GestiuneId = NULL
- SET @Amanunt = NULL
- SET @DataFabricare = NULL
- SET @SerieIntrare = NULL
- SET @LotIntrare = NULL
- SET @IntrPozOrigId = NULL
- SET @FurnizorID = NULL
- SET @FurnizorOriginalID = NULL
- SET @NumarIntr = NULL
- SET @DataIntr = NULL
- SET @DocIntrId = NULL
- SET @TipDocINtrID = NULL
- SET @DataScadenta = NULL
- SET @NumarFactIntr = NULL
- SET @DataFactIntr = NULL
- SET @PretIntrare = NULL
- SET @PretIntrareRedus = NULL
- SET @PretCost = NULL
- SET @GestiuneId = NULL
- SET @LotIntrare = NULL
- SET @DataExpirare = NULL
- SET @POOrderPozId = NULL
- SET @CantReturRamasa = NULL
- SET @ContineDetalii = NULL
- SET @CantitatePF = NULL
- --aleg pozitia originala din inv.IesPoz la care MAI POT FACE retur
- SELECT TOP 1
- @IesPozIdRef = p.IesPozId
- , @IesCapIDRef = c.IesCapId
- , @IntrPozId = IntrPozId
- , @IntrPozOrigId = IntrPozOrigId
- , @DataExpirare = DataExpirare
- , @GestiuneId = GestiuneId
- , @DataFabricare = DataFabricare
- , @SerieIntrare = SerieIntrare
- , @LotIntrare = LotIntrare
- , @FurnizorID = FurnizorID
- , @FurnizorOriginalID = FurnizorOriginalID
- , @NumarIntr = NumarIntr
- , @DataIntr = DataIntr
- , @DocIntrId = DocIntrId
- , @TipDocINtrID = TipDocINtrID
- , @DataScadenta = DataScadenta
- , @NumarFactIntr = NumarFactIntr
- , @DataFactIntr = DataFactIntr
- , @PretIntrare = PretIntrare
- , @PretIntrareRedus = PretIntrareRedus
- , @PretCost = PretCost
- , @GestiuneId = GestiuneId
- , @Amanunt = ISNULL(Amanunt,0)
- , @CantReturRamasa = p.CantIesire - ISNULL(p.CantRetur,0)
- , @ContineDetalii = p.ContineDetalii
- , @CantitatePF = p.CantIesire
- FROM inv.IesPoz p ( NOLOCK )
- INNER JOIN inv.IesCap c ( NOLOCK )
- ON c.IesCapId = p.IesCapId
- WHERE c.FirmaID = @FirmaID
- AND c.DivizieID = @DivizieId
- AND c.DataAnulare IS NULL
- AND ISNULL(c.Retur,0) = 0
- --AND c.RetailCapIesireId = @RetailCapIesireId
- --AND c.CodCalc = @Identificator
- AND (p.RetailPozIesireId = @RetailPozIesireReturId OR IesPozId = @IesPozRefDetId)
- AND p.ProdusId = @ProdusID
- AND (p.IntrPozId IS NOT NULL OR p.ContineDetalii = 1) --sincronizat cu stocul sau contine detalii
- AND c.DocId IN (13,21)
- AND p.CantIesire - ISNULL(p.CantRetur,0) > 0
- --AND c.IesCapFacturaId IS NULL--fara bonurile din factura
- AND c.DocGeneratorId IS NULL
- AND c.CapDocGeneratorId IS NULL
- ORDER BY p.IesPozId DESC
- PRINT '@IntrPozId:' + CAST(@IntrPozId AS NVARCHAR)
- PRINT '@IesPozIdRef:' + CAST(@IesPozIdRef AS NVARCHAR)
- PRINT '@IesCapIDRef:' + CAST(@IesCapIDRef AS NVARCHAR)
- DECLARE @CantReturDeFacut DECIMAL(18,5) = 0
- SET @CantReturDeFacut = CASE WHEN ISNULL(( -1 ) * @CantRetur,0) > ISNULL(@CantReturRamasa,0)
- THEN ISNULL(@CantReturRamasa,0)
- ELSE ISNULL(( -1 ) * @CantRetur,0)
- END
- -- eroare daca nu am unicitate pe stoc
- IF ( ( SELECT
- COUNT(IntrPozId)
- FROM
- inv.Stoc (NOLOCK)
- WHERE
- IntrPozId = @IntrPozId
- AND ISNULL(DataExpirare,'') = ISNULL(@DataExpirare,'') -- ISNULL
- AND ISNULL(GestiuneId,0) = ISNULL(@GestiuneId,0)
- AND ISNULL(DataFabricare,'') = ISNULL(@DataFabricare,'')
- AND ISNULL(SerieIntrare,'') = ISNULL(@SerieIntrare,'')
- AND ISNULL(LotIntrare,'') = ISNULL(@LotIntrare,'')
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieID
- ) > 1
- )
- BEGIN
- RAISERROR ('Nu exista unicitate pe inv.Stoc!', 16, 1)
- RETURN -1
- END
- IF ( ISNULL(@CantReturDeFacut,0) > 0 )
- BEGIN
- BEGIN TRAN
- IF @ContineDetalii = 1
- BEGIN
- INSERT inv.IesPoz
- (
- ParentIesPozId
- , IesCapId
- , IesPozRefId
- , FirmaId
- , DivizieId
- , ProdusId
- , CantIesire
- , PretVanzare
- , PretVanzareRedus
- , Tva
- , PretAmanunt
- , PretAmanuntRedus
- , CantFacturata
- , IntrPozId
- , FurnizorID
- , FurnizorOriginalID
- , NumarIntr
- , DataIntr
- , DocIntrId
- , TipDocINtrID
- , NumarFactIntr
- , DataFactIntr
- , PretIntrare
- , PretIntrareRedus
- , PretCost
- , GestiuneId
- , Amanunt
- , LotIntrare
- , DataExpirare
- , DataFabricare
- , SerieIntrare
- , IntrPozOrigId
- , POrderPozId
- , ValoareRedusaFaraTva
- , ValoareRedusaTva
- , ValoareFaraTva
- , ValoareTva
- )
- SELECT
- @IesPozId
- , @IesCapId
- , IesPozId
- , FirmaId
- , DivizieId
- , ProdusId
- , CASE WHEN @CantReturDeFacut = @CantitatePF THEN -CantIesire ELSE ROUND(-@CantReturDeFacut * CantIesire / @CantitatePF,@setare623) END
- , PretVanzare
- , PretVanzareRedus
- , Tva
- , PretAmanunt
- , PretAmanuntRedus
- , CASE WHEN @CantReturDeFacut = @CantitatePF THEN -CantIesire ELSE ROUND(-@CantReturDeFacut * CantIesire / @CantitatePF,@setare623) END
- , IntrPozId
- , FurnizorID
- , FurnizorOriginalID
- , NumarIntr
- , DataIntr
- , DocIntrId
- , TipDocINtrID
- , NumarFactIntr
- , DataFactIntr
- , PretIntrare
- , PretIntrareRedus
- , PretCost
- , GestiuneId
- , Amanunt
- , LotIntrare
- , DataExpirare
- , DataFabricare
- , SerieIntrare
- , IntrPozOrigId
- , POrderPozId
- , CASE WHEN @CantReturDeFacut = @CantitatePF THEN -ValoareRedusaFaraTva ELSE ROUND(ROUND(-@CantReturDeFacut * CantIesire / @CantitatePF,@setare623) * PretVanzareRedus,2) END
- , CASE WHEN @CantReturDeFacut = @CantitatePF THEN -ValoareRedusaTva ELSE ROUND(ROUND(-@CantReturDeFacut * CantIesire / @CantitatePF,@setare623) * PretVanzareRedus * Tva/100.00,2) END
- , CASE WHEN @CantReturDeFacut = @CantitatePF THEN -ValoareFaraTva ELSE ROUND(ROUND(-@CantReturDeFacut * CantIesire / @CantitatePF,@setare623) * PretVanzare,@setare351) END
- , CASE WHEN @CantReturDeFacut = @CantitatePF THEN -ValoareTva ELSE ROUND(ROUND(-@CantReturDeFacut * CantIesire / @CantitatePF,@setare623) * PretVanzare * Tva/100.00,@setare351) END
- FROM inv.IesPoz (NOLOCK)
- WHERE ParentIesPozId = @IesPozIdRef
- UPDATE inv.IesPoz
- SET ContineDetalii = 1
- WHERE IesPozId = @IesPozId
- UPDATE inv.IesPoz
- SET CantRetur = ISNULL(CantRetur,0) + ISNULL(@CantReturDeFacut,0)
- WHERE IesPozId = @IesPozIdRef
- INSERT INTO #TempSyncRetur
- (
- IesCapId
- ,IesPozId
- ,IesPozRefDetId
- ,CantRetur
- ,ProdusId
- ,Prelucrat
- ,ParentIesPozId
- )
- SELECT
- IesCapId
- , IesPozId
- , IesPozRefId
- , CantRetur
- , ProdusId
- , 0
- , ParentIesPozId
- FROM inv.IesPoz
- WHERE ParentIesPozId = @IesPozIdRef
- END
- ELSE
- BEGIN
- -- daca am pe stoc "linia" din care s-a scazut bonul original, ii fac update; altfel , fac insert in stoc
- IF EXISTS
- ( SELECT TOP 1
- IntrPozId
- FROM inv.Stoc (NOLOCK)
- WHERE IntrPozId = @IntrPozId
- AND ISNULL(DataExpirare,'') = ISNULL(@DataExpirare,'') -- ISNULL
- AND ISNULL(GestiuneId,0) = ISNULL(@GestiuneId,0)
- AND ISNULL(DataFabricare,'') = ISNULL(@DataFabricare,'')
- AND ISNULL(SerieIntrare,'') = ISNULL(@SerieIntrare,'')
- AND ISNULL(LotIntrare,'') = ISNULL(@LotIntrare,'')
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieID
- )
- BEGIN
- PRINT '@Update stoc:'
- UPDATE inv.Stoc
- SET Stoc = Stoc + @CantReturDeFacut
- WHERE IntrPozId = @IntrPozId
- AND ISNULL(DataExpirare,'') = ISNULL(@DataExpirare,'') -- ISNULL
- AND ISNULL(GestiuneId,0) = ISNULL(@GestiuneId,0)
- AND ISNULL(DataFabricare,'') = ISNULL(@DataFabricare,'')
- AND ISNULL(SerieIntrare,'') = ISNULL(@SerieIntrare,'')
- AND ISNULL(LotIntrare,'') = ISNULL(@LotIntrare,'')
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieID
- AND ClientCustodieId IS NULL
- END
- ELSE -- nu am in stoc pozitia la care am facut retur
- BEGIN
- INSERT INTO inv.Stoc
- (
- IntrPozId
- ,FurnizorId
- ,FurnizorOriginalId
- ,NumarIntr
- ,DataIntr
- ,DocIntrId
- ,TipDocIntrId
- ,DataScadenta
- ,NumarFactIntr
- ,DataFactIntr
- ,FirmaId
- ,DivizieId
- ,IntrPozOrigId
- ,IntrPozRefId
- ,ProdusId
- ,Stoc
- ,PretIntrare
- ,PretIntrareRedus
- ,PretCost
- ,Tva
- ,PretAmanunt
- ,PretVanzare
- ,GestiuneId
- ,LotIntrare
- ,DataExpirare
- ,datafabricare
- ,SerieIntrare
- ,AssetId
- ,ContractFurnizorPozId
- ,POrderPozId
- ,ValutaCmdFurnId
- ,PretCmdFurn
- ,PretCtrFurn
- ,ValutaCtrFurnId
- )
- SELECT
- p.IntrPozId
- , p.FurnizorId
- , p.FurnizorOriginalId
- , p.NumarIntr
- , p.DataIntr
- , p.DocIntrId
- , p.TipDocIntrId
- , p.DataScadentaIntr
- , p.NumarFactIntr
- , p.DataFactIntr
- , p.FirmaId
- , p.DivizieId
- , p.IntrPozOrigId
- , p.IntrPozId AS IntrPozRefId
- , p.ProdusId
- , ISNULL(@CantReturDeFacut,0)
- , p.PretIntrare
- , p.PretIntrareRedus
- , p.PretCost
- , p.Tva
- , p.PretAmanunt
- , p.PretVanzare
- , p.GestiuneId
- , p.LotIntrare
- , p.DataExpirare
- , p.dataFabricare
- , p.SerieIntrare
- , p.AssetId
- , p.ContractFurnizorPozId
- , p.POrderPozId
- , p.ValutaCmdFurnId
- , p.PretCmdFurn
- , p.PretCtrFurn
- , p.ValutaCtrFurnId
- FROM inv.IesPoz p ( NOLOCK )
- WHERE p.iesPozId = @IesPozIdRef
- --p.IntrPozId = @IntrPozId
- -- AND ISNULL(p.DataExpirare, '') = ISNULL(@DataExpirare, '') -- ISNULL
- -- AND ISNULL(p.GestiuneId, 0) = ISNULL(@GestiuneId, 0)
- -- AND ISNULL(p.DataFabricare, '') = ISNULL(@DataFabricare, '')
- -- AND ISNULL(p.SerieIntrare, '') = ISNULL(@SerieIntrare, '')
- -- AND ISNULL(p.LotIntrare, '') = ISNULL(@LotIntrare, '')
- -- AND p.FirmaID = @FirmaID
- -- AND p.DivizieID = @DivizieID
- END --de la ELSE
- UPDATE inv.IesPoz
- SET CantRetur = ISNULL(CantRetur,0) + ISNULL(@CantReturDeFacut,0)
- WHERE IesPozId = @IesPozIdRef
- UPDATE inv.IesPoz
- SET
- IesPozRefId = @IesPozIdRef
- , IntrPozOrigId = @IntrPozOrigId
- , IntrPozId = @IntrPozId
- , DataExpirare = @DataExpirare
- , GestiuneId = @GestiuneId
- , Amanunt = @Amanunt
- , DataFabricare = @DataFabricare
- , SerieIntrare = @SerieIntrare
- , LotIntrare = @LotIntrare
- , FurnizorID = @FurnizorID
- , FurnizorOriginalID = @FurnizorOriginalID
- , NumarIntr = @NumarIntr
- , DataIntr = @DataIntr
- , DocIntrId = @DocIntrId
- , TipDocINtrID = @TipDocINtrID
- , NumarFactIntr = @NumarFactIntr
- , DataFactIntr = @DataFactIntr
- , PretIntrare = @PretIntrare
- , PretIntrareRedus = @PretIntrareRedus
- , PretCost = @PretCost
- , CantIesire = ( -1 ) * @CantReturDeFacut
- , ValoareRedusaFaraTva=ROUND((-1) * @CantReturDeFacut * isnull(PretAmanuntRedus,PretAmanunt) - ROUND((((-1) * @CantReturDeFacut * isnull(PretAmanuntRedus,PretAmanunt)) * Tva / (100.00 + Tva)), 6), 6)
- --round(( -1 ) * @CantReturDeFacut*isnull(PretVanzareRedus,PretVanzare),6)
- , ValoareRedusaTva=ROUND((((-1)* @CantReturDeFacut * isnull(PretAmanuntRedus,PretAmanunt) * Tva) / (100.00 + Tva)), 6)
- --round(( -1 ) * @CantReturDeFacut*isnull(PretVanzareRedus,PretVanzare)*tva/100.00,6)
- , ValoareFaraTva=ROUND((-1) * @CantReturDeFacut * PretAmanunt - ROUND(((-1) * @CantReturDeFacut * PretAmanunt * Tva) / (100.00 + Tva), 6), 6)
- --round(( -1 ) * @CantReturDeFacut*PretVanzare,6)
- , ValoareTva= ROUND(((-1) * @CantReturDeFacut * PretAmanunt * Tva) / (100.00 + Tva), 6)
- --round(( -1 ) * @CantReturDeFacut*PretVanzare*tva/100.00,6)
- WHERE IesPozId = @IesPozId
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieId
- AND IesCapId = @IesCapId
- IF ( ISNULL(( -1 ) * @CantRetur,0) <> @CantReturDeFacut )
- BEGIN
- INSERT INTO inv.IesPoz
- (
- IesCapId
- ,FirmaID
- ,DivizieId
- ,ProdusID
- ,CantIesire
- ,CantFacturata
- ,PretVanzare
- ,PretVanzareRedus
- ,Tva
- ,PretAmanunt
- ,PretAmanuntRedus
- ,RetailPozIesireID
- ,RetailPozIesireReturId
- ,TaxCode
- ,ValoareRedusaFaraTva
- ,ValoareRedusaTva
- ,ValoareFaraTva
- ,ValoareTva
- --,Amanunt
- )
- SELECT
- IesCapId
- , FirmaID
- , DivizieId
- , ProdusID
- , @CantRetur + @CantReturDeFacut
- , @CantRetur + @CantReturDeFacut
- , PretVanzare
- , PretVanzareRedus
- , Tva
- , PretAmanunt
- , PretAmanuntRedus
- , RetailPozIesireID
- , RetailPozIesireReturId
- , TaxCode
- , ROUND((@CantRetur + @CantReturDeFacut) * isnull(PretAmanuntRedus,PretAmanunt) - ROUND((((@CantRetur + @CantReturDeFacut) * isnull(PretAmanuntRedus, PretAmanunt) * Tva) / (100.00 + Tva)), 6), 6)
- --round(( @CantRetur + @CantReturDeFacut)*isnull(PretVanzareRedus,PretVanzare),6)
- , ROUND((((@CantRetur + @CantReturDeFacut) * isnull(PretAmanuntRedus,PretAmanunt) * Tva) / (100.00 + Tva)), 6)
- --round(( @CantRetur + @CantReturDeFacut)*isnull(PretVanzareRedus,PretVanzare)*tva/100.00,6)
- , ROUND((@CantRetur + @CantReturDeFacut) * PretAmanunt - ROUND(((@CantRetur + @CantReturDeFacut) * PretAmanunt * Tva) / (100.00 + Tva), 6), 6)
- --round(( @CantRetur + @CantReturDeFacut)*PretVanzare,6)
- , ROUND(((@CantRetur + @CantReturDeFacut) * PretAmanunt * Tva) / (100.00 + Tva), 6)
- --round(( @CantRetur + @CantReturDeFacut)*PretVanzare*tva/100.00,6)
- --, 1
- FROM inv.IesPoz (NOLOCK)
- WHERE IesPozId = @IesPozID
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieID
- DECLARE @IesPozIdReturInserat INT
- SET @IesPozIdReturInserat = SCOPE_IDENTITY()
- PRINT '@IesPozIdInserat inserat pentru spargere:' + CAST(@IesPozIdReturInserat AS NVARCHAR)
- INSERT INTO #TempSyncRetur
- (
- IesCapId
- ,IesPozId
- ,CantRetur
- ,RetailPozIesireReturId
- ,Prelucrat
- )
- SELECT
- cap.IesCapId
- , poz.IesPozId
- , poz.CantIesire
- , RetailPozIesireReturId
- , 0
- FROM inv.IesPoz poz ( NOLOCK )
- INNER JOIN inv.Iescap cap ( NOLOCK )
- ON cap.IesCapId = poz.IesCapId
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieId
- AND poz.IntrPozId IS NULL
- AND ((cap.DocId = 13 AND cap.TipDocId = @ConfigTipDocBonConsum AND @TipDocBCStoc = 1)
- OR (cap.Docid = 21 AND cap.TipDocId = @ConfigTipDocIdBonCuStoc AND @TipDocStoc = 1))
- AND cap.RetailCapIesireID IS NOT NULL
- AND poz.RetailPozIesireID IS NOT NULL
- AND poz.IesPozId = @IesPozIdReturInserat
- ORDER BY cap.DataIes
- --DECLARE @TempSyncIdInserat INT
- --SET @TempSyncIdInserat = SCOPE_IDENTITY()
- --PRINT '@TempSyncIdInserat inserat pentru spargere:' + CAST(@TempSyncIdInserat AS NVARCHAR(20))
- END
- END
- IF XACT_STATE() = 1
- COMMIT TRANSACTION
- END
- UPDATE #TempSyncRetur
- SET Prelucrat = 1
- WHERE TempSyncId = @TempSyncId
- PRINT '@TempSyncId prelucrat:' + CAST(@TempSyncId AS NVARCHAR)
- END--while
- IF EXISTS (SELECT TOP 1 * FROM #TempSyncRetur WHERE ParentIesPozId IS NOT NULL)
- BEGIN
- UPDATE poz
- SET poz.PretCost = ROUND(ISNULL(det.ValoareCost,0) / ISNULL(NULLIF(poz.CantIesire,0),1),@NrZecimalePretIntrare)
- FROM inv.IesPoz poz
- INNER JOIN (SELECT p.ParentIesPozId
- , SUM(CASE WHEN prod.TipItem = 'P' THEN p.CantIesire * ISNULL(p.PretCost,0) ELSE 0 END) AS ValoareCost
- FROM inv.IesPoz p (NOLOCK)
- INNER JOIN dbo.tblProduse prod (NOLOCK)
- ON prod.ProdusId = p.ProdusId
- INNER JOIN (SELECT temp.ParentIesPozId as IesPozId
- FROM #TempSyncRetur temp
- GROUP BY temp.ParentIesPozId) temp
- ON temp.IesPozId = p.ParentIesPozId
- GROUP BY p.ParentIesPozId) det
- on poz.IesPozId = det.ParentIesPozId
- END
- if @Debug=1 /*d*/
- BEGIN
- SELECT 'End WHILE Bonuri retur'
- END
- --SELECT 'Pozitii retur nesincronizate:'
- --SELECT *
- --FROM inv.IesPoz poz (NOLOCK)
- --JOIN inv.IesCap cap (NOLOCK)
- -- ON poz.IesCapId = cap.IesCapId
- --WHERE cap.FirmaId = @FirmaId
- -- AND cap.DivizieId = @DivizieId
- -- AND cap.DocId = @DocIdBon
- -- AND poz.IesPozRefId IS NULL
- -- AND cap.CodCalc IS NOT NULL
- -- AND cap.Retur = 1
- -- AND cap.RetailCapIesireId IS NOT NULL
- -- AND poz.RetailPozIesireId IS NOT NULL
- --SELECT 'Pozitii sincronizate:'
- --SELECT *
- --FROM inv.IesPoz poz (NOLOCK)
- --JOIN inv.IesCap cap (NOLOCK)
- -- ON poz.IesCapId = cap.IesCapId
- --JOIN inv.Stoc
- -- ON stoc.IntrPozId = poz.IntrPozId
- -- AND ISNULL(Stoc.DataExpirare, '') = ISNULL(poz.DataExpirare, '') -- ISNULL
- -- AND ISNULL(Stoc.GestiuneId, 0) = ISNULL(poz.GestiuneId, 0)
- -- AND ISNULL(Stoc.DataFabricare, '') = ISNULL(poz.DataFabricare, '')
- -- AND ISNULL(Stoc.SerieIntrare, '') = ISNULL(poz.SerieIntrare, '')
- -- AND ISNULL(Stoc.LotIntrare, '') = ISNULL(poz.LotIntrare, '')
- --WHERE cap.FirmaId = @FirmaId
- -- AND cap.DivizieId = @DivizieId
- -- AND cap.DocId = @DocIdBon
- -- AND poz.IntrPozId IS NOT NULL
- -- AND cap.CodCalc IS NOT NULL
- -- AND cap.RetailCapIesireId IS NOT NULL
- -- AND poz.RetailPozIesireId IS NOT NULL
- -- AND ISNULL(cap.Retur, 0) <> 1
- --ORDER BY cap.IesCapID
- -- , poz.IesPozId
- --SELECT 'Pozitii retur sincronizate:'
- --SELECT *
- --FROM inv.IesPoz poz (NOLOCK)
- --JOIN inv.IesCap cap (NOLOCK)
- -- ON poz.IesCapId = cap.IesCapId
- --LEFT JOIN inv.Stoc
- -- ON stoc.IntrPozId = poz.IntrPozId
- -- AND ISNULL(Stoc.DataExpirare, '') = ISNULL(poz.DataExpirare, '') -- ISNULL
- -- AND ISNULL(Stoc.GestiuneId, 0) = ISNULL(poz.GestiuneId, 0)
- -- AND ISNULL(Stoc.DataFabricare, '') = ISNULL(poz.DataFabricare, '')
- -- AND ISNULL(Stoc.SerieIntrare, '') = ISNULL(poz.SerieIntrare, '')
- -- AND ISNULL(Stoc.LotIntrare, '') = ISNULL(poz.LotIntrare, '')
- --WHERE cap.FirmaId = @FirmaId
- -- AND cap.DivizieId = @DivizieId
- -- AND cap.DocId = @DocIdBon
- -- AND poz.IesPozRefId IS NOT NULL
- -- AND cap.CodCalc IS NOT NULL
- -- AND cap.Retur = 1
- -- AND cap.RetailCapIesireId IS NOT NULL
- -- AND poz.RetailPozIesireId IS NOT NULL
- PRINT 'Bonuri retur special'
- --bonuri de retur fara bifa @retur si referinta la iesire
- IF OBJECT_ID('tempdb..#TempSyncReturSpecial') IS NOT NULL
- DROP TABLE #TempSyncReturSpecial
- CREATE TABLE #TempSyncReturSpecial
- (
- TempSyncId INT IDENTITY(1,1)
- ,IesCapId INT
- ,IesPozId INT
- ,CantRetur DECIMAL(18,5)
- ,Prelucrat BIT
- ,ProdusId INT
- )
- INSERT INTO #TempSyncReturSpecial
- (
- IesCapId
- ,IesPozId
- ,CantRetur
- ,Prelucrat
- ,ProdusId
- )
- SELECT
- cap.IesCapId
- , poz.IesPozId
- , poz.CantIesire
- , 0
- , poz.ProdusId
- FROM inv.IesPoz poz ( NOLOCK )
- INNER JOIN inv.Iescap cap ( NOLOCK )
- ON cap.IesCapId = poz.IesCapId
- LEFT JOIN dbo.tblProduse p ( NOLOCK )
- ON p.ProdusId = poz.ProdusId
- WHERE cap.FirmaId = @FirmaID
- AND cap.DivizieId = @DivizieId
- AND cap.DataAnulare IS NULL
- AND poz.IntrPozId IS NULL
- AND ((cap.DocId = 13 AND cap.TipDocId = @ConfigTipDocBonConsum AND @TipDocBCStoc = 1)
- OR (cap.Docid = 21 AND cap.TipDocId = @ConfigTipDocIdBonCuStoc AND @TipDocStoc = 1))
- AND cap.RetailCapIesireID IS NOT NULL
- AND poz.RetailPozIesireID IS NOT NULL
- AND poz.RetailPozIesireReturID IS NULL --nu am legatura cu pozitia de iesire
- AND poz.CantIesire < 0
- AND ISNULL(p.TipItem,'P') <> 'S'
- --AND cap.IesCapFacturaId IS NULL--fara bonurile din factura
- AND cap.DocGeneratorId IS NULL
- AND cap.CapDocGeneratorId IS NULL
- --AND @Descarcare = 1
- --AND @GestiuniRetail IS NOT NULL
- ORDER BY cap.DataIes
- if @Debug=1 /*d*/
- BEGIN
- SELECT '#TempSyncReturSpecial:'
- SELECT * FROM #TempSyncReturSpecial
- SELECT 'Begin WHILE Bonuri retur special'
- END
- WHILE EXISTS
- ( SELECT TOP 1
- *
- FROM #TempSyncReturSpecial
- WHERE ISNULL(Prelucrat,0) = 0
- )
- BEGIN
- SELECT TOP 1
- @TempSyncId = TempSyncId
- , @IesCapId = IesCapId
- , @IesPozId = IesPozId
- , @CantRetur = CantRetur
- , @ProdusID = ProdusId
- FROM #TempSyncReturSpecial
- WHERE ISNULL(Prelucrat,0) = 0
- PRINT '@TempSyncIdSpecial:' + CAST(@TempSyncId AS NVARCHAR)
- PRINT '@IesCapIdSpecial:' + CAST(@IesCapId AS NVARCHAR)
- PRINT '@IesPozIdSpecial:' + CAST(@IesPozId AS NVARCHAR)
- PRINT '@CantReturSpecial:' + CAST(@CantRetur AS NVARCHAR)
- SET @FurnizorID = NULL
- SET @FurnizorOriginalID = NULL
- SET @NumarIntr = NULL
- SET @DataIntr = NULL
- SET @DocIntrId = NULL
- SET @TipDocINtrID = NULL
- SET @DataScadenta = NULL
- SET @NumarFactIntr = NULL
- SET @DataFactIntr = NULL
- SET @PretIntrare = NULL
- SET @PretIntrareRedus = NULL
- SET @PretCost = NULL
- SET @GestiuneId = NULL
- SET @Amanunt = NULL
- SET @LotIntrare = NULL
- SET @DataExpirare = NULL
- SET @DataFabricare = NULL
- SET @SerieIntrare = NULL
- SET @IntrPozOrigId = NULL
- SET @POOrderPozId = NULL
- SET @Stoc = NULL
- SET @IntrPozId = NULL
- BEGIN TRAN
- --iau prima pozitie din stoc din gestiunile de retail cu @produsid
- SELECT TOP 1
- @FurnizorID = stoc.FurnizorID
- , @FurnizorOriginalID = stoc.FurnizorOriginalID
- , @NumarIntr = stoc.NumarIntr
- , @DataIntr = stoc.DataIntr
- , @DocIntrId = stoc.DocIntrId
- , @TipDocINtrID = stoc.TipDocINtrID
- , @DataScadenta = stoc.DataScadenta
- , @NumarFactIntr = stoc.NumarFactIntr
- , @DataFactIntr = stoc.DataFactIntr
- , @PretIntrare = stoc.PretIntrare
- , @PretIntrareRedus = stoc.PretIntrareRedus
- , @PretCost = stoc.PretCost
- , @GestiuneId = stoc.GestiuneId
- , @Amanunt = ISNULL(g.Amanunt,0)
- , @LotIntrare = stoc.LotIntrare
- , @DataExpirare = stoc.DataExpirare
- , @DataFabricare = stoc.DataFabricare
- , @SerieIntrare = stoc.SerieIntrare
- , @IntrPozOrigId = stoc.IntrPozOrigId
- , @POOrderPozId = stoc.POrderPozId
- , @Stoc = stoc.Stoc
- , @IntrPozId = stoc.IntrPozId
- , @ProdusID = stoc.ProdusId
- FROM inv.Stoc stoc WITH ( ROWLOCK,UPDLOCK )
- INNER JOIN dbo.tblGestiuni G WITH ( NOLOCK )
- ON G.GestiuneId = stoc.GestiuneID
- --AND G.FirmaID = @FirmaID
- --AND G.DivizieId = @DivizieID
- INNER JOIN
- (
- SELECT
- val
- FROM dbo.SplitString(@ConfigGestiuni,',')
- WHERE LTRIM(RTRIM(ISNULL(val,''))) <> ''
- ) CodGestSetare1
- ON G.CodGestiune = CodGestSetare1.val
- INNER JOIN inv.IesPoz poz ( NOLOCK )
- ON poz.ProdusId = stoc.ProdusId
- WHERE stoc.FirmaId = @FirmaId
- AND stoc.DivizieId = @DivizieId
- AND poz.IesPozId = @IesPozId
- AND stoc.ProdusId = @ProdusID
- ORDER BY stoc.DataIntr
- --ORDER BY DataExpirare
- IF ( @IntrPozId IS NULL )
- BEGIN
- --nu am inregistrare in stoc, caut ultima intrare pe firma,divizie a produsului
- SELECT TOP 1 @IntrPozId = IntrPozId
- FROM inv.IntrPoz poz ( NOLOCK )
- INNER JOIN dbo.tblGestiuni G ( NOLOCK )
- ON G.GestiuneId = poz.GestiuneID
- INNER JOIN inv.IntrCap cap ( NOLOCK )
- ON cap.IntrCapId = poz.IntrCapId
- AND cap.DataAnulare IS NULL
- AND Cap.DataValidare IS NOT NULL
- INNER JOIN
- (
- SELECT
- val
- FROM dbo.SplitString(@ConfigGestiuni,',')
- WHERE LTRIM(RTRIM(ISNULL(val,''))) <> ''
- ) CodGestSetare1
- ON G.CodGestiune = CodGestSetare1.val
- WHERE ProdusId = @ProdusID
- AND poz.FirmaID = @FirmaID
- AND poz.DivizieId = @DivizieID
- AND poz.IntrPozAvizId IS NULL
- AND poz.IntrPozRefId IS NULL
- ORDER BY ISNULL(poz.DataIntr,cap.DataIntr) DESC
- IF ( @IntrPozId IS NOT NULL )
- BEGIN
- -- am intrare pt produs
- -- insert in stoc
- SELECT TOP 1
- @FurnizorOriginalID = intr.FurnizorOriginalID
- , @FurnizorID = ISNULL(intr.FurnizorPozId,cap.FurnizorId)
- , @NumarIntr = ISNULL(intr.NumarIntr,cap.NumarIntr)
- , @DataIntr = ISNULL(intr.DataIntr,cap.DataIntr)
- , @NumarFactIntr = ISNULL(intr.NumarFactIntr,cap.NumarFactIntr)
- , @DataFactIntr = ISNULL(intr.DataFactIntr,cap.DataFactIntr)
- , @PretIntrare = intr.PretIntrare
- , @PretIntrareRedus = intr.PretIntrareRedus
- , @PretCost = intr.PretCost
- , @GestiuneId = intr.GestiuneId
- , @LotIntrare = intr.LotIntrare
- , @DataExpirare = intr.DataExpirare
- , @DataFabricare = intr.DataFabricare
- , @SerieIntrare = intr.SerieIntrare
- , @IntrPozOrigId = intr.IntrPozOrigId
- , @POOrderPozId = intr.POrderPozId
- , @DocIntrId = cap.DocId
- FROM inv.IntrPoz intr ( NOLOCK )
- INNER JOIN inv.IntrCap cap ( NOLOCK )
- ON intr.IntrCapId = cap.IntrCapId
- WHERE IntrPozId = @IntrPozId
- INSERT INTO inv.Stoc
- (
- FurnizorId
- ,FurnizorOriginalID
- ,NumarIntr
- ,DataIntr
- ,NumarFactIntr
- ,DataFactIntr
- ,PretIntrare
- ,PretIntrareRedus
- ,PretCost
- ,GestiuneId
- ,LotIntrare
- ,DataExpirare
- ,SerieIntrare
- ,IntrPozOrigId
- ,POrderPozId
- ,DocIntrId
- ,Stoc
- ,ProdusId
- ,IntrPozId
- ,FirmaId
- ,DivizieId
- )
- VALUES
- (
- @FurnizorId
- ,@FurnizorOriginalID
- ,@NumarIntr
- ,@DataIntr
- ,@NumarFactIntr
- ,@DataFactIntr
- ,@PretIntrare
- ,@PretIntrareRedus
- ,@PretCost
- ,@GestiuneId
- ,@LotIntrare
- ,@DataExpirare
- ,@SerieIntrare
- ,@IntrPozOrigId
- ,@POOrderPozId
- ,@DocIntrId
- ,( -1 ) * @CantRetur
- ,@ProdusID
- ,@IntrPozId
- ,@FirmaId
- ,@DivizieID
- )
- --update pe inv.IesPoz
- UPDATE inv.IesPoz
- SET
- IesPozRefId = @IesPozIdRef
- , IntrPozOrigId = @IntrPozOrigId
- , IntrPozId = @IntrPozId
- , DataExpirare = @DataExpirare
- , GestiuneId = @GestiuneId
- , Amanunt = @Amanunt
- , DataFabricare = @DataFabricare
- , SerieIntrare = @SerieIntrare
- , LotIntrare = @LotIntrare
- , FurnizorID = @FurnizorID
- , FurnizorOriginalID = @FurnizorOriginalID
- , NumarIntr = @NumarIntr
- , DataIntr = @DataIntr
- , DocIntrId = @DocIntrId
- , TipDocINtrID = @TipDocINtrID
- , NumarFactIntr = @NumarFactIntr
- , DataFactIntr = @DataFactIntr
- , PretIntrare = @PretIntrare
- , PretIntrareRedus = @PretIntrareRedus
- , PretCost = @PretCost
- WHERE IesPozId = @IesPozId
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieId
- AND IesCapId = @IesCapId
- END
- ELSE
- BEGIN
- PRINT 'Nu exista inregistrari in stoc sau intrari pentru produsul cu ID:' + CAST(@ProdusID AS VARCHAR)
- END
- END
- ELSE
- BEGIN
- --am inregistrare in stoc
- PRINT '@Stoc:' + CAST(@Stoc AS NVARCHAR) + '- @CantitateReturSpecial:' + CAST(@CantRetur AS NVARCHAR)
- UPDATE inv.IesPoz
- SET
- IntrPozId = @IntrPozId
- , FurnizorID = @FurnizorID
- , FurnizorOriginalID = @FurnizorOriginalID
- , NumarIntr = @NumarIntr
- , DataIntr = @DataIntr
- , DocIntrId = @DocIntrId
- , TipDocINtrID = @TipDocINtrID
- , NumarFactIntr = @NumarFactIntr
- , DataFactIntr = @DataFactIntr
- , PretIntrare = @PretIntrare
- , PretIntrareRedus = @PretIntrareRedus
- , PretCost = @PretCost
- , GestiuneId = @GestiuneId
- , Amanunt = @Amanunt
- , LotIntrare = @LotIntrare
- , DataExpirare = @DataExpirare
- , DataFabricare = @DataFabricare
- , SerieIntrare = @SerieIntrare
- , IntrPozOrigId = @IntrPozOrigId
- , POrderPozId = @POOrderPozId
- , ValoareRedusaFaraTva=ROUND(cantiesire*isnull(PretAmanuntRedus,PretAmanunt) - ROUND(((CantIesire*isnull(PretAmanuntRedus,PretAmanunt) * Tva) / (100.00 + Tva)), 6), 6)
- --round(cantiesire*isnull(PretVanzareRedus,PretVanzare),6)
- , ValoareRedusaTva=ROUND(((CantIesire*isnull(PretAmanuntRedus,PretAmanunt) * Tva) / (100.00 + Tva)), 6)
- --round(cantiesire*isnull(PretVanzareRedus,PretVanzare)*tva/100.00,6)
- , ValoareFaraTva=ROUND(CantIesire*PretAmanunt - ROUND((Cantiesire*PretAmanunt * Tva) / (100.00 + Tva), 6), 6)
- --round(cantiesire*PretVanzare,6)
- , ValoareTva=ROUND((Cantiesire*PretAmanunt * Tva) / (100.00 + Tva), 6)
- --round(cantiesire*PretVanzare*tva/100.00,6)
- WHERE IesPozId = @IesPozId
- AND FirmaID = @FirmaID
- AND DivizieId = @DivizieID
- UPDATE inv.Stoc
- SET Stoc = Stoc - @CantRetur-- ( cantitate negativa)
- WHERE IntrPozId = @IntrPozId
- AND ISNULL(DataExpirare,'') = ISNULL(@DataExpirare,'')
- AND ISNULL(GestiuneId,0) = ISNULL(@GestiuneId,0)
- AND ISNULL(DataFabricare,'') = ISNULL(@DataFabricare,'')
- AND ISNULL(SerieIntrare,'') = ISNULL(@SerieIntrare,'')
- AND ISNULL(LotIntrare,'') = ISNULL(@LotIntrare,'')
- AND FirmaID = @FirmaID
- AND DivizieID = @DivizieID
- AND ClientCustodieId IS NULL
- END
- UPDATE #TempSyncReturSpecial
- SET Prelucrat = 1
- WHERE TempSyncId = @TempSyncId
- PRINT '@TempSyncIdSpecial prelucrat:' + CAST(@TempSyncId AS NVARCHAR)
- IF XACT_STATE() = 1
- COMMIT TRANSACTION
- END --end While
- if @Debug=1 /*d*/
- BEGIN
- SELECT 'End WHILE Bonuri retur special'
- PRINT 'Medici/Pacienti'
- END
- --=================================================== SFARSIT SINCRONIZARE CU STOC ==================================================================================
- /*
- DECLARE
- @MIdentificator VARCHAR(100)
- , @MCapIesireId INT
- , @MBufferPozitieBonID INT
- , @MClientDenumire VARCHAR(4000)
- , @MClientTip INT
- , @MClientAttrFiscal VARCHAR(100)
- , @MClientCNPCUI VARCHAR(100)
- , @MClientNrRegCom VARCHAR(100)
- , @MClientAdresa VARCHAR(4000)
- , @MClientID INT
- , @MClientCont VARCHAR(100)
- , @MClientBanca VARCHAR(4000)
- , @MValoarePlataUlterioara DECIMAL(18,2)
- , @MDiscountSuplimentar DECIMAL(18,2)
- , @MMotivDiscount VARCHAR(4000)
- , @MPacient VARCHAR(4000)
- , @MCodMedic VARCHAR(4000)
- , @MDenMedic VARCHAR(4000)
- , @MDataNastere DATETIME
- DECLARE CursorBonuriSpeciale CURSOR FOR
- SELECT
- Identificator
- , CapIesireId
- , BufferPozitieBonID
- , ClientDenumire
- , CASE WHEN ClientTip = 1 THEN 4
- ELSE 1
- END AS ClientTip
- , ClientAttrFiscal
- , ClientCNPCUI
- , ClientNrRegCom
- , ClientAdresa
- , ClientID
- , ClientCont
- , ClientBanca
- , ValoarePlataUlterioara
- , DiscountSuplimentar
- , MotivDiscount
- , Pacient
- , CodMedic
- , DenMedic
- , b.DataNastere
- FROM Retail.BufferPozitiiBon b ( NOLOCK )
- WHERE FirmaId = @FirmaId
- AND DivizieId = @DivizieId
- AND ISNULL(DocId,@DocIdBon) IN (13,21)
- AND ISNULL(Prelucrat2,0) = 0
- AND (
- CodMedic IS NOT NULL
- AND (
- ClientId IS NOT NULL
- OR ClientDenumire IS NOT NULL
- )
- )
- AND b.IdIesPoz IS NULL--fara bonurile din factura
- GROUP BY Identificator
- , CapIesireId
- , BufferPozitieBonID
- , ClientDenumire
- , ClientTip
- , ClientAttrFiscal
- , ClientCNPCUI
- , ClientNrRegCom
- , ClientAdresa
- , ClientID
- , ClientCont
- , ClientBanca
- , ValoarePlataUlterioara
- , DiscountSuplimentar
- , MotivDiscount
- , Pacient
- , CodMedic
- , DenMedic
- , b.DataNastere
- OPEN CursorBonuriSpeciale
- FETCH NEXT FROM CursorBonuriSpeciale INTO @MIdentificator,@MCapIesireId,@MBufferPozitieBonID,@MClientDenumire,
- @MClientTip,@MClientAttrFiscal,@MClientCNPCUI,@MClientNrRegCom,@MClientAdresa,@MClientID,@MClientCont,
- @MClientBanca,@MValoarePlataUlterioara,@MDiscountSuplimentar,@MMotivDiscount,@MPacient,@MCodMedic,@MDenMedic,
- @MDataNastere
- WHILE @@FETCH_STATUS = 0
- BEGIN
- BEGIN TRY
- BEGIN TRAN
- DECLARE @TempIesCapId INT
- SELECT @TempIesCapId = IesCapId
- FROM inv.IesCap c ( NOLOCK )
- WHERE RetailCapIesireId = @MCapIesireId
- AND c.CodCalc = @MIdentificator
- AND FirmaId = @FirmaId
- AND DivizieId = @DivizieID
- AND DocId IN (13,21)
- IF ( @TempIesCapId IS NOT NULL )
- BEGIN
- IF ( ISNULL(@MClientId,0) = 0 )
- BEGIN
- PRINT 'CUI: ' + @MClientCNPCUI
- DECLARE
- @ClCUI VARCHAR(50) = [dbo].[ExtractInteger](@MClientCNPCUI)
- , @PartId INT = 0
- , @UnitId INT = 0
- --daca nu am cui, caut client dupa denumire
- IF ( LTRIM(RTRIM(ISNULL(@ClCUI,''))) = '' )
- BEGIN
- --caut client dupa denumire
- SELECT TOP 1 @MClientId = C.ClientId
- FROM dbo.tblClienti C
- INNER JOIN dbo.vwUnitati U
- ON C.ClientId = U.UnitateId
- WHERE C.FirmaId = @FirmaId
- AND C.DivizieId = @DivizieId
- AND U.DenumireUnitate = @MClientDenumire
- END
- ELSE
- BEGIN--am cui si caut client dupa cui
- SELECT TOP 1 @MClientId = C.ClientId
- FROM dbo.tblClienti C
- INNER JOIN dbo.tblUnitate U
- ON C.ClientId = U.UnitateID
- INNER JOIN dbo.tblPartener P
- ON U.PartenerID = P.PartenerID
- WHERE C.FirmaId = @FirmaId
- AND C.DivizieId = @DivizieId
- AND P.CodFiscal = @ClCUI
- END
- --nu am gasit client dupa cui sau dupa nume, caut partener
- IF ( ISNULL(@MClientId,0) = 0 )
- BEGIN
- --nu am cui, caut partener dupa denumire
- IF ( LTRIM(RTRIM(ISNULL(@ClCUI,''))) = '' )
- BEGIN
- SELECT TOP 1 @PartId = P.PartenerID
- FROM dbo.tblPartener P
- WHERE P.DenumirePartener = @MClientDenumire
- END
- ELSE
- BEGIN
- --caut partener dupa cui
- SELECT TOP 1 @PartId = P.PartenerID
- FROM dbo.tblPartener P
- WHERE P.CodFiscal = @ClCUI
- END
- --nu am partener, il inserez
- IF ( ISNULL(@PartId,0) = 0 )
- BEGIN
- INSERT dbo.tblPartener
- (
- DenumirePartener
- ,TipFirmaId
- ,DataIntroducere
- ,CodFiscal
- ,NrRegComertului
- ,AtributFiscal
- ,ContFurn
- ,BancaFurn
- ,Strada
- )
- VALUES
- (
- @MClientDenumire
- ,@MClientTip
- ,GETDATE()
- ,@ClCUI
- ,@MClientNrRegCom
- ,LTRIM(RTRIM(REPLACE(@MClientCNPCUI,@ClCUI,'')))
- ,@MClientCont
- ,@MClientBanca
- ,@MClientAdresa
- )
- SELECT @PartId = @@IDENTITY
- END
- --inserez unitatea
- INSERT dbo.tblUnitate
- (
- PartenerId
- ,UnitateDefault
- ,DataIntroducere
- )
- VALUES
- (
- @PartId
- ,0
- ,GETDATE()
- )
- SELECT @UnitId = @@IDENTITY
- --inserez in client
- INSERT INTO dbo.tblClienti
- (
- ClientId
- ,DivizieId
- ,FirmaId
- ,Inactiv
- ,DataModificare
- ,DataIntroducere
- )
- VALUES
- (
- @UnitId
- ,@DivizieId
- ,@FirmaId
- ,0
- ,GETDATE()
- ,GETDATE()
- )
- SELECT @MClientId = @UnitId
- END
- END
- DECLARE @MedicId INT
- SELECT TOP 1 @MedicId = MedicId
- FROM tblMedici m ( NOLOCK )
- WHERE DivizieId = @DivizieID
- AND (
- (
- LTRIM(RTRIM(ISNULL(@MCodMedic,''))) <> ''
- AND m.ParafaMedic = @MCodMedic
- )
- OR ( LTRIM(RTRIM(m.DenumireMedic)) = LTRIM(RTRIM(@MDenMedic)) )
- )
- IF ( ISNULL(@MedicId,0) = 0 )
- BEGIN
- INSERT INTO tblMedici
- (
- ParafaMedic
- ,DenumireMedic
- ,DataModificare
- ,DivizieId
- )
- VALUES
- (
- @MCodMedic
- ,@MDenMedic
- ,GETDATE()
- ,@DivizieID
- )
- END
- IF (
- @MClientID IS NOT NULL
- OR @MedicId IS NOT NULL
- )
- BEGIN
- UPDATE inv.IesCap
- SET ClientId = @MClientID
- , MedicId = @MedicId
- --, AdresaClient = @MClientAdresa
- , ClientAttrFiscal = @MClientAttrFiscal
- , ClientBanca = @MClientBanca
- , ClientCNPCUI = @MClientCNPCUI
- , ClientCont = @MClientCont
- , ClientDenumire = @MClientDenumire
- , ClientTip = @MClientTip
- , ClientNrRegCom = @MClientNrRegCom
- , ClientAdresa = @MClientAdresa
- , Pacient = @MPacient
- , ValoarePlataUlterioara = @MValoarePlataUlterioara
- , MotivDiscount = @MMotivDiscount
- , DataNastere = @MDataNastere
- WHERE IesCapId = @TempIesCapId
- AND RetailCapIesireId = @MCapIesireID
- AND CodCalc = @MIdentificator
- AND FirmaId = @FirmaId
- AND DivizieId = @DivizieID
- UPDATE Retail.BufferPozitiiBon
- SET Prelucrat2 = 1
- WHERE BufferPozitieBonID = @MBufferPozitieBonId
- AND CapIesireID = @MCapIesireID
- AND Identificator = @MIdentificator
- AND FirmaId = @FirmaId
- AND DivizieID = @DivizieID
- END
- END
- COMMIT TRAN
- END TRY
- BEGIN CATCH
- IF ( XACT_STATE() <> 0 )
- ROLLBACK TRANSACTION
- END CATCH
- FETCH NEXT FROM CursorBonuriSpeciale INTO @MIdentificator,@MCapIesireId,@MBufferPozitieBonID,
- @MClientDenumire,@MClientTip,@MClientAttrFiscal,@MClientCNPCUI,@MClientNrRegCom,@MClientAdresa,
- @MClientID,@MClientCont,@MClientBanca,@MValoarePlataUlterioara,@MDiscountSuplimentar,@MMotivDiscount,
- @MPacient,@MCodMedic,@MDenMedic,@MDataNastere
- END--cursor
- CLOSE CursorBonuriSpeciale
- DEALLOCATE CursorBonuriSpeciale
- PRINT 'END Medici/Pacienti'
- */
- WHILE (EXISTS(SELECT TOP 1 SOrderCapId FROM @CmdFin))
- BEGIN
- DECLARE @SorderCapComId INT,
- @SYS_UNITID INT,
- @SYS_DIVID INT,
- @SYS_USERID INT
- SELECT TOP 1
- @SorderCapComId = SOrderCapId ,
- @SYS_UNITID = FirmaId,
- @SYS_DIVID = DivizieId,
- @SYS_USERID = UserId
- FROM @CmdFin
- EXEC dbo.ComandaClient_Finalizare
- @SorderCapID = @SorderCapComId,
- @SYS_UNITID = @SYS_UNITID,
- @SYS_DIVID = @SYS_DIVID,
- @SYS_USERID = @SYS_USERID,
- @SYS_LANGID = 'RO'
- DELETE FROM @CmdFin WHERE SOrderCapId = @SorderCapComId
- END
- ------------------------------------------------------------------------------
- --Verificare existenta pozitii schimbare pret pentru validare doc sau stergere
- IF @ReevCapId IS NOT NULL
- BEGIN
- IF NOT EXISTS
- (
- SELECT TOP 1 ReevPozId
- FROM inv.ReevPoz (NOLOCK)
- WHERE ReevCapId = @ReevCapId
- )
- BEGIN
- DELETE FROM inv.ReevCap
- WHERE ReevCapId = @ReevCapId
- END
- ELSE
- BEGIN
- DECLARE @NrCifre int ,
- @Prefix nvarchar(50),
- @Curent nvarchar(20),
- @m nvarchar(100),
- @Setare247 int
- SELECT @Setare247=dbo.Valoaresetare(247,@FirmaId,@DivizieID)
- SELECT @NrCifre =isnull(NrCifre,0)
- FROM dbo.PlajaDoc (NOLOCK)
- WHERE PlajaId=@PlajaId
- and FirmaId=@FirmaId
- and DivizieId=@DivizieID
- and DocId=53
- SELECT @Prefix=p.Prefix,
- @Curent= CAST(p.Curent as nvarchar(20))
- FROM dbo.Plaja p (NOLOCK)
- WHERE PlajaId=@PlajaId
- WHILE (@NrCifre>0 and LEN(@Curent)<@NrCifre)
- BEGIN
- SET @Curent='0'+@Curent
- END
- SELECT @m=@Prefix+@Curent
- UPDATE cap
- SET cap.NrPozitii = poz.NrPoz
- , NumarReev = ISNULL(@m,CAST(cap.ReevCapId AS NVARCHAR(100)))
- FROM inv.ReevCap cap (NOLOCK)
- INNER JOIN
- (
- SELECT ReevCapId
- ,COUNT(*) as NrPoz
- FROM inv.ReevPoz (NOLOCK)
- WHERE ReevCapId = @ReevCapId
- GROUP BY ReevCapId
- ) poz
- ON cap.ReevCapId = poz.ReevCapId
- UPDATE dbo.Plaja
- SET Curent = Curent + 1
- WHERE PlajaId = @PlajaId
- IF EXISTS
- (
- SELECT TOP 1 cap.ReevCapId
- FROM dbo.ctbDoc cd ( NOLOCK )
- INNER JOIN inv.ReevCap cap ( NOLOCK )
- ON cap.ReevCapId = @ReevCapId
- AND cap.DocId = cd.DocId
- AND cap.FirmaId = cd.FirmaId
- AND cap.DivizieId = cd.DivizieId
- AND cd.Import = 1
- )
- BEGIN
- SELECT @UserId = ISNULL(UserValidareId,UserCreareId)
- FROM inv.ReevCap
- WHERE ReevCapId = @ReevCapId
- EXEC dbo.Doc2Conta_SchimbariPret
- @DocId = 53,
- @CapId = @ReevCapId,
- @DeLa = @DataCrt,
- @PanaLa = @DataCrt,
- @overwrite = 0,
- @sys_userId = @UserId,
- @sys_langID = 'RO',
- @sys_divId = @DivizieID,
- @sys_unitId = @FirmaId,
- @sys_partId = @sys_partId
- --EXEC dbo.Doc2Conta
- -- @DocIds = '53',
- -- @CapId = @ReevCapId,
- -- @DeLa = @DataCrt,
- -- @PanaLa = @DataCrt,
- -- @overwrite = 0,
- -- @sys_userId = @UserId,
- -- @sys_langId = 'RO',
- -- @sys_unitId = @FirmaId,
- -- @sys_divId = @DivizieID,
- -- @sys_partID = @sys_partId
- END
- END
- END
- END
- EXEC dbo.StopSemafor
- 'POS_BONURI'
- , @FirmaId
- , @DivizieID
- IF OBJECT_ID('tempdb..#TempSync') IS NOT NULL
- DROP TABLE #TempSync
- IF OBJECT_ID('tempdb..#TempSyncRetur') IS NOT NULL
- DROP TABLE #TempSyncRetur
- IF OBJECT_ID('tempdb..#TempSyncReturSpecial') IS NOT NULL
- DROP TABLE #TempSyncReturSpecial
- IF OBJECT_ID('tempdb..#PozitiiBuffer') IS NOT NULL
- DROP TABLE #PozitiiBuffer
- IF OBJECT_ID('tempdb..#IesCap') IS NOT NULL
- DROP TABLE #IesCap
- END TRY
- BEGIN CATCH
- -- 0 : no trans, -1: uncomittable, 1: active and valid
- -- PRINT XACT_STATE()
- -- IF (XACT_STATE() <> 0)
- -- ROLLBACK TRANSACTION T
- IF ( XACT_STATE() <> 0 )
- ROLLBACK TRANSACTION
- IF OBJECT_ID('tempdb..#TempSync') IS NOT NULL
- DROP TABLE #TempSync
- IF OBJECT_ID('tempdb..#TempSyncRetur') IS NOT NULL
- DROP TABLE #TempSyncRetur
- IF OBJECT_ID('tempdb..#TempSyncReturSpecial') IS NOT NULL
- DROP TABLE #TempSyncReturSpecial
- IF OBJECT_ID('tempdb..#PozitiiBuffer') IS NOT NULL
- DROP TABLE #PozitiiBuffer
- IF OBJECT_ID('tempdb..#IesCap') IS NOT NULL
- DROP TABLE #IesCap
- EXEC dbo.StopSemafor
- 'POS_BONURI'
- , @FirmaId
- , @DivizieID
- SELECT
- @ErrorMessage = ERROR_MESSAGE()
- , @ErrorSeverity = ERROR_SEVERITY()
- , @ErrorState = ERROR_STATE();
- RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)
- END CATCH
- END
- ELSE
- BEGIN
- RAISERROR(N'JOB-ul este deja in rulare!', 16, 1)
- END
- END
- ;
- ;
- ;
- ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement