public SumárioTotalAcerto(AcertoConsignado acerto) { this.acerto = acerto; }
public static List<SumárioTotalAcertoItem> Obter(AcertoConsignado entidade) { StringBuilder cmd = new StringBuilder(); double cotação = entidade.Cotação.HasValue ? entidade.Cotação.Value : 0; ulong códigoAcerto = entidade.Código; /* set @acerto := 18762; set @cotacao := (select cotacao from acertoconsignado where codigo = @acerto); select 'Saida' as tipo, m.depeso, round(sum(indice*quantidade),2) as indice, round(sum(i.peso*quantidade),2) as peso, round(sum(indice*quantidade*@cotacao),2) as preco, sum(quantidade) as qtd from saida s join saidaitem i on s.codigo=i.saida join mercadoria m on i.referencia=m.referencia where acerto=@acerto group by m.depeso UNION select 'Retorno' as tipo, m.depeso, round(sum(indice*quantidade),2) as indice, round(sum(i.peso*quantidade),2) as peso, round(sum(indice*quantidade*@cotacao),2) as preco, sum(quantidade) as qtd from retorno r join retornoitem i on r.codigo=i.retorno join mercadoria m on i.referencia=m.referencia where acerto=@acerto group by m.depeso UNION select 'Venda' as tipo, depeso, round(sum(indice),2) as indice, round(sum(peso),2) as peso, round(sum(preco),2) as preco, sum(qtd) as qtd from (select m.referencia, m.depeso as depeso, round(sum(indice*quantidade),2) as indice, round(sum(i.peso*quantidade),2) as peso, round(sum(indice*quantidade*@cotacao),2) as preco, sum(quantidade) as qtd from venda v join vendaitem i on v.codigo=i.venda join mercadoria m on i.referencia=m.referencia where acerto=@acerto group by m.referencia UNION select m.referencia, m.depeso as depeso, round(sum(-1*indice*quantidade),2) as indice, round(sum(-1*i.peso*quantidade),2) as peso, round(sum(-1*indice*quantidade*@cotacao),2) as preco, round(sum(-1*quantidade),2) as qtd from venda v join vendadevolucao i on v.codigo=i.venda join mercadoria m on i.referencia=m.referencia where acerto=@acerto group by m.referencia) cc group by depeso */ cmd.Append(" select 'Saida' as tipo, m.depeso, round(sum(indice*quantidade),2) as indice, "); cmd.Append(" round(sum(i.peso*quantidade),2) as peso, "); cmd.Append(" round(sum(indice*quantidade* "); cmd.Append(DbTransformar(cotação)); cmd.Append(" ),2) as preco, "); cmd.Append(" sum(quantidade) as qtd from saida s "); cmd.Append(" join saidaitem i on s.codigo=i.saida "); cmd.Append(" join mercadoria m on i.referencia=m.referencia "); cmd.Append(" where acerto= "); cmd.Append(DbTransformar(códigoAcerto)); cmd.Append(" group by m.depeso UNION select 'Retorno' as tipo, m.depeso, round(sum(indice*quantidade),2) as indice, "); cmd.Append(" round(sum(i.peso*quantidade),2) as peso, "); cmd.Append(" round(sum(indice*quantidade* "); cmd.Append(DbTransformar(cotação)); cmd.Append(" ),2) as preco, "); cmd.Append(" sum(quantidade) as qtd "); cmd.Append(" from retorno r "); cmd.Append(" join retornoitem i on r.codigo=i.retorno "); cmd.Append(" join mercadoria m on i.referencia=m.referencia "); cmd.Append(" where acerto= "); cmd.Append(DbTransformar(códigoAcerto)); cmd.Append(" group by m.depeso UNION select 'Venda' as tipo, depeso, round(sum(indice),2) as indice, round(sum(peso),2) as peso, round(sum(preco),2) as preco, sum(qtd) as qtd from "); cmd.Append(" (select m.referencia, m.depeso as depeso, round(sum(indice*quantidade),2) as indice, round(sum(i.peso*quantidade),2) as peso, round(sum(indice*quantidade* "); cmd.Append(DbTransformar(cotação)); cmd.Append(" ),2) as preco, sum(quantidade) as qtd "); cmd.Append(" from venda v "); cmd.Append(" join vendaitem i on v.codigo=i.venda "); cmd.Append(" join mercadoria m on i.referencia=m.referencia "); cmd.Append(" where acerto= "); cmd.Append(DbTransformar(códigoAcerto)); cmd.Append(" group by m.referencia "); cmd.Append(" UNION "); cmd.Append(" select m.referencia, m.depeso as depeso, round(sum(-1*indice*quantidade),2) as indice, round(sum(-1*i.peso*quantidade),2) as peso, round(sum(-1*indice*quantidade* "); cmd.Append(DbTransformar(cotação)); cmd.Append(" ),2) as preco, round(sum(-1*quantidade),2) as qtd "); cmd.Append(" from venda v "); cmd.Append(" join vendadevolucao i on v.codigo=i.venda "); cmd.Append(" join mercadoria m on i.referencia=m.referencia "); cmd.Append(" where acerto= "); cmd.Append(DbTransformar(códigoAcerto)); cmd.Append(" group by m.referencia) cc "); cmd.Append(" group by depeso "); return Mapear<SumárioTotalAcertoItem>(cmd.ToString()); }