UPDATE NFE SET STATUS_ENVIO_NFE = 4
FROM NFE N
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = N.COD_MOVIMENTO
WHERE M.COD_TDF = 34 AND N.STATUS_ENVIO_NFE IN(1,0)
GO
UPDATE MOVIMENTO_ITEM SET
CST_ICMS = PSC.CST_ICMS,
CST_COFINS = PSC.CST_COFINS,
CST_PIS = PSC.CST_PIS,
CST_IPI = PSC.CST_IPI
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
INNER JOIN PRODUTO_SERVICO_CONFIG PSC ON PSC.COD_PRODUTO_SERVICO = I.COD_PRODUTO_SERVICO AND PSC.COD_EMPRESA = M.COD_EMPRESA
WHERE M.COD_TDF IN(34,30) AND N.STATUS_ENVIO_NFE = 4
GO
UPDATE MOVIMENTO_ITEM SET
PER_ICMS = AE.PER_ALIQUOTA
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
INNER JOIN PRODUTO_SERVICO_CONFIG PSC ON PSC.COD_PRODUTO_SERVICO = I.COD_PRODUTO_SERVICO AND PSC.COD_EMPRESA = M.COD_EMPRESA
INNER JOIN ALIQUOTA_ECF AE ON AE.COD_ALIQUOTA_ECF = PSC.COD_ALIQUOTA_ECF
WHERE M.COD_TDF IN(34,30) AND N.STATUS_ENVIO_NFE = 4 AND (LEN(I.CST_ICMS) = 2)
GO
UPDATE MOVIMENTO_ITEM SET VAL_DESCONTO_REAL = I.VAL_DESCONTO + (M.VAL_DESC_SUB_TOTAL / M.VAL_PRODUTOS) * (I.QUANTIDADE * I.VAL_UNITARIO)
FROM MOVIMENTO_ITEM I
INNER JOIN VENDA V ON V.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
WHERE COD_TDF = 34 AND M.STATUS NOT IN(3,5) AND M.VAL_PRODUTOS > 0 AND I.STATUS = 0
GO
UPDATE MOVIMENTO_ITEM SET
VAL_DESCONTO_REAL = VAL_DESCONTO_REAL + (ISNULL((SELECT SUM(X.VAL_DESCONTO_REAL) FROM MOVIMENTO_ITEM X WHERE X.COD_MOVIMENTO = I.COD_MOVIMENTO AND X.STATUS = 0),0)
- (SELECT Y.VAL_DESCONTO FROM MOVIMENTO Y WHERE Y.COD_MOVIMENTO = I.COD_MOVIMENTO)
)
FROM MOVIMENTO_ITEM I
INNER JOIN VENDA V ON V.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
WHERE COD_TDF = 34 AND M.STATUS NOT IN(3,5) AND (I.SEQUENCIA = 1) AND M.VAL_PRODUTOS > 0 AND I.STATUS = 0
GO
UPDATE MOVIMENTO_ITEM SET
VL_BC_PIS = 0,
VL_BC_COFINS = 0,
VL_PIS = 0,
VL_COFINS = 0,
ALIQ_PIS_PERC = 0,
ALIQ_COFINS_PERC = 0
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
WHERE I.CST_PIS IN('07','08') AND M.COD_TDF IN(34,30) AND N.STATUS_ENVIO_NFE = 4
GO
UPDATE MOVIMENTO_ITEM SET VL_BC_ICMS = ((I.QUANTIDADE * I.VAL_UNITARIO) - I.VAL_DESCONTO + I.VAL_ACRESCIMO) - (I.VAL_TOTAL * (M.VAL_DESCONTO / ISNULL(NULLIF(M.VAL_PRODUTOS,0),1)))
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
WHERE M.COD_TDF IN(34,30) AND (N.STATUS_ENVIO_NFE = 4) AND (I.CST_ICMS IN('00','10','20','70','90'))
GO
UPDATE MOVIMENTO_ITEM SET VL_BC_ICMS = I.VL_BC_ICMS - (I.VL_BC_ICMS * (I.PER_REDUCAO / 100))
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
WHERE M.COD_TDF IN(34,30) AND (N.STATUS_ENVIO_NFE = 4) AND (I.CST_ICMS IN('00','10','20','70','90'))
GO
UPDATE MOVIMENTO_ITEM SET VL_ICMS = I.VL_BC_ICMS * (I.PER_ICMS / 100)
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
WHERE M.COD_TDF IN(34,30) AND (N.STATUS_ENVIO_NFE = 4) AND (I.CST_ICMS IN('00','10','20','70','90'))
GO
UPDATE MOVIMENTO_ITEM SET
ALIQ_PIS_PERC = (SELECT PER_PIS FROM EMPRESA_CONFIGURACAO WHERE COD_EMPRESA = M.COD_EMPRESA),
ALIQ_COFINS_PERC = (SELECT PER_COFINS FROM EMPRESA_CONFIGURACAO WHERE COD_EMPRESA = M.COD_EMPRESA),
VL_BC_PIS = VAL_TOTAL_LIQ,
VL_BC_COFINS = VAL_TOTAL_LIQ
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
WHERE I.CST_PIS IN('01') AND M.COD_TDF IN(34,30) AND (N.STATUS_ENVIO_NFE = 4)
GO
UPDATE MOVIMENTO_ITEM SET
VL_PIS = CONVERT(NUMERIC(15,2),VAL_TOTAL_LIQ * (ALIQ_PIS_PERC / 100)),
VL_COFINS = CONVERT(NUMERIC(15,2),VAL_TOTAL_LIQ * (ALIQ_COFINS_PERC / 100))
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
INNER JOIN NFE N ON N.COD_MOVIMENTO = M.COD_MOVIMENTO
WHERE I.CST_PIS IN('01') AND M.COD_TDF IN(34,30) AND (N.STATUS_ENVIO_NFE = 4)
GO
UPDATE MOVIMENTO SET
VAL_BC_ICMS = ISNULL((SELECT SUM(I.VL_BC_ICMS) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0),
VAL_BC_ICMS_ST = ISNULL((SELECT SUM(I.VL_BC_ICMS_ST) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0),
VAL_ICMS = ISNULL((SELECT SUM(I.VL_ICMS) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0),
VAL_ICMS_ST = ISNULL((SELECT SUM(I.VL_ICMS_ST) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0),
VAL_BC_PIS = ISNULL((SELECT SUM(I.VL_BC_PIS) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0),
VAL_BC_COFINS = ISNULL((SELECT SUM(I.VL_BC_COFINS) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0),
VAL_PIS = ISNULL((SELECT SUM(I.VL_PIS) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0),
VAL_COFINS = ISNULL((SELECT SUM(I.VL_COFINS) FROM MOVIMENTO_ITEM I WHERE I.COD_MOVIMENTO = MOVIMENTO.COD_MOVIMENTO AND I.STATUS = 0),0)
WHERE COD_TDF IN(30,34) AND STATUS NOT IN(3,5)
GO
UPDATE MOVIMENTO_ITEM SET COD_CFOP = 319
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
WHERE M.STATUS NOT IN(3,5) AND (M.COD_TDF = 34) AND I.COD_CFOP = 259 AND I.CST_ICMS = '60' AND I.STATUS = 0
GO
UPDATE MOVIMENTO_ITEM SET COD_CFOP = 319
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
WHERE I.CST_ICMS IN('60','201','500','10') AND M.STATUS != 3 AND M.COD_TDF = 34 AND (I.COD_CFOP <> 319)
GO
UPDATE MOVIMENTO_ITEM SET COD_CFOP = 259
FROM MOVIMENTO_ITEM I
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = I.COD_MOVIMENTO
WHERE I.CST_ICMS IN('00','20') AND M.STATUS != 3 AND M.COD_TDF = 34 AND (I.COD_CFOP <> 259)
GO
UPDATE NFE SET STATUS_ENVIO_NFE = 3
FROM NFE N
INNER JOIN MOVIMENTO M ON M.COD_MOVIMENTO = N.COD_MOVIMENTO
WHERE M.COD_TDF = 34 AND N.STATUS_ENVIO_NFE <> 3 AND M.STATUS = 3
GO
UPDATE MOVIMENTO_ITEM SET VAL_DESCONTO_REAL = VAL_DESCONTO_REAL * -1 WHERE VAL_DESCONTO_REAL < 0
GO