Documentos de Académico
Documentos de Profesional
Documentos de Cultura
core_aprobar_credito_creditos(p_id_creditos
bigint, p_id_usuarios integer, OUT pout_resultado integer, OUT pout_mensaje text,
OUT pout_linea text, OUT pout_funcion text)
RETURNS record
LANGUAGE plpgsql
AS $function$
DECLARE
begin
in_orden_distribucion := in_orden_distribucion + 1;
--
============================================================================
-- BEGIN_SALIDA DE DOCUMENNTOS PAGARE
---
--
============================================================================
INSERT INTO tes_distribucion_cuentas_pagar(
id_lote,
id_plan_cuentas,
tipo_distribucion_cuentas_pagar,
debito_distribucion_cuentas_pagar,
credito_distribucion_cuentas_pagar,
ord_distribucion_cuentas_pagar,
referencia_distribucion_cuentas_pagar )
VALUES (
in_id_lote,
rdocumento.id_plan_cuentas_debe,
'COMPRA',
rcredito.monto_otorgado_creditos,
0.00,
in_orden_distribucion,
in_descripcion_distribucion
);
--
============================================================================
-- END_SALIDA DE DOCUMENNTOS PAGARE
---
--
============================================================================
/*for rdebecredito in
select did_plan_cuentas, dvalor, dnaturaleza
from
public.core_distribucion_credito_contable( p_id_creditos,'1')
order by dvalor desc
loop
in_orden_distribucion := in_orden_distribucion + 1;
end loop;*/
in_orden_distribucion := in_orden_distribucion + 1;
if in_id_plan_cuentas_interes = 0 then
raise exception ' Variable in_id_plan_cuentas_interes -- no
esta parametrizado en parametrizacion-cuentas ';
end if;
in_orden_distribucion := in_orden_distribucion + 1;
end if;
in_respuesta_renovacion :=
public.core_aprobar_credito_renovacion(
p_id_creditos =>
rrenovacion.id_creditos_renovaciones,
p_fecha => now()::date,
p_id_usuarios => p_id_usuarios,
p_id_proveedores => in_id_proveedor
);
in_valor_suma_renovacion := (
select saldo_a_la_fecha_creditos_a_pagar_renovaciones
from core_creditos_a_pagar_renovaciones
where id_creditos_renovaciones =
rrenovacion.id_creditos_renovaciones
);
in_valor_suma_renovacion :=
coalesce(in_valor_suma_renovacion,0);
in_id_plan_cuentas_liquidacion_renovacion :=
coalesce(in_id_plan_cuentas_liquidacion_renovacion,0);
in_orden_distribucion := in_orden_distribucion + 1;
end loop;
end if;
--
============================================================================
-- BEGIN_RETENCION APORTES ---
--
============================================================================
in_valor_retencion_aporte := 0;
in_valor_retencion_aporte := (
select (numero_aportaciones_creditos_retencion_aportes *
valor_contribucion_creditos_retencion_aportes)
from core_creditos_retencion_aportes
where id_creditos = p_id_creditos and id_estado = 1 and
id_estatus = 1 );
in_valor_retencion_aporte :=
coalesce( in_valor_retencion_aporte, 0);
end if;
--
============================================================================
-- BEGIN_RETENCION APORTES ---
--
============================================================================
if in_id_plan_cuentas_haber = 0 then
raise exception ' Variable in_id_plan_cuentas_haber -- no
esta parametrizado en parametrizacion-cuentas ';
end if;
in_orden_distribucion := in_orden_distribucion + 1;
--
============================================================================
-- BEGIN_INGRESO DE DOCUMENNTOS PAGARE
---
--
============================================================================
INSERT INTO tes_distribucion_cuentas_pagar(
id_lote,
id_plan_cuentas,
tipo_distribucion_cuentas_pagar,
debito_distribucion_cuentas_pagar,
credito_distribucion_cuentas_pagar,
ord_distribucion_cuentas_pagar,
referencia_distribucion_cuentas_pagar )
VALUES (
in_id_lote,
rdocumento.id_plan_cuentas_haber,
'COMPRA',
0.00,
rcredito.monto_otorgado_creditos,
in_orden_distribucion,
in_descripcion_distribucion
);
--
============================================================================
-- END_INGRESO DE DOCUMENNTOS PAGARE
---
--
============================================================================
in_id_bancos := null;
in_resultado_cuentas_pagar := public.tes_ins_cuentas_pagar(
_id_lote => in_id_lote,
_id_consecutivo => in_id_consecutivo_cxp,
_id_tipo_documento => in_id_tipo_documento,
_id_proveedor => in_id_proveedor,
_id_bancos => in_id_bancos,
_id_moneda => in_id_moneda,
_descripcion_cuentas_pagar => in_descripcion_cuentas_pagar,
_fecha_cuentas_pagar => now()::date,
_condiciones_pago_cuentas_pagar => '',
_num_documento_cuentas_pagar => '',
_num_ord_compra => '',
_metodo_envio_cuentas_pagar => '',
_compra_cuentas_pagar => in_compra_cuentas_pagar,
_desc_comercial => 0.00,
_flete_cuentas_pagar => 0.00,
_miscelaneos_cuentas_pagar => 0.00,
_impuesto_cuentas_pagar => in_impuesto_cuentas_pagar,
_total_cuentas_pagar => in_total_cuentas_pagar,
_monto1099_cuentas_pagar=> 0.00,
_efectivo_cuentas_pagar => 0.00,
_cheque_cuentas_pagar => 0.00,
_tarjeta_credito_cuentas_pagar => 0.00,
_condonaciones_cuentas_pagar => 0.00,
_saldo_cuentas_pagar => in_total_cuentas_pagar,
_origen_cuentas_pagar => in_origen_cuentas_pagar,
_compra_cero_cuentas_pagar => 0.00,
_compra_iva_cuentas_pagar => in_compra_cuentas_pagar
);
in_resultado_comprobante_contable :=
public.core_ins_ccomprobantes_activacion_credito(
_id_entidades => 1,
_id_tipo_comprobantes => in_tipo_comprobante_contable,
_ruc_ccomprobantes => '',
_nombres_ccomprobantes => '',
_retencion_ccomprobantes => '',
_valor_ccomprobantes => rcredito.monto_otorgado_creditos,
_concepto_ccomprobantes => in_concepto_comprobante_contable,
_id_usuarios => p_id_usuarios,
_valor_letras => in_valor_letras_comprobante_contable,
_fecha_ccomprobantes => now()::date,
_id_forma_pago => rcredito.id_forma_pago,
_referencia_doc_ccomprobantes => 'N. Credito: '||
rcredito.numero_creditos,
_numero_cuenta_banco_ccomprobantes => null,
_numero_cheque_ccomprobantes => null,
_observaciones_ccomprobantes =>
in_concepto_comprobante_contable,
_id_proveedores => in_id_proveedor,
_tipo_cuenta_ccomprobantes => 'cxp',
_usuario_usuarios => in_usuario_usuarios,
_transaccion_ccomprobantes => 'credito',
_id_lote => in_id_lote
);
update tes_cuentas_pagar
set id_ccomprobantes = in_resultado_comprobante_contable,
id_forma_pago = rcredito.id_forma_pago,
id_banco = case when rcuentas.existe = 1 then
rcuentas.id_bancos else null end
where id_cuentas_pagar = in_resultado_cuentas_pagar;
pout_resultado = 1;
<<enderror>>
declare
p_outerror_procedimiento text;
p_outerror_linea int4;
begin
end enderror;
end;
END;
$function$
;