-- View: public.view_stq_ficha_estoque -- DROP VIEW public.view_stq_ficha_estoque; CREATE OR REPLACE VIEW public.view_stq_ficha_estoque AS SELECT stq_mov_estoque.filial_mov, stq_mov_estoque.sequencial, stq_mov_estoque.filial_origem, stq_mov_estoque.filial_destino, stq_mov_estoque.almox_origem, stq_mov_estoque.almox_destino, stq_mov_estoque.filial_pro, stq_mov_estoque.produto, stq_mov_estoque.unidade_mvto, stq_mov_estoque.data_movimento, stq_mov_estoque.hora_movimento, stq_mov_estoque.filial_usu, stq_mov_estoque.usuario, stq_mov_estoque.filial_for, stq_mov_estoque.fornecedor, stq_mov_estoque.filial_cli, stq_mov_estoque.cliente, stq_mov_estoque.filial_nota_sai, stq_mov_estoque.nota_saida, stq_mov_estoque.filial_nota_ent, stq_mov_estoque.nota_entrada, stq_mov_estoque.vlr_custo, stq_mov_estoque.vlr_bruto, stq_mov_estoque.vlr_medio, stq_mov_estoque.vlr_servico, stq_mov_estoque.peso, stq_mov_estoque.seq_item_pedido, stq_mov_estoque.filial_vend, stq_mov_estoque.vendedor, stq_mov_estoque.filial_inv, stq_mov_estoque.inventario, stq_mov_estoque.observacao, stq_mov_estoque.nr_documento, stq_mov_estoque.serie, stq_mov_estoque.tipo_documento, stq_mov_estoque.data_acao, stq_mov_estoque.hora_acao, stq_mov_estoque.tipo_movimento, bas_tipo_mov.descricao, bas_tipo_mov.operacao, stq_mov_estoque.quantidade, COALESCE(COALESCE(stq_saldo_estoque.quantidade, 0.000000) + ( (( SELECT COALESCE(sum(mv_stq_ent.quantidade), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_ent LEFT JOIN bas_tipo_mov tp_mov_ent ON tp_mov_ent.codigo = mv_stq_ent.tipo_movimento WHERE mv_stq_ent.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_ent.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_ent.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_ent.produto = stq_mov_estoque.produto AND mv_stq_ent.sequencia_lote = stq_mov_estoque.sequencia_lote AND mv_stq_ent.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_ent.sequencial < stq_mov_estoque.sequencial AND tp_mov_ent.operacao::text = 'E'::text)) - (( SELECT COALESCE(sum(mv_stq_sai.quantidade), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_sai LEFT JOIN bas_tipo_mov tp_mov_sai ON tp_mov_sai.codigo = mv_stq_sai.tipo_movimento WHERE mv_stq_sai.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_sai.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_sai.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_sai.produto = stq_mov_estoque.produto AND mv_stq_sai.sequencia_lote = stq_mov_estoque.sequencia_lote AND mv_stq_sai.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_sai.sequencial < stq_mov_estoque.sequencial AND tp_mov_sai.operacao::text = 'S'::text)) ), 0::numeric) AS saldo_anterior, COALESCE(COALESCE(stq_saldo_estoque.quantidade, 0.000000) + ((( SELECT COALESCE(sum(mv_stq_ent.quantidade), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_ent LEFT JOIN bas_tipo_mov tp_mov_ent ON tp_mov_ent.codigo = mv_stq_ent.tipo_movimento WHERE mv_stq_ent.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_ent.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_ent.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_ent.produto = stq_mov_estoque.produto AND mv_stq_ent.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_ent.sequencial <= stq_mov_estoque.sequencial AND mv_stq_ent.sequencia_lote = stq_mov_estoque.sequencia_lote AND tp_mov_ent.operacao::text = 'E'::text)) - (( SELECT COALESCE(sum(mv_stq_sai.quantidade), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_sai LEFT JOIN bas_tipo_mov tp_mov_sai ON tp_mov_sai.codigo = mv_stq_sai.tipo_movimento WHERE mv_stq_sai.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_sai.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_sai.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_sai.produto = stq_mov_estoque.produto AND mv_stq_sai.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_sai.sequencial <= stq_mov_estoque.sequencial AND mv_stq_sai.sequencia_lote = stq_mov_estoque.sequencia_lote AND tp_mov_sai.operacao::text = 'S'::text)) ), 0::numeric) AS saldo_atual, COALESCE(COALESCE(stq_saldo_estoque.vlr_estoque, 0.000000)) AS saldo_anterior_vlr_estoque, COALESCE(COALESCE(stq_saldo_estoque.vlr_estoque, 0.000000) + ((( SELECT COALESCE(sum(CASE WHEN mv_stq_ent.tipo_movimento <> 1 THEN trunc(mv_stq_ent.vlr_custo * mv_stq_ent.quantidade, 2) ELSE round(mv_stq_ent.vlr_custo * mv_stq_ent.quantidade, 2) END), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_ent LEFT JOIN bas_tipo_mov tp_mov_ent ON tp_mov_ent.codigo = mv_stq_ent.tipo_movimento WHERE mv_stq_ent.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_ent.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_ent.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_ent.produto = stq_mov_estoque.produto AND mv_stq_ent.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_ent.sequencial < stq_mov_estoque.sequencial AND tp_mov_ent.operacao::text = 'E'::text)) - (( SELECT COALESCE(sum(CASE WHEN mv_stq_sai.tipo_movimento <> ALL (ARRAY[1, 2]) THEN trunc(mv_stq_sai.vlr_custo * mv_stq_sai.quantidade, 2) ELSE round(mv_stq_sai.vlr_custo * mv_stq_sai.quantidade, 2) END), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_sai LEFT JOIN bas_tipo_mov tp_mov_sai ON tp_mov_sai.codigo = mv_stq_sai.tipo_movimento WHERE mv_stq_sai.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_sai.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_sai.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_sai.produto = stq_mov_estoque.produto AND mv_stq_sai.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_sai.sequencial < stq_mov_estoque.sequencial AND tp_mov_sai.operacao::text = 'S'::text)) ), 0::numeric) AS saldo_valor_anterior, CASE WHEN (COALESCE(stq_saldo_estoque.quantidade, 0.000000) + ((( SELECT COALESCE(sum(mv_stq_ent.quantidade), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_ent LEFT JOIN bas_tipo_mov tp_mov_ent ON tp_mov_ent.codigo = mv_stq_ent.tipo_movimento WHERE mv_stq_ent.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_ent.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_ent.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_ent.produto = stq_mov_estoque.produto AND mv_stq_ent.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_ent.sequencial <= stq_mov_estoque.sequencial AND tp_mov_ent.operacao::text = 'E'::text)) - (( SELECT COALESCE(sum(mv_stq_sai.quantidade), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_sai LEFT JOIN bas_tipo_mov tp_mov_sai ON tp_mov_sai.codigo = mv_stq_sai.tipo_movimento WHERE mv_stq_sai.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_sai.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_sai.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_sai.produto = stq_mov_estoque.produto AND mv_stq_sai.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_sai.sequencial <= stq_mov_estoque.sequencial AND tp_mov_sai.operacao::text = 'S'::text)) )) = 0::numeric THEN 0.000000 ELSE COALESCE(COALESCE(stq_saldo_estoque.vlr_estoque, 0.000000) + ((( SELECT COALESCE(sum(CASE WHEN mv_stq_ent.tipo_movimento <> 1 THEN trunc(mv_stq_ent.vlr_custo * mv_stq_ent.quantidade, 2) ELSE round(mv_stq_ent.vlr_custo * mv_stq_ent.quantidade, 2) END), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_ent LEFT JOIN bas_tipo_mov tp_mov_ent ON tp_mov_ent.codigo = mv_stq_ent.tipo_movimento WHERE mv_stq_ent.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_ent.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_ent.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_ent.produto = stq_mov_estoque.produto AND mv_stq_ent.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_ent.sequencial <= stq_mov_estoque.sequencial AND tp_mov_ent.operacao::text = 'E'::text)) - (( SELECT COALESCE(sum(CASE WHEN mv_stq_sai.tipo_movimento <> ALL (ARRAY[1, 2]) THEN trunc(mv_stq_sai.vlr_custo * mv_stq_sai.quantidade, 2) ELSE round(mv_stq_sai.vlr_custo * mv_stq_sai.quantidade, 2)END), 0.000000) AS "coalesce" FROM stq_mov_estoque mv_stq_sai LEFT JOIN bas_tipo_mov tp_mov_sai ON tp_mov_sai.codigo = mv_stq_sai.tipo_movimento WHERE mv_stq_sai.filial_mov = stq_mov_estoque.filial_mov AND mv_stq_sai.almox_origem = stq_mov_estoque.almox_origem AND mv_stq_sai.filial_pro = stq_mov_estoque.filial_pro AND mv_stq_sai.produto = stq_mov_estoque.produto AND mv_stq_sai.data_movimento = stq_mov_estoque.data_movimento AND mv_stq_sai.sequencial <= stq_mov_estoque.sequencial AND tp_mov_sai.operacao::text = 'S'::text)) ), 0::numeric) END AS saldo_valor_atual, stq_mov_estoque.sequencia_lote FROM stq_mov_estoque LEFT JOIN bas_tipo_mov ON bas_tipo_mov.codigo = stq_mov_estoque.tipo_movimento LEFT JOIN stq_saldo_estoque ON stq_saldo_estoque.filial_stq = stq_mov_estoque.filial_mov AND stq_saldo_estoque.almoxarifado = stq_mov_estoque.almox_origem AND stq_saldo_estoque.filial_pro = stq_mov_estoque.filial_pro AND stq_saldo_estoque.produto = stq_mov_estoque.produto AND stq_saldo_estoque.data = (( SELECT max(stq_saldo_estoque_1.data) AS max FROM stq_saldo_estoque stq_saldo_estoque_1 WHERE stq_saldo_estoque_1.filial_stq = stq_mov_estoque.filial_mov AND stq_saldo_estoque_1.almoxarifado = stq_mov_estoque.almox_origem AND stq_saldo_estoque_1.filial_pro = stq_mov_estoque.filial_pro AND stq_saldo_estoque_1.produto = stq_mov_estoque.produto AND stq_saldo_estoque_1.sequencia_lote = stq_mov_estoque.sequencia_lote AND stq_saldo_estoque_1.data < stq_mov_estoque.data_movimento )) AND stq_saldo_estoque.sequencia_lote = stq_mov_estoque.sequencia_lote ORDER BY stq_mov_estoque.filial_mov, stq_mov_estoque.filial_pro, stq_mov_estoque.sequencia_lote, stq_mov_estoque.produto, stq_mov_estoque.data_movimento, stq_mov_estoque.sequencial; ALTER TABLE public.view_stq_ficha_estoque OWNER TO postgres; COMMENT ON VIEW public.view_stq_ficha_estoque IS 'View Padrao da Ficha do Estoque';