delete from new_table; CREATE TABLE NEW_TABLE ( ID INTEGER, SS INTEGER); CREATE PROCEDURE PROC_CREATE_SUBCUENTAS_CLI as declare variable id_cliente integer; declare variable ref_cliente varchar(255); declare variable id_subcuenta integer; declare variable nombre_cliente varchar(255); declare variable id_subcuenta_inser integer; begin for select GEN_ID(gen_cont_subcuentas_id, 1), contactos.ID, '430' || coalesce(empresas_tiendas.codigo_contable, '00') || substr(contactos.REFERENCIA,6,12), contactos.nombre from contactos left join contactos_categorias on (contactos_categorias.id_contacto = contactos.id) left join empresas_tiendas on (empresas_tiendas.id = contactos.id_tienda) where contactos_categorias.id_categoria = 1 /*solo clientes*/ order by contactos.ID into :id_subcuenta_inser, :id_cliente, :ref_cliente, :nombre_cliente do begin id_subcuenta = null; select cont_subcuentas.ID from cont_subcuentas where cont_subcuentas.ID_CONTACTO = :id_cliente into :id_subcuenta; if (id_subcuenta is null) then begin insert into new_table (id, ss) values (:id_cliente, 0); insert into CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_EJERCICIO, ID_CUENTA, ID_CONTACTO) values (:id_subcuenta_inser, :ref_cliente, 'Cuenta cliente: ' || :nombre_cliente, 3, 1434, :id_cliente); update clientes_datos set ignorar_contabilidad = 0, tiene_subcuenta = 1 where id_cliente = :id_cliente; end else begin insert into new_table (id, ss) values (:id_cliente, 1); update cont_subcuentas set ref_subcuenta = :ref_cliente where cont_subcuentas.ID = :id_subcuenta; update clientes_datos set ignorar_contabilidad = 0, tiene_subcuenta = 1 where id_cliente = :id_cliente; end end suspend; end select ref_subcuenta, count(id) from cont_subcuentas group by ref_subcuenta //mas de 3 select cont_subcuentas.id_ejercicio, cont_subcuentas.ID, cont_subcuentas.ref_subcuenta, cont_subcuentas.descripcion, cont_subcuentas.ID_CONTACTO from cont_subcuentas where cont_subcuentas.ref_subcuenta = '4300000000' CREATE PROCEDURE PROC_CREATE_SUBCUENTAS_PRO as declare variable id_proveedor integer; declare variable ref_proveedor varchar(255); declare variable id_subcuenta integer; declare variable nombre_proveedor varchar(255); declare variable id_subcuenta_inser integer; begin for select GEN_ID(gen_cont_subcuentas_id, 1), contactos.ID, '400' || coalesce(empresas_tiendas.codigo_contable, '00') || substr(contactos.REFERENCIA,6,12), contactos.nombre from contactos left join contactos_categorias on (contactos_categorias.id_contacto = contactos.id) left join empresas_tiendas on (empresas_tiendas.id = contactos.id_tienda) where contactos_categorias.id_categoria = 2 /*solo proveedores*/ order by contactos.ID into :id_subcuenta_inser, :id_proveedor, :ref_proveedor, :nombre_proveedor do begin id_subcuenta = null; select cont_subcuentas.ID from cont_subcuentas where cont_subcuentas.ID_CONTACTO = :id_proveedor into :id_subcuenta; if (id_subcuenta is null) then begin insert into new_table (id, ss) values (:id_proveedor, 0); insert into CONT_SUBCUENTAS (ID, REF_SUBCUENTA, DESCRIPCION, ID_EJERCICIO, ID_CUENTA, ID_CONTACTO) values (:id_subcuenta_inser, :ref_proveedor, 'Cuenta proveedor: ' || :nombre_proveedor, 3, 1434, :id_proveedor); update proveedores_datos set ignorar_contabilidad = 0, tiene_subcuenta = 1, es_Acreedor = 0 where id_proveedor = :id_proveedor; end else begin insert into new_table (id, ss) values (:id_proveedor, 1); update cont_subcuentas set ref_subcuenta = :ref_proveedor where cont_subcuentas.ID = :id_subcuenta; update proveedores_datos set ignorar_contabilidad = 0, tiene_subcuenta = 1, es_Acreedor = 0 where id_proveedor = :id_proveedor; end end suspend; end