--
-- PostgreSQL database dump
--

-- Dumped from database version 9.6.19
-- Dumped by pg_dump version 9.6.19

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

--
-- Name: caja; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA caja;


--
-- Name: chat; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA chat;


--
-- Name: conta; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA conta;


--
-- Name: cpe; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA cpe;


--
-- Name: file; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA file;


--
-- Name: isos; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA isos;


--
-- Name: report; Type: SCHEMA; Schema: -; Owner: -
--

CREATE SCHEMA report;


--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;


--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';


--
-- Name: adminpack; Type: EXTENSION; Schema: -; Owner: -
--

CREATE EXTENSION IF NOT EXISTS adminpack WITH SCHEMA pg_catalog;


--
-- Name: EXTENSION adminpack; Type: COMMENT; Schema: -; Owner: -
--

COMMENT ON EXTENSION adminpack IS 'administrative functions for PostgreSQL';


--
-- Name: t_dashboard; Type: TYPE; Schema: isos; Owner: -
--

CREATE TYPE isos.t_dashboard AS (
	total numeric,
	cxc numeric,
	nc numeric,
	detraccion numeric
);


--
-- Name: fn_resgitrar_caja(bigint, bigint, bigint, bigint, character varying); Type: FUNCTION; Schema: caja; Owner: -
--

CREATE FUNCTION caja.fn_resgitrar_caja(p_id_empresa bigint, p_id_localidad bigint, p_id_punto_venta bigint, p_id_movimiento bigint, p_usuario character varying) RETURNS boolean
    LANGUAGE plpgsql
    AS $_$
DECLARE
	p_id_empresa alias for $1;
	p_id_localidad alias for $2;
	p_id_punto_venta alias for $3;
	p_id_movimiento alias for $4;
	p_usuario alias for $5;
	f0 record;
	v_total_venta numeric :=0;
	v_total_pagos numeric :=0;
	v_id_credito bigint :=0;
BEGIN
    FOR f0 IN (SELECT c.id_caja FROM caja.caja c 
    WHERE c.estado='ABIERTO' 
    AND c.id_empresa= p_id_empresa AND c.id_localidad= p_id_localidad AND c.id_punto_venta=p_id_punto_venta
    AND c.usuario_asignado= p_usuario
    ) LOOP
	INSERT INTO caja.caja_transaccion(id_caja, id_transaccion) VALUES (f0.id_caja, p_id_movimiento);
    END LOOP;
RETURN FALSE;
END;
$_$;


--
-- Name: b(); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.b() RETURNS integer
    LANGUAGE plpgsql
    AS $$
declare
 f0 record;
 f1 record;
 ii int;
begin

FOR f0 IN SELECT * FROM isos.compra LOOP
	ii=1;
	FOR f1 IN SELECT * FROM isos.compra_detalle where id_compra=f0.id_compra LOOP
		update isos.compra_detalle set item=ii 
		where id_compra=f1.id_compra and id_empresa=f1.id_empresa and cod_producto=f1.cod_producto and id_unidadmedida=f1.id_unidadmedida;
		ii=ii+1;
	end loop;	
end loop;
return 1;
end;
$$;


--
-- Name: fn_bigid(character varying, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_bigid(p_tabla character varying, p_columna character varying) RETURNS SETOF bigint
    LANGUAGE plpgsql
    AS $_$ 
DECLARE 
result RECORD;
p_tabla alias for $1; 
p_columna alias for $2;
sql text;
begin 
 sql := concat('select (coalesce(max(',p_columna,'),0)+1) as codigo from ',p_tabla);
 return query execute sql;
end; 
$_$;


--
-- Name: fn_cancelar_compra(integer, integer, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_cancelar_compra(p_id_empresa integer, p_id_compra integer, p_usuario character varying) RETURNS boolean
    LANGUAGE plpgsql
    AS $_$
DECLARE 
    p_id_empresa alias for $1;
    p_id_compra alias for $2;
    p_usuario alias for $3;
    f0 record;
    v_total numeric := 0;
    v_total_pagos numeric := 0;
    v_id_deuda bigint := 0;
BEGIN FOR f0 IN (
    SELECT tp.nombre
    FROM isos.compra c
    INNER JOIN isos.tipo_pago tp ON (c.id_tipopago = tp.id_tipopago)
    WHERE c.cod_estado <> 'CA' AND c.id_empresa = p_id_empresa AND c.id_compra = p_id_compra
) LOOP
	SELECT T1.total,
    COALESCE(SUM(T1.monto), 0) INTO v_total,
    v_total_pagos
    FROM (
        SELECT CASE WHEN c0.id_tipomoneda = mp0.id_tipomoneda THEN mp0.monto_cobrado
                ELSE CASE
                    WHEN tm0.es_base = 1 THEN mp0.monto_cobrado * mp0.tasa_cambio
                    ELSE mp0.monto_cobrado / mp0.tasa_cambio
                END
            END AS monto,
            c0.total,
            mp0.id_movimiento,
            mp0.item
        FROM isos.compra c0
        LEFT JOIN isos.movimiento mo0 ON (mo0.id_referencia = c0.id_compra AND mo0.tabla_referencia = 'COMPRA'  AND mo0.estado = 'A' AND mo0.id_empresa = p_id_empresa)
        LEFT JOIN isos.movimiento_pago mp0 ON (mp0.id_movimiento = mo0.id_movimiento)
        LEFT JOIN isos.tipo_moneda tm0 ON (c0.id_tipomoneda = tm0.id_tipomoneda)
        WHERE c0.id_compra = p_id_compra
        UNION
        SELECT CASE WHEN c1.id_tipomoneda = mp1.id_tipomoneda THEN 
                    mp1.monto_cobrado
                ELSE 
                    CASE WHEN tm1.es_base = 1 THEN 
                        mp1.monto_cobrado * mp1.tasa_cambio
                    ELSE mp1.monto_cobrado / mp1.tasa_cambio
                END
            END AS monto,
            c1.total,
            mp1.id_movimiento,
            mp1.item
        FROM isos.compra c1
        LEFT JOIN isos.deuda de on (de.id_compra = c1.id_compra AND de.estado = 'A')
        LEFT JOIN isos.movimiento mo1 ON (mo1.id_referencia = de.id_deuda AND mo1.tabla_referencia = 'DEUDA' AND mo1.estado = 'A' AND mo1.id_empresa = p_id_empresa)
        LEFT JOIN isos.movimiento_pago mp1 ON (mp1.id_movimiento = mo1.id_movimiento)
        LEFT JOIN isos.tipo_moneda tm1 ON (de.id_tipomoneda = tm1.id_tipomoneda)
        WHERE c1.id_compra = p_id_compra
        UNION
        SELECT CASE
                WHEN c2.id_tipomoneda = mp2.id_tipomoneda THEN mp2.monto_cobrado
                ELSE CASE
                    WHEN tm2.es_base = 1 THEN mp2.monto_cobrado * mp2.tasa_cambio
                    ELSE mp2.monto_cobrado / mp2.tasa_cambio
                END
            END AS monto,
            c2.total,
            mp2.id_movimiento,
            mp2.item
        FROM isos.orden_compra oc
            INNER JOIN isos.compra c2 ON (oc.id_ordencompra = c2.id_ordencompra)
            LEFT JOIN isos.movimiento mo2 ON (mo2.id_referencia = oc.id_ordencompra AND mo2.tabla_referencia = 'ORDEN_COMPRA' AND mo2.id_empresa = p_id_empresa)
            LEFT JOIN isos.movimiento_pago mp2 ON (mp2.id_movimiento = mo2.id_movimiento)
            LEFT JOIN isos.tipo_moneda tm2 ON (oc.id_tipomoneda = tm2.id_tipomoneda)
        WHERE c2.id_compra = p_id_compra
    ) T1
    GROUP BY T1.total;
    -- RAISE NOTICE 'v_total_pagos: %', v_total_pagos;
    v_total = ROUND(v_total, 2);
    v_total_pagos = ROUND(v_total_pagos, 2);
    IF(v_total <= v_total_pagos) THEN 
        IF(f0.nombre = 'CREDITO') THEN
            SELECT id_deuda INTO v_id_deuda
            FROM isos.deuda
            WHERE id_compra = p_id_compra;
            UPDATE isos.deuda
            SET cod_estado = 'CA'
            WHERE id_deuda = v_id_deuda;
            UPDATE isos.deuda_detalle
            SET cod_estado = 'CA'
            WHERE id_deuda = v_id_deuda;
        END IF;
            UPDATE isos.compra
            SET cod_estado = 'CA',
                usuario_modificacion = p_usuario,
                fecha_modificacion = NOW()
            WHERE id_empresa = p_id_empresa AND id_compra = p_id_compra;
            RETURN TRUE;
        END IF;
    END LOOP;
RETURN FALSE;
END;
$_$;


--
-- Name: fn_cancelar_venta(integer, integer, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_cancelar_venta(p_id_empresa integer, p_id_venta integer, p_usuario character varying) RETURNS boolean
    LANGUAGE plpgsql
    AS $_$
DECLARE
	p_id_empresa alias for $1;
	p_id_venta alias for $2;
	p_usuario alias for $3;
	f0 record;
	v_total_venta numeric :=0;
	v_total_pagos numeric :=0;
	v_id_credito bigint :=0;
BEGIN
    FOR f0 IN (SELECT cv.condicion 
    FROM isos.venta v 
    INNER JOIN isos.condicion_venta cv ON (v.id_condicionventa=cv.id_condicionventa)
    WHERE v.cod_estado<>'CA' AND v.id_empresa= p_id_empresa AND v.id_venta=p_id_venta) LOOP
	SELECT T1.total, COALESCE(SUM(T1.monto),0) INTO v_total_venta, v_total_pagos 
	FROM (  SELECT CASE WHEN v0.id_tipomoneda=mp0.id_tipomoneda THEN mp0.monto_cobrado ELSE 
		CASE WHEN tm0.es_base=1 THEN mp0.monto_cobrado*mp0.tasa_cambio ELSE mp0.monto_cobrado/mp0.tasa_cambio END END AS monto, 
                v0.total, mp0.id_movimiento, mp0.item 
                FROM isos.venta v0
                LEFT JOIN isos.movimiento mo0 ON (mo0.id_referencia=v0.id_venta AND mo0.tabla_referencia='VENTA' AND mo0.estado='A' AND mo0.id_empresa= p_id_empresa ) 
                LEFT JOIN isos.movimiento_pago mp0 ON (mp0.id_movimiento=mo0.id_movimiento) 
                LEFT JOIN isos.tipo_moneda tm0 ON (v0.id_tipomoneda=tm0.id_tipomoneda) 
                WHERE v0.id_venta= p_id_venta
                UNION 
                SELECT CASE WHEN v1.id_tipomoneda=mp1.id_tipomoneda THEN mp1.monto_cobrado ELSE 
                CASE WHEN tm1.es_base=1 THEN mp1.monto_cobrado*mp1.tasa_cambio ELSE mp1.monto_cobrado/mp1.tasa_cambio END END AS monto, 
                v1.total, mp1.id_movimiento, mp1.item
                FROM isos.venta v1 
                LEFT JOIN isos.credito cr on (cr.id_venta=v1.id_venta AND cr.estado='A') 
                LEFT JOIN isos.movimiento mo1 ON (mo1.id_referencia=cr.id_credito AND mo1.tabla_referencia='CREDITO' AND mo1.estado='A' AND mo1.id_empresa= p_id_empresa) 
                LEFT JOIN isos.movimiento_pago mp1 ON (mp1.id_movimiento=mo1.id_movimiento) 
                LEFT JOIN isos.tipo_moneda tm1 ON (cr.id_tipomoneda=tm1.id_tipomoneda) 
                WHERE v1.id_venta= p_id_venta
                UNION
                SELECT CASE WHEN v2.id_tipomoneda=mp2.id_tipomoneda THEN mp2.monto_cobrado ELSE 
		CASE WHEN tm2.es_base=1 THEN mp2.monto_cobrado*mp2.tasa_cambio ELSE mp2.monto_cobrado/mp2.tasa_cambio END END AS monto,
		v2.total, mp2.id_movimiento, mp2.item 
		FROM isos.pedido_venta pv
		INNER JOIN isos.venta v2 ON (pv.id_pedido_venta=v2.id_pedido_venta)
		LEFT JOIN isos.movimiento mo2 ON (mo2.id_referencia=pv.id_pedido_venta AND mo2.tabla_referencia='PEDIDO_VENTA' AND mo2.id_empresa= p_id_empresa)
		LEFT JOIN isos.movimiento_pago mp2 ON (mp2.id_movimiento=mo2.id_movimiento) 
		LEFT JOIN isos.tipo_moneda tm2 ON (pv.id_tipomoneda=tm2.id_tipomoneda) 
		WHERE v2.id_venta= p_id_venta
        ) T1 
        GROUP BY T1.total;
        -- RAISE NOTICE 'v_total_pagos: %', v_total_pagos;
        v_total_venta= ROUND(v_total_venta,2);
        v_total_pagos= ROUND(v_total_pagos,2);
	IF(v_total_venta<=v_total_pagos)THEN
	    IF(f0.condicion='CREDITO') THEN
                SELECT id_credito INTO v_id_credito FROM isos.credito WHERE id_venta= p_id_venta;
	        UPDATE isos.credito SET cod_estado='CA' WHERE id_credito= v_id_credito;
	        UPDATE isos.credito_detalle SET cod_estado='CA' WHERE id_credito= v_id_credito;
	    END IF;
	    UPDATE isos.venta SET cod_estado='CA', usuario_modificacion= p_usuario, fecha_modificacion=NOW() WHERE id_empresa= p_id_empresa AND id_venta=p_id_venta;
	    RETURN TRUE;
	END IF;
    END LOOP;
RETURN FALSE;
END;
$_$;


--
-- Name: fn_codigo(character varying, character varying, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_codigo(p_alias character varying, p_tabla character varying, p_columna character varying) RETURNS character varying
    LANGUAGE plpgsql
    AS $_$ 
DECLARE 
result RECORD;
val1 int;
val2 int; 
valor int;
p_alias alias for $1;
p_tabla alias for $2; 
p_columna alias for $3;
sql text;
begin 
 val1 := (SELECT length(p_alias) as alias);
 val2 := (SELECT character_maximum_length FROM information_schema.columns WHERE CONCAT(table_schema,'.',table_name) = p_tabla and column_name = p_columna);
 valor := val2 - val1; 
 sql := concat('SELECT CONCAT(''',p_alias,''',RIGHT(concat(''00000000000'', RIGHT(COALESCE(MAX(',p_columna,'),''0''),',valor,')::int+1),',valor,'))::varchar as codigo,count(*) filas FROM ',p_tabla,' WHERE ',p_columna,' LIKE ''',p_alias,'%''');
 /*return query execute sql;*/
 execute sql INTO result;
 return result.codigo;
end; 
$_$;


--
-- Name: fn_dashboard_compras(integer, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_dashboard_compras(p_id_empresa integer, p_rango character varying) RETURNS isos.t_dashboard
    LANGUAGE plpgsql
    AS $_$
DECLARE 
-- returns setof t_bashboard
-- returns TABLE (f1 varchar(10), f2 varchar(10)
	p_id_empresa alias for $1;
	p_rango alias for $2;
	v_total numeric:= 0;
	v_cxc numeric:= 0;
	v_nc numeric:= 0;
    v_tipo_cambio numeric; --DEFAULT NULL
	v_detraccion numeric:= 0;
	v_record isos.t_dashboard;
	v_fecha_ini date:= NOW();
	v_fecha_fin date:= NOW();
	v_year double precision:= date_part('year',now());
	v_month_ini double precision:= date_part('month',now());
	v_month_fin double precision:= date_part('month',now());
	v_day_ini double precision:= date_part('day',now());
	v_day_fin double precision:= date_part('day',now());
BEGIN
    v_day_fin:= (select extract(day from (extract(year from now()) || '-' || extract(month from now()) + 1  || '-01')::date - '1 day'::interval));
    IF(p_rango='MONTH') THEN
	v_fecha_ini:= (SELECT (extract(year from now()) || '-' || extract(month from now()) || '-01')::date);
	v_fecha_fin:= (SELECT (extract(year from now()) || '-' || extract(month from now()) || '-' || v_day_fin)::date);	
    ELSE 
        IF (p_rango='YEAR') THEN 
            v_fecha_ini:= (SELECT (extract(year from now()) || '-01-01')::date);
            v_fecha_fin:= (SELECT (extract(year from now()) || '-12-' || v_day_fin)::date);
        END IF;
    END IF;
    -- tipo de cambio
    SELECT tc.valor_venta INTO v_tipo_cambio 
    FROM isos.tipo_cambio tc where tc.id_empresa=p_id_empresa AND tc.fecha= CURRENT_DATE;
    --VENTAS:
    SELECT coalesce(SUM(c.total* 
    (CASE WHEN tm.es_base=1 THEN c.tasa_cambio ELSE COALESCE(v_tipo_cambio,c.tasa_cambio) END)),0) INTO v_record.total 
    FROM isos.compra c 
    INNER JOIN isos.tipo_moneda tm ON (c.id_tipomoneda=tm.id_tipomoneda)
    WHERE c.estado='A' AND c.cod_estado<>'AN' 
    AND c.id_empresa= p_id_empresa AND c.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    --Cuentas Por Cobrar (CxC)
	SELECT coalesce(SUM(
    (c.total - (coalesce(t0pago.monto_cobrado,0) + coalesce(t1pago.monto_cobrado,0)))*
    (CASE WHEN tm.es_base=1 THEN c.tasa_cambio ELSE COALESCE(v_tipo_cambio,c.tasa_cambio) END)
    ),0) AS _saldo INTO v_record.cxc
	FROM isos.compra c 
    INNER JOIN isos.tipo_moneda tm ON (c.id_tipomoneda=tm.id_tipomoneda)
	LEFT JOIN isos.deuda d ON (d.id_compra=c.id_compra)
	LEFT JOIN (
		SELECT SUM(case when d1.id_tipomoneda=mp.id_tipomoneda THEN mp.monto_cobrado 
			ELSE case when tm1.es_base=1 THEN
				mp.monto_cobrado*mp.tasa_cambio
			ELSE
				mp.monto_cobrado/mp.tasa_cambio
		end END) AS monto_cobrado, m.id_referencia
		FROM isos.movimiento m
		INNER JOIN isos.movimiento_pago mp ON (m.id_movimiento=mp.id_movimiento)
		INNER JOIN isos.deuda d1 ON (m.id_referencia=d1.id_deuda AND m.tabla_referencia='DEUDA')
		INNER JOIN isos.tipo_moneda tm1 ON ( d1.id_tipomoneda=tm1.id_tipomoneda )
		WHERE m.tabla_referencia='DEUDA'
		GROUP BY m.id_referencia 
	) t0pago ON (t0pago.id_referencia=d.id_deuda)
	LEFT JOIN (
		SELECT SUM(CASE when c2.id_tipomoneda=mp2.id_tipomoneda then mp2.monto_cobrado
		ELSE CASE WHEN tm2.es_base=1 THEN
		 mp2.monto_cobrado*mp2.tasa_cambio
		ELSE
		 mp2.monto_cobrado/mp2.tasa_cambio
		END
		END) AS monto_cobrado, m2.id_referencia
		FROM isos.movimiento m2
		INNER JOIN isos.movimiento_pago mp2 ON (m2.id_movimiento=mp2.id_movimiento)
		INNER JOIN isos.compra c2 ON (m2.id_referencia=c2.id_compra AND m2.tabla_referencia='COMPRA')
		INNER JOIN isos.tipo_moneda tm2 ON ( c2.id_tipomoneda=tm2.id_tipomoneda )
		WHERE m2.tabla_referencia='COMPRA'
		GROUP BY m2.id_referencia 
	) t1pago ON (t1pago.id_referencia=c.id_compra)
	WHERE c.estado='A' AND c.cod_estado<>'AN' 
	AND c.id_empresa= p_id_empresa AND c.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    --Notas de Crédito(Ventas)
    SELECT 
    coalesce(SUM(nc.total* 
    (CASE WHEN tm.es_base=1 THEN nc.tasa_cambio ELSE COALESCE(v_tipo_cambio,nc.tasa_cambio) END)),0)
    INTO v_record.nc 
    FROM isos.nota_credito nc
    INNER JOIN isos.nota_credito_compra ncc ON(nc.id_nota_credito=ncc.id_nota_credito)
    INNER JOIN isos.tipo_moneda tm ON (nc.id_tipomoneda=tm.id_tipomoneda)
    WHERE nc.estado='A' AND nc.cod_estado NOT IN('AN','AS')
    AND nc.id_empresa= p_id_empresa AND nc.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    --Detracciones
    SELECT coalesce(SUM(cd.monto),0) INTO v_record.detraccion 
    FROM isos.compra_detraccion cd
    INNER JOIN isos.compra c ON (cd.id_compra=c.id_compra)
    WHERE cd.cod_estado NOT IN('AN','CA')
    AND c.id_empresa= p_id_empresa AND c.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    RAISE NOTICE 'v_fecha_ini: %', v_fecha_ini;
    RAISE NOTICE 'v_fecha_fin: %', v_fecha_fin;
    RAISE NOTICE 'v_tipo_cambio: %', v_tipo_cambio;
    --RAISE EXCEPTION 'v_fecha_fin: %', v_fecha_fin;
    RETURN v_record;
END;
$_$;


--
-- Name: fn_dashboard_ventas(integer, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_dashboard_ventas(p_id_empresa integer, p_rango character varying) RETURNS isos.t_dashboard
    LANGUAGE plpgsql
    AS $_$
DECLARE 
-- returns setof t_bashboard
-- returns TABLE (f1 varchar(10), f2 varchar(10)
	p_id_empresa alias for $1;
	p_rango alias for $2;
	v_total numeric:= 0;
	v_cxc numeric:= 0;
	v_nc numeric:= 0;
    v_tipo_cambio numeric; --DEFAULT NULL
	v_detraccion numeric:= 0;
	v_record isos.t_dashboard;
	v_fecha_ini date:= NOW();
	v_fecha_fin date:= NOW();
	v_year double precision:= date_part('year',now());
	v_month_ini double precision:= date_part('month',now());
	v_month_fin double precision:= date_part('month',now());
	v_day_ini double precision:= date_part('day',now());
	v_day_fin double precision:= date_part('day',now());
BEGIN
    v_day_fin:= (select extract(day from (extract(year from now()) || '-' || extract(month from now()) + 1  || '-01')::date - '1 day'::interval));
    IF(p_rango='MONTH') THEN
	v_fecha_ini:= (SELECT (extract(year from now()) || '-' || extract(month from now()) || '-01')::date);
	v_fecha_fin:= (SELECT (extract(year from now()) || '-' || extract(month from now()) || '-' || v_day_fin)::date);	
    ELSE 
        IF (p_rango='YEAR') THEN 
            v_fecha_ini:= (SELECT (extract(year from now()) || '-01-01')::date);
            v_fecha_fin:= (SELECT (extract(year from now()) || '-12-' || v_day_fin)::date);
        END IF;
    END IF;
    -- tipo de cambio
    SELECT tc.valor_venta INTO v_tipo_cambio 
    FROM isos.tipo_cambio tc where tc.id_empresa=p_id_empresa AND tc.fecha= CURRENT_DATE;
    --VENTAS:
    SELECT 
    coalesce(SUM(v.total* 
    (CASE WHEN tm.es_base=1 THEN v.tasa_cambio ELSE COALESCE(v_tipo_cambio,v.tasa_cambio) END)),0) INTO v_record.total 
    FROM isos.venta v 
    INNER JOIN isos.tipo_moneda tm ON (v.id_tipomoneda=tm.id_tipomoneda)
    WHERE v.estado='A' AND v.cod_estado<>'AN' 
    AND v.id_empresa= p_id_empresa AND v.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    --Cuentas Por Cobrar (CxC)
	SELECT coalesce(SUM(
    (v.total - (coalesce(t0pago.monto_cobrado,0) + coalesce(t1pago.monto_cobrado,0)))*
    (CASE WHEN tm.es_base=1 THEN v.tasa_cambio ELSE COALESCE(v_tipo_cambio,v.tasa_cambio) END)
    ),0) _saldo INTO v_record.cxc
	FROM isos.venta v 
    INNER JOIN isos.tipo_moneda tm ON (v.id_tipomoneda=tm.id_tipomoneda)
	LEFT JOIN isos.credito cr ON (cr.id_venta =v.id_venta)
	LEFT JOIN (
		SELECT SUM(case when cr1.id_tipomoneda=mp.id_tipomoneda then mp.monto_cobrado 
			ELSE case when tm1.es_base=1 then
				mp.monto_cobrado*mp.tasa_cambio
			ELSE
				mp.monto_cobrado/mp.tasa_cambio
		end END) AS monto_cobrado, id_referencia
		FROM isos.movimiento m
		INNER JOIN isos.movimiento_pago mp ON (m.id_movimiento=mp.id_movimiento)
		INNER JOIN isos.credito cr1 ON (m.id_referencia=cr1.id_credito AND m.tabla_referencia='CREDITO')
		INNER JOIN isos.tipo_moneda tm1 ON ( cr1.id_tipomoneda=tm1.id_tipomoneda )
		WHERE m.tabla_referencia='CREDITO'
		GROUP BY m.id_referencia 
	) t0pago ON (t0pago.id_referencia=cr.id_credito)
	LEFT JOIN (
		SELECT SUM(
		case when v2.id_tipomoneda=mp2.id_tipomoneda then 
		mp2.monto_cobrado
		ELSE 
		case when tm2.es_base=1 then
		 mp2.monto_cobrado*mp2.tasa_cambio
		else
		 mp2.monto_cobrado/mp2.tasa_cambio
		end
		END) AS monto_cobrado, 
		m2.id_referencia
		FROM isos.movimiento m2
		INNER JOIN isos.movimiento_pago mp2 ON (m2.id_movimiento=mp2.id_movimiento)
		INNER JOIN isos.venta v2 ON (m2.id_referencia=v2.id_venta AND m2.tabla_referencia='VENTA')
		INNER JOIN isos.tipo_moneda tm2 ON ( v2.id_tipomoneda=tm2.id_tipomoneda )
		WHERE m2.tabla_referencia='VENTA'
		GROUP BY m2.id_referencia 
	) t1pago ON (t1pago.id_referencia=v.id_venta)
	WHERE v.estado='A' AND v.cod_estado<>'AN' 
    AND v.id_empresa= p_id_empresa 
	AND v.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    --Notas de Crédito(Ventas)
    SELECT coalesce(SUM(nc.total*
    (CASE WHEN tm.es_base=1 THEN nc.tasa_cambio ELSE COALESCE(v_tipo_cambio,nc.tasa_cambio) END)),0) INTO v_record.nc 
    FROM isos.nota_credito nc 
    INNER JOIN isos.nota_credito_venta ncv ON(nc.id_nota_credito=ncv.id_nota_credito)
    INNER JOIN isos.tipo_moneda tm ON (nc.id_tipomoneda=tm.id_tipomoneda)
    WHERE nc.estado='A' AND nc.cod_estado NOT IN('AN','AS')
    AND nc.id_empresa= p_id_empresa AND nc.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    --Detracciones
    SELECT coalesce(SUM(vd.monto),0) INTO v_record.detraccion 
    FROM isos.venta_detraccion vd
    INNER JOIN isos.venta v ON (vd.id_venta=v.id_venta)
    WHERE vd.cod_estado NOT IN('AN','CA')
    AND v.id_empresa= p_id_empresa AND v.fecha::date BETWEEN v_fecha_ini AND v_fecha_fin;
    RAISE NOTICE 'v_fecha_ini: %', v_fecha_ini;
    RAISE NOTICE 'v_fecha_fin: %', v_fecha_fin;
    --RAISE EXCEPTION 'v_fecha_fin: %', v_fecha_fin;
    RETURN v_record;
END;
$_$;


--
-- Name: fn_id(character varying, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_id(p_tabla character varying, p_columna character varying) RETURNS SETOF integer
    LANGUAGE plpgsql
    AS $_$ 
DECLARE 
result RECORD;
val1 int; 
valor int;
p_tabla alias for $1; 
p_columna alias for $2;
sql text;
begin 
 sql := concat('select (coalesce(max(',p_columna,'),0)+1) as codigo from ',p_tabla);
 return query execute sql;
end; 
$_$;


--
-- Name: fn_leermes(timestamp without time zone); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_leermes(p_fecha timestamp without time zone) RETURNS character varying
    LANGUAGE plpgsql
    AS $$ 
DECLARE
mes int;
nombreMes varchar(9);
BEGIN
mes = date_part ('month',p_fecha);
SELECT INTO nombreMes CASE mes WHEN 1 THEN 'ENERO' 
		WHEN 2 THEN 'FEBRERO'  
		WHEN 3 THEN 'MARZO' 
		WHEN 4 THEN 'ABRIL' 
		WHEN 5 THEN 'MAYO' 
		WHEN 6 THEN 'JUNIO' 
		WHEN 7 THEN 'JULIO' 
		WHEN 8 THEN 'AGOSTO' 
		WHEN 9 THEN 'SETIEMBRE' 
		WHEN 10 THEN 'OCTUBRE' 
		WHEN 11 THEN 'NOVIEMBRE' 
		WHEN 12 THEN 'DICIEMBRE' END;
RETURN nombreMes;
END
$$;


--
-- Name: fn_preciopromedio(integer, character varying[]); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_preciopromedio(p_id_empresa integer, p_cod_producto character varying[]) RETURNS boolean
    LANGUAGE plpgsql
    AS $_$
DECLARE
	p_id_empresa alias for $1;
	p_cod_producto alias for $2;
	v_ExistenciaCantidad numeric:= 0;
	v_CostoPromedio numeric:= 0;
	v_EntradaCantidad numeric:= 0;
	v_EntradaPrecioUnitario numeric:= 0;
	v_EntradaTotal numeric:= 0;
	v_SalidaCantidad numeric:= 0;
	v_SalidaPrecioUnitario numeric:= 0;
	v_SalidaTotal numeric:= 0;
	v_auxFormula numeric:= 0;
	f0 record;
	f1 record;
	f2 record;
BEGIN
 -- delete from isos._demo;
FOR f0 IN
	SELECT cod_producto FROM isos.producto
	WHERE estado= 'A' AND cod_producto= ANY(p_cod_producto)
LOOP
-- NC_EMISION, NC_RECEPCION, COMPRA, VENTA, TRANSFERENCIA
	v_ExistenciaCantidad = 0;
	v_CostoPromedio = 0;
	v_EntradaCantidad = 0;
	v_EntradaPrecioUnitario = 0;
	v_EntradaTotal = 0;
	v_SalidaCantidad = 0;
	v_SalidaPrecioUnitario = 0;
	v_SalidaTotal = 0;
	v_auxFormula = 0;
	FOR f1 IN
		SELECT fecha, proceso_referencia, id_procesoreferencia, cod_producto, entrada_salida,
		cantidad, unidad_medida_cantidad, importe, flete_total, id_kardex,tasa_cambio, entrada_salida_origen
		FROM isos.kardex
		WHERE estado= 'A'
		AND tipo_almacen='VENTA'
        AND proceso_referencia IN ('VENTA', 'COMPRA', 'NOTACREDITO_E', 'NOTACREDITO_R','TRANSFERENCIA')
 		AND cod_producto= f0.cod_producto
        AND id_empresa= p_id_empresa
		ORDER BY fecha asc
	LOOP
		BEGIN
		v_EntradaCantidad=0;
		v_EntradaPrecioUnitario=0;
		v_EntradaTotal=0;
		v_SalidaCantidad=0;
		v_SalidaPrecioUnitario=0;
		v_SalidaCantidad=0;
		v_SalidaTotal=0;
		IF (f1.entrada_salida='E') THEN
			v_EntradaCantidad= f1.cantidad*f1.unidad_medida_cantidad;
			IF(f1.entrada_salida_origen='E') THEN
				v_EntradaTotal= ROUND(((f1.importe + f1.flete_total )*f1.tasa_cambio),5);
				v_EntradaPrecioUnitario= ROUND((v_EntradaTotal/v_EntradaCantidad),5);
			ELSE
				v_EntradaPrecioUnitario= v_CostoPromedio;
			END IF;
		ELSE /*entrada_salida:S*/
			v_SalidaCantidad= f1.cantidad*f1.unidad_medida_cantidad;
			v_SalidaPrecioUnitario= v_CostoPromedio;
			v_SalidaTotal= ROUND((v_SalidaPrecioUnitario*v_SalidaCantidad),5);
		END IF;
		v_auxFormula= (v_ExistenciaCantidad*v_CostoPromedio)+(v_EntradaCantidad*v_EntradaPrecioUnitario)-(v_SalidaCantidad*v_SalidaPrecioUnitario);
		v_ExistenciaCantidad= v_ExistenciaCantidad + v_EntradaCantidad - v_SalidaCantidad;
		IF(v_ExistenciaCantidad<>0)THEN
			v_auxFormula= v_auxFormula/(v_ExistenciaCantidad);
			v_CostoPromedio= ROUND(v_auxFormula,5);
		END IF;
		IF (f1.entrada_salida='E') THEN
			IF(f1.entrada_salida_origen='S') THEN
				update isos.kardex
				set importe_costo= ROUND((v_CostoPromedio * unidad_medida_cantidad*cantidad/tasa_cambio),5)
				WHERE id_kardex= f1.id_kardex;
			ELSE

			END IF;
		ELSE
			IF(f1.entrada_salida_origen='S') THEN
				update isos.kardex
				set importe_costo= ROUND((v_CostoPromedio * unidad_medida_cantidad*cantidad/tasa_cambio),5)
				WHERE id_kardex= f1.id_kardex;
			ELSE
				update isos.kardex
				set importe_costo= ROUND((v_CostoPromedio * unidad_medida_cantidad*cantidad/tasa_cambio),5)
				WHERE id_kardex= f1.id_kardex;
			END IF;
		END IF;
		-- insert into isos._demo(b,c,d) values(v_EntradaCantidad ,v_SalidaCantidad,v_ExistenciaCantidad);
		END;
	END LOOP;
	IF(v_CostoPromedio is not null) THEN
		UPDATE isos.producto_unidadmedida SET precio_costo= ROUND(cast((v_CostoPromedio * cantidad) as numeric),5)
		WHERE cod_producto= f0.cod_producto and id_empresa= p_id_empresa;
        --insert into isos._demo(b,c,d) values( f0.cod_producto,0,0,0);
	END IF;
END LOOP;
RETURN TRUE;
END;
$_$;


--
-- Name: fn_regularizar_flete(integer, integer, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_regularizar_flete(p_id_empresa integer, p_id_compra integer, p_usuario character varying) RETURNS boolean
    LANGUAGE plpgsql
    AS $_$
DECLARE
	p_id_empresa alias for $1;
	p_id_compra alias for $2;
	p_usuario alias for $3;
	-- local
	r_c record;
	r_c_item record;
	r_cf_item record;
	v_cantidad numeric :=0;
	v_items numeric :=0;
	v_items_verified numeric :=0;
	v_flete_total numeric :=0;
	v_new_flete numeric :=0;
BEGIN
    FOR r_c IN (SELECT * FROM isos.compra c WHERE c.id_empresa= p_id_empresa AND c.id_compra=p_id_compra) LOOP
    	FOR r_c_item IN (SELECT cd.id_compra, cd.id_empresa, cd.cod_producto, cd.id_unidadmedida, cd.tasa_cambio, 
    	SUM(cd.peso_total) _peso_total, SUM(cd.cantidad) _cantidad, SUM(cd.importe_flete) _importe_flete
    	FROM isos.compra_detalle cd 
    	WHERE cd.id_compra=r_c.id_compra
    	GROUP BY cd.id_compra, cd.id_empresa, cd.cod_producto, cd.id_unidadmedida, cd.tasa_cambio) LOOP
        	v_items= v_items + 1;
        	v_cantidad:=0;
        	v_flete_total:=0;
        	v_new_flete:=0;
		--RAISE NOTICE 'guia: %', r_g.serie || '-' || r_g.correlativo;
		FOR r_cf_item IN ( SELECT cfi.id_empresa, cfi.cod_producto, cfi.id_unidadmedida,
		    SUM(cfi.cantidad) _cantidad, SUM(cfi.peso_total) _peso_total, SUM(cfi.importe_flete) _importe_flete
		FROM isos.compra_flete_item cfi
		INNER JOIN isos.compra_flete cf  ON (cfi.id_compra_flete=cf.id_compra_flete)
		INNER JOIN isos.compra c ON (cf.id_compra=c.id_compra)
		WHERE c.id_compra=r_c_item.id_compra
		AND cfi.id_empresa=r_c_item.id_empresa
		AND cfi.cod_producto=r_c_item.cod_producto
		AND cfi.id_unidadmedida=r_c_item.id_unidadmedida
		GROUP BY cfi.id_empresa, cfi.cod_producto, cfi.id_unidadmedida
		) LOOP
			v_flete_total= v_flete_total + r_cf_item._importe_flete;
			v_cantidad= v_cantidad + r_cf_item._cantidad;
		END LOOP;
		v_new_flete= v_flete_total + (r_c_item._importe_flete*(r_c_item._cantidad-v_cantidad))/r_c_item._cantidad;
		--RAISE NOTICE 'regularizado: %', v_cantidad || ' * '|| r_c_item._cantidad;
		--RAISE NOTICE 'v_new_flete, v_flete_total: %', v_new_flete || ' * '|| v_flete_total;
		IF(v_cantidad=r_c_item._cantidad)THEN
			v_items_verified= v_items_verified + 1;
		END IF;
    	END LOOP;
    	--RAISE NOTICE 'v_items,v_items_verified : %', v_items || ' * '|| v_items_verified;
        IF(v_items=v_items_verified)THEN
		UPDATE isos.compra SET es_fleteprocesado= 1 WHERE id_compra= r_c.id_compra;
		RETURN true;
	ELSE
		UPDATE isos.compra SET es_fleteprocesado= 0 WHERE id_compra= r_c.id_compra;
        END IF;
    END LOOP;
RETURN FALSE;
END;
$_$;


--
-- Name: fn_regularizar_transito(integer, integer, character varying); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_regularizar_transito(p_id_empresa integer, p_id_compra integer, p_usuario character varying) RETURNS boolean
    LANGUAGE plpgsql
    AS $_$
DECLARE
	p_id_empresa alias for $1;
	p_id_compra alias for $2;
	p_usuario alias for $3;
	r_c record;
	r_g record;
	r_t record;
	r_g_item record;
	r_t_item record;
	r_item record;
	v_cantidad numeric :=0;
    v_items numeric :=0;
    v_items_verified numeric :=0;
    v_fecha_last date;
BEGIN
    FOR r_c IN (SELECT * FROM isos.compra c 
    WHERE c.id_empresa= p_id_empresa 
    AND c.id_compra=p_id_compra
    AND c.en_transito=1) LOOP
    	FOR r_item IN (SELECT * FROM isos.compra_detalle cd WHERE cd.id_compra=r_c.id_compra) LOOP
        	v_items= v_items + 1;
        	v_cantidad:=0;
        	--RAISE NOTICE 'item: %', r_item.cod_producto || ',' || r_item.cantidad || ',' || r_item.id_unidadmedida;
        	FOR r_g IN (SELECT * FROM isos.guia_recepcion g WHERE g.id_compra=r_c.id_compra ORDER BY g.fecha ASC) LOOP
			v_fecha_last= r_g.fecha;
			--RAISE NOTICE 'guia: %', r_g.serie || '-' || r_g.correlativo;
			FOR r_g_item IN (SELECT * FROM isos.guia_recepcion_item gi 
			WHERE gi.id_guia=r_g.id_guia AND gi.id_empresa=r_item.id_empresa 
			AND gi.cod_producto=r_item.cod_producto AND gi.id_unidadmedida=r_item.id_unidadmedida) LOOP
				v_cantidad= v_cantidad + r_g_item.cantidad;
    			END LOOP;
    		END LOOP;
    		FOR r_t IN (SELECT * FROM isos.transferencia t WHERE t.id_compra=r_c.id_compra ORDER BY t.fecha ASC) LOOP
			v_fecha_last= r_t.fecha;
			FOR r_t_item IN (SELECT * FROM isos.transferencia_detalle td 
			WHERE td.id_transferencia=r_t.id_transferencia AND td.id_empresa=r_item.id_empresa 
			AND td.cod_producto=r_item.cod_producto AND td.id_unidadmedida=r_item.id_unidadmedida) LOOP
				v_cantidad= v_cantidad + r_t_item.cantidad;
    			END LOOP;
    		END LOOP;
		if(v_cantidad=r_item.cantidad)then
			v_items_verified= v_items_verified + 1;
			--RAISE NOTICE 'regularizado: %', v_cantidad;
		end if;
    	END LOOP;
        IF(v_items=v_items_verified)THEN
            update isos.compra set cierre_transito=v_fecha_last where id_compra=r_c.id_compra;
        	RETURN true;
        END IF;
    END LOOP;
RETURN FALSE;
END;
$_$;


--
-- Name: fn_total_pago_pedido_venta(integer, integer); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_total_pago_pedido_venta(p_id_empresa integer, p_id_pedido_venta integer) RETURNS numeric
    LANGUAGE plpgsql
    AS $$
DECLARE 
v_total_pago numeric:=0;
BEGIN
v_total_pago=(
SELECT COALESCE(SUM(t1._monto),0) _total_pago 
  FROM ( 
    SELECT CASE WHEN pv.id_tipomoneda=mp.id_tipomoneda THEN
     mp.monto_cobrado
    ELSE 
     CASE WHEN tm.es_base=1 THEN
      mp.monto_cobrado*mp.tasa_cambio
    ELSE
     mp.monto_cobrado/mp.tasa_cambio
    END
    END AS _monto, 
    pv.id_pedido_venta,
    mp.id_movimiento, 
    mp.item 
    FROM isos.pedido_venta pv
    INNER JOIN isos.movimiento mo ON (mo.id_referencia=pv.id_pedido_venta AND mo.tabla_referencia='PEDIDO_VENTA' AND mo.id_empresa= p_id_empresa) 
    INNER JOIN isos.movimiento_pago mp ON (mp.id_movimiento=mo.id_movimiento) 
    INNER JOIN isos.tipo_moneda tm ON (pv.id_tipomoneda=tm.id_tipomoneda) 
    WHERE pv.id_pedido_venta= p_id_pedido_venta
  ) t1 
  GROUP BY t1.id_pedido_venta
);
RETURN v_total_pago;
END;
$$;


--
-- Name: fn_total_pago_venta(integer, integer); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fn_total_pago_venta(p_id_empresa integer, p_id_venta integer) RETURNS numeric
    LANGUAGE plpgsql
    AS $$
DECLARE 
v_total_pago_venta numeric:=0;
BEGIN

v_total_pago_venta=(
SELECT COALESCE(SUM(T1.monto),0) total_pago FROM 
( 
SELECT 
CASE WHEN v0.id_tipomoneda=mp0.id_tipomoneda THEN
 mp0.monto_cobrado
ELSE 
 case when tm0.es_base=1 then
  mp0.monto_cobrado*mp0.tasa_cambio
else
 mp0.monto_cobrado/mp0.tasa_cambio
end
END AS monto, 
v0.total, mp0.id_movimiento, mp0.item 
FROM isos.venta v0
LEFT JOIN isos.movimiento mo0 ON (mo0.id_referencia=v0.id_venta AND mo0.tabla_referencia='VENTA' AND mo0.estado='A' AND mo0.id_empresa= p_id_empresa ) 
LEFT JOIN isos.movimiento_pago mp0 ON (mp0.id_movimiento=mo0.id_movimiento) 
LEFT JOIN isos.tipo_moneda tm0 ON (v0.id_tipomoneda=tm0.id_tipomoneda) 
WHERE v0.id_venta= p_id_venta 
UNION 
SELECT 
CASE WHEN v1.id_tipomoneda=mp1.id_tipomoneda THEN
 mp1.monto_cobrado
ELSE 
 case when tm1.es_base=1 then
  mp1.monto_cobrado*mp1.tasa_cambio
else
 mp1.monto_cobrado/mp1.tasa_cambio
end
END AS monto, 
v1.total, mp1.id_movimiento, mp1.item 
FROM isos.venta v1 
LEFT JOIN isos.credito cr on (cr.id_venta=v1.id_venta AND cr.estado='A') 
LEFT JOIN isos.movimiento mo1 ON (mo1.id_referencia=cr.id_credito AND mo1.tabla_referencia='CREDITO' AND mo1.estado='A' AND mo1.id_empresa= p_id_empresa) 
LEFT JOIN isos.movimiento_pago mp1 ON (mp1.id_movimiento=mo1.id_movimiento) 
LEFT JOIN isos.tipo_moneda tm1 ON (cr.id_tipomoneda=tm1.id_tipomoneda) 
WHERE v1.id_venta= p_id_venta   
) T1 
GROUP BY T1.total );
RETURN v_total_pago_venta;
END;
$$;


--
-- Name: fntrg_documento(); Type: FUNCTION; Schema: isos; Owner: -
--

CREATE FUNCTION isos.fntrg_documento() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
DECLARE
v_id int;
BEGIN

	IF (NEW.id_puntoventa is null AND NEW.id_localidad is null)  THEN

		select into v_id count(id_documento) from isos.documento 
		where estado = 'A' and id_localidad is null and id_puntoventa is null and id_tipodocumento = NEW.id_tipodocumento;

		IF v_id >0 THEN
			RAISE EXCEPTION 'El documento ya existe, verifique datos.';
		END IF;

	END IF;
 
	RETURN NEW;
END;
$$;


--
-- Name: fact2019_cabecerafactura2(character varying, character varying, character varying); Type: FUNCTION; Schema: public; Owner: -
--

CREATE FUNCTION public.fact2019_cabecerafactura2(codempresax character varying, fechaemisionx character varying, estadodocx character varying) RETURNS refcursor
    LANGUAGE plpgsql
    AS $$
DECLARE
      cabecera refcursor; 
      fechaInicio VARCHAR(100);
      fechaFin VARCHAR(1000);

BEGIN  
if(LENGTH(fechaemisionx)>10) THEN
			select b[1] ,b[2] into fechaInicio,fechaFin
			FROM 
			(select regexp_split_to_array(fechaemisionx , '|'))as fecha(b);
	 ELSE
	 	fechaInicio:=fechaemisionx;
	 	fechaFin:=fechaemisionx;
	end if;
if codempresax='68' then 
open cabecera for 
SELECT
	seriedoc || '-' || numerodoc AS secuencia,
	'F' || seriedoc AS SERIE,
	numerodoc AS CORRELATIVO,
	fechaemis AS fechaemision,
	'00:00:00' AS horaemision,
	case when ROUND(imppercep,2)=0 THEN
'0101'
ELSE
'2001'
end  AS codigooperacion,
	'01' AS tipodoc,
	'PEN' AS moneda,
	TRIM (docclte) AS doccliente,
	tipodocclt AS tipodoccliente,
	TRIM (nomclte) AS desccliente,
  trim(regexp_replace(DIRCLTE, '', ' ')) AS direccion,
	ROUND((impnetvta+impdscto),2) AS ventabruta,
	ROUND(impdscto,2) AS dctototal,
	ROUND(impigv,2) AS igvtotal,
	ROUND(impnetvta,2) AS gravadas,
	ROUND(impinafe,2) AS inafectas,
	ROUND(impexone,2) AS exoneradas,
	coalesce(ROUND((SELECT sum(case when impnetvta=0 and flgpromo='P' 
       then 	round((round(precuni,2)/ qfaccon )*((cantidad*qfaccon)+resto),2) else 0 end) as gratuitas 
				 FROM fedetalle det 
				 WHERE 1 = 1
							 AND idempresa  = cab.idempresa
							 AND seriedoc  = cab.seriedoc
								and numerodoc	=cab.numerodoc
and ((cantidad*qfaccon)+resto)>0
AND tipodoc = 'FCVTA' ),2),0) as gratuitas,  
 --0 as gratuitas,
 
	ROUND((impnetvta+impigv+imppercep),2) AS montototal,
	0 AS ivap,
	ROUND(imppercep,2) AS percepcion,
	CASE WHEN flg1 IS NULL THEN 'NOGENERADO' ELSE flg1 
	END AS ESTADODOC,
	flg2 AS ESTADOSUNAT,
	ROUND(imptotvta,2) as importepagar,
	importeenletras(ROUND(imptotvta,2)) AS IMPORTEENLETRAS,
	'S/' as tipomoneda,
	baseimponible
FROM fecabecera cab
WHERE
	1 = 1
	AND idempresa || '' = codempresax
	AND tipodoc = 'FCVTA'
	AND fechaemis 
    BETWEEN to_date(fechaInicio,'yyyy-mm-dd') AND to_date(fechaFin,'yyyy-mm-dd')
 and seriedoc IN ('515','456', '425', '464','476','477','115')
	 --and numerodoc=''43022'';--''43012''
	--and flg1=''1'' ;--13545
and (CASE WHEN flg1 IS NULL 
          THEN 'NOGENERADO' 
          WHEN LENGTH(TRIM(flg1))=0
          THEN 'NOGENERADO'  
          ELSE flg1 END)=estadodocx;
 
elsif codempresax='69' THEN


open cabecera for 

SELECT
	seriedoc || '-' || numerodoc AS secuencia,
	'F' || seriedoc AS SERIE,
	numerodoc AS CORRELATIVO,
	fechaemis AS fechaemision,
	'00:00:00' AS horaemision,
	'0101' AS codigooperacion,
	'01' AS tipodoc,
	'PEN' AS moneda,
	TRIM (docclte) AS doccliente,
	tipodocclt AS tipodoccliente,
	TRIM (nomclte) AS desccliente,
  regexp_replace(DIRCLTE, '', ' ') AS direccion,
	ROUND((impnetvta+impdscto),2) AS ventabruta,
	ROUND(impdscto,2) AS dctototal,
	ROUND(impigv,2) AS igvtotal,
	0 AS GRAVADAS,
	--impnetvta AS gravadas,
	ROUND(impinafe,2) AS inafectas,
	ROUND(impexone,2) AS exoneradas,
	coalesce(ROUND((SELECT  
	sum(case when impnetvta=0 and flgpromo='P'
     then round((round(precuni,2)/ qfaccon )*((cantidad*qfaccon)+resto),2) 
     else 0 end) as gratuitas 
	FROM fedetalle det
	WHERE 1 = 1
		AND idempresa  = cab.idempresa
		AND seriedoc = cab.seriedoc
		and numerodoc=cab.numerodoc
		and ((cantidad*qfaccon)+resto)>0
		AND tipodoc = 'FCVTA' ),2),0) as gratuitas,
		ROUND((impnetvta+impigv+imppercep),2) AS montototal, 
		0 AS ivap,
		ROUND(imppercep,2) AS percepcion,
		CASE WHEN flg1 IS NULL THEN 'NOGENERADO' ELSE flg1 END AS ESTADODOC,
		flg2 AS ESTADOSUNAT,
		round(round((impnetvta +impigv),2)+ROUND(imppercep, 2),2)  AS importepagar,
		importeenletras(round(round((impnetvta +impigv),2)+ROUND(imppercep, 2),2)) 
        AS IMPORTEENLETRAS,
		'S/' as tipomoneda,
		baseimponible
		FROM fecabecera cab
		WHERE 1 = 1
			AND idempresa || '' = codempresax
			AND tipodoc = 'FCVTA'
			AND fechaemis 
            BETWEEN to_date(fechaInicio,'yyyy-mm-dd') 
            AND to_date(fechaFin,'yyyy-mm-dd')
			and seriedoc in ('673','465','425','464','576')
			--and numerodoc=''27400'';
--and flg1=''1'' ;
			and (CASE WHEN flg1 IS NULL 
          THEN 'NOGENERADO' 
          WHEN LENGTH(TRIM(flg1))=0
          THEN 'NOGENERADO'  
          ELSE flg1 END)=estadodocx order by 2,3;

end if;
RETURN cabecera;
END;
$$;


SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: caja; Type: TABLE; Schema: caja; Owner: -
--

CREATE TABLE caja.caja (
    id_caja bigint NOT NULL,
    id_empresa integer,
    id_localidad integer,
    id_punto_venta integer,
    fecha_apertura date,
    hora_apertura time without time zone,
    usuario_apertura character varying(15),
    usuario_asignado character varying(15),
    usuario_cierre character varying(15),
    fecha_cierre date,
    hora_cierre time without time zone,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character varying(15)
);


--
-- Name: caja_item; Type: TABLE; Schema: caja; Owner: -
--

CREATE TABLE caja.caja_item (
    id_caja bigint NOT NULL,
    id_denominacion integer NOT NULL,
    item smallint NOT NULL,
    denominacion_nombre character varying(100),
    denominacion_valor numeric,
    monto numeric,
    cantidad numeric,
    id_empresa_cuenta integer
);


--
-- Name: caja_transaccion; Type: TABLE; Schema: caja; Owner: -
--

CREATE TABLE caja.caja_transaccion (
    id_caja bigint NOT NULL,
    id_transaccion bigint NOT NULL
);


--
-- Name: denominacion; Type: TABLE; Schema: caja; Owner: -
--

CREATE TABLE caja.denominacion (
    id_denominacion integer NOT NULL,
    nombre character varying(50) NOT NULL,
    valor numeric NOT NULL,
    id_denominacion_padre integer,
    id_tipo_moneda integer NOT NULL
);


--
-- Name: chat; Type: TABLE; Schema: chat; Owner: -
--

CREATE TABLE chat.chat (
    id_chat integer NOT NULL,
    nombre character varying(255) NOT NULL,
    mensaje text NOT NULL,
    fecha timestamp without time zone,
    id_usuario integer,
    id_contacto integer,
    es_archivo smallint DEFAULT 0,
    file_mime character varying(100),
    file_name character varying(250),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    leido smallint DEFAULT 0 NOT NULL
);


--
-- Name: COLUMN chat.id_usuario; Type: COMMENT; Schema: chat; Owner: -
--

COMMENT ON COLUMN chat.chat.id_usuario IS 'Usuario que escribe el mensaje';


--
-- Name: COLUMN chat.id_contacto; Type: COMMENT; Schema: chat; Owner: -
--

COMMENT ON COLUMN chat.chat.id_contacto IS 'contacto del usuario, a quien va dirigido el mensaje';


--
-- Name: contacto; Type: TABLE; Schema: chat; Owner: -
--

CREATE TABLE chat.contacto (
    id_contacto integer NOT NULL,
    id_usuario integer NOT NULL,
    id_usuariocontacto integer NOT NULL,
    estado character varying(15) NOT NULL
);


--
-- Name: empresa_contabilidad; Type: TABLE; Schema: conta; Owner: -
--

CREATE TABLE conta.empresa_contabilidad (
    id_empresa integer NOT NULL,
    id_regimen smallint NOT NULL
);


--
-- Name: regimen; Type: TABLE; Schema: conta; Owner: -
--

CREATE TABLE conta.regimen (
    id_regimen smallint NOT NULL,
    nombre character varying(100),
    siglas character varying(5)
);


--
-- Name: tipo_documento; Type: TABLE; Schema: cpe; Owner: -
--

CREATE TABLE cpe.tipo_documento (
    id_tipodocumento integer NOT NULL,
    nombre character varying(100) NOT NULL,
    codigo_sunat character varying(2) NOT NULL,
    estado character(1) NOT NULL
);


--
-- Name: file; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file (
    id_file bigint NOT NULL,
    nombre character varying(200) NOT NULL,
    tipo_mime character varying(20) NOT NULL,
    ruta character varying NOT NULL,
    fecha_creacion timestamp without time zone DEFAULT now() NOT NULL,
    usuario_creacion character varying(15),
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    thumb character varying
);


--
-- Name: file_compra; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_compra (
    id_file bigint NOT NULL,
    id_compra bigint NOT NULL
);


--
-- Name: file_compraguia; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_compraguia (
    id_file bigint NOT NULL,
    id_compraguia bigint NOT NULL
);


--
-- Name: file_empresa; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_empresa (
    id_file bigint NOT NULL,
    id_empresa integer NOT NULL,
    uso character varying(20),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL
);


--
-- Name: file_movimientopago; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_movimientopago (
    id_file bigint NOT NULL,
    id_movimiento bigint NOT NULL,
    item smallint NOT NULL
);


--
-- Name: file_nota_credito; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_nota_credito (
    id_file bigint NOT NULL,
    id_nota_credito bigint NOT NULL
);


--
-- Name: file_nota_debito; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_nota_debito (
    id_file bigint NOT NULL,
    id_nota_debito bigint NOT NULL
);


--
-- Name: file_orden_trabajo; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_orden_trabajo (
    id_file bigint NOT NULL,
    id_orden_trabajo bigint NOT NULL
);


--
-- Name: file_pedido_venta; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_pedido_venta (
    id_file bigint NOT NULL,
    id_pedido_venta bigint NOT NULL
);


--
-- Name: file_recepciondetalle; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_recepciondetalle (
    id_file bigint NOT NULL,
    id_recepcion bigint NOT NULL,
    item smallint NOT NULL
);


--
-- Name: file_recibo_honorarios; Type: TABLE; Schema: file; Owner: -
--

CREATE TABLE file.file_recibo_honorarios (
    id_file bigint NOT NULL,
    id_recibo_honorarios bigint NOT NULL
);


--
-- Name: _demo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos._demo (
    a integer NOT NULL,
    b character varying(100),
    c character varying(100),
    d character varying(100)
);


--
-- Name: _demo_a_seq; Type: SEQUENCE; Schema: isos; Owner: -
--

CREATE SEQUENCE isos._demo_a_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: _demo_a_seq; Type: SEQUENCE OWNED BY; Schema: isos; Owner: -
--

ALTER SEQUENCE isos._demo_a_seq OWNED BY isos._demo.a;


--
-- Name: actividad_economica; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.actividad_economica (
    id_actividadeconomica integer NOT NULL,
    codigo_ciiu character(4) NOT NULL,
    nombre character varying(200) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    CONSTRAINT ck_actividad_economica_estado CHECK (((estado = 'A'::bpchar) OR (estado = 'I'::bpchar)))
);


--
-- Name: COLUMN actividad_economica.id_actividadeconomica; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.id_actividadeconomica IS 'El codigo unico de la tabla actividad_economica';


--
-- Name: COLUMN actividad_economica.codigo_ciiu; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.codigo_ciiu IS 'Es un codigo proporcionado por la sunat referente una actividad economica';


--
-- Name: COLUMN actividad_economica.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.nombre IS 'Es el nombre de la actividad economica';


--
-- Name: COLUMN actividad_economica.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN actividad_economica.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN actividad_economica.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN actividad_economica.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN actividad_economica.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.actividad_economica.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: almacen_motivo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.almacen_motivo (
    id_motivo integer NOT NULL,
    nombre character varying(100),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL
);


--
-- Name: COLUMN almacen_motivo.id_motivo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.almacen_motivo.id_motivo IS 'Codigo unico de la tabla almacen motivo';


--
-- Name: COLUMN almacen_motivo.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.almacen_motivo.nombre IS 'Nombre que se le asigna al motivo';


--
-- Name: COLUMN almacen_motivo.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.almacen_motivo.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: clase; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.clase (
    id_clase integer NOT NULL,
    id_linea integer NOT NULL,
    nombre character varying(50) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    CONSTRAINT ck_subclase CHECK (((estado = 'A'::bpchar) OR (estado = 'I'::bpchar)))
);


--
-- Name: COLUMN clase.id_clase; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.id_clase IS 'Codigo autogenerado de la clase';


--
-- Name: COLUMN clase.id_linea; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.id_linea IS 'Clave principal que hace referencia a la tabla LINEA';


--
-- Name: COLUMN clase.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.nombre IS 'Es el nombre de la clase';


--
-- Name: COLUMN clase.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN clase.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN clase.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN clase.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN clase.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.clase.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: clasificacion_compra; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.clasificacion_compra (
    id_clasificacion_compra integer NOT NULL,
    numero_tabla integer NOT NULL,
    codigo character varying(5) NOT NULL,
    nombre character varying(250),
    descripcion character varying(100),
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15)
);


--
-- Name: cliente; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.cliente (
    id_cliente integer NOT NULL,
    id_tipoidentidad integer NOT NULL,
    numero_identidad character varying(15) NOT NULL,
    nombre character varying(150),
    apellido_paterno character varying(100),
    apellido_materno character varying(100),
    direccion character varying(150),
    telefono character varying(50),
    correo character varying(150),
    fecha_nacimiento date,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    razon_social character varying(150),
    id_tipocliente integer,
    estado character(1) DEFAULT 'A'::bpchar,
    codigo_ubigeo character(6),
    es_agente_retencion smallint
);


--
-- Name: COLUMN cliente.id_cliente; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.id_cliente IS 'Clave unica de la tabla cliente
';


--
-- Name: COLUMN cliente.id_tipoidentidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.id_tipoidentidad IS 'Clave principal que hace referencia a la tabla TIPO_IDENTIDAD';


--
-- Name: COLUMN cliente.numero_identidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.numero_identidad IS 'Campo que registra el numero de documento de identidad ';


--
-- Name: COLUMN cliente.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.nombre IS 'Nombres del cliente';


--
-- Name: COLUMN cliente.apellido_paterno; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.apellido_paterno IS 'Apellido Paterno del cliente';


--
-- Name: COLUMN cliente.apellido_materno; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.apellido_materno IS 'Apellido materno del cliente';


--
-- Name: COLUMN cliente.direccion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.direccion IS 'Direccion del Cliente';


--
-- Name: COLUMN cliente.telefono; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.telefono IS 'Telefono del cliente';


--
-- Name: COLUMN cliente.correo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.correo IS 'Correo del cliente';


--
-- Name: COLUMN cliente.fecha_nacimiento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.fecha_nacimiento IS 'Fecha de nacimiento del cliente';


--
-- Name: COLUMN cliente.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registrO';


--
-- Name: COLUMN cliente.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN cliente.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN cliente.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN cliente.razon_social; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.razon_social IS 'Razon social del cliente
';


--
-- Name: COLUMN cliente.id_tipocliente; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.id_tipocliente IS 'Clave principal que hace referencia a la tabla TIPO_CLIENTE';


--
-- Name: COLUMN cliente.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.cliente.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: cliente_empresa; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.cliente_empresa (
    id_cliente integer NOT NULL,
    id_empresa integer NOT NULL,
    credito_asignado double precision,
    credito_actual double precision
);


--
-- Name: compra; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra (
    id_compra integer NOT NULL,
    serie character varying(20) NOT NULL,
    correlativo character varying(11) NOT NULL,
    id_empresa integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_tipopago integer NOT NULL,
    id_tipodocumento integer NOT NULL,
    observacion character varying(500),
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    igv double precision NOT NULL,
    cod_estado character(2) NOT NULL,
    estado character(1) NOT NULL,
    id_ordencompra integer,
    tasa_cambio double precision NOT NULL,
    igv_monto double precision NOT NULL,
    total double precision NOT NULL,
    fecha date NOT NULL,
    id_localidad integer NOT NULL,
    proveedor_nombre character varying(150),
    proveedor_direccion character varying(250),
    fecha_anulacion timestamp without time zone,
    fecha_vencimiento timestamp without time zone,
    fecha_recepcion timestamp without time zone,
    bien_servicio character(1) DEFAULT 'B'::bpchar NOT NULL,
    es_flete smallint DEFAULT 0 NOT NULL,
    es_fleteprocesado smallint DEFAULT 0 NOT NULL,
    id_compraflete bigint,
    procesado_sunat smallint DEFAULT 0,
    id_clasificacion_compra integer,
    tipo_almacen character varying(10) NOT NULL,
    con_flete smallint DEFAULT 0,
    importe_bruto double precision,
    descuento_bruto double precision,
    id_declaracion integer,
    valor_venta_gravado numeric,
    valor_venta_exonerado numeric,
    valor_venta_gratuito numeric,
    valor_venta_inafecto numeric,
    motivo_anulacion character varying(250),
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    total_otros_cargos numeric NOT NULL,
    aceptado_sunat smallint,
    tipo_cambio_sunat numeric NOT NULL,
    descuento_global numeric NOT NULL,
    descuento_total numeric NOT NULL,
    id_proveedor bigint NOT NULL,
    en_transito smallint DEFAULT 0 NOT NULL,
    cierre_transito timestamp without time zone
);


--
-- Name: COLUMN compra.id_compra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.id_compra IS 'Clave unica de la tabla compra';


--
-- Name: COLUMN compra.serie; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.serie IS 'Serie que se le asignara a la compra';


--
-- Name: COLUMN compra.correlativo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.correlativo IS 'Correlativo que se le asignara a la compra';


--
-- Name: COLUMN compra.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN compra.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.id_tipomoneda IS 'Clave principal que hace referencia a la tabla TIPO_MONEDA';


--
-- Name: COLUMN compra.id_tipopago; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.id_tipopago IS 'Clave principal que hace referencia a la tabla TIPO_PAGO';


--
-- Name: COLUMN compra.id_tipodocumento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.id_tipodocumento IS 'Clave principal que hace referencia a la tabla TIPO_DOCUMENTO';


--
-- Name: COLUMN compra.observacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.observacion IS 'Observacion de la compra';


--
-- Name: COLUMN compra.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro
';


--
-- Name: COLUMN compra.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN compra.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN compra.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN compra.igv; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.igv IS 'Igv con que se registra la compra';


--
-- Name: COLUMN compra.cod_estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.cod_estado IS 'Codigo del estado de la compra (Emitido, aprobado, recibido, anulado, enviado), referencia de tabla ESTADO ';


--
-- Name: COLUMN compra.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN compra.id_ordencompra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.id_ordencompra IS 'Clave principal que hace referencia a la tabla ORDEN DE COMPRA';


--
-- Name: COLUMN compra.tasa_cambio; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.tasa_cambio IS 'Tasa de cambio del tipo de moneda elegida a diferencia de la moneda base';


--
-- Name: COLUMN compra.igv_monto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.igv_monto IS 'Igv pertenecianete a al total de la compra';


--
-- Name: COLUMN compra.total; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.total IS 'Total de la compra';


--
-- Name: COLUMN compra.procesado_sunat; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra.procesado_sunat IS 'No procesado:0
Procesado:1';


--
-- Name: compra_anticipo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra_anticipo (
    id_compra integer NOT NULL,
    id_anticipo integer NOT NULL,
    total numeric
);


--
-- Name: compra_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra_detalle (
    id_compra integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad numeric NOT NULL,
    valor_unitario double precision NOT NULL,
    importe_flete numeric NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    tasa_cambio numeric NOT NULL,
    item smallint NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta numeric NOT NULL,
    igv_monto numeric NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer NOT NULL
);


--
-- Name: COLUMN compra_detalle.id_compra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.id_compra IS 'Clave principal y unica que hace referencia a la tabla COMPRA';


--
-- Name: COLUMN compra_detalle.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN compra_detalle.cod_producto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.cod_producto IS 'Clave principal que hace referencia a la tabla PRODUCTO';


--
-- Name: COLUMN compra_detalle.id_unidadmedida; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.id_unidadmedida IS 'Clave principal que hace referencia a la tabla UNIDAD_MEDIDA';


--
-- Name: COLUMN compra_detalle.unidad_medida; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.unidad_medida IS 'Unidad de medida del producto comprado';


--
-- Name: COLUMN compra_detalle.cantidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.cantidad IS 'Es la cantidad del producto seleccionado para la compra';


--
-- Name: COLUMN compra_detalle.valor_unitario; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.valor_unitario IS 'Valor unitario del producto seleccionado para la compra';


--
-- Name: COLUMN compra_detalle.importe_flete; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.importe_flete IS 'Flete total por la compra realizada';


--
-- Name: COLUMN compra_detalle.porcentaje_descuento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.porcentaje_descuento IS 'Porcentaje de descuento asignada a la compra';


--
-- Name: COLUMN compra_detalle.igv; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_detalle.igv IS 'Es el IGV que se tomara en cuenta para registrar la compra';


--
-- Name: compra_detraccion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra_detraccion (
    id_compra integer NOT NULL,
    id_concepto_detraccion integer NOT NULL,
    monto numeric NOT NULL,
    proporcion numeric NOT NULL,
    monto_redondeado numeric,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    numero_operacion character varying(50),
    cod_estado character(2) NOT NULL
);


--
-- Name: compra_flete; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra_flete (
    id_compra_flete bigint NOT NULL,
    id_compra integer NOT NULL,
    id_flete integer NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL
);


--
-- Name: compra_flete_item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra_flete_item (
    id_compra_flete bigint NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    item smallint NOT NULL,
    cantidad numeric NOT NULL,
    peso_total double precision NOT NULL,
    importe_flete numeric NOT NULL
);


--
-- Name: compra_guia; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra_guia (
    id_compra integer NOT NULL,
    tipo character varying(13) NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    id_compraguia bigint NOT NULL
);


--
-- Name: COLUMN compra_guia.tipo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.compra_guia.tipo IS 'REMITENTE,TRANSPORTISTA';


--
-- Name: compra_nota_credito; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.compra_nota_credito (
    id_compra integer NOT NULL,
    id_nota_credito integer NOT NULL
);


--
-- Name: concepto_detraccion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.concepto_detraccion (
    id_concepto_detraccion integer NOT NULL,
    id_empresa integer NOT NULL,
    nombre character varying(250) NOT NULL,
    proporcion numeric NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) NOT NULL,
    monto_minimo numeric NOT NULL,
    codigo_sunat character varying(3),
    codigo_ose character varying(2),
    en_compra smallint NOT NULL,
    en_venta smallint NOT NULL
);


--
-- Name: condicion_venta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.condicion_venta (
    id_condicionventa integer NOT NULL,
    nombre character varying(50) NOT NULL,
    condicion character varying(7) NOT NULL,
    id_empresa integer NOT NULL,
    dias_vencimiento smallint NOT NULL,
    tasa_interes numeric NOT NULL,
    estado character(1) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15)
);


--
-- Name: COLUMN condicion_venta.condicion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.condicion_venta.condicion IS '[CREDITO|CONTADO]';


--
-- Name: contacto; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.contacto (
    id_contacto integer NOT NULL,
    id_referencia bigint NOT NULL,
    nombre character varying(100) NOT NULL,
    cargo character varying(20),
    telefono character varying(50),
    correo character varying(50),
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    tabla_referencia character varying(50)
);


--
-- Name: COLUMN contacto.id_contacto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.id_contacto IS 'codigo unico de contacto. es un dato autogenerado por el sistema.';


--
-- Name: COLUMN contacto.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.nombre IS 'nombre de contacto de un proveedor. es un dato obligatorio.';


--
-- Name: COLUMN contacto.cargo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.cargo IS 'cargo de contacto de un proveedor. es un dato opcional.';


--
-- Name: COLUMN contacto.telefono; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.telefono IS 'telefono de contacto de un proveedor. es un dato opcional.';


--
-- Name: COLUMN contacto.correo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.correo IS 'correo de contacto de un proveedor. es un dato opcional.';


--
-- Name: COLUMN contacto.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.fecha_creacion IS 'fecha de creacion del registro de contacto de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN contacto.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.usuario_creacion IS 'usuario de creacion del registro de contacto de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN contacto.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.fecha_modificacion IS 'fecha de modificacion del registro de contacto de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN contacto.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.usuario_modificacion IS 'usuario de modificacion del registro de contacto de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN contacto.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.contacto.estado IS 'estado del contacto de un proveedor en el sistema (activo/inactivo).  es un dato obligatorio.';


--
-- Name: credito; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.credito (
    id_credito bigint NOT NULL,
    id_empresa integer,
    id_venta integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    monto_origen double precision NOT NULL,
    monto_inicial double precision NOT NULL,
    monto_deuda double precision NOT NULL,
    taza_interes double precision NOT NULL,
    cuotas integer NOT NULL,
    ciclo character varying(50) NOT NULL,
    cantidad_ciclo integer NOT NULL,
    fecha timestamp without time zone NOT NULL,
    estado character(1) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    observacion character varying(200),
    id_cliente bigint NOT NULL,
    tasa_cambio double precision NOT NULL,
    cod_estado character(2) NOT NULL
);


--
-- Name: credito_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.credito_detalle (
    id_credito bigint NOT NULL,
    numero_cuota integer NOT NULL,
    fecha_pago date NOT NULL,
    monto double precision,
    tasa_interes double precision,
    cod_estado character(2) NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    fecha_cancelacion timestamp without time zone
);


--
-- Name: declaracion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.declaracion (
    id_declaracion integer NOT NULL,
    id_empresa integer,
    anio character(4),
    mes character(2),
    nombre character(33),
    uuid uuid[],
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    tipo character varying(10)
);


--
-- Name: departamento; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.departamento (
    codigo_departamento character(2) NOT NULL,
    nombre character varying(40) NOT NULL
);


--
-- Name: deuda; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.deuda (
    id_deuda bigint NOT NULL,
    id_empresa integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    monto_origen double precision NOT NULL,
    monto_inicial double precision NOT NULL,
    monto_deuda double precision NOT NULL,
    taza_interes double precision NOT NULL,
    cuotas integer NOT NULL,
    ciclo character varying(50) NOT NULL,
    cantidad_ciclo integer NOT NULL,
    fecha timestamp without time zone NOT NULL,
    estado character(1) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    observacion character varying(200),
    cod_estado character(2) NOT NULL,
    id_compra integer NOT NULL,
    id_proveedor bigint
);


--
-- Name: deuda_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.deuda_detalle (
    id_deuda bigint NOT NULL,
    numero_cuota integer NOT NULL,
    fecha_pago timestamp without time zone NOT NULL,
    monto double precision,
    tasa_interes double precision,
    cod_estado character(2) NOT NULL,
    ruta_adjunto character varying
);


--
-- Name: direccion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.direccion (
    id_direccion integer NOT NULL,
    direccion character varying(250) NOT NULL,
    referencia character varying(500),
    es_principal character(1),
    tabla_referencia character varying(50) NOT NULL,
    id_referencia integer,
    estado character(1),
    codigo_ubigeo character(6) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15)
);


--
-- Name: COLUMN direccion.tabla_referencia; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.direccion.tabla_referencia IS 'CLIENTE/PROVEEDOR';


--
-- Name: COLUMN direccion.id_referencia; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.direccion.id_referencia IS 'Codigo de la tabla de referencia';


--
-- Name: COLUMN direccion.codigo_ubigeo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.direccion.codigo_ubigeo IS 'Ubicacion geografica de la direccion';


--
-- Name: COLUMN direccion.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.direccion.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN direccion.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.direccion.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN direccion.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.direccion.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN direccion.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.direccion.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: distrito; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.distrito (
    codigo_distrito character(6) NOT NULL,
    codigo_provincia character(4),
    nombre character varying(40)
);


--
-- Name: documento; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.documento (
    id_documento integer NOT NULL,
    id_tipodocumento integer NOT NULL,
    id_localidad integer,
    numero_serie character varying(5) NOT NULL,
    numero_correlativo character varying(10) NOT NULL,
    numero_autorizacion character varying(25),
    numero_maximo_items integer NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    id_puntoventa integer,
    pagina_alto numeric(6,2),
    pagina_ancho numeric(6,2),
    tipo_letra character varying(100),
    nombre_configuracion character varying(100),
    CONSTRAINT ck_documento_estado CHECK (((estado = 'A'::bpchar) OR (estado = 'I'::bpchar)))
);


--
-- Name: COLUMN documento.id_documento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.id_documento IS 'Codigo autogenerado del documento';


--
-- Name: COLUMN documento.id_tipodocumento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.id_tipodocumento IS 'Clave principal que hace referencia a la tabla TIPO_DOCUMENTO';


--
-- Name: COLUMN documento.id_localidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.id_localidad IS 'Clave principal que hace referencia a la tabla ';


--
-- Name: COLUMN documento.numero_serie; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.numero_serie IS 'El numero de serie del documento identificado';


--
-- Name: COLUMN documento.numero_correlativo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.numero_correlativo IS 'Es el numero del correlativo actual';


--
-- Name: COLUMN documento.numero_autorizacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.numero_autorizacion IS 'Es un numero de autorizacion generado por la Sunat para los documnetos';


--
-- Name: COLUMN documento.numero_maximo_items; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.numero_maximo_items IS 'La cantidad maxima de items en el documento';


--
-- Name: COLUMN documento.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN documento.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN documento.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN documento.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla
';


--
-- Name: COLUMN documento.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro
';


--
-- Name: documento_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.documento_detalle (
    id_documento integer NOT NULL,
    id_item integer NOT NULL,
    x integer NOT NULL,
    y integer NOT NULL,
    ancho integer NOT NULL,
    tamano_fuente integer NOT NULL,
    imprimir smallint NOT NULL
);


--
-- Name: COLUMN documento_detalle.id_documento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento_detalle.id_documento IS 'Codigo del documento que se configurara para la impresion';


--
-- Name: COLUMN documento_detalle.id_item; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento_detalle.id_item IS 'Codigo de item que estan destinados a impresion';


--
-- Name: COLUMN documento_detalle.x; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento_detalle.x IS 'Longitud en el EJE X para impresion';


--
-- Name: COLUMN documento_detalle.y; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento_detalle.y IS 'Longitud en el EJE Y para impresion';


--
-- Name: COLUMN documento_detalle.tamano_fuente; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento_detalle.tamano_fuente IS 'Tamaño de fuente con que se configurara la impresion
';


--
-- Name: COLUMN documento_detalle.imprimir; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.documento_detalle.imprimir IS 'Estado que determinara 1: si Imprime o 0: no Imprime';


--
-- Name: egreso; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.egreso (
    id_egreso bigint NOT NULL,
    monto double precision NOT NULL,
    fecha timestamp without time zone NOT NULL,
    descripcion character varying NOT NULL,
    referencia character varying(150) NOT NULL,
    documento_referencia character varying(100) NOT NULL,
    num_doc_referencia character varying(50) NOT NULL,
    tipo character(1) NOT NULL,
    id_metodo_pago integer NOT NULL,
    id_concepto integer NOT NULL,
    id_caja integer NOT NULL,
    id_moneda integer NOT NULL,
    id_empresa integer NOT NULL
);


--
-- Name: empresa; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.empresa (
    id_empresa integer NOT NULL,
    ruc character(11) NOT NULL,
    razon_social character varying(100) NOT NULL,
    nombre_comercial character varying(100) NOT NULL,
    direccion character varying(100) NOT NULL,
    telefono character varying(50),
    representante character varying(100) NOT NULL,
    id_actividadeconomica integer NOT NULL,
    ubigeo character(6),
    src_logo character varying(100),
    id_lineadefecto integer,
    smtp_servidor character varying(150),
    smtp_puerto character varying(4),
    smtp_correo character varying(150),
    smtp_nombre character varying(150),
    smtp_usuario character varying(150),
    smtp_clave character varying(150),
    smtp_autenticacion smallint,
    costo_flete double precision NOT NULL,
    igv double precision NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    correo character varying(150),
    margen_minimo double precision NOT NULL,
    es_buen_contribuyente smallint DEFAULT 0 NOT NULL,
    es_agente_percepcion smallint DEFAULT 0 NOT NULL,
    es_agente_retencion smallint DEFAULT 0 NOT NULL,
    monto_max_clientesvarios double precision,
    nro_uit_compras numeric,
    nro_uit_ventas numeric,
    sitio_web character varying(255),
    pse_ruta character varying(255),
    pse_token character varying(255),
    url_cpe character varying(250),
    id_tipoafectacionigv integer,
    id_tipooperacion integer,
    uuid uuid NOT NULL,
    id_tipomoneda integer NOT NULL,
    sunat_api_id character varying(255),
    sunat_api_clave character varying(255),
    celular character(9),
    CONSTRAINT ck_empresa_estado CHECK (((estado = 'A'::bpchar) OR (estado = 'I'::bpchar)))
);


--
-- Name: COLUMN empresa.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.id_empresa IS 'Codigo autogenerado de la empresa';


--
-- Name: COLUMN empresa.ruc; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.ruc IS 'Numero RUC de la empresa';


--
-- Name: COLUMN empresa.razon_social; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.razon_social IS 'Razon Social de la empresa';


--
-- Name: COLUMN empresa.nombre_comercial; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.nombre_comercial IS 'Nombre Comercial de la Empresa';


--
-- Name: COLUMN empresa.direccion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.direccion IS 'Domicilio fiscal de la empresa';


--
-- Name: COLUMN empresa.telefono; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.telefono IS 'Numero telefonico de la empresa';


--
-- Name: COLUMN empresa.representante; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.representante IS 'Nombre del representante de la empresa';


--
-- Name: COLUMN empresa.id_actividadeconomica; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.id_actividadeconomica IS 'Clave principal que hace referencia a la tabla actividad_economica';


--
-- Name: COLUMN empresa.ubigeo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.ubigeo IS 'Codigo de Descripcion Geografica';


--
-- Name: COLUMN empresa.src_logo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.src_logo IS 'Es la ruta raiz de la imagen del logo de la empresa';


--
-- Name: COLUMN empresa.id_lineadefecto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.id_lineadefecto IS 'Clave principal que hace referencia a la tabla LINEA';


--
-- Name: COLUMN empresa.smtp_servidor; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.smtp_servidor IS 'Nombre del Servidor SMTP';


--
-- Name: COLUMN empresa.smtp_puerto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.smtp_puerto IS 'Numero del puerto SMTP';


--
-- Name: COLUMN empresa.smtp_correo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.smtp_correo IS 'Nombre de correo remitente';


--
-- Name: COLUMN empresa.smtp_nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.smtp_nombre IS 'Nombre del remitente';


--
-- Name: COLUMN empresa.smtp_usuario; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.smtp_usuario IS 'Nombre del usuario remitente';


--
-- Name: COLUMN empresa.smtp_clave; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.smtp_clave IS 'La clave del usuario remitente';


--
-- Name: COLUMN empresa.smtp_autenticacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.smtp_autenticacion IS 'Es un valor booleano si requiere autenticacion';


--
-- Name: COLUMN empresa.costo_flete; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.costo_flete IS 'Costo por kilogramo establecido por el transportista';


--
-- Name: COLUMN empresa.igv; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.igv IS 'El monto del impuesto establecido por la sunat';


--
-- Name: COLUMN empresa.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN empresa.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN empresa.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN empresa.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN empresa.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN empresa.margen_minimo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa.margen_minimo IS 'Tasa del margen minimo de ganancia por producto';


--
-- Name: empresa_cuenta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.empresa_cuenta (
    id_empresacuenta integer NOT NULL,
    id_empresa integer NOT NULL,
    id_entidadfinanciera integer,
    id_tipocuenta integer,
    id_tipomoneda integer NOT NULL,
    numero_cuenta character varying(50),
    numero_cci character varying(50),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    nombre character varying(250) NOT NULL,
    nombre_corto character varying(25) NOT NULL,
    es_defecto smallint,
    en_compra smallint,
    en_venta smallint,
    tipo character varying(20),
    es_detraccion smallint DEFAULT 0 NOT NULL,
    registra_banco smallint DEFAULT 0 NOT NULL,
    descripcion character varying(250)
);


--
-- Name: COLUMN empresa_cuenta.id_empresacuenta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.id_empresacuenta IS 'Clave unica de la tabla empresa_Cuenta';


--
-- Name: COLUMN empresa_cuenta.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN empresa_cuenta.id_entidadfinanciera; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.id_entidadfinanciera IS 'Clave principal que hace referencia a la tabla ENTIDAD_FINANCIERA';


--
-- Name: COLUMN empresa_cuenta.id_tipocuenta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.id_tipocuenta IS 'Clave principal que hace referencia a la tabla TIPO_CUENTA';


--
-- Name: COLUMN empresa_cuenta.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.id_tipomoneda IS 'Clave principal que hace referencia a la tabla TIPO_MONEDA';


--
-- Name: COLUMN empresa_cuenta.numero_cuenta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.numero_cuenta IS 'Es el campo que guardara el numero de cuenta registrado';


--
-- Name: COLUMN empresa_cuenta.numero_cci; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.numero_cci IS 'Es el numero de CCI que se registre';


--
-- Name: COLUMN empresa_cuenta.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN empresa_cuenta.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN empresa_cuenta.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.empresa_cuenta.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: entidad_financiera; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.entidad_financiera (
    id_entidadfinanciera integer NOT NULL,
    nombre character varying(100) NOT NULL,
    tipo character varying(25) NOT NULL,
    codigo_sunat character varying(2) DEFAULT '-'::character varying NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    url character varying(100),
    CONSTRAINT ck_entidad_financiera_tipo CHECK ((((tipo)::text = 'Banco'::text) OR ((tipo)::text = 'Caja Municipal'::text)))
);


--
-- Name: COLUMN entidad_financiera.id_entidadfinanciera; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.id_entidadfinanciera IS 'Codigo unico de entidad financiera. es un dato autogenerado por el sistema.';


--
-- Name: COLUMN entidad_financiera.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.nombre IS 'Nombre de la entidad financiera. es un dato obligatorio.';


--
-- Name: COLUMN entidad_financiera.tipo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.tipo IS 'Tipo de la entidad financiera. es un dato obligatorio.';


--
-- Name: COLUMN entidad_financiera.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN entidad_financiera.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro
';


--
-- Name: COLUMN entidad_financiera.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN entidad_financiera.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN entidad_financiera.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.entidad_financiera.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: estado; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.estado (
    cod_estado character(2) NOT NULL,
    nombre character varying(30) NOT NULL,
    flag_venta smallint DEFAULT 0 NOT NULL,
    flag_compra smallint DEFAULT 0 NOT NULL,
    flag_proforma smallint DEFAULT 0 NOT NULL,
    flag_solicitudcompra smallint DEFAULT 0 NOT NULL,
    flag_ordencompra smallint DEFAULT 0 NOT NULL,
    flag_deuda smallint DEFAULT 0 NOT NULL,
    flag_orden_trabajo smallint DEFAULT 0 NOT NULL
);


--
-- Name: COLUMN estado.cod_estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.estado.cod_estado IS 'Codigo autogenerado del estado';


--
-- Name: COLUMN estado.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.estado.nombre IS 'Nombre del estado';


--
-- Name: evento; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.evento (
    modulo character varying(30) NOT NULL,
    evento character varying(15) NOT NULL,
    descripcion character varying(30) NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone DEFAULT now() NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: COLUMN evento.evento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.evento.evento IS 'Es el nombre del evento';


--
-- Name: COLUMN evento.descripcion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.evento.descripcion IS 'Es la descripcion de lo que realiza el evento';


--
-- Name: evento_x_perfil; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.evento_x_perfil (
    modulo character varying(30) NOT NULL,
    evento character varying(15) NOT NULL,
    cod_perfil character(2) NOT NULL
);


--
-- Name: COLUMN evento_x_perfil.evento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.evento_x_perfil.evento IS 'Clave principal que hace referencia a la tabla EVENTO';


--
-- Name: COLUMN evento_x_perfil.cod_perfil; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.evento_x_perfil.cod_perfil IS 'Clave principal que hace referencia a la tabla PERFIL';


--
-- Name: evento_x_usuario; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.evento_x_usuario (
    modulo character varying(30) NOT NULL,
    evento character varying(15) NOT NULL,
    usuario character varying(15) NOT NULL
);


--
-- Name: COLUMN evento_x_usuario.evento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.evento_x_usuario.evento IS 'Es el nombre del evento';


--
-- Name: COLUMN evento_x_usuario.usuario; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.evento_x_usuario.usuario IS 'Es el nombre del usuario';


--
-- Name: forma_pago; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.forma_pago (
    id_formapago integer NOT NULL,
    nombre character varying(100),
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    formulario character varying(100)
);


--
-- Name: COLUMN forma_pago.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.forma_pago.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN forma_pago.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.forma_pago.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN forma_pago.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.forma_pago.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN forma_pago.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.forma_pago.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla
';


--
-- Name: COLUMN forma_pago.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.forma_pago.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: grupo_maestro; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.grupo_maestro (
    id_grupomaestro integer NOT NULL,
    id_empresa integer,
    nombre character varying(100)
);


--
-- Name: guia_correo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.guia_correo (
    id_guia_correo bigint NOT NULL,
    id_guia bigint NOT NULL,
    email character varying(255) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL
);


--
-- Name: guia_emision; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.guia_emision (
    id_guia bigint NOT NULL,
    id_empresa integer NOT NULL,
    id_localidad integer NOT NULL,
    id_documento integer NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    fecha timestamp without time zone NOT NULL,
    cliente_documento character varying(15) NOT NULL,
    cliente_nombre character varying(150) NOT NULL,
    direccion_partida character varying(200) NOT NULL,
    direccion_llegada character varying(200) NOT NULL,
    direccion_referencia character varying(150),
    transportista_nombre character varying(200),
    transportista_documento character varying(15),
    transportista_direccion character varying(200),
    vehiculo_nombre character varying(200) NOT NULL,
    vehiculo_placa character varying(10) NOT NULL,
    conductor_nombre character varying(200) NOT NULL,
    conductor_licencia character varying(15) NOT NULL,
    conductor_documento character varying(15) NOT NULL,
    certificado_habilitacion_vehicular character varying(100) NOT NULL,
    fecha_salida timestamp without time zone NOT NULL,
    fecha_llegada timestamp without time zone NOT NULL,
    codigo_ubigeo_partida character(6),
    codigo_ubigeo_llegada character(6),
    ubigeo_partida character varying(150) NOT NULL,
    ubigeo_llegada character varying(150) NOT NULL,
    fecha_anulacion timestamp without time zone,
    id_venta integer,
    numero_guia_transporista character varying(20),
    estado character(1) NOT NULL,
    cod_estado character(2) NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    id_motivo_traslado integer NOT NULL,
    aceptado_sunat smallint,
    id_cliente integer,
    json_respuesta_ose json,
    enviado_cliente smallint DEFAULT 0 NOT NULL,
    id_modalidad_transporte integer NOT NULL,
    configuracion_vehicular character varying(15),
    peso_total numeric NOT NULL,
    observacion character varying(500),
    conductor_id_tipoidentidad integer NOT NULL,
    numero_bultos smallint,
    id_tipo_identidad_transportista integer,
    leido_cliente smallint DEFAULT 0 NOT NULL,
    estado_sunat character(2) DEFAULT 'RE'::bpchar,
    motivo_anulacion character varying(250)
);


--
-- Name: guia_emision_item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.guia_emision_item (
    id_guia bigint NOT NULL,
    id_empresa integer NOT NULL,
    item integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    factor_conversion double precision NOT NULL,
    producto_nombre character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    peso_total double precision NOT NULL
);


--
-- Name: guia_recepcion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.guia_recepcion (
    id_guia bigint NOT NULL,
    id_empresa integer NOT NULL,
    id_localidad integer NOT NULL,
    id_tipodocumento integer NOT NULL,
    id_motivo_traslado integer NOT NULL,
    id_modalidad_transporte integer NOT NULL,
    id_compra integer,
    id_proveedor integer NOT NULL,
    id_tipoidentidad_conductor integer NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    fecha date NOT NULL,
    fecha_salida timestamp without time zone NOT NULL,
    fecha_llegada timestamp without time zone NOT NULL,
    proveedor_documento character varying(15) NOT NULL,
    proveedor_nombre character varying(150) NOT NULL,
    direccion_partida character varying(200) NOT NULL,
    direccion_llegada character varying(200) NOT NULL,
    transportista_nombre character varying(200) NOT NULL,
    transportista_documento character varying(15) NOT NULL,
    transportista_direccion character varying(200) NOT NULL,
    vehiculo_nombre character varying(200) NOT NULL,
    vehiculo_placa character varying(10) NOT NULL,
    conductor_nombre character varying(200) NOT NULL,
    conductor_licencia character varying(15) NOT NULL,
    conductor_documento character varying(15) NOT NULL,
    certificado_habilitacion_vehicular character varying(100) NOT NULL,
    configuracion_vehicular character varying(15),
    codigo_ubigeo_partida character(6) NOT NULL,
    codigo_ubigeo_llegada character(6) NOT NULL,
    ubigeo_partida character varying(150) NOT NULL,
    ubigeo_llegada character varying(150) NOT NULL,
    fecha_anulacion timestamp without time zone,
    numero_guia_transporista character varying(20),
    aceptado_sunat smallint,
    peso_total numeric NOT NULL,
    observacion character varying(500),
    estado character(1) NOT NULL,
    cod_estado character(2) NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL
);


--
-- Name: guia_recepcion_item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.guia_recepcion_item (
    id_guia bigint NOT NULL,
    id_empresa integer NOT NULL,
    item integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    factor_conversion double precision NOT NULL,
    producto_nombre character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad numeric NOT NULL,
    peso_total double precision NOT NULL,
    cantidad_emision numeric
);


--
-- Name: item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.item (
    id_item integer NOT NULL,
    descripcion character varying NOT NULL
);


--
-- Name: kardex; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.kardex (
    id_kardex integer NOT NULL,
    id_empresa integer NOT NULL,
    id_localidad integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    cantidad numeric NOT NULL,
    unidad_medida character varying(50) NOT NULL,
    unidad_medida_cantidad numeric NOT NULL,
    importe numeric,
    importe_kardex numeric,
    stock_kardex numeric,
    id_tipomoneda integer,
    tasa_cambio numeric NOT NULL,
    fecha timestamp without time zone NOT NULL,
    entrada_salida character(1) NOT NULL,
    operacion integer NOT NULL,
    inventario_inicial smallint DEFAULT 0 NOT NULL,
    proceso_referencia character varying(25) NOT NULL,
    id_procesoreferencia integer,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    serie_correlativo character varying(20),
    importe_costo numeric NOT NULL,
    fecha_creacion timestamp without time zone DEFAULT now() NOT NULL,
    flete_total numeric DEFAULT 0 NOT NULL,
    entrada_salida_origen character(1) NOT NULL,
    fecha_anterior timestamp without time zone,
    stock_fisico numeric NOT NULL,
    stock_transito numeric NOT NULL,
    stock_entrega numeric NOT NULL,
    tipo_almacen character varying(10) NOT NULL
);


--
-- Name: kardex_compra; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.kardex_compra (
    id_kardex integer NOT NULL,
    id_compra integer NOT NULL
);


--
-- Name: kardex_guia_emision; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.kardex_guia_emision (
    id_kardex integer NOT NULL,
    id_guia integer NOT NULL
);


--
-- Name: kardex_guia_recepcion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.kardex_guia_recepcion (
    id_kardex integer NOT NULL,
    id_guia integer NOT NULL
);


--
-- Name: kardex_nota_credito; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.kardex_nota_credito (
    id_kardex integer NOT NULL,
    id_notacredito integer NOT NULL
);


--
-- Name: kardex_transferencia; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.kardex_transferencia (
    id_kardex integer NOT NULL,
    id_transferencia integer NOT NULL
);


--
-- Name: kardex_venta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.kardex_venta (
    id_kardex integer NOT NULL,
    id_venta integer NOT NULL
);


--
-- Name: linea; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.linea (
    id_linea integer NOT NULL,
    tipo character(1) DEFAULT 'B'::bpchar,
    nombre character varying(100) NOT NULL,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    CONSTRAINT ck_linea_estado CHECK (((estado = 'A'::bpchar) OR (estado = 'I'::bpchar)))
);


--
-- Name: COLUMN linea.id_linea; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.id_linea IS 'Codigo autogenerado de la linea';


--
-- Name: COLUMN linea.tipo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.tipo IS 'B:Bien,S:servicio';


--
-- Name: COLUMN linea.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.nombre IS 'Es el nombre de la linea';


--
-- Name: COLUMN linea.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN linea.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.usuario_creacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN linea.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN linea.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN linea.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.linea.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: localidad; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.localidad (
    id_localidad integer NOT NULL,
    id_empresa integer NOT NULL,
    nombre character varying(50) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    abreviatura character varying(4) NOT NULL,
    direccion character varying(150),
    ubigeo character(6)
);


--
-- Name: COLUMN localidad.id_localidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.id_localidad IS 'Codigo autogenerado de la localidad';


--
-- Name: COLUMN localidad.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN localidad.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.nombre IS 'Es el nombre de la localidad';


--
-- Name: COLUMN localidad.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN localidad.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN localidad.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN localidad.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN localidad.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: localidad_usuario; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.localidad_usuario (
    id_localidad integer NOT NULL,
    usuario character varying(15) NOT NULL
);


--
-- Name: COLUMN localidad_usuario.id_localidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad_usuario.id_localidad IS 'Codigo autogenerado de la localidad';


--
-- Name: COLUMN localidad_usuario.usuario; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.localidad_usuario.usuario IS 'Es el nombre del usuario';


--
-- Name: maestro; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.maestro (
    id_maestro integer NOT NULL,
    id_grupomaestro integer,
    nombre character varying(100)
);


--
-- Name: marca; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.marca (
    id_marca integer NOT NULL,
    nombre character varying(50) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: COLUMN marca.id_marca; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.marca.id_marca IS 'Codigo autogenerado de la marca';


--
-- Name: COLUMN marca.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.marca.nombre IS 'Es el nombre de la marca';


--
-- Name: COLUMN marca.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.marca.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN marca.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.marca.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN marca.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.marca.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN marca.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.marca.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN marca.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.marca.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: menu; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.menu (
    id_menu integer NOT NULL,
    nivel integer,
    orden integer,
    nombre character varying(30),
    modulo character varying(30),
    descripcion character varying(90),
    id_padre integer,
    sec_ini integer,
    sec_fin integer,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    icono character varying(20),
    etiqueta character varying(10)
);


--
-- Name: COLUMN menu.id_menu; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.id_menu IS 'Codigo autogenerado del menu';


--
-- Name: COLUMN menu.nivel; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.nivel IS 'Es numero del nivel';


--
-- Name: COLUMN menu.orden; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.orden IS 'Es el numero de orden ';


--
-- Name: COLUMN menu.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.nombre IS 'Es el nombre del menu';


--
-- Name: COLUMN menu.modulo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.modulo IS 'El nombre del modulo del sistema';


--
-- Name: COLUMN menu.descripcion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.descripcion IS 'Es la descripcion de lo que realiza el evento';


--
-- Name: COLUMN menu.id_padre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.id_padre IS 'Es el codigo que hace refencia a la clave principal';


--
-- Name: COLUMN menu.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN menu.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN menu.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN menu.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.menu.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: modalidad_transporte; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.modalidad_transporte (
    id_modalidad_transporte integer NOT NULL,
    nombre character varying(255) NOT NULL,
    codigo_sunat character varying(2) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL
);


--
-- Name: modulo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.modulo (
    modulo character varying(30) NOT NULL,
    sistema character varying(20) NOT NULL,
    descripcion character varying(50) NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: COLUMN modulo.modulo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo.modulo IS 'El nombre del modulo del sistema';


--
-- Name: COLUMN modulo.sistema; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo.sistema IS 'Clave principal que hace referencia a la tabla SISTEMA';


--
-- Name: COLUMN modulo.descripcion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo.descripcion IS 'Es la descripcion de lo que realiza el evento';


--
-- Name: COLUMN modulo.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN modulo.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN modulo.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN modulo.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: modulo_x_perfil; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.modulo_x_perfil (
    cod_perfil character(2) NOT NULL,
    modulo character varying(30) NOT NULL
);


--
-- Name: COLUMN modulo_x_perfil.cod_perfil; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo_x_perfil.cod_perfil IS 'Clave principal que hace referencia a la tabla perfil';


--
-- Name: modulo_x_usuario; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.modulo_x_usuario (
    modulo character varying(30) NOT NULL,
    usuario character varying(15) NOT NULL
);


--
-- Name: COLUMN modulo_x_usuario.usuario; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.modulo_x_usuario.usuario IS 'Clave principal que hace referncia a la tabla USUARIO';


--
-- Name: motivo_anulacion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.motivo_anulacion (
    id_motivo_anulacion integer NOT NULL,
    nombre character varying(100),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    en_compra smallint DEFAULT 0 NOT NULL,
    en_venta smallint DEFAULT 0 NOT NULL,
    en_proforma smallint DEFAULT 0 NOT NULL
);


--
-- Name: motivo_nota; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.motivo_nota (
    id_motivonota integer NOT NULL,
    nombre character varying(100) NOT NULL,
    codigo_sunat character varying(2),
    tipo character varying(7) NOT NULL,
    registra_kardex smallint NOT NULL,
    codigo_ose character varying(2)
);


--
-- Name: motivo_traslado; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.motivo_traslado (
    id_motivo_traslado integer NOT NULL,
    nombre character varying(255) NOT NULL,
    codigo_sunat character varying(2) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL
);


--
-- Name: movimiento; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.movimiento (
    id_movimiento bigint NOT NULL,
    fecha timestamp without time zone NOT NULL,
    observacion character varying(300),
    tabla_referencia character varying(20) NOT NULL,
    id_referencia integer NOT NULL,
    ingreso_egreso character(1) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    id_localidad integer NOT NULL,
    id_puntoventa integer NOT NULL,
    id_empresa integer NOT NULL,
    estado character(1) NOT NULL,
    operacion smallint NOT NULL,
    glosa character varying(250) NOT NULL
);


--
-- Name: movimiento_almacen; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.movimiento_almacen (
    id_movimiento_almacen bigint NOT NULL,
    id_empresa integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_tipopago integer NOT NULL,
    id_tipodocumento integer NOT NULL,
    id_localidad integer NOT NULL,
    serie character varying(20) NOT NULL,
    correlativo character varying(11) NOT NULL,
    observacion character varying(500),
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    igv double precision NOT NULL,
    cod_estado character(2) NOT NULL,
    estado character(1) NOT NULL,
    tasa_cambio double precision NOT NULL,
    igv_monto double precision NOT NULL,
    total double precision NOT NULL,
    fecha timestamp without time zone NOT NULL,
    proveedor_nombre character varying(150),
    proveedor_direccion character varying(250),
    importe_bruto double precision,
    descuento_bruto double precision,
    valor_venta_gravado numeric,
    valor_venta_exonerado numeric,
    valor_venta_gratuito numeric,
    valor_venta_inafecto numeric,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    total_otros_cargos numeric NOT NULL,
    id_proveedor bigint
);


--
-- Name: movimiento_almacen_item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.movimiento_almacen_item (
    id_movimiento_almacen bigint NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_nombre character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    importe_flete double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    item smallint NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta double precision NOT NULL,
    igv_monto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer NOT NULL
);


--
-- Name: movimiento_pago; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.movimiento_pago (
    id_movimiento bigint NOT NULL,
    item smallint NOT NULL,
    id_empresacuenta integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    monto_recibido double precision NOT NULL,
    monto_cobrado double precision NOT NULL,
    fecha date NOT NULL,
    hora time without time zone NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    numero_operacion character varying(50),
    fecha_operacion date NOT NULL,
    tasa_cambio numeric NOT NULL,
    id_nota_credito integer,
    tasa_cambio_aux real,
    id_nota_debito integer,
    id_entidadfinanciera integer
);


--
-- Name: nota_credito; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_credito (
    id_nota_credito integer NOT NULL,
    fecha timestamp without time zone NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    id_empresa integer NOT NULL,
    id_localidad integer NOT NULL,
    id_puntoventa integer NOT NULL,
    id_tipodocumento integer,
    id_documento integer,
    id_tipomoneda integer NOT NULL,
    tasa_cambio numeric NOT NULL,
    id_cliente bigint,
    agente_documento character varying(15) NOT NULL,
    agente_nombre character varying(150) NOT NULL,
    agente_direccion character varying(250) NOT NULL,
    importe_bruto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    igv_monto double precision NOT NULL,
    total double precision NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    cod_estado character(2) NOT NULL,
    estado character(1) NOT NULL,
    observacion character varying(100),
    id_motivonota integer NOT NULL,
    igv double precision NOT NULL,
    procesado_sunat smallint DEFAULT 0,
    registra_kardex smallint NOT NULL,
    id_declaracion integer,
    valor_venta_gravado numeric NOT NULL,
    valor_venta_exonerado numeric NOT NULL,
    valor_venta_gratuito numeric NOT NULL,
    valor_venta_inafecto numeric NOT NULL,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    fecha_vencimiento date,
    id_tipooperacion integer NOT NULL,
    fecha_anulacion timestamp without time zone,
    motivo_anulacion character varying(255),
    sunat_anulado smallint DEFAULT 0,
    aceptado_sunat smallint,
    descuento_global numeric NOT NULL,
    descuento_total numeric NOT NULL,
    id_proveedor bigint
);


--
-- Name: TABLE nota_credito; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON TABLE isos.nota_credito IS 'Para recepcion y emision(compra-venta)';


--
-- Name: nota_credito_compra; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_credito_compra (
    id_nota_credito integer NOT NULL,
    id_compra integer NOT NULL
);


--
-- Name: nota_credito_correo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_credito_correo (
    id_nota_credito_correo bigint NOT NULL,
    id_nota_credito bigint NOT NULL,
    email character varying(255) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL
);


--
-- Name: nota_credito_item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_credito_item (
    id_nota_credito integer NOT NULL,
    id_empresa integer NOT NULL,
    item integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    factor_conversion double precision NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    valor_venta double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    igv double precision NOT NULL,
    igv_monto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer NOT NULL
);


--
-- Name: nota_credito_venta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_credito_venta (
    id_nota_credito integer NOT NULL,
    id_venta integer NOT NULL,
    json_respuesta_ose json,
    enviado_cliente smallint,
    leido_cliente smallint,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: nota_debito; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_debito (
    id_nota_debito integer NOT NULL,
    fecha timestamp without time zone NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    id_empresa integer NOT NULL,
    id_localidad integer NOT NULL,
    id_puntoventa integer NOT NULL,
    id_tipodocumento integer,
    id_documento integer,
    id_tipomoneda integer NOT NULL,
    tasa_cambio numeric NOT NULL,
    id_cliente bigint,
    agente_documento character varying(15) NOT NULL,
    agente_nombre character varying(150) NOT NULL,
    agente_direccion character varying(250) NOT NULL,
    importe_bruto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    igv_monto double precision NOT NULL,
    total double precision NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    cod_estado character(2) NOT NULL,
    estado character(1) NOT NULL,
    observacion character varying(100),
    id_motivonota integer NOT NULL,
    igv double precision NOT NULL,
    procesado_sunat smallint DEFAULT 0,
    registra_kardex smallint NOT NULL,
    id_declaracion integer,
    valor_venta_gravado numeric NOT NULL,
    valor_venta_exonerado numeric NOT NULL,
    valor_venta_gratuito numeric NOT NULL,
    valor_venta_inafecto numeric NOT NULL,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    fecha_vencimiento date,
    id_tipooperacion integer NOT NULL,
    fecha_anulacion timestamp without time zone,
    motivo_anulacion character varying(255),
    sunat_anulado smallint DEFAULT 0,
    aceptado_sunat smallint,
    descuento_global numeric NOT NULL,
    descuento_total numeric NOT NULL,
    id_proveedor bigint
);


--
-- Name: TABLE nota_debito; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON TABLE isos.nota_debito IS 'Para recepcion y emision(compra-venta)';


--
-- Name: nota_debito_compra; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_debito_compra (
    id_nota_debito integer NOT NULL,
    id_compra integer NOT NULL
);


--
-- Name: nota_debito_correo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_debito_correo (
    id_nota_debito_correo bigint NOT NULL,
    id_nota_debito bigint NOT NULL,
    email character varying(255) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL
);


--
-- Name: nota_debito_item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_debito_item (
    id_nota_debito integer NOT NULL,
    id_empresa integer NOT NULL,
    item integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    factor_conversion double precision NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    valor_venta double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    igv double precision NOT NULL,
    igv_monto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer NOT NULL
);


--
-- Name: nota_debito_venta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.nota_debito_venta (
    id_nota_debito integer NOT NULL,
    id_venta integer NOT NULL,
    json_respuesta_ose json,
    enviado_cliente smallint,
    leido_cliente smallint,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: orden_compra; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.orden_compra (
    id_ordencompra integer NOT NULL,
    id_empresa integer NOT NULL,
    id_localidad integer NOT NULL,
    id_tipopago integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_documento integer NOT NULL,
    proveedor_nombre character varying(150),
    proveedor_direccion character varying(250),
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    igv double precision NOT NULL,
    id_solicitudcompra integer,
    fecha timestamp without time zone,
    importe_bruto double precision,
    descuento_bruto double precision NOT NULL,
    valor_venta double precision NOT NULL,
    igv_monto double precision,
    total double precision,
    tasa_cambio double precision,
    fecha_anulacion timestamp without time zone,
    observacion character varying(500),
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(10),
    estado character(1) NOT NULL,
    cod_estado character(2) NOT NULL,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    enviado_proveedor smallint,
    fecha_entrega date,
    motivo_anulacion character varying(255),
    id_proveedor bigint NOT NULL
);


--
-- Name: orden_trabajo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.orden_trabajo (
    id_orden_trabajo bigint NOT NULL,
    fecha timestamp without time zone NOT NULL,
    id_empresa integer NOT NULL,
    id_cliente integer NOT NULL,
    id_tipomoneda integer,
    id_documento integer NOT NULL,
    id_puntoventa integer NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    observacion character varying(500),
    tasa_cambio double precision,
    igv double precision NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) NOT NULL,
    total double precision,
    igv_monto double precision,
    id_proforma integer,
    cod_estado character(2) NOT NULL,
    credito_tasa double precision,
    credito_nombre character varying(100),
    cliente_nombre character varying(150),
    cliente_direccion character varying(250),
    fecha_anulacion timestamp without time zone,
    pendiente_entrega smallint,
    valor_venta double precision,
    bien_servicio character(1) DEFAULT 'B'::bpchar NOT NULL,
    motivo_anulacion character varying(250),
    id_trabajador_responsable integer,
    importe_bruto double precision,
    descuento_bruto double precision,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    fecha_vencimiento date,
    id_tipooperacion integer,
    valor_venta_gravado numeric,
    valor_venta_exonerado numeric,
    valor_venta_gratuito numeric,
    valor_venta_inafecto numeric,
    nro_orden_compra character varying(50),
    enviado_cliente smallint DEFAULT 0 NOT NULL,
    leido_cliente smallint DEFAULT 0 NOT NULL,
    aceptado_sunat smallint DEFAULT 0 NOT NULL,
    json_respuesta_ose json,
    descuento_global numeric,
    sunat_anulado smallint DEFAULT 0 NOT NULL,
    id_condicionventa integer,
    descuento_total numeric,
    prioridad character varying(5) NOT NULL,
    fecha_iniciado timestamp without time zone,
    fecha_finalizado timestamp without time zone,
    id_pedido_venta integer
);


--
-- Name: orden_trabajo_historial; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.orden_trabajo_historial (
    id_orden_trabajo integer NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    proceso character varying(20) NOT NULL,
    motivo character varying(500),
    fecha_creacion timestamp without time zone NOT NULL,
    id_orden_trabajo_historial bigint NOT NULL
);


--
-- Name: orden_trabajo_historial_id_orden_trabajo_historial_seq; Type: SEQUENCE; Schema: isos; Owner: -
--

CREATE SEQUENCE isos.orden_trabajo_historial_id_orden_trabajo_historial_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: orden_trabajo_historial_id_orden_trabajo_historial_seq; Type: SEQUENCE OWNED BY; Schema: isos; Owner: -
--

ALTER SEQUENCE isos.orden_trabajo_historial_id_orden_trabajo_historial_seq OWNED BY isos.orden_trabajo_historial.id_orden_trabajo_historial;


--
-- Name: orden_trabajo_item; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.orden_trabajo_item (
    id_orden_trabajo integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    importe_flete double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    credito_tasa double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    item smallint NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta numeric NOT NULL,
    igv_monto numeric NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer NOT NULL,
    id_orden_trabajo_item bigint NOT NULL
);


--
-- Name: orden_trabajo_subitem; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.orden_trabajo_subitem (
    id_orden_trabajo integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    importe_flete double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    credito_tasa double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    item smallint NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta numeric NOT NULL,
    igv_monto numeric NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer,
    id_orden_trabajo_item bigint NOT NULL,
    id_orden_trabajo_subitem bigint NOT NULL,
    estado character(1) NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: orden_trabajo_tecnico; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.orden_trabajo_tecnico (
    id_orden_trabajo integer NOT NULL,
    id_trabajador integer NOT NULL,
    fecha_creacion timestamp without time zone DEFAULT now() NOT NULL,
    usuario_creacion character varying(15) NOT NULL
);


--
-- Name: ordencompra_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.ordencompra_detalle (
    id_ordencompra integer NOT NULL,
    id_empresa integer NOT NULL,
    item smallint NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    factor_conversion double precision NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    precio_unitario double precision,
    importe_bruto double precision,
    porcentaje_descuento double precision NOT NULL,
    descuento_bruto double precision,
    valor_venta double precision,
    igv_monto double precision,
    igv double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    peso_total double precision
);


--
-- Name: pedido_venta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.pedido_venta (
    id_pedido_venta bigint NOT NULL,
    id_empresa integer NOT NULL,
    id_puntoventa integer NOT NULL,
    id_cliente integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_documento integer NOT NULL,
    id_proforma integer,
    id_condicionventa integer NOT NULL,
    fecha timestamp without time zone NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    observacion character varying(500),
    tasa_cambio numeric NOT NULL,
    igv numeric NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) NOT NULL,
    total numeric NOT NULL,
    igv_monto numeric NOT NULL,
    cod_estado character(2) NOT NULL,
    credito_tasa numeric NOT NULL,
    cliente_nombre character varying(150),
    cliente_direccion character varying(250),
    fecha_anulacion timestamp without time zone,
    pendiente_entrega smallint NOT NULL,
    bien_servicio character(1) DEFAULT 'B'::bpchar NOT NULL,
    motivo_anulacion character varying(250),
    importe_bruto numeric NOT NULL,
    descuento_bruto numeric NOT NULL,
    fecha_vencimiento date,
    valor_venta_gravado numeric NOT NULL,
    valor_venta_exonerado numeric NOT NULL,
    valor_venta_gratuito numeric NOT NULL,
    valor_venta_inafecto numeric NOT NULL,
    nro_orden_compra character varying(50),
    descuento_global numeric,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    descuento_total numeric,
    anulacion_observacion character varying(250)
);


--
-- Name: pedidoventa_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.pedidoventa_detalle (
    id_pedido_venta integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    item smallint NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    importe_flete double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    credito_tasa double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta double precision NOT NULL,
    igv_monto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer NOT NULL
);


--
-- Name: perfil; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.perfil (
    cod_perfil character varying(2) NOT NULL,
    nombre character varying(30) NOT NULL
);


--
-- Name: COLUMN perfil.cod_perfil; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.perfil.cod_perfil IS 'Clave principal generada por el usuario';


--
-- Name: COLUMN perfil.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.perfil.nombre IS 'Descripcion del perfil';


--
-- Name: producto; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.producto (
    cod_producto character(10) NOT NULL,
    tipo character(1) DEFAULT 'B'::bpchar NOT NULL,
    cod_prod_proveedor character varying(50),
    cod_barras character varying(50),
    id_marca integer,
    id_subclase integer NOT NULL,
    nombre_generico character varying(500),
    nombre_comercial character varying(500) NOT NULL,
    descripcion character varying(500),
    src_imagen character varying(255),
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    id_tipoafectacionigv integer NOT NULL,
    codigo_sunat character varying(8)
);


--
-- Name: COLUMN producto.cod_producto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.cod_producto IS 'Autogenerado del producto';


--
-- Name: COLUMN producto.tipo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.tipo IS '/*b:bien,s:servicio*/';


--
-- Name: COLUMN producto.cod_prod_proveedor; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.cod_prod_proveedor IS 'Codigo del producto asignado por el proveedor';


--
-- Name: COLUMN producto.cod_barras; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.cod_barras IS 'Codigo de barras del producto';


--
-- Name: COLUMN producto.id_marca; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.id_marca IS 'Clave principal que hace referencia a la tabla MARCA';


--
-- Name: COLUMN producto.id_subclase; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.id_subclase IS 'Clave principal que hace referencia a la tabla SUBCLASE';


--
-- Name: COLUMN producto.nombre_generico; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.nombre_generico IS 'nombre generico del producto.';


--
-- Name: COLUMN producto.descripcion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.descripcion IS 'Es la descripcion de lo que realiza el evento';


--
-- Name: COLUMN producto.src_imagen; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.src_imagen IS 'Es la ruta raiz de la imagen de la empresa';


--
-- Name: COLUMN producto.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN producto.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN producto.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN producto.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN producto.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: producto_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.producto_detalle (
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    id_localidad integer NOT NULL,
    stock_minimo double precision NOT NULL,
    stock_maximo double precision NOT NULL,
    ubicacion character varying(200) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15)
);


--
-- Name: COLUMN producto_detalle.stock_minimo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_detalle.stock_minimo IS 'Stock minimo configurado para el producto';


--
-- Name: COLUMN producto_detalle.stock_maximo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_detalle.stock_maximo IS 'Stock maximo configurado para el producto';


--
-- Name: COLUMN producto_detalle.ubicacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_detalle.ubicacion IS 'Ubicacion referencial del producto';


--
-- Name: COLUMN producto_detalle.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_detalle.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN producto_detalle.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_detalle.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN producto_detalle.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_detalle.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN producto_detalle.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_detalle.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: producto_precio; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.producto_precio (
    id_localidad integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    precio1_max double precision NOT NULL,
    precio1_min double precision NOT NULL,
    precio2_max double precision,
    precio2_min double precision,
    precio3_max double precision,
    precio3_min double precision,
    estado character(1) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    stock_fisico numeric,
    stock_transito numeric,
    stock_entrega numeric,
    fecha_eliminacion timestamp without time zone
);


--
-- Name: COLUMN producto_precio.id_localidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.id_localidad IS 'Clave principal que hace referencia a la tabla localidad';


--
-- Name: COLUMN producto_precio.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.id_empresa IS 'Clave principal que hace referencia a la tabla empresa';


--
-- Name: COLUMN producto_precio.cod_producto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.cod_producto IS 'Clave principal que hace referencia a la tabla producto';


--
-- Name: COLUMN producto_precio.id_unidadmedida; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.id_unidadmedida IS 'Clave principal que hace referencia a la tabla producto_unidadmedida';


--
-- Name: COLUMN producto_precio.precio1_max; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.precio1_max IS 'Valor del precio de venta como monto maximo';


--
-- Name: COLUMN producto_precio.precio1_min; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.precio1_min IS 'Valor del precio de venta como monto minimo';


--
-- Name: COLUMN producto_precio.precio2_max; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.precio2_max IS 'Valor del precio de venta como monto maximo';


--
-- Name: COLUMN producto_precio.precio2_min; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.precio2_min IS 'Valor del precio de venta como monto minimo';


--
-- Name: COLUMN producto_precio.precio3_max; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.precio3_max IS 'Valor del precio de venta como monto maximo';


--
-- Name: COLUMN producto_precio.precio3_min; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.precio3_min IS 'Valor del precio de venta como monto maximo';


--
-- Name: COLUMN producto_precio.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_precio.estado IS 'Valor del precio de venta como monto minimo';


--
-- Name: producto_unidadmedida; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.producto_unidadmedida (
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    cantidad double precision NOT NULL,
    peso double precision NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    precio_costo double precision NOT NULL,
    en_compra smallint NOT NULL,
    default_venta smallint NOT NULL,
    CONSTRAINT ck_factor_conversion CHECK ((cantidad > (0)::double precision))
);


--
-- Name: COLUMN producto_unidadmedida.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_unidadmedida.id_empresa IS 'Clave principal que hace referencia a la tabla empresa';


--
-- Name: COLUMN producto_unidadmedida.cod_producto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_unidadmedida.cod_producto IS 'Clave principal que hace referencia a la tabla producto';


--
-- Name: COLUMN producto_unidadmedida.id_unidadmedida; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_unidadmedida.id_unidadmedida IS 'Clave principal que hace referencia a la tabla producto_unidadmedida';


--
-- Name: COLUMN producto_unidadmedida.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_unidadmedida.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN producto_unidadmedida.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_unidadmedida.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN producto_unidadmedida.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_unidadmedida.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN producto_unidadmedida.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.producto_unidadmedida.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: proforma; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.proforma (
    id_proforma integer NOT NULL,
    id_empresa integer NOT NULL,
    id_localidad integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_documento integer NOT NULL,
    id_cliente integer NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    fecha timestamp without time zone NOT NULL,
    observacion character varying(500),
    tasa_cambio double precision NOT NULL,
    igv double precision NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) NOT NULL,
    total double precision NOT NULL,
    igv_monto double precision NOT NULL,
    cod_estado character(2) NOT NULL,
    credito_tasa double precision NOT NULL,
    credito_nombre character varying(100),
    cliente_nombre character varying(150),
    cliente_direccion character varying(150),
    valor_venta double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    fecha_vencimiento date,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    enviado_cliente smallint,
    id_condicionventa integer NOT NULL,
    descuento_global numeric NOT NULL,
    descuento_total numeric NOT NULL,
    motivo_anulacion character varying(250),
    fecha_anulacion timestamp without time zone,
    fecha_cierre timestamp without time zone,
    condicion_comercial text,
    id_tipo_documento_referencia integer,
    documento_referencia_numero character varying(15),
    CONSTRAINT proforma_ck_total CHECK ((total > (0)::double precision))
);


--
-- Name: COLUMN proforma.igv_monto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proforma.igv_monto IS '= valor_venta*igv';


--
-- Name: COLUMN proforma.valor_venta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proforma.valor_venta IS '=subtotal-descuento_monto';


--
-- Name: proforma_correo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.proforma_correo (
    id_proformacorreo bigint NOT NULL,
    id_proforma bigint NOT NULL,
    email character varying(255) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL
);


--
-- Name: proforma_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.proforma_detalle (
    id_proforma integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_descripcion character varying(1000) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    importe_flete double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    credito_tasa double precision NOT NULL,
    tasa_cambio double precision NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta double precision NOT NULL,
    igv_monto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    item smallint NOT NULL
);


--
-- Name: proveedor; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.proveedor (
    ruc character(11) NOT NULL,
    razon_social character varying(100) NOT NULL,
    nombre_comercial character varying(100) NOT NULL,
    direccion character varying(150) NOT NULL,
    id_actividadeconomica integer,
    codigo_ubigeo character(6) NOT NULL,
    representante character varying(100),
    telefono character varying(50),
    correo character varying(50),
    comentario text,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    es_transportista smallint DEFAULT 0 NOT NULL,
    es_agente_percepcion smallint DEFAULT 0 NOT NULL,
    id_proveedor bigint NOT NULL,
    CONSTRAINT proveedor_chk_ruc CHECK ((length(ruc) = 11))
);


--
-- Name: COLUMN proveedor.ruc; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.ruc IS 'ruc de proveedor otorgado por sunat. es un dato obligatorio y unico.';


--
-- Name: COLUMN proveedor.razon_social; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.razon_social IS 'nombre de proveedor y se obtiene mediante consulta de ruc en la sunat. es un dato obligatorio.';


--
-- Name: COLUMN proveedor.direccion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.direccion IS 'direccion de proveedor y se obtiene mediante consulta de ruc en la sunat. es un dato obligatorio.';


--
-- Name: COLUMN proveedor.id_actividadeconomica; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.id_actividadeconomica IS 'codigo de actividad economica(giro negocio)';


--
-- Name: COLUMN proveedor.codigo_ubigeo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.codigo_ubigeo IS 'ubicacion geografica de proveedor y se obtiene mediante consulta de ruc en la sunat. es un dato obligatorio. ';


--
-- Name: COLUMN proveedor.representante; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.representante IS 'representante de proveedor y se obtiene mediante consulta de ruc en la sunat. es un dato opcional.';


--
-- Name: COLUMN proveedor.telefono; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.telefono IS 'telefono de proveedor. es un dato opcional.';


--
-- Name: COLUMN proveedor.correo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.correo IS 'correo de proveedor. es un dato opcional.';


--
-- Name: COLUMN proveedor.comentario; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.comentario IS 'informacion sobre linea o productos que ofrece el proveedor. es un dato opcional.';


--
-- Name: COLUMN proveedor.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.fecha_creacion IS 'fecha de creacion del registro de proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN proveedor.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.usuario_creacion IS 'usuario de creacion del registro de proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN proveedor.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.fecha_modificacion IS 'fecha de modificacion del registro de proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN proveedor.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.usuario_modificacion IS 'usuario de modificacion del registro de proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN proveedor.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor.estado IS 'estado del proveedor en el sistema (activo/inactivo). es un dato obligatorio. ';


--
-- Name: proveedor_cuenta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.proveedor_cuenta (
    id_proveedorcuenta integer NOT NULL,
    id_entidadfinanciera integer NOT NULL,
    id_tipocuenta integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    numero_cuenta character varying(20) NOT NULL,
    numero_cci character varying(20) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    id_proveedor bigint NOT NULL
);


--
-- Name: COLUMN proveedor_cuenta.id_proveedorcuenta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.id_proveedorcuenta IS 'Codigo unico autogenerado para la cuenta del proveedor';


--
-- Name: COLUMN proveedor_cuenta.id_entidadfinanciera; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.id_entidadfinanciera IS 'codigo unico de entidad financiera y sirve para identificar a cada cuenta por  es un dato foraneo de la tabla entidad_financiera.';


--
-- Name: COLUMN proveedor_cuenta.id_tipocuenta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.id_tipocuenta IS 'codigo unico de tipo de cuenta y sirve para identificar a cada cuenta por proveedor. es un dato foraneo de la tabla tipo_cuenta.';


--
-- Name: COLUMN proveedor_cuenta.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.id_tipomoneda IS 'codigo unico de tipo de moneda y sirve para identificar a cada cuenta por proveedor. es un dato foraneo de la tabla tipo_moneda.';


--
-- Name: COLUMN proveedor_cuenta.numero_cuenta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.numero_cuenta IS 'numero de cuenta bancaria de proveedor. es un dato obligatorio y unico.';


--
-- Name: COLUMN proveedor_cuenta.numero_cci; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.numero_cci IS 'numero de codigo de cuenta interbancaria de proveedor. es un dato opcional y unico.';


--
-- Name: COLUMN proveedor_cuenta.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.estado IS 'estado de la cuenta de un proveedor en el sistema (activo/inactivo). es un dato obligatorio.';


--
-- Name: COLUMN proveedor_cuenta.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.fecha_creacion IS 'fecha de creacion del registro de cuenta de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN proveedor_cuenta.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.usuario_creacion IS 'usuario de creacion del registro de cuenta de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN proveedor_cuenta.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.fecha_modificacion IS 'fecha de modificacion del registro de cuenta de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: COLUMN proveedor_cuenta.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.proveedor_cuenta.usuario_modificacion IS 'usuario de modificacion del registro de cuenta de un proveedor. es un dato autogenerado por el sistema. ';


--
-- Name: proveedor_empresa; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.proveedor_empresa (
    id_empresa integer NOT NULL,
    credito_asignado double precision,
    credito_actual double precision,
    id_proveedor bigint NOT NULL
);


--
-- Name: provincia; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.provincia (
    codigo_provincia character(4) NOT NULL,
    codigo_departamento character(2),
    nombre character varying(40)
);


--
-- Name: punto_venta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.punto_venta (
    id_puntoventa integer NOT NULL,
    id_localidad integer NOT NULL,
    nombre character varying(5) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: COLUMN punto_venta.id_puntoventa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.id_puntoventa IS 'Codigo autogenerado del punto de venta';


--
-- Name: COLUMN punto_venta.id_localidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.id_localidad IS 'Clave principal que hace referencia a la tabla localidad';


--
-- Name: COLUMN punto_venta.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.nombre IS 'Es la descripcion de lo que realiza el evento';


--
-- Name: COLUMN punto_venta.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN punto_venta.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN punto_venta.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN punto_venta.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN punto_venta.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.punto_venta.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: recibo_honorarios; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.recibo_honorarios (
    id_recibo_honorarios integer NOT NULL,
    serie character varying(20) NOT NULL,
    correlativo character varying(11) NOT NULL,
    id_empresa integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_tipodocumento integer NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    cod_estado character(2) NOT NULL,
    estado character(1) NOT NULL,
    tasa_cambio double precision NOT NULL,
    fecha date NOT NULL,
    id_localidad integer NOT NULL,
    id_proveedor bigint NOT NULL,
    proveedor_nombre character varying(150),
    proveedor_direccion character varying(250),
    fecha_vencimiento timestamp without time zone,
    fecha_recepcion timestamp without time zone,
    concepto text,
    observacion text,
    impuesto_renta_tasa numeric NOT NULL,
    total_honorarios numeric NOT NULL,
    impuesto_renta_monto numeric NOT NULL,
    total_neto numeric NOT NULL,
    fecha_anulacion timestamp without time zone,
    motivo_anulacion character varying(250),
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    con_impuesto_renta smallint DEFAULT 0 NOT NULL,
    id_tipopago integer
);


--
-- Name: sistema; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.sistema (
    sistema character varying(20) NOT NULL,
    descripcion character varying(50) NOT NULL,
    visibleweb smallint DEFAULT 1 NOT NULL,
    orden integer NOT NULL,
    estado character(1) NOT NULL,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: COLUMN sistema.sistema; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.sistema IS 'Clave principal que hace referencia a la tabla sistema';


--
-- Name: COLUMN sistema.descripcion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.descripcion IS 'Es la descripcion de lo que realiza el evento';


--
-- Name: COLUMN sistema.visibleweb; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.visibleweb IS 'Sirve para indicar si el sistema es visible en la web';


--
-- Name: COLUMN sistema.orden; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.orden IS 'Es el nivel jerarquico';


--
-- Name: COLUMN sistema.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN sistema.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro
';


--
-- Name: COLUMN sistema.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN sistema.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN sistema.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.sistema.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: solicitud_compra; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.solicitud_compra (
    id_solicitudcompra integer NOT NULL,
    id_empresa integer NOT NULL,
    id_tipopago integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_documento integer NOT NULL,
    serie character varying(5),
    correlativo character varying(10),
    observacion character varying(500),
    fecha_solicitud timestamp without time zone NOT NULL,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    cod_estado character(2) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    id_localidad integer NOT NULL,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    enviado_proveedor smallint
);


--
-- Name: COLUMN solicitud_compra.id_solicitudcompra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.id_solicitudcompra IS 'Codigo autogenerado de la solicitud_compra';


--
-- Name: COLUMN solicitud_compra.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN solicitud_compra.id_tipopago; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.id_tipopago IS 'Clave principal que hace referencia a la tabla tipo_pago';


--
-- Name: COLUMN solicitud_compra.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.id_tipomoneda IS 'codigo unico de tipo de moneda y sirve para identificar a cada cuenta por proveedor. es un dato foraneo de la tabla tipo_moneda.';


--
-- Name: COLUMN solicitud_compra.id_documento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.id_documento IS 'Clave principal que hace referencia a la tabla';


--
-- Name: COLUMN solicitud_compra.serie; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.serie IS 'Nuemro de serie';


--
-- Name: COLUMN solicitud_compra.correlativo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.correlativo IS 'Correlativo del documento';


--
-- Name: COLUMN solicitud_compra.observacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.observacion IS 'Descripcion de alguna observacion';


--
-- Name: COLUMN solicitud_compra.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN solicitud_compra.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN solicitud_compra.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN solicitud_compra.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN solicitud_compra.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitud_compra.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: solicitudcompra_precio; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.solicitudcompra_precio (
    id_solicitudcompra bigint NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    precio_unitario double precision NOT NULL,
    es_minimo smallint NOT NULL,
    es_seleccion smallint NOT NULL,
    monto_flete double precision NOT NULL,
    id_proveedor bigint NOT NULL
);


--
-- Name: COLUMN solicitudcompra_precio.id_solicitudcompra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.id_solicitudcompra IS 'Clave principal que hace referencia a la tabla SOLICITUDCOMPRA';


--
-- Name: COLUMN solicitudcompra_precio.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN solicitudcompra_precio.cod_producto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.cod_producto IS 'Clave principal que hace referencia a la tabla PRODUCTO_UNIDADMEDIDA';


--
-- Name: COLUMN solicitudcompra_precio.id_unidadmedida; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.id_unidadmedida IS 'Clave principal que hace referencia a la tabla PRODUCTO_UNIDADMEDIDA';


--
-- Name: COLUMN solicitudcompra_precio.precio_unitario; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.precio_unitario IS 'Es precio indicado por proveedor en la cotizacion';


--
-- Name: COLUMN solicitudcompra_precio.es_minimo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.es_minimo IS 'Es la mejor opcion calculada por el sistema';


--
-- Name: COLUMN solicitudcompra_precio.es_seleccion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.es_seleccion IS 'Es la mejor opcion seleccionado por el usuario';


--
-- Name: COLUMN solicitudcompra_precio.monto_flete; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_precio.monto_flete IS 'monto total en moneda base';


--
-- Name: solicitudcompra_producto; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.solicitudcompra_producto (
    id_solicitudcompra bigint NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    cantidad double precision NOT NULL,
    unidad_medida character varying(30) NOT NULL,
    item smallint NOT NULL,
    factor_conversion double precision NOT NULL
);


--
-- Name: COLUMN solicitudcompra_producto.id_solicitudcompra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_producto.id_solicitudcompra IS 'Clave principal que hace referencia a la tabla SOLICITUDCOMPRA';


--
-- Name: COLUMN solicitudcompra_producto.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_producto.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN solicitudcompra_producto.cod_producto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_producto.cod_producto IS 'Clave principal que hace referencia a la tabla PRODUCTO';


--
-- Name: COLUMN solicitudcompra_producto.id_unidadmedida; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_producto.id_unidadmedida IS 'Clave principal que hace referencia a la tabla PRODUCTO_UNIDADMEDIDA';


--
-- Name: COLUMN solicitudcompra_producto.cantidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_producto.cantidad IS 'Es la cantidad del producto a cotizar';


--
-- Name: COLUMN solicitudcompra_producto.unidad_medida; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_producto.unidad_medida IS 'Es el codigo que hace referencia a la tabla SOLICITUD_COMPRA';


--
-- Name: solicitudcompra_proveedor; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.solicitudcompra_proveedor (
    id_solicitudcompra bigint NOT NULL,
    id_tipomoneda integer NOT NULL,
    tasa_cambio double precision,
    con_flete smallint,
    incluido_igv smallint,
    costo_flete_kilo double precision,
    igv double precision NOT NULL,
    numero_item smallint,
    id_proveedor bigint NOT NULL
);


--
-- Name: COLUMN solicitudcompra_proveedor.id_solicitudcompra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_proveedor.id_solicitudcompra IS 'Clave principal que hace referencia a la tabla SOLICITUDCOMPRA';


--
-- Name: COLUMN solicitudcompra_proveedor.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.solicitudcompra_proveedor.id_tipomoneda IS 'Clave principal que hace referencia a la tabla TIPO_MONEDA';


--
-- Name: subclase; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.subclase (
    id_subclase integer NOT NULL,
    id_clase integer NOT NULL,
    nombre character varying(100) NOT NULL,
    descripcion character varying(500),
    uso character varying(700),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15)
);


--
-- Name: COLUMN subclase.id_subclase; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.id_subclase IS 'El codigo unico de la tabla SUBCLASE';


--
-- Name: COLUMN subclase.id_clase; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.id_clase IS 'Clave principal que hace referencia a la tabla CLASE';


--
-- Name: COLUMN subclase.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.nombre IS 'Es el nombre de la subclase';


--
-- Name: COLUMN subclase.descripcion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.descripcion IS 'Es lam descripcion de la subclase';


--
-- Name: COLUMN subclase.uso; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.uso IS 'Es una descripcion de los usos de la subclase';


--
-- Name: COLUMN subclase.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN subclase.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN subclase.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN subclase.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN subclase.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.subclase.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: tipo_afectacionigv; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_afectacionigv (
    id_tipoafectacionigv integer NOT NULL,
    nombre character varying(100) NOT NULL,
    id_tipotributo integer NOT NULL,
    estado character(1) NOT NULL,
    codigo_sunat character varying(2) NOT NULL,
    codigo_ose character varying(2),
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: tipo_cambio; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_cambio (
    fecha date NOT NULL,
    id_empresa integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    valor_compra double precision,
    valor_venta double precision,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: COLUMN tipo_cambio.fecha; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cambio.fecha IS 'Fecha a la que pertenece el valor de tipo de cambio';


--
-- Name: COLUMN tipo_cambio.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cambio.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN tipo_cambio.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cambio.id_tipomoneda IS 'codigo unico de tipo de moneda y sirve para identificar a cada cuenta por proveedor. es un dato foraneo de la tabla tipo_moneda.';


--
-- Name: COLUMN tipo_cambio.valor_compra; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cambio.valor_compra IS 'Es el valor del cambio en compra';


--
-- Name: COLUMN tipo_cambio.valor_venta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cambio.valor_venta IS 'Es el valor del cambio en venta';


--
-- Name: tipo_cliente; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_cliente (
    id_tipocliente integer NOT NULL,
    nombre character varying(100) NOT NULL,
    estado character(1) NOT NULL
);


--
-- Name: tipo_cuenta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_cuenta (
    id_tipocuenta integer NOT NULL,
    nombre character varying(50) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) NOT NULL
);


--
-- Name: COLUMN tipo_cuenta.id_tipocuenta; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cuenta.id_tipocuenta IS 'codigo unico de tipo de cuenta. es un dato autogenerado por el sistema.';


--
-- Name: COLUMN tipo_cuenta.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cuenta.nombre IS 'nombre del tipo de cuenta. es un dato obligatorio.';


--
-- Name: COLUMN tipo_cuenta.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cuenta.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN tipo_cuenta.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cuenta.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN tipo_cuenta.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_cuenta.estado IS 'A: Activo, I: Inactivo';


--
-- Name: tipo_documento; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_documento (
    id_tipodocumento integer NOT NULL,
    id_empresa integer NOT NULL,
    descripcion character varying(50) NOT NULL,
    siglas character varying(4) NOT NULL,
    codigo_sunat character varying(2) DEFAULT '00'::character varying NOT NULL,
    es_documento_electronico smallint DEFAULT 0 NOT NULL,
    cxc character(1) DEFAULT '0'::bpchar NOT NULL,
    cxp character(1) DEFAULT '0'::bpchar NOT NULL,
    form_compra character(1) DEFAULT '0'::bpchar NOT NULL,
    form_venta character(1) DEFAULT '0'::bpchar NOT NULL,
    form_nota_credito character(1) DEFAULT '0'::bpchar NOT NULL,
    form_nota_debito character(1) DEFAULT '0'::bpchar NOT NULL,
    form_solic_compra character(1) DEFAULT '0'::bpchar NOT NULL,
    form_orden_compra character(1) DEFAULT '0'::bpchar NOT NULL,
    form_liqui_compra character(1) DEFAULT '0'::bpchar NOT NULL,
    form_proforma character(1) DEFAULT '0'::bpchar NOT NULL,
    form_serv_diversos character(1) DEFAULT '0'::bpchar NOT NULL,
    form_orden_trabajo character(1) DEFAULT '0'::bpchar NOT NULL,
    form_guia character(1) DEFAULT '0'::bpchar,
    estado character(1) DEFAULT 'A'::bpchar,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    condiciones text,
    form_transferencia character(1) DEFAULT '0'::bpchar,
    crystal_report character varying(50),
    nombre_pdf character varying(50),
    codigo_ose character varying(2),
    para_cliente_general smallint NOT NULL,
    form_pedido_venta character(1),
    emision smallint,
    recepcion smallint,
    pdf_termico character varying(50),
    form_almacen_recepcion character(1) DEFAULT '0'::bpchar NOT NULL,
    form_recibo_honorarios smallint DEFAULT 0 NOT NULL,
    CONSTRAINT tipo_documento_chk_codigo_sunat CHECK (((codigo_sunat)::text ~ similar_escape('--|[0-9][0-9]'::text, NULL::text)))
);


--
-- Name: COLUMN tipo_documento.id_tipodocumento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_documento.id_tipodocumento IS 'Codigo unico de tipo de documento. es un dato autogenerado por el sistema.';


--
-- Name: COLUMN tipo_documento.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_documento.id_empresa IS 'Clave principal que hace referencia de la tabla EMPRESA';


--
-- Name: COLUMN tipo_documento.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_documento.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN tipo_documento.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_documento.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN tipo_documento.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_documento.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN tipo_documento.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_documento.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN tipo_documento.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_documento.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: tipo_identidad; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_identidad (
    codigo_sunat character varying(2) NOT NULL,
    nombre character varying(100) NOT NULL,
    nombre_corto character varying(20),
    id_tipoidentidad integer NOT NULL,
    codigo_ose character varying(2),
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL
);


--
-- Name: tipo_moneda; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_moneda (
    id_tipomoneda integer NOT NULL,
    nombre character varying(100) NOT NULL,
    simbolo character varying(3) NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    es_base smallint NOT NULL,
    codigo_sunat character varying(2),
    codigo_iso character varying(5)
);


--
-- Name: COLUMN tipo_moneda.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.id_tipomoneda IS 'codigo unico de tipo de moneda de la cuenta. es un dato autogenerado por el sistema.';


--
-- Name: COLUMN tipo_moneda.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.nombre IS 'nombre del tipo de moneda de la cuenta. es un dato obligatorio.';


--
-- Name: COLUMN tipo_moneda.simbolo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.simbolo IS 'simbolo del tipo de moneda';


--
-- Name: COLUMN tipo_moneda.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.estado IS 'A: Activo, I: Inactivo';


--
-- Name: COLUMN tipo_moneda.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.fecha_creacion IS 'fecha en que se realiza el registro';


--
-- Name: COLUMN tipo_moneda.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.usuario_creacion IS 'usuario que realiza el registro';


--
-- Name: COLUMN tipo_moneda.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.fecha_modificacion IS 'fecha en que se realizó la modificacion';


--
-- Name: COLUMN tipo_moneda.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_moneda.usuario_modificacion IS 'usuario que realizó la modificación';


--
-- Name: tipo_operacion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_operacion (
    id_tipooperacion integer NOT NULL,
    nombre character varying(100),
    codigo_sunat character varying(4),
    codigo_ose character varying(4),
    estado character(1),
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15)
);


--
-- Name: tipo_pago; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_pago (
    id_tipopago integer NOT NULL,
    nombre character varying(30) NOT NULL,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) DEFAULT 'A'::bpchar NOT NULL
);


--
-- Name: COLUMN tipo_pago.id_tipopago; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_pago.id_tipopago IS 'Codigo autogenerado del tipo_pago';


--
-- Name: COLUMN tipo_pago.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_pago.nombre IS 'Es la descripcion del tipo de pago';


--
-- Name: COLUMN tipo_pago.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_pago.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN tipo_pago.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_pago.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN tipo_pago.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_pago.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN tipo_pago.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_pago.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN tipo_pago.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.tipo_pago.estado IS 'A: Activo, I: Inactivo';


--
-- Name: tipo_tributo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipo_tributo (
    id_tipotributo integer NOT NULL,
    nombre character varying(100) NOT NULL,
    codigo_sunat character varying(5) NOT NULL,
    codigo_internacional character varying(5) NOT NULL,
    siglas character varying(6) NOT NULL,
    base character varying(20),
    estado character(1) NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone
);


--
-- Name: tipopago_interes; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.tipopago_interes (
    id_tipopagointeres integer NOT NULL,
    id_tipopago integer NOT NULL,
    nombre character varying(20) NOT NULL,
    tasa double precision,
    id_empresa integer NOT NULL,
    fecha_creacion timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    estado character(1) NOT NULL
);


--
-- Name: trabajador; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.trabajador (
    numero_identidad character varying(15) NOT NULL,
    nombre character varying(50),
    apellido_paterno character varying(40),
    apellido_materno character varying(40),
    sexo character(1),
    fecha_nacimiento date,
    correo character varying(100),
    telefono character varying(15),
    direccion character varying(150),
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) DEFAULT 'A'::bpchar,
    area character varying(100),
    cargo character varying(100),
    ubigeo character(6),
    id_tipoidentidad integer NOT NULL,
    id_trabajador integer NOT NULL,
    licencia_numero character varying(20)
);


--
-- Name: COLUMN trabajador.nombre; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.nombre IS 'Campo que corresponde al nombre del trabajador';


--
-- Name: COLUMN trabajador.apellido_paterno; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.apellido_paterno IS 'Campo que corresponde al apellido paterno del trabajador';


--
-- Name: COLUMN trabajador.apellido_materno; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.apellido_materno IS 'Campo que corresponde al apellido materno del trabajador';


--
-- Name: COLUMN trabajador.sexo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.sexo IS 'Sexo del trabajador M:Masculino y F: Femenino';


--
-- Name: COLUMN trabajador.fecha_nacimiento; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.fecha_nacimiento IS 'Campo que corresponde a la fecha de nacimiento del trabajador';


--
-- Name: COLUMN trabajador.correo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.correo IS 'Correo personal';


--
-- Name: COLUMN trabajador.telefono; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.telefono IS 'Campo que corresponde al telefono del trabajador';


--
-- Name: COLUMN trabajador.direccion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.direccion IS 'Campo que corresponde a la direccion del trabajador';


--
-- Name: COLUMN trabajador.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN trabajador.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN trabajador.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN trabajador.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro
';


--
-- Name: COLUMN trabajador.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.trabajador.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: transferencia; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.transferencia (
    id_transferencia integer NOT NULL,
    id_motivo integer NOT NULL,
    id_localidad integer NOT NULL,
    id_empresa integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    observacion character varying(250),
    fecha timestamp without time zone NOT NULL,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_modificacion timestamp without time zone,
    usuario_modificacion character varying(15),
    responsable character varying(100),
    tasa_cambio double precision NOT NULL,
    id_documento integer NOT NULL,
    igv double precision NOT NULL,
    id_localidaddestino integer,
    cliente_proveedor character varying(150),
    importe_bruto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    valor_venta double precision NOT NULL,
    cod_estado character(2) NOT NULL,
    inventario_inicial smallint NOT NULL,
    igv_monto double precision,
    total double precision,
    documento_referencia character varying(25),
    empresa_compra character varying(150),
    tipo_almacen character varying(10) NOT NULL,
    id_compra integer,
    transportista_nombre character varying(150),
    id_venta integer
);


--
-- Name: COLUMN transferencia.id_transferencia; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.id_transferencia IS 'Codigo unico de transferencia, asignado pro el sistema';


--
-- Name: COLUMN transferencia.id_motivo; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.id_motivo IS 'Clave principal que hace referencia a la tabla MOTIVO';


--
-- Name: COLUMN transferencia.id_localidad; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.id_localidad IS 'Clave principal que hace referencia a la tabla LOCALIDAD';


--
-- Name: COLUMN transferencia.id_empresa; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.id_empresa IS 'Clave principal que hace referencia a la tabla EMPRESA';


--
-- Name: COLUMN transferencia.id_tipomoneda; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.id_tipomoneda IS 'Clave principal que hace referencia a la tabla TIPO_MONEDA';


--
-- Name: COLUMN transferencia.observacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.observacion IS 'Observaciones / comentarios sobre la transferencia';


--
-- Name: COLUMN transferencia.fecha; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.fecha IS 'Fecha de la transferencia
';


--
-- Name: COLUMN transferencia.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: COLUMN transferencia.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN transferencia.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN transferencia.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN transferencia.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.transferencia.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla
';


--
-- Name: transferencia_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.transferencia_detalle (
    id_transferencia integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    cantidad double precision NOT NULL,
    producto_descripcion character varying(500),
    unidad_medida character varying(100) NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    valor_unitario double precision NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta double precision NOT NULL,
    igv_monto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    tasa_cambio double precision NOT NULL
);


--
-- Name: uit; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.uit (
    anio character(4) NOT NULL,
    monto numeric
);


--
-- Name: unidad_medida; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.unidad_medida (
    id_unidadmedida integer NOT NULL,
    nombre character varying(30) NOT NULL,
    abreviatura character varying(7) NOT NULL,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    codigo_ose character varying(4),
    tipo character(1) NOT NULL
);


--
-- Name: COLUMN unidad_medida.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.unidad_medida.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN unidad_medida.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.unidad_medida.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN unidad_medida.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.unidad_medida.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN unidad_medida.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.unidad_medida.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN unidad_medida.estado; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.unidad_medida.estado IS 'Es el campo que guarda A:activo o I:inactivo referido al registro';


--
-- Name: unspsc_clase; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.unspsc_clase (
    id_unspsc_clase integer NOT NULL,
    nombre character varying(250),
    codigo character varying(8),
    id_unspsc_familia integer
);


--
-- Name: unspsc_clase_id_unspsc_clase_seq; Type: SEQUENCE; Schema: isos; Owner: -
--

CREATE SEQUENCE isos.unspsc_clase_id_unspsc_clase_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: unspsc_clase_id_unspsc_clase_seq; Type: SEQUENCE OWNED BY; Schema: isos; Owner: -
--

ALTER SEQUENCE isos.unspsc_clase_id_unspsc_clase_seq OWNED BY isos.unspsc_clase.id_unspsc_clase;


--
-- Name: unspsc_commodity; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.unspsc_commodity (
    id_unspsc_commodity integer NOT NULL,
    nombre character varying(250),
    codigo character varying(8),
    id_unspsc_clase integer
);


--
-- Name: unspsc_commodity_id_unspsc_commodity_seq; Type: SEQUENCE; Schema: isos; Owner: -
--

CREATE SEQUENCE isos.unspsc_commodity_id_unspsc_commodity_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: unspsc_commodity_id_unspsc_commodity_seq; Type: SEQUENCE OWNED BY; Schema: isos; Owner: -
--

ALTER SEQUENCE isos.unspsc_commodity_id_unspsc_commodity_seq OWNED BY isos.unspsc_commodity.id_unspsc_commodity;


--
-- Name: unspsc_familia; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.unspsc_familia (
    id_unspsc_familia integer NOT NULL,
    nombre character varying(250) NOT NULL,
    codigo character varying(8) NOT NULL,
    id_unspsc_segmento integer
);


--
-- Name: unspsc_familia_id_unspsc_familia_seq; Type: SEQUENCE; Schema: isos; Owner: -
--

CREATE SEQUENCE isos.unspsc_familia_id_unspsc_familia_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: unspsc_familia_id_unspsc_familia_seq; Type: SEQUENCE OWNED BY; Schema: isos; Owner: -
--

ALTER SEQUENCE isos.unspsc_familia_id_unspsc_familia_seq OWNED BY isos.unspsc_familia.id_unspsc_familia;


--
-- Name: unspsc_segmento; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.unspsc_segmento (
    id_unspsc_segmento integer NOT NULL,
    nombre character varying(250) NOT NULL,
    codigo character varying(8) NOT NULL
);


--
-- Name: unspsc_segmento_id_unspsc_segmento_seq; Type: SEQUENCE; Schema: isos; Owner: -
--

CREATE SEQUENCE isos.unspsc_segmento_id_unspsc_segmento_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


--
-- Name: unspsc_segmento_id_unspsc_segmento_seq; Type: SEQUENCE OWNED BY; Schema: isos; Owner: -
--

ALTER SEQUENCE isos.unspsc_segmento_id_unspsc_segmento_seq OWNED BY isos.unspsc_segmento.id_unspsc_segmento;


--
-- Name: usuario; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.usuario (
    usuario character varying(15) NOT NULL,
    cod_perfil character(2),
    nombre character varying(150) NOT NULL,
    correo character varying(150),
    token_web character varying(250),
    f_modificacionclave timestamp without time zone,
    usuario_creacion character varying(15),
    fecha_creacion timestamp without time zone,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) DEFAULT 'A'::bpchar NOT NULL,
    ultima_conexion timestamp without time zone,
    id_empresa_default integer,
    id_localidad_default integer,
    id_puntoventa_default integer,
    id_usuario integer NOT NULL,
    firma_correo character varying,
    celular character(9),
    password character varying(250),
    api_token character varying(250),
    chat_estado character varying(10),
    uuid uuid NOT NULL,
    id_trabajador integer,
    CONSTRAINT ck_trabajador_estado CHECK (((estado = 'A'::bpchar) OR (estado = 'I'::bpchar)))
);


--
-- Name: COLUMN usuario.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.usuario.usuario_modificacion IS 'fica la tabla';


--
-- Name: usuario_empresa; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.usuario_empresa (
    id_usuario integer NOT NULL,
    id_empresa integer NOT NULL,
    correo_compras character varying(254),
    correo_ventas character varying(254)
);


--
-- Name: usuario_puntoventa; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.usuario_puntoventa (
    usuario character varying(15) NOT NULL,
    id_puntoventa integer NOT NULL
);


--
-- Name: venta; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.venta (
    id_venta integer NOT NULL,
    fecha timestamp without time zone NOT NULL,
    id_empresa integer NOT NULL,
    id_cliente integer NOT NULL,
    id_tipomoneda integer NOT NULL,
    id_documento integer NOT NULL,
    id_puntoventa integer NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL,
    observacion character varying(500),
    tasa_cambio double precision NOT NULL,
    igv double precision NOT NULL,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    estado character(1) NOT NULL,
    total double precision NOT NULL,
    igv_monto double precision NOT NULL,
    id_proforma integer,
    cod_estado character(2) NOT NULL,
    credito_tasa double precision NOT NULL,
    credito_nombre character varying(100),
    cliente_nombre character varying(150),
    cliente_direccion character varying(250),
    fecha_anulacion timestamp without time zone,
    pendiente_entrega smallint NOT NULL,
    valor_venta double precision,
    bien_servicio character(1) DEFAULT 'B'::bpchar NOT NULL,
    motivo_anulacion character varying(250),
    id_vendedor integer,
    importe_bruto double precision NOT NULL,
    descuento_bruto double precision NOT NULL,
    uuid_a uuid NOT NULL,
    uuid_b uuid NOT NULL,
    fecha_vencimiento date,
    id_tipooperacion integer,
    valor_venta_gravado numeric NOT NULL,
    valor_venta_exonerado numeric NOT NULL,
    valor_venta_gratuito numeric NOT NULL,
    valor_venta_inafecto numeric NOT NULL,
    nro_orden_compra character varying(50),
    enviado_cliente smallint DEFAULT 0 NOT NULL,
    leido_cliente smallint DEFAULT 0 NOT NULL,
    aceptado_sunat smallint DEFAULT 0 NOT NULL,
    json_respuesta_ose json,
    descuento_global numeric,
    sunat_anulado smallint DEFAULT 0 NOT NULL,
    id_condicionventa integer NOT NULL,
    descuento_total numeric NOT NULL,
    mali_api smallint,
    anulacion_observacion character varying(250),
    id_motivo_anulacion integer,
    id_pedido_venta bigint,
    con_guia smallint DEFAULT 0 NOT NULL,
    estado_sunat character(2),
    usuario_anulacion character varying(15)
);


--
-- Name: COLUMN venta.usuario_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.venta.usuario_creacion IS 'Es el campo que guarda el nombre del usuario en el registro';


--
-- Name: COLUMN venta.fecha_creacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.venta.fecha_creacion IS 'Es el campo que guarda con fecha de creacion del registro';


--
-- Name: COLUMN venta.usuario_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.venta.usuario_modificacion IS 'Es el campo que guarda el nombre del usuario que modifica la tabla';


--
-- Name: COLUMN venta.fecha_modificacion; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.venta.fecha_modificacion IS 'Es un campo que se modifica cada vez que el usuario ingrese al registro';


--
-- Name: COLUMN venta.igv_monto; Type: COMMENT; Schema: isos; Owner: -
--

COMMENT ON COLUMN isos.venta.igv_monto IS '= valor_venta*igv';


--
-- Name: v_fe; Type: VIEW; Schema: isos; Owner: -
--

CREATE VIEW isos.v_fe AS
 SELECT v.uuid_a,
    v.uuid_b,
    'venta'::text AS tabla,
    v.id_venta AS tabla_id,
    td.codigo_sunat AS td_codigo_sunat,
    v.fecha AS fecha_emision,
    v.serie,
    v.correlativo,
    v.total,
    v.estado,
    e.ruc AS e_ruc
   FROM (((isos.venta v
     JOIN isos.empresa e ON ((v.id_empresa = e.id_empresa)))
     JOIN isos.documento d ON ((v.id_documento = d.id_documento)))
     JOIN isos.tipo_documento td ON ((d.id_tipodocumento = td.id_tipodocumento)))
UNION
 SELECT nc.uuid_a,
    nc.uuid_b,
    'nota_credito'::text AS tabla,
    nc.id_nota_credito AS tabla_id,
    td.codigo_sunat AS td_codigo_sunat,
    nc.fecha AS fecha_emision,
    nc.serie,
    nc.correlativo,
    nc.total,
    nc.estado,
    e.ruc AS e_ruc
   FROM ((((isos.nota_credito nc
     JOIN isos.nota_credito_venta ncv ON ((nc.id_nota_credito = ncv.id_nota_credito)))
     JOIN isos.empresa e ON ((nc.id_empresa = e.id_empresa)))
     JOIN isos.documento d ON ((nc.id_documento = d.id_documento)))
     JOIN isos.tipo_documento td ON ((d.id_tipodocumento = td.id_tipodocumento)))
UNION
 SELECT nd.uuid_a,
    nd.uuid_b,
    'nota_debito'::text AS tabla,
    nd.id_nota_debito AS tabla_id,
    td.codigo_sunat AS td_codigo_sunat,
    nd.fecha AS fecha_emision,
    nd.serie,
    nd.correlativo,
    nd.total,
    nd.estado,
    e.ruc AS e_ruc
   FROM ((((isos.nota_debito nd
     JOIN isos.nota_debito_venta ndv ON ((nd.id_nota_debito = ndv.id_nota_debito)))
     JOIN isos.empresa e ON ((nd.id_empresa = e.id_empresa)))
     JOIN isos.documento d ON ((nd.id_documento = d.id_documento)))
     JOIN isos.tipo_documento td ON ((d.id_tipodocumento = td.id_tipodocumento)));


--
-- Name: v_ubigeo; Type: VIEW; Schema: isos; Owner: -
--

CREATE VIEW isos.v_ubigeo AS
 SELECT de.nombre AS de_nombre,
    de.nombre AS departamento,
    de.codigo_departamento,
    de.codigo_departamento AS cod_departamento,
    pr.nombre AS pr_nombre,
    pr.nombre AS provincia,
    pr.codigo_provincia,
    pr.codigo_provincia AS cod_provincia,
    di.nombre AS di_nombre,
    di.codigo_distrito,
    di.nombre AS distrito,
    di.codigo_distrito AS cod_distrito
   FROM ((isos.departamento de
     JOIN isos.provincia pr ON ((de.codigo_departamento = pr.codigo_departamento)))
     JOIN isos.distrito di ON ((di.codigo_provincia = pr.codigo_provincia)));


--
-- Name: venta_correo; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.venta_correo (
    id_ventacorreo bigint NOT NULL,
    id_venta bigint NOT NULL,
    email character varying(255) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_creacion character varying(15) NOT NULL
);


--
-- Name: venta_detalle; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.venta_detalle (
    id_venta integer NOT NULL,
    id_empresa integer NOT NULL,
    cod_producto character varying(10) NOT NULL,
    id_unidadmedida integer NOT NULL,
    producto_descripcion character varying(500) NOT NULL,
    unidad_medida character varying(100) NOT NULL,
    cantidad numeric NOT NULL,
    valor_unitario double precision NOT NULL,
    importe_flete double precision NOT NULL,
    porcentaje_descuento double precision NOT NULL,
    factor_conversion double precision NOT NULL,
    igv double precision NOT NULL,
    credito_tasa double precision NOT NULL,
    tasa_cambio numeric NOT NULL,
    item smallint NOT NULL,
    precio_unitario double precision NOT NULL,
    importe_bruto double precision NOT NULL,
    valor_venta numeric NOT NULL,
    igv_monto numeric NOT NULL,
    descuento_bruto double precision NOT NULL,
    peso_total double precision NOT NULL,
    id_tipoafectacionigv integer NOT NULL
);


--
-- Name: venta_detraccion; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.venta_detraccion (
    id_venta integer NOT NULL,
    id_concepto_detraccion integer NOT NULL,
    monto numeric NOT NULL,
    proporcion numeric NOT NULL,
    monto_redondeado numeric,
    usuario_creacion character varying(15) NOT NULL,
    fecha_creacion timestamp without time zone NOT NULL,
    usuario_modificacion character varying(15),
    fecha_modificacion timestamp without time zone,
    numero_operacion character varying(50),
    cod_estado character(2) NOT NULL,
    motivo_anulacion character varying(250)
);


--
-- Name: venta_guia; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.venta_guia (
    id_venta integer NOT NULL,
    tipo character varying(13) NOT NULL,
    serie character varying(5) NOT NULL,
    correlativo character varying(10) NOT NULL
);


--
-- Name: venta_proforma; Type: TABLE; Schema: isos; Owner: -
--

CREATE TABLE isos.venta_proforma (
    id_venta integer NOT NULL,
    id_proforma integer NOT NULL,
    item smallint NOT NULL
);


--
-- Name: mes; Type: TABLE; Schema: report; Owner: -
--

CREATE TABLE report.mes (
    id_mes smallint NOT NULL,
    nombre character varying(10)
);


--
-- Name: usuario; Type: TABLE; Schema: report; Owner: -
--

CREATE TABLE report.usuario (
    usuario character varying(15) NOT NULL,
    id_usuario integer NOT NULL,
    cod_perfil character(2) NOT NULL,
    nombre character varying(150) NOT NULL,
    contrasenia character varying(255) NOT NULL,
    cod_trabajador character(8) NOT NULL,
    email character varying(150) NOT NULL,
    email_verified_at timestamp(0) without time zone,
    remember_token character varying(100),
    created_at timestamp(0) without time zone,
    updated_at timestamp(0) without time zone
);


--
-- Name: _demo a; Type: DEFAULT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos._demo ALTER COLUMN a SET DEFAULT nextval('isos._demo_a_seq'::regclass);


--
-- Name: orden_trabajo_historial id_orden_trabajo_historial; Type: DEFAULT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_historial ALTER COLUMN id_orden_trabajo_historial SET DEFAULT nextval('isos.orden_trabajo_historial_id_orden_trabajo_historial_seq'::regclass);


--
-- Name: unspsc_clase id_unspsc_clase; Type: DEFAULT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_clase ALTER COLUMN id_unspsc_clase SET DEFAULT nextval('isos.unspsc_clase_id_unspsc_clase_seq'::regclass);


--
-- Name: unspsc_commodity id_unspsc_commodity; Type: DEFAULT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_commodity ALTER COLUMN id_unspsc_commodity SET DEFAULT nextval('isos.unspsc_commodity_id_unspsc_commodity_seq'::regclass);


--
-- Name: unspsc_familia id_unspsc_familia; Type: DEFAULT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_familia ALTER COLUMN id_unspsc_familia SET DEFAULT nextval('isos.unspsc_familia_id_unspsc_familia_seq'::regclass);


--
-- Name: unspsc_segmento id_unspsc_segmento; Type: DEFAULT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_segmento ALTER COLUMN id_unspsc_segmento SET DEFAULT nextval('isos.unspsc_segmento_id_unspsc_segmento_seq'::regclass);


--
-- Name: caja pk_caja; Type: CONSTRAINT; Schema: caja; Owner: -
--

ALTER TABLE ONLY caja.caja
    ADD CONSTRAINT pk_caja PRIMARY KEY (id_caja);


--
-- Name: caja_item pk_caja_item; Type: CONSTRAINT; Schema: caja; Owner: -
--

ALTER TABLE ONLY caja.caja_item
    ADD CONSTRAINT pk_caja_item PRIMARY KEY (id_caja, id_denominacion, item);


--
-- Name: caja_transaccion pk_caja_transaccion; Type: CONSTRAINT; Schema: caja; Owner: -
--

ALTER TABLE ONLY caja.caja_transaccion
    ADD CONSTRAINT pk_caja_transaccion PRIMARY KEY (id_caja, id_transaccion);


--
-- Name: denominacion pk_denominacion; Type: CONSTRAINT; Schema: caja; Owner: -
--

ALTER TABLE ONLY caja.denominacion
    ADD CONSTRAINT pk_denominacion PRIMARY KEY (id_denominacion);


--
-- Name: chat pk_chat; Type: CONSTRAINT; Schema: chat; Owner: -
--

ALTER TABLE ONLY chat.chat
    ADD CONSTRAINT pk_chat PRIMARY KEY (id_chat);


--
-- Name: contacto pk_contacto; Type: CONSTRAINT; Schema: chat; Owner: -
--

ALTER TABLE ONLY chat.contacto
    ADD CONSTRAINT pk_contacto PRIMARY KEY (id_contacto);


--
-- Name: contacto uq_contacto; Type: CONSTRAINT; Schema: chat; Owner: -
--

ALTER TABLE ONLY chat.contacto
    ADD CONSTRAINT uq_contacto UNIQUE (id_usuario, id_usuariocontacto);


--
-- Name: empresa_contabilidad pk_empresacontabilidad; Type: CONSTRAINT; Schema: conta; Owner: -
--

ALTER TABLE ONLY conta.empresa_contabilidad
    ADD CONSTRAINT pk_empresacontabilidad PRIMARY KEY (id_empresa, id_regimen);


--
-- Name: regimen pk_regimen; Type: CONSTRAINT; Schema: conta; Owner: -
--

ALTER TABLE ONLY conta.regimen
    ADD CONSTRAINT pk_regimen PRIMARY KEY (id_regimen);


--
-- Name: tipo_documento pk_tipodocumento; Type: CONSTRAINT; Schema: cpe; Owner: -
--

ALTER TABLE ONLY cpe.tipo_documento
    ADD CONSTRAINT pk_tipodocumento PRIMARY KEY (id_tipodocumento);


--
-- Name: file pk_file; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file
    ADD CONSTRAINT pk_file PRIMARY KEY (id_file);


--
-- Name: file_orden_trabajo pk_file_orden_trabajo; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_orden_trabajo
    ADD CONSTRAINT pk_file_orden_trabajo PRIMARY KEY (id_file, id_orden_trabajo);


--
-- Name: file_pedido_venta pk_file_pedido_venta; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_pedido_venta
    ADD CONSTRAINT pk_file_pedido_venta PRIMARY KEY (id_file, id_pedido_venta);


--
-- Name: file_recibo_honorarios pk_file_recibo_honorarios; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_recibo_honorarios
    ADD CONSTRAINT pk_file_recibo_honorarios PRIMARY KEY (id_file, id_recibo_honorarios);


--
-- Name: file_compra pk_filecompra; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_compra
    ADD CONSTRAINT pk_filecompra PRIMARY KEY (id_file, id_compra);


--
-- Name: file_compraguia pk_filecompraguia; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_compraguia
    ADD CONSTRAINT pk_filecompraguia PRIMARY KEY (id_file, id_compraguia);


--
-- Name: file_empresa pk_fileempresa; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_empresa
    ADD CONSTRAINT pk_fileempresa PRIMARY KEY (id_file, id_empresa);


--
-- Name: file_movimientopago pk_filemovimientopago; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_movimientopago
    ADD CONSTRAINT pk_filemovimientopago PRIMARY KEY (id_file, id_movimiento, item);


--
-- Name: file_nota_credito pk_filenotacredito; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_nota_credito
    ADD CONSTRAINT pk_filenotacredito PRIMARY KEY (id_file, id_nota_credito);


--
-- Name: file_nota_debito pk_filenotadebito; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_nota_debito
    ADD CONSTRAINT pk_filenotadebito PRIMARY KEY (id_file, id_nota_debito);


--
-- Name: file_recepciondetalle pk_recepciondetalle; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_recepciondetalle
    ADD CONSTRAINT pk_recepciondetalle PRIMARY KEY (id_file, id_recepcion, item);


--
-- Name: file uq_file; Type: CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file
    ADD CONSTRAINT uq_file UNIQUE (uuid_a, uuid_b);


--
-- Name: almacen_motivo almacen_motivo_pkey; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.almacen_motivo
    ADD CONSTRAINT almacen_motivo_pkey PRIMARY KEY (id_motivo);


--
-- Name: cliente cliente_pk; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.cliente
    ADD CONSTRAINT cliente_pk PRIMARY KEY (id_cliente);


--
-- Name: egreso egreso_pkey; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.egreso
    ADD CONSTRAINT egreso_pkey PRIMARY KEY (id_egreso);


--
-- Name: item item_pk; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.item
    ADD CONSTRAINT item_pk PRIMARY KEY (id_item);


--
-- Name: actividad_economica pk_actividad_economica; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.actividad_economica
    ADD CONSTRAINT pk_actividad_economica PRIMARY KEY (id_actividadeconomica);


--
-- Name: uit pk_anio; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.uit
    ADD CONSTRAINT pk_anio PRIMARY KEY (anio);


--
-- Name: clase pk_clase; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.clase
    ADD CONSTRAINT pk_clase PRIMARY KEY (id_clase);


--
-- Name: cliente_empresa pk_clienteempresa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.cliente_empresa
    ADD CONSTRAINT pk_clienteempresa PRIMARY KEY (id_cliente, id_empresa);


--
-- Name: compra pk_compra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT pk_compra PRIMARY KEY (id_compra);


--
-- Name: compra_detraccion pk_compra_detraccion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_detraccion
    ADD CONSTRAINT pk_compra_detraccion PRIMARY KEY (id_compra, id_concepto_detraccion);


--
-- Name: compra_flete pk_compra_flete; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_flete
    ADD CONSTRAINT pk_compra_flete PRIMARY KEY (id_compra_flete);


--
-- Name: compra_flete_item pk_compra_flete_item; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_flete_item
    ADD CONSTRAINT pk_compra_flete_item PRIMARY KEY (id_compra_flete, id_empresa, cod_producto, id_unidadmedida, item);


--
-- Name: compra_anticipo pk_compraanticipo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_anticipo
    ADD CONSTRAINT pk_compraanticipo PRIMARY KEY (id_compra, id_anticipo);


--
-- Name: compra_detalle pk_compradetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_detalle
    ADD CONSTRAINT pk_compradetalle PRIMARY KEY (id_compra, id_empresa, cod_producto, id_unidadmedida, item);


--
-- Name: compra_guia pk_compraguia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_guia
    ADD CONSTRAINT pk_compraguia PRIMARY KEY (id_compraguia);


--
-- Name: compra_nota_credito pk_compranotacredito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_nota_credito
    ADD CONSTRAINT pk_compranotacredito PRIMARY KEY (id_compra, id_nota_credito);


--
-- Name: concepto_detraccion pk_concepto_detraccion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.concepto_detraccion
    ADD CONSTRAINT pk_concepto_detraccion PRIMARY KEY (id_concepto_detraccion);


--
-- Name: condicion_venta pk_condicionventa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.condicion_venta
    ADD CONSTRAINT pk_condicionventa PRIMARY KEY (id_condicionventa);


--
-- Name: credito pk_credito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.credito
    ADD CONSTRAINT pk_credito PRIMARY KEY (id_credito);


--
-- Name: credito_detalle pk_creditodetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.credito_detalle
    ADD CONSTRAINT pk_creditodetalle PRIMARY KEY (id_credito, numero_cuota);


--
-- Name: declaracion pk_declaracion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.declaracion
    ADD CONSTRAINT pk_declaracion PRIMARY KEY (id_declaracion);


--
-- Name: _demo pk_demo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos._demo
    ADD CONSTRAINT pk_demo PRIMARY KEY (a);


--
-- Name: departamento pk_departamento; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.departamento
    ADD CONSTRAINT pk_departamento PRIMARY KEY (codigo_departamento);


--
-- Name: deuda pk_deuda; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.deuda
    ADD CONSTRAINT pk_deuda PRIMARY KEY (id_deuda);


--
-- Name: deuda_detalle pk_deudadetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.deuda_detalle
    ADD CONSTRAINT pk_deudadetalle PRIMARY KEY (id_deuda, numero_cuota);


--
-- Name: direccion pk_direccion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.direccion
    ADD CONSTRAINT pk_direccion PRIMARY KEY (id_direccion);


--
-- Name: distrito pk_distrito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.distrito
    ADD CONSTRAINT pk_distrito PRIMARY KEY (codigo_distrito);


--
-- Name: documento pk_documento; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento
    ADD CONSTRAINT pk_documento PRIMARY KEY (id_documento);


--
-- Name: documento_detalle pk_documentodetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento_detalle
    ADD CONSTRAINT pk_documentodetalle PRIMARY KEY (id_documento, id_item);


--
-- Name: empresa pk_empresa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa
    ADD CONSTRAINT pk_empresa PRIMARY KEY (id_empresa);


--
-- Name: empresa_cuenta pk_empresa_cuenta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa_cuenta
    ADD CONSTRAINT pk_empresa_cuenta PRIMARY KEY (id_empresacuenta);


--
-- Name: entidad_financiera pk_entidad_financiera; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.entidad_financiera
    ADD CONSTRAINT pk_entidad_financiera PRIMARY KEY (id_entidadfinanciera);


--
-- Name: estado pk_estado; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.estado
    ADD CONSTRAINT pk_estado PRIMARY KEY (cod_estado);


--
-- Name: evento pk_evento; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento
    ADD CONSTRAINT pk_evento PRIMARY KEY (modulo, evento);


--
-- Name: evento_x_perfil pk_evento_x_perfil; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento_x_perfil
    ADD CONSTRAINT pk_evento_x_perfil PRIMARY KEY (modulo, evento, cod_perfil);


--
-- Name: evento_x_usuario pk_evento_x_usuario; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento_x_usuario
    ADD CONSTRAINT pk_evento_x_usuario PRIMARY KEY (modulo, evento, usuario);


--
-- Name: grupo_maestro pk_grupomaestro; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.grupo_maestro
    ADD CONSTRAINT pk_grupomaestro PRIMARY KEY (id_grupomaestro);


--
-- Name: guia_correo pk_guia_correo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_correo
    ADD CONSTRAINT pk_guia_correo PRIMARY KEY (id_guia_correo);


--
-- Name: guia_emision pk_guia_emision; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision
    ADD CONSTRAINT pk_guia_emision PRIMARY KEY (id_guia);


--
-- Name: guia_emision_item pk_guia_emision_item; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision_item
    ADD CONSTRAINT pk_guia_emision_item PRIMARY KEY (id_guia, id_empresa, item, cod_producto, id_unidadmedida);


--
-- Name: guia_recepcion pk_guia_recepcion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion
    ADD CONSTRAINT pk_guia_recepcion PRIMARY KEY (id_guia);


--
-- Name: guia_recepcion_item pk_guia_recepcion_item; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion_item
    ADD CONSTRAINT pk_guia_recepcion_item PRIMARY KEY (id_guia, id_empresa, item, cod_producto, id_unidadmedida);


--
-- Name: kardex pk_kardex; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex
    ADD CONSTRAINT pk_kardex PRIMARY KEY (id_kardex);


--
-- Name: kardex_compra pk_kardex_compra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_compra
    ADD CONSTRAINT pk_kardex_compra PRIMARY KEY (id_kardex, id_compra);


--
-- Name: kardex_guia_emision pk_kardex_guia_emision; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_guia_emision
    ADD CONSTRAINT pk_kardex_guia_emision PRIMARY KEY (id_kardex, id_guia);


--
-- Name: kardex_guia_recepcion pk_kardex_guia_recepcion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_guia_recepcion
    ADD CONSTRAINT pk_kardex_guia_recepcion PRIMARY KEY (id_kardex, id_guia);


--
-- Name: kardex_nota_credito pk_kardex_notacredito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_nota_credito
    ADD CONSTRAINT pk_kardex_notacredito PRIMARY KEY (id_kardex, id_notacredito);


--
-- Name: kardex_transferencia pk_kardex_transferencia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_transferencia
    ADD CONSTRAINT pk_kardex_transferencia PRIMARY KEY (id_kardex, id_transferencia);


--
-- Name: kardex_venta pk_kardex_venta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_venta
    ADD CONSTRAINT pk_kardex_venta PRIMARY KEY (id_kardex, id_venta);


--
-- Name: linea pk_linea; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.linea
    ADD CONSTRAINT pk_linea PRIMARY KEY (id_linea);


--
-- Name: localidad pk_localidad; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.localidad
    ADD CONSTRAINT pk_localidad PRIMARY KEY (id_localidad);


--
-- Name: localidad_usuario pk_localidad_usuario; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.localidad_usuario
    ADD CONSTRAINT pk_localidad_usuario PRIMARY KEY (id_localidad, usuario);


--
-- Name: maestro pk_maestro; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.maestro
    ADD CONSTRAINT pk_maestro PRIMARY KEY (id_maestro);


--
-- Name: marca pk_marca; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.marca
    ADD CONSTRAINT pk_marca PRIMARY KEY (id_marca);


--
-- Name: menu pk_menu; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.menu
    ADD CONSTRAINT pk_menu PRIMARY KEY (id_menu);


--
-- Name: forma_pago pk_metodopago; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.forma_pago
    ADD CONSTRAINT pk_metodopago PRIMARY KEY (id_formapago);


--
-- Name: modalidad_transporte pk_modalidad_transporte; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modalidad_transporte
    ADD CONSTRAINT pk_modalidad_transporte PRIMARY KEY (id_modalidad_transporte);


--
-- Name: modulo pk_modulo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo
    ADD CONSTRAINT pk_modulo PRIMARY KEY (modulo);


--
-- Name: modulo_x_perfil pk_modulo_x_perfil; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo_x_perfil
    ADD CONSTRAINT pk_modulo_x_perfil PRIMARY KEY (cod_perfil, modulo);


--
-- Name: modulo_x_usuario pk_modulo_x_usuario; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo_x_usuario
    ADD CONSTRAINT pk_modulo_x_usuario PRIMARY KEY (modulo, usuario);


--
-- Name: motivo_anulacion pk_motivo_anulacion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.motivo_anulacion
    ADD CONSTRAINT pk_motivo_anulacion PRIMARY KEY (id_motivo_anulacion);


--
-- Name: motivo_traslado pk_motivo_traslado; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.motivo_traslado
    ADD CONSTRAINT pk_motivo_traslado PRIMARY KEY (id_motivo_traslado);


--
-- Name: motivo_nota pk_motivonotacredito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.motivo_nota
    ADD CONSTRAINT pk_motivonotacredito PRIMARY KEY (id_motivonota);


--
-- Name: movimiento pk_movimiento; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento
    ADD CONSTRAINT pk_movimiento PRIMARY KEY (id_movimiento);


--
-- Name: movimiento_almacen_item pk_movimiento_almacen_item; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen_item
    ADD CONSTRAINT pk_movimiento_almacen_item PRIMARY KEY (id_movimiento_almacen, id_empresa, cod_producto, id_unidadmedida, item);


--
-- Name: movimiento_pago pk_movimientopago; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_pago
    ADD CONSTRAINT pk_movimientopago PRIMARY KEY (id_movimiento, item);


--
-- Name: nota_credito_correo pk_nota_credito_correo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_correo
    ADD CONSTRAINT pk_nota_credito_correo PRIMARY KEY (id_nota_credito_correo);


--
-- Name: nota_debito_correo pk_nota_debito_correo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_correo
    ADD CONSTRAINT pk_nota_debito_correo PRIMARY KEY (id_nota_debito_correo);


--
-- Name: nota_credito pk_notacredito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito
    ADD CONSTRAINT pk_notacredito PRIMARY KEY (id_nota_credito);


--
-- Name: nota_credito_compra pk_notacreditocompra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_compra
    ADD CONSTRAINT pk_notacreditocompra PRIMARY KEY (id_compra, id_nota_credito);


--
-- Name: nota_credito_item pk_notacreditodebitodetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_item
    ADD CONSTRAINT pk_notacreditodebitodetalle PRIMARY KEY (id_nota_credito, id_empresa, item, cod_producto, id_unidadmedida);


--
-- Name: nota_debito pk_notadebito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito
    ADD CONSTRAINT pk_notadebito PRIMARY KEY (id_nota_debito);


--
-- Name: nota_debito_compra pk_notadebitocompra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_compra
    ADD CONSTRAINT pk_notadebitocompra PRIMARY KEY (id_compra, id_nota_debito);


--
-- Name: nota_debito_item pk_notadebitodetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_item
    ADD CONSTRAINT pk_notadebitodetalle PRIMARY KEY (id_nota_debito, id_empresa, item, cod_producto, id_unidadmedida);


--
-- Name: orden_compra pk_orden_compra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT pk_orden_compra PRIMARY KEY (id_ordencompra);


--
-- Name: orden_trabajo pk_orden_trabajo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT pk_orden_trabajo PRIMARY KEY (id_orden_trabajo);


--
-- Name: orden_trabajo_historial pk_orden_trabajo_historial; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_historial
    ADD CONSTRAINT pk_orden_trabajo_historial PRIMARY KEY (id_orden_trabajo_historial);


--
-- Name: orden_trabajo_item pk_orden_trabajo_item; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_item
    ADD CONSTRAINT pk_orden_trabajo_item PRIMARY KEY (id_orden_trabajo, id_empresa, cod_producto, id_unidadmedida, item);


--
-- Name: orden_trabajo_subitem pk_orden_trabajo_subitem; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_subitem
    ADD CONSTRAINT pk_orden_trabajo_subitem PRIMARY KEY (id_orden_trabajo, id_empresa, cod_producto, id_unidadmedida, item);


--
-- Name: orden_trabajo_tecnico pk_orden_trabajo_tecnico; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_tecnico
    ADD CONSTRAINT pk_orden_trabajo_tecnico PRIMARY KEY (id_orden_trabajo, id_trabajador);


--
-- Name: ordencompra_detalle pk_ordencompra_detalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.ordencompra_detalle
    ADD CONSTRAINT pk_ordencompra_detalle PRIMARY KEY (id_ordencompra, cod_producto, id_unidadmedida, item);


--
-- Name: pedido_venta pk_pedidoventa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT pk_pedidoventa PRIMARY KEY (id_pedido_venta);


--
-- Name: pedidoventa_detalle pk_pedidoventadetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedidoventa_detalle
    ADD CONSTRAINT pk_pedidoventadetalle PRIMARY KEY (id_pedido_venta, id_empresa, cod_producto, id_unidadmedida, item);


--
-- Name: perfil pk_perfil; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.perfil
    ADD CONSTRAINT pk_perfil PRIMARY KEY (cod_perfil);


--
-- Name: producto pk_producto; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto
    ADD CONSTRAINT pk_producto PRIMARY KEY (cod_producto);


--
-- Name: producto_precio pk_producto_precio; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto_precio
    ADD CONSTRAINT pk_producto_precio PRIMARY KEY (id_localidad, id_empresa, cod_producto, id_unidadmedida);


--
-- Name: producto_unidadmedida pk_producto_unidadmedida; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto_unidadmedida
    ADD CONSTRAINT pk_producto_unidadmedida PRIMARY KEY (id_empresa, cod_producto, id_unidadmedida);


--
-- Name: proforma pk_proforma; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma
    ADD CONSTRAINT pk_proforma PRIMARY KEY (id_proforma);


--
-- Name: proforma_correo pk_proformacorreo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma_correo
    ADD CONSTRAINT pk_proformacorreo PRIMARY KEY (id_proformacorreo);


--
-- Name: proforma_detalle pk_proformadetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma_detalle
    ADD CONSTRAINT pk_proformadetalle PRIMARY KEY (id_proforma, id_empresa, cod_producto, id_unidadmedida);


--
-- Name: proveedor pk_proveedor; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor
    ADD CONSTRAINT pk_proveedor PRIMARY KEY (id_proveedor);


--
-- Name: contacto pk_proveedor_contacto; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.contacto
    ADD CONSTRAINT pk_proveedor_contacto PRIMARY KEY (id_contacto);


--
-- Name: proveedor_cuenta pk_proveedor_cuenta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_cuenta
    ADD CONSTRAINT pk_proveedor_cuenta PRIMARY KEY (id_proveedorcuenta);


--
-- Name: provincia pk_provincia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.provincia
    ADD CONSTRAINT pk_provincia PRIMARY KEY (codigo_provincia);


--
-- Name: punto_venta pk_punto_venta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.punto_venta
    ADD CONSTRAINT pk_punto_venta PRIMARY KEY (id_puntoventa);


--
-- Name: movimiento_almacen pk_recepcion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen
    ADD CONSTRAINT pk_recepcion PRIMARY KEY (id_movimiento_almacen);


--
-- Name: recibo_honorarios pk_recibo_honorarios; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.recibo_honorarios
    ADD CONSTRAINT pk_recibo_honorarios PRIMARY KEY (id_recibo_honorarios);


--
-- Name: sistema pk_sistema; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.sistema
    ADD CONSTRAINT pk_sistema PRIMARY KEY (sistema);


--
-- Name: solicitud_compra pk_solicitud_compra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitud_compra
    ADD CONSTRAINT pk_solicitud_compra PRIMARY KEY (id_solicitudcompra);


--
-- Name: solicitudcompra_precio pk_solicitudcompra_precio; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_precio
    ADD CONSTRAINT pk_solicitudcompra_precio PRIMARY KEY (id_solicitudcompra, id_empresa, cod_producto, id_unidadmedida, id_proveedor);


--
-- Name: solicitudcompra_producto pk_solicitudcompra_producto; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_producto
    ADD CONSTRAINT pk_solicitudcompra_producto PRIMARY KEY (id_solicitudcompra, id_empresa, cod_producto, id_unidadmedida);


--
-- Name: solicitudcompra_proveedor pk_solicitudcompra_proveedor; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_proveedor
    ADD CONSTRAINT pk_solicitudcompra_proveedor PRIMARY KEY (id_solicitudcompra, id_proveedor);


--
-- Name: subclase pk_subclase; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.subclase
    ADD CONSTRAINT pk_subclase PRIMARY KEY (id_subclase);


--
-- Name: tipo_cambio pk_tipo_cambio; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_cambio
    ADD CONSTRAINT pk_tipo_cambio PRIMARY KEY (fecha, id_empresa, id_tipomoneda);


--
-- Name: tipo_documento pk_tipo_documento; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_documento
    ADD CONSTRAINT pk_tipo_documento PRIMARY KEY (id_tipodocumento);


--
-- Name: tipo_moneda pk_tipo_moneda; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_moneda
    ADD CONSTRAINT pk_tipo_moneda PRIMARY KEY (id_tipomoneda);


--
-- Name: tipo_pago pk_tipo_pago; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_pago
    ADD CONSTRAINT pk_tipo_pago PRIMARY KEY (id_tipopago);


--
-- Name: tipo_afectacionigv pk_tipoafectacionigv; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_afectacionigv
    ADD CONSTRAINT pk_tipoafectacionigv PRIMARY KEY (id_tipoafectacionigv);


--
-- Name: tipo_identidad pk_tipoidentidad; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_identidad
    ADD CONSTRAINT pk_tipoidentidad PRIMARY KEY (id_tipoidentidad);


--
-- Name: tipo_operacion pk_tipooperacion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_operacion
    ADD CONSTRAINT pk_tipooperacion PRIMARY KEY (id_tipooperacion);


--
-- Name: tipopago_interes pk_tipopagointeres; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipopago_interes
    ADD CONSTRAINT pk_tipopagointeres PRIMARY KEY (id_tipopagointeres);


--
-- Name: tipo_tributo pk_tipotributo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_tributo
    ADD CONSTRAINT pk_tipotributo PRIMARY KEY (id_tipotributo);


--
-- Name: trabajador pk_trabajador; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.trabajador
    ADD CONSTRAINT pk_trabajador PRIMARY KEY (id_trabajador);


--
-- Name: unidad_medida pk_unidad_medida; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unidad_medida
    ADD CONSTRAINT pk_unidad_medida PRIMARY KEY (id_unidadmedida);


--
-- Name: unspsc_clase pk_unspsc_clase; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_clase
    ADD CONSTRAINT pk_unspsc_clase PRIMARY KEY (id_unspsc_clase);


--
-- Name: unspsc_commodity pk_unspsc_commodity; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_commodity
    ADD CONSTRAINT pk_unspsc_commodity PRIMARY KEY (id_unspsc_commodity);


--
-- Name: unspsc_familia pk_unspsc_familia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_familia
    ADD CONSTRAINT pk_unspsc_familia PRIMARY KEY (id_unspsc_familia);


--
-- Name: unspsc_segmento pk_unspsc_segmento; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_segmento
    ADD CONSTRAINT pk_unspsc_segmento PRIMARY KEY (id_unspsc_segmento);


--
-- Name: usuario pk_usuario; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario
    ADD CONSTRAINT pk_usuario PRIMARY KEY (usuario);


--
-- Name: usuario_empresa pk_usuarioempresa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario_empresa
    ADD CONSTRAINT pk_usuarioempresa PRIMARY KEY (id_usuario, id_empresa);


--
-- Name: usuario_puntoventa pk_usuariopuntoventa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario_puntoventa
    ADD CONSTRAINT pk_usuariopuntoventa PRIMARY KEY (usuario, id_puntoventa);


--
-- Name: venta pk_venta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT pk_venta PRIMARY KEY (id_venta);


--
-- Name: venta_detraccion pk_venta_detraccion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_detraccion
    ADD CONSTRAINT pk_venta_detraccion PRIMARY KEY (id_venta, id_concepto_detraccion);


--
-- Name: venta_proforma pk_venta_proforma; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_proforma
    ADD CONSTRAINT pk_venta_proforma PRIMARY KEY (id_venta, id_proforma);


--
-- Name: venta_correo pk_ventacorreo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_correo
    ADD CONSTRAINT pk_ventacorreo PRIMARY KEY (id_ventacorreo);


--
-- Name: venta_detalle pk_ventadetalle; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_detalle
    ADD CONSTRAINT pk_ventadetalle PRIMARY KEY (id_venta, id_empresa, cod_producto, id_unidadmedida, item);


--
-- Name: venta_guia pk_ventaguia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_guia
    ADD CONSTRAINT pk_ventaguia PRIMARY KEY (id_venta, tipo, serie, correlativo);


--
-- Name: nota_credito_venta pk_ventanotacredito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_venta
    ADD CONSTRAINT pk_ventanotacredito PRIMARY KEY (id_venta, id_nota_credito);


--
-- Name: nota_debito_venta pk_ventanotadebito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_venta
    ADD CONSTRAINT pk_ventanotadebito PRIMARY KEY (id_venta, id_nota_debito);


--
-- Name: producto_detalle producto_detalle_pkey; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto_detalle
    ADD CONSTRAINT producto_detalle_pkey PRIMARY KEY (id_empresa, cod_producto, id_unidadmedida, id_localidad);


--
-- Name: clasificacion_compra tabla_sunat_pkey; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.clasificacion_compra
    ADD CONSTRAINT tabla_sunat_pkey PRIMARY KEY (id_clasificacion_compra);


--
-- Name: tipo_cliente tipo_cliente_pk; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_cliente
    ADD CONSTRAINT tipo_cliente_pk PRIMARY KEY (id_tipocliente);


--
-- Name: tipo_cuenta tipo_cuenta_pkey; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_cuenta
    ADD CONSTRAINT tipo_cuenta_pkey PRIMARY KEY (id_tipocuenta);


--
-- Name: transferencia_detalle transferencia_detalle_idx; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia_detalle
    ADD CONSTRAINT transferencia_detalle_idx PRIMARY KEY (id_transferencia, id_empresa, cod_producto, id_unidadmedida);


--
-- Name: transferencia transferencia_pk; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT transferencia_pk PRIMARY KEY (id_transferencia);


--
-- Name: clase uq_clase; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.clase
    ADD CONSTRAINT uq_clase UNIQUE (nombre);


--
-- Name: actividad_economica uq_codigo_ciiu; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.actividad_economica
    ADD CONSTRAINT uq_codigo_ciiu UNIQUE (codigo_ciiu);


--
-- Name: compra uq_compra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT uq_compra UNIQUE (serie, correlativo, id_empresa, id_tipodocumento, id_proveedor);


--
-- Name: compra_flete uq_compra_flete; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_flete
    ADD CONSTRAINT uq_compra_flete UNIQUE (id_compra, id_flete);


--
-- Name: compra_guia uq_compraguia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_guia
    ADD CONSTRAINT uq_compraguia UNIQUE (id_compra, tipo, serie, correlativo);


--
-- Name: condicion_venta uq_condicionventa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.condicion_venta
    ADD CONSTRAINT uq_condicionventa UNIQUE (nombre, estado, id_empresa);


--
-- Name: documento uq_documento; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento
    ADD CONSTRAINT uq_documento UNIQUE (id_tipodocumento, id_localidad, id_puntoventa);


--
-- Name: transferencia uq_documentoreferencia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT uq_documentoreferencia UNIQUE (id_empresa, documento_referencia, cliente_proveedor);


--
-- Name: empresa uq_empresa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa
    ADD CONSTRAINT uq_empresa UNIQUE (ruc);


--
-- Name: empresa_cuenta uq_empresa_cuenta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa_cuenta
    ADD CONSTRAINT uq_empresa_cuenta UNIQUE (id_empresa, id_entidadfinanciera, id_tipocuenta, id_tipomoneda, numero_cuenta);


--
-- Name: entidad_financiera uq_entidad_financiera; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.entidad_financiera
    ADD CONSTRAINT uq_entidad_financiera UNIQUE (nombre);


--
-- Name: estado uq_estado; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.estado
    ADD CONSTRAINT uq_estado UNIQUE (nombre);


--
-- Name: guia_emision uq_guia_emision; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision
    ADD CONSTRAINT uq_guia_emision UNIQUE (id_empresa, serie, correlativo);


--
-- Name: guia_recepcion uq_guia_recepcion; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion
    ADD CONSTRAINT uq_guia_recepcion UNIQUE (id_empresa, id_tipodocumento, id_proveedor, serie, correlativo);


--
-- Name: usuario uq_idusuario; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario
    ADD CONSTRAINT uq_idusuario UNIQUE (id_usuario);


--
-- Name: linea uq_linea; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.linea
    ADD CONSTRAINT uq_linea UNIQUE (nombre);


--
-- Name: marca uq_marca_nombre; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.marca
    ADD CONSTRAINT uq_marca_nombre UNIQUE (nombre);


--
-- Name: punto_venta uq_nombre; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.punto_venta
    ADD CONSTRAINT uq_nombre UNIQUE (id_localidad, nombre);


--
-- Name: nota_credito uq_notacredito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito
    ADD CONSTRAINT uq_notacredito UNIQUE (uuid_a, uuid_b);


--
-- Name: nota_debito uq_notadebito; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito
    ADD CONSTRAINT uq_notadebito UNIQUE (uuid_a, uuid_b);


--
-- Name: orden_compra uq_orden_compra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT uq_orden_compra UNIQUE (id_empresa, id_documento, serie, correlativo);


--
-- Name: orden_trabajo uq_orden_trabajo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT uq_orden_trabajo UNIQUE (id_empresa, id_documento, serie, correlativo);


--
-- Name: orden_trabajo uq_orden_trabajo_uuid; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT uq_orden_trabajo_uuid UNIQUE (uuid_a, uuid_b);


--
-- Name: pedido_venta uq_pedidoventa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT uq_pedidoventa UNIQUE (id_empresa, id_documento, serie, correlativo);


--
-- Name: perfil uq_perfil; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.perfil
    ADD CONSTRAINT uq_perfil UNIQUE (nombre);


--
-- Name: producto uq_productonombre; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto
    ADD CONSTRAINT uq_productonombre UNIQUE (nombre_comercial);


--
-- Name: proveedor_cuenta uq_proveedor_cuenta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_cuenta
    ADD CONSTRAINT uq_proveedor_cuenta UNIQUE (id_entidadfinanciera, id_tipocuenta, id_tipomoneda, numero_cuenta, id_proveedor);


--
-- Name: proveedor uq_proveedor_ruc; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor
    ADD CONSTRAINT uq_proveedor_ruc UNIQUE (ruc);


--
-- Name: recibo_honorarios uq_recibo_honorarios; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.recibo_honorarios
    ADD CONSTRAINT uq_recibo_honorarios UNIQUE (serie, correlativo, id_empresa, id_tipodocumento, id_proveedor);


--
-- Name: solicitud_compra uq_solicitud_compra; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitud_compra
    ADD CONSTRAINT uq_solicitud_compra UNIQUE (id_empresa, id_documento, serie, correlativo);


--
-- Name: clasificacion_compra uq_tablasunat; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.clasificacion_compra
    ADD CONSTRAINT uq_tablasunat UNIQUE (numero_tabla, codigo);


--
-- Name: cliente uq_tipo_identidad_numero; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.cliente
    ADD CONSTRAINT uq_tipo_identidad_numero UNIQUE (id_tipoidentidad, numero_identidad);


--
-- Name: tipo_moneda uq_tipomoneda_nombre; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_moneda
    ADD CONSTRAINT uq_tipomoneda_nombre UNIQUE (nombre);


--
-- Name: tipo_moneda uq_tipomoneda_simbolo; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_moneda
    ADD CONSTRAINT uq_tipomoneda_simbolo UNIQUE (simbolo);


--
-- Name: transferencia uq_transferencia; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT uq_transferencia UNIQUE (id_empresa, id_documento, serie, correlativo);


--
-- Name: unidad_medida uq_unidadmedida_abreviatura; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unidad_medida
    ADD CONSTRAINT uq_unidadmedida_abreviatura UNIQUE (abreviatura);


--
-- Name: pedido_venta uq_uuidpedidoventa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT uq_uuidpedidoventa UNIQUE (uuid_a, uuid_b);


--
-- Name: venta uq_uuidventa; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT uq_uuidventa UNIQUE (uuid_a, uuid_b);


--
-- Name: venta uq_venta; Type: CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT uq_venta UNIQUE (id_empresa, id_documento, serie, correlativo);


--
-- Name: mes pk_mes; Type: CONSTRAINT; Schema: report; Owner: -
--

ALTER TABLE ONLY report.mes
    ADD CONSTRAINT pk_mes PRIMARY KEY (id_mes);


--
-- Name: usuario report_usuario_id_usuario_unique; Type: CONSTRAINT; Schema: report; Owner: -
--

ALTER TABLE ONLY report.usuario
    ADD CONSTRAINT report_usuario_id_usuario_unique UNIQUE (id_usuario);


--
-- Name: usuario usuario_pkey; Type: CONSTRAINT; Schema: report; Owner: -
--

ALTER TABLE ONLY report.usuario
    ADD CONSTRAINT usuario_pkey PRIMARY KEY (usuario);


--
-- Name: caja_item fk_caja; Type: FK CONSTRAINT; Schema: caja; Owner: -
--

ALTER TABLE ONLY caja.caja_item
    ADD CONSTRAINT fk_caja FOREIGN KEY (id_caja) REFERENCES caja.caja(id_caja);


--
-- Name: caja_item fk_denominacion; Type: FK CONSTRAINT; Schema: caja; Owner: -
--

ALTER TABLE ONLY caja.caja_item
    ADD CONSTRAINT fk_denominacion FOREIGN KEY (id_denominacion) REFERENCES caja.denominacion(id_denominacion);


--
-- Name: denominacion fk_tipo_moneda; Type: FK CONSTRAINT; Schema: caja; Owner: -
--

ALTER TABLE ONLY caja.denominacion
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipo_moneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: contacto fk_usuario; Type: FK CONSTRAINT; Schema: chat; Owner: -
--

ALTER TABLE ONLY chat.contacto
    ADD CONSTRAINT fk_usuario FOREIGN KEY (id_usuario) REFERENCES isos.usuario(id_usuario);


--
-- Name: contacto fk_usuariocontacto; Type: FK CONSTRAINT; Schema: chat; Owner: -
--

ALTER TABLE ONLY chat.contacto
    ADD CONSTRAINT fk_usuariocontacto FOREIGN KEY (id_usuariocontacto) REFERENCES isos.usuario(id_usuario);


--
-- Name: empresa_contabilidad fk_regimen; Type: FK CONSTRAINT; Schema: conta; Owner: -
--

ALTER TABLE ONLY conta.empresa_contabilidad
    ADD CONSTRAINT fk_regimen FOREIGN KEY (id_regimen) REFERENCES conta.regimen(id_regimen);


--
-- Name: file_compra fk_compra; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_compra
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: file_empresa fk_empresa; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_empresa
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: file_empresa fk_file; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_empresa
    ADD CONSTRAINT fk_file FOREIGN KEY (id_file) REFERENCES file.file(id_file);


--
-- Name: file_compra fk_file; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_compra
    ADD CONSTRAINT fk_file FOREIGN KEY (id_file) REFERENCES file.file(id_file);


--
-- Name: file_nota_credito fk_file; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_nota_credito
    ADD CONSTRAINT fk_file FOREIGN KEY (id_file) REFERENCES file.file(id_file);


--
-- Name: file_nota_debito fk_file; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_nota_debito
    ADD CONSTRAINT fk_file FOREIGN KEY (id_file) REFERENCES file.file(id_file);


--
-- Name: file_recibo_honorarios fk_file; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_recibo_honorarios
    ADD CONSTRAINT fk_file FOREIGN KEY (id_file) REFERENCES file.file(id_file);


--
-- Name: file_orden_trabajo fk_file; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_orden_trabajo
    ADD CONSTRAINT fk_file FOREIGN KEY (id_file) REFERENCES file.file(id_file);


--
-- Name: file_pedido_venta fk_file; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_pedido_venta
    ADD CONSTRAINT fk_file FOREIGN KEY (id_file) REFERENCES file.file(id_file);


--
-- Name: file_orden_trabajo fk_orden_trabajo; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_orden_trabajo
    ADD CONSTRAINT fk_orden_trabajo FOREIGN KEY (id_orden_trabajo) REFERENCES isos.orden_trabajo(id_orden_trabajo);


--
-- Name: file_pedido_venta fk_pedido_venta; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_pedido_venta
    ADD CONSTRAINT fk_pedido_venta FOREIGN KEY (id_pedido_venta) REFERENCES isos.pedido_venta(id_pedido_venta);


--
-- Name: file_recibo_honorarios fk_recibo_honorarios; Type: FK CONSTRAINT; Schema: file; Owner: -
--

ALTER TABLE ONLY file.file_recibo_honorarios
    ADD CONSTRAINT fk_recibo_honorarios FOREIGN KEY (id_recibo_honorarios) REFERENCES isos.recibo_honorarios(id_recibo_honorarios);


--
-- Name: transferencia empresa_transferencia_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT empresa_transferencia_fk FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: empresa fk_actividad_economica; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa
    ADD CONSTRAINT fk_actividad_economica FOREIGN KEY (id_actividadeconomica) REFERENCES isos.actividad_economica(id_actividadeconomica);


--
-- Name: compra_anticipo fk_anticipo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_anticipo
    ADD CONSTRAINT fk_anticipo FOREIGN KEY (id_anticipo) REFERENCES isos.compra(id_compra);


--
-- Name: subclase fk_clase; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.subclase
    ADD CONSTRAINT fk_clase FOREIGN KEY (id_clase) REFERENCES isos.clase(id_clase);


--
-- Name: compra fk_clasificacion_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT fk_clasificacion_compra FOREIGN KEY (id_clasificacion_compra) REFERENCES isos.clasificacion_compra(id_clasificacion_compra);


--
-- Name: venta fk_cliente; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_cliente FOREIGN KEY (id_cliente) REFERENCES isos.cliente(id_cliente);


--
-- Name: proforma fk_cliente; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma
    ADD CONSTRAINT fk_cliente FOREIGN KEY (id_cliente) REFERENCES isos.cliente(id_cliente);


--
-- Name: cliente_empresa fk_cliente; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.cliente_empresa
    ADD CONSTRAINT fk_cliente FOREIGN KEY (id_cliente) REFERENCES isos.cliente(id_cliente);


--
-- Name: pedido_venta fk_cliente; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT fk_cliente FOREIGN KEY (id_cliente) REFERENCES isos.cliente(id_cliente);


--
-- Name: orden_trabajo fk_cliente; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_cliente FOREIGN KEY (id_cliente) REFERENCES isos.cliente(id_cliente);


--
-- Name: compra_detalle fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_detalle
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: nota_credito_compra fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_compra
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: compra_anticipo fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_anticipo
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: compra_guia fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_guia
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: nota_debito_compra fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_compra
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: compra_detraccion fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_detraccion
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: deuda fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.deuda
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: kardex_compra fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_compra
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: kardex_transferencia fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_transferencia
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_transferencia) REFERENCES isos.transferencia(id_transferencia);


--
-- Name: compra_flete fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_flete
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: transferencia fk_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT fk_compra FOREIGN KEY (id_compra) REFERENCES isos.compra(id_compra);


--
-- Name: compra fk_compra_flete; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT fk_compra_flete FOREIGN KEY (id_compraflete) REFERENCES isos.compra(id_compra);


--
-- Name: compra_flete_item fk_compra_flete; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_flete_item
    ADD CONSTRAINT fk_compra_flete FOREIGN KEY (id_compra_flete) REFERENCES isos.compra_flete(id_compra_flete);


--
-- Name: venta_detraccion fk_concepto_detraccion; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_detraccion
    ADD CONSTRAINT fk_concepto_detraccion FOREIGN KEY (id_concepto_detraccion) REFERENCES isos.concepto_detraccion(id_concepto_detraccion);


--
-- Name: compra_detraccion fk_concepto_detraccion; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_detraccion
    ADD CONSTRAINT fk_concepto_detraccion FOREIGN KEY (id_concepto_detraccion) REFERENCES isos.concepto_detraccion(id_concepto_detraccion);


--
-- Name: venta fk_condicionventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_condicionventa FOREIGN KEY (id_condicionventa) REFERENCES isos.condicion_venta(id_condicionventa);


--
-- Name: pedido_venta fk_condicionventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT fk_condicionventa FOREIGN KEY (id_condicionventa) REFERENCES isos.condicion_venta(id_condicionventa);


--
-- Name: proforma fk_condicionventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma
    ADD CONSTRAINT fk_condicionventa FOREIGN KEY (id_condicionventa) REFERENCES isos.condicion_venta(id_condicionventa);


--
-- Name: orden_trabajo fk_condicionventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_condicionventa FOREIGN KEY (id_condicionventa) REFERENCES isos.condicion_venta(id_condicionventa);


--
-- Name: credito_detalle fk_credito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.credito_detalle
    ADD CONSTRAINT fk_credito FOREIGN KEY (id_credito) REFERENCES isos.credito(id_credito);


--
-- Name: provincia fk_departamento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.provincia
    ADD CONSTRAINT fk_departamento FOREIGN KEY (codigo_departamento) REFERENCES isos.departamento(codigo_departamento);


--
-- Name: deuda_detalle fk_deuda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.deuda_detalle
    ADD CONSTRAINT fk_deuda FOREIGN KEY (id_deuda) REFERENCES isos.deuda(id_deuda);


--
-- Name: empresa fk_distrito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa
    ADD CONSTRAINT fk_distrito FOREIGN KEY (ubigeo) REFERENCES isos.distrito(codigo_distrito);


--
-- Name: localidad fk_distrito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.localidad
    ADD CONSTRAINT fk_distrito FOREIGN KEY (ubigeo) REFERENCES isos.distrito(codigo_distrito);


--
-- Name: documento_detalle fk_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento_detalle
    ADD CONSTRAINT fk_documento FOREIGN KEY (id_documento) REFERENCES isos.documento(id_documento);


--
-- Name: proforma fk_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma
    ADD CONSTRAINT fk_documento FOREIGN KEY (id_documento) REFERENCES isos.documento(id_documento);


--
-- Name: solicitud_compra fk_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitud_compra
    ADD CONSTRAINT fk_documento FOREIGN KEY (id_documento) REFERENCES isos.documento(id_documento);


--
-- Name: venta fk_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_documento FOREIGN KEY (id_documento) REFERENCES isos.documento(id_documento);


--
-- Name: orden_compra fk_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_documento FOREIGN KEY (id_documento) REFERENCES isos.documento(id_documento);


--
-- Name: orden_trabajo fk_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_documento FOREIGN KEY (id_documento) REFERENCES isos.documento(id_documento);


--
-- Name: localidad fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.localidad
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: solicitud_compra fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitud_compra
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: producto_unidadmedida fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto_unidadmedida
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: tipo_cambio fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_cambio
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: compra fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: empresa_cuenta fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa_cuenta
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: tipopago_interes fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipopago_interes
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: tipo_documento fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_documento
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: cliente_empresa fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.cliente_empresa
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: proveedor_empresa fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_empresa
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: usuario fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa_default) REFERENCES isos.empresa(id_empresa);


--
-- Name: orden_compra fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: usuario_empresa fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario_empresa
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: movimiento_almacen fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: concepto_detraccion fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.concepto_detraccion
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: recibo_honorarios fk_empresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.recibo_honorarios
    ADD CONSTRAINT fk_empresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: movimiento_pago fk_empresacuenta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_pago
    ADD CONSTRAINT fk_empresacuenta FOREIGN KEY (id_empresacuenta) REFERENCES isos.empresa_cuenta(id_empresacuenta);


--
-- Name: empresa_cuenta fk_entidadfinanciera; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa_cuenta
    ADD CONSTRAINT fk_entidadfinanciera FOREIGN KEY (id_entidadfinanciera) REFERENCES isos.entidad_financiera(id_entidadfinanciera);


--
-- Name: proveedor_cuenta fk_entidadfinanciera; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_cuenta
    ADD CONSTRAINT fk_entidadfinanciera FOREIGN KEY (id_entidadfinanciera) REFERENCES isos.entidad_financiera(id_entidadfinanciera);


--
-- Name: credito fk_estado; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.credito
    ADD CONSTRAINT fk_estado FOREIGN KEY (cod_estado) REFERENCES isos.estado(cod_estado);


--
-- Name: credito_detalle fk_estado; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.credito_detalle
    ADD CONSTRAINT fk_estado FOREIGN KEY (cod_estado) REFERENCES isos.estado(cod_estado);


--
-- Name: orden_compra fk_estado; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_estado FOREIGN KEY (cod_estado) REFERENCES isos.estado(cod_estado);


--
-- Name: orden_trabajo fk_estado; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_estado FOREIGN KEY (cod_estado) REFERENCES isos.estado(cod_estado);


--
-- Name: evento_x_perfil fk_evento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento_x_perfil
    ADD CONSTRAINT fk_evento FOREIGN KEY (modulo, evento) REFERENCES isos.evento(modulo, evento);


--
-- Name: evento_x_usuario fk_evento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento_x_usuario
    ADD CONSTRAINT fk_evento FOREIGN KEY (modulo, evento) REFERENCES isos.evento(modulo, evento);


--
-- Name: compra_flete fk_flete; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_flete
    ADD CONSTRAINT fk_flete FOREIGN KEY (id_flete) REFERENCES isos.compra(id_compra);


--
-- Name: maestro fk_grupomaestro; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.maestro
    ADD CONSTRAINT fk_grupomaestro FOREIGN KEY (id_grupomaestro) REFERENCES isos.grupo_maestro(id_grupomaestro);


--
-- Name: guia_emision_item fk_guia_emision; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision_item
    ADD CONSTRAINT fk_guia_emision FOREIGN KEY (id_guia) REFERENCES isos.guia_emision(id_guia);


--
-- Name: kardex_guia_emision fk_guia_emision; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_guia_emision
    ADD CONSTRAINT fk_guia_emision FOREIGN KEY (id_guia) REFERENCES isos.guia_emision(id_guia);


--
-- Name: guia_correo fk_guia_emision; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_correo
    ADD CONSTRAINT fk_guia_emision FOREIGN KEY (id_guia) REFERENCES isos.guia_emision(id_guia);


--
-- Name: guia_recepcion_item fk_guia_recepcion; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion_item
    ADD CONSTRAINT fk_guia_recepcion FOREIGN KEY (id_guia) REFERENCES isos.guia_recepcion(id_guia);


--
-- Name: kardex_guia_recepcion fk_guia_recepcion; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_guia_recepcion
    ADD CONSTRAINT fk_guia_recepcion FOREIGN KEY (id_guia) REFERENCES isos.guia_recepcion(id_guia);


--
-- Name: condicion_venta fk_idempresa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.condicion_venta
    ADD CONSTRAINT fk_idempresa FOREIGN KEY (id_empresa) REFERENCES isos.empresa(id_empresa);


--
-- Name: documento_detalle fk_item; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento_detalle
    ADD CONSTRAINT fk_item FOREIGN KEY (id_item) REFERENCES isos.item(id_item);


--
-- Name: clase fk_linea; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.clase
    ADD CONSTRAINT fk_linea FOREIGN KEY (id_linea) REFERENCES isos.linea(id_linea);


--
-- Name: localidad_usuario fk_localidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.localidad_usuario
    ADD CONSTRAINT fk_localidad FOREIGN KEY (id_localidad) REFERENCES isos.localidad(id_localidad);


--
-- Name: documento fk_localidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento
    ADD CONSTRAINT fk_localidad FOREIGN KEY (id_localidad) REFERENCES isos.localidad(id_localidad);


--
-- Name: punto_venta fk_localidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.punto_venta
    ADD CONSTRAINT fk_localidad FOREIGN KEY (id_localidad) REFERENCES isos.localidad(id_localidad);


--
-- Name: usuario fk_localidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario
    ADD CONSTRAINT fk_localidad FOREIGN KEY (id_localidad_default) REFERENCES isos.localidad(id_localidad);


--
-- Name: producto fk_marca; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto
    ADD CONSTRAINT fk_marca FOREIGN KEY (id_marca) REFERENCES isos.marca(id_marca);


--
-- Name: guia_emision fk_modalidad_transporte; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision
    ADD CONSTRAINT fk_modalidad_transporte FOREIGN KEY (id_modalidad_transporte) REFERENCES isos.modalidad_transporte(id_modalidad_transporte);


--
-- Name: guia_recepcion fk_modalidad_transporte; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion
    ADD CONSTRAINT fk_modalidad_transporte FOREIGN KEY (id_modalidad_transporte) REFERENCES isos.modalidad_transporte(id_modalidad_transporte);


--
-- Name: modulo fk_modulo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo
    ADD CONSTRAINT fk_modulo FOREIGN KEY (modulo) REFERENCES isos.modulo(modulo);


--
-- Name: modulo_x_perfil fk_modulo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo_x_perfil
    ADD CONSTRAINT fk_modulo FOREIGN KEY (modulo) REFERENCES isos.modulo(modulo);


--
-- Name: modulo_x_usuario fk_modulo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo_x_usuario
    ADD CONSTRAINT fk_modulo FOREIGN KEY (modulo) REFERENCES isos.modulo(modulo);


--
-- Name: evento fk_modulo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento
    ADD CONSTRAINT fk_modulo FOREIGN KEY (modulo) REFERENCES isos.modulo(modulo);


--
-- Name: guia_emision fk_motivo_traslado; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision
    ADD CONSTRAINT fk_motivo_traslado FOREIGN KEY (id_motivo_traslado) REFERENCES isos.motivo_traslado(id_motivo_traslado);


--
-- Name: guia_recepcion fk_motivo_traslado; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion
    ADD CONSTRAINT fk_motivo_traslado FOREIGN KEY (id_motivo_traslado) REFERENCES isos.motivo_traslado(id_motivo_traslado);


--
-- Name: nota_credito fk_motivonota; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito
    ADD CONSTRAINT fk_motivonota FOREIGN KEY (id_motivonota) REFERENCES isos.motivo_nota(id_motivonota);


--
-- Name: nota_debito fk_motivonota; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito
    ADD CONSTRAINT fk_motivonota FOREIGN KEY (id_motivonota) REFERENCES isos.motivo_nota(id_motivonota);


--
-- Name: movimiento_pago fk_movimiento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_pago
    ADD CONSTRAINT fk_movimiento FOREIGN KEY (id_movimiento) REFERENCES isos.movimiento(id_movimiento);


--
-- Name: movimiento_almacen_item fk_movimiento_almacen; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen_item
    ADD CONSTRAINT fk_movimiento_almacen FOREIGN KEY (id_movimiento_almacen) REFERENCES isos.movimiento_almacen(id_movimiento_almacen);


--
-- Name: nota_credito_correo fk_nota_credito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_correo
    ADD CONSTRAINT fk_nota_credito FOREIGN KEY (id_nota_credito) REFERENCES isos.nota_credito(id_nota_credito);


--
-- Name: nota_debito_correo fk_nota_debito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_correo
    ADD CONSTRAINT fk_nota_debito FOREIGN KEY (id_nota_debito) REFERENCES isos.nota_debito(id_nota_debito);


--
-- Name: nota_credito_venta fk_notacredito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_venta
    ADD CONSTRAINT fk_notacredito FOREIGN KEY (id_nota_credito) REFERENCES isos.nota_credito(id_nota_credito);


--
-- Name: nota_credito_item fk_notacredito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_item
    ADD CONSTRAINT fk_notacredito FOREIGN KEY (id_nota_credito) REFERENCES isos.nota_credito(id_nota_credito);


--
-- Name: nota_credito_compra fk_notacredito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_compra
    ADD CONSTRAINT fk_notacredito FOREIGN KEY (id_nota_credito) REFERENCES isos.nota_credito(id_nota_credito);


--
-- Name: kardex_nota_credito fk_notacredito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_nota_credito
    ADD CONSTRAINT fk_notacredito FOREIGN KEY (id_notacredito) REFERENCES isos.nota_credito(id_nota_credito);


--
-- Name: nota_debito_compra fk_notadebito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_compra
    ADD CONSTRAINT fk_notadebito FOREIGN KEY (id_nota_debito) REFERENCES isos.nota_debito(id_nota_debito);


--
-- Name: nota_debito_venta fk_notadebito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_venta
    ADD CONSTRAINT fk_notadebito FOREIGN KEY (id_nota_debito) REFERENCES isos.nota_debito(id_nota_debito);


--
-- Name: nota_debito_item fk_notadebito; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_item
    ADD CONSTRAINT fk_notadebito FOREIGN KEY (id_nota_debito) REFERENCES isos.nota_debito(id_nota_debito);


--
-- Name: ordencompra_detalle fk_orden_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.ordencompra_detalle
    ADD CONSTRAINT fk_orden_compra FOREIGN KEY (id_ordencompra) REFERENCES isos.orden_compra(id_ordencompra);


--
-- Name: orden_trabajo_item fk_orden_trabajo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_item
    ADD CONSTRAINT fk_orden_trabajo FOREIGN KEY (id_orden_trabajo) REFERENCES isos.orden_trabajo(id_orden_trabajo);


--
-- Name: orden_trabajo_historial fk_orden_trabajo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_historial
    ADD CONSTRAINT fk_orden_trabajo FOREIGN KEY (id_orden_trabajo) REFERENCES isos.orden_trabajo(id_orden_trabajo);


--
-- Name: orden_trabajo_subitem fk_orden_trabajo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_subitem
    ADD CONSTRAINT fk_orden_trabajo FOREIGN KEY (id_orden_trabajo) REFERENCES isos.orden_trabajo(id_orden_trabajo);


--
-- Name: venta fk_pedido_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_pedido_venta FOREIGN KEY (id_pedido_venta) REFERENCES isos.pedido_venta(id_pedido_venta);


--
-- Name: pedidoventa_detalle fk_pedidoventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedidoventa_detalle
    ADD CONSTRAINT fk_pedidoventa FOREIGN KEY (id_pedido_venta) REFERENCES isos.pedido_venta(id_pedido_venta);


--
-- Name: evento_x_perfil fk_perfil; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento_x_perfil
    ADD CONSTRAINT fk_perfil FOREIGN KEY (cod_perfil) REFERENCES isos.perfil(cod_perfil);


--
-- Name: usuario fk_perfil; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario
    ADD CONSTRAINT fk_perfil FOREIGN KEY (cod_perfil) REFERENCES isos.perfil(cod_perfil);


--
-- Name: modulo_x_perfil fk_perfil; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo_x_perfil
    ADD CONSTRAINT fk_perfil FOREIGN KEY (cod_perfil) REFERENCES isos.perfil(cod_perfil);


--
-- Name: producto_unidadmedida fk_producto; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto_unidadmedida
    ADD CONSTRAINT fk_producto FOREIGN KEY (cod_producto) REFERENCES isos.producto(cod_producto);


--
-- Name: compra_detalle fk_producto_unidad_medida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_detalle
    ADD CONSTRAINT fk_producto_unidad_medida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: movimiento_almacen_item fk_producto_unidad_medida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen_item
    ADD CONSTRAINT fk_producto_unidad_medida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: compra_flete_item fk_producto_unidad_medida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_flete_item
    ADD CONSTRAINT fk_producto_unidad_medida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: solicitudcompra_producto fk_producto_unidadmedida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_producto
    ADD CONSTRAINT fk_producto_unidadmedida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: venta_detalle fk_productounidadmedida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_detalle
    ADD CONSTRAINT fk_productounidadmedida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: producto_precio fk_productounidadmedida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto_precio
    ADD CONSTRAINT fk_productounidadmedida FOREIGN KEY (cod_producto, id_empresa, id_unidadmedida) REFERENCES isos.producto_unidadmedida(cod_producto, id_empresa, id_unidadmedida);


--
-- Name: pedidoventa_detalle fk_productounidadmedida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedidoventa_detalle
    ADD CONSTRAINT fk_productounidadmedida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: orden_trabajo_item fk_productounidadmedida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_item
    ADD CONSTRAINT fk_productounidadmedida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: orden_trabajo_subitem fk_productounidadmedida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_subitem
    ADD CONSTRAINT fk_productounidadmedida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: venta fk_proforma; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_proforma FOREIGN KEY (id_proforma) REFERENCES isos.proforma(id_proforma);


--
-- Name: proforma_detalle fk_proforma; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma_detalle
    ADD CONSTRAINT fk_proforma FOREIGN KEY (id_proforma) REFERENCES isos.proforma(id_proforma);


--
-- Name: pedido_venta fk_proforma; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT fk_proforma FOREIGN KEY (id_proforma) REFERENCES isos.proforma(id_proforma);


--
-- Name: proforma_correo fk_proforma; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma_correo
    ADD CONSTRAINT fk_proforma FOREIGN KEY (id_proforma) REFERENCES isos.proforma(id_proforma);


--
-- Name: orden_trabajo fk_proforma; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_proforma FOREIGN KEY (id_proforma) REFERENCES isos.proforma(id_proforma);


--
-- Name: venta_proforma fk_proforma; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_proforma
    ADD CONSTRAINT fk_proforma FOREIGN KEY (id_proforma) REFERENCES isos.proforma(id_proforma);


--
-- Name: compra fk_proveedor; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT fk_proveedor FOREIGN KEY (id_proveedor) REFERENCES isos.proveedor(id_proveedor);


--
-- Name: solicitudcompra_proveedor fk_proveedor; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_proveedor
    ADD CONSTRAINT fk_proveedor FOREIGN KEY (id_solicitudcompra) REFERENCES isos.proveedor(id_proveedor);


--
-- Name: proveedor_cuenta fk_proveedor; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_cuenta
    ADD CONSTRAINT fk_proveedor FOREIGN KEY (id_proveedor) REFERENCES isos.proveedor(id_proveedor);


--
-- Name: proveedor_empresa fk_proveedor; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_empresa
    ADD CONSTRAINT fk_proveedor FOREIGN KEY (id_proveedor) REFERENCES isos.proveedor(id_proveedor);


--
-- Name: orden_compra fk_proveedor; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_proveedor FOREIGN KEY (id_proveedor) REFERENCES isos.proveedor(id_proveedor);


--
-- Name: deuda fk_proveedor; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.deuda
    ADD CONSTRAINT fk_proveedor FOREIGN KEY (id_proveedor) REFERENCES isos.proveedor(id_proveedor);


--
-- Name: recibo_honorarios fk_proveedor; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.recibo_honorarios
    ADD CONSTRAINT fk_proveedor FOREIGN KEY (id_proveedor) REFERENCES isos.proveedor(id_proveedor);


--
-- Name: distrito fk_provincia; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.distrito
    ADD CONSTRAINT fk_provincia FOREIGN KEY (codigo_provincia) REFERENCES isos.provincia(codigo_provincia);


--
-- Name: usuario_puntoventa fk_punto_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario_puntoventa
    ADD CONSTRAINT fk_punto_venta FOREIGN KEY (id_puntoventa) REFERENCES isos.punto_venta(id_puntoventa);


--
-- Name: documento fk_puntoventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento
    ADD CONSTRAINT fk_puntoventa FOREIGN KEY (id_puntoventa) REFERENCES isos.punto_venta(id_puntoventa);


--
-- Name: venta fk_puntoventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_puntoventa FOREIGN KEY (id_puntoventa) REFERENCES isos.punto_venta(id_puntoventa);


--
-- Name: usuario fk_puntoventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario
    ADD CONSTRAINT fk_puntoventa FOREIGN KEY (id_puntoventa_default) REFERENCES isos.punto_venta(id_puntoventa);


--
-- Name: pedido_venta fk_puntoventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT fk_puntoventa FOREIGN KEY (id_puntoventa) REFERENCES isos.punto_venta(id_puntoventa);


--
-- Name: orden_trabajo fk_puntoventa; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_puntoventa FOREIGN KEY (id_puntoventa) REFERENCES isos.punto_venta(id_puntoventa);


--
-- Name: modulo fk_sistema; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo
    ADD CONSTRAINT fk_sistema FOREIGN KEY (sistema) REFERENCES isos.sistema(sistema) ON UPDATE CASCADE;


--
-- Name: solicitudcompra_proveedor fk_solicitud_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_proveedor
    ADD CONSTRAINT fk_solicitud_compra FOREIGN KEY (id_solicitudcompra) REFERENCES isos.solicitud_compra(id_solicitudcompra);


--
-- Name: solicitudcompra_producto fk_solicitud_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_producto
    ADD CONSTRAINT fk_solicitud_compra FOREIGN KEY (id_solicitudcompra) REFERENCES isos.solicitud_compra(id_solicitudcompra);


--
-- Name: orden_compra fk_solicitud_compra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_solicitud_compra FOREIGN KEY (id_solicitudcompra) REFERENCES isos.solicitud_compra(id_solicitudcompra);


--
-- Name: orden_compra fk_solicitudcompra; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_solicitudcompra FOREIGN KEY (id_solicitudcompra) REFERENCES isos.solicitud_compra(id_solicitudcompra);


--
-- Name: solicitudcompra_precio fk_solicitudcompra_producto; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_precio
    ADD CONSTRAINT fk_solicitudcompra_producto FOREIGN KEY (id_solicitudcompra, id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.solicitudcompra_producto(id_solicitudcompra, id_empresa, cod_producto, id_unidadmedida);


--
-- Name: producto fk_subclase; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto
    ADD CONSTRAINT fk_subclase FOREIGN KEY (id_subclase) REFERENCES isos.subclase(id_subclase);


--
-- Name: documento fk_tipo_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.documento
    ADD CONSTRAINT fk_tipo_documento FOREIGN KEY (id_tipodocumento) REFERENCES isos.tipo_documento(id_tipodocumento);


--
-- Name: compra fk_tipo_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT fk_tipo_documento FOREIGN KEY (id_tipodocumento) REFERENCES isos.tipo_documento(id_tipodocumento);


--
-- Name: movimiento_almacen fk_tipo_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen
    ADD CONSTRAINT fk_tipo_documento FOREIGN KEY (id_tipodocumento) REFERENCES isos.tipo_documento(id_tipodocumento);


--
-- Name: recibo_honorarios fk_tipo_documento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.recibo_honorarios
    ADD CONSTRAINT fk_tipo_documento FOREIGN KEY (id_tipodocumento) REFERENCES isos.tipo_documento(id_tipodocumento);


--
-- Name: trabajador fk_tipo_identidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.trabajador
    ADD CONSTRAINT fk_tipo_identidad FOREIGN KEY (id_tipoidentidad) REFERENCES isos.tipo_identidad(id_tipoidentidad);


--
-- Name: guia_emision fk_tipo_identidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision
    ADD CONSTRAINT fk_tipo_identidad FOREIGN KEY (conductor_id_tipoidentidad) REFERENCES isos.tipo_identidad(id_tipoidentidad);


--
-- Name: guia_recepcion fk_tipo_identidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion
    ADD CONSTRAINT fk_tipo_identidad FOREIGN KEY (id_tipoidentidad_conductor) REFERENCES isos.tipo_identidad(id_tipoidentidad);


--
-- Name: solicitud_compra fk_tipo_moneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitud_compra
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: tipo_cambio fk_tipo_moneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_cambio
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: compra fk_tipo_moneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: solicitudcompra_proveedor fk_tipo_moneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitudcompra_proveedor
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: orden_compra fk_tipo_moneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: movimiento_almacen fk_tipo_moneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: recibo_honorarios fk_tipo_moneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.recibo_honorarios
    ADD CONSTRAINT fk_tipo_moneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: solicitud_compra fk_tipo_pago; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.solicitud_compra
    ADD CONSTRAINT fk_tipo_pago FOREIGN KEY (id_tipopago) REFERENCES isos.tipo_pago(id_tipopago);


--
-- Name: compra fk_tipo_pago; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra
    ADD CONSTRAINT fk_tipo_pago FOREIGN KEY (id_tipopago) REFERENCES isos.tipo_pago(id_tipopago);


--
-- Name: orden_compra fk_tipo_pago; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_compra
    ADD CONSTRAINT fk_tipo_pago FOREIGN KEY (id_tipopago) REFERENCES isos.tipo_pago(id_tipopago);


--
-- Name: movimiento_almacen fk_tipo_pago; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen
    ADD CONSTRAINT fk_tipo_pago FOREIGN KEY (id_tipopago) REFERENCES isos.tipo_pago(id_tipopago);


--
-- Name: venta_detalle fk_tipoafectacionigv; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_detalle
    ADD CONSTRAINT fk_tipoafectacionigv FOREIGN KEY (id_tipoafectacionigv) REFERENCES isos.tipo_afectacionigv(id_tipoafectacionigv);


--
-- Name: compra_detalle fk_tipoafectacionigv; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.compra_detalle
    ADD CONSTRAINT fk_tipoafectacionigv FOREIGN KEY (id_tipoafectacionigv) REFERENCES isos.tipo_afectacionigv(id_tipoafectacionigv);


--
-- Name: nota_credito_item fk_tipoafectacionigv; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_item
    ADD CONSTRAINT fk_tipoafectacionigv FOREIGN KEY (id_tipoafectacionigv) REFERENCES isos.tipo_afectacionigv(id_tipoafectacionigv);


--
-- Name: movimiento_almacen_item fk_tipoafectacionigv; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.movimiento_almacen_item
    ADD CONSTRAINT fk_tipoafectacionigv FOREIGN KEY (id_tipoafectacionigv) REFERENCES isos.tipo_afectacionigv(id_tipoafectacionigv);


--
-- Name: nota_debito_item fk_tipoafectacionigv; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_item
    ADD CONSTRAINT fk_tipoafectacionigv FOREIGN KEY (id_tipoafectacionigv) REFERENCES isos.tipo_afectacionigv(id_tipoafectacionigv);


--
-- Name: orden_trabajo_item fk_tipoafectacionigv; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo_item
    ADD CONSTRAINT fk_tipoafectacionigv FOREIGN KEY (id_tipoafectacionigv) REFERENCES isos.tipo_afectacionigv(id_tipoafectacionigv);


--
-- Name: producto fk_tipoasignacionigv; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto
    ADD CONSTRAINT fk_tipoasignacionigv FOREIGN KEY (id_tipoafectacionigv) REFERENCES isos.tipo_afectacionigv(id_tipoafectacionigv);


--
-- Name: cliente fk_tipocliente; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.cliente
    ADD CONSTRAINT fk_tipocliente FOREIGN KEY (id_tipocliente) REFERENCES isos.tipo_cliente(id_tipocliente);


--
-- Name: empresa_cuenta fk_tipocuenta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa_cuenta
    ADD CONSTRAINT fk_tipocuenta FOREIGN KEY (id_tipocuenta) REFERENCES isos.tipo_cuenta(id_tipocuenta);


--
-- Name: proveedor_cuenta fk_tipocuenta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_cuenta
    ADD CONSTRAINT fk_tipocuenta FOREIGN KEY (id_tipocuenta) REFERENCES isos.tipo_cuenta(id_tipocuenta);


--
-- Name: pedido_venta fk_tipodocumento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT fk_tipodocumento FOREIGN KEY (id_documento) REFERENCES isos.tipo_documento(id_tipodocumento);


--
-- Name: cliente fk_tipoidentidad; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.cliente
    ADD CONSTRAINT fk_tipoidentidad FOREIGN KEY (id_tipoidentidad) REFERENCES isos.tipo_identidad(id_tipoidentidad);


--
-- Name: empresa_cuenta fk_tipomoneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa_cuenta
    ADD CONSTRAINT fk_tipomoneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: proveedor_cuenta fk_tipomoneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proveedor_cuenta
    ADD CONSTRAINT fk_tipomoneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: venta fk_tipomoneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_tipomoneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: proforma fk_tipomoneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.proforma
    ADD CONSTRAINT fk_tipomoneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: empresa fk_tipomoneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.empresa
    ADD CONSTRAINT fk_tipomoneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: pedido_venta fk_tipomoneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.pedido_venta
    ADD CONSTRAINT fk_tipomoneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: orden_trabajo fk_tipomoneda; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_tipomoneda FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- Name: venta fk_tipooperacion; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta
    ADD CONSTRAINT fk_tipooperacion FOREIGN KEY (id_tipooperacion) REFERENCES isos.tipo_operacion(id_tipooperacion);


--
-- Name: orden_trabajo fk_tipooperacion; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_tipooperacion FOREIGN KEY (id_tipooperacion) REFERENCES isos.tipo_operacion(id_tipooperacion);


--
-- Name: tipopago_interes fk_tipopago; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipopago_interes
    ADD CONSTRAINT fk_tipopago FOREIGN KEY (id_tipopago) REFERENCES isos.tipo_pago(id_tipopago);


--
-- Name: tipo_afectacionigv fk_tipotributo; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.tipo_afectacionigv
    ADD CONSTRAINT fk_tipotributo FOREIGN KEY (id_tipotributo) REFERENCES isos.tipo_tributo(id_tipotributo);


--
-- Name: usuario fk_trabajador; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario
    ADD CONSTRAINT fk_trabajador FOREIGN KEY (id_trabajador) REFERENCES isos.trabajador(id_trabajador);


--
-- Name: orden_trabajo fk_trabajador; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.orden_trabajo
    ADD CONSTRAINT fk_trabajador FOREIGN KEY (id_trabajador_responsable) REFERENCES isos.trabajador(id_trabajador);


--
-- Name: transferencia_detalle fk_tranferencia; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia_detalle
    ADD CONSTRAINT fk_tranferencia FOREIGN KEY (id_transferencia) REFERENCES isos.transferencia(id_transferencia);


--
-- Name: producto_unidadmedida fk_unidad_medida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.producto_unidadmedida
    ADD CONSTRAINT fk_unidad_medida FOREIGN KEY (id_unidadmedida) REFERENCES isos.unidad_medida(id_unidadmedida);


--
-- Name: ordencompra_detalle fk_unidad_medida; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.ordencompra_detalle
    ADD CONSTRAINT fk_unidad_medida FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: unspsc_commodity fk_unspsc_clase; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_commodity
    ADD CONSTRAINT fk_unspsc_clase FOREIGN KEY (id_unspsc_clase) REFERENCES isos.unspsc_clase(id_unspsc_clase);


--
-- Name: unspsc_clase fk_unspsc_familia; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_clase
    ADD CONSTRAINT fk_unspsc_familia FOREIGN KEY (id_unspsc_familia) REFERENCES isos.unspsc_familia(id_unspsc_familia);


--
-- Name: unspsc_familia fk_unspsc_segmento; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.unspsc_familia
    ADD CONSTRAINT fk_unspsc_segmento FOREIGN KEY (id_unspsc_segmento) REFERENCES isos.unspsc_segmento(id_unspsc_segmento);


--
-- Name: localidad_usuario fk_usuario; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.localidad_usuario
    ADD CONSTRAINT fk_usuario FOREIGN KEY (usuario) REFERENCES isos.usuario(usuario) ON DELETE CASCADE;


--
-- Name: usuario_puntoventa fk_usuario; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario_puntoventa
    ADD CONSTRAINT fk_usuario FOREIGN KEY (usuario) REFERENCES isos.usuario(usuario) ON DELETE CASCADE;


--
-- Name: evento_x_usuario fk_usuario; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.evento_x_usuario
    ADD CONSTRAINT fk_usuario FOREIGN KEY (usuario) REFERENCES isos.usuario(usuario) ON DELETE CASCADE;


--
-- Name: modulo_x_usuario fk_usuario; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.modulo_x_usuario
    ADD CONSTRAINT fk_usuario FOREIGN KEY (usuario) REFERENCES isos.usuario(usuario) ON DELETE CASCADE;


--
-- Name: usuario_empresa fk_usuario; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.usuario_empresa
    ADD CONSTRAINT fk_usuario FOREIGN KEY (id_usuario) REFERENCES isos.usuario(id_usuario) ON DELETE CASCADE;


--
-- Name: venta_detalle fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_detalle
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: nota_credito_venta fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_venta
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: venta_guia fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_guia
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: venta_correo fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_correo
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: nota_debito_venta fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_venta
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: venta_detraccion fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_detraccion
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: kardex_venta fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.kardex_venta
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: venta_proforma fk_venta; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.venta_proforma
    ADD CONSTRAINT fk_venta FOREIGN KEY (id_venta) REFERENCES isos.venta(id_venta);


--
-- Name: transferencia localidad_transferencia_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT localidad_transferencia_fk FOREIGN KEY (id_localidad) REFERENCES isos.localidad(id_localidad);


--
-- Name: transferencia motivo_transferencia_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT motivo_transferencia_fk FOREIGN KEY (id_motivo) REFERENCES isos.almacen_motivo(id_motivo);


--
-- Name: transferencia_detalle producto_unidad_medida_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia_detalle
    ADD CONSTRAINT producto_unidad_medida_fk FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: guia_emision_item producto_unidad_medida_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_emision_item
    ADD CONSTRAINT producto_unidad_medida_fk FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: nota_credito_item producto_unidad_medida_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_credito_item
    ADD CONSTRAINT producto_unidad_medida_fk FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: nota_debito_item producto_unidad_medida_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.nota_debito_item
    ADD CONSTRAINT producto_unidad_medida_fk FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: guia_recepcion_item producto_unidad_medida_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.guia_recepcion_item
    ADD CONSTRAINT producto_unidad_medida_fk FOREIGN KEY (id_empresa, cod_producto, id_unidadmedida) REFERENCES isos.producto_unidadmedida(id_empresa, cod_producto, id_unidadmedida);


--
-- Name: transferencia tipomoneda_transferencia_fk; Type: FK CONSTRAINT; Schema: isos; Owner: -
--

ALTER TABLE ONLY isos.transferencia
    ADD CONSTRAINT tipomoneda_transferencia_fk FOREIGN KEY (id_tipomoneda) REFERENCES isos.tipo_moneda(id_tipomoneda);


--
-- PostgreSQL database dump complete
--

