AlmacenesVirutuales

This commit is contained in:
2019-11-13 13:01:47 -07:00
parent d7b4ea662c
commit dad0adba70
8 changed files with 852 additions and 653 deletions

View File

@@ -4156,7 +4156,7 @@ Namespace Modelos
End Select
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
DtExistencias = ObjInventario.DtResultados.FiltraParametros($"CvePS IS NOT NULL AND {Filtro}")
DtExistencias = ObjInventario.DtResultados.FiltraParametros($"CvePS IS NOT NULL AND {Filtro} AND CveTipoPS = 2")
TieneSalida = DtExistencias.Rows.Count > 0
Else
ErrorCancelar = True
@@ -4269,6 +4269,12 @@ Namespace Modelos
End If
End If
End If
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
End If
Else
'UTILIZA LA DEVOLUCION YA REALIZADA
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
@@ -4503,6 +4509,58 @@ Namespace Modelos
Return Retorno
End Function
Private Function GeneraMovimientosVirtuales(CveVenta As Integer, ByRef ObjInventario As ClsInventarios) As Boolean
Dim ErrorCancelar As Boolean = False
Try
If UsuarioActual.CveEmpresa = 140 Then
Dim CveMovimientoSalida As Integer = -1
Dim CveAlmacenVirutal As Integer = -1
Dim DtMovtosDev As DataTable = Nothing
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 24 AND CveConcepto = 3 AND CveVenta > 0")
CveMovimientoSalida = RowMovimiento("CveMovimiento").ToString().ToEntero()
CveAlmacenVirutal = RowMovimiento("CveAlmacen").ToString().ToEntero()
Else
ErrorCancelar = True
End If
If CveMovimientoSalida > 0 Then
'CARGA CONCEPTOS DEVUELTOS EN LA VENTA
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
DtMovtosDev = ObjInventario.DtResultados.Copy()
Else
ErrorCancelar = True
End If
If DtMovtosDev IsNot Nothing AndAlso DtMovtosDev.Rows.Count > 0 Then
Dim CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenVirutal, 18, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1)
For Each RowUsado As DataRow In DtMovtosDev.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
ErrorCancelar = True
Exit For
End If
Next
Else
ErrorCancelar = True
End If
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al realizar la devolución al almacen virtual.", ex)
ErrorCancelar = True
End Try
Return Not ErrorCancelar
End Function
Private Function GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento As Integer, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef DtDevRem As DataTable, ByRef ListaRemisionesCancelar As List(Of Integer)) As Boolean
Dim ErrorCancelar As Boolean = False

View File

@@ -408,7 +408,8 @@
</ContentTemplate>
</asp:UpdatePanel>
<asp:GridView ID="GvInv" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowFooter="True" ShowHeader="true" ShowHeaderWhenEmpty="True" DataKeyNames="EntregaDirecta,Consec,CodigoBarras,CvePS,CveUM,PU,CantidadC,CantidadF,UM,PS,CveCompraDetalle,CveOrdenCompraDetalle,PUExtranjero,AplicaSerieLote,CveClasificacion,Codigo,CveVentaDetalle,CostoIndirecto" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None">
<asp:GridView ID="GvInv" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowFooter="True" ShowHeader="true" ShowHeaderWhenEmpty="True"
DataKeyNames="EntregaDirecta,Consec,CodigoBarras,CvePS,CveUM,PU,CantidadC,CantidadF,UM,PS,CveCompraDetalle,CveOrdenCompraDetalle,PUExtranjero,AplicaSerieLote,CveClasificacion,Codigo,CveVentaDetalle,CostoIndirecto,CveTamaño" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None">
<HeaderStyle Height="58px" />
<Columns>
<asp:TemplateField>

File diff suppressed because it is too large Load Diff

View File

@@ -329,8 +329,18 @@
<asp:Literal Text="" runat="server" ID="LtTipoCambioAdvertencia"></asp:Literal>
</div>
</div>
</div>
<%--ADVERTENCIA--%>
<div class="col-md-12" style="vertical-align: middle;" align="center">
<div style="z-index: 5; position: relative;">
<div id="DivVirtualAdvertencia" visible="false" clientidmode="Static" runat="server" class="alert alert-warning" style="padding: 5px; margin-bottom: 5px; padding-right: 25px;">
<button type="button" class="close" data-dismiss="alert" style="margin-top: 5px;" aria-hidden="true"></button>
<strong style="font-size: 20px; margin-right: 25px;">Información: </strong>
<asp:Literal Text="" runat="server" ID="Literal1"></asp:Literal>
</div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6">
<asp:GridView ID="GvDocs" DataKeyNames="CveDocumentacion,Documentacion,Orden,CveDocumentacionElectronica,Adjunto,Estatus" runat="server" AutoGenerateColumns="False" ShowHeader="true" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-height="100" data-freezerows="1" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Documento" DataField="Documentacion" />
@@ -346,7 +356,6 @@
</div>
</div>
</div>
</ContentTemplate>
@@ -408,7 +417,8 @@
</div>
<%--GV DATOS--%>
<asp:GridView ID="GvDatos" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowFooter="True" ShowHeader="true" ShowHeaderWhenEmpty="True" DataKeyNames="Consec,CvePS,Codigo,CodigoBarras,AplicaSerieLote,CveUM,CantidadC,CantidadF,UM,PS,CveClasificacion,CveVentaDetalle" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD gvInventario mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None">
<asp:GridView ID="GvDatos" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowFooter="True" ShowHeader="true" ShowHeaderWhenEmpty="True"
DataKeyNames="Consec,CvePS,Codigo,CodigoBarras,AplicaSerieLote,CveUM,CantidadC,CantidadF,UM,PS,CveClasificacion,CveVentaDetalle,CveTamaño,PUVenta" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD gvInventario mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None">
<HeaderStyle Height="58px" />
<Columns>
<asp:TemplateField>

View File

@@ -3,6 +3,7 @@ Option Explicit On
Imports System.Data
Imports System.IO
Imports System.Linq
Imports Extensiones
Partial Class Inventarios_RecepcionEntrega
@@ -711,6 +712,11 @@ Partial Class Inventarios_RecepcionEntrega
DivTipoCambioAdvertencia.Visible = False
End If
'If DtDatos.Rows.Cast(Of DataRow).Any(Function(Row) Row("CveTamaño").ToString().ToEntero() > 0) Then
'End If
DdlAlmacen.Items.Clear()
If CveAlmacenTraspasoOrigen > 0 Then
DdlAlmacen.Items.Insert(0, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveAlmacenTraspasoOrigen}"), CveAlmacenTraspasoOrigen.ToString))
@@ -1526,6 +1532,9 @@ Partial Class Inventarios_RecepcionEntrega
Dim CveMovimientoGarantia As Integer = -1
Dim FolioGarantia As Integer = -1
Dim CveMovimientoVirtual As Integer = -1
Dim FolioVirtual As Integer = -1
'PASA DATOS DEL GV A DATATABLE PARA MANEJOR CON FOR EACH
Dim Index = 0
For Each gvr As GridViewRow In GvDatos.Rows
@@ -1901,7 +1910,7 @@ Partial Class Inventarios_RecepcionEntrega
DtGarantias = ObjAcumuladores.DtResultados.Copy()
End If
If DtGarantias IsNot Nothing AndAlso DtGarantias.Rows.Count > 0 Then
If DtGarantias IsNot Nothing AndAlso DtGarantias.Rows.Count > 0 AndAlso CveAlmacenGarantia > 0 Then
CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, 2, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text)
FolioGarantia = ObjInventario.Folio
@@ -1922,6 +1931,66 @@ Partial Class Inventarios_RecepcionEntrega
' TERMINA: GARANTIAS
' COMIENZA: VIRTUAL
If TipoDocto.Contiene("Ing", "Rem") AndAlso UsuarioActual.CveEmpresa = 140 AndAlso TipoMovimiento = 1 Then
Dim DtTamanios As New DataTable("DtTamanios")
DtTamanios.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
DtTamanios.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
DtTamanios.Columns.Add(New DataColumn("PU", GetType(Decimal)))
DtTamanios.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
If ObjAcumuladores.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
For Each GvRow As GridViewRow In GvDatos.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
For Each Tam As DataRow In ObjAcumuladores.DtResultados.Rows
If Tam("CveTamaño").ToString() = GvRow.DataKey("CveTamaño") Then
Dim Row As DataRow = DtTamanios.NewRow()
Row("CvePS") = Tam("CvePSCargo").ToString().ToEntero()
Row("Cantidad") = GvRow.FCTextBox("TbCantidadF").Text.ToDecimal()
Row("PU") = GvRow.DataKey("PUVenta").ToDecimal()
Row("CveUM") = GvRow.DataKey("CveUM").ToEntero()
DtTamanios.Rows.Add(Row)
End If
Next
End If
Next
End If
Dim CveAlmacenVirutal As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
If DtTamanios IsNot Nothing AndAlso DtTamanios.Rows.Count > 0 AndAlso CveAlmacenVirutal > 0 Then
Dim CveConceptoMovimientoVirtual = If(TipoMovimiento = 1, 3, 18) 'CHECA SI ES ENTRADA O DEVOLUCION
CveAlmacenVirutal = ObjInventario.AddMovimiento(CveAlmacenVirutal, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text)
FolioVirtual = ObjInventario.Folio
For Each RowUsado As DataRow In DtTamanios.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadEntrada As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveAlmacenVirutal, CantidadEntrada, CveUM, CvePS, PU, -1) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
Exit For
End If
Next
Else
ErrorMovInv = True
End If
If DtTamanios.Rows.Count = 0 Then
ErrorMovInv = True
End If
End If
' TERMINA: VIRTUAL
If Not ErrorMovInv Then
Dim ConceptoMovimiento = 3
ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
@@ -2389,8 +2458,14 @@ Partial Class Inventarios_RecepcionEntrega
Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia)))
End If
'VIRTUAL
If CveMovimientoVirtual > 0 Then
Msg.AppendFormat("<br/> Movimiento de Salida del Almacen Virtal: Folio : ")
Msg.AppendFormat("<b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoVirtual, FolioVirtual)
End If
'If CveMovimientoSalidaDevRem > 0 Then
' Msg.AppendFormat("<br/><br/> Movimiento de salida de devolución (Traspaso): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoSalidaDevRem, FolioMovimientoSalidaDevRem)
' Msg.AppendFormat(" < br /<> br /> Movimiento de salida de devolución (Traspaso): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoSalidaDevRem, FolioMovimientoSalidaDevRem)
' Msg.AppendFormat("<br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalidaDevRem)))
' Msg.AppendFormat("<br/><br/> Movimiento de entrada de devolución (Traspaso): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoEntradaDevRem, FolioMovimientoEntradaDevRem)

View File

@@ -638,7 +638,7 @@ Partial Class Inventarios_TraspasoAlmacen
End If
'VALIDA ALMACEN DISTINTA SUCURSAL DEBE SER TRANSITORIO
If UsuarioActual.CveEmpresa <> 7 Then '[IPP] EMPRESA VIGILANCIA NO OCUPA TRANSITORIOS - TIENEN MIL SUCURSALES Xd
If Not UsuarioActual.CveEmpresa.Contiene(7, 140) Then '[IPP] EMPRESA VIGILANCIA NO OCUPA TRANSITORIOS - TIENEN MIL SUCURSALES Xd
If Not ChkTransitorio.Checked Then
Dim CveSucursalOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}")
Dim CveSucursalDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}")
@@ -747,7 +747,7 @@ Partial Class Inventarios_TraspasoAlmacen
Dim ErrorMovInv As Boolean = False
Dim ErrorAC As Boolean = False
Dim TextoError = ""
Dim TipoMovimientoSalida = If(ChkTransitorio.Checked, 26, 8)
Dim TipoMovimientoSalida = If(ChkTransitorio.Checked, 26, If(TipoAlmacenOrigen = 24, 26, 8))
'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN

View File

@@ -92,8 +92,9 @@ Partial Class Ventas_RepRecuperacion
'Carga Bancos'
DdlBanco.DataSource = GlobalDTBancos().FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}")
DdlBanco.Items.Insert(0, New ListItem("Todos", "-1"))
DdlBanco.DataBind()
DdlBanco.DataBind()
DdlBanco.Items.Insert(0, New ListItem("Todos", "-1"))
DdlBanco.Items.Add(New ListItem("Empresa", "0"))
'Carga Clasificacion Cliente'
Dim ObjCliente As New ClsClientes
@@ -178,10 +179,8 @@ Partial Class Ventas_RepRecuperacion
#Region "SELECTED INDEX CHANGE"
Protected Sub DdlBanco_SelectedIndexChanged(sender As Object, e As EventArgs)
DdlCuentaBancaria.Items.Clear()
If DdlBanco.SelectedValue.ToEntero > 0 Then
DdlCuentaBancaria.DataSource = GlobalDTBancosCuentas(-1).FiltraParametros($"CveBanco = {DdlBanco.SelectedValue.ToEntero}")
End If
DdlCuentaBancaria.Items.Clear()
DdlCuentaBancaria.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros($"CveBanco = {DdlBanco.SelectedValue.ToEntero}")
DdlCuentaBancaria.Items.Insert(0, New ListItem("Todos", "-1"))
DdlCuentaBancaria.DataBind()
End Sub

View File

@@ -3344,7 +3344,7 @@ Partial Class Ventas
Dim Cons As Integer = 1
For Each dr As DataRow In OS.DtResultados.FiltraParametros("SeFacturara = 1 ").Rows
AgregarProductoServicio(dr("Cantidad").ToString.ToDecimal, dr("CveUM").ToString.ToEntero, dr("UM").ToString, -1, "", dr("CvePS").ToString.ToEntero, "", dr("Obs").ToString, dr("PU"), 0, -1, "",
AgregarProductoServicio(dr("Cantidad").ToString.ToDecimal, dr("CveUM").ToString.ToEntero, dr("UM").ToString, -1, "", dr("CvePS").ToString.ToEntero, "", dr("Obs").ToString, dr("PU").ToString.ToDecimal, 0, -1, "",
dr("CveSubProyecto").ToString.ToEntero, dr("SubProyecto").ToString)
'Dim drt As DataRow = TmpDT.NewRow
@@ -6862,7 +6862,7 @@ Partial Class Ventas
End If
ElseIf UsuarioActual.Empresa.TipoFacturacion = "CBB" Then
GeneraPDFCBB(ObjFactura.Fecha, Nothing, ObjFactura.SerieFolio, False)
GeneraPDFCBB(ObjFactura.FechaCP, Nothing, ObjFactura.SerieFolio, False)
End If
End If
@@ -13499,17 +13499,21 @@ Partial Class Ventas
Return False
End If
If TmpDT IsNot Nothing AndAlso TmpDT.Rows.Count >= 1 Then
Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).Rows(0)
If DrPS IsNot Nothing Then
If DrPS("CveMoneda").ToString.ToEntero <> DdlMoneda.SelectedValue.ToEntero Then
Alert("No puede agregar un producto de diferente moneda a la ya seleccionada", TipoMensaje.MsgAdvertencia)
Return False
'SI NO TIENE LA FUNCIONALIDAD VALIDARA LAS MONEDAS
If Not UsuarioActual.Empresa.Funcionalidad(524) <> "" Then
If TmpDT IsNot Nothing AndAlso TmpDT.Rows.Count >= 1 Then
Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).Rows(0)
If DrPS IsNot Nothing Then
If DrPS("CveMoneda").ToString.ToEntero <> DdlMoneda.SelectedValue.ToEntero Then
Alert("No puede agregar un producto de diferente moneda a la ya seleccionada", TipoMensaje.MsgAdvertencia)
Return False
End If
End If
End If
End If
If Not UsuarioActual.TienePermisoProceso(169) Then ' NO VALIDA EXISTENCIAS NI COSTO - PERMISO PARA NO VALIDAR
' NO VALIDA EXISTENCIAS NI COSTO - PERMISO PARA NO VALIDAR
If Not UsuarioActual.TienePermisoProceso(169) Then
'SOLO VALIDA EXISTENCIAS Y COSTO: SI USA INVENTARIOS, SOLO PRODUCTOS TIPO PRODUCTO, SOLO REMISIONES E INGRESOS
If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") Or (DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119))) Then
Dim ObjInventarios As New ClsInventarios
@@ -15463,7 +15467,7 @@ Partial Class Ventas
Cuerpo = Cuerpo.Replace("{""Fecha""}", TxtFecha.Text)
Cuerpo = Cuerpo.Replace("{""Total""}", TxtTotal.Text)
Cuerpo = Cuerpo.Replace("{""FechaVencimiento""}", TxtFechaPago.Text)
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", $"{LblSerie.Text} - {TxtFolio.Text}")
Cuerpo = Cuerpo.Replace("{""SerieFolio""}", ObjFactura.SerieFolio)
End If
If UsuarioActual.Empresa.AsuntoPlantillaMailVenta.Trim.Length > 0 Then
@@ -18411,7 +18415,7 @@ Partial Class Ventas
strBody.AppendFormat(" <div id=""C_divOC"" style=""width: 630px""> <fieldset> <legend><b>Datos de {0}</b></legend> ", DdlTipoComprobante.SelectedItem.Text)
strBody.Append(" <table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td style=""width: 90px""> Serie-Folio:</td><td style=""width: 125px""><b>{0}-{1}</b></td> ", LblSerie.Text, TxtFolio.Text)
strBody.AppendFormat(" <td style=""width: 90px""> Serie-Folio:</td><td style=""width: 125px""><b>{0}</b></td> ", ObjFactura.SerieFolio)
strBody.Append(" </tr> ")
strBody.Append(" <tr style=""height: 22px""> ")
strBody.AppendFormat(" <td style=""width: 90px""> Empresa:</td><td colspan=""3""><b>{0}</b></td> ", UsuarioActual.Empresa.Empresa)