CREATE OR ALTER TRIGGER TTBEMPRESA_B03I FOR TBEMPRESA
ACTIVE BEFORE INSERT POSITION 0
AS
declare variable tipo_cliente       integer;
declare variable representante      integer;
declare variable PAGAMENTO_FORMA    integer;
declare variable PAGAMENTO_CONDICAO integer;
declare variable BLOQ_FORMA_PAG     integer;

begin
    --new.endereco2 = new.endereco;
   --- new.numero2 = new.numero;
    
    if( (new.ecommerce = 1 or new.ecommerce = 2) or new.replicar_cliente = 1)then
    begin

        :representante = coalesce(new.representante_id,0);

        if(new.ecommerce = 1)then
        begin
           new.conta_contabil = FN_PARAMETRO('SISTEMA.CONTA_ECOMMERCE');

           :representante = iif(new.representante_id = 0, coalesce(FN_PARAMETRO('SISTEMA.REPECOMMERCE'),0), new.representante_id);

           :tipo_cliente = coalesce(FN_PARAMETRO('SISTEMA.TIPOECOMMERCE'),59);
        end

        if(new.ecommerce = 2)then
        begin
           new.conta_contabil = FN_PARAMETRO('SISTEMA.CONTA_LACLOFIT');

           :representante = iif(new.representante_id = 0, coalesce(FN_PARAMETRO('SISTEMA.REPRESENTANTE_LACLOFIT'),0), new.representante_id);

           :tipo_cliente = coalesce(FN_PARAMETRO('SISTEMA.TIPO_CLIENTE_LACLOFIT'),62);
        end

       :BLOQ_FORMA_PAG    = 0;
       :PAGAMENTO_FORMA   = 0;

       if(new.replicar_cliente = 1)then
       begin
           :PAGAMENTO_FORMA   = COALESCE((SELECT FIRST 1 A.CODIGO FROM TBPAGAMENTO_FORMA A WHERE A.CODIGO = IIF(COALESCE(FN_PARAMETRO('SISTEMA.FORMA_PAGAMENTO_PADRAO'),0) <> '',CAST(COALESCE(FN_PARAMETRO('SISTEMA.FORMA_PAGAMENTO_PADRAO'),0) AS INTEGER),0) AND A.STATUS = '1'),0);
           IF(:PAGAMENTO_FORMA > 0)THEN
           BEGIN
              :BLOQ_FORMA_PAG = 1;
           END
       end

       INSERT INTO TBCLIENTE (
             RAZAOSOCIAL,
             CODIGO,
             REPRESENTANTE_CODIGO,
             TRANSPORTADORA_CODIGO,
             PAGAMENTO_CONDICAO,
             PAGAMENTO_FORMA,
             STATUS,
             UF,
             BLOQUEIA_PEDIDO,
             BLOQUEIA_NOTAFISCAL,
             REPRESENTANTE_COMISSAO,
             GRADE_SECUNDARIA,
             LIMITE_CREDITO,
             SUFRAMA,
             GRUPO,
             BOQUEIA_PAGAMENTO_CONDICAO,
             TIPO_CODIGO,
             VENDEDOR_CODIGO,
             MATRIZ_ID,
             VENDEDOR_COMISSAO,
             ATENDE_GRADE_COMPLETA,
             SUFRAMA_VENCIMENTO,
             LOJA,
             BLOQUEIO_DIAS_ATRASO,
             BLOQUEIO_DIAS_SEMMOV,
             TAG,
             PRIORIDADE,
             INATIVA_DIAS_SEMMOV,
             CONFIRMACAO_AUTOMATICA,
             PAFECF,
             FRETE,
             SUBSTITUIDO_TRIBUTARIO,
             DATA_BLOQUEIO,
             BLOQUEIO_MOTIVO,
             NOTIFICAR_DIAS_ATRASO,
             NOTIFICAR_ATRASO,
             ETIQUETA,
             EMPRESA_VINCULO,
             BLOQUEIO_DIAS_ATRASO_NF,
             ECOMMERCE
       ) VALUES (
             new.razaosocial,
             new.codigo,
             :representante,
             0,
             0,
             :PAGAMENTO_FORMA,
             '1',
             new.uf,
             '',
             '',
             0,
             '0',
             0,
             '',
             '0',
             :BLOQ_FORMA_PAG,
             1,
             new.vendedor_id,
             0,
             0,
             '',
             NULL,
             '',
             0,
             0,
             '',
             10,
             0,
             '',
             '',
             0,
             '0',
             NULL,
             '',
             0,
             0,
             substring(new.razaosocial from 1 for 6),
             new.codigo,
             0,
             iif(new.replicar_cliente = 1, 0, new.ecommerce)
        );

        INSERT INTO TBEMPRESA_VINCULO_TIPO (EMPRESA_VINCULO, CLIENTE_TIPO_ID, STATUS) VALUES (NEW.codigo, :tipo_cliente, 1);
    end
end
