From fd75484f1cfcf33872da1424a0a277e800d32726 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 2 Dec 2019 16:59:38 -0700 Subject: [PATCH] =?UTF-8?q?-fecha=20de=20fluctuaci=C3=B3n=20ventas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Clientes.aspx.vb | 396 ++++++++++++++++++++-------------------- Ventas/Ventas.aspx.vb | 2 +- 2 files changed, 199 insertions(+), 199 deletions(-) diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index b57206abe..4c705db45 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -8743,14 +8743,14 @@ Partial Class Clientes CreaObjetosVenta(1) - If ObjFactura.CveCliente > 0 Then - If TmpDT.Rows.Count > 0 Then - Dim Retorno = ObjFactura.EmitirFactura() - For Each Mensaje In Retorno.Mensajes - Alert(Mensaje, If(Retorno.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion)) - Next - End If - End If + 'If ObjFactura.CveCliente > 0 Then + ' If TmpDT.Rows.Count > 0 Then + ' Dim Retorno = ObjFactura.EmitirFactura() + ' For Each Mensaje In Retorno.Mensajes + ' Alert(Mensaje, If(Retorno.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion)) + ' Next + ' End If + 'End If CargaUsados() @@ -8790,16 +8790,16 @@ Partial Class Clientes ' Alert("No esta asignada la funcionalidad CvePS Distruibuidor Bonificación Nota") 'End If - CreaObjetosVenta(1) + CreaObjetosVenta(2) - If ObjFactura.CveCliente > 0 Then - If TmpDT.Rows.Count > 0 Then - Dim Retorno = ObjFactura.EmitirFactura() - For Each Mensaje In Retorno.Mensajes - Alert(Mensaje, If(Retorno.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion)) - Next - End If - End If + 'If ObjFactura.CveCliente > 0 Then + ' If TmpDT.Rows.Count > 0 Then + ' Dim Retorno = ObjFactura.EmitirFactura() + ' For Each Mensaje In Retorno.Mensajes + ' Alert(Mensaje, If(Retorno.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion)) + ' Next + ' End If + 'End If CargaUsados() @@ -8819,11 +8819,11 @@ Partial Class Clientes If DTSucursales.Rows.Count > 0 Then - If ObjFolios.GetFolios(If(Tipo = 1, "RNC", "Egs"), UsuarioActual.CveEmpresa) Then - + If ObjFolios.GetFolios("RNC", UsuarioActual.CveEmpresa) Then + Dim CveSubProyecto As Integer = DTSucursales.FiltroPrimeroValor("CveSubProyecto", "").ToEntero Dim DT As DataTable - If UsuarioActual.CveSubProyecto > 0 Then - DT = ObjFolios.DtResultados.FiltraParametros(" Estado = 'Activo' AND LEN(Serie) > 0 ") + If CveSubProyecto > 0 Then + DT = ObjFolios.DtResultados.FiltraParametros(" Estado = 'Activo' AND LEN(Serie) > 0 AND CveSubProyecto = " & CveSubProyecto) Else DT = ObjFolios.DtResultados.FiltraParametros(" Estado = 'Activo' AND LEN(Serie) > 0 ") End If @@ -9213,7 +9213,7 @@ Partial Class Clientes ObjFactura.CveMoneda = 1 ObjFactura.Moneda = "Pesos" ObjFactura.MonedaSAT = "MXN" - ObjFactura.TipoDocto = If(Tipo = 1, "RNC", "Egs") + ObjFactura.TipoDocto = "RNC" ObjFactura.Folio = Folio @@ -9366,183 +9366,183 @@ Partial Class Clientes Dim TmpDT7Eleven As New DataTable Dim TmpDTComplementosTimbrado As New DataTable - PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado) + 'PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado) - ObjFactura.FemsaFactura = FM - - ObjFactura.Timbre = PreParaTimbre(ObjFactura) - - End Sub - - Private Sub PrepararTimbrado(ByRef FM As Modelos.FemsaFactura, ByRef TmpDT7Eleven As DataTable, ByRef TmpDTComplementosTimbrado As DataTable) - FM.AplicaFEMSA = ChkAplicaFEMSA.Checked - FM.FEMSA_NumSociedad = "" - FM.FEMSA_NumProveedor = "" - FM.FEMSA_Mail = "" - FM.FEMSA_Version = "".ToEntero - FM.FEMSA_NumPedido = "".ToEntero - FM.FEMSA_NumEntrada = "" - FM.FEMSA_NumRemision = "" - FM.FEMSA_NumSocio = "" - FM.FEMSA_CentroCosto = "" - FM.FEMSA_IPeriodoLiquidacion = "" - FM.FEMSA_FPeriodoLiquidacion = "" - FM.FEMSA_CodRetencion1 = "" - FM.FEMSA_CodRetencion2 = "" - - TmpDT7Eleven.Columns.Add("sevenElevenNumProveedor") - TmpDT7Eleven.Columns.Add("sevenElevenFolio") - TmpDT7Eleven.Columns.Add("sevenElevenTienda") - TmpDT7Eleven.Columns.Add("sevenElevenFecha") - - Dim Row As DataRow = TmpDT7Eleven.NewRow - Row("sevenElevenNumProveedor") = "" - Row("sevenElevenFolio") = "" - Row("sevenElevenTienda") = "" - Row("sevenElevenFecha") = "" - - TmpDT7Eleven.Rows.Add(Row) - - TmpDTComplementosTimbrado.Columns.Add("CveComplemento") - TmpDTComplementosTimbrado.Columns.Add("IdContabilidad") - TmpDTComplementosTimbrado.Columns.Add("TipoProceso") - TmpDTComplementosTimbrado.Columns.Add("TipoAmbito") - TmpDTComplementosTimbrado.Columns.Add("Entidad") - - Dim Row2 As DataRow = TmpDTComplementosTimbrado.NewRow - Row2("CveComplemento") = -1 - Row2("IdContabilidad") = -1 - Row2("TipoProceso") = -1 - Row2("TipoAmbito") = -1 - Row2("Entidad") = -1 - - TmpDTComplementosTimbrado.Rows.Add(Row2) - End Sub - - Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre - Dim Timbre As New CFDITimbre - Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", "")) - Timbre.Comprobante.Folio = Obj.Folio.ToString - Timbre.Comprobante.Serie = Obj.Serie - Timbre.Comprobante.Fecha = Obj.FechaCP - Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33 - Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33 - Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT - Timbre.Comprobante.Subtotal = Obj.SubTotal - Timbre.Comprobante.Descuentos = Obj.Descuento - Timbre.Comprobante.Moneda = Obj.MonedaSAT - Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString) - Timbre.Comprobante.Total = Obj.Total - - Try - Obj.SetSubProyecto(Me) - Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP - Catch ex As Exception - - End Try - - Timbre.Comprobante.Confirmacion = "" - - Timbre.Receptor.RFC = Obj.Cliente.RFC - Timbre.Receptor.Nombre = Obj.Cliente.Nombre - Timbre.Receptor.ResidenciaFiscal = "" - Timbre.Receptor.NumeroRegistroTributario = "" - Timbre.Receptor.UsoCFDI = Obj.ClaveUsoCFDI - - - If Obj.CveTipoRelacion > 0 Then - Select Case Obj.CveTipoRelacion - Case 1 - Timbre.CFDIRelacionados.TipoRelacion = "01" - Timbre.CFDIRelacionados.TipoRelacionTexto = "01-Nota de Crédito aplicada a Ingreso" - Case 2 - Timbre.CFDIRelacionados.TipoRelacion = "02" - Timbre.CFDIRelacionados.TipoRelacionTexto = "02-Nota de débito de los documentos relacionados" - Case 3 - Timbre.CFDIRelacionados.TipoRelacion = "03" - Timbre.CFDIRelacionados.TipoRelacionTexto = "03-Devolución aplicada a Ingreso" - Case 4 - Timbre.CFDIRelacionados.TipoRelacion = "04" - Timbre.CFDIRelacionados.TipoRelacionTexto = "04-Refacturación de Ingreso" - Case 7 - Timbre.CFDIRelacionados.TipoRelacion = "07" - Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo" - Case 8 - Timbre.CFDIRelacionados.TipoRelacion = "08" - Timbre.CFDIRelacionados.TipoRelacionTexto = "08-Factura generada por pagos en parcialidades " - Case 9 - Timbre.CFDIRelacionados.TipoRelacion = "09" - Timbre.CFDIRelacionados.TipoRelacionTexto = "09-Factura generada por pagos diferidos" - - End Select - End If - - Dim totSubTotal As Decimal = Obj.SubTotal - Dim totIVA As Decimal = Obj.IVA - Dim totRetIVA As Decimal = Obj.RetIVA - Dim totRetISR As Decimal = Obj.RetISR - Dim TasaRetIVA As Decimal = 0 - Dim TasaRetISR As Decimal = 0 - Dim i As Integer = 1 - - 'detalles - Dim tPS As String = "" - - For Each drr As DataRow In Obj.DtDetalle.Rows - If drr("PS").ToString.Length = 1 Then - tPS = drr("Obs").ToString - Else - If drr("PS").ToString.Length = 0 Then - tPS = "" - Else - tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) - End If - End If - 'condicionante, especial - If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" ' les comentan que no debe de ir la etiqueta de "unidad" en el producto - - Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal, - .Descripcion = tPS, - .ValorUnitario = drr("PU").ToString.ToDecimal, - .Importe = drr("TotalImporte").ToString.ToDecimal, - .Descuento = drr("Descuento").ToString.ToDecimal, - .Unidad = drr("UM").ToString, - .ClaveUnidad = drr("SATClaveUM").ToString, - .ClaveProdServ = drr("SATClaveProdServ").ToString, - .Noidentificacion = drr("Noidentificacion").ToString, - .CuentaPredial = drr("CuentaPredial").ToString} - 'verifica suma subtotales - If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'proceso de ajusta de decimales - concepto.Importe = totSubTotal - End If - totSubTotal = totSubTotal - concepto.Importe - - 'siempre estaremos agregando el iva, auqnue sea en importe cero o tasa cero, para que se emita la factura - ' If drr("ImporteIVA").ToString.ToDouble > 0 Then - - 'si es ingreso amortizado por la totalidad, y arroja el valor total de cero, no debe de impuestos - If Timbre.Comprobante.Total > 0 Then - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal}) - End If - - If drr("ImporteIEPS").ToString.ToDouble > 0 Then - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIEPS").ToString.ToDecimal, .Impuesto = "003", .Importe = drr("ImporteIEPS").ToString.ToDecimal}) - End If - - If drr("ImporteRetIVA").ToString.ToDouble > 0 Then 'si hay retenciones - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = TasaRetIVA, .Impuesto = "002", .Importe = drr("ImporteRetIVA").ToString.ToDecimal}) - End If - - If drr("ImporteRetISR").ToString.ToDouble > 0 Then 'retención de ISR - concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = TasaRetISR, .Impuesto = "001", .Importe = drr("ImporteRetISR").ToString.ToDecimal}) - End If - - Timbre.Conceptos.Add(concepto) - i += 1 - Next - - Return Timbre - End Function + ObjFactura.FemsaFactura = FM + + ' ObjFactura.Timbre = PreParaTimbre(ObjFactura) + + End Sub + + 'Private Sub PrepararTimbrado(ByRef FM As Modelos.FemsaFactura, ByRef TmpDT7Eleven As DataTable, ByRef TmpDTComplementosTimbrado As DataTable) + ' FM.AplicaFEMSA = ChkAplicaFEMSA.Checked + ' FM.FEMSA_NumSociedad = "" + ' FM.FEMSA_NumProveedor = "" + ' FM.FEMSA_Mail = "" + ' FM.FEMSA_Version = "".ToEntero + ' FM.FEMSA_NumPedido = "".ToEntero + ' FM.FEMSA_NumEntrada = "" + ' FM.FEMSA_NumRemision = "" + ' FM.FEMSA_NumSocio = "" + ' FM.FEMSA_CentroCosto = "" + ' FM.FEMSA_IPeriodoLiquidacion = "" + ' FM.FEMSA_FPeriodoLiquidacion = "" + ' FM.FEMSA_CodRetencion1 = "" + ' FM.FEMSA_CodRetencion2 = "" + + ' TmpDT7Eleven.Columns.Add("sevenElevenNumProveedor") + ' TmpDT7Eleven.Columns.Add("sevenElevenFolio") + ' TmpDT7Eleven.Columns.Add("sevenElevenTienda") + ' TmpDT7Eleven.Columns.Add("sevenElevenFecha") + + ' Dim Row As DataRow = TmpDT7Eleven.NewRow + ' Row("sevenElevenNumProveedor") = "" + ' Row("sevenElevenFolio") = "" + ' Row("sevenElevenTienda") = "" + ' Row("sevenElevenFecha") = "" + + ' TmpDT7Eleven.Rows.Add(Row) + + ' TmpDTComplementosTimbrado.Columns.Add("CveComplemento") + ' TmpDTComplementosTimbrado.Columns.Add("IdContabilidad") + ' TmpDTComplementosTimbrado.Columns.Add("TipoProceso") + ' TmpDTComplementosTimbrado.Columns.Add("TipoAmbito") + ' TmpDTComplementosTimbrado.Columns.Add("Entidad") + + ' Dim Row2 As DataRow = TmpDTComplementosTimbrado.NewRow + ' Row2("CveComplemento") = -1 + ' Row2("IdContabilidad") = -1 + ' Row2("TipoProceso") = -1 + ' Row2("TipoAmbito") = -1 + ' Row2("Entidad") = -1 + + ' TmpDTComplementosTimbrado.Rows.Add(Row2) + 'End Sub + + 'Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre + ' Dim Timbre As New CFDITimbre + ' Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", "")) + ' Timbre.Comprobante.Folio = Obj.Folio.ToString + ' Timbre.Comprobante.Serie = Obj.Serie + ' Timbre.Comprobante.Fecha = Obj.FechaCP + ' Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33 + ' Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33 + ' Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT + ' Timbre.Comprobante.Subtotal = Obj.SubTotal + ' Timbre.Comprobante.Descuentos = Obj.Descuento + ' Timbre.Comprobante.Moneda = Obj.MonedaSAT + ' Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString) + ' Timbre.Comprobante.Total = Obj.Total + + ' Try + ' Obj.SetSubProyecto(Me) + ' Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP + ' Catch ex As Exception + + ' End Try + + ' Timbre.Comprobante.Confirmacion = "" + + ' Timbre.Receptor.RFC = Obj.Cliente.RFC + ' Timbre.Receptor.Nombre = Obj.Cliente.Nombre + ' Timbre.Receptor.ResidenciaFiscal = "" + ' Timbre.Receptor.NumeroRegistroTributario = "" + ' Timbre.Receptor.UsoCFDI = Obj.ClaveUsoCFDI + + + ' If Obj.CveTipoRelacion > 0 Then + ' Select Case Obj.CveTipoRelacion + ' Case 1 + ' Timbre.CFDIRelacionados.TipoRelacion = "01" + ' Timbre.CFDIRelacionados.TipoRelacionTexto = "01-Nota de Crédito aplicada a Ingreso" + ' Case 2 + ' Timbre.CFDIRelacionados.TipoRelacion = "02" + ' Timbre.CFDIRelacionados.TipoRelacionTexto = "02-Nota de débito de los documentos relacionados" + ' Case 3 + ' Timbre.CFDIRelacionados.TipoRelacion = "03" + ' Timbre.CFDIRelacionados.TipoRelacionTexto = "03-Devolución aplicada a Ingreso" + ' Case 4 + ' Timbre.CFDIRelacionados.TipoRelacion = "04" + ' Timbre.CFDIRelacionados.TipoRelacionTexto = "04-Refacturación de Ingreso" + ' Case 7 + ' Timbre.CFDIRelacionados.TipoRelacion = "07" + ' Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo" + ' Case 8 + ' Timbre.CFDIRelacionados.TipoRelacion = "08" + ' Timbre.CFDIRelacionados.TipoRelacionTexto = "08-Factura generada por pagos en parcialidades " + ' Case 9 + ' Timbre.CFDIRelacionados.TipoRelacion = "09" + ' Timbre.CFDIRelacionados.TipoRelacionTexto = "09-Factura generada por pagos diferidos" + + ' End Select + ' End If + + ' Dim totSubTotal As Decimal = Obj.SubTotal + ' Dim totIVA As Decimal = Obj.IVA + ' Dim totRetIVA As Decimal = Obj.RetIVA + ' Dim totRetISR As Decimal = Obj.RetISR + ' Dim TasaRetIVA As Decimal = 0 + ' Dim TasaRetISR As Decimal = 0 + ' Dim i As Integer = 1 + + ' 'detalles + ' Dim tPS As String = "" + + ' For Each drr As DataRow In Obj.DtDetalle.Rows + ' If drr("PS").ToString.Length = 1 Then + ' tPS = drr("Obs").ToString + ' Else + ' If drr("PS").ToString.Length = 0 Then + ' tPS = "" + ' Else + ' tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) + ' End If + ' End If + ' 'condicionante, especial + ' If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" ' les comentan que no debe de ir la etiqueta de "unidad" en el producto + + ' Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal, + ' .Descripcion = tPS, + ' .ValorUnitario = drr("PU").ToString.ToDecimal, + ' .Importe = drr("TotalImporte").ToString.ToDecimal, + ' .Descuento = drr("Descuento").ToString.ToDecimal, + ' .Unidad = drr("UM").ToString, + ' .ClaveUnidad = drr("SATClaveUM").ToString, + ' .ClaveProdServ = drr("SATClaveProdServ").ToString, + ' .Noidentificacion = drr("Noidentificacion").ToString, + ' .CuentaPredial = drr("CuentaPredial").ToString} + ' 'verifica suma subtotales + ' If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'proceso de ajusta de decimales + ' concepto.Importe = totSubTotal + ' End If + ' totSubTotal = totSubTotal - concepto.Importe + + ' 'siempre estaremos agregando el iva, auqnue sea en importe cero o tasa cero, para que se emita la factura + ' ' If drr("ImporteIVA").ToString.ToDouble > 0 Then + + ' 'si es ingreso amortizado por la totalidad, y arroja el valor total de cero, no debe de impuestos + ' If Timbre.Comprobante.Total > 0 Then + ' concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal}) + ' End If + + ' If drr("ImporteIEPS").ToString.ToDouble > 0 Then + ' concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIEPS").ToString.ToDecimal, .Impuesto = "003", .Importe = drr("ImporteIEPS").ToString.ToDecimal}) + ' End If + + ' If drr("ImporteRetIVA").ToString.ToDouble > 0 Then 'si hay retenciones + ' concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = TasaRetIVA, .Impuesto = "002", .Importe = drr("ImporteRetIVA").ToString.ToDecimal}) + ' End If + + ' If drr("ImporteRetISR").ToString.ToDouble > 0 Then 'retención de ISR + ' concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "R", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = TasaRetISR, .Impuesto = "001", .Importe = drr("ImporteRetISR").ToString.ToDecimal}) + ' End If + + ' Timbre.Conceptos.Add(concepto) + ' i += 1 + ' Next + + ' Return Timbre + 'End Function 'Private Function GenerarNotaCredito(CvePS As Integer, Tipo As Integer, CveUnidadMedida As Integer, Importe As Decimal, Iva As Decimal, Descripcion As String, CveClasificacion As Integer) As Boolean diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 50bb5ccd1..1fd9ae7db 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -21488,7 +21488,7 @@ Partial Class Ventas If ObjIE.DtResultados.Rows.Count > 0 Then Dim tFecha As Date = TxtFecha.Text.ToDate Dim Fecha As String = String.Format("{0}/{1}/{2}", tFecha.Year, tFecha.Month, tFecha.Day) - Dim drr As DataRow = ObjIE.DtResultados.FiltroPrimero("Fecha < #" & Fecha & "#", "Fecha DESC") + Dim drr As DataRow = ObjIE.DtResultados.FiltroPrimero("Fecha > #" & Fecha & "#", "Fecha DESC") If drr IsNot Nothing Then TipoCambioFactura = drr("TipoCambio").ToString.ToDecimal