Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caguerra

Ajuda Vba Banco De Dados De Inventario

Recommended Posts

Eu não tenho muita experiência no desenvolver um código VBA. Estou tentandocriar um DataBase, mas está indo totalmente muito bem.

Os dados que eu preciso já está no arquivo do excel

Eu estu tentando atualizar a lista, adicionar, excluir pessoasou itens, mas está indo tudo errado ele nao adiciona ou muda nenhum dados da planilha

O botão (pesquisa, adicionar e outros funcionam,mas não fazem a ação correta



Eu não sei o que eu fiz de errado

desde ja agardeco pela ajuda

Option Explicit


Dim blnNew As Boolean
Dim TRows, i As Long

 

Private Sub AddNew_Click()
blnNew = True
TextVendor.Text = ""
TextPON.Text = ""
    TextPartNo.Text = ""
    TextSN.Text = ""
    TextItemCondition.Text = ""
    TextDescription.Text = ""
    TextPOP.Text = ""
    TextDR.Text = ""
    
    CloseButton.Caption = "Cancel"
    SaveButton.Enabled = False
    DeleteButton.Enabled = False

End Sub

Private Sub CloseButton_Click()
If CloseButton.Caption = "Close" Then
Unload Me
Else
CloseButton.Caption = "Close"
AddNew.Enabled = True
DeleteButton.Enabled = True
End If

'If Trim(TextVendor.Text) = "" Then
'MsgBox "Enter Vendor Name", vbCritical, "Save"
'End If
'Call prSave
End Sub

Private Sub DeleteButton_Click()
TRows = Worksheets("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
 Dim strDel
  strDel = MsgBox("Delete ?", vbYesNo, "Delete")
  If strDel = vbYes Then
    For i = 2 To TRows
      If Trim(Worksheets("Inventory Assets").Cells(i, 1).Value) = Trim(VendorSelect.Text) Then
    'Sheet1.Range(i & ":" & i).Delete
     Worksheets("Inventory Assets").Range(i & ":" & i).Delete

    TextVendor.Text = ""
    TextPON.Text = ""
    TextPartNo.Text = ""
    TextSN.Text = ""
    TextItemCondition.Text = ""
    TextDescription.Text = ""
    TextPOP.Text = ""
    TextDR.Text = ""
    Call ComboBoxFill
    Exit For
     End If
     Next i
     If Trim(VendorSelect.Text) = "" Then  
    SaveButton.Enabled = False
    DeleteButton.Enabled = False
     Else
    SaveButton.Enabled = True
    DeleteButton.Enabled = True
     End If
'     If Trim(PON.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'    If Trim(PartNoSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'      If Trim(SNSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'      If Trim(ItemCondtionSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'     If Trim(DescriptionSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'     If Trim(POPSelect.Text) = "" Then 
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
'     If Trim(DRSelect.Text) = "" Then  
'    cmdSave.Enabled = False
'    cmdDelete.Enabled = False
'     Else
'    cmdSave.Enabled = True
'    cmdDelete.Enabled = True
'     End If
  End If
    
End Sub
Private Sub SaveButton_Click()
If Trim(TextVendor.Text) = "" Then
MsgBox "Enter Vendor Name", vbCritical, "Save"
End If
Call prSave

End Sub
Private Sub SearchButton_Click()
blnNew = False
    TextVendor.Text = ""
    TextPON.Text = ""
    TextPartNo.Text = ""
    TextSN.Text = ""
    TextItemCondition.Text = ""
    TextDescription.Text = ""
    TextPOP.Text = ""
    TextDR.Text = ""

    TRows = Worksheets("Inventory Assets").Range("A3").CurrentRegion.Rows.Count
    For i = 3 To TRows
        If Val(Trim(Worksheets("Inventory Assets").Cells(i, 1).Value)) = Val(Trim(VendorSelect.Text)) Then
 
                TextVendor.Text = Worksheets("Inventory Assets").Cells(i, 1).Value
                TextPON.Text = Worksheets("Inventory Assets").Cells(i, 2).Value
                TextPartNo.Text = Worksheets("Inventory Assets").Cells(i, 3).Value
                TextSN.Text = Worksheets("Inventory Assets").Cells(i, 4).Value
                TextItemCondition.Text = Worksheets("Inventory Assets").Cells(i, 5).Value
                TextDescription.Text = Worksheets("Inventory Assets").Cells(i, 6).Value
                TextPOP.Text = Worksheets("Inventory Assets").Cells(i, 7).Value
                TextDR.Text = Worksheets("Inventory Assets").Cells(i, 8).Value
                Exit For
        End If
        Next i
    If TextVendor.Text = "" Then
    Else
        SaveButton.Enabled = True
        DeleteButton.Enabled = True
    End If
    
End Sub
Private Sub prSave()

    If blnNew = True Then
    TRows = Worksheets("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    With Worksheets("Inventory Assets").Range("A1")
        .Offset(TRows, 0).Value = TextVendor.Text
        .Offset(TRows, 1).Value = TextPON.Text
        .Offset(TRows, 2).Value = TextPartNo.Text
        .Offset(TRows, 3).Value = TextSN.Text
        .Offset(TRows, 4).Value = TextItemCondition.Text
        .Offset(TRows, 5).Value = TextDescription.Text
        .Offset(TRows, 6).Value = TextPOP.Text
        .Offset(TRows, 7).Value = TextDR.Text
    End With
        TextVendor.Text = ""
        TextPON.Text = ""
        TextPartNo.Text = ""
        TextSN.Text = ""
        TextItemCondition.Text = ""
        TextDescription.Text = ""
        TextPOP.Text = ""
        TextDR.Text = ""
        Call ComboBoxFill
    Else
    For i = 2 To TRows
     If Trim(Worksheets("Inventory Assets").Cells(i, 1).Value) = (VendorSelect.Text) Then
        Worksheets("Inventory Assets").Cells(i, 1).Value = TextVendor.Text
        Worksheets("Inventory Assets").Cells(i, 2).Value = TextPOP.Text
        Worksheets("Inventory Assets").Cells(i, 3).Value = TextPartNo.Text
        Worksheets("Inventory Assets").Cells(i, 4).Value = TextSN.Text
        Worksheets("Inventory Assets").Cells(i, 5).Value = TextItemCondition.Text
        Worksheets("Inventory Assets").Cells(i, 6).Value = TextDescription.Text
        Worksheets("Inventory Assets").Cells(i, 7).Value = TextPOP.Text
        Worksheets("Inventory Assets").Cells(i, 8).Value = TextDR.Text
        TextVendor.Text = ""
        TextPOP.Text = ""
        TextPartNo.Text = ""
        TextSN.Text = ""
        TextItemCondition.Text = ""
        TextDescription.Text = ""
        TextPOP.Text = ""
        TextDR.Text = ""
        Exit For
    End If
Next i
End If
blnNew = False
End Sub
Private Sub ComboBoxFill()
    TRows = Worksheets("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    VendorSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub

''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    PON.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    PartNoSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    SNSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    ItemCondtionSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    DescriptionSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    POPSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub
''Private Sub ComboBoxFill()
'    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
'    DRSelect.Clear
'    For i = 2 To TRows
'        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
'    Next i
'End Sub

'Rows(7).Select
'Columns(2).Select( para pegar a coluna e fileira

Private Sub Test_Initialize()
    Call prCommBoxFill
    
    SaveButton.Enable = False
    DeleteButton.Enable = False

End Sub

Private Sub VendorSelect_Change()
TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    VendorSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub PONSelect_Change()
 TRows = Workplace("Inventory Assets").Range("B2").CurrentRegion.Rows.Count
    PON.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i

End Sub
Private Sub PartNoSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    PartNoSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub SNSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    SNSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub ItemConditionSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    ItemCondtionSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub DescriptionSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    DescriptionSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub POPSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    POPSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Worksheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub DRSelect_Change()
'Private Sub ComboBoxFill()
    TRows = Workplace("Inventory Assets").Range("A1").CurrentRegion.Rows.Count
    DRSelect.Clear
    For i = 2 To TRows
        ComboBox.AddItem.Workesheets("Inventory Assets").Cells(i, 1).Value
    Next i
End Sub
Private Sub Search_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

End Sub


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Elisame Araújo
      Seguinte,
      Eu tenho uma página de atualização de lista de faixas que estão agrupados por álbum, com os dados vindo através de parâmetros na url como o albumID e detalhes e são retornados dentro de um while.
      O que eu queria é que ele atualizasse todos os campos que fossem editados se eles fossem modificados, mas o que o ocorre é que apenas o último registro é atualizado.
       
      O script que traz as faixas:
       
      <tr> <form class="form-group" method="post" action="includes/funcoes/atualizar-faixas.php"> <?php while($sqlSelect = mysqli_fetch_assoc($result)) { ?> <td><input type="text" value="<?php echo $sqlSelect['trackNumero'] ?>" class="form-control" name="trackNumero"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTitulo'] ?>" class="form-control" name="trackTitulo"></td> <td><input type="text" value="<?php echo $sqlSelect['trackTraducao'] ?>" class="form-control" name="trackTraducao"></td> <td><input type="text" value="<?php echo $sqlSelect['trackID'] ?>" class="form-control" name="trackID" readonly></td> <td><input type="text" value="<?php echo $sqlSelect['albumID'] ?>" class="form-control" name="albumID" readonly></td> </tr> <?php } ?> <tr><a href="albuns-lista.php"><button name="cancelar" id="cancelar" class="btn btn-danger mb-3 mr-1" type="button"> <i class="fa-solid fa-arrow-left"></i> Voltar</button></a></tr> <tr><button name="update" id="update" class="btn btn-success mb-3" type="submit" value=""><i class="fa-solid fa-arrow-up-from-bracket"></i> Atualizar</button></tr> </form>  
       
      E esse é o resultado do código acima:

       
      E este é o código que uso pra fazer o UPDATE no banco de dados:
      <?php require_once "../db/albuns.php"; if(isset($_POST['update'])){ $trackNumero = $_POST['trackNumero']; $trackTitulo = mysqli_real_escape_string($conecta2, $_POST['trackTitulo']); $trackTraducao = $_POST['trackTraducao']; $trackID = $_POST['trackID']; $albumID = $_POST['albumID']; $sqlUpdate = "UPDATE `faixas` SET `trackTitulo` = '$trackTitulo', `trackNumero` = '$trackNumero', `trackTraducao` = '$trackTraducao' WHERE `albumID` = $albumID AND `trackID` = $trackID"; if($atualizaDados = mysqli_query($conecta2, $sqlUpdate) == true){ var_dump($sqlUpdate); //header("location: ../../albuns.php?update=sucesso"); } else { //header("location: ../../albuns.php?update=erro"); } } ?> Como eu faria para que cada linha fosse atualizada individualmente? Já tentei diversos métodos, mas o resultado continua sendo a atualização apenas do último registro no banco, ignorando o restante das atualizações.
    • Por luiz0o
      Estou fazendo um projeto para faculdade, e tenho um formulário, esse formulário precisa enviar as respostas tanto para um banco de dados, mas também tem que enviar para uma API que envia para meu email, mas não sei como fazer essas duas coisas ao mesmo tempo
    • Por rsnow
      Bom dia a todos;
      Estou com problema na leitura de um arquivo .CSV, 
      a coluna que contém número de CNPJ está vindo convertido em notação científica e não estou conseguindo converter para numeração correta
      Ex: 3,04918E+12
      eu quero mostrar o valor que se encontra convertido que no caso é 3049181000139
      porém faço isso manual no próprio excel e isso se torna muito trabalhoso toda vez.
       
      alguma luz?

    • Por michelramos
      tenho a seguinte view local no mysql:
      select orcamentos.id, orcamentos.id_empresa, 'orcamento' as tipo, orcamentos.data_aprovacao, month(orcamentos.data_aprovacao) as mes, year(orcamentos.data_aprovacao) as ano, sum(itens_orcamentos.quantidade) as quantidade, sum(itens_orcamentos.preco_unidade) as preco_unidade, sum(itens_orcamentos.desconto) as desconto, sum(itens_orcamentos.preco_unidade_desconto) as preco_unidade_desconto, orcamentos.desconto_orcamento as desconto_orcamento, sum(itens_orcamentos.preco_total) as preco_total, (orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) as total_sem_desconto, ( (orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from itens_orcamentos where id_orcamento = orcamentos.id)) - (((orcamentos.total_outros_itens+orcamentos.outras_despesas+(select sum(preco_total) from orcamentos where id_orcamento = orcamentos.id))*orcamentos.desconto_orcamento)/100) ) as total_com_desconto from orcamentos inner join itens_orcamentos on orcamentos.id = itens_orcamentos.id_orcamento where orcamentos.id_situacao in (3,5,6) group by orcamentos.id union all select ordens_servico.id, ordens_servico.id_empresa, 'ordem_servico'as tipo, ordens_servico.data_aprovacao, month(ordens_servico.data_aprovacao) as mes, year(ordens_servico.data_aprovacao) as ano, sum(itens_ordem_servico.quantidade) as quantidade, sum(itens_ordem_servico.preco_unidade) as preco_unidade, sum(itens_ordem_servico.desconto) as desconto, sum(itens_ordem_servico.preco_unidade_desconto) as preco_unidade_desconto, ordens_servico.desconto as desconto_ordem_servico, sum(itens_ordem_servico.preco_total) as preco_total, ((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')) as total_sem_desconto, ( (select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto') - (((select sum(preco_total) from itens_ordem_servico where id_ordem_servico = ordens_servico.id and tipo = 'produto')*ordens_servico.desconto)/100) ) as total_com_desconto from ordens_servico inner join itens_ordem_servico on ordens_servico.id = itens_ordem_servico.id_ordem_servico where itens_ordem_servico.tipo = 'produto' and ordens_servico.id_situacao in(3,5,6) group by ordens_servico.id union all /* select nfe.id, nfe.id_empresa, 'nfe'as tipo, nfe.data_emissao, month(nfe.data_emissao) as mes, year(nfe.data_emissao) as ano, itens_nfe.descricao as nome, itens_nfe.id_item, coalesce(itens_nfe.quantidade_tributavel) as quantidade, coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade, null, coalesce(itens_nfe.valor_unitario_tributavel, 0) as preco_unidade_desconto, (valor_unitario_tributavel*quantidade_tributavel) as preco_total from nfe inner join itens_nfe on nfe.id = itens_nfe.id_nfe where itens_nfe.tipo_item = 'produto' and nfe.id_situacao = 3 and nfe.incluir_no_faturamento = 's' */ select nfe.id, nfe.id_empresa, 'nfe'as tipo, nfe.data_emissao, month(nfe.data_emissao) as mes, year(nfe.data_emissao) as ano, null, (nfe.valor_total-nfe.valor_frete) as preco_unidade, null, (nfe.valor_total-nfe.valor_frete) as preco_unidade_desconto, null, (nfe.valor_total-nfe.valor_frete) as preco_total, (nfe.valor_total-nfe.valor_frete) as total_sem_desconto, (nfe.valor_total-nfe.valor_frete) as total_com_desconto from nfe where nfe.id_situacao = 3 and nfe.incluir_no_faturamento = 's' group by nfe.id union all select nfse.id, nfse.id_empresa, 'nfse'as tipo, nfse.data_emissao, month(nfse.data_emissao) as mes, year(nfse.data_emissao) as ano, null as quantidade, (nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade, null, (nfse.valor_servicos-nfse.valor_deducoes) as preco_unidade_desconto, (nfse.valor_servicos-nfse.valor_deducoes) as preco_total, null, (nfse.valor_servicos-nfse.valor_deducoes) as total_sem_desconto, (nfse.valor_servicos-nfse.valor_deducoes) as total_com_desconto from nfse where nfse.id_situacao = 3 and nfse.incluir_no_faturamento = 's' group by nfse.id  
      que, quando coloco no banco online fica da seguinte forma:
      SELECT `orcamentos`.`id` AS `id`, `orcamentos`.`id_empresa` AS `id_empresa`, 'orcamento' AS `tipo`, `orcamentos`.`data_aprovacao` AS `data_aprovacao`, MONTH ( `orcamentos`.`data_aprovacao` ) AS `mes`, YEAR ( `orcamentos`.`data_aprovacao` ) AS `ano`, sum( `itens_orcamentos`.`quantidade` ) AS `quantidade`, sum( `itens_orcamentos`.`preco_unidade` ) AS `preco_unidade`, sum( `itens_orcamentos`.`desconto` ) AS `desconto`, sum( `itens_orcamentos`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`, `orcamentos`.`desconto_orcamento` AS `desconto_orcamento`, sum( `itens_orcamentos`.`preco_total` ) AS `preco_total`, `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) AS `total_sem_desconto`, `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `itens_orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) - ( `orcamentos`.`total_outros_itens` + `orcamentos`.`outras_despesas` + ( SELECT sum( `itens_orcamentos`.`preco_total` ) FROM `orcamentos` WHERE `itens_orcamentos`.`id_orcamento` = `orcamentos`.`id` ) ) * `orcamentos`.`desconto_orcamento` / 100 AS `total_com_desconto` FROM ( `orcamentos` JOIN `itens_orcamentos` ON ( `orcamentos`.`id` = `itens_orcamentos`.`id_orcamento` ) ) WHERE `orcamentos`.`id_situacao` IN ( 3, 5, 6 ) GROUP BY `orcamentos`.`id` UNION ALL SELECT `ordens_servico`.`id` AS `id`, `ordens_servico`.`id_empresa` AS `id_empresa`, 'ordem_servico' AS `tipo`, `ordens_servico`.`data_aprovacao` AS `data_aprovacao`, MONTH ( `ordens_servico`.`data_aprovacao` ) AS `mes`, YEAR ( `ordens_servico`.`data_aprovacao` ) AS `ano`, sum( `itens_ordem_servico`.`quantidade` ) AS `quantidade`, sum( `itens_ordem_servico`.`preco_unidade` ) AS `preco_unidade`, sum( `itens_ordem_servico`.`desconto` ) AS `desconto`, sum( `itens_ordem_servico`.`preco_unidade_desconto` ) AS `preco_unidade_desconto`, `ordens_servico`.`desconto` AS `desconto_ordem_servico`, sum( `itens_ordem_servico`.`preco_total` ) AS `preco_total`, ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) AS `total_sem_desconto`, ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) - ( SELECT sum( `itens_ordem_servico`.`preco_total` ) FROM `itens_ordem_servico` WHERE `itens_ordem_servico`.`id_ordem_servico` = `ordens_servico`.`id` AND `itens_ordem_servico`.`tipo` = 'produto' ) * `ordens_servico`.`desconto` / 100 AS `total_com_desconto` FROM ( `ordens_servico` JOIN `itens_ordem_servico` ON ( `ordens_servico`.`id` = `itens_ordem_servico`.`id_ordem_servico` ) ) WHERE `itens_ordem_servico`.`tipo` = 'produto' AND `ordens_servico`.`id_situacao` IN ( 3, 5, 6 ) GROUP BY `ordens_servico`.`id` UNION ALL SELECT `nfe`.`id` AS `id`, `nfe`.`id_empresa` AS `id_empresa`, 'nfe' AS `tipo`, `nfe`.`data_emissao` AS `data_emissao`, MONTH ( `nfe`.`data_emissao` ) AS `mes`, YEAR ( `nfe`.`data_emissao` ) AS `ano`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_unidade_desconto`, NULL AS `NULL`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `preco_total`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_sem_desconto`, `nfe`.`valor_total` - `nfe`.`valor_frete` AS `total_com_desconto` FROM `nfe` WHERE `nfe`.`id_situacao` = 3 AND `nfe`.`incluir_no_faturamento` = 's' GROUP BY `nfe`.`id` UNION ALL SELECT `nfse`.`id` AS `id`, `nfse`.`id_empresa` AS `id_empresa`, 'nfse' AS `tipo`, `nfse`.`data_emissao` AS `data_emissao`, MONTH ( `nfse`.`data_emissao` ) AS `mes`, YEAR ( `nfse`.`data_emissao` ) AS `ano`, NULL AS `quantidade`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade`, NULL AS `NULL`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_unidade_desconto`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `preco_total`, NULL AS `NULL`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_sem_desconto`, `nfse`.`valor_servicos` - `nfse`.`valor_deducoes` AS `total_com_desconto` FROM `nfse` WHERE `nfse`.`id_situacao` = 3 AND `nfse`.`incluir_no_faturamento` = 's' GROUP BY `nfse`.`id`  
      Não sei se a diferença tem haver com o problema, que é o seguinte:
      - ao puxar um registro x no banco local, o resultado retornado é o seguinte: 
      - id | id_empresa | tipo | data_aprovacao | mes | ano | quantidade | preco_unidade | desconto | preco_unidade_descont | desconto_orcamento | preco_total | total_sem_desconto - 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1283,355000 - ao puxar o mesmo registro no banco online, o resultado retornado é: - 181 1 orcamento 2022-10-04 00:00:00 10 2022 67,00 319,05 0,00 319,05 5,00 1350,90 1350,90 1318,649994 a ultima coluna está apresentando uma discrepência de mais ou menos 35 e não consegui encontrar nada a respeito
       
      obs: ambos os bancos são idênticos, os dados são idênticos.
    • Por Carlos Antoliv
      Senhores, bom dia.
       
      tenho um campo status. Então, a ideia é mudar o status. Consigo alterar o status quando necessário. Daí, pensei em todas vez que alterar, salvar o id do usuário, data, hora, o último status alterado...
      consigo fazer isso com INSERT, depois do UPDATE.
       
      Nao uso trigger. Até tentei fazer, mas não saiu como eu queria.
       
      Então, para os maiores entendedores do assunto, a melhor prática seria a TRIGGER ou INSERT ? Melhor prática ou o que mais funciona na prática ?
       
      Alguém poderia dissertar sobre isso ?
      Vlw..abço
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.