0
Good afternoon, I’m doing routine to close the inventory both in SPED and Sintegra, but is giving difference in the sum of the two. I’m using date as reference 31/12/2018. I’m using the same query but in different ways, in which the correct value would be sintegra, and sped is giving the most, where am I missing? Follows my codes:
CODE OF SINTEGRA:
procedure TFSintegraTela.PopulaCDSEstoqueRegistro74(pDataFim: TDate);
var
SQL, DataEstoque : String;
begin
CDSEstoque.Filtered := False;
CDSEstoque.Filter := '';
DataEstoque := FormatDateTime('yyyy-mm-dd',pDataFim);
SQL := 'SELECT M.ID_PRODUTO,A.NOME_PRODUTO, A.NCM, SUM(M.QUANTIDADE) AS QTDADE, SUM(M.VALOR_TOTAL) AS CUSTO_TOTAL, '+
'(SUM(M.VALOR_TOTAL) / SUM(M.QUANTIDADE)) AS CUSTO_UNI, B.SIGLA AS UND '+
'FROM movimento_produto M '+
'INNER JOIN produto A ON (A.ID = M.ID_PRODUTO) '+
'INNER JOIN unidade_produto B ON (B.ID = A.ID_UNIDADE) '+
'WHERE (M.DATA_MOVIMENTO <= '+QuotedStr(DataEstoque)+') '+
'GROUP BY M.ID_PRODUTO ORDER BY A.NOME_PRODUTO;' ;
QueryEstoque.Close;
QueryEstoque.SQLConnection := TDBExpress.getConexao;
QueryEstoque.SQL.Text := SQL;
QueryEstoque.Open;
CDSEstoque.Active :=True;
CDSEstoque.First;
if RadioEstoques.ItemIndex = 0 then
begin
CDSEstoque.Filtered := False;
CDSEstoque.Filter := 'QTDADE > 0';
CDSEstoque.Filtered := True;
end
else
CDSEstoque.Filtered := False;
end;
end;
At the end he returns to me: Rows: 5; 396 Total value of the inventory: 623,837.97
SPED CODE:
procedure PopulaCDSBlocoH(pDataFim: TDate);
var
SQL, DataEstoque: String;
cdsTemp: TClientDataSet;
begin
CDSEstoque := TSQLQuery.Create(nil);
DataEstoque := FormatDateTime('yyyy-mm-dd', pDataFim);
SQL := 'SELECT M.ID_PRODUTO, A.NOME_PRODUTO, A.NCM, SUM(M.QUANTIDADE) AS QTDADE, ' +
'SUM(M.VALOR_TOTAL) AS CUSTO_TOTAL, '+
'(SUM(M.VALOR_TOTAL) / SUM(M.QUANTIDADE)) AS CUSTO_UNI, B.SIGLA AS UND '+
'FROM movimento_produto M '+
'INNER JOIN produto A ON (A.ID = M.ID_PRODUTO) '+
'INNER JOIN unidade_produto B ON (B.ID = A.ID_UNIDADE) '+
'WHERE (M.DATA_MOVIMENTO <= '+QuotedStr(DataEstoque)+') '+
'AND M.QUANTIDADE > 0 GROUP BY M.ID_PRODUTO ORDER BY A.NOME_PRODUTO';
CDSEstoque.SQLConnection := TDBExpress.getConexao;
CDSEstoque.SQL.Text := SQL;
CDSEstoque.Open;
CDSEstoque.First;
end;
At the end he returns to me: Rows: 6.996 Total inventory value: 1,449,628.17