Como fazer corretamente essas rotinas ?

21/01/2009

a/c Rodrigo carreiro Mourão Veja ai , se ta certo , se estiver errado fale onde tem que melhorar ou refazer unit ufrmRadioLocar; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DBCtrls, StdCtrls, FMTBcd, DB, DBClient, Provider, SqlExpr, DateUtils, ADODB, Buttons; type TfrmRadioLocar = class(TForm) lbl1: TLabel; lbl2: TLabel; lbl3: TLabel; lbl4: TLabel; lbl5: TLabel; lbl6: TLabel; lbl7: TLabel; lbl8: TLabel; lbl9: TLabel; lbl10: TLabel; lbl11: TLabel; lbl12: TLabel; lbl13: TLabel; lbl14: TLabel; edtMatricula: TEdit; edtMotoqueiro: TEdit; edtRadio: TEdit; edtSerialradio: TEdit; edtcategoriaDiaria: TEdit; edtvalorlocacao: TEdit; edttotallocacao: TEdit; edt_ultimalocao: TEdit; edttotallocacaomes: TEdit; edtlimitedebito: TEdit; edtproxlimite: TEdit; edtvalorpagamento: TEdit; edtsaldoatual: TEdit; edtnovosaldo: TEdit; dbimg1: TDBImage; btnLocar: TButton; btnCancelar: TButton; Limpar: TButton; edt_idCategoriaMotoqueiro: TEdit; ds1: TDataSource; dbgrd1: TDBGrid; lblIDLOCACAO: TLabel; procedure edtMatriculaChange(Sender: TObject); procedure edtRadioChange(Sender: TObject); procedure btnLocarClick(Sender: TObject); procedure edtMatriculaKeyPress(Sender: TObject; var Key: Char); procedure LimparClick(Sender: TObject); procedure edtvalorpagamentoChange(Sender: TObject); procedure edtvalorpagamentoKeyPress(Sender: TObject; var Key: Char); procedure edtRadioKeyPress(Sender: TObject; var Key: Char); procedure edtvalorpagamentoExit(Sender: TObject); procedure FormKeyPress(Sender: TObject; var Key: Char); private procedure CONSULTAMOTOQUEIRO; procedure loca_radio; procedure limpaformulario; procedure LANCA_MOV_MOTOQUEIRO; procedure lanca_caixa; procedure verificaMotoRadio; procedure VERIFICAULTIMALOCACAO; procedure TOTALTODASLOCACAO; procedure LOCACAOMES; procedure VERIFICASALDO; procedure proximoLimite; procedure verificalimiteDebito; procedure verificaradiodisponivel; procedure Atualizalimite; procedure RotinasLocacao; procedure ImprimiRecibo; public { Public declarations } end; var frmRadioLocar: TfrmRadioLocar; aIdlocacao: integer; implementation uses UDMBUSCA, uDMprincipal, UDMRADIO, UDMMOTOQUEIRO, ufrmlog, udmLocacao; {$R *.dfm} procedure TfrmRadioLocar.Atualizalimite; begin if StrToFloat(edtnovosaldo.Text) < 0 then begin DMRADIO.qryAtualizaLimiteMotoqueiro.Close; DMRADIO.qryAtualizaLimiteMotoqueiro.sql.Clear; DMRADIO.qryAtualizaLimiteMotoqueiro.SQL.Add(update tb_motoqueiro set vl_limite_debito =:aLimite where nr_matricula =:aMotoqueiro); DMRADIO.qryAtualizaLimiteMotoqueiro.ParamByName(aMotoqueiro).AsInteger := StrToInt(edtMatricula.Text); DMRADIO.qryAtualizaLimiteMotoqueiro.ParamByName(alimite).AsInteger := StrToint(edtproxlimite.Text); DMRADIO.qryAtualizaLimiteMotoqueiro.ExecSQL; end else ShowMessage(Motoqueiro com Mensalidade Quitada ); end; procedure TfrmRadioLocar.btnLocarClick(Sender: TObject); begin if (MessageDlg(Deseja concluir a locação ?, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin RotinasLocacao; // ImprimiRecibo ; end; end; procedure TfrmRadioLocar.CONSULTAMOTOQUEIRO; begin if (edtMatricula.Text EmptyStr) then if Length(edtMatricula.Text) >= 4 then begin dmbusca.qryconsultaMotoqueiro.Close; dmbusca.qryconsultaMotoqueiro.SQL.clear; dmbusca.qryconsultaMotoqueiro.SQL.add(select * from VW_CAD_MOTOQUEIRO where matricula= :pMATRICULA); dmbusca.qryconsultaMotoqueiro.ParamByName(pMATRICULA).AsString := edtMatricula.Text; dmbusca.qryconsultaMotoqueiro.open; if not dmbusca.qryconsultaMotoqueiro.isempty then begin if not VarIsNull(dmbusca.qryconsultaMotoqueiro[nome]) then edtMotoqueiro.Text := dmbusca.qryconsultaMotoqueiro[nome]; if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro[diaria]) then edtcategoriaDiaria.Text := DMBUSCA.QryConsultaMotoqueiro[diaria]; if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro[Vl_Categoria]) then edtvalorlocacao.Text := DMBUSCA.QryConsultaMotoqueiro[Vl_Categoria]; if not VarIsNull(DMBUSCA.QryConsultaMotoqueiro[LIMITE_DEBITO]) then edtlimitedebito.Text := DMBUSCA.QryConsultaMotoqueiro[LIMITE_DEBITO]; end; end; end; procedure TfrmRadioLocar.edtMatriculaChange(Sender: TObject); begin CONSULTAMOTOQUEIRO; // verificalimiteDebito ; verificaMotoRadio; TOTALTODASLOCACAO; LOCACAOMES; VERIFICASALDO; proximoLimite; VERIFICAULTIMALOCACAO; end; procedure TfrmRadioLocar.edtMatriculaKeyPress(Sender: TObject; var Key: Char); begin if not (Key in [0..9, Chr(8)]) then Key := #0; end; procedure TfrmRadioLocar.edtRadioChange(Sender: TObject); begin verificaradiodisponivel; end; procedure TfrmRadioLocar.edtRadioKeyPress(Sender: TObject; var Key: Char); begin if not (Key in [0..9, Chr(8)]) then Key := #0; end; procedure TfrmRadioLocar.edtvalorpagamentoChange(Sender: TObject); begin if edtvalorpagamento.text EmptyStr then begin edtnovosaldo.text := floattostr(strtofloat(edtsaldoatual.Text) + strtofloat(edtvalorpagamento.text)); end; end; procedure TfrmRadioLocar.edtvalorpagamentoExit(Sender: TObject); begin if edtvalorpagamento.Text = EmptyStr then edtvalorpagamento.Text := 0; end; procedure TfrmRadioLocar.edtvalorpagamentoKeyPress(Sender: TObject; var Key: Char); begin if not (Key in [0..9, Chr(8)]) then Key := #0; end; procedure TfrmRadioLocar.FormKeyPress(Sender: TObject; var Key: Char); begin if key = #13 then begin Key := #0; Perform(Wm_NextDlgCtl, 0, 0); end end; procedure TfrmRadioLocar.ImprimiRecibo; begin if StrToFloat(edtValorPagamento.text) > 0 then if (MessageDlg(Deseja imprimir o comprovante de pagamento para Motoqueiro ?, mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin ShowMessage(Implementação futura); end; end; procedure TfrmRadioLocar.lanca_caixa; begin if StrToInt(edtvalorpagamento.Text) > 0 then begin dmlocacao.qryLancaCaixa.Close; dmlocacao.qryLancaCaixa.SQL.clear; dmlocacao.qryLancaCaixa.sql.Add(exec pri_movimento_Caixa :aidcaixa,:atipoLancamento,:aValor ,:aMatricula,:aUsuario); dmlocacao.qryLancaCaixa.ParamByName(aIdCaixa).AsInteger := 15; dmlocacao.qryLancaCaixa.ParamByName(aTipolancamento).AsInteger := 1; dmlocacao.qryLancaCaixa.ParamByName(aValor).AsInteger := StrToInt(edtvalorpagamento.Text); dmlocacao.qryLancaCaixa.ParamByName(aMatricula).AsInteger := StrToInt(edtMatricula.Text); dmlocacao.qryLancaCaixa.ParamByName(aUsuario).AsInteger := 1; //vm_idusuario dmlocacao.qryLancaCaixa.ExecSQL; end; end; procedure TfrmRadioLocar.LANCA_MOV_MOTOQUEIRO; begin dmlocacao.qryMovMotoqueiro.Close; dmlocacao.qryMovMotoqueiro.sql.clear; dmlocacao.qryMovMotoqueiro.SQL.Add(exec pri_motoqueiro_movimento :aMatricula,:aidlocacao,:atipocredito,:aPagamento,:atipomovimento,:aUsuario); dmlocacao.qryMovMotoqueiro.ParamByName(aMatricula).AsInteger := StrToInt(edtMatricula.Text); dmlocacao.qryMovMotoqueiro.ParamByName(aIdLocacao).AsInteger := aIdlocacao; dmlocacao.qryMovMotoqueiro.ParamByName(atipocredito).AsInteger := 1; dmlocacao.qryMovMotoqueiro.ParamByName(aPagamento).AsInteger := StrToInt(edtvalorpagamento.text); dmlocacao.qryMovMotoqueiro.ParamByName(aTipoMovimento).AsInteger := 1; dmlocacao.qryMovMotoqueiro.ParamByName(aUsuario).AsInteger := 1; //vm_idusuario dmlocacao.qryMovMotoqueiro.Open; end; procedure TfrmRadioLocar.limpaformulario; var I: integer; begin for i := 0 to ComponentCount - 1 do begin if Components[i].ClassName = TEdit then Tedit(Components[i]).clear; end; end; procedure TfrmRadioLocar.LimparClick(Sender: TObject); begin limpaformulario; end; procedure TfrmRadioLocar.LOCACAOMES; begin //total de locacoes dentro de um mes DMRADIO.cdsTotalLocacaoMes.Close; DMRADIO.cdsTotalLocacaoMes.Params[0].asstring := edtMatricula.Text; DMRADIO.cdsTotalLocacaoMes.Params[1].AsString := FormatDateTime(yyyy/dd/mm 00:00:00, StartOfTheMonth(Date)); DMRADIO.cdsTotalLocacaoMes.Params[2].AsString := FormatDateTime(yyyy/dd/mm 23:59:59, Date); DMRADIO.cdsTotalLocacaoMes.Open; if not DMRADIO.cdsTotalLocacaoMes.IsEmpty then begin if not VarIsNull(DMRADIO.cdsTotalLocacaoMes[total]) then edttotallocacaomes.text := DMRADIO.cdsTotalLocacaoMes[total] end; end; procedure TfrmRadioLocar.loca_radio; begin dmlocacao.qryIdLocacao.Close; dmlocacao.qryIdLocacao.sql.Clear; dmlocacao.qryIdLocacao.sql.Add(exec pri_locacao :aRadio,:aMatricula,:aUsuario,:aCategoria,:aPagamento,:aValor,:aStatus ); dmlocacao.qryIdLocacao.ParamByName(aRadio).AsInteger := StrToInt(edtRadio.Text); dmlocacao.qryIdLocacao.ParamByName(aMatricula).AsInteger := StrToInt(edtMatricula.Text); dmlocacao.qryIdLocacao.ParamByName(aUsuario).AsInteger := 1; //vm_idusuario; dmlocacao.qryIdLocacao.ParamByName(acategoria).AsInteger := StrToInt(edt_idCategoriaMotoqueiro.Text); dmlocacao.qryIdLocacao.ParamByName(aPagamento).AsFloat := StrToFloat(edtvalorpagamento.Text); //valor dmlocacao.qryIdLocacao.ParamByName(aValor).AsFloat := StrToFloat(edtvalorlocacao.Text); //valor dmlocacao.qryIdLocacao.ParamByName(aStatus).AsInteger := 2; dmlocacao.qryIdLocacao.Open; if not dmlocacao.qryIdLocacao.IsEmpty then begin if (not VarIsNull(dmlocacao.qryIdLocacao[ID_LOCACAO])) then // ShowMessage(dmlocacao.qryIdLocacao[ID_LOCACAO]); aIdlocacao := dmlocacao.qryIdLocacao[id_locacao]; end; ShowMessage(locacão realizada com sucesso !); end; procedure TfrmRadioLocar.proximoLimite; begin if (edtMatricula.Text EmptyStr) then if Length(edtMatricula.Text) >= 4 then begin DMRADIO.cdsLAtualizaLimiteMotoqueiro.Close; DMRADIO.cdsLAtualizaLimiteMotoqueiro.Params[0].Asstring := edtMatricula.Text; DMRADIO.cdsLAtualizaLimiteMotoqueiro.Open; edtproxlimite.Text := IntToStr(DMRADIO.cdsLAtualizaLimiteMotoqueiroNovo_limite.asinteger); end; end; procedure TfrmRadioLocar.RotinasLocacao; begin if (edtvalorpagamento.Text) = EmptyStr then edtvalorpagamento.Text := 0; verificaMotoRadio; verificaradiodisponivel; verificaLimiteDebito; VERIFICASALDO; proximoLimite; loca_radio; AtualizaLimite; LANCA_MOV_MOTOQUEIRO; lanca_caixa; limpaformulario; end; procedure TfrmRadioLocar.TOTALTODASLOCACAO; begin if (edtMatricula.Text EmptyStr) then if Length(edtMatricula.Text) >= 4 then begin dmradio.cdsTotalLocacoesGerais.Close; dmradio.cdsTotalLocacoesGerais.Params[0].Asstring := edtMatricula.Text; dmradio.cdsTotalLocacoesGerais.Open; if not dmradio.cdsTotalLocacoesGerais.IsEmpty then begin if not VarIsNull(dmradio.cdsTotalLocacoesGerais[total]) then edttotallocacao.Text := dmradio.cdsTotalLocacoesGerais[total]; end; end; end; procedure TfrmRadioLocar.verificalimiteDebito; begin if StrToFloat(edtlimitedebito.text) < -strtofloat(edtnovosaldo.Text) then begin raise Exception.Create(Limite insuficiente para um nova locação ); end; end; procedure TfrmRadioLocar.verificaMotoRadio; begin if Length(edtMatricula.Text) >= 4 then begin DmLocacao.cdsMotoqueirocomRadio.Close; DmLocacao.cdsMotoqueirocomRadio.Params[0].Asstring := edtMatricula.Text; DmLocacao.cdsMotoqueirocomRadio.Open; if DmLocacao.cdsMotoqueirocomRadio.RecordCount > 0 then begin raise Exception.Create(Motoqueiro já tem Rádio locado ); end; end; end; procedure TfrmRadioLocar.verificaradiodisponivel; begin if Length(edtRadio.Text) >= 3 then begin DMlocacao.cdsRadioDisponivel.Close; DMlocacao.cdsRadioDisponivel.Params[0].Asstring := edtradio.text; DMlocacao.cdsRadioDisponivel.Open; if not DMlocacao.cdsRadioDisponivel.IsEmpty then begin if not VarIsNull(DMlocacao.cdsRadioDisponivel[NR_SERIAL]) then edtSerialradio.Text := DMlocacao.cdsRadioDisponivel[NR_SERIAL]; end else begin raise Exception.Create(O Rádio selecionado não esta disponivel ); end; end; end; procedure TfrmRadioLocar.VERIFICASALDO; begin if (edtMatricula.Text EmptyStr) then if Length(edtMatricula.Text) >= 4 then begin DmLocacao.cdsSaldoMotoqueiro.Close; DmLocacao.cdsSaldoMotoqueiro.Params[0].AsString := edtMatricula.Text; DmLocacao.cdsSaldoMotoqueiro.Open; edtsaldoatual.Text := (DmLocacao.cdsSaldoMotoqueiroVl_Saldo.AsString); edtnovosaldo.Text := (DmLocacao.cdsSaldoMotoqueiroVl_Saldo.AsString); end; end; procedure TfrmRadioLocar.VERIFICAULTIMALOCACAO; begin DMMOTOQUEIRO.qryUltimalocacao.close; DMMOTOQUEIRO.qryUltimalocacao.SQL.Clear; DMMOTOQUEIRO.qryUltimalocacao.SQL.Add(select top 1 * from tb_locacao_radio where nr_matricula =:aMotoqueiro order by id_locacao desc ); DMMOTOQUEIRO.qryUltimalocacao.ParamByName(aMotoqueiro).Asstring := edtMatricula.Text; DMMOTOQUEIRO.qryUltimalocacao.open; if not DMMOTOQUEIRO.qryUltimalocacao.IsEmpty then begin if not VarIsNull(DMMOTOQUEIRO.qryUltimalocacao[dt_locacao]) then edt_ultimalocao.Text := DMMOTOQUEIRO.qryUltimalocacao[dt_locacao]; end; end; end.

[#VIDEO-65#]
Carlos Faria

Carlos Faria

Curtidas 0

Respostas

Carlos Faria

Carlos Faria

21/01/2009

esse e o video

[#VIDEO-65#]
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

21/01/2009

Ok !! Estarei verificando e entro em contato o mais rápido possível !!1

abs !!!!


GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

21/01/2009

Segue video com algumas considerações. abs !!!

[#VIDEO-68#]
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

21/01/2009

Olá Carlos, já baixei seus fontes e o back up do banco de dados. Apanhei aqui para restaurar sua base. Eu tenho o SQL Server 2000 instalado e você usa o 2005. Depois de pesquisar muito aqui vi que era isso então baixei o SqlServer 2005 com uma conexão com a internet não muito boa rsrsrsrsrs. Enfim acabei de baixar e consegui instalar e restaurar sua base.

Um outro problema que encontrei foi com a versão do Delphi, você usou a 2009 e o projeto não abre no 2007. Sorte nossa ter um dproj.2007 salvo junto. Estou agora acertando alguns detalhes para a aplicação rodar.

Peço que aguarde mais um pouco pois como os três chamados abertos girar em torno do mesmo projeto e na mesma tela irei analisar linha a linha para que possa identificar as falhas e gravar uma video com a solução das mesmas.

Conto com sua compreensão. Obrigado !!!

abs !!!!!
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

21/01/2009

Olá Carlos,

Podemos encerrar este chamado ??  Você abriu um especifico e estou trabalhando nele. Trata-se do chamado 2176.

Fico no aguardo !!!


abs !!
GOSTEI 0
POSTAR