'Activity module
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.
End Sub
Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.
End Sub
Sub Activity_Create(FirstTime As Boolean)
   ' Obtenemos el pedido
      Dim pedidoObject As pedidoObjeto
      pedidoObject = BaseDatos.obtenerPedidoPorId(Main.tablaSeleccion)
      
   ' Obtenemos el cliente del pedido
      Dim clienteObject As clienteObjeto
      clienteObject = BaseDatos.ObtenerClientePorId(pedidoObject.cliente)
      
   Dim pagina As String
   Dim impresora As TextWriter
   
   Dim now As Long
   now = DateTime.now
   DateTime.DateFormat = "dd/MM/yyyy"
   
   pagina = "! U1 JOURNAL" & Chr(13) & Chr(10)
   pagina = pagina & "! U1 SETLP 7 0 24" & Chr(13) & Chr(10)
   pagina = pagina & "EMBUTIDOS CORONA S.A. DE C.V." & Chr(13)
   pagina = pagina & DateTime.Date(now) & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "LUIS ENRIQUE WILLIAMS 865" & Chr(13)
   pagina = pagina & "PARQUE INDUSTRIAL BELENES NORTE" & Chr(13)
   pagina = pagina & "ZAPOPAN, JALISCO MEXICO" & Chr(13)
   pagina = pagina & "C.P. 45150" & Chr(13)
   pagina = pagina & "RFC: EC0771130114" & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "CREDITO" & Chr(13)
   pagina = pagina & "FACTURADO A:" & Chr(13)
   pagina = pagina & clienteObject.nombre.Trim & Chr(13)
   pagina = pagina & clienteObject.direccion.Trim & Chr(13)
   pagina = pagina & clienteObject.colonia.Trim & Chr(13)
   pagina = pagina & clienteObject.ciudad.Trim & Chr(13)
   pagina = pagina & "RFC: " & clienteObject.rfc.Trim & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "   CANT DESC     P UNI   IMPORTE" & Chr(13)
   
   ' Obtenemos los detalles del pedido
   Dim detallesPedidoList As List
   detallesPedidoList = BaseDatos.ObtenerDetallesPedido(Main.tablaSeleccion)
   
   ' Variable para calcular el monto final
   Dim montoTotal As String
   montoTotal = "0"
   
   For i = 0 To detallesPedidoList.Size - 1
      Dim detallePedidoObject As detallePedidoObjeto
      detallePedidoObject = detallesPedidoList.Get(i)
      
      Dim articuloObject As articuloObjeto
      articuloObject = BaseDatos.ObtenerArticuloPorId(detallePedidoObject.articulo)
      
      ' Formato de la cantidad
         Dim finalCantidad As String
         finalCantidad = NumberFormat2(detallePedidoObject.kilos.Trim, 1, 3, 3, True)
         
         Dim longitudCantidad As Int
         longitudCantidad = finalCantidad.Length
         
         For j = longitudCantidad + 1 To 7
            pagina = pagina & " "
         Next
         
         pagina = pagina & finalCantidad & " "
         
      ' Formato de la descripcion
         Dim finalArticulo As String
         
         If articuloObject.nombre.Trim.Length > 28 Then
            finalArticulo = articuloObject.nombre.Trim.SubString2(0,28)
         Else
            finalArticulo = articuloObject.nombre.Trim
         End If
         
         Dim longitudArticulo As Int
         longitudArticulo = finalArticulo.Length
         
         Dim numeroRenglones As Int
         
         If longitudArticulo < 8 Then
            numeroRenglones = 1
         Else If longitudArticulo < 15 Then
            numeroRenglones = 2
         Else If longitudArticulo < 22 Then
            numeroRenglones = 3
         Else
            numeroRenglones = 4
         End If
         
         If longitudArticulo > 7 Then
            pagina = pagina & finalArticulo.SubString2(0,7) & " "
         Else
            pagina = pagina & finalArticulo
            
            For j = longitudArticulo + 1 To 8
               pagina = pagina & " "
            Next
         End If
      
      ' Formato del precio unitario
         Dim finalPrecio As String
         finalPrecio = NumberFormat2(detallePedidoObject.precioUnitario, 1, 2, 2, True)
         
         Dim longitudPrecio As Int
         longitudPrecio = finalPrecio.Length
         
         For j = longitudPrecio + 1 To 6
            pagina = pagina & " "
         Next
         
         pagina = pagina & finalPrecio & " "
      
      ' Formato del importe
         Dim finalImporte As String
         finalImporte = NumberFormat2(detallePedidoObject.subtotal, 1, 2, 2, True)
         
         Dim longitudImporte As Int
         longitudImporte = finalImporte.Length
         
         For j = longitudImporte + 1 To 9
            pagina = pagina & " "
         Next
         
         pagina = pagina & finalImporte & Chr(13)
      
      montoTotal = montoTotal + detallePedidoObject.subtotal
      
      If numeroRenglones > 1 Then
         For j = 2 To numeroRenglones
            If j = 2 Then
               pagina = pagina & "        "
               
               If(longitudArticulo > 14) Then
                  pagina = pagina & finalArticulo.SubString2(7,14) & " " & Chr(13)
               Else
                  pagina = pagina & finalArticulo.SubString(7) & Chr(13)
               End If
            Else If j = 3 Then
               pagina = pagina & "        "
               
               If(longitudArticulo > 21) Then
                  pagina = pagina & finalArticulo.SubString2(14,21) & " " & Chr(13)
               Else
                  pagina = pagina & finalArticulo.SubString(14) & Chr(13)
               End If
            Else
               pagina = pagina & "        " & finalArticulo.SubString(21) & Chr(13)
            End If
         Next
      End If
   Next
   
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "             SUBTOTAL: " 
   
   ' Formato del total
      Dim finalSubtotal As String
      finalSubtotal = NumberFormat2(montoTotal, 1, 2, 2, True)
      
      Dim longitudSubtotal As Int
      longitudSubtotal = finalSubtotal.Length
      
      For j = longitudSubtotal + 1 To 9
         pagina = pagina & " "
      Next
      
   pagina = pagina & finalSubtotal & Chr(13)
   pagina = pagina & "             IVA: " & "          0.00" & Chr(13)
   pagina = pagina & "             TOTAL:    " 
   
   ' Formato del total
      Dim finalTotal As String
      finalTotal = NumberFormat2(montoTotal, 1, 2, 2, True)
      
      Dim longitudTotal As Int
      longitudTotal = finalTotal.Length
      
      For j = longitudTotal + 1 To 9
         pagina = pagina & " "
      Next
   
   pagina = pagina & finalTotal & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "     ______________________" & Chr(13)
   pagina = pagina & "       FIRMA DE RECIBIDO" & Chr(13) & Chr(13)
   
   impresora.Initialize(Main.sManager.OutputStream)
   impresora.WriteLine(pagina)
   impresora.Flush
   impresora.Close
   
   'Activity.Finish
   
   StartActivity(Main)
End Sub
Sub Activity_Resume
   ' Obtenemos el pedido
      Dim pedidoObject As pedidoObjeto
      pedidoObject = BaseDatos.obtenerPedidoPorId(Main.tablaSeleccion)
      
   ' Obtenemos el cliente del pedido
      Dim clienteObject As clienteObjeto
      clienteObject = BaseDatos.ObtenerClientePorId(pedidoObject.cliente)
      
   Dim pagina As String
   Dim impresora As TextWriter
   
   Dim now As Long
   now = DateTime.now
   DateTime.DateFormat = "dd/MM/yyyy"
   
   pagina = "! U1 JOURNAL" & Chr(13) & Chr(10)
   pagina = pagina & "! U1 SETLP 7 0 24" & Chr(13) & Chr(10)
   pagina = pagina & "EMBUTIDOS CORONA S.A. DE C.V." & Chr(13)
   pagina = pagina & DateTime.Date(now) & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "LUIS ENRIQUE WILLIAMS 865" & Chr(13)
   pagina = pagina & "PARQUE INDUSTRIAL BELENES NORTE" & Chr(13)
   pagina = pagina & "ZAPOPAN, JALISCO MEXICO" & Chr(13)
   pagina = pagina & "C.P. 45150" & Chr(13)
   pagina = pagina & "RFC: EC0771130114" & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "CREDITO" & Chr(13)
   pagina = pagina & "FACTURADO A:" & Chr(13)
   pagina = pagina & clienteObject.nombre.Trim & Chr(13)
   pagina = pagina & clienteObject.direccion.Trim & Chr(13)
   pagina = pagina & clienteObject.colonia.Trim & Chr(13)
   pagina = pagina & clienteObject.ciudad.Trim & Chr(13)
   pagina = pagina & "RFC: " & clienteObject.rfc.Trim & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "   CANT DESC     P UNI   IMPORTE" & Chr(13)
   
   ' Obtenemos los detalles del pedido
   Dim detallesPedidoList As List
   detallesPedidoList = BaseDatos.ObtenerDetallesPedido(Main.tablaSeleccion)
   
   ' Variable para calcular el monto final
   Dim montoTotal As String
   montoTotal = "0"
   
   For i = 0 To detallesPedidoList.Size - 1
      Dim detallePedidoObject As detallePedidoObjeto
      detallePedidoObject = detallesPedidoList.Get(i)
      
      Dim articuloObject As articuloObjeto
      articuloObject = BaseDatos.ObtenerArticuloPorId(detallePedidoObject.articulo)
      
      ' Formato de la cantidad
         Dim finalCantidad As String
         finalCantidad = NumberFormat2(detallePedidoObject.kilos.Trim, 1, 3, 3, True)
         
         Dim longitudCantidad As Int
         longitudCantidad = finalCantidad.Length
         
         For j = longitudCantidad + 1 To 7
            pagina = pagina & " "
         Next
         
         pagina = pagina & finalCantidad & " "
         
      ' Formato de la descripcion
         Dim finalArticulo As String
         
         If articuloObject.nombre.Trim.Length > 28 Then
            finalArticulo = articuloObject.nombre.Trim.SubString2(0,28)
         Else
            finalArticulo = articuloObject.nombre.Trim
         End If
         
         Dim longitudArticulo As Int
         longitudArticulo = finalArticulo.Length
         
         Dim numeroRenglones As Int
         
         If longitudArticulo < 8 Then
            numeroRenglones = 1
         Else If longitudArticulo < 15 Then
            numeroRenglones = 2
         Else If longitudArticulo < 22 Then
            numeroRenglones = 3
         Else
            numeroRenglones = 4
         End If
         
         If longitudArticulo > 7 Then
            pagina = pagina & finalArticulo.SubString2(0,7) & " "
         Else
            pagina = pagina & finalArticulo
            
            For j = longitudArticulo + 1 To 8
               pagina = pagina & " "
            Next
         End If
      
      ' Formato del precio unitario
         Dim finalPrecio As String
         finalPrecio = NumberFormat2(detallePedidoObject.precioUnitario, 1, 2, 2, True)
         
         Dim longitudPrecio As Int
         longitudPrecio = finalPrecio.Length
         
         For j = longitudPrecio + 1 To 6
            pagina = pagina & " "
         Next
         
         pagina = pagina & finalPrecio & " "
      
      ' Formato del importe
         Dim finalImporte As String
         finalImporte = NumberFormat2(detallePedidoObject.subtotal, 1, 2, 2, True)
         
         Dim longitudImporte As Int
         longitudImporte = finalImporte.Length
         
         For j = longitudImporte + 1 To 9
            pagina = pagina & " "
         Next
         
         pagina = pagina & finalImporte & Chr(13)
      
      montoTotal = montoTotal + detallePedidoObject.subtotal
      
      If numeroRenglones > 1 Then
         For j = 2 To numeroRenglones
            If j = 2 Then
               pagina = pagina & "        "
               
               If(longitudArticulo > 14) Then
                  pagina = pagina & finalArticulo.SubString2(7,14) & " " & Chr(13)
               Else
                  pagina = pagina & finalArticulo.SubString(7) & Chr(13)
               End If
            Else If j = 3 Then
               pagina = pagina & "        "
               
               If(longitudArticulo > 21) Then
                  pagina = pagina & finalArticulo.SubString2(14,21) & " " & Chr(13)
               Else
                  pagina = pagina & finalArticulo.SubString(14) & Chr(13)
               End If
            Else
               pagina = pagina & "        " & finalArticulo.SubString(21) & Chr(13)
            End If
         Next
      End If
   Next
   
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "             SUBTOTAL: " 
   
   ' Formato del total
      Dim finalSubtotal As String
      finalSubtotal = NumberFormat2(montoTotal, 1, 2, 2, True)
      
      Dim longitudSubtotal As Int
      longitudSubtotal = finalSubtotal.Length
      
      For j = longitudSubtotal + 1 To 9
         pagina = pagina & " "
      Next
      
   pagina = pagina & finalSubtotal & Chr(13)
   pagina = pagina & "             IVA: " & "          0.00" & Chr(13)
   pagina = pagina & "             TOTAL:    " 
   
   ' Formato del total
      Dim finalTotal As String
      finalTotal = NumberFormat2(montoTotal, 1, 2, 2, True)
      
      Dim longitudTotal As Int
      longitudTotal = finalTotal.Length
      
      For j = longitudTotal + 1 To 9
         pagina = pagina & " "
      Next
   
   pagina = pagina & finalTotal & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "" & Chr(13)
   pagina = pagina & "     ______________________" & Chr(13)
   pagina = pagina & "       FIRMA DE RECIBIDO" & Chr(13) & Chr(13)
   
   impresora.Initialize(Main.sManager.OutputStream)
   impresora.WriteLine(pagina)
   impresora.Flush
   impresora.Close
   
   'Activity.Finish
   
   StartActivity(Main)
End Sub