SET TERM ^ ;

CREATE OR ALTER trigger ttbpagamento_forma_b0d_01 for tbpagamento_forma
active before delete position 0
AS
DECLARE VARIABLE p1 Integer;
DECLARE VARIABLE p2 Integer;
DECLARE VARIABLE p3 Integer;
DECLARE VARIABLE p4 Integer;
DECLARE VARIABLE p5 Integer;
DECLARE VARIABLE p6 Integer;
Begin

For Select
(Select First 1 A.Pedido From TbPedido A Where A.pagamento_forma = OLD.Codigo),
(Select First 1 A.OC From TbOC A Where A.pagamento_forma = OLD.Codigo),
(Select First 1 A.Codigo From TbCliente A Where A.pagamento_forma = OLD.Codigo),
(Select First 1 A.Codigo From TbFornecedor A Where A.pagamento_forma = OLD.Codigo),
(Select First 1 A.NUMERO_NOTAFISCAL From TbNfe_parcelamento A Where A.pagamento_forma = OLD.Codigo),
(Select First 1 A.NUMERO_NOTAFISCAL From TbNfs_parcelamento A Where A.pagamento_forma = OLD.Codigo)

FROM RDB$DATABASE
Into :p1,:p2, :p3,:p4, :p5, :p6
Do
begin

  if (:P1 > 0) Then Exception "..." 'REGISTRO JÁ VINCULADO AO REGISTRO DE PEDIDOS. PED.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
  if (:P2 > 0) Then Exception "..." 'REGISTRO JÁ VINCULADO AO REGISTRO DE ORDENS DE COMPRAS. OC.'||:P2||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
  if (:P3 > 0) Then Exception "..." 'REGISTRO JÁ VINCULADO AO CADASTRO DE CLIENTES. ID.'||:P3||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
  if (:P4 > 0) Then Exception "..." 'REGISTRO JÁ VINCULADO AO CADASTRO DE FORNECEDORES. ID.'||:P4||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
  if (:P5 > 0) Then Exception "..." 'REGISTRO JÁ VINCULADO AO REGISTRO DE DOCUMENTOS FISCAIS. NFE.'||:P5||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
  if (:P6 > 0) Then Exception "..." 'REGISTRO JÁ VINCULADO AO CADASTRO DE DOCUMENTOS FISCAIS. NFS.'||:P6||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';

end


    DELETE FROM TBCLIENTE_PAGAMENTO_FORMA C WHERE C.PAGAMENTO_FORMA_ID = OLD.CODIGO;

End
^

SET TERM ; ^

/*******************************************************************************************/
/*******************************************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbempresa_b0d_01 for tbempresa
active before delete position 0
AS
DECLARE VARIABLE p1  Integer;
Begin

  if (OLD.CODIGO > 0) then
      Begin
      p1 = Coalesce((Select First 1 A.NUMERO_NOTAFISCAL From TbNfs A Where A.Empresa_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM DOCUMENTO FISCAL. NFS.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.NUMERO_NOTAFISCAL From TbNfe A Where A.Empresa_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM DOCUMENTO FISCAL. NFE.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.NUMERO_NOTAFISCAL From TbNfs_Parcelamento A Where A.Empresa_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM PARCELA DE DOCUMENTO FISCAL. NFS.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.NUMERO_NOTAFISCAL From TbNfe_Parcelamento A Where A.Empresa_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM PARCELA DE DOCUMENTO FISCAL. NFE.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.NUMERO_NOTAFISCAL From TbNfs A Where A.Representante_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA COMO REPRESENTANTE EM DOCUMENTO FISCAL. NFS.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.PRODUTO_CODIGO From TBPRODUTO_EDI A Where A.Empresa_CODIGO = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM PRODUTO EDI. ID.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.PEDIDO From TBPEDIDO A Where A.Cliente_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM PEDIDO. PED.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.PEDIDO From TBPEDIDO A Where A.Representante_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA COMO REPRESENTANTE EM PEDIDO. PED.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1 = Coalesce((Select First 1 A.PEDIDO From TBPEDIDO A Where A.Transportadora_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA COMO TRANSPORTADORA EM PEDIDO. PED.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.OC From TBOc A Where A.Fornecedor_Codigo = OLD.CODIGO),0);
      if (:P1> 0) Then Exception "..." 'EMPRESA JA USADA EM OC. OC.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.OC From TBOC A Where A.Transportadora_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA COMO TRANSPORTADORA EM OC. OC.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.OS From TBTECELAGEM_OS A Where A.Cliente_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM PROGRAMAÇAO DE TECELAGEM. OS.'||:P1||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Fornecedor_Id  From TBFORNECEDOR_OCORRENCIA A Where A.Fornecedor_Id = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM REGISTRO DE OCORRÊNCIAS DE CLIENTES.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Cliente_Id  From TBCLIENTE_OCORRENCIA A Where A.Cliente_Id = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM REGISTRO DE OCORRÊNCIAS DE FORNECEDORES.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Cliente_Id  From TBPEDIDO_GRUPO A Where A.Cliente_Id = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM REGISTRO GRUPO DE PEDIDOS.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Cliente_Codigo From TBCLIENTE_MODELO_PRECO A Where A.Cliente_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM PREÇO DE MODELOS.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Cliente_Codigo From TBCLIENTE_PRODUTO_PRECO A Where A.Cliente_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA EM PREÇO DE PRODUTOS.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Transportadora_Codigo From TbNfs_Transportadora A Where A.Transportadora_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA COMO TRANSPORTADORA EM DOCUMENTO FISCAL DE SAÍDA.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Transportadora_Codigo From TbNfe_Transportadora A Where A.Transportadora_Codigo = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA COMO TRANSPORTADORA EM DOCUMENTO FISCAL DE ENTRADA.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Empresa_Id From TBCF_TIPO_PAGAMENTO A Where A.Empresa_Id = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA NO CADASTRO DE TIPOS DE PAGAMENTOS DE CUPONS FISCAIS.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Empresa_Id From TBCF_PARCELAS A Where A.Empresa_Id = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA NO PARCELAMENTO DOS CUPONS FISCAIS.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
      p1= Coalesce((Select First 1 A.Empresa_Id From TBCF_CHEQUE_CLIENTE A Where A.Empresa_Id = OLD.CODIGO),0);
      if (:P1 > 0) Then Exception "..." 'EMPRESA JA USADA NO PAGAMENTO COM CHEQUES DOS CUPONS FISCAIS.'||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';

     end


     DELETE FROM TBCLIENTE_PAGAMENTO_FORMA C WHERE C.CLIENTE_ID = OLD.CODIGO;

End
^

SET TERM ; ^

/*******************************************************************************************/
/*******************************************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbempresa_grupo_b02d for tbempresa_grupo
active before delete position 1
AS
BEGIN
   IF(OLD.ID > 0) THEN
   BEGIN
      DELETE FROM TBEMPRESA_GRUPO_CONTAS WHERE EMPRESA_GRUPO_ID = OLD.ID;
      DELETE FROM TBCLIENTE_PAGAMENTO_FORMA C WHERE C.GRUPO_CLIENTE_ID = OLD.ID;
   END
END
^

SET TERM ; ^

/*******************************************************************************************/
/*******************************************************************************************/

SET TERM ^ ;

CREATE OR ALTER trigger ttbcliente_pag_form_b02d for tbcliente_pagamento_forma
active before delete position 1
AS
BEGIN

    IF (OLD.ID > 0 AND OLD.PAGAMENTO_FORMA_ID > 0 AND OLD.CLIENTE_ID = 0 AND OLD.GRUPO_CLIENTE_ID = 0) THEN
    BEGIN
        
        UPDATE TBPAGAMENTO_FORMA A
            SET A.HABILITA_TODOS_CLIENTES = 0
            WHERE A.CODIGO = OLD.PAGAMENTO_FORMA_ID;

    END

END
^

SET TERM ; ^

