unit CadCondicoesPagamento;

interface

uses
  Windows, system.UItypes, IB_Access,  Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ModeloCadastro, UCBase, ImgList, AppEvnts, IB_Components,
  ExtCtrls, StdCtrls, jpeg, Grids, IB_Grid, Buttons, ComCtrls, Mask,
  IB_Controls, IB_EditButton, System.ImageList;

type
  TfrmCadCondicoesPagamento = class(TFrModeloCadastro)
    GroupBox2: TGroupBox;
    dbCodigo: TIB_Text;
    edtDescricao: TIB_Edit;
    dbQteParcelas: TIB_Edit;
    dbPrazoMedio: TIB_Edit;
    pgVencimentos: TPageControl;
    tabEditaVencimentos: TTabSheet;
    pnlMovimentacoes: TPanel;
    btnSalvaVencimento: TBitBtn;
    btnCancelavencimento: TBitBtn;
    grdVencimentos: TIB_Grid;
    edtPrazo: TLabeledEdit;
    qryVencimentos: TIB_Query;
    dtVencimentos: TIB_DataSource;
    tabVisualizaVencimentos: TTabSheet;
    pnlManutencaoVencimento: TPanel;
    btnExcluiVencimento: TBitBtn;
    btnNovoVencimento: TBitBtn;
    IB_Grid1: TIB_Grid;
    chkA_Vista: TIB_CheckBox;
    procedure BtGravarClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnNovoVencimentoClick(Sender: TObject);
    procedure btnExcluiVencimentoClick(Sender: TObject);
    procedure btnSalvaVencimentoClick(Sender: TObject);
    procedure btnEditar2Click(Sender: TObject);
    procedure BtInserirClick(Sender: TObject);
    procedure BtAnteriorClick(Sender: TObject);
    procedure BtProximoClick(Sender: TObject);
    procedure BtEditarClick(Sender: TObject);
    procedure edtDescricaoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    procedure AtualizaTela;
    procedure AtualizaValores;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCadCondicoesPagamento: TfrmCadCondicoesPagamento;

implementation

{$R *.dfm}

procedure TfrmCadCondicoesPagamento.BtGravarClick(Sender: TObject);
begin
   if Trim(edtDescricao.Text) = '' then
   begin
      MessageDlg('Informe a descrição', mtWarning, [mbOK], 0);
      edtDescricao.SetFocus ;
      Exit;
   end;
  if Self.chkA_Vista.Checked then
    TbPrincipal.FieldByName('A_VISTA').Value:='T'
  else
    TbPrincipal.FieldByName('A_VISTA').Value:='F';
  AtualizaValores;
  inherited;

end;

procedure TfrmCadCondicoesPagamento.FormCreate(Sender: TObject);
begin
   Gera_Codigo := True;
   Descricao_Unica := True;
   Campo_Tabela := 'DESCRICAO';
   pgVencimentos.ActivePage := tabVisualizaVencimentos;
   inherited;

end;

procedure TfrmCadCondicoesPagamento.btnNovoVencimentoClick(Sender: TObject);
begin
  inherited;
   pgVencimentos.ActivePage := tabEditaVencimentos;
   edtPrazo.SetFocus;
   edtPrazo.Clear;
   
   qryVencimentos.Insert;
   qryVencimentos.FieldByName('ORDEM').Value:=qryVencimentos.RecordCount;
end;

procedure TfrmCadCondicoesPagamento.btnExcluiVencimentoClick(Sender: TObject);
begin
  inherited;
  if (MessageDlg('Confirma a Exclusão?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
  begin
    qryVencimentos.Delete;
    AtualizaValores;
  end;
end;

procedure TfrmCadCondicoesPagamento.btnSalvaVencimentoClick(Sender: TObject);
begin
  inherited;
  qryVencimentos.FieldByName('COD_CONDICAO_PAGAMENTO').Value:=TbPrincipal.FieldByName('COD_CONDICAO_PAGAMENTO').Value;
  qryVencimentos.FieldByName('PRAZO').Value:=edtPrazo.Text;
  TbPrincipal.PostRetaining;
  qryVencimentos.Post;
  qryVencimentos.RefreshAll;
  AtualizaValores;
  pgVencimentos.ActivePage := tabVisualizaVencimentos;
  btnNovoVencimento.SetFocus;
end;

procedure TfrmCadCondicoesPagamento.AtualizaTela;
begin
   {============= Realiza a atualizacao dos vencimentos
       no caso de edicao e navegacao nos resgistros ============}
  qryVencimentos.Close;
  qryVencimentos.ParamByName('VARCOND').Value:=TbPrincipal.FieldByName('COD_CONDICAO_PAGAMENTO').Value;
  qryVencimentos.Open;
end;
procedure TfrmCadCondicoesPagamento.btnEditar2Click(Sender: TObject);
begin
   AtualizaTela;
  inherited;

end;

procedure TfrmCadCondicoesPagamento.BtInserirClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;
   edtDescricao.SetFocus;
end;

procedure TfrmCadCondicoesPagamento.BtAnteriorClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;

end;

procedure TfrmCadCondicoesPagamento.BtProximoClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;

end;

procedure TfrmCadCondicoesPagamento.BtEditarClick(Sender: TObject);
begin
  inherited;
   AtualizaTela;
end;

procedure TfrmCadCondicoesPagamento.AtualizaValores;
begin
  tbPrincipal.FieldByName('PARCELAS').Value:=qryVencimentos.RecordCount;

  qryPesquisa.Close;
  qryPesquisa.SQL.Clear;
  qryPesquisa.SQL.Add('SELECT SUM(PRAZO) AS TOTAL_PRAZO FROM COND_PAGAMENTO_VENCIMENTOS WHERE COD_CONDICAO_PAGAMENTO ='+TbPrincipal.FieldByName('COD_CONDICAO_PAGAMENTO').AsString);
  qryPesquisa.Open;

  if tbPrincipal.FieldByName('PARCELAS').AsInteger > 0 then
    tbPrincipal.FieldByName('PRAZOMEDIO').Value:=qryPesquisa.FieldByName('TOTAL_PRAZO').Value / tbPrincipal.FieldByName('PARCELAS').Value
  else tbPrincipal.FieldByName('PRAZOMEDIO').Value:=0;
end;

procedure TfrmCadCondicoesPagamento.edtDescricaoKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if TbPrincipal.ReadOnly then
    Exit;
  if (Key = VK_RETURN)
  then pnlManutencaoVencimento.SetFocus;
end;

end.
