

CREATE OR ALTER procedure rel_posicao_pecas (
    localizacao integer,
    familia integer,
    cores varchar(400),
    obs varchar(400),
    produto integer,
    data_1 date,
    data_2 date,
    classif char(1))
returns (
    produto_id integer,
    produto_descricao varchar(130),
    tamanho integer,
    tam_descricao varchar(10),
    estoque varchar(30),
    quantidade varchar(30),
    saldo varchar(30),
    tara varchar(30),
    remessa_talao varchar(20),
    peca varchar(15),
    ob varchar(15),
    enderecamento varchar(15),
    nf_empresa varchar(120),
    operador varchar(50),
    datahora_registro varchar(20),
    tipo_registro varchar(30),
    classificacao varchar(10),
    observacao blob sub_type 1 segment size 80)
as
declare variable vtipo char(1);
declare variable vproduto_id integer;
declare variable vproduto_descricao varchar(130);
declare variable vtamanho integer;
declare variable vtam_descricao varchar(10);
declare variable vestoque varchar(30);
declare variable vtara varchar(30);
declare variable vquantidade varchar(30);
declare variable vsaldo varchar(30);
declare variable vremessa_talao varchar(20);
declare variable vpeca varchar(15);
declare variable vob varchar(15);
declare variable venderecamento varchar(15);
declare variable vnf_empresa varchar(120);
declare variable voperador varchar(50);
declare variable vdatahora_registro varchar(20);
declare variable vtipo_registro varchar(30);
declare variable vchave varchar(20);
declare variable vestoq varchar(30);
declare variable vclassificacao varchar(10);
BEGIN

  vChave = '';

FOR
  SELECT TIPO, PRODUTO_ID, LPAD(PRODUTO_ID,5,'0')||' - '||PRODUTO_DESCRICAO||IIF(TAMANHO>0,' - '||TAM_DESCRICAO,'') PRODUTO_DESCRICAO, TAMANHO, TAM_DESCRICAO,
       ESTOQUE, TARA, QUANTIDADE, SALDO, REMESSA_TALAO, PECA, OB,
       ENDERECAMENTO, NF_EMPRESA, OPERADOR, FORMATDATETIME(DATAHORA_REGISTRO) DATAHORA_REGISTRO,

       IIF(AVULSO='1','PEÇA IMPLANTADA',
       IIF(AVULSO='1','PEÇA IMPLANTADA',
       IIF(STATUS_OB='2','PESADO/LIBERADO S/REVISAO',
       IIF(STATUS_OB='3','PESADO/REPROVADO S/REVISAO',
       IIF(STATUS_OB='9','PRODUZIDO',
       IIF(RESULTADO = 'R','PESADO/REVISADO/APROVADO',
       IIF(RESULTADO = 'D','PESADO/REVISADO/REPROVADO',''))))))) TIPO_REGISTRO, CLASSIFICACAO, OBSERVACAO

FROM (
SELECT TIPO, PECA, PRODUTO_ID, PRODUTO_DESCRICAO, '' NF_EMPRESA,
       TARA, QUANTIDADE, SALDO, ESTOQUE,
       DATAHORA_REGISTRO, OB, RESULTADO, ENDERECAMENTO, OPERADOR,
       TAMANHO, TAM_DESCRICAO, AVULSO, STATUS_OB, CLASSIFICACAO, REMESSA_TALAO, OBSERVACAO
FROM (
SELECT '0' TIPO, '' PECA, P.CODIGO PRODUTO_ID, P.DESCRICAO PRODUTO_DESCRICAO, 0 NUMERO_NOTAFISCAL,
       '' EMPRESA, '' TARA, '' QUANTIDADE, '' SALDO,

       CAST((SELECT IIF(GS.TAMANHO = 0,ES.SALDO,
               IIF(GS.TAMANHO = 1,ES.T01_SALDO,IIF(GS.TAMANHO = 2,ES.T02_SALDO,
               IIF(GS.TAMANHO = 3,ES.T03_SALDO,IIF(GS.TAMANHO = 4,ES.T04_SALDO,
               IIF(GS.TAMANHO = 5,ES.T05_SALDO,IIF(GS.TAMANHO = 6,ES.T06_SALDO,
               IIF(GS.TAMANHO = 7,ES.T07_SALDO,IIF(GS.TAMANHO = 8,ES.T08_SALDO,
               IIF(GS.TAMANHO = 9,ES.T09_SALDO,IIF(GS.TAMANHO =10,ES.T10_SALDO,
               IIF(GS.TAMANHO =11,ES.T11_SALDO,IIF(GS.TAMANHO =12,ES.T12_SALDO,
               IIF(GS.TAMANHO =13,ES.T13_SALDO,IIF(GS.TAMANHO =14,ES.T14_SALDO,
               IIF(GS.TAMANHO =15,ES.T15_SALDO,IIF(GS.TAMANHO =16,ES.T16_SALDO,
               IIF(GS.TAMANHO =17,ES.T17_SALDO,IIF(GS.TAMANHO =18,ES.T18_SALDO,
               IIF(GS.TAMANHO =19,ES.T19_SALDO,IIF(GS.TAMANHO =20,ES.T20_SALDO,0)))))))))))))))))))))
          FROM TBESTOQUE_SALDO ES
         WHERE ES.ESTABELECIMENTO_CODIGO = 1
           AND ES.LOCALIZACAO_CODIGO = :LOCALIZACAO
           AND ES.PRODUTO_CODIGO = P.CODIGO) AS NUMERIC(15,2)) ESTOQUE,

       CURRENT_TIMESTAMP DATAHORA_REGISTRO, '' OB, '' RESULTADO,
       '' ENDERECAMENTO, '' OPERADOR,
        GS.TAMANHO,
       COALESCE((SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,GS.TAMANHO)),'') TAM_DESCRICAO,
       '' AVULSO, '' STATUS_OB, '' CLASSIFICACAO, '' REMESSA_TALAO, '' as OBSERVACAO


FROM TBPRODUTO P, TBGRADE_SEQ GS
WHERE P.FAMILIA_CODIGO = :FAMILIA
  AND P.STATUS = '1'
  AND ((P.GRADE_CODIGO > 0 AND GS.TAMANHO > 0) OR (P.GRADE_CODIGO = 0 AND GS.TAMANHO = 0))
  AND IIF( :PRODUTO > 0, P.CODIGO = :PRODUTO, TRUE)
) X WHERE X.ESTOQUE > 0

UNION

SELECT '1' TIPO, A.ID PECA, A.PRODUTO_ID, P.DESCRICAO PRODUTO_DESCRICAO,
          COALESCE(LPAD(A.NUMERO_NOTAFISCAL,7,'0')||' - '||
          (SELECT FIRST 1 E.NOMEFANTASIA FROM TBEMPRESA E WHERE E.CODIGO = A.EMPRESA_ID),'') NF_EMPRESA,
           CAST(A.TARA AS NUMERIC(15,2))  TARA,
           CAST(A.PESO_LIQUIDO AS NUMERIC(15,2))  QUANTIDADE,
           CAST(A.SALDO AS NUMERIC(15,2)) SALDO, '' ESTOQUE,
           A.DATAHORA DATAHORA_REGISTRO, A.OB, A.RESULTADO,
          COALESCE((SELECT FIRST 1 E.GRUPO||E.SUBGRUPO FROM TBENDERECAMENTO E WHERE E.ID = A.ENDERECAMENTO_ID),'') ENDERECAMENTO,
          COALESCE((SELECT FIRST 1 O.NOME FROM TBOPERADOR O WHERE O.CODIGO = A.OPERADOR_ID),
                   (SELECT FIRST 1 U.NOME FROM TBUSUARIO U WHERE U.CODIGO = A.USUARIO_ID)) OPERADOR, A.TAMANHO,
          COALESCE((SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,A.TAMANHO)),'') TAM_DESCRICAO,
          A.AVULSO,
          COALESCE(RO.STATUS,'') STATUS_OB,
          COALESCE(RO.CLASSIFICACAO,'') CLASSIFICACAO,
          '' REMESSA_TALAO, a.observacao

FROM  TBPRODUTO P, TBREVISAO A LEFT JOIN TBREVISAO_OB RO ON (RO.NFE_ID = A.NFE_ID AND RO.OB = A.OB)

WHERE A.PRODUTO_ID = P.CODIGO
  AND A.ESTABELECIMENTO_ID = 1
  AND A.LOCALIZACAO_ENTRADA = :LOCALIZACAO
  AND A.SALDO > 0
  AND P.FAMILIA_CODIGO = :FAMILIA
  AND IIF(:OBs = '0', TRUE, A.OB IN (SELECT * FROM SPLIT(:OBs,',')))
  AND IIF(:CORES = '0', TRUE, P.COR_CODIGO IN (SELECT * FROM SPLIT(:CORES,',')))
  AND IIF( :PRODUTO > 0, P.CODIGO = :PRODUTO , TRUE)
  AND A.datahora BETWEEN :DATA_1 AND :DATA_2

UNION

SELECT '2' TIPO, A.CONTROLE PECA,
       A.PRODUTO_CODIGO PRODUTO_ID, P.DESCRICAO PRODUTO_DESCRICAO, '' NF_EMPRESA,
       0 TARA,
       CAST(A.QUANTIDADE_PRODUCAO AS NUMERIC(15,2)) QUANTIDADE,
       CAST(A.QUANTIDADE_SALDO AS NUMERIC(15,2)) SALDO, '' ESTOQUE,
       A.HORA_PRODUCAO DATAHORA_REGISTRO, '' OB, '' RESULTADO,
       '' ENDERECAMENTO,
      (SELECT FIRST 1 O.NOME FROM TBOPERADOR O WHERE O.CODIGO = A.OPERADOR) OPERADOR, A.TAMANHO,
       COALESCE((SELECT TAM_DESCRICAO FROM SP_TAMANHO_GRADE (P.GRADE_CODIGO,A.TAMANHO)),'') TAM_DESCRICAO,
       '' AVULSO, '9' STATUS_OB, '' CLASSIFICACAO,
       R.REMESSA||'-'||A.REMESSA_ACUMULADO_CONTROLE REMESSA_TALAO, '' as OBSERVACAO

FROM TBPEDIDO_ITEM_PROCESSADO A, TBPRODUTO P, TBREMESSA R

 WHERE A.PRODUTO_CODIGO = P.CODIGO
  AND A.REMESSA = R.NUMERO
  AND A.LOCALIZACAO_CODIGO = :LOCALIZACAO
  AND A.ESTABELECIMENTO_CODIGO = 1
  AND A.QUANTIDADE_SALDO > 0
  AND A.SITUACAO >= 2
  AND P.FAMILIA_CODIGO = :FAMILIA
  AND A.ESTOQUE_ID > 0
  AND IIF( :PRODUTO > 0, P.CODIGO = :PRODUTO , TRUE)
  AND A.DATA_PRODUCAO BETWEEN :DATA_1 AND :DATA_2
) X

 WHERE CLASSIFICACAO LIKE :CLASSIF

 ORDER BY
 X.PRODUTO_DESCRICAO, X.PRODUTO_ID, X.TAM_DESCRICAO, X.TIPO, X.PECA

 INTO :vTIPO,:vPRODUTO_ID,:vPRODUTO_DESCRICAO,:vTAMANHO,:vTAM_DESCRICAO,:vESTOQUE,:vTARA,
:vQUANTIDADE,:vSALDO,:vREMESSA_TALAO,:vPECA,:vOB,:vENDERECAMENTO,:vNF_EMPRESA,
:vOPERADOR,:vDATAHORA_REGISTRO,:vTIPO_REGISTRO,:vCLASSIFICACAO, OBSERVACAO

 DO

   --OBSERVACAO =  coalesce(OBSERVACAO,'');

   if (:vTIPO = '0') Then
       begin
       :vestoq = :vESTOQUE;
        vChave = :vPRODUTO_ID||'-'||:vTAMANHO;
       end else
   if (:vTIPO = '1' or :vTIPO = '2') Then
       Begin
        :PRODUTO_ID = :vPRODUTO_ID;
        :PRODUTO_DESCRICAO = :vPRODUTO_DESCRICAO;
        :TAMANHO = :vTAMANHO;
        :TAM_DESCRICAO = :vTAM_DESCRICAO;
        if (:vChave = :vPRODUTO_ID||'-'||:vTAMANHO) then
            Begin
            :ESTOQUE = :vESTOQ;
            End else
            Begin
            :ESTOQUE = '';
            End
        :TARA = :vTARA;
        :QUANTIDADE = :vQUANTIDADE;
        :SALDO = :vSALDO;
        :REMESSA_TALAO = :vREMESSA_TALAO;
        :PECA = :vPECA;
        :OB = :vOB;
        :ENDERECAMENTO = :vENDERECAMENTO;
        :NF_EMPRESA = :vNF_EMPRESA;
        :OPERADOR = :vOPERADOR;
        :DATAHORA_REGISTRO = :vDATAHORA_REGISTRO;
        :TIPO_REGISTRO = :vTIPO_REGISTRO;
        :vESTOQ = '';
        :vChave = '';
        :CLASSIFICACAO = :vCLASSIFICACAO;
        SUSPEND;
       End

END;



CREATE OR ALTER procedure spc_nfs_faturamento8 (
    estabelecimento_1 integer,
    estabelecimento_2 integer,
    supervisor_1 varchar(10),
    representante_1 integer,
    representante_2 integer,
    empresa_1 integer,
    empresa_2 integer,
    data_1 date,
    data_2 date,
    notafiscal_1 integer,
    notafiscal_2 integer,
    uf_1 varchar(2),
    serie_1 varchar(3),
    devsim char(1),
    classificacao_1 varchar(10))
returns (
    estabelecimento_codigo integer,
    estabelecimento_fantasia varchar(50),
    data date,
    numero_notafiscal integer,
    empresa_codigo integer,
    empresa_nomefantasia varchar(23),
    empresa_razaosocial varchar(60),
    valor_total numeric(10,2),
    valor_desconto numeric(10,2),
    valor_acrescimo numeric(10,2),
    quantidade numeric(10,4),
    valor_total_dev numeric(10,2),
    quant_total_dev numeric(10,4),
    observacao varchar(15),
    data_remessa date)
as
BEGIN

FOR Select
    Distinct(B.Estabelecimento_Codigo),
    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbestabelecimento E Where B.Estabelecimento_Codigo = E.Codigo)),
    B.Data_Emissao Data, B.Numero_NotaFiscal, B.Empresa_Codigo,
    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbempresa E Where B.Empresa_Codigo = E.Codigo)),
    Max(B.Empresa_RazaoSocial||'/'||B.Empresa_UF),
    Sum(A.Valor_Total) Valor_Total, Max(C.Valor_Desconto) Valor_Desconto,
    Max(C.Valor_Ipi+C.Valor_Acrescimo+C.Valor_Frete+C.Valor_Seguro+C.Valor_OutrosCustos+C.Valor_Icms_Subst) Valor_Acrescimo,
    Sum(A.Quantidade) Quantidade, Max(0) Valor_Total_Dev, Max(0) Quant_Total_Dev,

    Max((Select First 1 Cast((lPad(P.Conta_Receber_Banco,3,0)||'|'||lPad(P.Conta_Receber_Cobranca,3,0)||'|'||lpad(P.Conta_Receber_Posicao,3,0)) as varchar(12))
    From TbNfs_Parcelamento P Where P.Nfs_Controle = B.Controle)),
    Max((Select First 1 P.Remessa_Data From TbNfs_Parcelamento P Where P.Nfs_Controle = B.Controle))

From TbNfs_Item A, TbNfs B, TbNfs_Totais C, TbOperacao D, TbRepresentante R

Where A.Nfs_Controle = B.Controle
and A.Nfs_Controle = C.Nfs_Controle
and A.Operacao_Codigo = D.Codigo
and B.Representante_Codigo = R.Codigo
and D.Controle_Faturamento = 1
and ((B.Situacao = 2) or (B.Situacao = 1 and B.Natureza = 2))

and (B.Estabelecimento_Codigo Between :ESTABELECIMENTO_1 and :ESTABELECIMENTO_2)
and (R.Supervisor_ID like :SUPERVISOR_1)
and (B.Representante_Codigo between :REPRESENTANTE_1 and :REPRESENTANTE_2)
and (B.Empresa_Codigo between :EMPRESA_1 and :EMPRESA_2)
and (B.Data_Emissao BetWeen :DATA_1 and :DATA_2)
and (B.Numero_NotaFiscal BetWeen :NOTAFISCAL_1 and :NOTAFISCAL_2)
and (B.Empresa_uf like :UF_1)
and (B.Classificacao Like :Classificacao_1)

Group By B.Estabelecimento_Codigo, B.Data_Emissao, B.Numero_NotaFiscal,B.Empresa_Codigo

Union

Select Distinct(B.Estabelecimento_Codigo),
    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbestabelecimento E Where B.Estabelecimento_Codigo = E.Codigo)),
    B.Data_Entrada Data, B.Numero_NotaFiscal, B.Empresa_Codigo,

    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbempresa E Where B.Empresa_Codigo = E.Codigo)),
    Max(B.Empresa_RazaoSocial||'/'||B.Empresa_UF),

    Max(0) Valor_Total, Max(0) Valor_Desconto, Max(0) Valor_Acrescimo, Max(0) Quantidade,
    Sum(A.Valor_Total-A.Valor_Desconto+A.Valor_Acrescimo+A.Valor_Ipi+A.Valor_Icms_St) Valor_Total_Dev,
    Sum(A.Quantidade) Quant_Total_Dev, '', null

From TbNfe_Item A, TbNfe B, TbOperacao C, TbCliente CL, TbRepresentante R

Where A.Nfe_Controle = B.Controle
  and A.Operacao_Codigo = C.Codigo
  and C.Controle_Devolucao = 1 and B.Situacao < 3
  and B.Empresa_Codigo = CL.Codigo
  and CL.Representante_Codigo = R.Codigo
  and (B.Estabelecimento_Codigo between :ESTABELECIMENTO_1 and :ESTABELECIMENTO_2)
  and (R.Supervisor_ID like :SUPERVISOR_1)
  and (CL.Representante_Codigo between :REPRESENTANTE_1 and :REPRESENTANTE_2)
  and (B.Empresa_Codigo between :EMPRESA_1 and :EMPRESA_2)
  and (B.Data_Entrada BetWeen :DATA_1 and :DATA_2)
  and (B.empresa_uf Like :UF_1)
  and (B.serie Like :Serie_1)
  and (:DevSim = '1')
  and (B.Classificacao Like :Classificacao_1)

Group By B.Estabelecimento_Codigo, B.Data_Entrada, B.Numero_NotaFiscal,B.Empresa_Codigo
Order By 1,3,4

INTO   :ESTABELECIMENTO_CODIGO,
       :ESTABELECIMENTO_FANTASIA,
       :DATA,
       :NUMERO_NOTAFISCAL,
       :EMPRESA_CODIGO,
       :EMPRESA_NOMEFANTASIA,
       :EMPRESA_RAZAOSOCIAL,
       :VALOR_TOTAL,
       :VALOR_DESCONTO,
       :VALOR_ACRESCIMO,
       :QUANTIDADE,
       :VALOR_TOTAL_DEV,
       :QUANT_TOTAL_DEV,
       :OBSERVACAO,
       :Data_Remessa
DO SUSPEND;
END;



CREATE OR ALTER procedure spc_nfs_faturamento9 (
    estabelecimento_1 integer,
    estabelecimento_2 integer,
    supervisor_1 varchar(10),
    representante_1 integer,
    representante_2 integer,
    empresa_1 integer,
    empresa_2 integer,
    data_1 date,
    data_2 date,
    notafiscal_1 integer,
    notafiscal_2 integer,
    uf_1 varchar(2),
    serie_1 varchar(3),
    devsim char(1),
    classificacao_1 varchar(10))
returns (
    estabelecimento_codigo integer,
    estabelecimento_fantasia varchar(50),
    data date,
    numero_notafiscal integer,
    empresa_codigo integer,
    empresa_nomefantasia varchar(23),
    empresa_razaosocial varchar(60),
    valor_total numeric(10,2),
    valor_desconto numeric(10,2),
    valor_acrescimo numeric(10,2),
    valor_frete numeric(10,2),
    quantidade numeric(10,4),
    valor_total_dev numeric(10,2),
    quant_total_dev numeric(10,4),
    observacao varchar(15),
    data_remessa date)
as
BEGIN

FOR Select
    Distinct(B.Estabelecimento_Codigo),
    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbestabelecimento E Where B.Estabelecimento_Codigo = E.Codigo)),
    B.Data_Emissao Data, B.Numero_NotaFiscal, B.Empresa_Codigo,
    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbempresa E Where B.Empresa_Codigo = E.Codigo)),
    Max(B.Empresa_RazaoSocial||'/'||B.Empresa_UF),
    Sum(A.Valor_Total) Valor_Total, Max(C.Valor_Desconto) Valor_Desconto,
    Max(C.Valor_Ipi+C.Valor_Acrescimo+C.Valor_Seguro+C.Valor_OutrosCustos+C.Valor_Icms_Subst) Valor_Acrescimo,
    Max(C.Valor_Frete) Valor_Frete,
    Sum(A.Quantidade) Quantidade, Max(0) Valor_Total_Dev, Max(0) Quant_Total_Dev,

    Max((Select First 1 Cast((lPad(P.Conta_Receber_Banco,3,0)||'|'||lPad(P.Conta_Receber_Cobranca,3,0)||'|'||lpad(P.Conta_Receber_Posicao,3,0)) as varchar(12))
    From TbNfs_Parcelamento P Where P.Nfs_Controle = B.Controle)),
    Max((Select First 1 P.Remessa_Data From TbNfs_Parcelamento P Where P.Nfs_Controle = B.Controle))

From TbNfs_Item A, TbNfs B, TbNfs_Totais C, TbOperacao D, TbRepresentante R

Where A.Nfs_Controle = B.Controle
and A.Nfs_Controle = C.Nfs_Controle
and A.Operacao_Codigo = D.Codigo
and B.Representante_Codigo = R.Codigo
and D.Controle_Faturamento = 1
and ((B.Situacao = 2) or (B.Situacao = 1 and B.Natureza = 2))

and (B.Estabelecimento_Codigo Between :ESTABELECIMENTO_1 and :ESTABELECIMENTO_2)
and (R.Supervisor_ID like :SUPERVISOR_1)
and (B.Representante_Codigo between :REPRESENTANTE_1 and :REPRESENTANTE_2)
and (B.Empresa_Codigo between :EMPRESA_1 and :EMPRESA_2)
and (B.Data_Emissao BetWeen :DATA_1 and :DATA_2)
and (B.Numero_NotaFiscal BetWeen :NOTAFISCAL_1 and :NOTAFISCAL_2)
and (B.Empresa_uf like :UF_1)
and (B.Classificacao Like :Classificacao_1)

Group By B.Estabelecimento_Codigo, B.Data_Emissao, B.Numero_NotaFiscal,B.Empresa_Codigo

Union

Select Distinct(B.Estabelecimento_Codigo),
    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbestabelecimento E Where B.Estabelecimento_Codigo = E.Codigo)),
    B.Data_Entrada Data, B.Numero_NotaFiscal, B.Empresa_Codigo,

    Max((Select First 1 E.NomeFantasia||'/'||E.UF From tbempresa E Where B.Empresa_Codigo = E.Codigo)),
    Max(B.Empresa_RazaoSocial||'/'||B.Empresa_UF),

    Max(0) Valor_Total, Max(0) Valor_Desconto, Max(0) Valor_Acrescimo, Max(0) Valor_Frete, Max(0) Quantidade,
    Sum(A.Valor_Total-A.Valor_Desconto+A.Valor_Acrescimo+A.Valor_Ipi+A.Valor_Icms_St) Valor_Total_Dev,
    Sum(A.Quantidade) Quant_Total_Dev, '', null

From TbNfe_Item A, TbNfe B, TbOperacao C, TbCliente CL, TbRepresentante R

Where A.Nfe_Controle = B.Controle
  and A.Operacao_Codigo = C.Codigo
  and C.Controle_Devolucao = 1 and B.Situacao < 3
  and B.Empresa_Codigo = CL.Codigo
  and CL.Representante_Codigo = R.Codigo
  and (B.Estabelecimento_Codigo between :ESTABELECIMENTO_1 and :ESTABELECIMENTO_2)
  and (R.Supervisor_ID like :SUPERVISOR_1)
  and (CL.Representante_Codigo between :REPRESENTANTE_1 and :REPRESENTANTE_2)
  and (B.Empresa_Codigo between :EMPRESA_1 and :EMPRESA_2)
  and (B.Data_Entrada BetWeen :DATA_1 and :DATA_2)
  and (B.empresa_uf Like :UF_1)
  and (B.serie Like :Serie_1)
  and (:DevSim = '1')
  and (B.Classificacao Like :Classificacao_1)

Group By B.Estabelecimento_Codigo, B.Data_Entrada, B.Numero_NotaFiscal,B.Empresa_Codigo
Order By 1,3,4

INTO   :ESTABELECIMENTO_CODIGO,
       :ESTABELECIMENTO_FANTASIA,
       :DATA,
       :NUMERO_NOTAFISCAL,
       :EMPRESA_CODIGO,
       :EMPRESA_NOMEFANTASIA,
       :EMPRESA_RAZAOSOCIAL,
       :VALOR_TOTAL,
       :VALOR_DESCONTO,
       :VALOR_ACRESCIMO,
       :VALOR_FRETE,
       :QUANTIDADE,
       :VALOR_TOTAL_DEV,
       :QUANT_TOTAL_DEV,
       :OBSERVACAO,
       :Data_Remessa
DO SUSPEND;
END;



CREATE OR ALTER procedure spi_nfe4 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_entrada date,
    data_emissao date,
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(50),
    empresa_numero varchar(5),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    data_fiscal date,
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    di_base_calculo numeric(10,2),
    di_despesas_aduaneiras numeric(10,2),
    di_valor_ii numeric(10,2),
    di_valor_iof numeric(10,2),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    valor_pedagio numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    ind_nat_frete varchar(1),
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(10),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
INSERT INTO TbNfe (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,Data_Entrada,
Data_Emissao,Controle,Situacao,Cfop_Codigo,Cfop_Descricao,Usuario_Codigo,
Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,SUFRAMA,CHAVE_ACESSO,
TIPO,XML,DANFE,PAGAMENTO,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,DATA_FISCAL,FISCAL_CFOP_CODIGO,
Tipo_Doc,Classificacao,Sped_PisCof) VALUES (
:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Entrada,:Data_Emissao,:Controle,:Situacao,:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,
:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,:Empresa_Numero,:Empresa_Bairro,
:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:protocolo_cancelamento,:motivo_cancelamento,
:sped,:modelo,:especie1,:DATA_FISCAL,
:FISCAL_CFOP_CODIGO,:Tipo_Doc,:Classificacao,:Sped_PisCof);

INSERT INTO TbNfe_Totais (
Nfe_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,RETENCAO_BASE_CALCULO_IRRF,
RETENCAO_BASE_CALCULO_INSS,DI_BASE_CALCULO,DI_DESPESAS_ADUANEIRAS,DI_VALOR_II,
DI_VALOR_IOF,VALOR_CONTABIL,VALOR_PEDAGIO)
VALUES(
:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,:RETENCAO_BASE_CALCULO_IRRF,
:RETENCAO_BASE_CALCULO_INSS,:DI_BASE_CALCULO,:DI_DESPESAS_ADUANEIRAS,:DI_VALOR_II,
:DI_VALOR_IOF,:VALOR_CONTABIL,:VALOR_PEDAGIO);

INSERT INTO TbNfe_Transportadora(
Nfe_Controle,Transportadora_Codigo,Frete,Ind_Nat_Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Marca,Numero,Placa,Placa_Uf) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Ind_Nat_Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Marca,:Numero,:Placa,:Placa_Uf);

INSERT INTO TbNfe_Observacao(
Nfe_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);

END;



CREATE OR ALTER procedure spi_nfe5 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_entrada date,
    data_emissao date,
    hora_emissao varchar(5),
    hora_entrada varchar(5),
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(50),
    empresa_numero varchar(5),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    data_fiscal date,
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    di_base_calculo numeric(10,2),
    di_despesas_aduaneiras numeric(10,2),
    di_valor_ii numeric(10,2),
    di_valor_iof numeric(10,2),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    valor_pedagio numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    ind_nat_frete varchar(1),
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(10),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
INSERT INTO TbNfe (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Entrada,Data_Emissao,hora_emissao,hora_entrada,
Controle,Situacao,Cfop_Codigo,Cfop_Descricao,Usuario_Codigo,
Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,SUFRAMA,CHAVE_ACESSO,
TIPO,XML,DANFE,PAGAMENTO,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,DATA_FISCAL,FISCAL_CFOP_CODIGO,
Tipo_Doc,Classificacao,Sped_PisCof) VALUES (
:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Entrada,:Data_Emissao,:hora_emissao,:hora_entrada,:Controle,:Situacao,
:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,
:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,:Empresa_Numero,:Empresa_Bairro,
:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:protocolo_cancelamento,:motivo_cancelamento,
:sped,:modelo,:especie1,:DATA_FISCAL,
:FISCAL_CFOP_CODIGO,:Tipo_Doc,:Classificacao,:Sped_PisCof);

INSERT INTO TbNfe_Totais (
Nfe_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,RETENCAO_BASE_CALCULO_IRRF,
RETENCAO_BASE_CALCULO_INSS,DI_BASE_CALCULO,DI_DESPESAS_ADUANEIRAS,DI_VALOR_II,
DI_VALOR_IOF,VALOR_CONTABIL,VALOR_PEDAGIO)
VALUES(
:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,:RETENCAO_BASE_CALCULO_IRRF,
:RETENCAO_BASE_CALCULO_INSS,:DI_BASE_CALCULO,:DI_DESPESAS_ADUANEIRAS,:DI_VALOR_II,
:DI_VALOR_IOF,:VALOR_CONTABIL,:VALOR_PEDAGIO);

INSERT INTO TbNfe_Transportadora(
Nfe_Controle,Transportadora_Codigo,Frete,Ind_Nat_Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Marca,Numero,Placa,Placa_Uf) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Ind_Nat_Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Marca,:Numero,:Placa,:Placa_Uf);

INSERT INTO TbNfe_Observacao(
Nfe_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);

END;



CREATE OR ALTER procedure spi_nfe6 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_entrada date,
    data_emissao date,
    hora_emissao varchar(5),
    hora_entrada varchar(5),
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(50),
    empresa_numero varchar(5),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    data_fiscal date,
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    di_base_calculo numeric(10,2),
    di_despesas_aduaneiras numeric(10,2),
    di_valor_ii numeric(10,2),
    di_valor_iof numeric(10,2),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    valor_pedagio numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    ind_nat_frete varchar(1),
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(10),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    tipo_doc char(1),
    sped_piscof char(1),
    ind_final char(1))
as
BEGIN
INSERT INTO TbNfe (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Entrada,Data_Emissao,hora_emissao,hora_entrada,
Controle,Situacao,Cfop_Codigo,Cfop_Descricao,Usuario_Codigo,
Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,SUFRAMA,CHAVE_ACESSO,
TIPO,XML,DANFE,PAGAMENTO,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,DATA_FISCAL,FISCAL_CFOP_CODIGO,
Tipo_Doc,Classificacao,Sped_PisCof,IND_FINAL) VALUES (
:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Entrada,:Data_Emissao,:hora_emissao,:hora_entrada,:Controle,:Situacao,
:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,
:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,:Empresa_Numero,:Empresa_Bairro,
:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:protocolo_cancelamento,:motivo_cancelamento,
:sped,:modelo,:especie1,:DATA_FISCAL,
:FISCAL_CFOP_CODIGO,:Tipo_Doc,:Classificacao,:Sped_PisCof,:IND_FINAL);

INSERT INTO TbNfe_Totais (
Nfe_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,RETENCAO_BASE_CALCULO_IRRF,
RETENCAO_BASE_CALCULO_INSS,DI_BASE_CALCULO,DI_DESPESAS_ADUANEIRAS,DI_VALOR_II,
DI_VALOR_IOF,VALOR_CONTABIL,VALOR_PEDAGIO)
VALUES(
:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,:RETENCAO_BASE_CALCULO_IRRF,
:RETENCAO_BASE_CALCULO_INSS,:DI_BASE_CALCULO,:DI_DESPESAS_ADUANEIRAS,:DI_VALOR_II,
:DI_VALOR_IOF,:VALOR_CONTABIL,:VALOR_PEDAGIO);

INSERT INTO TbNfe_Transportadora(
Nfe_Controle,Transportadora_Codigo,Frete,Ind_Nat_Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Marca,Numero,Placa,Placa_Uf) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Ind_Nat_Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Marca,:Numero,:Placa,:Placa_Uf);

INSERT INTO TbNfe_Observacao(
Nfe_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);

END;



CREATE OR ALTER procedure spi_nfe7 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_entrada date,
    data_emissao date,
    hora_emissao varchar(5),
    hora_entrada varchar(5),
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(200),
    empresa_numero varchar(20),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    data_fiscal date,
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    di_base_calculo numeric(10,2),
    di_despesas_aduaneiras numeric(10,2),
    di_valor_ii numeric(10,2),
    di_valor_iof numeric(10,2),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    valor_pedagio numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    ind_nat_frete varchar(1),
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(10),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    tipo_doc char(1),
    sped_piscof char(1),
    ind_final char(1),
    cmunini varchar(10),
    cmunfim varchar(10))
as
BEGIN
INSERT INTO TbNfe (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Entrada,Data_Emissao,hora_emissao,hora_entrada,
Controle,Situacao,Cfop_Codigo,Cfop_Descricao,Usuario_Codigo,
Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,SUFRAMA,CHAVE_ACESSO,
TIPO,XML,DANFE,PAGAMENTO,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,DATA_FISCAL,FISCAL_CFOP_CODIGO,
Tipo_Doc,Classificacao,Sped_PisCof,IND_FINAL) VALUES (
:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Entrada,:Data_Emissao,:hora_emissao,:hora_entrada,:Controle,:Situacao,
:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,
:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,:Empresa_Numero,:Empresa_Bairro,
:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:protocolo_cancelamento,:motivo_cancelamento,
:sped,:modelo,:especie1,:DATA_FISCAL,
:FISCAL_CFOP_CODIGO,:Tipo_Doc,:Classificacao,:Sped_PisCof,:IND_FINAL);

INSERT INTO TbNfe_Totais (
Nfe_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,RETENCAO_BASE_CALCULO_IRRF,
RETENCAO_BASE_CALCULO_INSS,DI_BASE_CALCULO,DI_DESPESAS_ADUANEIRAS,DI_VALOR_II,
DI_VALOR_IOF,VALOR_CONTABIL,VALOR_PEDAGIO)
VALUES(
:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,:RETENCAO_BASE_CALCULO_IRRF,
:RETENCAO_BASE_CALCULO_INSS,:DI_BASE_CALCULO,:DI_DESPESAS_ADUANEIRAS,:DI_VALOR_II,
:DI_VALOR_IOF,:VALOR_CONTABIL,:VALOR_PEDAGIO);

INSERT INTO TbNfe_Transportadora(
Nfe_Controle,Transportadora_Codigo,Frete,Ind_Nat_Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Marca,Numero,Placa,Placa_Uf,CMUNINI,CMUNFIM
) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Ind_Nat_Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Marca,:Numero,:Placa,:Placa_Uf,:CMUNINI,:CMUNFIM
);

INSERT INTO TbNfe_Observacao(
Nfe_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);

END;


CREATE OR ALTER procedure spi_nfs4 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_saida date,
    data_emissao date,
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(50),
    empresa_numero varchar(5),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    representante_codigo integer,
    representante_comissao numeric(10,5),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    uf_embarque char(2),
    local_embarque varchar(60),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(30),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    cubagem numeric(10,4),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    acumula_item char(1),
    oculta_grade char(1),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
INSERT INTO TbNfs (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Saida,Data_Emissao,Controle,Situacao,Cfop_Codigo,Cfop_Descricao,
Usuario_Codigo,Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,Representante_Codigo,
Representante_Comissao,SUFRAMA,CHAVE_ACESSO,TIPO,XML,DANFE,PAGAMENTO,
UF_EMBARQUE,LOCAL_EMBARQUE,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,FISCAL_CFOP_CODIGO,
Acumula_Item, Oculta_Grade, Tipo_Doc, Classificacao,Sped_PisCof) VALUES (

:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Saida,:Data_Emissao,:Controle,:Situacao,:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,
:Empresa_Numero,:Empresa_Bairro,:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:Representante_Codigo,
:Representante_Comissao,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:UF_EMBARQUE,:LOCAL_EMBARQUE,:protocolo_cancelamento,:motivo_cancelamento,
:Sped,:modelo,:especie1,:FISCAL_CFOP_CODIGO,
:Acumula_Item, :Oculta_Grade, :Tipo_Doc,:Classificacao,:Sped_PisCof);

INSERT INTO TbNfs_Totais (
Nfs_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,
RETENCAO_BASE_CALCULO_IRRF,RETENCAO_BASE_CALCULO_INSS,VALOR_CONTABIL) VALUES(

:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,
:RETENCAO_BASE_CALCULO_IRRF,:RETENCAO_BASE_CALCULO_INSS,:VALOR_CONTABIL);

INSERT INTO TbNfs_Transportadora( 
Nfs_Controle,Transportadora_Codigo,Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Cubagem,Marca,Numero,Placa,Placa_Uf) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Cubagem,:Marca,:Numero,:Placa,:Placa_Uf);

INSERT INTO TbNfs_Observacao( 
Nfs_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);
END;



CREATE OR ALTER procedure spi_nfs5 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_saida date,
    data_emissao date,
    hora_emissao varchar(5),
    hora_saida varchar(5),
    ind_final char(1),
    ind_presenca char(1),
    id_estrangeiro varchar(20),
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(50),
    empresa_numero varchar(5),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    representante_codigo integer,
    representante_comissao numeric(10,5),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    uf_embarque char(2),
    local_embarque varchar(60),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(30),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    cubagem numeric(10,4),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    acumula_item char(1),
    oculta_grade char(1),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
INSERT INTO TbNfs (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Saida,Data_Emissao,
hora_emissao,hora_saida,IND_FINAL,IND_PRESENCA,id_estrangeiro,
Controle,Situacao,Cfop_Codigo,Cfop_Descricao,
Usuario_Codigo,Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,Representante_Codigo,
Representante_Comissao,SUFRAMA,CHAVE_ACESSO,TIPO,XML,DANFE,PAGAMENTO,
UF_EMBARQUE,LOCAL_EMBARQUE,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,FISCAL_CFOP_CODIGO,Acumula_Item, Oculta_Grade, Tipo_Doc,
Classificacao,Sped_PisCof) VALUES (

:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Saida,:Data_Emissao,
:hora_emissao,:hora_saida,:IND_FINAL,:IND_PRESENCA,:id_estrangeiro,
:Controle,:Situacao,:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,
:Empresa_Numero,:Empresa_Bairro,:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:Representante_Codigo,
:Representante_Comissao,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:UF_EMBARQUE,:LOCAL_EMBARQUE,:protocolo_cancelamento,:motivo_cancelamento,
:Sped,:modelo,:especie1,:FISCAL_CFOP_CODIGO,
:Acumula_Item, :Oculta_Grade, :Tipo_Doc,:Classificacao,:Sped_PisCof);

INSERT INTO TbNfs_Totais (
Nfs_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,
RETENCAO_BASE_CALCULO_IRRF,RETENCAO_BASE_CALCULO_INSS,VALOR_CONTABIL) VALUES(

:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,
:RETENCAO_BASE_CALCULO_IRRF,:RETENCAO_BASE_CALCULO_INSS,:VALOR_CONTABIL);

INSERT INTO TbNfs_Transportadora( 
Nfs_Controle,Transportadora_Codigo,Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Cubagem,Marca,Numero,Placa,Placa_Uf) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Cubagem,:Marca,:Numero,:Placa,:Placa_Uf);

INSERT INTO TbNfs_Observacao( 
Nfs_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);
END;



CREATE OR ALTER procedure spi_nfs6 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_saida date,
    data_emissao date,
    hora_emissao varchar(5),
    hora_saida varchar(5),
    ind_final char(1),
    ind_presenca char(1),
    id_estrangeiro varchar(20),
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(50),
    empresa_numero varchar(5),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    representante_codigo integer,
    representante_comissao numeric(10,5),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    uf_embarque char(2),
    local_embarque varchar(60),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    valor_estorno numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(30),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    cubagem numeric(10,4),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    acumula_item char(1),
    oculta_grade char(1),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
INSERT INTO TbNfs (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Saida,Data_Emissao,
hora_emissao,hora_saida,IND_FINAL,IND_PRESENCA,id_estrangeiro,
Controle,Situacao,Cfop_Codigo,Cfop_Descricao,
Usuario_Codigo,Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,Representante_Codigo,
Representante_Comissao,SUFRAMA,CHAVE_ACESSO,TIPO,XML,DANFE,PAGAMENTO,
UF_EMBARQUE,LOCAL_EMBARQUE,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,FISCAL_CFOP_CODIGO,Acumula_Item, Oculta_Grade, Tipo_Doc,
Classificacao,Sped_PisCof) VALUES (

:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Saida,:Data_Emissao,
:hora_emissao,:hora_saida,:IND_FINAL,:IND_PRESENCA,:id_estrangeiro,
:Controle,:Situacao,:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,
:Empresa_Numero,:Empresa_Bairro,:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:Representante_Codigo,
:Representante_Comissao,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:UF_EMBARQUE,:LOCAL_EMBARQUE,:protocolo_cancelamento,:motivo_cancelamento,
:Sped,:modelo,:especie1,:FISCAL_CFOP_CODIGO,
:Acumula_Item, :Oculta_Grade, :Tipo_Doc,:Classificacao,:Sped_PisCof);

INSERT INTO TbNfs_Totais (
Nfs_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,
RETENCAO_BASE_CALCULO_IRRF,RETENCAO_BASE_CALCULO_INSS,VALOR_CONTABIL,VALOR_ESTORNO) VALUES(

:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,
:RETENCAO_BASE_CALCULO_IRRF,:RETENCAO_BASE_CALCULO_INSS,:VALOR_CONTABIL,:VALOR_ESTORNO);

INSERT INTO TbNfs_Transportadora( 
Nfs_Controle,Transportadora_Codigo,Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Cubagem,Marca,Numero,Placa,Placa_Uf) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Cubagem,:Marca,:Numero,:Placa,:Placa_Uf);

INSERT INTO TbNfs_Observacao( 
Nfs_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);
END;



CREATE OR ALTER procedure spi_nfs7 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_saida date,
    data_emissao date,
    hora_emissao varchar(5),
    hora_saida varchar(5),
    ind_final char(1),
    ind_presenca char(1),
    id_estrangeiro varchar(20),
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(50),
    empresa_numero varchar(5),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    representante_codigo integer,
    representante_comissao numeric(10,5),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    uf_embarque char(2),
    local_embarque varchar(60),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    valor_estorno numeric(10,2),
    vencimento_dae_difal date,
    transportadora_codigo integer,
    frete integer,
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(30),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    cubagem numeric(10,4),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    acumula_item char(1),
    oculta_grade char(1),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
INSERT INTO TbNfs (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Saida,Data_Emissao,
hora_emissao,hora_saida,IND_FINAL,IND_PRESENCA,id_estrangeiro,
Controle,Situacao,Cfop_Codigo,Cfop_Descricao,
Usuario_Codigo,Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,Representante_Codigo,
Representante_Comissao,SUFRAMA,CHAVE_ACESSO,TIPO,XML,DANFE,PAGAMENTO,
UF_EMBARQUE,LOCAL_EMBARQUE,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,FISCAL_CFOP_CODIGO,Acumula_Item, Oculta_Grade, Tipo_Doc,
Classificacao,Sped_PisCof) VALUES (

:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Saida,:Data_Emissao,
:hora_emissao,:hora_saida,:IND_FINAL,:IND_PRESENCA,:id_estrangeiro,
:Controle,:Situacao,:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,
:Empresa_Numero,:Empresa_Bairro,:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:Representante_Codigo,
:Representante_Comissao,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:UF_EMBARQUE,:LOCAL_EMBARQUE,:protocolo_cancelamento,:motivo_cancelamento,
:Sped,:modelo,:especie1,:FISCAL_CFOP_CODIGO,
:Acumula_Item, :Oculta_Grade, :Tipo_Doc,:Classificacao,:Sped_PisCof);

INSERT INTO TbNfs_Totais (
Nfs_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,
RETENCAO_BASE_CALCULO_IRRF,RETENCAO_BASE_CALCULO_INSS,VALOR_CONTABIL,VALOR_ESTORNO,VENCIMENTO_DAE_DIFAL) VALUES(

:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,
:RETENCAO_BASE_CALCULO_IRRF,:RETENCAO_BASE_CALCULO_INSS,:VALOR_CONTABIL,:VALOR_ESTORNO,:VENCIMENTO_DAE_DIFAL);

INSERT INTO TbNfs_Transportadora( 
Nfs_Controle,Transportadora_Codigo,Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Cubagem,Marca,Numero,Placa,Placa_Uf) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Cubagem,:Marca,:Numero,:Placa,:Placa_Uf);

INSERT INTO TbNfs_Observacao( 
Nfs_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);
END;



CREATE OR ALTER procedure spi_nfs8 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_saida date,
    data_emissao date,
    hora_emissao varchar(5),
    hora_saida varchar(5),
    ind_final char(1),
    ind_presenca char(1),
    id_estrangeiro varchar(20),
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    usuario_codigo integer,
    usuario_data date,
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(200),
    empresa_numero varchar(20),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    representante_codigo integer,
    representante_comissao numeric(10,5),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    uf_embarque char(2),
    local_embarque varchar(60),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    sped char(1),
    modelo char(2),
    especie1 varchar(5),
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    valor_estorno numeric(10,2),
    vencimento_dae_difal date,
    transportadora_codigo integer,
    frete integer,
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(30),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    cubagem numeric(10,4),
    modalidade char(1),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    acumula_item char(1),
    oculta_grade char(1),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
INSERT INTO TbNfs (
Estabelecimento_Codigo,Numero_NotaFiscal,Serie,Empresa_Codigo,Natureza,
Data_Saida,Data_Emissao,
hora_emissao,hora_saida,IND_FINAL,IND_PRESENCA,id_estrangeiro,
Controle,Situacao,Cfop_Codigo,Cfop_Descricao,
Usuario_Codigo,Usuario_Data,Empresa_RazaoSocial,Empresa_Cnpj,Empresa_Ie,Empresa_Endereco,
Empresa_Numero,Empresa_Bairro,Empresa_Cidade,Empresa_Cep,Empresa_Uf,Representante_Codigo,
Representante_Comissao,SUFRAMA,CHAVE_ACESSO,TIPO,XML,DANFE,PAGAMENTO,
UF_EMBARQUE,LOCAL_EMBARQUE,protocolo_cancelamento,motivo_cancelamento,
sped,modelo,especie,FISCAL_CFOP_CODIGO,Acumula_Item, Oculta_Grade, Tipo_Doc,
Classificacao,Sped_PisCof) VALUES (

:Estabelecimento_Codigo,:Numero_NotaFiscal,:Serie,:Empresa_Codigo,:Natureza,
:Data_Saida,:Data_Emissao,
:hora_emissao,:hora_saida,:IND_FINAL,:IND_PRESENCA,:id_estrangeiro,
:Controle,:Situacao,:Cfop_Codigo,:Cfop_Descricao,
:Usuario_Codigo,:Usuario_Data,:Empresa_RazaoSocial,:Empresa_Cnpj,:Empresa_Ie,:Empresa_Endereco,
:Empresa_Numero,:Empresa_Bairro,:Empresa_Cidade,:Empresa_Cep,:Empresa_Uf,:Representante_Codigo,
:Representante_Comissao,:SUFRAMA,:CHAVE_ACESSO,:TIPO,:XML,:DANFE,:PAGAMENTO,
:UF_EMBARQUE,:LOCAL_EMBARQUE,:protocolo_cancelamento,:motivo_cancelamento,
:Sped,:modelo,:especie1,:FISCAL_CFOP_CODIGO,
:Acumula_Item, :Oculta_Grade, :Tipo_Doc,:Classificacao,:Sped_PisCof);

INSERT INTO TbNfs_Totais (
Nfs_Controle,BaseCalculo_Icms,BaseCalculo_Icms_Subst,Valor_Icms,Valor_Icms_Subst,
Valor_Ipi,Valor_IssQn,Valor_Frete,Valor_Seguro,Valor_Pis,Valor_Cofins,Valor_Desconto,
Valor_Parcelas,Valor_Acrescimo,Valor_OutrosCustos,Valor_Total_Produto,Valor_Total_Nf,
Retencao_Valor_Pis,Retencao_Valor_Cofins,Retencao_Valor_Inss,Retencao_Valor_IssQn,
Retencao_Valor_Irrf,Valor_Csll,Retencao_Valor_Csll,
RETENCAO_BASE_CALCULO_IRRF,RETENCAO_BASE_CALCULO_INSS,VALOR_CONTABIL,VALOR_ESTORNO,VENCIMENTO_DAE_DIFAL) VALUES(

:Controle,:BaseCalculo_Icms,:BaseCalculo_Icms_Subst,:Valor_Icms,:Valor_Icms_Subst,
:Valor_Ipi,:Valor_IssQn,:Valor_Frete,:Valor_Seguro,:Valor_Pis,:Valor_Cofins,:Valor_Desconto,
:Valor_Parcelas,:Valor_Acrescimo,:Valor_OutrosCustos,:Valor_Total_Produto,:Valor_Total_Nf,
:Retencao_Valor_Pis,:Retencao_Valor_Cofins,:Retencao_Valor_Inss,:Retencao_Valor_IssQn,
:Retencao_Valor_Irrf,:Valor_Csll,:Retencao_Valor_Csll,
:RETENCAO_BASE_CALCULO_IRRF,:RETENCAO_BASE_CALCULO_INSS,:VALOR_CONTABIL,:VALOR_ESTORNO,:VENCIMENTO_DAE_DIFAL);

INSERT INTO TbNfs_Transportadora( 
Nfs_Controle,Transportadora_Codigo,Frete,Volumes,Especie,
Peso_Bruto,Peso_Liquido,Cubagem,Marca,Numero,Placa,Placa_Uf,modalidade) VALUES(
:Controle,:Transportadora_Codigo,:Frete,:Volumes,:Especie,
:Peso_Bruto,:Peso_Liquido,:Cubagem,:Marca,:Numero,:Placa,:Placa_Uf,:modalidade);

INSERT INTO TbNfs_Observacao( 
Nfs_Controle,Observacao01,Observacao02,Observacao03,Observacao04,Observacao05,
Observacao06,Observacao07,Observacao08,Observacao09,Observacao10,Observacao11,
Observacao12,Observacao13,Observacao14,Observacao15) VALUES  ( 
:Controle,:Observacao01,:Observacao02,:Observacao03,:Observacao04,:Observacao05,
:Observacao06,:Observacao07,:Observacao08,:Observacao09,:Observacao10,:Observacao11,
:Observacao12,:Observacao13,:Observacao14,:Observacao15);
END;



CREATE OR ALTER procedure spu_copia_modelo_geral (
    id1 integer,
    id2 integer,
    descricao_1 varchar(50),
    usuario_id integer)
returns (
    codigo integer,
    descricao varchar(50),
    familia_codigo integer,
    grade_codigo integer,
    matriz_codigo integer,
    status char(1),
    linha_codigo integer,
    tipoproduto_codigo integer,
    classificacao varchar(10),
    unidademedida_sigla varchar(3),
    modelo_pai integer,
    densidade integer,
    espessura numeric(10,1),
    tipo_tag varchar(10),
    acrescimo numeric(15,2),
    prioridade integer,
    gerar_remessa char(1),
    horas_bloqueio integer,
    horas_tolerancia integer,
    cor_id integer,
    tamanho integer,
    t01 char(1),
    t02 char(1),
    t03 char(1),
    t04 char(1),
    t05 char(1),
    t06 char(1),
    t07 char(1),
    t08 char(1),
    t09 char(1),
    t10 char(1),
    t11 char(1),
    t12 char(1),
    t13 char(1),
    t14 char(1),
    t15 char(1),
    t16 char(1),
    t17 char(1),
    t18 char(1),
    t19 char(1),
    t20 char(1),
    observacao blob sub_type 0 segment size 80)
as
BEGIN

FOR Select A.CODIGO, A.DESCRICAO, A.FAMILIA_CODIGO, A.GRADE_CODIGO, A.MATRIZ_CODIGO,
    A.STATUS, A.LINHA_CODIGO, A.TIPOPRODUTO_CODIGO,
    A.T01, A.T02, A.T03, A.T04, A.T05, A.T06, A.T07, A.T08, A.T09, A.T10,
    A.T11, A.T12, A.T13, A.T14, A.T15, A.T16, A.T17, A.T18, A.T19, A.T20,
    (Select B.Observacao from TbModelo_Observacao B Where B.Modelo_Codigo = A.Codigo),
    CLASSIFICACAO, UNIDADEMEDIDA_SIGLA, MODELO_PAI, DENSIDADE, ESPESSURA,
    TIPO_TAG, ACRESCIMO, PRIORIDADE, GERAR_REMESSA, HORAS_BLOQUEIO, HORAS_TOLERANCIA,
    COR_ID,TAMANHO
From TbModelo A
Left join TbModelo_Padrao P On P.Modelo_Id = A.Codigo
Where A.Codigo = :ID1

INTO :CODIGO, :DESCRICAO, :FAMILIA_CODIGO, :GRADE_CODIGO,
     :MATRIZ_CODIGO, :STATUS, :LINHA_CODIGO, :TIPOPRODUTO_CODIGO,
     :T01, :T02, :T03, :T04, :T05, :T06, :T07, :T08, :T09, :T10,
     :T11, :T12, :T13, :T14, :T15, :T16, :T17, :T18, :T19, :T20, :OBSERVACAO,
     :CLASSIFICACAO, :UNIDADEMEDIDA_SIGLA, :MODELO_PAI, :DENSIDADE, :ESPESSURA,
     :TIPO_TAG, :ACRESCIMO, :PRIORIDADE, :GERAR_REMESSA, :HORAS_BLOQUEIO,
     :HORAS_TOLERANCIA, :COR_ID, :TAMANHO

DO

    IF (:CODIGO > 0) then
         BEGIN

            UPDATE or INSERT INTO TBMODELO (
            CODIGO, DESCRICAO, FAMILIA_CODIGO, GRADE_CODIGO, MATRIZ_CODIGO,
            STATUS, LINHA_CODIGO, TIPOPRODUTO_CODIGO,
            T01, T02, T03, T04, T05, T06, T07, T08, T09, T10,
            T11, T12, T13, T14, T15, T16, T17, T18, T19, T20,
            CLASSIFICACAO, UNIDADEMEDIDA_SIGLA, MODELO_PAI, DENSIDADE,
            ESPESSURA, TIPO_TAG, ACRESCIMO, PRIORIDADE, GERAR_REMESSA,
            HORAS_BLOQUEIO, HORAS_TOLERANCIA, USUARIO_CODIGO) VALUES (
           :ID2, :DESCRICAO_1, :FAMILIA_CODIGO, :GRADE_CODIGO, :MATRIZ_CODIGO,
           :STATUS, :LINHA_CODIGO, :TIPOPRODUTO_CODIGO,
           :T01, :T02, :T03, :T04, :T05, :T06, :T07, :T08, :T09, :T10,
           :T11, :T12, :T13, :T14, :T15, :T16, :T17, :T18, :T19, :T20,
           :CLASSIFICACAO, :UNIDADEMEDIDA_SIGLA, :MODELO_PAI, :DENSIDADE,
           :ESPESSURA, :TIPO_TAG, :ACRESCIMO, :PRIORIDADE, :GERAR_REMESSA,
           :HORAS_BLOQUEIO, :HORAS_TOLERANCIA, :USUARIO_ID)
            MATCHING (CODIGO);
    
         UPDATE or INSERT
         INTO TBMODELO_OBSERVACAO (MODELO_CODIGO, OBSERVACAO)
         VALUES (:ID2, :OBSERVACAO) MATCHING (MODELO_CODIGO);

         if (:COR_ID > 0 and :TAMANHO > 0) then
            Begin
             UPDATE or INSERT
             INTO TBMODELO_PADRAO (MODELO_ID, COR_ID, TAMANHO)
             VALUES (:ID2, :COR_ID, :TAMANHO) MATCHING (MODELO_ID);
            End

         END

SUSPEND;
END;



CREATE OR ALTER procedure spu_nfs3 (
    estabelecimento_codigo integer,
    numero_notafiscal integer,
    serie varchar(3),
    empresa_codigo integer,
    natureza integer,
    data_saida date,
    data_emissao date,
    controle integer,
    situacao integer,
    cfop_codigo varchar(5),
    cfop_descricao varchar(60),
    cfop_opcional varchar(5),
    usuario_codigo integer,
    usuario_data date,
    statusexclusao char(1),
    empresa_razaosocial varchar(50),
    empresa_cnpj varchar(14),
    empresa_ie varchar(20),
    empresa_endereco varchar(200),
    empresa_numero varchar(20),
    empresa_bairro varchar(20),
    empresa_cidade varchar(40),
    empresa_cep varchar(8),
    empresa_uf varchar(2),
    representante_codigo integer,
    representante_comissao numeric(10,5),
    suframa varchar(9),
    chave_acesso varchar(44),
    tipo char(1),
    classificacao varchar(10),
    xml char(2),
    danfe char(1),
    pagamento char(1),
    uf_embarque char(2),
    local_embarque varchar(60),
    recibo varchar(20),
    protocolo varchar(20),
    protocolo_cancelamento varchar(20),
    motivo_cancelamento varchar(50),
    modelo char(2),
    especie1 varchar(5),
    formulario_inicial integer,
    formulario_final integer,
    sped char(1),
    fiscal_cfop_codigo varchar(5),
    basecalculo_icms numeric(10,5),
    basecalculo_icms_subst numeric(10,5),
    valor_icms numeric(10,5),
    valor_icms_subst numeric(10,5),
    valor_ipi numeric(10,5),
    valor_issqn numeric(10,5),
    valor_frete numeric(10,5),
    valor_seguro numeric(10,5),
    valor_pis numeric(10,5),
    valor_cofins numeric(10,5),
    valor_csll numeric(10,5),
    retencao_base_calculo_irrf numeric(10,2),
    retencao_base_calculo_inss numeric(10,2),
    valor_desconto numeric(10,5),
    valor_acrescimo numeric(10,5),
    valor_outroscustos numeric(10,5),
    valor_total_produto numeric(10,5),
    valor_total_nf numeric(10,5),
    retencao_valor_pis numeric(10,5),
    retencao_valor_cofins numeric(10,5),
    retencao_valor_inss numeric(10,5),
    retencao_valor_issqn numeric(10,5),
    retencao_valor_irrf numeric(10,5),
    retencao_valor_csll numeric(10,5),
    valor_parcelas numeric(10,5),
    valor_contabil numeric(10,2),
    transportadora_codigo integer,
    frete integer,
    placa varchar(8),
    placa_uf varchar(2),
    volumes integer,
    especie varchar(30),
    marca varchar(10),
    peso_bruto numeric(10,5),
    peso_liquido numeric(10,5),
    numero varchar(10),
    observacao01 varchar(130),
    observacao02 varchar(130),
    observacao03 varchar(130),
    observacao04 varchar(130),
    observacao05 varchar(130),
    observacao06 varchar(130),
    observacao07 varchar(130),
    observacao08 varchar(130),
    observacao09 varchar(130),
    observacao10 varchar(130),
    observacao11 varchar(130),
    observacao12 varchar(130),
    observacao13 varchar(130),
    observacao14 varchar(130),
    observacao15 varchar(130),
    acumula_item char(1),
    tipo_doc char(1),
    sped_piscof char(1))
as
BEGIN
UPDATE TbNfs SET
Estabelecimento_Codigo = :Estabelecimento_Codigo,
Numero_NotaFiscal      = :Numero_NotaFiscal,
Serie                  = :Serie,
Empresa_Codigo         = :Empresa_Codigo,
Natureza               = :Natureza,
Data_Saida             = :Data_Saida,
Data_Emissao           = :Data_Emissao,
Situacao               = :Situacao,
Cfop_Codigo            = :Cfop_Codigo,
Cfop_Descricao         = :Cfop_Descricao,
Cfop_Opcional          = :Cfop_Opcional,
Usuario_Codigo         = :Usuario_Codigo,
Usuario_Data           = :Usuario_Data,
StatusExclusao         = :StatusExclusao,
Empresa_RazaoSocial    = :Empresa_RazaoSocial,
Empresa_Cnpj           = :Empresa_Cnpj,
Empresa_Ie             = :Empresa_Ie,
Empresa_Endereco       = :Empresa_Endereco,
Empresa_Numero         = :Empresa_Numero,
Empresa_Bairro         = :Empresa_Bairro,
Empresa_Cidade         = :Empresa_Cidade,
Empresa_Cep            = :Empresa_Cep,
Empresa_Uf             = :Empresa_Uf,
Representante_Codigo   = :Representante_Codigo,
Representante_Comissao = :Representante_Comissao,
SUFRAMA       = :SUFRAMA,
CHAVE_ACESSO  = :CHAVE_ACESSO,
TIPO          = :TIPO,
XML           = :XML,
DANFE         = :DANFE,
PAGAMENTO     = :PAGAMENTO,
UF_EMBARQUE   = :UF_EMBARQUE,
LOCAL_EMBARQUE= :LOCAL_EMBARQUE,
RECIBO        = :RECIBO,
protocolo     = :protocolo,
protocolo_cancelamento = :protocolo_cancelamento,
motivo_cancelamento    = :motivo_cancelamento,
Modelo                 = :modelo,
ESPECIE                = :especie1,
Formulario_Inicial     = :formulario_inicial,
Formulario_Final       = :formulario_final,
Sped                   = :sped,
FISCAL_CFOP_CODIGO     = :FISCAL_CFOP_CODIGO,
Acumula_Item = :Acumula_Item,
Tipo_Doc = :Tipo_Doc,
Classificacao = :Classificacao,
Sped_PisCof = :Sped_PisCof 
Where Controle= :Controle;

UPDATE TbNfs_Totais SET
BaseCalculo_Icms       = :BaseCalculo_Icms,
BaseCalculo_Icms_Subst = :BaseCalculo_Icms_Subst,
Valor_Icms             = :Valor_Icms,
Valor_Icms_Subst       = :Valor_Icms_Subst,
Valor_Ipi              = :Valor_Ipi,
Valor_IssQn            = :Valor_IssQn,
Valor_Frete            = :Valor_Frete,
Valor_Seguro           = :Valor_Seguro,
Valor_Pis              = :Valor_Pis,
Valor_Cofins           = :Valor_Cofins,
Valor_Desconto         = :Valor_Desconto,
Valor_Parcelas         = :Valor_Parcelas,
Valor_Acrescimo        = :Valor_Acrescimo,
Valor_OutrosCustos     = :Valor_OutrosCustos,
Valor_Total_Produto    = :Valor_Total_Produto,
Valor_Total_Nf         = :Valor_Total_Nf,
Retencao_Valor_Pis     = :Retencao_Valor_Pis,
Retencao_Valor_Cofins  = :Retencao_Valor_Cofins,
Retencao_Valor_Inss    = :Retencao_Valor_Inss,
Retencao_Valor_IssQn   = :Retencao_Valor_IssQn,
Retencao_Valor_Irrf    = :Retencao_Valor_Irrf,
Valor_Csll             = :Valor_Csll,
Retencao_Valor_Csll    = :Retencao_Valor_Csll,
RETENCAO_BASE_CALCULO_IRRF = :RETENCAO_BASE_CALCULO_IRRF,
RETENCAO_BASE_CALCULO_INSS = :RETENCAO_BASE_CALCULO_INSS,
valor_contabil         = :VALOR_CONTABIL
WHERE NFS_CONTROLE     = :CONTROLE;

UPDATE TbNfs_Transportadora SET
Transportadora_Codigo  = :Transportadora_Codigo,
Frete                  = :Frete,
Volumes                = :Volumes,
Especie                = :Especie,
Peso_Bruto             = :Peso_Bruto,
Peso_Liquido           = :Peso_Liquido,
Marca                  = :Marca,
Numero                 = :Numero,
Placa                  = :Placa,
Placa_Uf               = :Placa_Uf
WHERE NFS_CONTROLE     = :CONTROLE;

UPDATE TbNfs_Observacao SET
Observacao01           = :Observacao01,
Observacao02           = :Observacao02,
Observacao03           = :Observacao03,
Observacao04           = :Observacao04,
Observacao05           = :Observacao05,
Observacao06           = :Observacao06,
Observacao07           = :Observacao07,
Observacao08           = :Observacao08,
Observacao09           = :Observacao09,
Observacao10           = :Observacao10,
Observacao11           = :Observacao11,
Observacao12           = :Observacao12,
Observacao13           = :Observacao13,
Observacao14           = :Observacao14,
Observacao15           = :Observacao15
WHERE NFS_CONTROLE = :CONTROLE;

  DELETE FROM TbNfs_Item         WHERE Nfs_Controle = :CONTROLE;
  DELETE FROM TbNfs_Item_Saldo   WHERE Nfs_Controle = :CONTROLE;
  DELETE FROM TbNfs_Parcelamento WHERE Nfs_Controle = :CONTROLE;
  DELETE FROM TbNfs_Referenciada Where Nfs_Controle = :CONTROLE;
  DELETE FROM TbNf_Lote
   Where Estabelecimento_Codigo = :Estabelecimento_Codigo
     and Nfs_Controle = :CONTROLE and Nfe_Controle =  0;
  DELETE FROM TbNf_Vinculo_Contabil
   Where Estabelecimento_Id = :Estabelecimento_Codigo
     and Nfs_Id = :CONTROLE and Nfe_Id =  0;

END;


