[28-Dec-2025 19:34:19 America/Lima] PHP Warning:  Undefined variable $conn in /home/sicse/public_html/mkj.sicsemkj.com/api_comercial/envases/consulta_id.php on line 37
[28-Dec-2025 19:34:19 America/Lima] PHP Fatal error:  Uncaught Error: Call to a member function prepare() on null in /home/sicse/public_html/mkj.sicsemkj.com/api_comercial/envases/consulta_id.php:37
Stack trace:
#0 {main}
  thrown in /home/sicse/public_html/mkj.sicsemkj.com/api_comercial/envases/consulta_id.php on line 37
[28-Dec-2025 19:34:24 America/Lima] PHP Warning:  Undefined variable $conn in /home/sicse/public_html/mkj.sicsemkj.com/api_comercial/envases/consulta_id.php on line 37
[28-Dec-2025 19:34:24 America/Lima] PHP Fatal error:  Uncaught Error: Call to a member function prepare() on null in /home/sicse/public_html/mkj.sicsemkj.com/api_comercial/envases/consulta_id.php:37
Stack trace:
#0 {main}
  thrown in /home/sicse/public_html/mkj.sicsemkj.com/api_comercial/envases/consulta_id.php on line 37
[29-Dec-2025 10:09:45 America/Lima] ❌ envases_listado: SQLSTATE[42703]: Undefined column: 7 ERROR:  column ec.motivo does not exist
LINE 44:         ec.motivo::varchar,
                 ^
HINT:  Perhaps you meant to reference the column "c.activo".
QUERY:  SELECT
        e.id::bigint,
        COALESCE(e.anulado, FALSE) AS anulado,
        e.referencia,
        e.fecha::date,
        c.nombre::varchar AS razon_social,                  -- ✅ en tu tabla clientes
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        COALESCE(NULLIF(btrim(to_jsonb(e)->>'motivo'), ''), 'ENVASE')::varchar AS motivo,
        COALESCE(
            NULLIF(to_jsonb(e)->>'observacion',''),
            NULLIF(to_jsonb(e)->>'observaciones',''),
            NULLIF(to_jsonb(e)->>'obs',''),
            NULLIF(to_jsonb(e)->>'descripcion',''),
            NULLIF(to_jsonb(e)->>'detalle',''),
            ''
        )::text AS observacion
    FROM public.envases e
    JOIN public.clientes c ON c.id = e.cliente_id
    WHERE e.empresa_id = p_empresa_id
      AND e.sucursal_id = p_sucursal_id
      AND e.fecha >= p_fini::timestamp
      AND e.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            e.referencia ILIKE v_like
          )

    UNION ALL

    -- =========================
    -- 2) COMODATOS
    -- =========================
    SELECT
        ec.id::bigint,
        FALSE AS anulado,
        ec.referencia,
        ec.fecha::date,
        c.nombre::varchar AS razon_social,
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        ec.motivo::varchar,
        COALESCE(ec.observacion,'')::text AS observacion
    FROM public.envases_comodato ec
    JOIN public.clientes c ON c.id = ec.cliente_id
    WHERE ec.empresa_id = p_empresa_id
      AND ec.sucursal_id = p_sucursal_id
      AND ec.fecha >= p_fini::timestamp
      AND ec.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            ec.referencia ILIKE v_like
          )

    ORDER BY 4 DESC, 3 DESC
CONTEXT:  PL/pgSQL function listar_envases(integer,integer,date,date,text) line 11 at RETURN QUERY
[29-Dec-2025 10:09:45 America/Lima] ❌ envases_listado: SQLSTATE[42703]: Undefined column: 7 ERROR:  column ec.motivo does not exist
LINE 44:         ec.motivo::varchar,
                 ^
HINT:  Perhaps you meant to reference the column "c.activo".
QUERY:  SELECT
        e.id::bigint,
        COALESCE(e.anulado, FALSE) AS anulado,
        e.referencia,
        e.fecha::date,
        c.nombre::varchar AS razon_social,                  -- ✅ en tu tabla clientes
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        COALESCE(NULLIF(btrim(to_jsonb(e)->>'motivo'), ''), 'ENVASE')::varchar AS motivo,
        COALESCE(
            NULLIF(to_jsonb(e)->>'observacion',''),
            NULLIF(to_jsonb(e)->>'observaciones',''),
            NULLIF(to_jsonb(e)->>'obs',''),
            NULLIF(to_jsonb(e)->>'descripcion',''),
            NULLIF(to_jsonb(e)->>'detalle',''),
            ''
        )::text AS observacion
    FROM public.envases e
    JOIN public.clientes c ON c.id = e.cliente_id
    WHERE e.empresa_id = p_empresa_id
      AND e.sucursal_id = p_sucursal_id
      AND e.fecha >= p_fini::timestamp
      AND e.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            e.referencia ILIKE v_like
          )

    UNION ALL

    -- =========================
    -- 2) COMODATOS
    -- =========================
    SELECT
        ec.id::bigint,
        FALSE AS anulado,
        ec.referencia,
        ec.fecha::date,
        c.nombre::varchar AS razon_social,
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        ec.motivo::varchar,
        COALESCE(ec.observacion,'')::text AS observacion
    FROM public.envases_comodato ec
    JOIN public.clientes c ON c.id = ec.cliente_id
    WHERE ec.empresa_id = p_empresa_id
      AND ec.sucursal_id = p_sucursal_id
      AND ec.fecha >= p_fini::timestamp
      AND ec.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            ec.referencia ILIKE v_like
          )

    ORDER BY 4 DESC, 3 DESC
CONTEXT:  PL/pgSQL function listar_envases(integer,integer,date,date,text) line 11 at RETURN QUERY
[29-Dec-2025 10:09:45 America/Lima] ❌ envases_listado: SQLSTATE[42703]: Undefined column: 7 ERROR:  column ec.motivo does not exist
LINE 44:         ec.motivo::varchar,
                 ^
HINT:  Perhaps you meant to reference the column "c.activo".
QUERY:  SELECT
        e.id::bigint,
        COALESCE(e.anulado, FALSE) AS anulado,
        e.referencia,
        e.fecha::date,
        c.nombre::varchar AS razon_social,                  -- ✅ en tu tabla clientes
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        COALESCE(NULLIF(btrim(to_jsonb(e)->>'motivo'), ''), 'ENVASE')::varchar AS motivo,
        COALESCE(
            NULLIF(to_jsonb(e)->>'observacion',''),
            NULLIF(to_jsonb(e)->>'observaciones',''),
            NULLIF(to_jsonb(e)->>'obs',''),
            NULLIF(to_jsonb(e)->>'descripcion',''),
            NULLIF(to_jsonb(e)->>'detalle',''),
            ''
        )::text AS observacion
    FROM public.envases e
    JOIN public.clientes c ON c.id = e.cliente_id
    WHERE e.empresa_id = p_empresa_id
      AND e.sucursal_id = p_sucursal_id
      AND e.fecha >= p_fini::timestamp
      AND e.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            e.referencia ILIKE v_like
          )

    UNION ALL

    -- =========================
    -- 2) COMODATOS
    -- =========================
    SELECT
        ec.id::bigint,
        FALSE AS anulado,
        ec.referencia,
        ec.fecha::date,
        c.nombre::varchar AS razon_social,
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        ec.motivo::varchar,
        COALESCE(ec.observacion,'')::text AS observacion
    FROM public.envases_comodato ec
    JOIN public.clientes c ON c.id = ec.cliente_id
    WHERE ec.empresa_id = p_empresa_id
      AND ec.sucursal_id = p_sucursal_id
      AND ec.fecha >= p_fini::timestamp
      AND ec.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            ec.referencia ILIKE v_like
          )

    ORDER BY 4 DESC, 3 DESC
CONTEXT:  PL/pgSQL function listar_envases(integer,integer,date,date,text) line 11 at RETURN QUERY
[29-Dec-2025 10:09:49 America/Lima] ❌ envases_listado: SQLSTATE[42703]: Undefined column: 7 ERROR:  column ec.motivo does not exist
LINE 44:         ec.motivo::varchar,
                 ^
HINT:  Perhaps you meant to reference the column "c.activo".
QUERY:  SELECT
        e.id::bigint,
        COALESCE(e.anulado, FALSE) AS anulado,
        e.referencia,
        e.fecha::date,
        c.nombre::varchar AS razon_social,                  -- ✅ en tu tabla clientes
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        COALESCE(NULLIF(btrim(to_jsonb(e)->>'motivo'), ''), 'ENVASE')::varchar AS motivo,
        COALESCE(
            NULLIF(to_jsonb(e)->>'observacion',''),
            NULLIF(to_jsonb(e)->>'observaciones',''),
            NULLIF(to_jsonb(e)->>'obs',''),
            NULLIF(to_jsonb(e)->>'descripcion',''),
            NULLIF(to_jsonb(e)->>'detalle',''),
            ''
        )::text AS observacion
    FROM public.envases e
    JOIN public.clientes c ON c.id = e.cliente_id
    WHERE e.empresa_id = p_empresa_id
      AND e.sucursal_id = p_sucursal_id
      AND e.fecha >= p_fini::timestamp
      AND e.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            e.referencia ILIKE v_like
          )

    UNION ALL

    -- =========================
    -- 2) COMODATOS
    -- =========================
    SELECT
        ec.id::bigint,
        FALSE AS anulado,
        ec.referencia,
        ec.fecha::date,
        c.nombre::varchar AS razon_social,
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        ec.motivo::varchar,
        COALESCE(ec.observacion,'')::text AS observacion
    FROM public.envases_comodato ec
    JOIN public.clientes c ON c.id = ec.cliente_id
    WHERE ec.empresa_id = p_empresa_id
      AND ec.sucursal_id = p_sucursal_id
      AND ec.fecha >= p_fini::timestamp
      AND ec.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            ec.referencia ILIKE v_like
          )

    ORDER BY 4 DESC, 3 DESC
CONTEXT:  PL/pgSQL function listar_envases(integer,integer,date,date,text) line 11 at RETURN QUERY
[29-Dec-2025 10:09:49 America/Lima] ❌ envases_listado: SQLSTATE[42703]: Undefined column: 7 ERROR:  column ec.motivo does not exist
LINE 44:         ec.motivo::varchar,
                 ^
HINT:  Perhaps you meant to reference the column "c.activo".
QUERY:  SELECT
        e.id::bigint,
        COALESCE(e.anulado, FALSE) AS anulado,
        e.referencia,
        e.fecha::date,
        c.nombre::varchar AS razon_social,                  -- ✅ en tu tabla clientes
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        COALESCE(NULLIF(btrim(to_jsonb(e)->>'motivo'), ''), 'ENVASE')::varchar AS motivo,
        COALESCE(
            NULLIF(to_jsonb(e)->>'observacion',''),
            NULLIF(to_jsonb(e)->>'observaciones',''),
            NULLIF(to_jsonb(e)->>'obs',''),
            NULLIF(to_jsonb(e)->>'descripcion',''),
            NULLIF(to_jsonb(e)->>'detalle',''),
            ''
        )::text AS observacion
    FROM public.envases e
    JOIN public.clientes c ON c.id = e.cliente_id
    WHERE e.empresa_id = p_empresa_id
      AND e.sucursal_id = p_sucursal_id
      AND e.fecha >= p_fini::timestamp
      AND e.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            e.referencia ILIKE v_like
          )

    UNION ALL

    -- =========================
    -- 2) COMODATOS
    -- =========================
    SELECT
        ec.id::bigint,
        FALSE AS anulado,
        ec.referencia,
        ec.fecha::date,
        c.nombre::varchar AS razon_social,
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        ec.motivo::varchar,
        COALESCE(ec.observacion,'')::text AS observacion
    FROM public.envases_comodato ec
    JOIN public.clientes c ON c.id = ec.cliente_id
    WHERE ec.empresa_id = p_empresa_id
      AND ec.sucursal_id = p_sucursal_id
      AND ec.fecha >= p_fini::timestamp
      AND ec.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            ec.referencia ILIKE v_like
          )

    ORDER BY 4 DESC, 3 DESC
CONTEXT:  PL/pgSQL function listar_envases(integer,integer,date,date,text) line 11 at RETURN QUERY
[29-Dec-2025 10:09:49 America/Lima] ❌ envases_listado: SQLSTATE[42703]: Undefined column: 7 ERROR:  column ec.motivo does not exist
LINE 44:         ec.motivo::varchar,
                 ^
HINT:  Perhaps you meant to reference the column "c.activo".
QUERY:  SELECT
        e.id::bigint,
        COALESCE(e.anulado, FALSE) AS anulado,
        e.referencia,
        e.fecha::date,
        c.nombre::varchar AS razon_social,                  -- ✅ en tu tabla clientes
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        COALESCE(NULLIF(btrim(to_jsonb(e)->>'motivo'), ''), 'ENVASE')::varchar AS motivo,
        COALESCE(
            NULLIF(to_jsonb(e)->>'observacion',''),
            NULLIF(to_jsonb(e)->>'observaciones',''),
            NULLIF(to_jsonb(e)->>'obs',''),
            NULLIF(to_jsonb(e)->>'descripcion',''),
            NULLIF(to_jsonb(e)->>'detalle',''),
            ''
        )::text AS observacion
    FROM public.envases e
    JOIN public.clientes c ON c.id = e.cliente_id
    WHERE e.empresa_id = p_empresa_id
      AND e.sucursal_id = p_sucursal_id
      AND e.fecha >= p_fini::timestamp
      AND e.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            e.referencia ILIKE v_like
          )

    UNION ALL

    -- =========================
    -- 2) COMODATOS
    -- =========================
    SELECT
        ec.id::bigint,
        FALSE AS anulado,
        ec.referencia,
        ec.fecha::date,
        c.nombre::varchar AS razon_social,
        c.tipo_docidentidad::varchar,
        c.documento_identidad::varchar,
        ec.motivo::varchar,
        COALESCE(ec.observacion,'')::text AS observacion
    FROM public.envases_comodato ec
    JOIN public.clientes c ON c.id = ec.cliente_id
    WHERE ec.empresa_id = p_empresa_id
      AND ec.sucursal_id = p_sucursal_id
      AND ec.fecha >= p_fini::timestamp
      AND ec.fecha <  (p_ffin::timestamp + INTERVAL '1 day')
      AND (
            v_like = '%' OR
            c.nombre ILIKE v_like OR
            c.documento_identidad ILIKE v_like OR
            ec.referencia ILIKE v_like
          )

    ORDER BY 4 DESC, 3 DESC
CONTEXT:  PL/pgSQL function listar_envases(integer,integer,date,date,text) line 11 at RETURN QUERY
