NFE - MIGRAGAR DADOS DE UMA TABELA PARA OUTRA
Pessoal, tou implantando NFe no meu projeto VB6+SQL 2008 express
A implantação da DLL para assinar, transmitir e cancelar nfe tá rodando perfeitamente... crio um nfe do zero... e roda beleza
Agora tou modificando a parte que que pega meus pedidos feito no PDV e transforma em NFE
para isso preciso pegar todos os registro da tabela pedidos_itens e adicionar na tabela NotaFiscalItens com algumas restrições.
A ideia é no grid de pedidos... pegar o pedido que foi gerado no PDV... e dar um comando que pegue todos os registros com o campo COD_PEDIDO = X e crie novos registros na tabela NotaFiscalItens obedecendo as seguintes restrições.
no txtCodPedido tem o codigo do pedido ao qual vou localicar os registro da tabela PEDIDO_ITENS, apos localizar os pedidos, tenho que unir com a tabela PRODUTOS, para assim preencher poder preencher a tabela NOTAFISCALITENS
A IDEIA SERIA ESSA
[ô] (FROM produtos INNER JOIN pedidos_itens ON produtos.codigo = pedidos_itens.cod_produto)
TB: NOTAFISCAL_ITENS TB: PEDIDO_ITENS E PRODUTOS
Campos/destino Campos/origem
CodigoNota txtCodNota.Text
Item autonumeração
CodigoProduto pedidos_itens.cod_produto
NomeProduto produtos.descricao
CFOP produtos.cfop
NCM produtos.ncm
CST produtos.icmscst
UnidadeComercial produtos.unid_medida
ValorUnitarioComercializacao pedidos_itens.preco
ValorTotalBruto pedidos_itens.preco * pedidos_itens.quantidade
tipodesconto 1
desconto 0
Valordesconto 0
QuantidadeComercial pedidos_itens.quantidade
pICMS 0
vBC pedidos_itens.preco * pedidos_itens.quantidade
vICMS 0
entao um PEDIDO possui vários registros na tabela PEDIDOS_ITENS... tenho que preencher a tabela NOTAFISCAL ITENS com eles
se alguem poder me ajudar com esse loop ai serei grato!
A implantação da DLL para assinar, transmitir e cancelar nfe tá rodando perfeitamente... crio um nfe do zero... e roda beleza
Agora tou modificando a parte que que pega meus pedidos feito no PDV e transforma em NFE
para isso preciso pegar todos os registro da tabela pedidos_itens e adicionar na tabela NotaFiscalItens com algumas restrições.
A ideia é no grid de pedidos... pegar o pedido que foi gerado no PDV... e dar um comando que pegue todos os registros com o campo COD_PEDIDO = X e crie novos registros na tabela NotaFiscalItens obedecendo as seguintes restrições.
no txtCodPedido tem o codigo do pedido ao qual vou localicar os registro da tabela PEDIDO_ITENS, apos localizar os pedidos, tenho que unir com a tabela PRODUTOS, para assim preencher poder preencher a tabela NOTAFISCALITENS
A IDEIA SERIA ESSA
[ô] (FROM produtos INNER JOIN pedidos_itens ON produtos.codigo = pedidos_itens.cod_produto)
TB: NOTAFISCAL_ITENS TB: PEDIDO_ITENS E PRODUTOS
Campos/destino Campos/origem
CodigoNota txtCodNota.Text
Item autonumeração
CodigoProduto pedidos_itens.cod_produto
NomeProduto produtos.descricao
CFOP produtos.cfop
NCM produtos.ncm
CST produtos.icmscst
UnidadeComercial produtos.unid_medida
ValorUnitarioComercializacao pedidos_itens.preco
ValorTotalBruto pedidos_itens.preco * pedidos_itens.quantidade
tipodesconto 1
desconto 0
Valordesconto 0
QuantidadeComercial pedidos_itens.quantidade
pICMS 0
vBC pedidos_itens.preco * pedidos_itens.quantidade
vICMS 0
entao um PEDIDO possui vários registros na tabela PEDIDOS_ITENS... tenho que preencher a tabela NOTAFISCAL ITENS com eles
se alguem poder me ajudar com esse loop ai serei grato!
eu acho que vc pode fazer isso com o comando insert, comando único e sem loop.
Pessoal, baseado no que falei em cima... fiz algo errado nesse insert ?
Cuca doendo!!! quem puder ajudar, serei grato!
sSQL = [Ô]INSERT INTO NotaFiscalItens (CodigoNota, Item, CodigoProduto, NomeProduto, CFOP, NCM, CST, UnidadeComercial, ValorUnitarioComercializacao, ValorTotalBruto, tipodesconto, desconto, Valordesconto, QuantidadeComercial, pICMS, vBC, vICMS) VALUES ([Ô] & _
[Ô][Ô] & txtCodNota.Text & [Ô], (SELECT MAX(Item) FROM NotaFiscalItens WHERE CodigoNota = [Ô] & Val(txtCodNota.Text) & [Ô]) + 1, SELECT pedidos_itens.cod_produto, produtos.descricao, produtos.cfop, produtos.ncm, produtos.icmscst, produtos.unid_medida, pedidos_itens.preco, (pedidos_itens.preco * pedidos_itens.quantidade) as varValorBruto, 1, 0, 1, pedidos_itens.quantidade, 0, (pedidos_itens.preco * pedidos_itens.quantidade) as varVBC, 0[Ô] & _
[Ô]FROM produtos INNER JOIN pedidos_itens ON produtos.codigo = pedidos_itens.cod_produto INNER JOIN pedidos ON pedidos_itens.cod_pedido = pedidos.cod_pedido [Ô] & _
[Ô]WHERE pedidos_itens.COD_PEDIDO = [Ô] & txtCodPedido.Text & [Ô];[Ô]
Cuca doendo!!! quem puder ajudar, serei grato!
é pq nunca fiz um INSERT TO com SELECT junto... executei e seu o seguinte erro
Mas essa sua query está bem bagunçada... isso dificulta quando vc precisa encontrar algum erro.
Um conselho: monta o select primeiro, depois vc encaixa no insert. e não esquece de organizar isso aÃ.
basicamente a sintaxe é essa:
Insert into tabela
(
campos...
)
select
campo
from tabela
Um conselho: monta o select primeiro, depois vc encaixa no insert. e não esquece de organizar isso aÃ.
basicamente a sintaxe é essa:
Insert into tabela
(
campos...
)
select
campo
from tabela
Atualizando:
tirei os campos CodigoNota, Item, & Val(txtCodNota.Text) & [Ô], [Ô] & lNovoCod & [Ô] da inserção e funcionou TUDO CERTO!
SÓ QUE EU PRECISO DOS 2 CAMPOS NESSA INSERÇÃO
Alguma ideia?
tirei os campos CodigoNota, Item, & Val(txtCodNota.Text) & [Ô], [Ô] & lNovoCod & [Ô] da inserção e funcionou TUDO CERTO!
SÓ QUE EU PRECISO DOS 2 CAMPOS NESSA INSERÇÃO
sSQL = [Ô]INSERT INTO NotaFiscalItens (CodigoProduto, NomeProduto, CFOP, NCM, CST, UnidadeComercial, ValorUnitarioComercializacao, ValorTotalBruto, tipodesconto, desconto, Valordesconto, QuantidadeComercial, pICMS, vBC, vICMS) [Ô] & _
[Ô]SELECT pedidos_itens.cod_produto, produtos.descricao, produtos.cfop, produtos.ncm, produtos.icmscst, produtos.unid_medida, pedidos_itens.preco, (pedidos_itens.preco * pedidos_itens.quantidade) as varValorBruto, 1, 0, 1, pedidos_itens.quantidade, 0, (pedidos_itens.preco * pedidos_itens.quantidade) as varVBC, 0 [Ô] & _
[Ô]FROM produtos INNER JOIN pedidos_itens ON produtos.codigo = pedidos_itens.cod_produto INNER JOIN pedidos ON pedidos_itens.cod_pedido = pedidos.cod_pedido [Ô] & _
[Ô]WHERE pedidos_itens.COD_PEDIDO = [Ô] & txtCodPedido.Text & [Ô];[Ô]
[ô]MsgBox sSQL
dbData.Execute sSQL
Alguma ideia?
Do jeito que vc está fazendo, não vai funcionar...
O campo Item precisa ser auto-numeração no banco de dados.
O campo Item precisa ser auto-numeração no banco de dados.
Pois é... tem como colocar 2 select num mesmo insert ?
pq o campo ITEM vai ser preenchida com uma select diferente
[Ô]SELECT ISNULL(MAX(Item), 0) as ultimo_item FROM NotaFiscalItens WHERE CodigoNota = [Ô] & Val(txtCodNota.Text)
e o campo CodigoNota vai ser preenchido com o objeto do form [Ô]& Val(txtCodNota.Text) & [Ô]
pq o campo ITEM vai ser preenchida com uma select diferente
[Ô]SELECT ISNULL(MAX(Item), 0) as ultimo_item FROM NotaFiscalItens WHERE CodigoNota = [Ô] & Val(txtCodNota.Text)
e o campo CodigoNota vai ser preenchido com o objeto do form [Ô]& Val(txtCodNota.Text) & [Ô]
Citação::
Pois é... tem como colocar 2 select num mesmo insert ?
pq o campo ITEM vai ser preenchida com uma select diferente
[Ô]SELECT ISNULL(MAX(Item), 0) as ultimo_item FROM NotaFiscalItens WHERE CodigoNota = [Ô] & Val(txtCodNota.Text)
e o campo CodigoNota vai ser preenchido com o objeto do form & Val(txtCodNota.Text) & [Ô]
E o campo Item não pode ser auto-numeração?
basicamente ele nao precisa consultar a tabela NotaFiscalItens, ele precisa ser só sequencial, ou seja, o primeiro registro adicionado seria 1, segundo 2 e assim sucessivamente... porem tem q seguir a sequencia...
Bom, se é assim, então defina o campo como auto-numeração no banco de dados.
Tópico encerrado , respostas não são mais permitidas