public static List<ImpressãoRegraPessoa> Obter(Comissão c, Filtro filtro) { StringBuilder str = new StringBuilder(); //select regra, nomecomissaopara, sum(valorv) as valorv, sum(valorc) as valorc, sum(valore) as valore from //( //select regra, cp.nome as nomecomissaopara, valorv, valorc, 0 as valore from comissao_venda cv //join venda v on cv.venda=v.codigo //join pessoa cp on cp.codigo=cv.comissaopara //join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=7 //UNION ALL select regra, cp.nome as nomecomissaopara, valorv, 0 as valorc, valorc as valore from comissao_venda cv //join venda v on cv.venda=v.codigo //join pessoa cp on cp.codigo=cv.comissaopara //join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=7 //) vvv group by regra, nomecomissaopara str.Append(" select regra, nomecomissaopara, sum(valorv) as valorv, sum(valorc) as valorc, sum(valore) as valore from ( select regra, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, valorc, 0 as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo join pessoa cp on cp.codigo=cv.comissaopara join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" UNION ALL select regra, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, 0 as valorc, valorc as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo join pessoa cp on cp.codigo=cv.comissaopara join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" ) vvv "); str.Append(" group by regra, nomecomissaopara having abs( sum(valorc)-sum(valore) ) > 0.01 order by regra, sum(valorc)-sum(valore) desc"); return Mapear<ImpressãoRegraPessoa>(str.ToString()); }
public static List<ImpressãoCompartilhada> Obter(Comissão c, Filtro filtro) { StringBuilder str = new StringBuilder(); //select nomerepresentante, nomevendedor, nomecomissaopara, sum(valorv) as valorv, sum(valorc) as valorc, sum(valore) as valore from //( //select vdor.nome as nomevendedor, rep.nome as nomerepresentante, cp.nome as nomecomissaopara,valorv, valorc, 0 as valore from comissao_venda cv //join venda v on cv.venda=v.codigo //join pessoa cli on cli.codigo=v.cliente //join regiao r on cli.regiao=r.codigo //join representante re on re.codigo=r.representante //join pessoa rep on rep.codigo=r.representante //join pessoa vdor on vdor.codigo=v.vendedor //join pessoa cp on cp.codigo=cv.comissaopara //join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=7 //where regra = 7 //UNION ALL select vdor.nome as nomevendedor, rep.nome as nomerepresentante, cp.nome as nomecomissaopara, valorv, 0 as valorc, valorc as valore from comissao_venda cv //join venda v on cv.venda=v.codigo //join pessoa cli on cli.codigo=v.cliente //join regiao r on cli.regiao=r.codigo //join representante re on re.codigo=r.representante //join pessoa rep on rep.codigo=r.representante //join pessoa vdor on vdor.codigo=v.vendedor //join pessoa cp on cp.codigo=cv.comissaopara //join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=7 //where regra = 7 //) vvv group by nomerepresentante, nomevendedor, nomecomissaopara order by nomerepresentante, nomevendedor, valore desc str.Append(" select nomerepresentante, nomevendedor, nomecomissaopara, sum(valorv) as valorv, sum(valorc) as valorc, sum(valore) as valore from ( select vdor.nome as nomevendedor, rep.nome as nomerepresentante, cp.nome as nomecomissaopara,valorv, valorc, 0 as valore from comissao_venda cv"); str.Append(" join venda v on cv.venda=v.codigo join pessoa cli on cli.codigo=v.cliente join regiao r on cli.regiao=r.codigo join representante re on re.codigo=r.representante join pessoa rep on rep.codigo=r.representante join pessoa vdor on vdor.codigo=v.vendedor join pessoa cp on cp.codigo=cv.comissaopara join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao="); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" AND regra=7 "); str.Append(" UNION ALL select vdor.nome as nomevendedor, rep.nome as nomerepresentante, cp.nome as nomecomissaopara, valorv, 0 as valorc, valorc as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo join pessoa cli on cli.codigo=v.cliente join regiao r on cli.regiao=r.codigo join representante re on re.codigo=r.representante join pessoa rep on rep.codigo=r.representante "); str.Append(" join pessoa vdor on vdor.codigo=v.vendedor join pessoa cp on cp.codigo=cv.comissaopara join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao="); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" AND regra =7 "); str.Append(" ) vvv group by nomerepresentante, nomevendedor, nomecomissaopara order by nomerepresentante, nomevendedor, sum(valorc)-sum(valore) " ); return Mapear<ImpressãoCompartilhada>(str.ToString()); }
public static new List<ImpressãoSetor> Obter(Comissão c, Filtro filtro) { StringBuilder str = new StringBuilder(); str.Append(" select setor, nomecomissaopara, sum(valorv) as valorv, sum(valorc) as valorc, sum(valore) as valore from "); str.Append(" (select distinct v.codigo, cv.setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, 0 as valorc, 0 as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join pessoa cp on cp.codigo=cv.vendedor "); str.Append(" join comissaovenda cve on cve.venda=cv.venda and cve.comissao="); str.Append(DbTransformar(c.Código)); str.Append(" WHERE v.codigo IN "); str.Append(ObterSqlVendasData(filtro.DataInicial, filtro.DataFinal)); str.Append(" UNION ALL select v.codigo, cv.setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, 0 as valorv, valorc, 0 as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao="); str.Append(DbTransformar(c.Código)); str.Append(" WHERE v.codigo IN "); str.Append(ObterSqlVendasData(filtro.DataInicial, filtro.DataFinal)); str.Append(" UNION ALL select v.codigo, cv.setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, 0 as valorc, valorc as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao="); str.Append(DbTransformar(c.Código)); str.Append(" WHERE v.codigo IN "); str.Append(ObterSqlVendasData(filtro.DataInicial, filtro.DataFinal)); str.Append(" ) ee "); if (filtro.Funcionário != null) { str.Append(" WHERE codigocomissaopara = "); str.Append(DbTransformar(filtro.Funcionário.Código)); } str.Append(" group by setor, nomecomissaopara order by setor, (sum(valorc)-sum(valore)) desc "); return Mapear<ImpressãoSetor>(str.ToString()); }
public static new List<ImpressãoComissãoVendaItem> Obter(Comissão c, Filtro filtro) { StringBuilder str = new StringBuilder(); //select * from //(select vi.referencia, m.faixa, m.grupo, vi.peso, m.depeso, vi.quantidade, vi.indice, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv) as valorv, sum(valorc) as valorc, 0 as valore from comissao_valor cv //join venda v on cv.venda=v.codigo //join vendaitem vi on vi.codigo=cv.vendaitem //join mercadoria m on vi.referencia=m.referencia //join pessoa cp on cp.codigo=cv.comissaopara //join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=3 //group by cv.venda, cv.comissaopara, vi.referencia, vi.peso) aa //UNION (select vi.referencia, m.faixa, m.grupo, vi.peso, m.depeso, vi.quantidade, vi.indice, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv), 0 as valorc, sum(valorc) as valore from comissao_valor cv //join venda v on cv.venda=v.codigo //join vendaitem vi on vi.codigo=cv.vendaitem //join mercadoria m on vi.referencia=m.referencia //join pessoa cp on cp.codigo=cv.comissaopara //join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=3 //group by cv.venda, cv.comissaopara, vi.referencia, vi.peso) // UNION //(select vd.referencia, m.faixa, m.grupo, vd.peso, m.depeso, -1*vd.quantidade as quantidade, vd.indice, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv) as valorv, sum(valorc) as valorc, 0 as valore from comissao_valor cv //join venda v on cv.venda=v.codigo //join vendadevolucao vd on vd.codigo=cv.vendadevolucao //join mercadoria m on vd.referencia=m.referencia //join pessoa cp on cp.codigo=cv.comissaopara //join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=3 //group by cv.venda, cv.comissaopara, vd.referencia, vd.peso) //UNION (select vd.referencia, m.faixa, m.grupo, vd.peso, m.depeso, -1*vd.quantidade as quantidade, vd.indice, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv), 0 as valorc, sum(valorc) as valore from comissao_valor cv //join venda v on cv.venda=v.codigo //join vendadevolucao vd on vd.codigo=cv.vendadevolucao //join mercadoria m on vd.referencia=m.referencia //join pessoa cp on cp.codigo=cv.comissaopara //join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=3 //group by cv.venda, cv.comissaopara, vd.referencia, vd.peso) //order by data, nomecomissaopara str.Append(" select * from "); str.Append(" (select v.desconto, vi.referencia, m.faixa, m.grupo, vi.peso, m.depeso, sum(vi.quantidade) as quantidade, sum(vi.indice) as indice, v.data as data, "); str.Append(" v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv) as valorv, sum(valorc) as valorc, 0 as valore from comissao_valor cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join vendaitem vi on vi.codigo=cv.vendaitem "); str.Append(" join mercadoria m on vi.referencia=m.referencia "); str.Append(" join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" group by cv.venda, cv.comissaopara, vi.referencia, vi.peso, regra) aa "); str.Append(" UNION (select v.desconto, vi.referencia, m.faixa, m.grupo, vi.peso, m.depeso, sum(vi.quantidade) as quantidade, sum(vi.indice) as indice, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, "); str.Append(" cv.venda, sum(valorv), 0 as valorc, sum(valorc) as valore from comissao_valor cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join vendaitem vi on vi.codigo=cv.vendaitem "); str.Append(" join mercadoria m on vi.referencia=m.referencia "); str.Append(" join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" group by cv.venda, cv.comissaopara, vi.referencia, vi.peso, regra) UNION "); str.Append(" (select v.desconto, vd.referencia, m.faixa, m.grupo, vd.peso, m.depeso, sum(-1*vd.quantidade) as quantidade, sum(vd.indice) as indice, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv) as valorv, sum(valorc) as valorc, 0 as valore from comissao_valor cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join vendadevolucao vd on vd.codigo=cv.vendadevolucao "); str.Append(" join mercadoria m on vd.referencia=m.referencia "); str.Append(" join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" group by cv.venda, cv.comissaopara, vd.referencia, vd.peso, regra) "); str.Append(" UNION (select v.desconto, vd.referencia, m.faixa, m.grupo, vd.peso, m.depeso, sum(-1*vd.quantidade) as quantidade, sum(vd.indice) as indice, v.data as data, v.cliente, regra, "); str.Append(" cp.nome as nomecomissaopara, cv.venda, sum(valorv), 0 as valorc, sum(valorc) as valore from comissao_valor cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join vendadevolucao vd on vd.codigo=cv.vendadevolucao "); str.Append(" join mercadoria m on vd.referencia=m.referencia "); str.Append(" join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" group by cv.venda, cv.comissaopara, vd.referencia, vd.peso, regra) "); str.Append(" order by data, nomecomissaopara "); return Mapear<ImpressãoComissãoVendaItem>(str.ToString()); }
public static List<ImpressãoComissãoVenda> Obter(Comissão c, Filtro filtro) { StringBuilder str = new StringBuilder(); //select * from // (select v.desconto, v.vendedor=cv.comissaopara as comissaoparavendedor,v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv) as valorv, sum(valorc) as valorc, 0 as valore from comissao_venda cv //join venda v on cv.venda=v.codigo //join pessoa cp on cp.codigo=cv.comissaopara //join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=3 //group by cv.venda, cv.comissaopara) aa //UNION (select v.desconto, v.vendedor=cv.comissaopara as comissaoparavendedor, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv), 0 as valorc, sum(valorc) as valore from comissao_venda cv //join venda v on cv.venda=v.codigo //join pessoa cp on cp.codigo=cv.comissaopara //join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao=3 //group by cv.venda, cv.comissaopara) order by data, nomecomissaopara str.Append("select * from (select v.desconto, v.vendedor=cv.comissaopara as comissaoparavendedor, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv) as valorv, sum(valorc) as valorc, 0 as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo join pessoa cp on cp.codigo=cv.comissaopara join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao="); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" group by cv.venda, cv.comissaopara, regra) aa UNION (select v.desconto, v.vendedor=cv.comissaopara as comissaoparavendedor, v.data as data, v.cliente, regra, cp.nome as nomecomissaopara, cv.venda, sum(valorv), 0 as valorc, sum(valorc) as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo join pessoa cp on cp.codigo=cv.comissaopara join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao="); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" group by cv.venda, cv.comissaopara, regra) order by data, nomecomissaopara "); return Mapear<ImpressãoComissãoVenda>(str.ToString()); }
public static List<ImpressãoResumo> Obter(Comissão c, Filtro filtro) { StringBuilder str = new StringBuilder(); //select nomecomissaopara, codigocomissaopara, setor, sum(valorv) as valorv, sum(faturamentocompartilhado) as faturamentocompartilhado, sum(valorc) as valorc, sum(valore) as valore from //(select distinct v.codigo, s.nome as setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, 0 as faturamentocompartilhado, 0 as valorc, 0 as valore from comissao_venda cv //join venda v on cv.venda = v.codigo //join pessoa cp on cp.codigo = cv.vendedor //join setor s on cp.setor = s.codigo //join comissaovenda cve on cve.venda = cv.venda and cve.comissao = 19 AND cve.pessoa=v.vendedor //UNION ALL //select v.codigo, s.nome as setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, 0 as valorv, 0 as faturamentocompartilhado, valorc, 0 as valore from comissao_venda cv //join venda v on cv.venda = v.codigo //join pessoa cp on cp.codigo = cv.comissaopara //join setor s on cp.setor = s.codigo //join comissaovenda cve on cve.venda = cv.venda and cve.pessoa = v.vendedor and cve.comissao = 3 //UNION ALL //select v.codigo, s.nome as setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, 0 as faturamentocompartilhado, 0 as valorc, valorc as valore from comissao_venda cv //join venda v on cv.venda = v.codigo //join pessoa cp on cp.codigo = cv.comissaopara //join setor s on cp.setor = s.codigo //join comissaoestornovenda cve on cve.venda = cv.venda and cve.pessoa = v.vendedor and cve.comissao = 3 AND cve.pessoa=v.vendedor //UNION ALL //select 0 as codigo, 'Representante' as setor, p.nome as nomecomissaopara, p.codigo as codigocomissaopara, 0 as valorv, sum(valorv) as faturamentocompartilhado, 0 as valorc, 0 as valore //from representante r join pessoa p on r.codigo = p.codigo join comissao_venda c_v on p.codigo = c_v.comissaopara // WHERE c_v.comissaopara != c_v.vendedor and venda in (select venda from comissaovenda where comissao = 16) //group by p.nome) // ee WHERE codigocomissaopara=29480 group by nomecomissaopara order by (sum(valorc) - sum(valore)) desc str.Append(" select nomecomissaopara, codigocomissaopara, setor, sum(valorv) as valorv, sum(faturamentocompartilhado) as faturamentocompartilhado, sum(valorc) as valorc, sum(valore) as valore from "); str.Append(" (select distinct v.codigo, s.nome as setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, 0 as faturamentocompartilhado, 0 as valorc, 0 as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join pessoa cp on cp.codigo=cv.vendedor "); str.Append(" join setor s on cp.setor = s.codigo "); str.Append(" join comissaovenda cve on cve.venda=cv.venda and cve.comissao= "); str.Append(DbTransformar(c.Código)); str.Append(" AND cve.pessoa=v.vendedor "); AplicarFiltro(str, filtro); str.Append(" UNION ALL "); str.Append(" select v.codigo, s.nome as setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, 0 as valorv, 0 as faturamentocompartilhado, valorc, 0 as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join setor s on cp.setor = s.codigo "); str.Append(" join comissaovenda cve on cve.venda=cv.venda and cve.pessoa=cv.comissaopara and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" UNION ALL "); str.Append(" select v.codigo, s.nome as setor, cp.nome as nomecomissaopara, cp.codigo as codigocomissaopara, valorv, 0 as faturamentocompartilhado, 0 as valorc, valorc as valore from comissao_venda cv "); str.Append(" join venda v on cv.venda=v.codigo "); str.Append(" join pessoa cp on cp.codigo=cv.comissaopara "); str.Append(" join setor s on cp.setor = s.codigo "); str.Append(" join comissaoestornovenda cve on cve.venda=cv.venda and cve.pessoa=v.vendedor and cve.comissao= "); str.Append(DbTransformar(c.Código)); AplicarFiltro(str, filtro); str.Append(" UNION ALL "); str.Append(" select 0 as codigo, 'Representante' as setor, p.nome as nomecomissaopara, p.codigo as codigocomissaopara, 0 as valorv, sum(valorv) as faturamentocompartilhado, 0 as valorc, 0 as valore "); str.Append(" from representante r join pessoa p on r.codigo=p.codigo join comissao_venda c_v on p.codigo=c_v.comissaopara "); str.Append(" WHERE c_v.comissaopara != c_v.vendedor "); str.Append(" AND venda IN "); str.Append(ObterSqlVendasData(filtro.DataInicial, filtro.DataFinal)); if (filtro.Funcionário != null) { str.Append(" AND comissaopara = "); str.Append(DbTransformar(filtro.Funcionário.Código)); } str.Append(" AND venda in (select venda from comissaovenda where comissao="); str.Append(DbTransformar(c.Código)); str.Append(") group by p.nome) ee "); if (filtro.Funcionário != null) { str.Append(" WHERE codigocomissaopara = "); str.Append(DbTransformar(filtro.Funcionário.Código)); } str.Append(" group by nomecomissaopara order by (sum(valorc)-sum(valore)) desc "); return Mapear<ImpressãoResumo>(str.ToString()); }