unit ConfigacaoSistema;

interface

uses
  Windows, system.UItypes, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TelaComum, StdCtrls, Buttons, ExtCtrls, IB_Components, IB_Grid,
  ComCtrls, Mask, IB_Controls, XSpin, Menus, ImgList, jpeg, Grids, IniFiles, pcnConversao,pcnConversaoNFe,
  ShellAPI, OleCtrls, pcnNFeW, pcnNFeRTXT, SHDocVw,pcnAuxiliar, filectrl,XMLIntf, XMLDoc,
  IB_Access, IB_EditButton, System.ImageList, ACBrUtil, cxGraphics,
  cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinOffice2010Blue,
  cxButtons, Ajuda_Tipo_Contingencia;
type
  TfrmConfiguracao = class(TfrmTelaComum)
    Image1: TImage;
    edtValidadeChave: TLabeledEdit;
    edtVersaoSistema: TLabeledEdit;
    pgPrincipal: TPageControl;
    tabGeral: TTabSheet;
    DentroGeral: TPageControl;
    TabSheet1: TTabSheet;
    IB_Edit1: TIB_Edit;
    IB_Edit2: TIB_Edit;
    IB_Edit3: TIB_Edit;
    IB_Edit4: TIB_Edit;
    IB_CheckBox1: TIB_CheckBox;
    IB_Edit5: TIB_Edit;
    IB_CheckBox49: TIB_CheckBox;
    IB_CheckBox50: TIB_CheckBox;
    IB_ComboBox1: TIB_ComboBox;
    IB_Edit17: TIB_Edit;
    IB_Edit19: TIB_Edit;
    TabSheet2: TTabSheet;
    edtAtalhoExcluir: TIB_Edit;
    edtAtalhoEditar: TIB_Edit;
    edtAtalhoCancelar: TIB_Edit;
    edtAtalhoIncluir: TIB_Edit;
    edtAtalhoSalvar: TIB_Edit;
    edtAtalhoPesquisa: TIB_Edit;
    GroupBox37: TGroupBox;
    IB_ComboBox5: TIB_ComboBox;
    IB_CheckBox52: TIB_CheckBox;
    TabSheet3: TTabSheet;
    PageControl3: TPageControl;
    TabSheet4: TTabSheet;
    IB_CheckBox2: TIB_CheckBox;
    IB_CheckBox3: TIB_CheckBox;
    IB_CheckBox4: TIB_CheckBox;
    IB_CheckBox5: TIB_CheckBox;
    PageControl4: TPageControl;
    TabSheet5: TTabSheet;
    IB_CheckBox6: TIB_CheckBox;
    IB_CheckBox7: TIB_CheckBox;
    IB_CheckBox8: TIB_CheckBox;
    IB_CheckBox9: TIB_CheckBox;
    IB_CheckBox10: TIB_CheckBox;
    IB_CheckBox11: TIB_CheckBox;
    IB_CheckBox12: TIB_CheckBox;
    IB_CheckBox13: TIB_CheckBox;
    IB_CheckBox14: TIB_CheckBox;
    IB_CheckBox15: TIB_CheckBox;
    IB_CheckBox16: TIB_CheckBox;
    IB_CheckBox17: TIB_CheckBox;
    TabSheet6: TTabSheet;
    IB_CheckBox18: TIB_CheckBox;
    IB_CheckBox19: TIB_CheckBox;
    IB_CheckBox20: TIB_CheckBox;
    IB_CheckBox21: TIB_CheckBox;
    IB_CheckBox22: TIB_CheckBox;
    IB_CheckBox23: TIB_CheckBox;
    IB_CheckBox24: TIB_CheckBox;
    IB_CheckBox25: TIB_CheckBox;
    IB_CheckBox26: TIB_CheckBox;
    IB_CheckBox27: TIB_CheckBox;
    IB_CheckBox28: TIB_CheckBox;
    IB_CheckBox29: TIB_CheckBox;
    IB_CheckBox42: TIB_CheckBox;
    edtStatusCliente: TIB_LookupCombo;
    edtTabelaPadrao: TIB_LookupCombo;
    tabNF: TTabSheet;
    edtUltimaGerado: TIB_Edit;
    edtNumeroCTRC: TIB_Edit;
    PageControl6: TPageControl;
    TabSheet13: TTabSheet;
    edtImpressoraPadrao_CTRC: TIB_LookupCombo;
    edtImpressoraEtiqueta_CTRC: TIB_LookupCombo;
    TabSheet14: TTabSheet;
    TabSheet15: TTabSheet;
    Label1: TLabel;
    Label2: TLabel;
    IB_Grid1: TIB_Grid;
    IB_Grid2: TIB_Grid;
    btnInsereTodos: TBitBtn;
    btnInsere: TBitBtn;
    btnRemoveTodos: TBitBtn;
    btnRemove: TBitBtn;
    IB_CheckBox45: TIB_CheckBox;
    IB_CheckBox47: TIB_CheckBox;
    IB_CheckBox48: TIB_CheckBox;
    TabSheet18: TTabSheet;
    IB_CheckBox51: TIB_CheckBox;
    IB_Edit18: TIB_Edit;
    IB_Edit16: TIB_Edit;
    tabSystems: TTabSheet;
    pagSystems: TPageControl;
    TabSheet16: TTabSheet;
    edtCnpj: TIB_Edit;
    edtRegimeTributacao: TIB_LookupCombo;
    TabSheet17: TTabSheet;
    Label3: TLabel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    IB_CheckBox41: TIB_CheckBox;
    IB_Edit11: TIB_Edit;
    IB_Edit12: TIB_Edit;
    IB_Edit13: TIB_Edit;
    IB_Edit14: TIB_Edit;
    IB_Edit15: TIB_Edit;
    IB_CheckBox43: TIB_CheckBox;
    IB_CheckBox44: TIB_CheckBox;
    IB_Grid5: TIB_Grid;
    IB_CheckBox53: TIB_CheckBox;
    IB_CheckBox54: TIB_CheckBox;
    IB_CheckBox55: TIB_CheckBox;
    dbTelefone: TIB_Edit;
    IB_Edit20: TIB_Edit;
    GroupBox3: TGroupBox;
    edtBairroTransporte: TIB_Edit;
    edtCepTransporte: TIB_Edit;
    edtEnderecoTransporte: TIB_Edit;
    edtCidadeTransporte: TIB_Edit;
    edtNumeroTransporte: TIB_Edit;
    edtComplementoTransporte: TIB_Edit;
    edtUF: TIB_LookupCombo;
    IB_Edit10: TIB_Edit;
    edtRazaoSocial: TIB_Edit;
    edtNomeFantasia: TIB_Edit;
    edtInscricao: TIB_Edit;
    edtEmail: TIB_Edit;
    qrUF: TIB_Query;
    dsrUF: TIB_DataSource;
    TabSheet20: TTabSheet;
    dbCondicaoPagamentoPedido: TIB_LookupCombo;
    IB_LookupCombo2: TIB_LookupCombo;
    PageControl1: TPageControl;
    TabSheet21: TTabSheet;
    IB_CheckBox58: TIB_CheckBox;
    chkExigeCondicaoPagamentoPedido: TIB_CheckBox;
    IB_CheckBox61: TIB_CheckBox;
    IB_LookupCombo3: TIB_LookupCombo;
    qryTransportador_Pedido: TIB_Query;
    dtTransportador_Pedido: TIB_DataSource;
    qryTipoPagamento: TIB_Query;
    dtTipoPagamento: TIB_DataSource;
    qryCondicaoPagamento: TIB_Query;
    dtCondicaoPagamento: TIB_DataSource;
    IB_CheckBox60: TIB_CheckBox;
    GroupBox4: TGroupBox;
    edtEspecie_Mercadoria: TIB_LookupCombo;
    TabSheet22: TTabSheet;
    IB_Memo2: TIB_Memo;
    IB_CheckBox46: TIB_CheckBox;
    TabSheet23: TTabSheet;
    IB_LookupCombo4: TIB_LookupCombo;
    IB_CheckBox56: TIB_CheckBox;
    GroupBox5: TGroupBox;
    IB_Edit21: TIB_Edit;
    IB_Edit22: TIB_Edit;
    TabSheet7: TTabSheet;
    Panel4: TPanel;
    Panel5: TPanel;
    Panel6: TPanel;
    LocalImagens: TOpenDialog;
    qryEspecie: TIB_Query;
    dtEspecie: TIB_DataSource;
    qryCondicaoPagamento_NF: TIB_Query;
    dtCondicaoPagamento_NF: TIB_DataSource;
    TabSheet29: TTabSheet;
    chkExigeCondicaoPagamentoNF: TIB_CheckBox;
    obEspecieNF: TIB_CheckBox;
    obTransportadorNF: TIB_CheckBox;
    obPesoNF: TIB_CheckBox;
    obDataSaidaNF: TIB_CheckBox;
    obVolumesNF: TIB_CheckBox;
    edtCondicaoPagamentoNF: TIB_LookupCombo;
    IB_CheckBox36: TIB_CheckBox;
    IB_CheckBox37: TIB_CheckBox;
    dbTransportador: TIB_LookupCombo;
    qryCST: TIB_Query;
    dtCST: TIB_DataSource;
    dtTabela_Padrao: TIB_DataSource;
    qryTabela_Padrao: TIB_Query;
    btnStatusServ: TButton;
    PageControl7: TPageControl;
    TabSheet24: TTabSheet;
    MemoResp: TMemo;
    TabSheet25: TTabSheet;
    WBResposta: TWebBrowser;
    TabSheet26: TTabSheet;
    memoLog: TMemo;
    TabSheet27: TTabSheet;
    trvwNFe: TTreeView;
    dlgAbrirArquivo: TOpenDialog;
    dtTransporador_NF: TIB_DataSource;
    qryTransportador_NF: TIB_Query;
    IB_CheckBox39: TIB_CheckBox;
    dbFormaLancarItens: TIB_ComboBox;
    GroupBox2: TGroupBox;
    IB_CheckBox30: TIB_CheckBox;
    dbAliquotaCredito: TIB_Edit;
    edtTipo: TIB_ComboBox;
    IB_ComboBox2: TIB_ComboBox;
    Button1: TButton;
    Button2: TButton;
    btnConfirmaEnvio: TButton;
    IB_CheckBox31: TIB_CheckBox;
    IB_CheckBox32: TIB_CheckBox;
    btnConsultaRecibo: TButton;
    IB_CheckBox33: TIB_CheckBox;
    dbLocalImagens: TIB_Edit;
    SpeedButton3: TSpeedButton;
    LocalEXE: TOpenDialog;
    TabSheet19: TTabSheet;
    dbValidadorSintegra: TIB_Edit;
    SpeedButton4: TSpeedButton;
    GroupBox10: TGroupBox;
    chkEntrada: TCheckBox;
    chkSaida: TCheckBox;
    dbFinalidadeSintegra: TIB_ComboBox;
    LocalDANFE: TOpenDialog;
    IB_Edit8: TIB_Edit;
    IB_Edit9: TIB_Edit;
    TabSheet28: TTabSheet;
    IB_Edit23: TIB_Edit;
    IB_Edit24: TIB_Edit;
    IB_Edit25: TIB_Edit;
    qryMovimentacao_Tipo: TIB_Query;
    dtMovimentacao_Tipo: TIB_DataSource;
    GroupBox12: TGroupBox;
    dbTipoMovimentacao: TIB_LookupCombo;
    IB_LookupCombo1: TIB_LookupCombo;
    qryMovimentacao_Destino: TIB_Query;
    dtMovimentacao_Destino: TIB_DataSource;
    dbLocalXMLProcessado: TIB_Edit;
    IB_CheckBox34: TIB_CheckBox;
    IB_CheckBox35: TIB_CheckBox;
    IB_Edit26: TIB_Edit;
    ShtImpressoras: TTabSheet;
    GroupBox13: TGroupBox;
    GroupBox27: TGroupBox;
    GroupBox28: TGroupBox;
    IB_Edit27: TIB_Edit;
    IB_Edit28: TIB_Edit;
    GroupBox29: TGroupBox;
    dbMargemSuperiorCheque: TIB_Edit;
    dbMargemEsquerdaCheque: TIB_Edit;
    IB_ComboBox4: TIB_ComboBox;
    GroupBox39: TGroupBox;
    IB_Edit29: TIB_Edit;
    IB_Edit30: TIB_Edit;
    GroupBox42: TGroupBox;
    Shape2: TShape;
    Shape3: TShape;
    dbOrientacao: TIB_RadioGroup;
    dbEnvelopeEtiqueta: TIB_LookupCombo;
    dtChequePadrao: TIB_DataSource;
    qryEtiquetaPadrao: TIB_Query;
    dtEtiquetaPadrao: TIB_DataSource;
    qryChequePadrao: TIB_Query;
    GroupBox32: TGroupBox;
    dbEtiquetaPadrao: TIB_LookupCombo;
    dbCHequePadrao: TIB_LookupCombo;
    IB_Edit31: TIB_Edit;
    dbLocalArquivos: TIB_Edit;
    SpeedButton6: TSpeedButton;
    LocalArquivos: TOpenDialog;
    btnInutilizarNumeracao: TButton;
    IB_Memo5: TIB_Memo;
    IB_CheckBox38: TIB_CheckBox;
    dbImpressaoCFOP: TIB_ComboBox;
    dbQteVias: TIB_Edit;
    IB_Edit32: TIB_Edit;
    IB_Edit6: TIB_Edit;
    IB_CheckBox40: TIB_CheckBox;
    IB_CheckBox57: TIB_CheckBox;
    TabSheet30: TTabSheet;
    MemoDados: TMemo;
    ts1: TTabSheet;
    TreeViewRetornoConsulta: TTreeView;
    btn1: TButton;
    ts2: TTabSheet;
    mmoRespWS: TMemo;
    ts3: TTabSheet;
    pgc1: TPageControl;
    ts5: TTabSheet;
    dbLocalDANFE: TIB_Edit;
    btn2: TSpeedButton;
    IB_ComboBox6: TIB_ComboBox;
    IB_Edit34: TIB_Edit;
    IB_Edit35: TIB_Edit;
    IB_CheckBox62: TIB_CheckBox;
    chkCarregarLogo: TIB_CheckBox;
    IB_Memo1: TIB_Memo;
    IB_CheckBox63: TIB_CheckBox;
    IB_CheckBox64: TIB_CheckBox;
    IB_Edit36: TIB_Edit;
    IB_Edit37: TIB_Edit;
    IB_Memo3: TIB_Memo;
    IB_CheckBox65: TIB_CheckBox;
    IB_CheckBox66: TIB_CheckBox;
    IB_CheckBox67: TIB_CheckBox;
    IB_ComboBox7: TIB_ComboBox;
    IB_CheckBox68: TIB_CheckBox;
    ts4: TTabSheet;
    pgc2: TPageControl;
    ts6: TTabSheet;
    IB_CheckBox69: TIB_CheckBox;
    IB_CheckBox70: TIB_CheckBox;
    IB_CheckBox71: TIB_CheckBox;
    IB_CheckBox72: TIB_CheckBox;
    IB_CheckBox73: TIB_CheckBox;
    IB_CheckBox74: TIB_CheckBox;
    IB_CheckBox75: TIB_CheckBox;
    IB_CheckBox76: TIB_CheckBox;
    IB_CheckBox77: TIB_CheckBox;
    IB_Edit38: TIB_Edit;
    IB_Edit39: TIB_Edit;
    pgc3: TPageControl;
    ts7: TTabSheet;
    IB_Edit33: TIB_Edit;
    IB_Edit7: TIB_Edit;
    IB_ComboBox3: TIB_ComboBox;
    pnl1: TPanel;
    pnl2: TPanel;
    btnImprimir: TButton;
    btnConsultar: TButton;
    btnValidarXML: TButton;
    btnStatusMan: TButton;
    btnCancelamento: TButton;
    btnGerarPDF: TButton;
    btnConsultarChave: TButton;
    btnEncerramento: TButton;
    btnConsultaNaoEncerrados: TButton;
    PageControl2_man: TPageControl;
    ts8: TTabSheet;
    MemoResp_man: TMemo;
    ts9: TTabSheet;
    WBResposta_man: TWebBrowser;
    ts10: TTabSheet;
    memoLog_man: TMemo;
    ts11: TTabSheet;
    trvwMDFe_man: TTreeView;
    ts12: TTabSheet;
    memoRespWS_man: TMemo;
    tsDados: TTabSheet;
    MemoDados_man: TMemo;
    IB_ComboBox8: TIB_ComboBox;
    IB_CheckBox78: TIB_CheckBox;
    Button3: TButton;
    IB_Edit40: TIB_Edit;
    Button4: TButton;
    IB_CheckBox79: TIB_CheckBox;
    IB_Edit41: TIB_Edit;
    IB_Edit42: TIB_Edit;
    IB_LookupCombo5: TIB_LookupCombo;
    dsrStatus: TIB_DataSource;
    qrStatus: TIB_Query;
    IB_CheckBox80: TIB_CheckBox;
    IB_ComboBox9: TIB_ComboBox;
    IB_RadioGroup1: TIB_RadioGroup;
    IB_CheckBox81: TIB_CheckBox;
    Button5: TButton;
    TabSheet8: TTabSheet;
    IB_CheckBox82: TIB_CheckBox;
    TabSheet10: TTabSheet;
    GroupBox6: TGroupBox;
    IB_ComboBox10: TIB_ComboBox;
    IB_ComboBox11: TIB_ComboBox;
    IB_ComboBox12: TIB_ComboBox;
    IB_ComboBox13: TIB_ComboBox;
    TabSheet11: TTabSheet;
    GroupBox7: TGroupBox;
    IB_ComboBox14: TIB_ComboBox;
    IB_CheckBox83: TIB_CheckBox;
    IB_ComboBox16: TIB_ComboBox;
    cxButton1: TcxButton;
    GroupBox11: TGroupBox;
    IB_RadioGroup2: TIB_RadioGroup;
    GroupBox8: TGroupBox;
    IB_Edit43: TIB_Edit;
    IB_Edit44: TIB_Edit;
    IB_Edit45: TIB_Edit;
    IB_ComboBox15: TIB_ComboBox;
    procedure BtGravarClick(Sender: TObject);
    procedure BtCancelarClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure edtAtalhoExcluirKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtAtalhoIncluirKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtAtalhoSalvarKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtAtalhoEditarKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtAtalhoCancelarKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edtAtalhoPesquisaKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure SpeedButton3Click(Sender: TObject);
    procedure btnStatusServClick(Sender: TObject);
    procedure edtCepTransporteExit(Sender: TObject);
    procedure LoadXML(MyMemo: TMemo; MyWebBrowser: TWebBrowser);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure btnConsultaReciboClick(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btnInutilizarNumeracaoClick(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnStatusManClick(Sender: TObject);
    procedure btnConsultarChaveClick(Sender: TObject);
    procedure btnImprimirClick(Sender: TObject);
    procedure btnEncerramentoClick(Sender: TObject);
    procedure btnGerarPDFClick(Sender: TObject);
    procedure btnValidarXMLClick(Sender: TObject);
    procedure btnConsultarClick(Sender: TObject);
    procedure btnCancelamentoClick(Sender: TObject);
    procedure btnConsultaNaoEncerradosClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure cxButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmConfiguracao: TfrmConfiguracao;
  RENAVAM:String;

implementation

uses DataModulo, Rotinas, pcnNFe, ufrmStatus, ACBrNFeNotasFiscais, DateUtils, ACBrNFe ,
  DataModulo_NFe, ACBrNFeConfiguracoes, ACBrDFeConfiguracoes;

const
  SELDIRHELP = 1000;

{$R *.dfm}

procedure TfrmConfiguracao.BtGravarClick(Sender: TObject);
begin
   inherited;

  if not (dados.tbParametro_Cliente.State in [dssBrowse]) then
  begin
    if dados.tbParametro_Cliente.FieldByName('COD_PARAMETRO_CLIENTE').IsNull then
       dados.tbParametro_Cliente.FieldByName('COD_PARAMETRO_CLIENTE').Value := 1;
  end;

  if not (dados.tbParametro_Fornecedor.State in [dssBrowse]) then
  begin
    if dados.tbParametro_Fornecedor.FieldByName('COD_PARAM_FORNECEDOR').IsNull then
       dados.tbParametro_Fornecedor.FieldByName('COD_PARAM_FORNECEDOR').Value := 1;
  end;

  if not (dados.qrConfigEmail.State in [dssBrowse]) then
  begin
    if dados.qrConfigEmail.FieldByName('COD_CONFIG').IsNull then
       dados.qrConfigEmail.FieldByName('COD_CONFIG').Value := 1;
  end;

   if edtUf.Text <> '' then
      Dados. qrRegistro.FieldByName('COD_UF').Value  := qrUF.FieldByName('COD_UF').Value
   else
      Dados.qrRegistro.FieldByName('COD_UF').Value  := Null;

   Dados.qryEtiquetasEnvelopes.RefreshAll;

   Dados.tbParametro_Cliente.FieldByName('COD_STATUS_INICIAL').Value  := Dados.qryStatusCliente.FieldByName('COD_STATUS').Value;
   Dados.tbParametro_Cliente.FieldByName('COD_TABELA').Value  := qryTabela_Padrao.FieldByName('COD_TABELA').Value;
   Dados.tbParametro_Cliente.Post;
   Dados.tbParametro_Cliente.RefreshAll;

   Dados.tbParametro_Pedido.FieldByName('COD_TRANSPORTADOR').Value      := qryTransportador_Pedido.FieldByName('COD_TRANSPORTADOR').Value;
   Dados.tbParametro_Pedido.FieldByName('COD_CONDICAO_PAGAMENTO').Value := qryCondicaoPagamento.FieldByName('COD_CONDICAO_PAGAMENTO').Value;
   Dados.tbParametro_Pedido.FieldByName('COD_TIPO_PAGAMENTO').Value     := qryTipoPagamento.FieldByName('COD_TIPO_PAGAMENTO').Value;
   Dados.tbParametro_Pedido.FieldByName('STATUS_PEDIDO_PADRAO').Value   := qrStatus.FieldByName('COD_STATUS_PEDIDO').Value;
   Dados.tbParametro_Pedido.Post;
   Dados.tbParametro_Pedido.RefreshAll;

   Dados.tbConfig.FieldByName('CHEQUE_PADRAO').Value        := qryChequePadrao.FieldByName('CODIGO').Value;
   Dados.tbConfig.FieldByName('ETIQUETA_PADRAO').Value      := qryEtiquetaPadrao.FieldByName('CODIGO').Value;
   Dados.tbConfig.Post;
   Dados.tbConfig.RefreshAll;

   Dados.qrConfigEmail.post;
   Dados.qrConfigEmail.RefreshAll;

   Dados.qrRegistro.post;
   Dados.qrRegistro.RefreshAll;

   Dados.tbParametro_Manifesto.post;
   Dados.tbParametro_Manifesto.RefreshAll;

   Dados.qryParametro_NF.FieldByName('COD_TRANSPORTADOR').Value:=qryTransportador_NF.FieldByName('COD_TRANSPORTADOR').Value;
   Dados.qryParametro_NF.FieldByName('COD_ESPECIE_MERCADORIA').Value:=qryEspecie.FieldByName('COD_ESPECIE_MERCADORIA').Value;
   Dados.qryParametro_NF.FieldByName('COD_CONDICAO_PAGAMENTO').Value:=qryCondicaoPagamento_NF.FieldByName('COD_CONDICAO_PAGAMENTO').Value;
   Dados.qryParametro_NF.FieldByName('FORMA_LANCAMENTO_ITENS').Value:=dbFormaLancarItens.Text;
   Dados.qryParametro_NF.post;
   Dados.qryParametro_NF.RefreshAll;

   Dados.qryParametroCobranca.FieldByName('COD_EVENTO_REMESSA').Value :=qryMovimentacao_Tipo.FieldByName('COD_TIPO_EVENTO').AsInteger;
   Dados.qryParametroCobranca.FieldByName('COD_DESTINO_REMESSA').Value:=qryMovimentacao_Destino.FieldByName('COD_DESTINO').AsInteger;
   Dados.qryParametroCobranca.post;
   Dados.qryParametroCobranca.RefreshAll;

   Close;
end;

procedure TfrmConfiguracao.BtCancelarClick(Sender: TObject);
begin
  inherited;
   Dados.tbConfig.Cancel;
   Dados.tbParametro_Cliente.Cancel;
   Dados.tbParametro_Pedido.Cancel;
   Dados.qryParametro_NF.Cancel;
   Dados.qrParametro_Produto.Cancel;
   Close;
end;

procedure TfrmConfiguracao.FormCreate(Sender: TObject);
begin
  inherited;
   DMNFe := TDMNFe.Create(Self);

   Dados.tbConfig.Open;
   Dados.qrRegistro.Open;
   Dados.qrRegimeTributacao.Open;
   Dados.tbParametro_Pedido.Open;
   Dados.qryParametro_NF.Open;
   Dados.qryParametroCobranca.Open;
   Dados.qrParametro_Produto.Open;

   qryTransportador_Pedido.Open;
   qryTransportador_NF.Open;
   qryTipoPagamento.Open;
   qryCondicaoPagamento.Open;
   qryCondicaoPagamento_NF.Open;
   qryEspecie.Open;
   qryCST.Open;
   qryTabela_Padrao.Open;
   qryMovimentacao_Tipo.Open;
   qryMovimentacao_Destino.Open;
   qryEtiquetaPadrao.Open;
   qryChequePadrao.Open;
   InicioDaTabela(qrStatus);

  if NOT qrStatus.Locate('COD_STATUS_PEDIDO',Dados.tbParametro_Pedido.FieldByName('STATUS_PEDIDO_PADRAO').Value, [] )
  then
    begin
      if not qrStatus.Bof
      then
        begin
          qrStatus.First;
          qrStatus.Prior;
        end;
    end;

   if Dados.tbParametro_Manifesto.IsEmpty then
   begin
      Dados.tbParametro_Manifesto.Insert;
      Dados.tbParametro_Manifesto.FieldByName('COD_PARAMETRO_MANIFESTO').Value := 1;
   end
   else
      Dados.tbParametro_Manifesto.Edit;

  if NOT qryEtiquetaPadrao.Locate('CODIGO',Dados.tbConfig.FieldByName('ETIQUETA_PADRAO').Value, [] )
  then
    begin
      if not qryEtiquetaPadrao.Bof
      then
        begin
          qryEtiquetaPadrao.First;
          qryEtiquetaPadrao.Prior;
        end;
    end;

  if NOT qryChequePadrao.Locate('CODIGO',Dados.tbConfig.FieldByName('CHEQUE_PADRAO').Value, [] )
  then
    begin
      if not qryChequePadrao.Bof
      then
        begin
          qryChequePadrao.First;
          qryChequePadrao.Prior;
        end;
    end;

   //=============== Atualiza Destino Remessa  ================
   if not qryMovimentacao_Destino.Locate('COD_DESTINO' , Dados.qryParametroCobranca.FieldByName('COD_DESTINO_REMESSA').Value  , [] ) then
   begin
      if  NOT qryMovimentacao_Destino.Bof then
      begin
         qryMovimentacao_Destino.First;
         qryMovimentacao_Destino.Prior;
      end;
   end;

   //=============== Atualiza Codigo Evento da Remessa  ================
   if not qryMovimentacao_Tipo.Locate('COD_TIPO_EVENTO' , Dados.qryParametroCobranca.FieldByName('COD_EVENTO_REMESSA').Value  , [] ) then
   begin
      if  NOT qryMovimentacao_Tipo.Bof then
      begin
         qryMovimentacao_Tipo.First;
         qryMovimentacao_Tipo.Prior;
      end;
   end;

   //=============== Atualiza Tabela Padrão  ================
   if not qryTabela_Padrao.Locate('COD_TABELA' , Dados.tbParametro_Cliente.FieldByName('COD_TABELA').Value  , [] ) then
   begin
      if  NOT qryTabela_Padrao.Bof then
      begin
         qryTabela_Padrao.First;
         qryTabela_Padrao.Prior;
      end;
   end;

   //=============== Atualiza especie  ================
   if not qryEspecie.Locate('COD_ESPECIE_MERCADORIA' , Dados.qryParametro_NF.FieldByName('COD_ESPECIE_MERCADORIA').Value  , [] ) then
   begin
      if  NOT qryEspecie.Bof then
      begin
         qryEspecie.First;
         qryEspecie.Prior;
      end;
   end;

   //=============== Atualiza Condição de pagamento Padrão o Pedido  ================
   if not qryCondicaoPagamento_NF.Locate('COD_CONDICAO_PAGAMENTO' , Dados.qryParametro_NF.FieldByName('COD_CONDICAO_PAGAMENTO').Value  , [] ) then
   begin
      if  NOT qryCondicaoPagamento_NF.Bof then
      begin
         qryCondicaoPagamento_NF.First;
         qryCondicaoPagamento_NF.Prior;
      end;
   end;

   //=============== Atualiza Condição de pagamento Padrão o Pedido ================
   if not qryCondicaoPagamento.Locate('COD_CONDICAO_PAGAMENTO' , Dados.tbParametro_Pedido.FieldByName('COD_CONDICAO_PAGAMENTO').Value  , [] ) then
   begin
      if  NOT qryCondicaoPagamento.Bof then
      begin
         qryCondicaoPagamento.First;
         qryCondicaoPagamento.Prior;
      end;
   end;

   //=============== Atualiza Tipo pagamento  ================
   if not qryTipoPagamento.Locate('COD_TIPO_PAGAMENTO' , Dados.tbParametro_Pedido.FieldByName('COD_TIPO_PAGAMENTO').Value  , [] ) then
   begin
      if  NOT qryTipoPagamento.Bof then
      begin
         qryTipoPagamento.First;
         qryTipoPagamento.Prior;
      end;
   end;

   //=============== Atualiza Transportador NF ================
   if not qryTransportador_NF.Locate('COD_TRANSPORTADOR' , Dados.qryParametro_NF.FieldByName('COD_TRANSPORTADOR').Value  , [] ) then
   begin
      if  NOT qryTransportador_NF.Bof then
      begin
         qryTransportador_NF.First;
         qryTransportador_NF.Prior;
      end;
   end;

   //=============== Atualiza Transportador Pedido ================
   if not qryTransportador_Pedido.Locate('COD_TRANSPORTADOR' , Dados.tbParametro_Pedido.FieldByName('COD_TRANSPORTADOR').Value  , [] ) then
   begin
      if  NOT qryTransportador_Pedido.Bof then
      begin
         qryTransportador_Pedido.First;
         qryTransportador_Pedido.Prior;
      end;
   end;

   //=============== Atualiza Regime Tributação  ================
   if not Dados.qrRegimeTributacao.Locate('CODIGO_REGIME_TRIBUTACAO' , Dados.qrRegistro.FieldByName('CODIGO_REGIME_TRIBUTACAO').Value  , [] ) then
   begin
      if  NOT Dados.qrRegimeTributacao.Bof then
      begin
         Dados.qrRegimeTributacao.First;
         Dados.qrRegimeTributacao.Prior;
      end;
   end;


   qrUF.Open;
   //=============== Atualiza os UF  ================
   if not qrUF.Locate('COD_UF' , Dados.qrRegistro.FieldByName('COD_UF').Value  , [] ) then
   begin
      if  NOT qrUF.Bof then
      begin
         qrUF.First;
         qrUF.Prior;
      end;
   end;

   Dados.qryStatusCliente.Open;
   Dados.tbParametro_Cliente.Open;
   //=============== Atualiza os Status Cliente  ================
   if not Dados.qryStatusCliente.Locate('COD_STATUS' , Dados.tbParametro_Cliente.FieldByName('COD_STATUS_INICIAL').Value  , [] ) then
   begin
      if  NOT Dados.qryStatusCliente.Bof then
      begin
         Dados.qryStatusCliente.First;
         Dados.qryStatusCliente.Prior;
      end;
   end;

   //=============== Atualiza CST  ================
   if not qryCST.Locate('CODIGO' , Dados.qryParametro_NF.FieldByName('COD_CST').Value  , [] ) then
   begin
      if  NOT qryCST.Bof then
      begin
         qryCST.First;
         qryCST.Prior;
      end;
   end;

   Dados.tbConfig.RefreshAll;
   Dados.qrRegistro.RefreshAll;
   Dados.tbParametro_Cliente.RefreshAll;
   Dados.tbParametro_Pedido.RefreshAll;
   Dados.qryParametro_NF.RefreshAll;
   Dados.qrParametro_Produto.RefreshAll;
   Dados.qryEtiquetasEnvelopes.RefreshAll;

   if Dados.qryEtiquetasEnvelopes.IsEmpty then
      Dados.qryEtiquetasEnvelopes.Insert
   else
      Dados.qryEtiquetasEnvelopes.Edit;

   if Dados.tbParametro_Pedido.IsEmpty then
      Dados.tbParametro_Pedido.Insert
   else
      Dados.tbParametro_Pedido.Edit;

   if Dados.qrRegistro.IsEmpty then
      Dados.qrRegistro.Insert
   else
      Dados.qrRegistro.Edit;

   if Dados.tbConfig.IsEmpty then
      Dados.tbConfig.Insert
   else
      Dados.tbConfig.Edit;

   if Dados.tbParametro_Cliente.IsEmpty then
   begin
      Dados.tbParametro_Cliente.Insert;
      Dados.tbParametro_Cliente.FieldByName('COD_PARAMETRO_CLIENTE').VALUE:=1;
   end
   else
      Dados.tbParametro_Cliente.Edit;

   if Dados.qryParametro_NF.IsEmpty then
      Dados.qryParametro_NF.Insert
   else
      Dados.qryParametro_NF.Edit;

   if Dados.qrParametro_Produto.IsEmpty then
   begin
      Dados.qrParametro_Produto.Insert;
      Dados.qrParametro_Produto.FieldByName('COD_PARAMETRO_PRODUTO').Value := 1;
   end
   else
      Dados.qrParametro_Produto.Edit;

   if Dados.qryParametroCobranca.IsEmpty then
   begin
      Dados.qryParametroCobranca.Insert;
      Dados.qryParametroCobranca.FieldByName('COD_PARAM_COBRANCA').VALUE:=1;
   end
   else
      Dados.qryParametroCobranca.Edit;

   if Dados.qrConfigEmail.IsEmpty then
   begin
      Dados.qrConfigEmail.Insert;
      Dados.qrConfigEmail.FieldByName('COD_CONFIG').VALUE:=1;
   end
   else
      Dados.qrConfigEmail.Edit;

   if Dados.qryParametroCobranca.IsEmpty then
   begin
     edtVersaoSistema.Text := Crypt('D', Dados.qrVersao.FieldByName('VERSAO_DO_SISTEMA').AsString , ChaveCriptografia);
     edtValidadeChave.Text := Crypt('D', Dados.qrVersao.FieldByName('VALIDADE_DO_SISTEMA').AsString , ChaveCriptografia);
   end;

end;

procedure TfrmConfiguracao.edtAtalhoExcluirKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
   edtAtalhoExcluir.Text := TeclaPressionada(KEY);
   inherited;
end;

procedure TfrmConfiguracao.edtAtalhoIncluirKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
   edtAtalhoIncluir.Text := TeclaPressionada(KEY);
end;

procedure TfrmConfiguracao.edtAtalhoSalvarKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
   edtAtalhoSalvar.Text := TeclaPressionada(KEY);
end;

procedure TfrmConfiguracao.edtAtalhoEditarKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
   edtAtalhoEditar.Text := TeclaPressionada(KEY);
end;

procedure TfrmConfiguracao.edtAtalhoCancelarKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
   edtAtalhoCancelar.Text := TeclaPressionada(KEY);
end;

procedure TfrmConfiguracao.edtAtalhoPesquisaKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   inherited;
   edtAtalhoPesquisa.Text := TeclaPressionada(KEY);
end;

procedure TfrmConfiguracao.SpeedButton3Click(Sender: TObject);
begin
  inherited;
   LocalImagens.FileName := dbLocalImagens.EditText;
   if LocalImagens.Execute then
      dbLocalImagens.EditText := LocalImagens.FileName;
end;









procedure TfrmConfiguracao.LoadXML(MyMemo: TMemo; MyWebBrowser: TWebBrowser);
begin
  MyMemo.Lines.SaveToFile(ExtractFileDir(application.ExeName)+'\temp.xml');
  MyWebBrowser.Navigate(ExtractFileDir(application.ExeName)+'\temp.xml');
end;

procedure TfrmConfiguracao.btnStatusManClick(Sender: TObject);
begin
  inherited;
   DMNFE.MDFe.WebServices.StatusServico.Executar;
   MemoResp_man.Lines.Text := UTF8Encode(DMNFE.MDFe.WebServices.StatusServico.RetWS);
   memoRespWS_man.Lines.Text := UTF8Encode(DMNFE.MDFe.WebServices.StatusServico.RetWS);
   LoadXML(MemoResp_man, WBResposta_man);

   PageControl2_man.ActivePageIndex := 5;
   MemoDados_man.Lines.Add('');
   MemoDados_man.Lines.Add('Status Serviço');
   MemoDados_man.Lines.Add('tpAmb: '    +TpAmbToStr(DMNFE.MDFe.WebServices.StatusServico.tpAmb));
   MemoDados_man.Lines.Add('verAplic: ' +DMNFE.MDFe.WebServices.StatusServico.verAplic);
   MemoDados_man.Lines.Add('cStat: '    +IntToStr(DMNFE.MDFe.WebServices.StatusServico.cStat));
   MemoDados_man.Lines.Add('xMotivo: '  +DMNFE.MDFe.WebServices.StatusServico.xMotivo);
   MemoDados_man.Lines.Add('cUF: '      +IntToStr(DMNFE.MDFe.WebServices.StatusServico.cUF));
   MemoDados_man.Lines.Add('dhRecbto: ' +DateTimeToStr(DMNFE.MDFe.WebServices.StatusServico.dhRecbto));
   MemoDados_man.Lines.Add('tMed: '     +IntToStr(DMNFE.MDFe.WebServices.StatusServico.TMed));
   MemoDados_man.Lines.Add('dhRetorno: '+DateTimeToStr(DMNFE.MDFe.WebServices.StatusServico.dhRetorno));
   MemoDados_man.Lines.Add('xObs: '     +DMNFE.MDFe.WebServices.StatusServico.xObs);

end;

procedure TfrmConfiguracao.btnStatusServClick(Sender: TObject);
begin
  inherited;
 DMNFE.NFe.WebServices.StatusServico.Executar;

 MemoResp.Lines.Text := UTF8Encode(DMNFE.NFe.WebServices.StatusServico.RetWS);
 MemoResp.Lines.Text := UTF8Encode(DMNFE.NFe.WebServices.StatusServico.RetornoWS);
 LoadXML(MemoResp, WBResposta);

 PageControl7.ActivePageIndex := 4;

 MemoDados.Lines.Add('');
 MemoDados.Lines.Add('Status Serviço');
 MemoDados.Lines.Add('tpAmb: '    +TpAmbToStr(DMNFE.NFe.WebServices.StatusServico.tpAmb));
 MemoDados.Lines.Add('verAplic: ' +DMNFE.NFe.WebServices.StatusServico.verAplic);
 MemoDados.Lines.Add('cStat: '    +IntToStr(DMNFE.NFe.WebServices.StatusServico.cStat));
 MemoDados.Lines.Add('xMotivo: '  +DMNFE.NFe.WebServices.StatusServico.xMotivo);
 MemoDados.Lines.Add('cUF: '      +IntToStr(DMNFE.NFe.WebServices.StatusServico.cUF));
 MemoDados.Lines.Add('dhRecbto: ' +DateTimeToStr(DMNFE.NFe.WebServices.StatusServico.dhRecbto));
 MemoDados.Lines.Add('tMed: '     +IntToStr(DMNFE.NFe.WebServices.StatusServico.TMed));
 MemoDados.Lines.Add('dhRetorno: '+DateTimeToStr(DMNFE.NFe.WebServices.StatusServico.dhRetorno));
 MemoDados.Lines.Add('xObs: '     +DMNFE.NFe.WebServices.StatusServico.xObs);

end;

procedure TfrmConfiguracao.btnValidarXMLClick(Sender: TObject);
begin
  inherited;
 dlgAbrirArquivo.Title := 'Selecione o MDFe';
 dlgAbrirArquivo.DefaultExt := '*-MDFe.xml';
 dlgAbrirArquivo.Filter := 'Arquivos MDFe (*-MDFe.xml)|*-MDFe.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 dlgAbrirArquivo.InitialDir := DMNFE.MDFe.Configuracoes.Arquivos.PathSalvar;

 if dlgAbrirArquivo.Execute then
  begin
   DMNFE.MDFe.Manifestos.Clear;
   DMNFE.MDFe.Manifestos.LoadFromFile(dlgAbrirArquivo.FileName);
   DMNFE.MDFe.Manifestos.Validar;
   showmessage('Manifesto Eletrônico de Documentos Fiscais Valido');
  end;
end;

procedure TfrmConfiguracao.edtCepTransporteExit(Sender: TObject);
begin
  inherited;
   if ValidarCep (Dados.qrRegistro.FieldByName('CEP').AsString) = False  then
   begin
      MessageDlg('Cep Inválido', mtWarning, [mbOK], 0);
      edtCepTransporte.SetFocus;
      Exit;
   end;

   try
      dados.qrCep.Close;
      dados.qrCep.ParamByName('CEP').Value := QuotedSTR(LimpaTexto(edtCepTransporte.Text));
      dados.qrCep.Open;
      if dados.qrCep.IsEmpty then
         Exit;

      Dados.qrRegistro.FieldByName('LOGRADOURO').Value := dados.qrCep.FieldByName('TIPO').AsString + ' '+dados.qrCep.FieldByName('RUA').AsString;
      Dados.qrRegistro.FieldByName('BAIRRO').Value     := dados.qrCep.FieldByName('BAIRRO').AsString;
      Dados.qrRegistro.FieldByName('CIDADE').Value     := dados.qrCep.FieldByName('CIDADE').AsString;
      Dados.qrRegistro.FieldByName('COD_CIDADE_IBGE').Value             := dados.qrCep.FieldByName('COD_CIDADE_IBGE').AsString;
      Dados.qrRegistro.FieldByName('COD_UF_IBGE').Value                 := dados.qrCep.FieldByName('COD_UF_IBGE').AsString;

      if qrUF.Locate('DESCRICAO', dados.qrCep.FieldByName('UF').AsString, [] ) then
         Dados.qrRegistro.FieldByName('COD_UF').Value := qrUF.FieldByName('COD_UF').Value;
      except
   end;

end;

procedure TfrmConfiguracao.Button1Click(Sender: TObject);
var
  i, j, k, n  : integer;
  Nota, Node, NodePai, NodeItem: TTreeNode;
begin
  dlgAbrirArquivo.FileName  :=  '';
  dlgAbrirArquivo.Title := 'Selecione a NFE';
  dlgAbrirArquivo.DefaultExt := '*-nfe.XML';
  dlgAbrirArquivo.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
  dlgAbrirArquivo.InitialDir := DMNFE.NFe.Configuracoes.Arquivos.PathSalvar;
  if dlgAbrirArquivo.Execute then
  begin
    DMNFE.NFe.NotasFiscais.Clear;
    DMNFE.NFe.NotasFiscais.LoadFromFile(dlgAbrirArquivo.FileName);
    trvwNFe.Items.Clear;

    for n:=0 to DMNFE.NFe.NotasFiscais.Count-1 do
    begin
    with DMNFE.NFe.NotasFiscais.Items[n].NFe do
     begin
       Nota := trvwNFe.Items.Add(nil,infNFe.ID);

       trvwNFe.Items.AddChild(Nota,'ID= ' +infNFe.ID);
       Node := trvwNFe.Items.AddChild(Nota,'procNFe');
       trvwNFe.Items.AddChild(Node,'tpAmb= '     +TpAmbToStr(procNFe.tpAmb));
       trvwNFe.Items.AddChild(Node,'verAplic= '  +procNFe.verAplic);
       trvwNFe.Items.AddChild(Node,'chNFe= '     +procNFe.chNFe);
       trvwNFe.Items.AddChild(Node,'dhRecbto= '  +DateTimeToStr(procNFe.dhRecbto));
       trvwNFe.Items.AddChild(Node,'nProt= '     +procNFe.nProt);
       trvwNFe.Items.AddChild(Node,'digVal= '    +procNFe.digVal);
       trvwNFe.Items.AddChild(Node,'cStat= '     +IntToStr(procNFe.cStat));
       trvwNFe.Items.AddChild(Node,'xMotivo= '   +procNFe.xMotivo);

       Node := trvwNFe.Items.AddChild(Nota,'Ide');
       trvwNFe.Items.AddChild(Node,'cNF= '     +IntToStr(Ide.cNF));
       trvwNFe.Items.AddChild(Node,'natOp= '   +Ide.natOp );
       trvwNFe.Items.AddChild(Node,'indPag= '  +IndpagToStr(Ide.indPag));
       trvwNFe.Items.AddChild(Node,'modelo= '  +IntToStr(Ide.modelo));
       trvwNFe.Items.AddChild(Node,'serie= '   +IntToStr(Ide.serie));
       trvwNFe.Items.AddChild(Node,'nNF= '     +IntToStr(Ide.nNF));
       trvwNFe.Items.AddChild(Node,'dEmi= '    +DateToStr(Ide.dEmi));
       trvwNFe.Items.AddChild(Node,'dSaiEnt= ' +DateToStr(Ide.dSaiEnt));
       trvwNFe.Items.AddChild(Node,'tpNF= '    +tpNFToStr(Ide.tpNF));
       trvwNFe.Items.AddChild(Node,'finNFe= '  +FinNFeToStr(Ide.finNFe));
       trvwNFe.Items.AddChild(Node,'verProc= ' +Ide.verProc);
       trvwNFe.Items.AddChild(Node,'cUF= '     +IntToStr(Ide.cUF));
       trvwNFe.Items.AddChild(Node,'cMunFG= '  +IntToStr(Ide.cMunFG));
       trvwNFe.Items.AddChild(Node,'tpImp= '   +TpImpToStr(Ide.tpImp));
       trvwNFe.Items.AddChild(Node,'tpEmis= '  +TpEmisToStr(Ide.tpEmis));
       trvwNFe.Items.AddChild(Node,'cDV= '     +IntToStr(Ide.cDV));
       trvwNFe.Items.AddChild(Node,'tpAmb= '   +TpAmbToStr(Ide.tpAmb));
       trvwNFe.Items.AddChild(Node,'finNFe= '  +FinNFeToStr(Ide.finNFe));
       trvwNFe.Items.AddChild(Node,'procEmi= ' +procEmiToStr(Ide.procEmi));
       trvwNFe.Items.AddChild(Node,'verProc= ' +Ide.verProc);

       for i:=0 to Ide.NFref.Count-1 do
        begin
          Node := trvwNFe.Items.AddChild(Node,'NFRef'+IntToStrZero(i+1,3));
          trvwNFe.Items.AddChild(Node,'refNFe= ' +Ide.NFref.Items[i].refNFe);
          trvwNFe.Items.AddChild(Node,'cUF= '    +IntToStr(Ide.NFref.Items[i].RefNF.cUF));
          trvwNFe.Items.AddChild(Node,'AAMM= '   +Ide.NFref.Items[i].RefNF.AAMM);
          trvwNFe.Items.AddChild(Node,'CNPJ= '   +Ide.NFref.Items[i].RefNF.CNPJ);
          trvwNFe.Items.AddChild(Node,'modelo= ' +IntToStr(Ide.NFref.Items[i].RefNF.modelo));
          trvwNFe.Items.AddChild(Node,'serie= '  +IntToStr(Ide.NFref.Items[i].RefNF.serie));
          trvwNFe.Items.AddChild(Node,'nNF= '    +IntToStr(Ide.NFref.Items[i].RefNF.nNF));
        end;

       Node := trvwNFe.Items.AddChild(Nota,'Emit');
       trvwNFe.Items.AddChild(Node,'CNPJCPF= ' +Emit.CNPJCPF);
       trvwNFe.Items.AddChild(Node,'IE='       +Emit.IE);
       trvwNFe.Items.AddChild(Node,'xNome='    +Emit.xNome);
       trvwNFe.Items.AddChild(Node,'xFant='    +Emit.xFant );
       trvwNFe.Items.AddChild(Node,'IEST='     +Emit.IEST);
       trvwNFe.Items.AddChild(Node,'IM='       +Emit.IM);
       trvwNFe.Items.AddChild(Node,'CNAE='     +Emit.CNAE);

       Node := trvwNFe.Items.AddChild(Node,'EnderEmit');
       trvwNFe.Items.AddChild(Node,'Fone='    +Emit.EnderEmit.fone);
       trvwNFe.Items.AddChild(Node,'CEP='     +IntToStr(Emit.EnderEmit.CEP));
       trvwNFe.Items.AddChild(Node,'xLgr='    +Emit.EnderEmit.xLgr);
       trvwNFe.Items.AddChild(Node,'nro='     +Emit.EnderEmit.nro);
       trvwNFe.Items.AddChild(Node,'xCpl='    +Emit.EnderEmit.xCpl);
       trvwNFe.Items.AddChild(Node,'xBairro=' +Emit.EnderEmit.xBairro);
       trvwNFe.Items.AddChild(Node,'cMun='    +IntToStr(Emit.EnderEmit.cMun));
       trvwNFe.Items.AddChild(Node,'xMun='    +Emit.EnderEmit.xMun);
       trvwNFe.Items.AddChild(Node,'UF'       +Emit.EnderEmit.UF);
       trvwNFe.Items.AddChild(Node,'cPais='   +IntToStr(Emit.EnderEmit.cPais));
       trvwNFe.Items.AddChild(Node,'xPais='   +Emit.EnderEmit.xPais);

       if Avulsa.CNPJ  <> '' then
        begin
          Node := trvwNFe.Items.AddChild(Nota,'Avulsa');
          trvwNFe.Items.AddChild(Node,'CNPJ='    +Avulsa.CNPJ);
          trvwNFe.Items.AddChild(Node,'xOrgao='  +Avulsa.xOrgao);
          trvwNFe.Items.AddChild(Node,'matr='    +Avulsa.matr );
          trvwNFe.Items.AddChild(Node,'xAgente=' +Avulsa.xAgente);
          trvwNFe.Items.AddChild(Node,'fone='    +Avulsa.fone);
          trvwNFe.Items.AddChild(Node,'UF='      +Avulsa.UF);
          trvwNFe.Items.AddChild(Node,'nDAR='    +Avulsa.nDAR);
          trvwNFe.Items.AddChild(Node,'dEmi='    +DateToStr(Avulsa.dEmi));
          trvwNFe.Items.AddChild(Node,'vDAR='    +FloatToStr(Avulsa.vDAR));
          trvwNFe.Items.AddChild(Node,'repEmi='  +Avulsa.repEmi);
          trvwNFe.Items.AddChild(Node,'dPag='    +DateToStr(Avulsa.dPag));
        end;
       Node := trvwNFe.Items.AddChild(Nota,'Dest');
       trvwNFe.Items.AddChild(Node,'CNPJCPF= ' +Dest.CNPJCPF);
       trvwNFe.Items.AddChild(Node,'IE='       +Dest.IE);
       trvwNFe.Items.AddChild(Node,'ISUF='     +Dest.ISUF);
       trvwNFe.Items.AddChild(Node,'xNome='    +Dest.xNome);

       Node := trvwNFe.Items.AddChild(Node,'EnderDest');
       trvwNFe.Items.AddChild(Node,'Fone='    +Dest.EnderDest.Fone);
       trvwNFe.Items.AddChild(Node,'CEP='     +IntToStr(Dest.EnderDest.CEP));
       trvwNFe.Items.AddChild(Node,'xLgr='    +Dest.EnderDest.xLgr);
       trvwNFe.Items.AddChild(Node,'nro='     +Dest.EnderDest.nro);
       trvwNFe.Items.AddChild(Node,'xCpl='    +Dest.EnderDest.xCpl);
       trvwNFe.Items.AddChild(Node,'xBairro=' +Dest.EnderDest.xBairro);
       trvwNFe.Items.AddChild(Node,'cMun='    +IntToStr(Dest.EnderDest.cMun));
       trvwNFe.Items.AddChild(Node,'xMun='    +Dest.EnderDest.xMun);
       trvwNFe.Items.AddChild(Node,'UF='      +Dest.EnderDest.UF );
       trvwNFe.Items.AddChild(Node,'cPais='   +IntToStr(Dest.EnderDest.cPais));
       trvwNFe.Items.AddChild(Node,'xPais='   +Dest.EnderDest.xPais);

       if Retirada.CNPJCPF <> '' then
        begin
          Node := trvwNFe.Items.AddChild(Nota,'Retirada');
          trvwNFe.Items.AddChild(Node,'CNPJ='    +Retirada.CNPJCPF);
          trvwNFe.Items.AddChild(Node,'xLgr='    +Retirada.xLgr);
          trvwNFe.Items.AddChild(Node,'nro='     +Retirada.nro);
          trvwNFe.Items.AddChild(Node,'xCpl='    +Retirada.xCpl);
          trvwNFe.Items.AddChild(Node,'xBairro=' +Retirada.xBairro);
          trvwNFe.Items.AddChild(Node,'cMun='    +IntToStr(Retirada.cMun));
          trvwNFe.Items.AddChild(Node,'xMun='    +Retirada.xMun);
          trvwNFe.Items.AddChild(Node,'UF='      +Retirada.UF);
        end;

       if Entrega.CNPJCPF <> '' then
        begin
          Node := trvwNFe.Items.AddChild(Nota,'Entrega');
          trvwNFe.Items.AddChild(Node,'CNPJ='    +Entrega.CNPJCPF);
          trvwNFe.Items.AddChild(Node,'xLgr='    +Entrega.xLgr);
          trvwNFe.Items.AddChild(Node,'nro='     +Entrega.nro);
          trvwNFe.Items.AddChild(Node,'xCpl='    +Entrega.xCpl);
          trvwNFe.Items.AddChild(Node,'xBairro=' +Entrega.xBairro);
          trvwNFe.Items.AddChild(Node,'cMun='    +IntToStr(Entrega.cMun));
          trvwNFe.Items.AddChild(Node,'xMun='    +Entrega.xMun);
          trvwNFe.Items.AddChild(Node,'UF='      +Entrega.UF);
        end;

       for I := 0 to Det.Count-1 do
        begin
          with Det.Items[I] do
           begin

               NodeItem := trvwNFe.Items.AddChild(Nota,'Produto'+IntToStrZero(I+1,3));
               trvwNFe.Items.AddChild(NodeItem,'nItem='  +IntToStr(Prod.nItem) );
               trvwNFe.Items.AddChild(NodeItem,'cProd='  +Prod.cProd );
               trvwNFe.Items.AddChild(NodeItem,'cEAN='   +Prod.cEAN);
               trvwNFe.Items.AddChild(NodeItem,'xProd='  +Prod.xProd);
               trvwNFe.Items.AddChild(NodeItem,'NCM='    +Prod.NCM);
               trvwNFe.Items.AddChild(NodeItem,'EXTIPI=' +Prod.EXTIPI);
//               trvwNFe.Items.AddChild(NodeItem,'genero=' +IntToStr(Prod.genero));
               trvwNFe.Items.AddChild(NodeItem,'CFOP='   +Prod.CFOP);
               trvwNFe.Items.AddChild(NodeItem,'uCom='   +Prod.uCom);
               trvwNFe.Items.AddChild(NodeItem,'qCom='   +FloatToStr(Prod.qCom)) ;
               trvwNFe.Items.AddChild(NodeItem,'vUnCom=' +FloatToStr(Prod.vUnCom)) ;
               trvwNFe.Items.AddChild(NodeItem,'vProd='  +FloatToStr(Prod.vProd)) ;

               trvwNFe.Items.AddChild(NodeItem,'cEANTrib=' +Prod.cEANTrib);
               trvwNFe.Items.AddChild(NodeItem,'uTrib='    +Prod.uTrib);
               trvwNFe.Items.AddChild(NodeItem,'qTrib='    +FloatToStr(Prod.qTrib));
               trvwNFe.Items.AddChild(NodeItem,'vUnTrib='  +FloatToStr(Prod.vUnTrib)) ;

               trvwNFe.Items.AddChild(NodeItem,'vFrete=' +FloatToStr(Prod.vFrete)) ;
               trvwNFe.Items.AddChild(NodeItem,'vSeg='   +FloatToStr(Prod.vSeg)) ;
               trvwNFe.Items.AddChild(NodeItem,'vDesc='  +FloatToStr(Prod.vDesc)) ;

               trvwNFe.Items.AddChild(NodeItem,'infAdProd=' +infAdProd);

               for J:=0 to Prod.DI.Count-1 do
                begin
                  if Prod.DI.Items[j].nDi <> '' then
                   begin
                     with Prod.DI.Items[j] do
                      begin
                        NodePai := trvwNFe.Items.AddChild(NodeItem,'DI'+IntToStrZero(J+1,3));
                        trvwNFe.Items.AddChild(NodePai,'nDi='         +nDi);
                        trvwNFe.Items.AddChild(NodePai,'dDi='         +DateToStr(dDi));
                        trvwNFe.Items.AddChild(NodePai,'xLocDesemb='  +xLocDesemb);
                        trvwNFe.Items.AddChild(NodePai,'UFDesemb='    +UFDesemb);
                        trvwNFe.Items.AddChild(NodePai,'dDesemb='     +DateToStr(dDesemb));
                        trvwNFe.Items.AddChild(NodePai,'cExportador=' +cExportador);;

                        for K:=0 to adi.Count-1 do
                         begin
                           with adi.Items[K] do
                            begin
                              Node := trvwNFe.Items.AddChild(NodePai,'LADI'+IntToStrZero(K+1,3));
                              trvwNFe.Items.AddChild(Node,'nAdicao='     +IntToStr(nAdicao)) ;
                              trvwNFe.Items.AddChild(Node,'nSeqAdi='     +IntToStr(nSeqAdi)) ;
                              trvwNFe.Items.AddChild(Node,'cFabricante=' +cFabricante);
                              trvwNFe.Items.AddChild(Node,'vDescDI='     +FloatToStr(vDescDI));
                            end;
                         end;
                      end;
                   end
                  else
                    Break;
                end;

              if Prod.veicProd.chassi <> '' then
               begin
                 Node := trvwNFe.Items.AddChild(NodeItem,'Veiculo');
                 with Prod.veicProd do
                  begin
                    trvwNFe.Items.AddChild(Node,'tpOP='     +tpOPToStr(tpOP));
                    trvwNFe.Items.AddChild(Node,'chassi='   +chassi) ;
                    trvwNFe.Items.AddChild(Node,'cCor='     +cCor);
                    trvwNFe.Items.AddChild(Node,'xCor='     +xCor);
                    trvwNFe.Items.AddChild(Node,'pot='      +pot);
//                    trvwNFe.Items.AddChild(Node,'CM3='      +CM3);
                    trvwNFe.Items.AddChild(Node,'pesoL='    +pesoL);
                    trvwNFe.Items.AddChild(Node,'pesoB='    +pesoB);
                    trvwNFe.Items.AddChild(Node,'nSerie='   +nSerie);
                    trvwNFe.Items.AddChild(Node,'tpComb='   +tpComb);
                    trvwNFe.Items.AddChild(Node,'nMotor='   +nMotor);
//                    trvwNFe.Items.AddChild(Node,'CMKG='     +CMKG);
                    trvwNFe.Items.AddChild(Node,'dist='     +dist);
                    trvwNFe.Items.AddChild(Node,'RENAVAM='  +RENAVAM);
                    trvwNFe.Items.AddChild(Node,'anoMod='   +IntToStr(anoMod));
                    trvwNFe.Items.AddChild(Node,'anoFab='   +IntToStr(anoFab));
                    trvwNFe.Items.AddChild(Node,'tpPint='   +tpPint);
                    trvwNFe.Items.AddChild(Node,'tpVeic='   +IntToStr(tpVeic));
                    trvwNFe.Items.AddChild(Node,'espVeic='  +IntToStr(espVeic));
                    trvwNFe.Items.AddChild(Node,'VIN='      +VIN);
                    trvwNFe.Items.AddChild(Node,'condVeic=' +condVeicToStr(condVeic));
                    trvwNFe.Items.AddChild(Node,'cMod='     +cMod);
                  end;
               end;

               for J:=0 to Prod.med.Count-1 do
                begin
                  Node := trvwNFe.Items.AddChild(NodeItem,'Medicamento'+IntToStrZero(J+1,3) );
                  with Prod.med.Items[J] do
                   begin
                     trvwNFe.Items.AddChild(Node,'nLote=' +nLote) ;
                     trvwNFe.Items.AddChild(Node,'qLote=' +FloatToStr(qLote)) ;
                     trvwNFe.Items.AddChild(Node,'dFab='  +DateToStr(dFab)) ;
                     trvwNFe.Items.AddChild(Node,'dVal='  +DateToStr(dVal)) ;
                     trvwNFe.Items.AddChild(Node,'vPMC='  +FloatToStr(vPMC)) ;
                    end;
                end;

               for J:=0 to Prod.arma.Count-1 do
                begin
                  Node := trvwNFe.Items.AddChild(NodeItem,'Arma'+IntToStrZero(J+1,3));
                  with Prod.arma.Items[J] do
                   begin
//                     trvwNFe.Items.AddChild(Node,'nSerie=' +IntToStr(nSerie)) ;
                     trvwNFe.Items.AddChild(Node,'tpArma=' +tpArmaToStr(tpArma)) ;
//                     trvwNFe.Items.AddChild(Node,'nCano='  +IntToStr(nCano)) ;
                     trvwNFe.Items.AddChild(Node,'descr='  +descr) ;
                    end;
                end;

               if (Prod.comb.cProdANP > 0) then
                begin
                 NodePai := trvwNFe.Items.AddChild(NodeItem,'Combustivel');
                 with Prod.comb do
                  begin
                    trvwNFe.Items.AddChild(NodePai,'cProdANP=' +IntToStr(cProdANP)) ;
                    trvwNFe.Items.AddChild(NodePai,'CODIF='    +CODIF) ;
                    trvwNFe.Items.AddChild(NodePai,'qTemp='    +FloatToStr(qTemp)) ;

                    Node := trvwNFe.Items.AddChild(NodePai,'CIDE'+IntToStrZero(I+1,3));
                    trvwNFe.Items.AddChild(Node,'qBCprod='   +FloatToStr(CIDE.qBCprod)) ;
                    trvwNFe.Items.AddChild(Node,'vAliqProd=' +FloatToStr(CIDE.vAliqProd)) ;
                    trvwNFe.Items.AddChild(Node,'vCIDE='     +FloatToStr(CIDE.vCIDE)) ;

                    Node := trvwNFe.Items.AddChild(NodePai,'ICMSComb'+IntToStrZero(I+1,3));
                    trvwNFe.Items.AddChild(Node,'vBCICMS='   +FloatToStr(ICMS.vBCICMS)) ;
                    trvwNFe.Items.AddChild(Node,'vICMS='     +FloatToStr(ICMS.vICMS)) ;
                    trvwNFe.Items.AddChild(Node,'vBCICMSST=' +FloatToStr(ICMS.vBCICMSST)) ;
                    trvwNFe.Items.AddChild(Node,'vICMSST='   +FloatToStr(ICMS.vICMSST)) ;

                    if (ICMSInter.vBCICMSSTDest>0) then
                     begin
                       Node := trvwNFe.Items.AddChild(NodePai,'ICMSInter'+IntToStrZero(I+1,3));
                       trvwNFe.Items.AddChild(Node,'vBCICMSSTDest=' +FloatToStr(ICMSInter.vBCICMSSTDest)) ;
                       trvwNFe.Items.AddChild(Node,'vICMSSTDest='   +FloatToStr(ICMSInter.vICMSSTDest)) ;
                     end;

                    if (ICMSCons.vBCICMSSTCons>0) then
                     begin
                       Node := trvwNFe.Items.AddChild(NodePai,'ICMSCons'+IntToStrZero(I+1,3));
                       trvwNFe.Items.AddChild(Node,'vBCICMSSTCons=' +FloatToStr(ICMSCons.vBCICMSSTCons)) ;
                       trvwNFe.Items.AddChild(Node,'vICMSSTCons='   +FloatToStr(ICMSCons.vICMSSTCons)) ;
                       trvwNFe.Items.AddChild(Node,'UFCons='        +ICMSCons.UFcons) ;
                     end;
                  end;
               end;

               with Imposto do
                begin
                   NodePai := trvwNFe.Items.AddChild(NodeItem,'Imposto');
                   Node := trvwNFe.Items.AddChild(NodePai,'ICMS');
                   with ICMS do
                    begin
                      trvwNFe.Items.AddChild(Node,'CST=' +CSTICMSToStr(CST));

                      if CST = cst00 then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='  +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'modBC=' +modBCToStr(ICMS.modBC));
                         trvwNFe.Items.AddChild(Node,'vBC='   +FloatToStr(ICMS.vBC));
                         trvwNFe.Items.AddChild(Node,'pICMS=' +FloatToStr(ICMS.pICMS));
                         trvwNFe.Items.AddChild(Node,'vICMS=' +FloatToStr(ICMS.vICMS));
                       end
                      else if CST = cst10 then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='     +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'modBC='    +modBCToStr(ICMS.modBC));
                         trvwNFe.Items.AddChild(Node,'vBC='      +FloatToStr(ICMS.vBC));
                         trvwNFe.Items.AddChild(Node,'pICMS='    +FloatToStr(ICMS.pICMS));
                         trvwNFe.Items.AddChild(Node,'vICMS='    +FloatToStr(ICMS.vICMS));
                         trvwNFe.Items.AddChild(Node,'modBCST='  +modBCSTToStr(ICMS.modBCST));
                         trvwNFe.Items.AddChild(Node,'pMVAST='   +FloatToStr(ICMS.pMVAST));
                         trvwNFe.Items.AddChild(Node,'pRedBCST=' +FloatToStr(ICMS.pRedBCST));
                         trvwNFe.Items.AddChild(Node,'vBCST='    +FloatToStr(ICMS.vBCST));
                         trvwNFe.Items.AddChild(Node,'pICMSST='  +FloatToStr(ICMS.pICMSST));
                         trvwNFe.Items.AddChild(Node,'vICMSST='  +FloatToStr(ICMS.vICMSST));
                       end
                      else if CST = cst20 then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='   +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'modBC='  +modBCToStr(ICMS.modBC));
                         trvwNFe.Items.AddChild(Node,'pRedBC=' +FloatToStr(ICMS.pRedBC));
                         trvwNFe.Items.AddChild(Node,'vBC='    +FloatToStr(ICMS.vBC));
                         trvwNFe.Items.AddChild(Node,'pICMS='  +FloatToStr(ICMS.pICMS));
                         trvwNFe.Items.AddChild(Node,'vICMS='  +FloatToStr(ICMS.vICMS));
                       end
                      else if CST = cst30 then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='     +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'modBCST='  +modBCSTToStr(ICMS.modBCST));
                         trvwNFe.Items.AddChild(Node,'pMVAST='   +FloatToStr(ICMS.pMVAST));
                         trvwNFe.Items.AddChild(Node,'pRedBCST=' +FloatToStr(ICMS.pRedBCST));
                         trvwNFe.Items.AddChild(Node,'vBCST='    +FloatToStr(ICMS.vBCST));
                         trvwNFe.Items.AddChild(Node,'pICMSST='  +FloatToStr(ICMS.pICMSST));
                         trvwNFe.Items.AddChild(Node,'vICMSST='  +FloatToStr(ICMS.vICMSST));
                       end
                      else if (CST = cst40) or (CST = cst41) or (CST = cst50) then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='    +OrigToStr(ICMS.orig));
                       end
                      else if CST = cst51 then
                         begin
                         trvwNFe.Items.AddChild(Node,'orig='    +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'modBC='   +modBCToStr(ICMS.modBC));
                         trvwNFe.Items.AddChild(Node,'pRedBC='  +FloatToStr(ICMS.pRedBC));
                         trvwNFe.Items.AddChild(Node,'vBC='     +FloatToStr(ICMS.vBC));
                         trvwNFe.Items.AddChild(Node,'pICMS='   +FloatToStr(ICMS.pICMS));
                         trvwNFe.Items.AddChild(Node,'vICMS='   +FloatToStr(ICMS.vICMS));
                       end
                      else if CST = cst60 then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='    +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'vBCST='   +FloatToStr(ICMS.vBCST));
                         trvwNFe.Items.AddChild(Node,'vICMSST=' +FloatToStr(ICMS.vICMSST));
                       end
                      else if CST = cst70 then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='       +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'modBC='      +modBCToStr(ICMS.modBC));
                         trvwNFe.Items.AddChild(Node,'pRedBC='     +FloatToStr(ICMS.pRedBC));
                         trvwNFe.Items.AddChild(Node,'vBC='        +FloatToStr(ICMS.vBC));
                         trvwNFe.Items.AddChild(Node,'pICMS='      +FloatToStr(ICMS.pICMS));
                         trvwNFe.Items.AddChild(Node,'vICMS='      +FloatToStr(ICMS.vICMS));
                         trvwNFe.Items.AddChild(Node,'modBCST='    +modBCSTToStr(ICMS.modBCST));
                         trvwNFe.Items.AddChild(Node,'pMVAST='     +FloatToStr(ICMS.pMVAST));
                         trvwNFe.Items.AddChild(Node,'pRedBCST='   +FloatToStr(ICMS.pRedBCST));
                         trvwNFe.Items.AddChild(Node,'vBCST='      +FloatToStr(ICMS.vBCST));
                         trvwNFe.Items.AddChild(Node,'pICMSST='    +FloatToStr(ICMS.pICMSST));
                         trvwNFe.Items.AddChild(Node,'vICMSST='    +FloatToStr(ICMS.vICMSST));
                       end
                      else if CST = cst90 then
                       begin
                         trvwNFe.Items.AddChild(Node,'orig='       +OrigToStr(ICMS.orig));
                         trvwNFe.Items.AddChild(Node,'modBC='      +modBCToStr(ICMS.modBC));
                         trvwNFe.Items.AddChild(Node,'pRedBC='     +FloatToStr(ICMS.pRedBC));
                         trvwNFe.Items.AddChild(Node,'vBC='        +FloatToStr(ICMS.vBC));
                         trvwNFe.Items.AddChild(Node,'pICMS='      +FloatToStr(ICMS.pICMS));
                         trvwNFe.Items.AddChild(Node,'vICMS='      +FloatToStr(ICMS.vICMS));
                         trvwNFe.Items.AddChild(Node,'modBCST='    +modBCSTToStr(ICMS.modBCST));
                         trvwNFe.Items.AddChild(Node,'pMVAST='     +FloatToStr(ICMS.pMVAST));
                         trvwNFe.Items.AddChild(Node,'pRedBCST='   +FloatToStr(ICMS.pRedBCST));
                         trvwNFe.Items.AddChild(Node,'vBCST='      +FloatToStr(ICMS.vBCST));
                         trvwNFe.Items.AddChild(Node,'pICMSST='    +FloatToStr(ICMS.pICMSST));
                         trvwNFe.Items.AddChild(Node,'vICMSST='    +FloatToStr(ICMS.vICMSST));
                       end;
                    end;

                   if (IPI.vBC > 0) then
                    begin
                      Node := trvwNFe.Items.AddChild(NodePai,'IPI');
                      with IPI do
                       begin
                         trvwNFe.Items.AddChild(Node,'CST='       +CSTIPIToStr(CST)) ;
                         trvwNFe.Items.AddChild(Node,'clEnq='    +clEnq);
                         trvwNFe.Items.AddChild(Node,'CNPJProd=' +CNPJProd);
                         trvwNFe.Items.AddChild(Node,'cSelo='    +cSelo);
                         trvwNFe.Items.AddChild(Node,'qSelo='    +IntToStr(qSelo));
                         trvwNFe.Items.AddChild(Node,'cEnq='     +cEnq);

                         trvwNFe.Items.AddChild(Node,'vBC='    +FloatToStr(vBC));
                         trvwNFe.Items.AddChild(Node,'qUnid='  +FloatToStr(qUnid));
                         trvwNFe.Items.AddChild(Node,'vUnid='  +FloatToStr(vUnid));
                         trvwNFe.Items.AddChild(Node,'pIPI='   +FloatToStr(pIPI));
                         trvwNFe.Items.AddChild(Node,'vIPI='   +FloatToStr(vIPI));
                       end;
                    end;

                   if (II.vBc > 0) then
                    begin
                      Node := trvwNFe.Items.AddChild(NodePai,'II');
                      with II do
                       begin
                         trvwNFe.Items.AddChild(Node,'vBc='      +FloatToStr(vBc));
                         trvwNFe.Items.AddChild(Node,'vDespAdu=' +FloatToStr(vDespAdu));
                         trvwNFe.Items.AddChild(Node,'vII='      +FloatToStr(vII));
                         trvwNFe.Items.AddChild(Node,'vIOF='     +FloatToStr(vIOF));
                       end;
                    end;

                   Node := trvwNFe.Items.AddChild(NodePai,'PIS');
                   with PIS do
                    begin
                      trvwNFe.Items.AddChild(Node,'CST=' +CSTPISToStr(CST));

                      if (CST = pis01) or (CST = pis02) then
                       begin
                         trvwNFe.Items.AddChild(Node,'vBC='  +FloatToStr(PIS.vBC));
                         trvwNFe.Items.AddChild(Node,'pPIS=' +FloatToStr(PIS.pPIS));
                         trvwNFe.Items.AddChild(Node,'vPIS=' +FloatToStr(PIS.vPIS));
                       end
                      else if CST = pis03 then
                       begin
                         trvwNFe.Items.AddChild(Node,'qBCProd='   +FloatToStr(PIS.qBCProd));
                         trvwNFe.Items.AddChild(Node,'vAliqProd=' +FloatToStr(PIS.vAliqProd));
                         trvwNFe.Items.AddChild(Node,'vPIS='      +FloatToStr(PIS.vPIS));
                       end
                      else if CST = pis99 then
                       begin
                         trvwNFe.Items.AddChild(Node,'vBC='       +FloatToStr(PIS.vBC));
                         trvwNFe.Items.AddChild(Node,'pPIS='      +FloatToStr(PIS.pPIS));
                         trvwNFe.Items.AddChild(Node,'qBCProd='   +FloatToStr(PIS.qBCProd));
                         trvwNFe.Items.AddChild(Node,'vAliqProd=' +FloatToStr(PIS.vAliqProd));
                         trvwNFe.Items.AddChild(Node,'vPIS='      +FloatToStr(PIS.vPIS));
                       end;
                    end;

                   if (PISST.vBc>0) then
                    begin
                      Node := trvwNFe.Items.AddChild(NodePai,'PISST');
                      with PISST do
                       begin
                         trvwNFe.Items.AddChild(Node,'vBc='       +FloatToStr(vBc));
                         trvwNFe.Items.AddChild(Node,'pPis='      +FloatToStr(pPis));
                         trvwNFe.Items.AddChild(Node,'qBCProd='   +FloatToStr(qBCProd));
                         trvwNFe.Items.AddChild(Node,'vAliqProd=' +FloatToStr(vAliqProd));
                         trvwNFe.Items.AddChild(Node,'vPIS='      +FloatToStr(vPIS));
                       end;
                      end;

                   Node := trvwNFe.Items.AddChild(NodePai,'COFINS');
                   with COFINS do
                    begin
                      trvwNFe.Items.AddChild(Node,'CST=' +CSTCOFINSToStr(CST));

                      if (CST = cof01) or (CST = cof02)   then
                       begin
                         trvwNFe.Items.AddChild(Node,'vBC='     +FloatToStr(COFINS.vBC));
                         trvwNFe.Items.AddChild(Node,'pCOFINS=' +FloatToStr(COFINS.pCOFINS));
                         trvwNFe.Items.AddChild(Node,'vCOFINS=' +FloatToStr(COFINS.vCOFINS));
                       end
                      else if CST = cof03 then
                       begin
                         trvwNFe.Items.AddChild(Node,'qBCProd='   +FloatToStr(COFINS.qBCProd));
                         trvwNFe.Items.AddChild(Node,'vAliqProd=' +FloatToStr(COFINS.vAliqProd));
                         trvwNFe.Items.AddChild(Node,'vCOFINS='   +FloatToStr(COFINS.vCOFINS));
                       end
                      else if CST = cof99 then
                       begin
                         trvwNFe.Items.AddChild(Node,'vBC='       +FloatToStr(COFINS.vBC));
                         trvwNFe.Items.AddChild(Node,'pCOFINS='   +FloatToStr(COFINS.pCOFINS));
                         trvwNFe.Items.AddChild(Node,'qBCProd='   +FloatToStr(COFINS.qBCProd));
                         trvwNFe.Items.AddChild(Node,'vAliqProd=' +FloatToStr(COFINS.vAliqProd));
                         trvwNFe.Items.AddChild(Node,'vCOFINS='   +FloatToStr(COFINS.vCOFINS));
                       end;
                    end;

                   if (COFINSST.vBC > 0) then
                    begin
                      Node := trvwNFe.Items.AddChild(NodePai,'COFINSST');
                      with COFINSST do
                       begin
                         trvwNFe.Items.AddChild(Node,'vBC='       +FloatToStr(vBC));
                         trvwNFe.Items.AddChild(Node,'pCOFINS='   +FloatToStr(pCOFINS));
                         trvwNFe.Items.AddChild(Node,'qBCProd='   +FloatToStr(qBCProd));
                         trvwNFe.Items.AddChild(Node,'vAliqProd=' +FloatToStr(vAliqProd));
                         trvwNFe.Items.AddChild(Node,'vCOFINS='   +FloatToStr(vCOFINS));
                       end;
                    end;

                   if (ISSQN.vBC > 0) then
                    begin
                     Node := trvwNFe.Items.AddChild(NodePai,'ISSQN');
                     with ISSQN do
                      begin
                        trvwNFe.Items.AddChild(Node,'vBC='       +FloatToStr(vBC));
                        trvwNFe.Items.AddChild(Node,'vAliq='     +FloatToStr(vAliq));
                        trvwNFe.Items.AddChild(Node,'vISSQN='    +FloatToStr(vISSQN));
                        trvwNFe.Items.AddChild(Node,'cMunFG='    +IntToStr(cMunFG));
                        //trvwNFe.Items.AddChild(Node,'cListServ=' +IntToStr(cListServ));
                      end;
                    end;
                end;
             end;
          end ;

       NodePai := trvwNFe.Items.AddChild(Nota,'Total');
       Node := trvwNFe.Items.AddChild(NodePai,'ICMSTot');
       trvwNFe.Items.AddChild(Node,'vBC='     +FloatToStr(Total.ICMSTot.vBC));
       trvwNFe.Items.AddChild(Node,'vICMS='   +FloatToStr(Total.ICMSTot.vICMS)) ;
       trvwNFe.Items.AddChild(Node,'vBCST='   +FloatToStr(Total.ICMSTot.vBCST)) ;
       trvwNFe.Items.AddChild(Node,'vST='     +FloatToStr(Total.ICMSTot.vST)) ;
       trvwNFe.Items.AddChild(Node,'vProd='   +FloatToStr(Total.ICMSTot.vProd)) ;
       trvwNFe.Items.AddChild(Node,'vFrete='  +FloatToStr(Total.ICMSTot.vFrete)) ;
       trvwNFe.Items.AddChild(Node,'vSeg='    +FloatToStr(Total.ICMSTot.vSeg)) ;
       trvwNFe.Items.AddChild(Node,'vDesc='   +FloatToStr(Total.ICMSTot.vDesc)) ;
       trvwNFe.Items.AddChild(Node,'vII='     +FloatToStr(Total.ICMSTot.vII)) ;
       trvwNFe.Items.AddChild(Node,'vIPI='    +FloatToStr(Total.ICMSTot.vIPI)) ;
       trvwNFe.Items.AddChild(Node,'vPIS='    +FloatToStr(Total.ICMSTot.vPIS)) ;
       trvwNFe.Items.AddChild(Node,'vCOFINS=' +FloatToStr(Total.ICMSTot.vCOFINS)) ;
       trvwNFe.Items.AddChild(Node,'vOutro='  +FloatToStr(Total.ICMSTot.vOutro)) ;
       trvwNFe.Items.AddChild(Node,'vNF='     +FloatToStr(Total.ICMSTot.vNF)) ;

       if Total.ISSQNtot.vServ > 0 then
        begin
          Node := trvwNFe.Items.AddChild(NodePai,'ISSQNtot');
          trvwNFe.Items.AddChild(Node,'vServ='   +FloatToStr(Total.ISSQNtot.vServ)) ;
          trvwNFe.Items.AddChild(Node,'vBC='     +FloatToStr(Total.ISSQNTot.vBC)) ;
          trvwNFe.Items.AddChild(Node,'vISS='    +FloatToStr(Total.ISSQNTot.vISS)) ;
          trvwNFe.Items.AddChild(Node,'vPIS='    +FloatToStr(Total.ISSQNTot.vPIS)) ;
          trvwNFe.Items.AddChild(Node,'vCOFINS=' +FloatToStr(Total.ISSQNTot.vCOFINS)) ;
        end;

       Node := trvwNFe.Items.AddChild(NodePai,'retTrib');
       trvwNFe.Items.AddChild(Node,'vRetPIS='   +FloatToStr(Total.retTrib.vRetPIS)) ;
       trvwNFe.Items.AddChild(Node,'vRetCOFINS='+FloatToStr(Total.retTrib.vRetCOFINS)) ;
       trvwNFe.Items.AddChild(Node,'vRetCSLL='  +FloatToStr(Total.retTrib.vRetCSLL)) ;
       trvwNFe.Items.AddChild(Node,'vBCIRRF='   +FloatToStr(Total.retTrib.vBCIRRF)) ;
       trvwNFe.Items.AddChild(Node,'vIRRF='     +FloatToStr(Total.retTrib.vIRRF)) ;
       trvwNFe.Items.AddChild(Node,'vBCRetPrev='+FloatToStr(Total.retTrib.vBCRetPrev)) ;
       trvwNFe.Items.AddChild(Node,'vRetPrev='  +FloatToStr(Total.retTrib.vRetPrev)) ;

       NodePai := trvwNFe.Items.AddChild(Nota,'Transp');
       Node := trvwNFe.Items.AddChild(NodePai,'Transporta');
       trvwNFe.Items.AddChild(Node,'modFrete=' +modFreteToStr(Transp.modFrete));
       trvwNFe.Items.AddChild(Node,'CNPJCPF='  +Transp.Transporta.CNPJCPF);
       trvwNFe.Items.AddChild(Node,'xNome='    +Transp.Transporta.xNome);
       trvwNFe.Items.AddChild(Node,'IE='       +Transp.Transporta.IE);
       trvwNFe.Items.AddChild(Node,'xEnder='   +Transp.Transporta.xEnder);
       trvwNFe.Items.AddChild(Node,'xMun='     +Transp.Transporta.xMun);
       trvwNFe.Items.AddChild(Node,'UF='       +Transp.Transporta.UF);

       Node := trvwNFe.Items.AddChild(NodePai,'retTransp');
       trvwNFe.Items.AddChild(Node,'vServ='    +FloatToStr(Transp.retTransp.vServ)) ;
       trvwNFe.Items.AddChild(Node,'vBCRet='   +FloatToStr(Transp.retTransp.vBCRet)) ;
       trvwNFe.Items.AddChild(Node,'pICMSRet=' +FloatToStr(Transp.retTransp.pICMSRet)) ;
       trvwNFe.Items.AddChild(Node,'vICMSRet=' +FloatToStr(Transp.retTransp.vICMSRet)) ;
       trvwNFe.Items.AddChild(Node,'CFOP='     +Transp.retTransp.CFOP);
       trvwNFe.Items.AddChild(Node,'cMunFG='   +FloatToStr(Transp.retTransp.cMunFG));

       Node := trvwNFe.Items.AddChild(NodePai,'veicTransp');
       trvwNFe.Items.AddChild(Node,'placa='  +Transp.veicTransp.placa);
       trvwNFe.Items.AddChild(Node,'UF='     +Transp.veicTransp.UF);
       trvwNFe.Items.AddChild(Node,'RNTC='   +Transp.veicTransp.RNTC);

       for I:=0 to Transp.Reboque.Count-1 do
        begin
          Node := trvwNFe.Items.AddChild(NodePai,'Reboque'+IntToStrZero(I+1,3));
          with Transp.Reboque.Items[I] do
           begin
             trvwNFe.Items.AddChild(Node,'placa=' +placa) ;
             trvwNFe.Items.AddChild(Node,'UF='    +UF) ;
             trvwNFe.Items.AddChild(Node,'RNTC='  +RNTC) ;
           end;
        end;

       for I:=0 to Transp.Vol.Count-1 do
        begin
          Node := trvwNFe.Items.AddChild(NodePai,'Volume'+IntToStrZero(I+1,3));
          with Transp.Vol.Items[I] do
           begin
             trvwNFe.Items.AddChild(Node,'qVol='  +IntToStr(qVol)) ;
             trvwNFe.Items.AddChild(Node,'esp='   +esp);
             trvwNFe.Items.AddChild(Node,'marca=' +marca);
             trvwNFe.Items.AddChild(Node,'nVol='  +nVol);
             trvwNFe.Items.AddChild(Node,'pesoL=' +FloatToStr(pesoL)) ;
             trvwNFe.Items.AddChild(Node,'pesoB'  +FloatToStr(pesoB)) ;

             for J:=0 to Lacres.Count-1 do
              begin
                Node := trvwNFe.Items.AddChild(Node,'Lacre'+IntToStrZero(I+1,3)+IntToStrZero(J+1,3) );
                trvwNFe.Items.AddChild(Node,'nLacre='+Lacres.Items[J].nLacre) ;
              end;
           end;
        end;

       NodePai := trvwNFe.Items.AddChild(Nota,'Cobr');
       Node    := trvwNFe.Items.AddChild(NodePai,'Fat');
       trvwNFe.Items.AddChild(Node,'nFat='  +Cobr.Fat.nFat);
       trvwNFe.Items.AddChild(Node,'vOrig=' +FloatToStr(Cobr.Fat.vOrig)) ;
       trvwNFe.Items.AddChild(Node,'vDesc=' +FloatToStr(Cobr.Fat.vDesc)) ;
       trvwNFe.Items.AddChild(Node,'vLiq='  +FloatToStr(Cobr.Fat.vLiq)) ;

       for I:=0 to Cobr.Dup.Count-1 do
        begin
          Node    := trvwNFe.Items.AddChild(NodePai,'Duplicata'+IntToStrZero(I+1,3));
          with Cobr.Dup.Items[I] do
           begin
             trvwNFe.Items.AddChild(Node,'nDup='  +nDup) ;
             trvwNFe.Items.AddChild(Node,'dVenc=' +DateToStr(dVenc));
             trvwNFe.Items.AddChild(Node,'vDup='  +FloatToStr(vDup)) ;
           end;
        end;

       NodePai := trvwNFe.Items.AddChild(Nota,'InfAdic');
       trvwNFe.Items.AddChild(NodePai,'infCpl='     +InfAdic.infCpl);
       trvwNFe.Items.AddChild(NodePai,'infAdFisco=' +InfAdic.infAdFisco);

       for I:=0 to InfAdic.obsCont.Count-1 do
        begin
          Node := trvwNFe.Items.AddChild(NodePai,'obsCont'+IntToStrZero(I+1,3));
          with InfAdic.obsCont.Items[I] do
           begin
             trvwNFe.Items.AddChild(Node,'xCampo=' +xCampo) ;
             trvwNFe.Items.AddChild(Node,'xTexto=' +xTexto);
           end;
        end;

         for I:=0 to InfAdic.obsFisco.Count-1 do
          begin
            Node := trvwNFe.Items.AddChild(NodePai,'obsFisco'+IntToStrZero(I+1,3));
            with InfAdic.obsFisco.Items[I] do
             begin
                trvwNFe.Items.AddChild(Node,'xCampo=' +xCampo) ;
                trvwNFe.Items.AddChild(Node,'xTexto=' +xTexto);
             end;
          end;

         for I:=0 to InfAdic.procRef.Count-1 do
          begin
            Node := trvwNFe.Items.AddChild(NodePai,'procRef'+IntToStrZero(I+1,3));
            with InfAdic.procRef.Items[I] do
             begin
               trvwNFe.Items.AddChild(Node,'nProc='   +nProc) ;
               trvwNFe.Items.AddChild(Node,'indProc=' +indProcToStr(indProc));
             end;
          end;

         if (exporta.UFembarq <> '') then
          begin
            Node := trvwNFe.Items.AddChild(Nota,'exporta');
            trvwNFe.Items.AddChild(Node,'UFembarq='   +exporta.UFembarq) ;
            trvwNFe.Items.AddChild(Node,'xLocEmbarq=' +exporta.xLocEmbarq);
          end;

         if (compra.xNEmp <> '') then
          begin
            Node := trvwNFe.Items.AddChild(Nota,'compra');
            trvwNFe.Items.AddChild(Node,'xNEmp=' +compra.xNEmp) ;
            trvwNFe.Items.AddChild(Node,'xPed='  +compra.xPed);
            trvwNFe.Items.AddChild(Node,'xCont=' +compra.xCont);
          end;
     end;
       DentroGeral.ActivePageIndex := 3;
     end;

  end;

end;

procedure TfrmConfiguracao.Button2Click(Sender: TObject);
begin
  inherited;
  dlgAbrirArquivo.Title := 'Selecione a NFE';
  dlgAbrirArquivo.DefaultExt := '*-nfe.XML';
  dlgAbrirArquivo.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
  dlgAbrirArquivo.InitialDir := DMNFE.NFe.Configuracoes.Arquivos.PathSalvar;
  DMNFE.NFe.NotasFiscais.Clear;
  if dlgAbrirArquivo.Execute then
    DMNFE.NFe.NotasFiscais.LoadFromFile(dlgAbrirArquivo.FileName);
  DMNFE.NFe.NotasFiscais.ImprimirPDF;

end;

procedure TfrmConfiguracao.Button3Click(Sender: TObject);
var
 Chave, idLote, CNPJ, Protocolo, Justificativa : string;
begin
  if not(InputQuery('WebServices Eventos: Cancelamento', 'Chave da NF-e', Chave)) then
     exit;
  Chave := Trim(OnlyNumber(Chave));
  idLote := '1';
  if not(InputQuery('WebServices Eventos: Cancelamento', 'Identificador de controle do Lote de envio do Evento', idLote)) then
     exit;
  CNPJ := copy(Chave,7,14);
  if not(InputQuery('WebServices Eventos: Cancelamento', 'CNPJ ou o CPF do autor do Evento', CNPJ)) then
     exit;
  Protocolo:='';
  if not(InputQuery('WebServices Eventos: Cancelamento', 'Protocolo de Autorização', Protocolo)) then
     exit;
  Justificativa := 'Justificativa do Cancelamento';
  if not(InputQuery('WebServices Eventos: Cancelamento', 'Justificativa do Cancelamento', Justificativa)) then
     exit;

  DMNFE.NFe.EventoNFe.Evento.Clear;
//  ACBrNFe1.EvnvEvento.EnvEventoNFe.idLote := StrToInt(idLote) ;
  with DMNFE.NFe.EventoNFe.Evento.Add do
   begin
     infEvento.chNFe := Chave;
     infEvento.CNPJ   := CNPJ;
     infEvento.dhEvento := now;
     infEvento.tpEvento := teCancelamento;
     infEvento.detEvento.xJust := Justificativa;
     infEvento.detEvento.nProt := Protocolo;
   end;
  DMNFE.NFe.EnviarEvento(StrToInt(idLote));

  MemoResp.Lines.Text := DMNFE.NFe.WebServices.EnvEvento.RetWS;
  mmoRespWS.Lines.Text := DMNFE.NFe.WebServices.EnvEvento.RetornoWS;
//  LoadXML(DMNFE.NFe.WebServices.EnvEvento.RetornoWS, WBResposta);

  {ACBrNFe1.WebServices.EnvEvento.EventoRetorno.TpAmb
  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.verAplic
  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.cStat
  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.xMotivo
  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.chNFe
  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento
  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt}

end;

procedure TfrmConfiguracao.Button4Click(Sender: TObject);
var
 Chave, idLote, CNPJ, nSeqEvento, Correcao : string;
begin
 Chave := '';
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Chave da NF-e', Chave)) then
     exit;
  Chave := Trim(OnlyNumber(Chave));
  idLote := '1';
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Identificador de controle do Lote de envio do Evento', idLote)) then
     exit;
  CNPJ := copy(Chave,7,14);
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'CNPJ ou o CPF do autor do Evento', CNPJ)) then
     exit;
  nSeqEvento := '1';
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Sequencial do evento para o mesmo tipo de evento', nSeqEvento)) then
     exit;
  Correcao := 'Correção a ser considerada, texto livre. A correção mais recente substitui as anteriores.';
  if not(InputQuery('WebServices Eventos: Carta de Correção', 'Correção a ser considerada', Correcao)) then
     exit;
  DMNFE.NFe.EventoNFe.Evento.Clear;
  with DMNFE.NFe.EventoNFe.Evento.Add do
   begin
     infEvento.chNFe := Chave;
     infEvento.CNPJ   := CNPJ;
     infEvento.dhEvento := now;
     infEvento.tpEvento := teCCe;
     infEvento.nSeqEvento := StrToInt(nSeqEvento);
     infEvento.detEvento.xCorrecao := Correcao;
   end;
  DMNFE.NFe.EnviarEvento(StrToInt(idLote));



  MemoResp.Lines.Text := DMNFE.NFe.WebServices.EnvEvento.RetWS;
end;

procedure TfrmConfiguracao.Button5Click(Sender: TObject);
begin
  dlgAbrirArquivo.Title := 'Selecione a NFe';
  dlgAbrirArquivo.DefaultExt := '*-nfe.XML';
  dlgAbrirArquivo.Filter := 'Arquivos NFe (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  dlgAbrirArquivo.InitialDir := DMNFE.NFe.Configuracoes.Arquivos.PathSalvar;

  if dlgAbrirArquivo.Execute then
  begin
    DMNFE.NFe.NotasFiscais.Clear;
    DMNFE.NFe.NotasFiscais.LoadFromFile(dlgAbrirArquivo.FileName);
  end;

  dlgAbrirArquivo.Title := 'Selecione o Evento';
  dlgAbrirArquivo.DefaultExt := '*.XML';
  dlgAbrirArquivo.Filter := 'Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';

  dlgAbrirArquivo.InitialDir := DMNFE.NFe.Configuracoes.Arquivos.PathSalvar;

  if dlgAbrirArquivo.Execute then
  begin
    DMNFE.NFe.EventoNFe.Evento.Clear;
    DMNFE.NFe.EventoNFe.LerXML(dlgAbrirArquivo.FileName);
    DMNFE.NFe.ImprimirEvento;
  end;
end;

procedure TfrmConfiguracao.cxButton1Click(Sender: TObject);
begin
  inherited;
   frmAjuda_Tipo_contingencia := TfrmAjuda_Tipo_contingencia.Create(self);
   frmAjuda_Tipo_contingencia.showmodal;
   frmAjuda_Tipo_contingencia.destroy;

end;

procedure TfrmConfiguracao.btnCancelamentoClick(Sender: TObject);
var
 vAux : String;
begin
 dlgAbrirArquivo.Title := 'Selecione o MDFe';
 dlgAbrirArquivo.DefaultExt := '*-MDFe.xml';
 dlgAbrirArquivo.Filter := 'Arquivos MDFe (*-MDFe.xml)|*-MDFe.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 dlgAbrirArquivo.InitialDir := DMNFE.MDFe.Configuracoes.Arquivos.PathSalvar;

 if dlgAbrirArquivo.Execute then
  begin
   DMNFE.MDFe.Manifestos.Clear;
   DMNFE.MDFe.Manifestos.LoadFromFile(dlgAbrirArquivo.FileName);
   if not(InputQuery('WebServices Cancelamento', 'Justificativa', vAux))
    then exit;

   DMNFE.MDFe.EventoMDFe.Evento.Clear;

   with DMNFE.MDFe.EventoMDFe.Evento.Add do
    begin
     infEvento.chMDFe   := Copy(DMNFE.MDFe.Manifestos.Items[0].MDFe.infMDFe.ID, 5, 44);
     infEvento.CNPJCPF  := dados.qrFilial.FieldByName('CNPJ').AsString;
     infEvento.dhEvento := now;
//  TpcnTpEvento = (teCCe, teCancelamento, teManifDestConfirmacao, teManifDestCiencia,
//                  teManifDestDesconhecimento, teManifDestOperNaoRealizada,
//                  teEncerramento);
     infEvento.tpEvento   := teCancelamento;
     infEvento.nSeqEvento := 1;

     infEvento.detEvento.nProt := DMNFE.MDFe.Manifestos.Items[0].MDFe.procMDFe.nProt;
     infEvento.detEvento.xJust := trim(vAux);
    end;

   DMNFE.MDFe.EnviarEvento( 1 ); // 1 = Numero do Lote

   MemoResp_man.Lines.Text   := UTF8Encode(DMNFE.MDFe.WebServices.EnvEvento.RetWS);
   memoRespWS_man.Lines.Text := UTF8Encode(DMNFE.MDFe.WebServices.EnvEvento.RetWS);
   LoadXML(MemoResp_man, WBResposta_man);
  end;
end;

procedure TfrmConfiguracao.btnConsultaNaoEncerradosClick(Sender: TObject);
begin

  DMNFE.MDFe.WebServices.ConsultaMDFeNaoEnc( Dados.qrFilial.FieldByName('CNPJ').AsString );

  MemoResp_man.Lines.Text :=  UTF8Encode(DMNFE.MDFe.WebServices.ConsMDFeNaoEnc.RetWS);
  memoRespWS_man.Lines.Text :=  UTF8Encode(DMNFE.MDFe.WebServices.ConsMDFeNaoEnc.RetornoWS);
  LoadXML(MemoResp_man, WBResposta_man);
end;

procedure TfrmConfiguracao.btnConsultarChaveClick(Sender: TObject);
var
 vChave : String;
begin
  if not(InputQuery('WebServices Consultar', 'Chave do MDF-e:', vChave)) then
    exit;

  DMNFE.MDFe.WebServices.Consulta.MDFeChave := vChave;
  DMNFE.MDFe.WebServices.Consulta.Executar;

  MemoResp_man.Lines.Text :=  UTF8Encode(DMNFE.MDFe.WebServices.Consulta.RetWS);
  memoRespWS_man.Lines.Text :=  UTF8Encode(DMNFE.MDFe.WebServices.Consulta.RetornoWS);
  LoadXML(MemoResp_man, WBResposta_man);
end;

procedure TfrmConfiguracao.btnConsultarClick(Sender: TObject);
begin
  inherited;
 dlgAbrirArquivo.Title := 'Selecione o MDFe';
 dlgAbrirArquivo.DefaultExt := '*-MDFe.xml';
 dlgAbrirArquivo.Filter := 'Arquivos MDFe (*-MDFe.xml)|*-MDFe.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 dlgAbrirArquivo.InitialDir := DMNFE.MDFe.Configuracoes.Arquivos.PathSalvar;

 if dlgAbrirArquivo.Execute then
  begin
   DMNFE.MDFe.Manifestos.Clear;
   DMNFE.MDFe.Manifestos.LoadFromFile(dlgAbrirArquivo.FileName);
   DMNFE.MDFe.Consultar;

   ShowMessage(DMNFE.MDFe.WebServices.Consulta.Protocolo);
   MemoResp_man.Lines.Text := UTF8Encode(DMNFE.MDFe.WebServices.Consulta.RetWS);
   memoRespWS_man.Lines.Text := UTF8Encode(DMNFE.MDFe.WebServices.Consulta.RetWS);
   LoadXML(MemoResp_man, WBResposta_man);
 end;
end;

procedure TfrmConfiguracao.btnConsultaReciboClick(Sender: TObject);
var
  aux : String;
begin
  if not(InputQuery('Consultar Recibo Lote', 'Número do Recibo', aux)) then
    exit;
  DMNFE.NFe.WebServices.Recibo.Recibo := aux;
  DMNFE.NFe.WebServices.Recibo.Executar;

  MemoResp.Lines.Text :=  UTF8Encode(DMNFE.NFe.WebServices.Recibo.RetWS);
  LoadXML(MemoResp, WBResposta);
end;

procedure TfrmConfiguracao.btnEncerramentoClick(Sender: TObject);
begin
 dlgAbrirArquivo.Title := 'Selecione o MDFe';
 dlgAbrirArquivo.DefaultExt := '*-MDFe.xml';
 dlgAbrirArquivo.Filter := 'Arquivos MDFe (*-MDFe.xml)|*-MDFe.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 dlgAbrirArquivo.InitialDir := DMNFE.MDFe.Configuracoes.Arquivos.PathSalvar;

 if dlgAbrirArquivo.Execute then
  begin
   DMNFE.MDFe.Manifestos.Clear;
   DMNFE.MDFe.Manifestos.LoadFromFile(dlgAbrirArquivo.FileName);

   DMNFE.MDFe.EventoMDFe.Evento.Clear;

   with DMNFE.MDFe.EventoMDFe.Evento.Add do
    begin
     infEvento.chMDFe   := Copy(DMNFE.MDFe.Manifestos.Items[0].MDFe.infMDFe.ID, 5, 44);
     infEvento.CNPJCPF  := dados.qrFilial.FieldByName('CNPJ').AsString;
     infEvento.dhEvento := now;
//  TpcnTpEvento = (teCCe, teCancelamento, teManifDestConfirmacao, teManifDestCiencia,
//                  teManifDestDesconhecimento, teManifDestOperNaoRealizada,
//                  teEncerramento);
     infEvento.tpEvento   := teEncerramento;
     infEvento.nSeqEvento := 1;

     infEvento.detEvento.nProt := DMNFE.MDFe.Manifestos.Items[0].MDFe.procMDFe.nProt;
     infEvento.detEvento.dtEnc := Date;
     infEvento.detEvento.cUF   := StrToInt(Copy(IntToStr(DMNFE.MDFe.Manifestos.Items[0].MDFe.infDoc.infMunDescarga.Items[0].cMunDescarga),1,2));
     infEvento.detEvento.cMun  := DMNFE.MDFe.Manifestos.Items[0].MDFe.infDoc.infMunDescarga.Items[0].cMunDescarga;
    end;

   DMNFE.MDFe.EnviarEvento( 1 ); // 1 = Numero do Lote

   MemoResp_man.Lines.Text   := UTF8Encode(DMNFE.MDFe.WebServices.EnvEvento.RetWS);
   memoRespWS_man.Lines.Text := UTF8Encode(DMNFE.MDFe.WebServices.EnvEvento.RetWS);
   LoadXML(MemoResp_man, WBResposta_man);
  end;
end;

procedure TfrmConfiguracao.btnGerarPDFClick(Sender: TObject);
begin
  inherited;
 dlgAbrirArquivo.Title := 'Selecione o MDFe';
 dlgAbrirArquivo.DefaultExt := '*-MDFe.xml';
 dlgAbrirArquivo.Filter := 'Arquivos MDFe (*-MDFe.xml)|*-MDFe.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 dlgAbrirArquivo.InitialDir := DMNFE.MDFe.Configuracoes.Arquivos.PathSalvar;

 if dlgAbrirArquivo.Execute
  then begin
   DMNFE.MDFe.Manifestos.Clear;
   DMNFE.MDFe.Manifestos.LoadFromFile(dlgAbrirArquivo.FileName);
   DMNFE.MDFe.Manifestos.ImprimirPDF;
  end;
end;

procedure TfrmConfiguracao.SpeedButton4Click(Sender: TObject);
begin
  inherited;
   LocalEXE.FileName := dbValidadorSintegra.EditText;
   if LocalEXE.Execute then
      dbValidadorSintegra.EditText := LocalEXE.FileName;
end;

procedure TfrmConfiguracao.SpeedButton6Click(Sender: TObject);
begin
  inherited;
   LocalArquivos.FileName := dbLocalArquivos.EditText;
   if LocalArquivos.Execute then
      dbLocalArquivos.EditText := LocalArquivos.FileName;
end;

procedure TfrmConfiguracao.btn2Click(Sender: TObject);
begin
  inherited;
   LocalDANFE.FileName := dbLocalDANFE.EditText;
   if LocalDANFE.Execute then
      dbLocalDANFE.EditText := LocalDANFE.FileName;
end;

procedure TfrmConfiguracao.btnImprimirClick(Sender: TObject);
begin
 dlgAbrirArquivo.Title := 'Selecione o MDFe';
 dlgAbrirArquivo.DefaultExt := '*-MDFe.xml';
 dlgAbrirArquivo.Filter := 'Arquivos MDFe (*-MDFe.xml)|*-MDFe.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
 dlgAbrirArquivo.InitialDir := DMNFE.MDFe.Configuracoes.Arquivos.PathSalvar;

 if dlgAbrirArquivo.Execute then
  begin
   DMNFE.MDFe.Manifestos.Clear;
   DMNFE.MDFe.Manifestos.LoadFromFile(dlgAbrirArquivo.FileName);
   DMNFE.MDFe.Manifestos.Imprimir;
  end;
end;

procedure TfrmConfiguracao.btnInutilizarNumeracaoClick(Sender: TObject);
var
 Modelo, Serie, AnoEntrada, NumeroInicial, NumeroFinal, Justificativa : String;
 Ano,Mes,Dia:Word;
begin
 DecodeDate(Date,Ano,Mes,Dia);
 AnoEntrada:=IntToSTr(Ano);
 if not(InputQuery('WebServices Inutilização ', 'Ano',    AnoEntrada)) then
    exit;
 Modelo:= Dados.qryParametro_NF.FieldByName('MODELO_NF').AsString;
 if not(InputQuery('WebServices Inutilização ', 'Modelo', Modelo)) then
    exit;
 Serie:= Dados.qryParametro_NF.FieldByName('SERIE_NF').AsString;
 if not(InputQuery('WebServices Inutilização ', 'Serie',  Serie)) then
    exit;
 if not(InputQuery('WebServices Inutilização ', 'Número Inicial', NumeroInicial)) then
    exit;
 if not(InputQuery('WebServices Inutilização ', 'Número Final', NumeroFinal)) then
    exit;
 if not(InputQuery('WebServices Inutilização ', 'Justificativa', Justificativa)) then
    exit;
  DMNFE.NFe.WebServices.Inutiliza(Dados.qrRegistro.FieldByName('CNPJ').AsString, Justificativa, StrToInt(AnoEntrada), StrToInt(Modelo), StrToInt(Serie), StrToInt(NumeroInicial), StrToInt(NumeroFinal));
  MemoResp.Lines.Text :=  UTF8Encode(DMNFE.NFe.WebServices.Inutilizacao.RetWS);
  memoResp.Lines.Text :=  UTF8Encode(DMNFE.NFe.WebServices.Inutilizacao.RetornoWS);
  LoadXML(MemoResp, WBResposta);
end;



procedure TfrmConfiguracao.btn1Click(Sender: TObject);
var NomeArq:string;
begin
  inherited;
  dlgAbrirArquivo.Title := 'Selecione a NFE';
  dlgAbrirArquivo.DefaultExt := '*-nfe.XML';
  dlgAbrirArquivo.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*';
  dlgAbrirArquivo.InitialDir := DMNFE.NFe.Configuracoes.Arquivos.PathSalvar;
  if dlgAbrirArquivo.Execute then
  begin
    DMNFE.NFe.NotasFiscais.Clear;
    DMNFE.NFe.NotasFiscais.LoadFromFile(dlgAbrirArquivo.FileName);
    DMNFE.NFe.Consultar;
    ShowMessage(DMNFE.NFe.WebServices.Consulta.Protocolo);
    MemoResp.Lines.Text := UTF8Encode(DMNFE.NFe.WebServices.Consulta.RetWS);
    mmoRespWS.Lines.Text := UTF8Encode(DMNFE.NFe.WebServices.Consulta.RetornoWS);
    LoadXML(MemoResp, WBResposta);
    NomeArq := dlgAbrirArquivo.FileName;
    if pos(UpperCase('-nfe.xml'),UpperCase(NomeArq)) > 0 then
       NomeArq := StringReplace(NomeArq,'-nfe.xml','-procNfe.xml',[rfIgnoreCase]);
    DMNFE.NFe.NotasFiscais.Items[0].GravarXML(NomeArq);
    ShowMessage('Arquivo gravado em: '+NomeArq);
    memoLog.Lines.Add('Arquivo gravado em: '+NomeArq);
  end;

end;

procedure TfrmConfiguracao.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  DMNFE.Destroy;
end;

end.
