Advertisement
MarceloSousa

Estudo vb

Dec 22nd, 2014
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public Function Gerar() As Boolean
  2. '/* Begin Error Handler
  3. On Error GoTo HandleError
  4. Call mProcStack.EnterProc("Gerar", MODULE_NAME)
  5.  
  6.     Dim Resultado                           As String
  7.     Dim ResultadoLinha                      As String
  8.     Dim Banco                               As New MantemTabelas
  9.     Dim Func                                As New Geral
  10.     Dim oRs                                 As New ADODB.Recordset, oRs2 As New ADODB.Recordset
  11.     Dim cor                                 As String
  12.     Dim SQL                                 As String
  13.     Dim SQLDivulgacao                       As String
  14.     Dim item                                As MSComctlLib.ListItem
  15.     Dim Id_venda                            As Double
  16.     Dim totalDia                            As Double, totalPeriodo, totalVenda As Double
  17.     Dim Data                                As Date, dataProxima As Date, dtInicial As Date, dtFinal As Date
  18.     Dim filtroVendas                        As Double
  19.     Dim Parametros                          As String
  20.     Dim Sintetico                           As Boolean
  21.     Dim Valor                               As Double
  22.     Dim idOperadora                         As Double
  23.    
  24.     Dim Total_Devolucao                     As Double
  25.     Dim Total_Devolucao_Final               As Double
  26.     Dim Total_Devolucao_Dia                 As Double
  27.     Dim Total_Acrescimos                    As Double
  28.     Dim Total_Acrescimos_Final              As Double
  29.     Dim Total_Acrescimos_Dia                As Double
  30.     Dim Total_Devolucao_Acrescimo           As Double
  31.     Dim Total_Devolucao_Acrescimos_Final    As Double
  32.     Dim Total_Devolucao_Acrescimos_Dia      As Double
  33.     Dim Barra                               As Integer
  34.     Dim Valor_Devolucao                     As Double
  35.     Dim ListaDeVendas                       As String
  36.     Dim TotalBarra                          As Integer
  37.     Dim Id_Tipo_Produto                     As Double
  38.     Dim Id_Produto                          As Double
  39.     Dim Id_Vendedor                         As Double
  40.     Dim Id_Fornecedor                       As Double
  41.     Dim Id_Pagamento                        As Double
  42.     Dim oRs3                                As New ADODB.Recordset
  43.     Dim oRsDivulgacao                       As New ADODB.Recordset
  44.     Dim AcrescimoVenda                      As Double
  45.     Dim EscreveFormaPgto                    As Boolean
  46.     Dim TotalPagamento                      As Double
  47.     Dim Id_Anterior                         As String
  48.     Dim sqlHistorico                        As String
  49.     Dim orsHistorico                        As ADODB.Recordset
  50.     Dim numerosAnterior                     As String
  51.    
  52.     idOperadora = Val(cmbOperadora.ItemData(cmbOperadora.ListIndex))
  53.     If Len(txtCliente.Tag) > 0 Then
  54.         If CDbl(txtCliente.Tag) <> Id_Cliente Then Id_Cliente = CDbl(txtCliente.Tag)
  55.     End If
  56.     Id_Vendedor = cmbVendedor.ItemData(cmbVendedor.ListIndex)
  57.     Id_Fornecedor = cmbFornecedor.ItemData(cmbFornecedor.ListIndex)
  58.     Id_Tipo_Produto = cmbTipo.ItemData(cmbTipo.ListIndex)
  59.     Id_Produto = cmbProduto.ItemData(cmbProduto.ListIndex)
  60.     Id_Pagamento = cmbPagamento.ItemData(cmbPagamento.ListIndex)
  61.    
  62.     If Len(txtNotaFiscal1.Text) = 0 Then txtNotaFiscal1.Text = 0
  63.     If Len(txtNotaFiscal2.Text) = 0 Then txtNotaFiscal2.Text = 0
  64.     If Not IsDate(mskDataInicial.Text) Or Len(mskDataInicial.ClipText) = 0 Then
  65.         Func.mensagem "A Data Inicial é inválida.", vbExclamation, "Relatório de Vendas detalhadas"
  66.         Func.Foco mskDataInicial
  67.         Exit Function
  68.     Else
  69.         dtInicial = mskDataInicial.Text
  70.     End If
  71.    
  72.     If Not IsDate(mskDataFinal.Text) Or Len(mskDataFinal.ClipText) = 0 Then
  73.         Func.mensagem "A Data Final é inválida.", vbExclamation, "Relatório de Vendas detalhadas"
  74.         Func.Foco mskDataFinal
  75.         Exit Function
  76.     Else
  77.         dtFinal = mskDataFinal.Text
  78.     End If
  79.    
  80.     'Implantado em 02/01/2012
  81.    If CDate(dtInicial) > CDate(dtFinal) Then
  82.        Func.mensagem "Data Inicial não pode ser maior que a Data Final.", vbCritical, "Relatório de Vendas detalhadas"
  83.        Func.Foco mskDataInicial
  84.        Exit Function
  85.     End If
  86.    
  87.     filtroVendas = cmbFiltro.ItemData(cmbFiltro.ListIndex)    '1-Realizadas; 2-Canceladas; 3 - Devolvidas
  88.    
  89.     If Len(Lista_Empresas) = 0 Then Lista_Empresas = m_Id_Empresa
  90.    
  91.     Gerar = True
  92.  
  93.     lblProgresso.Caption = "Aguarde..."
  94.    
  95.     SQL = "SELECT DISTINCT Item_Venda.ID, Venda.FINALIZADA, VENDA.DATA_HORA_CUPOM, "
  96.     SQL = SQL & " MARCA.DESCRICAO + '/' + ISNULL(CAST(Produto.referencia AS NVARCHAR),'') + '/' + Produto.MODELO as MODELO, "
  97.     SQL = SQL & " Localizador.Rua AS Endereco_Localizador, Servico.DESCRICAO AS Servico, Item_Venda.VLR_UNIT, "
  98.     SQL = SQL & " Cliente.NOME AS Cliente, Venda.DATA AS dataVenda, Venda.NOTA_FISCAL, Vendedor.NOME AS Vendedor, "
  99.     SQL = SQL & " Venda.DESCONTO, Item_Entrada.IMEI, Item_Entrada.ICCID, Item_Venda.ICCID_VENDA, ITEM_VENDA.AVULSO, "
  100.     SQL = SQL & " ISNULL(Item_Venda.NUMERO_CELULAR,'') AS Numero_Celular, "
  101.     SQL = SQL & " ISNULL(Item_Venda.NUMERO_CELULAR_PROVISORIO,'') AS NUMERO_CELULAR_PROVISORIO, "
  102.     SQL = SQL & " ISNULL(Item_Venda.Usuario_Autorizacao,'') AS Usuario_Autorizacao, "
  103.     SQL = SQL & " Item_Venda.DESCONTO AS item_desconto, "
  104.     SQL = SQL & " dbo.FN_SOMA_DESCONTO_SUBSIDIADO_ITEM(ITEM_Venda.ID) As DESCONTO_SUBSIDIADO_ITEM, "
  105.     SQL = SQL & " dbo.FN_SOMA_DESCONTO_SUBSIDIADO(Venda.ID) As DESCONTO_SUBSIDIADO, Venda.OBS AS OBS_Venda, "
  106.     SQL = SQL & " Venda.ID AS Id_Venda, Item_Entrada.NUMERO_SERIE, Venda.QTD_PARCELAS, Venda.RETENCAO, "
  107.     SQL = SQL & " FRANQUIA.DESCRICAO as PLANO, Empresa.Nome_Fantasia as Nome_Empresa, Operadora.Id AS Id_Operadora, "
  108.     SQL = SQL & " Operadora.Descricao AS Nome_Operadora, Item_Venda.Excluido as ItemExcluido, Venda.VLR_TOTAL as VLR_TOTAL, "
  109.     SQL = SQL & " Venda.Acrescimo, Isnull(Item_Venda.Acrescimo,0) AS Acrescimo_Item_Venda, Item_Venda.OBS, "
  110.     SQL = SQL & " Servico_Vinculado.Descricao AS Servico_Vinculado, "
  111.    
  112.     SQL = SQL & " ISNULL(ITEM_VENDA_SERVICO.EXCLUIDO,0) AS EXCLUIDO_SERVICO_VINCULADO "
  113.    
  114.     If Id_Pagamento > 0 Then SQL = SQL & " , PAGAMENTO_VENDA.ID_TIPO_PAGAMENTO,TIPO_PAGAMENTO.DESCRICAO"
  115.     SQL = SQL & " FROM ENTRADA INNER JOIN ITEM_ENTRADA ON ENTRADA.ID = ITEM_ENTRADA.ID_ENTRADA LEFT JOIN LOCALIZADOR ON LOCALIZADOR.ID = ITEM_ENTRADA.ID_LOCALIZADOR INNER JOIN PRODUTO ON PRODUTO.ID = ITEM_ENTRADA.ID_PRODUTO INNER JOIN MARCA ON PRODUTO.ID_MARCA = MARCA.ID RIGHT OUTER JOIN PLANO INNER JOIN FRANQUIA ON PLANO.ID = FRANQUIA.ID_PLANO INNER JOIN OPERADORA ON OPERADORA.ID = PLANO.ID_OPERADORA RIGHT OUTER JOIN ITEM_VENDA INNER JOIN EMPRESA ON EMPRESA.ID = ITEM_VENDA.ID_EMPRESA LEFT OUTER JOIN SERVICO ON ITEM_VENDA.ID_SERVICO = SERVICO.ID ON FRANQUIA.ID = ITEM_VENDA.ID_FRANQUIA ON ITEM_ENTRADA.ID = ITEM_VENDA.ID_ITEM_ENTRADA LEFT OUTER JOIN VENDA ON ITEM_VENDA.ID_VENDA = VENDA.ID LEFT OUTER JOIN CLIENTE ON VENDA.ID_CLIENTE = CLIENTE.ID LEFT OUTER JOIN VENDEDOR ON VENDA.ID_VENDEDOR = VENDEDOR.ID"
  116.     SQL = SQL & " LEFT JOIN VENDA VENDA_SERVICO ON VENDA_SERVICO.ID_ITEM_VENDA = ITEM_VENDA.ID LEFT JOIN ITEM_VENDA ITEM_VENDA_SERVICO ON ITEM_VENDA_SERVICO.ID_VENDA = VENDA_SERVICO.ID LEFT JOIN SERVICO SERVICO_VINCULADO ON SERVICO_VINCULADO.ID = ITEM_VENDA_SERVICO.ID_SERVICO"
  117.     If Id_Pagamento > 0 Then SQL = SQL & " INNER JOIN PAGAMENTO_VENDA ON PAGAMENTO_VENDA.ID_VENDA = VENDA.ID INNER JOIN TIPO_PAGAMENTO ON PAGAMENTO_VENDA.ID_TIPO_PAGAMENTO  = TIPO_PAGAMENTO.ID"
  118.    
  119.     SQL = SQL & " WHERE (Venda.Data Between CDate('" & dtInicial & "') And CDate('" & dtFinal & " 23:59:59')) AND Venda.Tipo = 'V' AND VENDA.ID_ITEM_VENDA IS NULL"
  120.    
  121.     If CInt(filtroVendas) = 1 Then
  122.         SQL = SQL & " AND Venda.Excluido = 0 AND (Item_Venda.Excluido = 0 OR Item_Venda.Excluido = 1 OR Item_Venda.Excluido = 3)"
  123.     ElseIf CInt(filtroVendas) = 2 Then
  124.         SQL = SQL & " AND Venda.Excluido = 1"
  125.     ElseIf CInt(filtroVendas) = 3 Then
  126.         SQL = SQL & " AND Item_venda.Excluido = 3"
  127.     End If
  128.     If idOperadora <> 0 Then SQL = SQL & " AND (Plano.Id_Operadora = " & idOperadora & " OR Plano.Id_Operadora IS NULL) "
  129.     If Id_Cliente > 0 Then SQL = SQL & " AND (Venda.Id_Cliente = " & Id_Cliente & ") "
  130.     If Id_Vendedor > 0 Then SQL = SQL & " AND (Venda.Id_Vendedor = " & Id_Vendedor & ") "
  131.     If Id_Fornecedor > 0 Then SQL = SQL & " AND (Entrada.Id_Fornecedor = " & Id_Fornecedor & ") "
  132.     If Id_Tipo_Produto > 0 Then SQL = SQL & " AND (Produto.Id_Tipo_Produto = " & Id_Tipo_Produto & ") "
  133.     If Id_Produto > 0 Then SQL = SQL & " AND (Item_Entrada.Id_Produto = " & Id_Produto & ") "
  134.     If Id_Pagamento > 0 Then SQL = SQL & " AND (PAGAMENTO_VENDA.ID_TIPO_PAGAMENTO =  " & Id_Pagamento & ") "
  135.     SQL = SQL & " AND Venda.Id_Empresa IN (" & Lista_Empresas & ") "
  136.     'Vendas sem nota
  137.    If CDbl(txtNotaFiscal1.Text) = 0 And CDbl(txtNotaFiscal2.Text) = 0 Then
  138.         SQL = SQL & " AND  VENDA.NOTA_FISCAL =' '"
  139.     'Vendas com nota
  140.    ElseIf CDbl(txtNotaFiscal1.Text) > 0 And (txtNotaFiscal2.Text) > 0 Then
  141.         SQL = SQL & " AND(VENDA.NOTA_FISCAL >= '" & Func.Formata_Numero(txtNotaFiscal1.Text, 6) & "' AND VENDA.NOTA_FISCAL <='" & Func.Formata_Numero(txtNotaFiscal2.Text, 6) & "')  "
  142.     End If
  143.     SQL = SQL & " ORDER BY Empresa.Nome_Fantasia, Venda.Data, Venda.Nota_Fiscal, Venda.Id, Item_Entrada.ICCID, Cliente.NOME, Operadora.Descricao, Item_Venda.VLR_UNIT"
  144.     Set oRs = Banco.Executar(SQL)
  145.    
  146.     ' Se fim de arquivo
  147.    If oRs.EOF Then
  148.         Func.mensagem "Nenhuma venda nesse período.", vbInformation, "Relatório de Vendas detalhadas"
  149.         Gerar = False
  150.         Exit Function
  151.     End If
  152.    
  153.     Resultado = Resultado & "<HTML>"
  154.     Resultado = Resultado & "<HEAD>"
  155.     Resultado = Resultado & "<title>Relatório de Vendas Detalhadas</title>"
  156.     Resultado = Resultado & "<link rel='stylesheet' type='text/css' href='MPro.css'>"
  157.     Resultado = Resultado & "</HEAD>"
  158.     Resultado = Resultado & "<body>"
  159.    
  160.     If CDbl(txtNotaFiscal1.Text) >= 0 And CDbl(txtNotaFiscal2.Text) > 0 Then
  161.         Parametros = "Intervalo de Nota Fiscal: " & Func.Formata_Numero(txtNotaFiscal1.Text, 6) & " a " & Func.Formata_Numero(txtNotaFiscal2.Text, 6)
  162.     Else
  163.         Parametros = "Data Inicial: " & mskDataInicial.Text & "|Data Final: " & mskDataFinal
  164.         Parametros = Parametros & "|Operadora: " & cmbOperadora.Text
  165.     End If
  166.     If Check.Value = vbChecked Then
  167.         Parametros = Parametros & "|Sintético"
  168.         Sintetico = True
  169.     Else
  170.         Parametros = Parametros & "|Analítico"
  171.         Sintetico = False
  172.     End If
  173.     Resultado = Resultado & Func.Titulo_Relatorio("Relatório de Vendas Detalhadas", Banco.Obtem_Campo("Empresa", "Nome_Fantasia", "id=" & m_Id_Empresa), m_Usuario, Parametros)
  174.    
  175.     Total_Devolucao = 0
  176.     ListaDeVendas = ""
  177.     Data = "01/01/1900"
  178.     Resultado = Resultado & "<TABLE cellSpacing='0' cellPadding='3' width='100%' border='0'>"
  179.     TotalBarra = CInt(oRs.RecordCount)
  180.     Barra = 1
  181.     ProgressBar.Min = 1
  182.     ProgressBar.Max = TotalBarra + 1
  183.     ProgressBar.Value = 1
  184.     lblProgresso.Caption = "0% Concluído"
  185.     Cancelar = False
  186.     Func.Habilita cmdCancelar
  187.     ResultadoLinha = ""
  188.     Do Until oRs.EOF
  189.         DoEvents
  190.        
  191.         ' Quando mudar o dia, escreve o Cabeçalho
  192.        If CDate(oRs("dataVenda")) <> Data Then
  193.            
  194.             ' Quando mudar o dia e já tiver escrito, totalizo o dia anterior
  195.            If Data <> CDate("01/01/1900") Then
  196.                 ResultadoLinha = ResultadoLinha & "<tr>"
  197.                 ResultadoLinha = ResultadoLinha & "   <td colspan='8' bgcolor='#000000' heigth='2'></td>"
  198.                 ResultadoLinha = ResultadoLinha & "</tr>"
  199.                 ResultadoLinha = ResultadoLinha & "<tr>"
  200.                 ResultadoLinha = ResultadoLinha & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total de Vendas: </b></td>"
  201.                 ResultadoLinha = ResultadoLinha & "   <td align='right'>R$ " & FormatNumber(totalDia, 2) & "</td>"
  202.                 ResultadoLinha = ResultadoLinha & "</tr>"
  203.                 ResultadoLinha = ResultadoLinha & "<tr>"
  204.                 ResultadoLinha = ResultadoLinha & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total de Devoluções: </b></td>"
  205.                 ResultadoLinha = ResultadoLinha & "   <td align='right'>R$ " & FormatNumber(Total_Devolucao_Dia, 2) & "</td>"
  206.                 ResultadoLinha = ResultadoLinha & "</tr>"
  207.                 ResultadoLinha = ResultadoLinha & "<tr>"
  208.                 ResultadoLinha = ResultadoLinha & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total de Acréscimos: </b></td>"
  209.                 ResultadoLinha = ResultadoLinha & "   <td align='right'>R$ " & FormatNumber(Total_Acrescimos_Dia, 2) & "</td>"
  210.                 ResultadoLinha = ResultadoLinha & "</tr>"
  211.                 ResultadoLinha = ResultadoLinha & "<tr>"
  212.                 ResultadoLinha = ResultadoLinha & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total de Devoluções de Acréscimos: </b></td>"
  213.                 ResultadoLinha = ResultadoLinha & "   <td align='right'>R$ " & FormatNumber(Total_Devolucao_Acrescimos_Dia, 2) & "</td>"
  214.                 ResultadoLinha = ResultadoLinha & "</tr>"
  215.                 ResultadoLinha = ResultadoLinha & "<tr>"
  216.                 ResultadoLinha = ResultadoLinha & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total do dia " & Data & ": </b></td>"
  217.                 ResultadoLinha = ResultadoLinha & "   <td align='right'>R$ " & FormatNumber((totalDia + Total_Acrescimos_Dia) - Total_Devolucao_Dia, 2) & "</td>"
  218.                 ResultadoLinha = ResultadoLinha & "</tr>"
  219.             End If
  220.            
  221.             ' Tarefas ao mudar o dia
  222.            Total_Devolucao_Final = Total_Devolucao_Final + Total_Devolucao_Dia
  223.             Total_Acrescimos_Final = Total_Acrescimos_Final + Total_Acrescimos_Dia
  224.             Total_Devolucao_Acrescimos_Final = Total_Devolucao_Acrescimos_Final + Total_Devolucao_Acrescimos_Dia
  225.             totalPeriodo = totalPeriodo + totalDia
  226.             totalDia = 0
  227.             Total_Acrescimos_Dia = 0
  228.             Total_Devolucao_Dia = 0
  229.             Total_Devolucao_Acrescimos_Dia = 0
  230.            
  231.             ResultadoLinha = ResultadoLinha & "<tr bgcolor='#FFFFDD'>"
  232.             ResultadoLinha = ResultadoLinha & "   <td colspan='8'><b>Data: </b>" & Func.Formata_Data_Interface(oRs("dataVenda")) & "</td>"
  233.             ResultadoLinha = ResultadoLinha & "</tr>"
  234.             ResultadoLinha = ResultadoLinha & "<tr>"
  235.             ResultadoLinha = ResultadoLinha & "   <td colspan='8' bgcolor='#000000' heigth='2'></td>"
  236.             ResultadoLinha = ResultadoLinha & "</tr>"
  237.             Data = oRs("dataVenda")
  238.         End If
  239.        
  240.         ' Quando mudar a venda, escreve o Cabeçalho
  241.        If CDbl(oRs("Id_venda")) <> Id_venda Then
  242.            
  243.             ' Tarefas ao mudar a Venda
  244.            Total_Acrescimos = 0
  245.             Total_Devolucao = 0
  246.             Total_Devolucao_Acrescimo = 0
  247.            
  248.            
  249.             ' Pegar o Total da Venda
  250.            totalVenda = (CDbl(oRs("VLR_TOTAL")) - CDbl(oRs("DESCONTO")))
  251. '            SQL = "SELECT VLR_UNIT, DESCONTO, EXCLUIDO FROM ITEM_VENDA WHERE ID_VENDA = " & oRs("ID_VENDA")
  252. '            Set oRs3 = Banco.Executar(SQL)
  253. '            totalVenda = 0
  254. '            Do Until oRs3.EOF
  255. '                If oRs3("EXCLUIDO") = 0 Or oRs3("EXCLUIDO") = 3 Or CInt(filtroVendas) = 2 Then
  256. '                    totalVenda = totalVenda + (CDbl(oRs3("VLR_UNIT")) - CDbl(oRs3("DESCONTO")))
  257. '                End If
  258. '                oRs3.MoveNext
  259. '            Loop
  260. '            oRs3.Close
  261.                        
  262.             Id_venda = oRs("Id_venda")
  263.             ListaDeVendas = ListaDeVendas & Id_venda & ","
  264.        
  265.             ResultadoLinha = ResultadoLinha & "<tr>"
  266.             ResultadoLinha = ResultadoLinha & "   <td colspan='8' bgcolor='#000000' heigth='2'></td>"
  267.             ResultadoLinha = ResultadoLinha & "</tr>"
  268.             ResultadoLinha = ResultadoLinha & "<tr>"
  269.             ResultadoLinha = ResultadoLinha & "   <td colspan='8' bgcolor='#ffffff' heigth='1'></td>"
  270.             ResultadoLinha = ResultadoLinha & "</tr>"
  271.        
  272.             If Sintetico Then
  273.                 ResultadoLinha = ResultadoLinha & "<tr><td colspan='8'>"
  274.             Else
  275.                 ResultadoLinha = ResultadoLinha & "<tr bgcolor='#F0F0F0'><td colspan='8'>"
  276.             End If
  277.            
  278.             ResultadoLinha = ResultadoLinha & "<table width='100%' align='left' cellpadding='3' cellspacing='0' border='0'>"
  279.             ResultadoLinha = ResultadoLinha & "<tr>"
  280.             ResultadoLinha = ResultadoLinha & "   <td width='30%'><b>Revenda: </b>" & oRs("Nome_Empresa") & "</td>"
  281.             If IsNull(oRs("Data_Hora_Cupom")) Then
  282.                 ResultadoLinha = ResultadoLinha & "   <td width='15%'><b>Venda:</b> " & IIf(Len(oRs("Nota_Fiscal")) = 0, oRs("Id"), oRs("Nota_Fiscal")) & "</td>"
  283.             Else
  284.                 ResultadoLinha = ResultadoLinha & "   <td width='15%'><b>Venda:</b> " & IIf(Len(oRs("Nota_Fiscal")) = 0, oRs("Id"), oRs("Nota_Fiscal")) & "&nbsp;&nbsp;" & Func.Formata_Numero(Hour(oRs("Data_Hora_Cupom")), 2) & ":" & Func.Formata_Numero(Minute(oRs("Data_Hora_Cupom")), 2) & ":" & Func.Formata_Numero(Second(oRs("Data_Hora_Cupom")), 2) & "</td>"
  285.             End If
  286.             ResultadoLinha = ResultadoLinha & "   <td width='25%'><b>Cliente:</b> " & oRs("Cliente") & "</td>"
  287.             ResultadoLinha = ResultadoLinha & "   <td width='30%' align='right'><b>Vendedor:</b> " & oRs("Vendedor") & "</td>"
  288.             ResultadoLinha = ResultadoLinha & "</tr>"
  289.             ResultadoLinha = ResultadoLinha & "<tr>"
  290.             If Not IsNull(oRs("Retencao")) Then
  291.                 ResultadoLinha = ResultadoLinha & "   <td colspan='2'><b>Retenção:</b>&nbsp;R$&nbsp;" & FormatNumber(oRs("Retencao"), 2)
  292.             Else
  293.                 ResultadoLinha = ResultadoLinha & "   <td colspan='2'><b>Retenção:</b>&nbsp;R$&nbsp;0,00"
  294.             End If
  295.            
  296.             If oRs("Finalizada") = 0 Then
  297.                 ResultadoLinha = ResultadoLinha & "<font color='red'><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Não finalizada *</b></font> </td>"
  298.             Else
  299.                 ResultadoLinha = ResultadoLinha & "</td>"
  300.             End If
  301.            
  302.             If Not IsNull(oRs("Acrescimo")) Then
  303.                 ResultadoLinha = ResultadoLinha & "   <td id='acrescimo_" & oRs("Id_Venda") & "'><b>Acréscimos: </b>&nbsp;R$&nbsp;" & FormatNumber(oRs("Acrescimo"), 2) & "</td>"
  304.                 Total_Acrescimos = CDbl(oRs("Acrescimo"))
  305.                 Total_Acrescimos_Dia = Total_Acrescimos_Dia + Total_Acrescimos
  306.                 AcrescimoVenda = CDbl(oRs("Acrescimo"))
  307.             Else
  308.                 ResultadoLinha = ResultadoLinha & "   <td><b>Acréscimos:</b>&nbsp;0,00% (R$ 0,00)</td>"
  309.                 AcrescimoVenda = 0
  310.             End If
  311.            
  312.             ResultadoLinha = ResultadoLinha & "   <td align='right' id='total_" & oRs("Id_Venda") & "'><b>Total: </b>&nbsp;R$&nbsp;" & FormatNumber(CDbl(totalVenda + AcrescimoVenda), 2)
  313.             ResultadoLinha = ResultadoLinha & "   </td>"
  314.             ResultadoLinha = ResultadoLinha & "</tr>"
  315.             ResultadoLinha = ResultadoLinha & "<tr>"
  316.             ResultadoLinha = ResultadoLinha & "   <td colspan='2'>"
  317.             If IsNull(oRs("Obs_Venda")) Then
  318.                 ResultadoLinha = ResultadoLinha & "&nbsp;"
  319.             Else
  320.                 If oRs("Obs_Venda") = "" Then
  321.                     ResultadoLinha = ResultadoLinha & "&nbsp;"
  322.                 Else
  323.                     ResultadoLinha = ResultadoLinha & "<b>Observações:</b> " & oRs("Obs_Venda")
  324.                 End If
  325.             End If
  326.            
  327.             '-------------------------------------------------------------------------------------
  328.            'Adiciona linha para mostrar oferta------atualização 10/10/2013-------Petrony Pimentel
  329.            SQLDivulgacao = "SELECT DESCRICAO FROM DIVULGACAO_VENDA "
  330.             SQLDivulgacao = SQLDivulgacao & "INNER JOIN DIVULGACAO ON DIVULGACAO.ID = DIVULGACAO_VENDA.ID_DIVULGACAO "
  331.             SQLDivulgacao = SQLDivulgacao & "WHERE DIVULGACAO_VENDA.ID_VENDA = " & oRs("Id_Venda")
  332.             Set oRsDivulgacao = Banco.Executar(SQLDivulgacao)
  333.             If Not oRsDivulgacao.EOF Then
  334.                 ResultadoLinha = ResultadoLinha & "<p style='margin-top:7px;'><b>Divulgação:</b> " & oRsDivulgacao("DESCRICAO") & "</p> "
  335.             End If
  336.             oRsDivulgacao.Close
  337.             '-------------------------------------------------------------------------------------
  338.            
  339.             ResultadoLinha = ResultadoLinha & "   </td>"
  340.             ResultadoLinha = ResultadoLinha & "   <td align='left'><b>Desc. da Loja:</b>&nbsp;R$&nbsp;" & FormatNumber(oRs("DESCONTO") - oRs("DESCONTO_SUBSIDIADO"), 2)
  341.             If Len(oRs("Usuario_Autorizacao")) > 0 Then
  342.                 If InStr(1, oRs("Usuario_Autorizacao"), "/") > 0 Then
  343.                     If Len(Mid(oRs("Usuario_Autorizacao"), InStr(1, oRs("Usuario_Autorizacao"), "/") + 1, Len(oRs("Usuario_Autorizacao")))) > 1 Then
  344.                         ResultadoLinha = ResultadoLinha & "<br>(Desconto com autorização)"
  345.                     End If
  346.                 End If
  347.             End If
  348.             ResultadoLinha = ResultadoLinha & "</td>"
  349.             ResultadoLinha = ResultadoLinha & "   <td align='right'><b>Desc. Subsidiado:</b>&nbsp;R$&nbsp;" & FormatNumber(oRs("DESCONTO_SUBSIDIADO"), 2) & "</td>"
  350.             ResultadoLinha = ResultadoLinha & "</tr>"
  351.            
  352.             ResultadoLinha = ResultadoLinha & "</table>"
  353.             ResultadoLinha = ResultadoLinha & "</td></tr>"
  354.            
  355.             totalDia = totalDia + totalVenda    ' + Total_Acrescimos
  356.            
  357.             If Not Sintetico Then
  358.                 If Not IsNull(oRs("Servico")) Then
  359.                     ResultadoLinha = ResultadoLinha & "<tr>"
  360.                     ResultadoLinha = ResultadoLinha & "    <td width='20%'><b>Serviço</b></td>"
  361.                     ResultadoLinha = ResultadoLinha & "    <td width='20%'></td>"
  362.                     ResultadoLinha = ResultadoLinha & "    <td width='10%'></td>"
  363.                     ResultadoLinha = ResultadoLinha & "    <td width='10%'></td>"
  364.                     ResultadoLinha = ResultadoLinha & "    <td width='10%' align='left'><b>Obs</b></td>"
  365.                     ResultadoLinha = ResultadoLinha & "    <td width='10%' align='right'><b>Valor</b></td>"
  366.                     ResultadoLinha = ResultadoLinha & "    <td width='10%' align='right'><b>Desconto</b></td>"
  367.                     ResultadoLinha = ResultadoLinha & "    <td width='10%' align='right'><b>Total</b></td>"
  368.                     ResultadoLinha = ResultadoLinha & "</tr>"
  369.                 Else
  370.                     ResultadoLinha = ResultadoLinha & "<tr>"
  371.                     ResultadoLinha = ResultadoLinha & "    <td width='20%'><b>Marca/Referência/Produto</b></td>"
  372.                     ResultadoLinha = ResultadoLinha & "    <td width='20%'><b>Localizador</b></td>"
  373.                     ResultadoLinha = ResultadoLinha & "    <td width='10%'><b>Plano:Operadora</b></td>"
  374.                     ResultadoLinha = ResultadoLinha & "    <td width='17%'><b>Nº Série</b></td>"
  375.                     ResultadoLinha = ResultadoLinha & "    <td width='15%' align='left'><b>Obs</b></td>"
  376.                     ResultadoLinha = ResultadoLinha & "    <td width='6%' align='right'><b>Valor</b></td>"
  377.                     ResultadoLinha = ResultadoLinha & "    <td width='6%' align='right'><b>Desconto</b></td>"
  378.                     ResultadoLinha = ResultadoLinha & "    <td width='6%' align='right'><b>Total</b></td>"
  379.                     ResultadoLinha = ResultadoLinha & "</tr>"
  380.                 End If
  381.                 ResultadoLinha = ResultadoLinha & "<tr>"
  382.                 ResultadoLinha = ResultadoLinha & "   <td colspan='8' bgcolor='#cccccc' heigth='1'></td>"
  383.                 ResultadoLinha = ResultadoLinha & "</tr>"
  384.             End If
  385.         End If
  386.        
  387.         ' Tiro o valor do item devolvido
  388.        If oRs("ItemExcluido") = "3" Then
  389.             Total_Devolucao = (CDbl(oRs("Vlr_Unit")) + (CDbl(oRs("Acrescimo_Item_Venda")) - CDbl(oRs("item_Desconto"))))
  390.             If Not IsNull(oRs("Acrescimo")) Then
  391.                 If CDbl(oRs("acrescimo")) > 0 Then
  392.                     'Total_Devolucao_Acrescimo = Total_Devolucao_Acrescimo + (Total_Devolucao * (CDbl(oRs("Acrescimo")) / 100))
  393.                    'Total_Devolucao = Total_Devolucao + (Total_Devolucao * (CDbl(oRs("Acrescimo")) / 100))
  394.                End If
  395.             End If
  396.             Total_Devolucao_Dia = Total_Devolucao_Dia + Total_Devolucao
  397.             'Total_Devolucao_Acrescimos_Dia = Total_Devolucao_Acrescimos_Dia + Total_Devolucao_Acrescimo
  398.        End If
  399.        
  400.         ' Escreve os Itens da Venda
  401.        If Not Sintetico Then
  402.             'Se o Id_Anterior for igual o oRs("Id"), escrevo somente o serviço vinculado
  403.            If Id_Anterior <> oRs("Id") Then
  404.                 ResultadoLinha = ResultadoLinha & "<tr "
  405.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & " bgcolor='#ffffff' style='text-decoration: line-through;' "
  406.                 ResultadoLinha = ResultadoLinha & ">"
  407.                 If Not IsNull(oRs("servico")) Then
  408.  
  409.                     'Verifica se esta removido pela tela de alterar venda, se estiver coloca na cor vermelha
  410.                    If oRs("itemEXCLUIDO") = 0 Then
  411. '
  412. '                        If oRs("Numero_Celular") = "7777777777" Then
  413. '                            MsgBox "ok"
  414. '                        End If
  415.  
  416.                         'Escreve o historico de numeros que foram alterados
  417.                        sqlHistorico = "SELECT  NUMERO_CELULAR_ANTIGO FROM HISTORICO_ITEM_VENDA WHERE ID_ITEM_VENDA = " & oRs("ID") & " ORDER BY DATA_INCLUSAO DESC"
  418.                         Set orsHistorico = Banco.Executar(sqlHistorico)
  419.                         If Not orsHistorico.EOF Then
  420.                             While Not orsHistorico.EOF
  421.                                 If Len(Trim(numerosAnterior)) = 0 Then
  422.                                     numerosAnterior = "Nº Anterior(" & orsHistorico("NUMERO_CELULAR_ANTIGO")
  423.                                 Else
  424.                                     numerosAnterior = numerosAnterior & ", " & orsHistorico("NUMERO_CELULAR_ANTIGO")
  425.                                 End If
  426.                                 orsHistorico.MoveNext
  427.                             Wend
  428.                             numerosAnterior = numerosAnterior & ")"
  429.                         End If
  430.                         orsHistorico.Close
  431.                        
  432.                         ResultadoLinha = ResultadoLinha & "<td colspan='2'>" & oRs("Servico") & "</td>"
  433.                         ResultadoLinha = ResultadoLinha & "<td colspan='2'>Numero do Celular: " & oRs("Numero_Celular") & " " & numerosAnterior & "</td>"
  434.                         'ResultadoLinha = ResultadoLinha & "<td colspan='5'><font color='green'>SERVIÇO VINCULADO: " & oRs("Servico_Vinculado") & "</font>"
  435.                    ElseIf oRs("itemEXCLUIDO") = 1 Then
  436.                         ResultadoLinha = ResultadoLinha & "<td colspan='2' style='text-decoration: line-through;' >" & oRs("Servico") & "</td>"
  437.                         ResultadoLinha = ResultadoLinha & "<td colspan='2' style='text-decoration: line-through;' >Numero do Celular: " & oRs("Numero_Celular") & "</td>"
  438.                         'ResultadoLinha = ResultadoLinha & "<td colspan='5' style='text-decoration: line-through;' ><font bgcolor='#cccccc'>SERVIÇO VINCULADO REMOVIDO: " & oRs("Servico_Vinculado") & "</font>"
  439.                    End If
  440.                    
  441.                     numerosAnterior = ""
  442.                    
  443.                 Else
  444.                     ResultadoLinha = ResultadoLinha & "<td>"
  445.                     If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "<i>DEVOLVIDO - "
  446.                     If Not IsNull(oRs("Modelo")) Then ResultadoLinha = ResultadoLinha & oRs("Modelo")
  447.                     If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "</i>"
  448.                     ResultadoLinha = ResultadoLinha & "</td>"
  449.                    
  450.                     ResultadoLinha = ResultadoLinha & "<td>"
  451.                     If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "<i>"
  452.                     ResultadoLinha = ResultadoLinha & oRs("Endereco_Localizador")
  453.                     If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "</i>"
  454.                     ResultadoLinha = ResultadoLinha & "</td>"
  455.                    
  456.                     ResultadoLinha = ResultadoLinha & "<td><div style='width: 150px;' class='reticencias'><nobr>"
  457.                     If Not IsNull(oRs("Plano")) Then
  458.                         If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "<i>"
  459.                         ResultadoLinha = ResultadoLinha & Trim(Replace(oRs("Plano"), "BRASIL", "")) & ": <b>" & oRs("Nome_Operadora") & "</b>"
  460.                         If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "</i>"
  461.                     End If
  462.                     ResultadoLinha = ResultadoLinha & "</nobr></div></td>"
  463.                    
  464.                     ResultadoLinha = ResultadoLinha & "    <td>"
  465.                     If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "<i>"
  466.                     If Not IsNull(oRs("iccid")) Then
  467.                         ResultadoLinha = ResultadoLinha & oRs("iccid") & " (" & oRs("Numero_Celular") & ") "
  468.                         If Len(oRs("Numero_Celular_Provisorio")) > 0 Then
  469.                             ResultadoLinha = ResultadoLinha & "<br /><font color=""red"">Nº Provisório (" & oRs("Numero_Celular_Provisorio") & ")</font>"
  470.                         End If
  471.                        
  472.                         'Escreve o historico de numeros que foram alterados
  473.                        sqlHistorico = "SELECT  NUMERO_CELULAR_ANTIGO FROM HISTORICO_ITEM_VENDA WHERE ID_ITEM_VENDA = " & oRs("ID") & " ORDER BY DATA_INCLUSAO DESC"
  474.                         Set orsHistorico = Banco.Executar(sqlHistorico)
  475.                         If Not orsHistorico.EOF Then
  476.                             While Not orsHistorico.EOF
  477.                                 ResultadoLinha = ResultadoLinha & "<br /><font style='text-decoration: line-through;' >Nº Anterior (" & orsHistorico("NUMERO_CELULAR_ANTIGO") & ")</font>"
  478.                                 orsHistorico.MoveNext
  479.                             Wend
  480.                         End If
  481.                         orsHistorico.Close
  482.                        
  483.                     ElseIf Not IsNull(oRs("imei")) Then
  484.                         ResultadoLinha = ResultadoLinha & oRs("imei")
  485.                         If Len(oRs("ICCID_VENDA")) > 0 And oRs("Avulso") = "1" Then
  486.                             ResultadoLinha = ResultadoLinha & "<br /><font color=""blue""><u>" & oRs("ICCID_VENDA") & " (" & oRs("Numero_Celular") & ")</u></font>"
  487.                         End If
  488.                         If Banco.Obtem_Campo("OPERADORA", "Tecnologia", "Id = " & oRs("Id_Operadora")) = "2" Then
  489.                             ResultadoLinha = ResultadoLinha & " (" & oRs("Numero_Celular") & ") "
  490.                         End If
  491.                        
  492.                         'Escreve o historico de numeros que foram alterados
  493.                        sqlHistorico = "SELECT  NUMERO_CELULAR_ANTIGO FROM HISTORICO_ITEM_VENDA WHERE ID_ITEM_VENDA = " & oRs("ID") & " ORDER BY DATA_INCLUSAO DESC"
  494.                         Set orsHistorico = Banco.Executar(sqlHistorico)
  495.                         If Not orsHistorico.EOF Then
  496.                             While Not orsHistorico.EOF
  497.                                 ResultadoLinha = ResultadoLinha & "<br /><font style='text-decoration: line-through;' >Nº Anterior (" & orsHistorico("NUMERO_CELULAR_ANTIGO") & ")</font>"
  498.                                 orsHistorico.MoveNext
  499.                             Wend
  500.                         End If
  501.                         orsHistorico.Close
  502.                        
  503.                         If Len(oRs("Numero_Celular_Provisorio")) > 0 Then
  504.                             ResultadoLinha = ResultadoLinha & "<br /><font color=""red"">Nº Provisório (" & oRs("Numero_Celular_Provisorio") & ")</font>"
  505.                         End If
  506.                     ElseIf Not IsNull(oRs("Numero_Serie")) Then
  507.                         ResultadoLinha = ResultadoLinha & oRs("Numero_Serie")
  508.                     End If
  509.                     If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "</i>"
  510.                     ResultadoLinha = ResultadoLinha & "    </td>"
  511.                 End If
  512.                
  513.                 ResultadoLinha = ResultadoLinha & "    <td align='left'>" & oRs("obs") & "</td>"
  514.                
  515.                 ResultadoLinha = ResultadoLinha & "    <td align='right'>"
  516.                 If oRs("ItemExcluido") = "3" Then
  517.                     ResultadoLinha = ResultadoLinha & "<i>("
  518.                 End If
  519.                 ResultadoLinha = ResultadoLinha & FormatNumber(oRs("Vlr_Unit"), 2)
  520.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & ")</i>"
  521.                 ResultadoLinha = ResultadoLinha & "    </td>"
  522.                 ResultadoLinha = ResultadoLinha & "    <td align='right'"
  523.                 If Len(oRs("Usuario_Autorizacao")) > 0 Then
  524.                     If Len(Mid(oRs("Usuario_Autorizacao"), InStr(1, oRs("Usuario_Autorizacao"), "/"), Len(oRs("Usuario_Autorizacao")))) > 1 Then
  525.                         ResultadoLinha = ResultadoLinha & " title='(Autorizado Por: " & Func.Formata_Nome(Mid(oRs("Usuario_Autorizacao"), InStr(1, oRs("Usuario_Autorizacao"), "/") + 1, Len(oRs("Usuario_Autorizacao")))) & ")'"
  526.                     End If
  527.                 End If
  528.                 ResultadoLinha = ResultadoLinha & ">"
  529.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "<i>("
  530.                 ResultadoLinha = ResultadoLinha & FormatNumber(oRs("item_Desconto") - oRs("DESCONTO_SUBSIDIADO_ITEM"), 2)
  531.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & ")</i>"
  532.                 ResultadoLinha = ResultadoLinha & "    </td>"
  533.                 ResultadoLinha = ResultadoLinha & "    <td align='right'>"
  534.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "<i>("
  535.                 ResultadoLinha = ResultadoLinha & FormatNumber(CDbl(oRs("Vlr_Unit")) - CDbl(oRs("item_Desconto")), 2)
  536.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & ")</i>"
  537.                 ResultadoLinha = ResultadoLinha & "    </td>"
  538.                 ResultadoLinha = ResultadoLinha & "</tr>"
  539.             End If
  540.            
  541.             ' Descontos Subsidiados:
  542.            SQL = "SELECT S.DESCRICAO, I.VALOR FROM ITEM_VENDA_SUBSIDIO I INNER JOIN SUBSIDIO S ON S.ID = I.ID_SUBSIDIO WHERE I.ID_ITEM_VENDA = 0" & oRs("id")
  543.             Set oRs2 = Banco.Executar(SQL, False)
  544.             While Not oRs2.EOF
  545.                 ResultadoLinha = ResultadoLinha & "<tr"
  546.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & " style='text-decoration: line-through;'"
  547.                 ResultadoLinha = ResultadoLinha & ">"
  548.                 ResultadoLinha = ResultadoLinha & "<td colspan='6'>&nbsp;</td>"
  549.                 ResultadoLinha = ResultadoLinha & "<td align='right'>"
  550.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "<i>"
  551.                 ResultadoLinha = ResultadoLinha & oRs2("DESCRICAO") & ": "
  552.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & "("
  553.                 ResultadoLinha = ResultadoLinha & FormatNumber(oRs2("VALOR"), 2)
  554.                 If oRs("ItemExcluido") = "3" Then ResultadoLinha = ResultadoLinha & ")</i>"
  555.                 ResultadoLinha = ResultadoLinha & "</td>"
  556.                 ResultadoLinha = ResultadoLinha & "<td>&nbsp;</td>"
  557.                 ResultadoLinha = ResultadoLinha & "</tr>"
  558.                 oRs2.MoveNext
  559.             Wend
  560.             oRs2.Close
  561.            
  562.             ' Serviços Vinculados:
  563.            If Not IsNull(oRs("Servico_Vinculado")) Then
  564.                 If Len(oRs("Servico_Vinculado")) > 0 Then
  565.                     ResultadoLinha = ResultadoLinha & "<tr><td colspan='3'>&nbsp;</td>"
  566.                    
  567.                     'Verifica se esta removido pela tela de alterar venda, se estiver coloca na cor vermelha
  568.                    If oRs("EXCLUIDO_SERVICO_VINCULADO") = 0 Then
  569.                         ResultadoLinha = ResultadoLinha & "<td colspan='5'><font color='green'>SERVIÇO VINCULADO: " & oRs("Servico_Vinculado") & "</font>"
  570.                     ElseIf oRs("EXCLUIDO_SERVICO_VINCULADO") = 1 Then
  571.                         ResultadoLinha = ResultadoLinha & "<td colspan='5' style='text-decoration: line-through;' ><font bgcolor='#cccccc'>SERVIÇO VINCULADO REMOVIDO: " & oRs("Servico_Vinculado") & "</font>"
  572.                     End If
  573.                    
  574.                     ResultadoLinha = ResultadoLinha & "</td>"
  575.                     ResultadoLinha = ResultadoLinha & "</td>"
  576.                     ResultadoLinha = ResultadoLinha & "</tr>"
  577.                 End If
  578.             End If
  579.             Id_Anterior = oRs("Id")
  580.         End If
  581.        
  582.         oRs.MoveNext
  583.        
  584.         ' Se mudou a Venda ou é EOF, escreve a Forma de Pagamento
  585.        EscreveFormaPgto = False
  586.         If Not oRs.EOF Then
  587.             If CDbl(oRs("Id_venda")) <> Id_venda Then
  588.                 EscreveFormaPgto = True
  589.             End If
  590.         Else
  591.             EscreveFormaPgto = True
  592.         End If
  593.        
  594.         If EscreveFormaPgto And Not Sintetico Then
  595.             SQL = "SELECT PAGAMENTO_VENDA.VALOR, PAGAMENTO_VENDA.DATA, TIPO_PAGAMENTO.DESCRICAO"
  596.             SQL = SQL & " FROM PAGAMENTO_VENDA INNER JOIN"
  597.             SQL = SQL & " TIPO_PAGAMENTO ON PAGAMENTO_VENDA.ID_TIPO_PAGAMENTO = TIPO_PAGAMENTO.ID"
  598.             SQL = SQL & " WHERE (PAGAMENTO_VENDA.ID_VENDA = " & Id_venda & ")"
  599.             SQL = SQL & " ORDER BY TIPO_PAGAMENTO.DESCRICAO, PAGAMENTO_VENDA.Data"
  600.             Set oRs2 = Banco.Executar(SQL)
  601.             If Not oRs2.EOF Then
  602.                 ResultadoLinha = ResultadoLinha & "<tr>"
  603.                 ResultadoLinha = ResultadoLinha & "   <td colspan='5' bgcolor='#ffffff' heigth='1'></td>"
  604.                 ResultadoLinha = ResultadoLinha & "   <td colspan='3' bgcolor='#cccccc' heigth='1'></td>"
  605.                 ResultadoLinha = ResultadoLinha & "</tr>"
  606.                 ResultadoLinha = ResultadoLinha & "<tr>"
  607.                 ResultadoLinha = ResultadoLinha & "   <td colspan='5'>&nbsp;</td>"
  608.                 ResultadoLinha = ResultadoLinha & "   <td bgcolor='#F0F0F0'><b>Vencimento</b></td>"
  609.                 ResultadoLinha = ResultadoLinha & "   <td bgcolor='#F0F0F0'><b>Tipo</b></td>"
  610.                 ResultadoLinha = ResultadoLinha & "   <td bgcolor='#F0F0F0' align='right'><b>Valor (R$)</b></td>"
  611.                 ResultadoLinha = ResultadoLinha & "</tr>"
  612.                 TotalPagamento = 0
  613.                 While Not oRs2.EOF
  614.                     ResultadoLinha = ResultadoLinha & "<tr>"
  615.                     ResultadoLinha = ResultadoLinha & "   <td colspan='5'>&nbsp;</td>"
  616.                     ResultadoLinha = ResultadoLinha & "   <td>" & Func.Formata_Data_Interface(oRs2("Data")) & "</td>"
  617.                     ResultadoLinha = ResultadoLinha & "   <td>" & oRs2("Descricao") & "</td>"
  618.                     ResultadoLinha = ResultadoLinha & "   <td align='right'>" & FormatNumber(oRs2("Valor"), 2) & "</td>"
  619.                     ResultadoLinha = ResultadoLinha & "</tr>"
  620.                     ResultadoLinha = ResultadoLinha & "<tr>"
  621.                     ResultadoLinha = ResultadoLinha & "   <td colspan='5' bgcolor='#ffffff' heigth='1'></td>"
  622.                     ResultadoLinha = ResultadoLinha & "   <td colspan='3' bgcolor='#cccccc' heigth='1'></td>"
  623.                     ResultadoLinha = ResultadoLinha & "</tr>"
  624.                     TotalPagamento = TotalPagamento + CDbl(oRs2("Valor"))
  625.                     oRs2.MoveNext
  626.                 Wend
  627.                 ResultadoLinha = ResultadoLinha & "<tr>"
  628.                 ResultadoLinha = ResultadoLinha & "   <td colspan='7' align='right'>Total:</td>"
  629.                 ResultadoLinha = ResultadoLinha & "   <td align='right'><b>" & FormatNumber(TotalPagamento, 2) & "</b></td>"
  630.                 ResultadoLinha = ResultadoLinha & "</tr>"
  631.             End If
  632.         End If
  633.         Barra = Barra + 1
  634.         DoEvents
  635.         ProgressBar.Value = Barra
  636.         lblProgresso.Caption = FormatNumber((ProgressBar.Value * 100) / ProgressBar.Max, 0) & "% Concluído (" & ProgressBar.Value & " de " & ProgressBar.Max & " itens)"
  637.         If Cancelar Then
  638.             Exit Do
  639.         End If
  640.        
  641.         Resultado = Resultado & ResultadoLinha
  642.         ResultadoLinha = ""
  643.     Loop
  644.    
  645.     Resultado = Resultado & "<tr>"
  646.     Resultado = Resultado & "   <td colspan='8' bgcolor='#000000' heigth='2'></td>"
  647.     Resultado = Resultado & "</tr>"
  648.    
  649.     ' Quando mudar o dia e já tiver escrito, totalizo o dia
  650.    If chkResumo.Value Then
  651.         Resultado = Resultado & "<tr>"
  652.         Resultado = Resultado & "   <td colspan='7' width='90%' align='right' style='vertical-align:top'><b>Total de Vendas: </b></td>"
  653.         Resultado = Resultado & "   <td align='right'>R$ " & FormatNumber(totalDia, 2) & "</td>"
  654.         Resultado = Resultado & "</tr>"
  655.         Resultado = Resultado & "<tr>"
  656.         Resultado = Resultado & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total de Devoluções: </b></td>"
  657.         Resultado = Resultado & "   <td align='right'>R$ " & FormatNumber(Total_Devolucao_Dia, 2) & "</td>"
  658.         Resultado = Resultado & "</tr>"
  659.         Resultado = Resultado & "<tr>"
  660.         Resultado = Resultado & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total de Acréscimos: </b></td>"
  661.         Resultado = Resultado & "   <td align='right'>R$ " & FormatNumber(Total_Acrescimos_Dia, 2) & "</td>"
  662.         Resultado = Resultado & "</tr>"
  663.         Resultado = Resultado & "<tr>"
  664.         Resultado = Resultado & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total de Devoluções de Acréscimos: </b></td>"
  665.         Resultado = Resultado & "   <td align='right'>R$ " & FormatNumber(Total_Devolucao_Acrescimos_Dia, 2) & "</td>"
  666.         Resultado = Resultado & "</tr>"
  667.         Resultado = Resultado & "<tr>"
  668.         Resultado = Resultado & "   <td colspan='7' align='right' style='vertical-align:top'><b>Total do dia " & Data & ": </b></td>"
  669.         Resultado = Resultado & "   <td align='right'>R$ " & FormatNumber((totalDia + Total_Acrescimos_Dia) - Total_Devolucao_Dia, 2) & "</td>"
  670.         Resultado = Resultado & "</tr>"
  671.     End If
  672.    
  673.     ' Tarefas ao mudar o dia
  674.    Total_Devolucao_Final = Total_Devolucao_Final + Total_Devolucao_Dia
  675.     Total_Acrescimos_Final = Total_Acrescimos_Final + Total_Acrescimos_Dia
  676.     Total_Devolucao_Acrescimos_Final = Total_Devolucao_Acrescimos_Final + Total_Devolucao_Acrescimos_Dia
  677.     totalPeriodo = totalPeriodo + totalDia
  678.     totalDia = 0
  679.     Total_Acrescimos_Dia = 0
  680.     Total_Devolucao_Dia = 0
  681.     Total_Devolucao_Acrescimos_Dia = 0
  682.    
  683.     Resultado = Resultado & "</TABLE>"
  684.    
  685.     ' Totalizador - Aparecer somente em 'Vendas Realizadas'
  686.    If chkResumo.Value Then
  687.         If CInt(filtroVendas) = 1 Then
  688.             SQL = "SELECT Id, Descricao FROM Tipo_Pagamento ORDER BY Descricao, Id"
  689.             Set oRs = Banco.Executar(SQL)
  690.             If Not oRs.EOF Then
  691.                 Resultado = Resultado & "<br>"
  692.                 Resultado = Resultado & "<TABLE cellSpacing='0' cellPadding='3' width='100%' border='0'>"
  693.                 Resultado = Resultado & "<tr><td colspan='6' style='color:#808080;font-size:8pt'>O Totalizador abaixo, por Tipo de Pagamento, refere-se apenas as vendas finalizadas.</td></tr>"
  694.                 Resultado = Resultado & "<tr><td colspan='6' bgcolor='#000000' heigth='1'></td></tr>"
  695.                 Do Until oRs.EOF
  696.                     'Primeiro, pegar os valores da entrada referente ao tipo do pagamento -> Dinheiro, Cheque ou Cartão
  697.                    SQL = "SELECT DISTINCT VENDA.ID, Venda.vlr_Entrada AS ValorEntrada"
  698.                     SQL = SQL & " FROM PLANO RIGHT JOIN (FRANQUIA RIGHT JOIN (Venda INNER JOIN ITEM_VENDA ON Venda.ID = ITEM_VENDA.ID_VENDA) ON FRANQUIA.ID = ITEM_VENDA.ID_FRANQUIA) ON PLANO.ID = FRANQUIA.ID_PLANO "
  699.                     SQL = SQL & " WHERE Venda.Data Between CDate('" & dtInicial & "') And CDate('" & dtFinal & " 23:59:59') AND (item_venda.Excluido=0 OR item_venda.Excluido=3) AND Venda.Tipo='V'"
  700.                     SQL = SQL & " AND Venda.Id_Tipo_Pagamento_Entrada=" & oRs("id") & " AND Venda.Id_Empresa IN (" & Lista_Empresas & ") AND item_venda.vlr_unit - item_venda.desconto > 0 "
  701.                     If idOperadora <> 0 Then SQL = SQL & " AND (plano.id_operadora = " & idOperadora & " or plano.Id_Operadora IS NULL) "
  702.                     Set oRs2 = Banco.Executar(SQL)
  703.                     If Not oRs2.EOF Then
  704.                         While Not oRs2.EOF
  705.                             If Not IsNull(oRs2("ValorEntrada")) Then Valor = Valor + CDbl(oRs2("ValorEntrada"))
  706.                             oRs2.MoveNext
  707.                         Wend
  708.                     End If
  709.                     oRs2.Close
  710.                    
  711.                     'Em seguida pegar e calcular os valores das parcelas
  712.                    SQL = "SELECT distinct venda.id, Venda.vlr_total+(Venda.Acrescimo) AS ValorTotal, Venda.vlr_Entrada AS ValorEntrada, Venda.Desconto AS ValorDesconto"
  713.                     SQL = SQL & " FROM PLANO RIGHT JOIN (FRANQUIA RIGHT JOIN (Venda INNER JOIN ITEM_VENDA ON Venda.ID = ITEM_VENDA.ID_VENDA) ON FRANQUIA.ID = ITEM_VENDA.ID_FRANQUIA) ON PLANO.ID = FRANQUIA.ID_PLANO "
  714.                     SQL = SQL & " WHERE Venda.Data Between CDate('" & dtInicial & "') And CDate('" & dtFinal & " 23:59:59') AND (item_venda.Excluido=0 OR item_venda.Excluido=3) AND Venda.Tipo='V'"
  715.                     SQL = SQL & " AND Venda.Id_Tipo_Pagamento_Parcelas=" & oRs("id") & " AND Venda.Id_Empresa IN (" & Lista_Empresas & ") "
  716.                     If idOperadora <> 0 Then SQL = SQL & " AND (Plano.Id_Operadora = " & idOperadora & " or plano.Id_Operadora IS NULL) "
  717.                     SQL = SQL & " AND ITEM_VENDA.VLR_UNIT <> ITEM_VENDA.DESCONTO "
  718.                     Set oRs2 = Banco.Executar(SQL)
  719.                     If Not oRs2.EOF Then
  720.                         While Not oRs2.EOF
  721.                             If Not IsNull(oRs2("ValorTotal")) Then Valor = Valor + (oRs2("ValorTotal") - oRs2("ValorDesconto") - oRs2("ValorEntrada"))
  722.                             oRs2.MoveNext
  723.                         Wend
  724.                     End If
  725.                     oRs2.Close
  726.                    
  727.                     ' Para as vendas realizadas no novo modelo:
  728.                    'If Mid(ListaDeVendas, Len(ListaDeVendas), 1) = "," Then ListaDeVendas = Left(ListaDeVendas, Len(ListaDeVendas) - 1)
  729.                    If Right(ListaDeVendas, 1) = "," Then ListaDeVendas = Left(ListaDeVendas, Len(ListaDeVendas) - 1)
  730.                     SQL = "SELECT SUM(VALOR) AS ValorTotal FROM PAGAMENTO_VENDA WHERE ID_VENDA IN (" & ListaDeVendas & ") AND ID_TIPO_PAGAMENTO = " & oRs("id")
  731.                     Set oRs2 = Banco.Executar(SQL)
  732.                     If Not oRs2.EOF Then
  733.                         If Not IsNull(oRs2("ValorTotal")) Then Valor = Valor + CDbl(oRs2("ValorTotal"))
  734.                     End If
  735.                     oRs2.Close
  736.                                    
  737.                     If Not IsNull(Valor) Then
  738.                         If cor = "#ffffff" Then
  739.                             cor = "#efefef"
  740.                         Else
  741.                             cor = "#ffffff"
  742.                         End If
  743.                         Resultado = Resultado & "<tr bgcolor='" & cor & "'>"
  744.                         Resultado = Resultado & "<td width='150'>" & oRs("descricao") & "</td>"
  745.                         Resultado = Resultado & "<td colspan='5'>R$ " & FormatNumber(Valor, 2) & "</td></tr>"
  746.                     End If
  747.    
  748.                     'ValorTotal = ValorTotal + CDbl(valor)
  749.                    Valor = 0
  750.                     oRs.MoveNext
  751.                 Loop
  752.                
  753.                 Resultado = Resultado & "<tr><td colspan='6' bgcolor='#000000' heigth='1'></td></tr>"
  754.    
  755.                 ' total de vendas
  756.                Resultado = Resultado & "<tr bgcolor='#efefef'>"
  757.                 Resultado = Resultado & "   <td ><b>Total de Vendas: </b></td>"
  758.                 Resultado = Resultado & "   <td colspan='5'>R$ " & FormatNumber(totalPeriodo, 2) & "</td>"
  759.                 Resultado = Resultado & "</tr>"
  760.                
  761.                 ' devoluções
  762.                Resultado = Resultado & "<tr bgcolor='#efefef'>"
  763.                 Resultado = Resultado & "   <td><b>Total de Devoluções: </b></td>"
  764.                 Resultado = Resultado & "   <td colspan='5'>R$ " & FormatNumber(Total_Devolucao_Final, 2) & "</td>"
  765.                 Resultado = Resultado & "</tr>"
  766.                
  767.                 ' acréscimos
  768.                Resultado = Resultado & "<tr>"
  769.                 Resultado = Resultado & "   <td><b>Total de Acréscimos: </b></td>"
  770.                 Resultado = Resultado & "   <td colspan='5'>R$ " & FormatNumber(Total_Acrescimos_Final, 2) & "</td>"
  771.                 Resultado = Resultado & "</tr>"
  772.                
  773.                 ' devoluções de acréscimos
  774.                Resultado = Resultado & "<tr bgcolor='#efefef'>"
  775.                 Resultado = Resultado & "   <td><b>Total de Devoluções de Acréscimos: </b></td>"
  776.                 Resultado = Resultado & "   <td colspan='5'>R$ " & FormatNumber(Total_Devolucao_Acrescimos_Final, 2) & "</td>"
  777.                 Resultado = Resultado & "</tr>"
  778.                            
  779.                 ' total final
  780.                Resultado = Resultado & "<tr>"
  781.                 Resultado = Resultado & "   <td><b>Total do Período: </b></td>"
  782.                 Resultado = Resultado & "   <td colspan='5'>R$ " & FormatNumber((totalPeriodo + Total_Acrescimos_Final) - Total_Devolucao_Final, 2) & "</td>"
  783.                 Resultado = Resultado & "</tr>"
  784.    
  785.                 Resultado = Resultado & "</TABLE>"
  786.             End If
  787.         End If
  788.    
  789.         'Resumo de vendas e serviço por empresa
  790.        SQL = "SELECT COUNT(ITEM_VENDA.ID) AS QTDE, EMPRESA.ID AS ID_EMPRESA, EMPRESA.NOME_FANTASIA, Produto.MODELO + ' / ' + ISNULL(CAST(Produto.referencia AS NVARCHAR),'') AS Produto,"
  791.         SQL = SQL & " Servico.DESCRICAO AS Servico, SUM(Item_Venda.VLR_UNIT) - SUM(ISNULL(ITEM_VENDA.DESCONTO,0)) + SUM(ISNULL(ITEM_VENDA.ACRESCIMO,0)) AS VALOR"
  792.         SQL = SQL & " FROM VENDA"
  793.         SQL = SQL & " LEFT JOIN ITEM_VENDA ON ITEM_VENDA.ID_VENDA = VENDA.ID"
  794.         SQL = SQL & " LEFT JOIN ITEM_ENTRADA ON ITEM_ENTRADA.ID =  ITEM_VENDA.ID_ITEM_ENTRADA"
  795.         SQL = SQL & " LEFT JOIN PRODUTO ON PRODUTO.ID = ITEM_ENTRADA.ID_PRODUTO"
  796.         SQL = SQL & " LEFT JOIN EMPRESA ON EMPRESA.ID = ITEM_VENDA.ID_EMPRESA"
  797.         SQL = SQL & " LEFT JOIN SERVICO ON SERVICO.ID = ITEM_VENDA.ID_SERVICO"
  798.         SQL = SQL & " LEFT JOIN CLIENTE ON CLIENTE.ID = VENDA.ID_CLIENTE"
  799.         SQL = SQL & " LEFT JOIN VENDEDOR ON VENDA.ID_VENDEDOR = VENDEDOR.ID"
  800.         SQL = SQL & " WHERE Venda.ID IN (" & ListaDeVendas & ")"
  801.         If Id_Tipo_Produto > 0 Then SQL = SQL & " AND PRODUTO.ID_TIPO_PRODUTO = " & Id_Tipo_Produto 'Filtra tipo de produto
  802.        If filtroVendas = 1 Then SQL = SQL & " AND ITEM_VENDA.EXCLUIDO = 0 " 'Traz somente os produtos não devolvidos
  803.        SQL = SQL & " GROUP BY EMPRESA.ID, EMPRESA.NOME_FANTASIA, Produto.MODELO, Produto.referencia, Servico.DESCRICAO"
  804.         SQL = SQL & " ORDER BY EMPRESA.NOME_FANTASIA, Produto.MODELO, SERVICO.DESCRICAO"
  805.        
  806.         lblProgresso.Caption = "Aguarde... (gerando resumo de vendas)"
  807.         DoEvents
  808.         Resultado = Resultado & Resumo_Vendas(SQL, Banco)
  809.     End If
  810.  
  811.     If filtroVendas = 2 Then
  812.         Resultado = Resultado & "<table border=0 width=100% align=left><tr><td><font color=red>* Venda não finalizada, foi cancelada na janela de Vendas Pendentes.<br>&nbsp;</font></td></tr></table><br>"
  813.     Else
  814.         Resultado = Resultado & "<table border=0 width=100% align=left><tr><td><font color=red>* Venda ainda pendente de finalização.<br>&nbsp;</font></td></tr></table><br>"
  815.     End If
  816.        
  817.     Resultado = Resultado & "<br>"
  818.     Resultado = Resultado & "<script language='javascript'>window.focus()</script>"
  819.     Resultado = Resultado & Func.Rodape_Relatorio(m_Usuario)
  820.     Resultado = Resultado & "</body>"
  821.     Resultado = Resultado & "</HTML>"
  822.  
  823.     If Func.Gera_Relatorio_Arquivo(Resultado) And Not Cancelar Then
  824.         frmBrowser.Show
  825.         frmBrowser.brwWebBrowser.navigate App.Path & "\RELATORIO.HTM"
  826.     End If
  827.     TotalBarra = 0
  828.     Barra = 0
  829.     lblProgresso.Caption = ""
  830.     ProgressBar.Value = 1
  831.     Func.Desabilita cmdCancelar
  832. '/* End Error Handler
  833. Gerar_Done:
  834.     Call mProcStack.ExitProc("Gerar")
  835.     Exit Function
  836.  
  837. HandleError:
  838.     Func.Desabilita cmdCancelar
  839.     Gerar = False
  840.     Process_Error MODULE_NAME, Err, "Gerar"
  841.     Resume Gerar_Done
  842.  
  843. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement