Ticket con descuentos

Este es el código fuente del formato “Ticket con descuentos”

 Visual Basic |  copy code |? 
001
' Mybusiness POS v. 2011
002
Sub Main()
003
 
004
    if Ambiente.rstEstacion("torreta") <> 0 Then
005
       if clAt( "LPT", Ambiente.rstEstacion("ptorreta") ) > 0 Then
006
          Out Trim(Ambiente.rstEstacion("ptorreta")), Chr( 12 ) & "Total:  $" & Formato( Val2( txtFields(4) ), "###,###.00" )
007
       else
008
          On Error resume next
009
          Ambiente.torreta.PortOpen = True
010
          if Ambiente.torreta.PortOpen Then
011
             Ambiente.Torreta.OutPut = Chr( 12 ) & "Total:  $" & Formato( Val2( txtFields(4) ), "###,###.00" )
012
          end if
013
       end if
014
    end if
015
 
016
    If Ambiente.rstEstacion("ventasportelefono") <> 0 Then
017
 
018
       cSalida = ""
019
 
020
       if Ambiente.rstEstacion("Cajon") <> 0 Then
021
          cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(20) & Chr(20)
022
          cSalida = cSalida & Chr(7)
023
          ' Sansung de inyección
024
          ' cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(49)
025
       end if
026
 
027
       if Ambiente.rstEstacion("ticket") <> 0 Then
028
          if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
029
             Out Trim(Ambiente.rstEstacion("pticket")), cSalida
030
          else
031
             if Ambiente.Ticket.PortOpen Then
032
                Ambiente.Ticket.Output = cSalida
033
             end if
034
          end if
035
       End if
036
 
037
       Exit Sub
038
    End If
039
 
040
    'If MsgBox( "Desea imprimir el ticket", vbQuestion + vbYesNo + vbDefaultButton2 ) = vbNo Then
041
    '   Exit Sub
042
    'End If
043
 
044
    ' Creamos el recordSet del encabezado de la venta
045
    Set rstEncabezado = Rst("SELECT * FROM ventas WHERE venta = " & prn.Documento, Ambiente.Connection )
046
 
047
    ' Verificamos que la venta que se desea imprimir exista
048
    if rstEncabezado.EOF Then
049
       MsgBox "No existe la venta seleccionada",vbInformation
050
       Exit Sub
051
    end if
052
 
053
    ' Creamos el recordSet de las partidas que componen la venta
054
    Set rstPartidas = Rst("SELECT partvta.iespecial, partvta.articulo, prods.precio1,prods.descrip, partvta.precio, partvta.cantidad, partvta.descuento, partvta.impuesto, partvta.preciobase, partvta.prdescrip FROM partvta INNER JOIN prods ON prods.articulo = partvta.articulo WHERE venta =" & rstEncabezado.fields("Venta"), Ambiente.Connection )
055
 
056
    ' Traemos todos los datos del cliente
057
    Set rstCliente = Rst("SELECT * FROM clients WHERE cliente = '" & rstEncabezado.fields("Cliente") & "'", Ambiente.Connection )
058
 
059
    ' Traemos los datos de cobranza si es que existe
060
    Set rstCobranza = Rst( "SELECT * FROM cobranza WHERE venta = " & rstEncabezado("venta"), Ambiente.Connection )
061
 
062
    cSalida = ""
063
 
064
    'Esto abre el cajon de dinero
065
    if Ambiente.rstEstacion("Cajon") <> 0 Then
066
       cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(20) & Chr(20)
067
       cSalida = cSalida & Chr(7)
068
       ' Sansung de inyección
069
       ' cSalida = cSalida & Chr(27) & Chr(112) & Chr(48) & Chr(49)
070
    end if
071
 
072
    Set rstTextTicket = CreaRecordSet( "SELECT * FROM tickettext", Ambiente.Connection )
073
 
074
    If rstTextTicket.EOF Then
075
       cSalida = cSalida & "" & Ambiente.Empresa & Chr(13) & Chr(10)
076
       cSalida = cSalida & "" & Trim( Ambiente.Direccion1 ) & Chr(13) & Chr(10)
077
       cSalida = cSalida & "" & Trim( Ambiente.Direccion2 ) & Chr(13) & Chr(10)
078
       cSalida = cSalida & "" & Trim( Ambiente.Telefonos ) & Chr(13) & Chr(10)
079
    Else
080
       cSalida = cSalida & rstTextTicket("textheader")
081
    End If
082
 
083
    cSalida = cSalida & "" & Trim( rstEncabezado("Usuario") ) & " " & Trim( Ambiente.Estacion ) & " Ticket: " & rstEncabezado("No_referen") & Chr(13) & Chr(10)
084
    cSalida = cSalida & Formato( rstEncabezado("f_emision"),"dd-MM-yyyy" ) & " Hora: " & rstEncabezado("usuHora") & Chr(13) & Chr(10)
085
    cSalida = cSalida & Trim( rstCliente("cliente") ) & " " & Trim( rstCliente("Nombre") ) & Chr(13) & Chr(10)
086
    cSalida = cSalida & Ambiente.rstEstacion("leyendacomodin") & " " & rstEncabezado("comodin") & Chr(13) & Chr(10)
087
    cSalida = cSalida & "Vendedor: " & rstEncabezado("Vend") & Chr(13) & Chr(10)
088
    cSalida = cSalida & "CANT. DESCRIPCION        PRECIO  IMPORTE" & Chr(13) & Chr(10)
089
 
090
    nImporteTotal = 0
091
    nImpuesto = 0
092
    nCantidadTotal = 0
093
    nDescuentoTotal = 0
094
    nImporteOrigen = 0
095
 
096
    'PrintText cSalida
097
 
098
    If Ambiente.Tag <> "HTML" Then
099
 
100
       If Ambiente.rstEstacion("ticket") <> 0 Then
101
          if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
102
             Out Trim(Ambiente.rstEstacion("pticket")), cSalida
103
          else
104
             if Ambiente.Ticket.PortOpen Then
105
                Ambiente.Ticket.Output = cSalida
106
             end if
107
          end if
108
       End if
109
 
110
       cSalida = ""
111
 
112
    End If
113
 
114
    While Not rstPartidas.EOF
115
 
116
          nPrecio = rstPartidas("Precio") * ( 1 - (rstPartidas("Descuento")/100) ) * (1 + ( rstPartidas("impuesto") / 100 ) )
117
          nPrecioBase = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 ) ), 2)
118
          nDescuento = (nPrecioBase - nPrecio) * rstPartidas("Cantidad")
119
 
120
          If nPrecioBase > 0 Then
121
             nDescPor = ( nPrecio / nPrecioBase ) * 100
122
          Else
123
             nDescPor = 0
124
          End If
125
 
126
          nDescuentoTotal = nDescuentoTotal + nDescuento
127
          nImporte = nPrecio * rstPartidas("Cantidad")
128
 
129
          nCantidad = PadL(Formato( rstPartidas("cantidad"), "##,##0.00" ),3)
130
 
131
          cDescrip  = Mid( rstPartidas("Descrip"), 1, 16 )
132
          nCantidadTotal = nCantidadTotal + rstPartidas("cantidad")
133
 
134
          nImporteTotal = nImporteTotal + nImporte
135
          nImpuesto = nImpuesto + ( nImporteTotal * ( rstPartidas("impuesto") / 100 ) )
136
 
137
          nPrecio = 0
138
          nIEspecial = rstPartidas("Precio") * (Val2(rstPartidas("iespecial")) / 100)
139
          nIVa = rstPartidas("Precio") * (rstPartidas("impuesto") / 100)
140
          nPrecio = rstPartidas("Precio") + nIEspecial + nIVa
141
 
142
          cPrecio = PadL(Trim(Formato( nPrecio,  Ambiente.FDinero )),8)
143
          cImporte = PadL(Trim(Formato( Round( nPrecio, 2) * rstPartidas("cantidad") * (1 - (rstPartidas("descuento") / 100)), Ambiente.FDinero )),8)
144
          nPrecioOrigen = Round( rstPartidas("PrecioBase") * (1 + ( rstPartidas("impuesto") / 100 )),2) * rstPartidas("cantidad")
145
          nImporteOrigen = nImporteOrigen + nPrecioOrigen
146
 
147
          strSalida = PadL(Formato( nCantidad, Ambiente.Formato ),2) & " " & cDescrip & " " & cPrecio & "  " & cImporte
148
 
149
          'If rstPartidas("Precio1") > rstPartidas("Precio") Then
150
          '   nDescuentoPartida = ( rstPartidas("Precio1") - rstPartidas("Precio") ) * nCantidad
151
          '   strSalida = strSalida & " Descuento: " & Formato( nDescuentoPartida, "##,##0.00" ) & vbCrLf
152
          'End If
153
 
154
          cSalida = cSalida & strSalida & Chr(13) & Chr(10)
155
 
156
          If Not clEmpty( cNull( rstPartidas("prdescrip") ) ) Then
157
             cSalida = cSalida & Trim( rstPartidas("prdescrip") ) & vbCrLf
158
          End If
159
 
160
          rstPartidas.MoveNext
161
    Wend
162
 
163
    'PrintText cSalida
164
 
165
    If Ambiente.Tag <> "HTML" Then
166
 
167
       If Ambiente.rstEstacion("ticket") <> 0 Then
168
          if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
169
             Out Trim(Ambiente.rstEstacion("pticket")), cSalida
170
          else
171
             if Ambiente.Ticket.PortOpen Then
172
                Ambiente.Ticket.Output = cSalida
173
             end if
174
          end if
175
       End if
176
 
177
       cSalida = ""
178
 
179
    End If
180
 
181
    cSalida = cSalida & Chr(13) & Chr(10)
182
    cSalida = cSalida & Chr(13) & Chr(10)
183
 
184
    cSalida = cSalida & "         Importe:            " & PadL(Formato( Val2(rstEncabezado("importe")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
185
    cSalida = cSalida & "        Impuesto:            " & PadL(Formato( Val2(rstEncabezado("impuesto")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
186
 
187
    if Val2(rstEncabezado("iespecial")) > 0 Then
188
       cSalida = cSalida & "     Impuesto 2%:            " & PadL(Formato( Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
189
    end if
190
 
191
    if nDescuentoTotal > 0 Then
192
       cSalida = cSalida & "         Importe:            " & PadL(Formato( nImporteOrigen, Ambiente.FDinero ),10) & Chr(13) & Chr(10)
193
       cSalida = cSalida & "       Descuento:            " & PadL(Formato( nDescuentoTotal, Ambiente.FDinero ),10) & Chr(13) & Chr(10)
194
    end if
195
 
196
    cSalida = cSalida & "         Importe:            " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
197
    cSalida = cSalida & "        Redondeo:            " & PadL(Formato( Val2(rstEncabezado("Redondeo")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
198
    cSalida = cSalida & Chr(13) & Chr(10)
199
    cSalida = cSalida & PadL(Formato( nCantidadTotal, "###,###" ),4) & "  ----- TOTALES ----     " & PadL(Formato( (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
200
 
201
    nPagoTotal = Val2(rstEncabezado("Pago1")) + Val2(rstEncabezado("Pago2")) + Val2(rstEncabezado("Pago3"))
202
 
203
    if rstEncabezado("Pago1") > 0 Then
204
       cSalida = cSalida & "                  Pago en " & rstEncabezado("Concepto1") & " " & PadL(Formato( Val2(rstEncabezado("Pago1")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
205
    end if
206
 
207
    if rstEncabezado("Pago2") > 0 Then
208
       cSalida = cSalida & "                  Pago en " & rstEncabezado("Concepto2") & " " & PadL(Formato( Val2(rstEncabezado("Pago2")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
209
    end if
210
 
211
    if rstEncabezado("Pago3") > 0 Then
212
       cSalida = cSalida & "                  Pago en " & rstEncabezado("Concepto3") & " " & PadL(Formato( Val2(rstEncabezado("Pago3")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
213
    end if
214
 
215
    Eventos
216
 
217
    If rstEncabezado("Comision") > 0 Then
218
       cSalida = cSalida & "        Comisión:            " & PadL(Formato( Val2(rstEncabezado("comision")), Ambiente.FDinero ),10) & Chr(13) & Chr(10)
219
    End If
220
 
221
    nComision = rstEncabezado("comision")
222
 
223
    if nPagoTotal < (Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("redondeo"))) Then
224
       cSalida = cSalida & "                     Credito: " & PadL(Formato( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("iespecial")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("redondeo")) - nPagoTotal, Ambiente.FDinero ),9) & Chr(13) & Chr(10)
225
    else
226
       cSalida = cSalida & "                      Cambio: " & PadL(Formato( nPagoTotal - nComision - Val2(rstEncabezado("impuesto")) - Val2(rstEncabezado("iespecial")) - Val2(rstEncabezado("importe")) - Val2(rstEncabezado("redondeo")), Ambiente.FDinero ),9) & Chr(13) & Chr(10)
227
    end if
228
 
229
    Set rstMoneda = CreaRecordSet( "SELECT * FROM monedas WHERE moneda = '" & rstEncabezado("moneda") & "'", Ambiente.Connection )
230
 
231
    cSalida = cSalida & Chr(13) & Chr(10)
232
    cSalida = cSalida & Chr(13) & Chr(10)
233
    cSalida = cSalida & Letra( Val2(rstEncabezado("impuesto")) + Val2(rstEncabezado("importe")) + Val2(rstEncabezado("iespecial")), Trim(rstMoneda("Descrip")), True,rstMoneda("Nombre") ) & Chr(13) & Chr(10)
234
 
235
    If rstTextTicket.EOF Then
236
       cSalida = cSalida & Chr(13) & Chr(10)
237
       cSalida = cSalida & Chr(13) & Chr(10)
238
       cSalida = cSalida & Chr(13) & Chr(10)
239
 
240
       cSalida = cSalida & "***** GRACIAS POR SU COMPRA *****" & Chr(13) & Chr(10)
241
       cSalida = cSalida &  Chr(13) & Chr(10)
242
       cSalida = cSalida & Chr(13) & Chr(10)
243
       cSalida = cSalida & Chr(13) & Chr(10)
244
       cSalida = cSalida & Chr(13) & Chr(10)
245
       cSalida = cSalida & Chr(13) & Chr(10)
246
       cSalida = cSalida & Chr(13) & Chr(10)
247
       cSalida = cSalida & Chr(13) & Chr(10)
248
       cSalida = cSalida & Chr(13) & Chr(10)
249
 
250
    Else
251
       cSalida = cSalida & rstTextTicket("textend")
252
    End If
253
 
254
    ' Esto manda un corte de papel
255
 
256
    'PrintText cSalida
257
 
258
    if Ambiente.rstEstacion("ticketcorte") <> 0 Then
259
       cSalida = cSalida & Chr(27) & Chr(105)
260
    end if
261
 
262
    If Ambiente.Tag = "HTML" Then
263
 
264
       Ambiente.Tag = ""
265
 
266
       cSalida = Replace( cSalida, Chr(13) & Chr(10), "<br>" )
267
       cSalida = "<center><b>" & cSalida & "</b></center>"
268
       CreaHtml "", (cSalida)
269
 
270
    Else
271
 
272
       if Ambiente.rstEstacion("ticket") <> 0 Then
273
          if clAt( "LPT", Ambiente.rstEstacion("pticket") ) > 0 Then
274
             Out Trim(Ambiente.rstEstacion("pticket")), cSalida
275
          else
276
             if Ambiente.Ticket.PortOpen Then
277
                Ambiente.Ticket.Output = cSalida
278
             end if
279
          end if
280
       End if
281
 
282
    End If
283
 
284
    Dormir 100
285
    Eventos
286
 
287
End Sub
288
 
289

Deja un comentario