Fórum Rotina de lancamento de debito #5620

15/05/2009

0

ola pessoal   Boa noite   Estou precisando criar uma rotina para lancamento de debito de todos os motoqueiros em um unico click abaixo segue o link da video que eu fiz     http://www.4shared.com/file/105471806/e7db961a/lancadebitoMotoqueiro.html       CREATE PROCEDURE DBO.PROC_LANCA_DEBITO (@PIntMatricula INT,@PBitCredito BIT, @PDecMovimento DECIMAL(12,2), @PSntTipoMovimento SMALLINT, @PIndUsuario INT ) AS BEGIN SET NOCOUNT ON; INSERT INTO [dbo].[tb_MOTOQUEIRO_MOVIMENTO] (Nr_Matricula,Fl_Credito,Vl_Movimento,Id_Tipo_Movimento,Cd_Usuario) VALUES (@PIntMatricula,@PBitCredito,@PDecMovimento,@PSntTipoMovimento,@PIndUsuario ) SELECT @@IDENTITY AS ID_MOVIMENTO_MOTOQUEIRO END SELECT * FROM TB_TIPO_movimento Uso essa procedure no sqlserver porem eu preciso pegar todos os motoqueiros que tem os cadastros ativos e lancar esse debito para todos de uma so vez   segunda questao preciso criar uma outra rotina para que no dia 1 ou seja primeiro dia de cada mes o rotina seja disparada pelo sistema , sei que devo dar use na unit dateutils mais como fazer o procedimento para ser disparado sozinho ?          
Carlos Faria

Carlos Faria

Responder

Posts

16/05/2009

Rodrigo Mourão

Carlos estarei trabalhando na primeira dúvida !!!   Cada dúvida deve ser aberta em um chamado. Para a segunda dúvida peço que abra um novo chamado !!!   Abs !!!   Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

16/05/2009

Carlos Faria

Ola Rodrigo aqui é so uma duvida amigo , somente quero inserir um debito no valor de x para todos os motoqueiros que obedecam a condiçao y  ou mandei a video errada
Responder

Gostei + 0

16/05/2009

Rodrigo Mourão

Carlos temo duas opcoes :   1) Criar uma procedure no banco onde voce passe o valor e ela gere débito para todos.   2) Usar essa Rotina ai mesmo e fazer um loop no delphi chamando ele para cada motoqueiro que voce tem.   Qual das duas irá atender melhor você ??   Abs !!!   Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

16/05/2009

Carlos Faria

Acho que a do banco ficaria melhor , na verdade era so fazer uma subqueri no campo nr-matricula do motoqueiro problema e que nao estou conseguindo faze-la
Responder

Gostei + 0

18/05/2009

Rodrigo Mourão

Ok vou criar um exemplo que cursor e postar aqui !!!

ABs !!!
Responder

Gostei + 0

19/05/2009

Carlos Faria

ola Rodrigo como vc e o wesley sabem eu nunca tennho preça em fechar os chamados mais acho que agora precisamos fechar os meus urgentemente meu contrato se inspira amanha e depois de estar inspirado nem te responder eu consigo mais , pelo menos foi assim no primeiro contrato que eu fiz de 10 chamados
Responder

Gostei + 0

19/05/2009

Rodrigo Mourão

Carlos eu reconheco a minha demora em responder o chamado. Pode ficar tranquilo que os seus chamados que estao comigo aberto, mesmo que seu contrato expire eu irei solicitar a Adm da DevMedia que postem a resposta para você e explicarei o ocorrido.

Eu estou tendo problemas na minha MV que gravo as videos e rodo os exemplos. MAs irei dar prioridade aos seus chamados hoje mesmo !!

Abs !!!

  Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

19/05/2009

Carlos Faria

Sendo assim tudo bem pode ficar tranquilo ai
Responder

Gostei + 0

19/05/2009

Rodrigo Mourão

Olá Carlos !!

Segue abaixo o script de uma procedure que pede todos os parametros que sua procedure pede menos o ID do motoqueiro. Como você quer lançar o valor para todos os motoqueiros então eu criei um cursor que vai varrer a tabela de motoqueiros e para cada um lancer os valores que você informar nos parametros.

CREATE PROCEDURE DBO.PROC_LANCA_DEBITO_TODOS(
@PBitCredito BIT,
@PDecMovimento DECIMAL(12,2),
@PSntTipoMovimento SMALLINT,
@PIndUsuario INT
) AS
DECLARE CURMOTOQUEIRO
CURSOR FOR
  SELECT MATRICULA FROM MOTOQUEIRO

DECLARE @IntMatricula INT
BEGIN TRANSACTION

 OPEN CURMOTOQUEIRO
 FETCH NEXT FROM CURMOTOQUEIRO INTO @IntMatricula
 WHILE @@FETCH_STATUS = 0
 BEGIN
  INSERT INTO tb_MOTOQUEIRO_MOVIMENTO (Nr_Matricula,Fl_Credito,Vl_Movimento,Id_Tipo_Movimento,Cd_Usuario)
                               VALUES (@IntMatricula,@PBitCredito,@PDecMovimento,@PSntTipoMovimento,@PIndUsuario )
  FETCH NEXT FROM CURMOTOQUEIRO INTO @IntMatricula
 END
CLOSE CURMOTOQUEIRO
DEALLOCATE CURMOTOQUEIRO

COMMIT TRANSACTION

Atente para a linha que esta em vermelho. Se voce nao quiser que seja inserido para todos os motoqueiros basta mudar esse select e colocar sua Clausula Where. Por Exemplo  Select Matricula From Motoqueiro where nome Like 'A%'

Isso iria fazer lancamento para todos os motoqueiros que comecem com a letra A.


Espero ter ajudado.

Abs,

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Responder

Gostei + 0

19/05/2009

Carlos Faria

Ola rodrigo   estou analizando meslhor esse codigo aqui e vamos fechar essa chamado ja ,ja me parece ser show de bola     se eu abrir um outro chamado pedindo essa rotina pelo delphi tem como vc pegar ja que esta mais a par da situação e da rotina   e tambem um outro chamado sobre como fazer isso ai rodar no primeiro dia de cada mes a 0 hora
Responder

Gostei + 0

19/05/2009

Rodrigo Mourão

Ok Carlos !!

Quando abrir o chamado peça a Adm que mando o mesmo para mim, diga que eu solicitei !!!

Abs.

Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi


 


Responder

Gostei + 0

19/05/2009

Carlos Faria

Rodrigo     Show de bola , pode fechar o chamado   Muito boa a rotina    
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar