Imports System.Data Imports Extensiones Imports System.Web.Services Imports System.Xml Partial Class Contabilidad_DiarioCompras Inherits ClsPaginas Private Property DtDatos As DataTable Get Return CType(ViewState("DtDatos"), DataTable) End Get Set(value As DataTable) ViewState("DtDatos") = value End Set End Property Private Property DtDatosFyE As DataTable Get Return CType(ViewState("DtDatosFyE"), DataTable) End Get Set(value As DataTable) ViewState("DtDatosFyE") = value End Set End Property Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then TxtFecha.Text = Today.ToShortDateString DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() txtFechaI.Text = Now.AddMonths(0).FirstDayOfMonth.ToShortDateString txtFechaF.Text = Now.ToShortDateString If UsuarioActual.Sesion("DiarioCompras-CveProveedor").ToString <> "" Then DdlProveedores.SelectedValue = UsuarioActual.Sesion("DiarioCompras-CveProveedor").ToString.Trim If UsuarioActual.Sesion("DiarioCompras-FI").ToString <> "" Then txtFechaI.Text = UsuarioActual.Sesion("DiarioCompras-FI").ToString.Trim If UsuarioActual.Sesion("DiarioCompras-FF").ToString <> "" Then txtFechaF.Text = UsuarioActual.Sesion("DiarioCompras-FF").ToString.Trim CargaDatos() 'Dim wsTC As New wsTipoCambio.DgieWSPortClient 'Dim StrTC As String = wsTC.tiposDeCambioBanxico 'Dim XMLDoc As New XmlDocument 'Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable) 'XMLDoc.Load(StrTC) 'Dim nodo As XmlNode = XMLDoc.DocumentElement 'XMLDoc.SelectSingleNode(String.Format("//{0}:DataSet", "bm"), namespaces) End If End Sub Private Sub CargaDatos() Dim Conta As New ClsContabilidad If Conta.GetDiarioCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 1, UsuarioActual.CveEmpresa) Then DtDatos = Conta.DtResultados 'Conta.GetConta_TiposPoliza() Dim Cc As New ClsContPAQi(UsuarioActual.Empresa) If Cc.GetTiposPoliza(-1, "-1") Then DdlPolizaTipo.DataSource = Cc.DtResultados DdlPolizaTipo.DataBind() End If 'busco si se ocupa el tipo de cambio If UsuarioActual.CveEmpresa = 66 Then DdlPolizaTipo.SelectedValue = "3" End If If DtDatos.FiltraParametros("CveMoneda <> 1").Rows.Count > 0 Then 'hay movimientos que son diferentes a pesos TbTipoCambio.Visible = True TxtTC.Text = Cc.getTipoCambio(Today).ToString TxtFecha.AutoPostBack = True If TxtTC.Text.ToDouble > 0 Then TxtTC.Enabled = False Else TxtTC.Text = "" End If Cc.Dispose() End If If Conta.GetDiarioCompras(DdlProveedores.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, 2, UsuarioActual.CveEmpresa) Then DtDatosFyE = Conta.DtResultados End If Conta.Dispose() CargaGrid() End Sub Private Sub CargaGrid() 'hago un filtro, primero muestro lo encabezados de las facturas y dentro del grid filtro los detalles de cada factura If DtDatos IsNot Nothing Then Dim dtt As DataTable = DtDatos.FiltraParametros("CvePS = -1") LblTotComp.Text = String.Format("{0} Registros", DtDatos.COUNT("CvePS", "CvePS = -1")) Gv.DataSource = dtt Gv.DataBind() 'hago un filtro, primero muestro lo encabezados de las facturas y dentro del grid filtro los detalles de cada factura dtt = DtDatosFyE.FiltraParametros("CvePS = -1") LblTotFyE.Text = String.Format("{0} Registros", DtDatosFyE.COUNT("CvePS", "CvePS = -1")) GvFyE.DataSource = dtt GvFyE.DataBind() End If UPPDatos.Update() End Sub Protected Sub Gv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles Gv.RowDataBound, GvFyE.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim Grid As String = DirectCast(sender, GridView).ID If e.Row.DBCampo("IdCtaContProveedores").ToEntero = 0 Then 'falta vicularse el proveedor e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable" End If 'If e.Row.DBCampo("CveMoneda") = "2" AndAlso e.Row.DBCampo("IdCtaContComplementaria").ToEntero = 0 Then ' 'falta vicularse al proveedor la cuenta contable ' e.Row.FCHyperLink("HplProv").ForeColor = Drawing.Color.OrangeRed ' e.Row.FCHyperLink("HplProv").ToolTip = "Falta vincular la cuenta contable complementaria" 'End If If e.Row.DBCampo("IdCuentaIVAxAcreditar").ToEntero = 0 Then 'falta vicularse el proveedor e.Row.FCLabel("LblIVA").ForeColor = Drawing.Color.OrangeRed e.Row.FCLabel("LblIVA").ToolTip = "Falta vincular la cuenta contable" End If If e.Row.DBCampo("RetIVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetIVA").ToEntero = 0 Then e.Row.FCLabel("LblRetIVA").ForeColor = Drawing.Color.OrangeRed e.Row.FCLabel("LblRetIVA").ToolTip = "Falta vincular la cuenta contable a la Retencion de IVA" End If 'validaci[on para que sea active el chkbox If e.Row.DBCampo("FacturasSinCuenta") = "0" AndAlso (e.Row.DBCampo("IVA").ToDouble <= 0 OrElse (e.Row.DBCampo("IVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCuentaIVAxAcreditar").ToEntero > 0)) AndAlso (e.Row.DBCampo("RetIVA").ToDouble <= 0 OrElse (e.Row.DBCampo("RetIVA").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetIVA").ToEntero > 0)) AndAlso (e.Row.DBCampo("RetISR").ToDouble <= 0 OrElse (e.Row.DBCampo("RetISR").ToDouble > 0 AndAlso e.Row.DBCampo("IdCtaContRetISR").ToEntero > 0)) Then 'si la factura fue a credito, que no tiene cveie, checo si está cargada la cuenta contable del proveedor para afectarla If e.Row.DBCampo("Contado").ToEntero = 0 Then If e.Row.DBCampo("IdCtaContProveedores").ToEntero > 0 Then e.Row.FCCheckBox("Chk").Visible = True End If Else If e.Row.DBCampo("IdCtaContBancos").ToEntero > 0 Then e.Row.FCCheckBox("Chk").Visible = True Else If Grid = "GvFyE" Then e.Row.FCHyperLink("HplPer").ToolTip = String.Format("No se tiene vinculada la cuenta del personal ({0})", e.Row.DBCampo("Personal")) e.Row.FCHyperLink("HplPer").ForeColor = Drawing.Color.OrangeRed Else e.Row.FCLabel("LblTotal").ForeColor = Drawing.Color.OrangeRed e.Row.FCLabel("LblTotal").ToolTip = "No se tiene vinculada la cuenta bancaria" End If End If End If 'si fue la compra en un solo pago, no credito If e.Row.DBCampo("Contado").ToEntero > 0 AndAlso 1 = 2 Then e.Row.FCCheckBox("Chk").Visible = True End If End If If e.Row.DBCampo("CveMoneda") = "2" AndAlso e.Row.DBCampo("TC").ToDecimal = 0 Then ' 'falta vicularse al proveedor la cuenta contable e.Row.FCLabel("LblTC").ForeColor = Drawing.Color.OrangeRed e.Row.FCLabel("LblTC").Text = "S/TC" e.Row.FCCheckBox("Chk").Visible = False End If If Math.Abs(e.Row.DBCampo("SubTotal").ToDouble - e.Row.DBCampo("Descuentos").ToDouble - e.Row.DBCampo("SubTotalPS").ToDouble) > 0.01 Then e.Row.FCLabel("LblSubTotal").ForeColor = Drawing.Color.Red e.Row.FCLabel("LblSubTotal").ToolTip = String.Format("Factura: {0} - Productos:{1}", e.Row.DBCampo("SubTotal").ToDouble.FormatoNumero, e.Row.DBCampo("SubTotalPS").ToDouble.FormatoNumero) e.Row.FCCheckBox("Chk").Visible = False End If Dim gv As GridView = e.Row.FCGridView("GvD") Dim dttf As DataTable If Grid = "Gv" Then dttf = DtDatos Else dttf = DtDatosFyE End If Dim dtt As DataTable = dttf.FiltraParametros(String.Format("CveCompra = {0} AND CvePS <> -1", e.Row.DBCampo("CveCompra"))) gv.DataSource = dtt gv.DataBind() End If End Sub _ Public Shared Function wsCuentaNombre(ByVal contextKey As System.String) As System.String Dim Retorno As String = "" If contextKey.ToEntero > 0 Then Retorno = String.Format("---{0}---", contextKey.ToDouble.Texto2Letras) End If Return Retorno End Function Protected Sub GvDetalle_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("IdCuentaGasto").ToEntero > 0 Then e.Row.FCDropDownList("DdlM").Items.Add(New ListItem("Gasto", e.Row.DBCampo("IdCuentaGasto"))) ' If e.Row.DBCampo("IdCuentaAnticipo").ToEntero > 0 Then e.Row.FCDropDownList("DdlM").Items.Add(New ListItem("Anticipo", e.Row.DBCampo("IdCuentaAnticipo"))) 'If e.Row.DBCampo("IdCuentaInventario").ToEntero > 0 Then e.Row.FCDropDownList("DdlM").Items.Add(New ListItem("Inventario", e.Row.DBCampo("IdCuentaInventario"))) e.Row.FCLiteral("LitCta").Text = String.Format("
{0}
", e.Row.DBCampo("CuentaGasto")) End If End Sub Protected Sub BtnContabilizar_Click(sender As Object, e As EventArgs) Handles BtnContabilizar.Click Dim Total As Decimal = 0 '(From gvr As GridViewRow In Gv.Rows Where gvr.FCCheckBox("Chk").Checked).Sum(Function(gvr) gvr.DataKey("Total").ToDouble + gvr.DataKey("RetIVA").ToDouble + gvr.DataKey("RetISR").ToDouble) Dim MultNC As Integer Dim TipoCambio As Decimal Dim Contador As Integer = 0 Dim ContadorME As Integer = 0 Dim EsPersonal As Boolean = False Dim GvT As GridView = Gv If Tabs.ActiveTabIndex = 1 Then GvT = GvFyE EsPersonal = True End If For Each gvr As GridViewRow In GvT.Rows If gvr.FCCheckBox("Chk").Checked Then Contador += 1 If gvr.DataKey("CveMoneda") <> "1" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then TipoCambio = TxtTC.Text.ToDouble : ContadorME += 1 Else : TipoCambio = 1 End If If gvr.DataKey("TipoDocto") = "NC" Then MultNC = -1 Else MultNC = 1 Total += (gvr.DataKey("Total").ToDouble + gvr.DataKey("RetIVA").ToDecimal + gvr.DataKey("RetISR").ToDecimal) * TipoCambio * MultNC End If Next If ContadorME > 0 AndAlso TxtTC.Text.ToDouble <= 0 Then Alert("Ingrese un tipo de cambio.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim TipoMovto As Boolean = False If Contador > 0 Then Dim Conta As ClsContPAQi = Nothing Dim Compra As ClsCompras = Nothing Dim IDPoliza As Integer = 0 Dim CuentaAfectable As Integer Dim NumPoliza As String Dim Concepto As String Dim ConceptoDetalle As String Dim Cargos As Decimal Dim TipoPoliza As String = "" If UsuarioActual.CveEmpresa = 66 Then TipoPoliza = "1-000" End If Dim MonExt As Boolean Dim MsgError As String = "" Try If UsuarioActual.Empresa.UsaContabilidad Then Conta = New ClsContPAQi(UsuarioActual.Empresa) Compra = New ClsCompras() Conta.IniciaTransacSQL() Compra.IniciaTransacSQL() IDPoliza = Conta.AddPoliza(DdlPolizaTipo.SelectedValue.ToEntero, TxtDescripcion.Text, Total, Total, UsuarioActual.CveUsuario, TxtFecha.Text.ToDate, pTipo:=TipoPoliza) NumPoliza = Conta.DtResultados.FiltroPrimero("")("Folio").ToString 'inserto la póliza If IDPoliza = 0 Then MsgError = "No se pudo insertar la póliza contable." Else For Each gvr As GridViewRow In GvT.Rows If gvr.FCCheckBox("Chk").Checked Then 'si es otra diferente al peso y sino tiene cuenta complementaria, entonces hace el calculo por el tipo de cambio If gvr.DataKey("CveMoneda") <> "1" Then TipoCambio = gvr.DataKey("TC").ToDecimal 'TxtTC.Text.ToDouble MonExt = True Else TipoCambio = 1 MonExt = False End If Cargos = 0 If gvr.DataKey("TipoDocto") = "NC" Then If UsuarioActual.Empresa.ContaContabilizacionNC <> 0 Then 'cuando el movimiento de las nc, sea <> cero, quiero decir que solo convertimos a negativos los valores MultNC = -1 Else 'cuando sea 0. los cargos se convierten en abonos y viceversa, pero los importes son positivos MultNC = 1 TipoMovto = True End If Else MultNC = 1 TipoMovto = False End If 'cuando es NC, se registran en negativos todos los valores 'Registro los movimientos de la compra Dim GvDetalle As GridView = gvr.FCGridView("GVD") If GvDetalle IsNot Nothing Then For Each gvrr As GridViewRow In GvDetalle.Rows ConceptoDetalle = gvr.DataKey("RazonSocial") ' gvrr.FCLiteral("LitPS").Text Cargos += Math.Round(gvrr.FCLiteral("LitSubTotalPS").Text.ToDecimal * TipoCambio * MultNC, 2) If Not Conta.AddMovimiento(IDPoliza, gvrr.FCDropDownList("DdlM").SelectedValue.ToEntero, TipoMovto, Math.Round(gvrr.FCLiteral("LitSubTotalPS").Text.ToDecimal * TipoCambio * MultNC, 2), gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvrr.FCLiteral("LitSubTotalPS").Text.ToDouble, 0.0) * MultNC) Then MsgError = "No se pudo insertar movimiento contable" Exit For End If Next End If Dim IdCtaContProveedoresMoneda As Integer = gvr.DataKey("IdCtaContProveedores").ToEntero If MsgError = "" Then If gvr.DataKey("IVA").ToDecimal > 0 Then 'INSERTO EL IVA DE LA FACTURA ConceptoDetalle = gvr.DataKey("RazonSocial") Dim CveIVA As Integer = gvr.DataKey("IdCuentaIVAxAcreditar").ToEntero If gvr.DataKey("Contado").ToEntero = 1 Then CveIVA = gvr.DataKey("IdCuentaIVAAcreditable").ToEntero End If Cargos += Math.Round(gvr.DataKey("IVA").ToDecimal * TipoCambio * MultNC, 2) If Not Conta.AddMovimiento(IDPoliza, CveIVA, TipoMovto, Math.Round(gvr.DataKey("IVA").ToDecimal * TipoCambio * MultNC, 2), gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvr.DataKey("IVA").ToDouble, 0.0) * MultNC) Then MsgError = "No se pudo insertar movimiento contable" Exit For End If End If If MsgError <> "" Then Exit For If gvr.DataKey("RetIVA").ToDecimal > 0 Then 'INSERTO LA RETENCION DE IVA DE LA FACTURA ConceptoDetalle = gvr.DataKey("RazonSocial") If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContRetIVA").ToEntero, Not TipoMovto, gvr.DataKey("RetIVA").ToDouble * TipoCambio * MultNC, gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvr.DataKey("RetIVA").ToDouble, 0.0) * MultNC) Then MsgError = "No se pudo insertar movimiento contable" Exit For End If End If If MsgError <> "" Then Exit For If gvr.DataKey("RetISR").ToDouble > 0 Then 'INSERTO LA RETENCION DE ISR DE LA FACTURA ConceptoDetalle = gvr.DataKey("RazonSocial") If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContRetISR").ToEntero, Not TipoMovto, gvr.DataKey("RetISR").ToDouble * TipoCambio * MultNC, gvr.DataKey("SerieFolio"), ConceptoDetalle, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveCompra").ContaReferencia(TipoContaReferencia.Compra), If(MonExt, gvr.DataKey("RetISR").ToDouble, 0.0) * MultNC) Then MsgError = "No se pudo insertar movimiento contable" Exit For End If End If If MsgError <> "" Then Exit For Dim ImporteMovimiento As Double = gvr.DataKey("Total").ToDouble * TipoCambio * MultNC If gvr.DataKey("CveMoneda") = "2" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then ImporteMovimiento = gvr.DataKey("Total").ToDouble * MultNC End If 'VERIFICO SI LA CUENTA ES DE CREDITO O NO If gvr.DataKey("Contado").ToEntero = 0 Then CuentaAfectable = IdCtaContProveedoresMoneda Else CuentaAfectable = gvr.DataKey("IdCtaContBancos").ToEntero ' SI LA EMPRESA TIENE HABILITADA LA OPCION, PARA INCLUIR LOS MOVIMIENTOS DEL PROVEEDOR EN COMPRAS DE CONTADO, Y ESTOS DOS MOIVMIENTOS SOLOS SE SALDAN If CBool(gvr.DataKey("Conta_AsientoContableComprasContado")) And Not EsPersonal Then 'INSERTO LOS MOVIMIENTOS DEL PROVEEDOR If Not Conta.AddMovimiento(IDPoliza, IdCtaContProveedoresMoneda, TipoMovto, ImporteMovimiento, gvr.DataKey("SerieFolio"), gvr.DataKey("SerieFolio"), 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvr.DataKey("Total").ToDouble, 0.0) * MultNC) Then MsgError = "No se pudo insertar movimiento contable" Exit For End If If Not Conta.AddMovimiento(IDPoliza, IdCtaContProveedoresMoneda, Not TipoMovto, ImporteMovimiento, gvr.DataKey("SerieFolio"), gvr.DataKey("SerieFolio"), 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvr.DataKey("Total").ToDouble, 0.0) * MultNC) Then MsgError = "No se pudo insertar movimiento contable" Exit For End If End If End If Concepto = gvr.DataKey("SerieFolio") Dim TmpTotal As Double = Math.Round(ImporteMovimiento, 2) If gvr.DataKey("CveMoneda") <> "1" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero = 0 Then Concepto = String.Format("{0} TC:{1} ${2}", gvr.DataKey("SerieFolio"), TipoCambio, gvr.DataKey("Total").ToDouble.FormatoNumero) 'si hay un tipo de cambio, va a requerir un ajuste en la conversion If Math.Abs(Cargos - TmpTotal) > 0 Then TmpTotal = Cargos End If End If 'INSERTO EN PROVEEDORES O BANCOS If Not Conta.AddMovimiento(IDPoliza, CuentaAfectable, Not TipoMovto, TmpTotal, gvr.DataKey("SerieFolio"), Concepto, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), If(MonExt, gvr.DataKey("Total").ToDouble, 0.0) * MultNC) Then MsgError = "No se pudo insertar movimiento contable" Exit For End If 'hago el movimiento de fluctuacion cambiaria If gvr.DataKey("CveMoneda") = "2" AndAlso gvr.DataKey("IdCtaContComplementaria").ToEntero > 0 Then Dim Dif As Decimal = Math.Round(gvr.DataKey("TC") * gvr.DataKey("Total").ToDecimal, 2) Concepto = String.Format("{0} TC:{1} ${2}", gvr.DataKey("SerieFolio"), TipoCambio, gvr.DataKey("Total").ToDouble.FormatoNumero) ''si hay un tipo de cambio, va a requerir un ajuste en la conversion If Math.Abs(Math.Abs(Cargos) - Dif) > 0 AndAlso Math.Abs(Math.Abs(Cargos) - Dif) <= 0.02 Then Dif = Math.Abs(Cargos) End If Dif = (Dif - (gvr.DataKey("Total").ToDecimal)) * MultNC If Not Conta.AddMovimiento(IDPoliza, gvr.DataKey("IdCtaContComplementaria").ToEntero, Not TipoMovto, Dif, gvr.DataKey("SerieFolio"), Concepto, 0, TxtFecha.Text.ToDate, gvr.DataKey("CveProveedor").ContaReferencia(TipoContaReferencia.Proveedor), 0) Then ' no lleva moneda extranjera MsgError = "No se pudo insertar movimiento contable" Exit For End If End If If MsgError <> "" Then Exit For End If 'ACTUALIZO LA COMPRA CON LA POLIZA If Not Compra.UpdateCompraPrePoliza(TxtFecha.Text.ToDate, NumPoliza, IDPoliza, 0, gvr.DataKey("CveCompra").ToEntero, -1) Then MsgError = "Error al actualizar compra" Exit For End If Else Exit For End If 'If Not Conta.AddMovimiento( IDPoliza, gvr.fcdrop.ToEntero, TipoMovto, Importe, gvr.FCLiteral("LtlReferencia").Text, gvr.FCLiteral("LtlConcepto").Text, 0, TxtFechaDocumento.Text.ToDate, "", "") Then ' MsgError = "No se pudo insertar movimiento contable" ' 'Exit For 'End If End If Next End If If MsgError = "" Then Conta.AjustaPoliza(IDPoliza) Conta.Commit() Compra.Commit() UPPDatos.Update() Alert(String.Format("
La póliza se ha generado correctamente

Ver Póliza
", IDPoliza), TipoMensaje.MsgInformacion) CargaDatos() Else Conta.RollBack() Compra.RollBack() End If End If Catch ex As Exception Conta.RollBack() Compra.RollBack() Alert("Ocurrio un error al contabilizar", TipoMensaje.MsgError) GuardaLog(ex.ToString) End Try Conta.Dispose() Else Alert("Seleccione factura(s) para contabilizar", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub TxtFecha_TextChanged(sender As Object, e As EventArgs) Handles TxtFecha.TextChanged If TbTipoCambio.Visible Then Dim Cc As New ClsContPAQi(UsuarioActual.Empresa) TxtTC.Text = Cc.getTipoCambio(TxtFecha.Text.ToDate).ToString Cc.Dispose() If TxtTC.Text.ToDouble > 0 Then TxtTC.Enabled = False Else TxtTC.Text = "" 'busco en la tabla de nosotros Dim Gral As New ClsGenerales If Gral.GetTipoCambio(-1, TxtFecha.Text.ToDate) Then Dim dr As DataRow = Gral.DtResultados.FiltroPrimero("") If dr IsNot Nothing Then TxtTC.Text = dr("TipoCambio").ToString End If End If Gral.Dispose() TxtTC.Enabled = True End If End If End Sub Protected Sub ImgTC_Click(sender As Object, e As ImageClickEventArgs) Handles ImgTC.Click If TxtTC.Text.ToDouble <= 0 Then Alert("Ingrese un importe", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim Cc As New ClsContPAQi(UsuarioActual.Empresa) If Cc.AddTipoCambio(55555, TxtFecha.Text.ToDate, TxtTC.Text.ToDouble) Then TxtTC.Enabled = False End If Cc.Dispose() End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click UsuarioActual.Sesion("DiarioCompras-CveProveedor") = DdlProveedores.SelectedValue UsuarioActual.Sesion("DiarioCompras-FI") = txtFechaI.Text UsuarioActual.Sesion("DiarioCompras-FF") = txtFechaF.Text If DdlProveedores.SelectedValue.ToEntero > 0 Then TxtDescripcion.Text = DdlProveedores.SelectedItem.Text Else TxtDescripcion.Text = "" UPPPoliza.Update() CargaDatos() UPPDatos.Update() End Sub Protected Sub ImgCFDiMasivo_Click(sender As Object, e As ImageClickEventArgs) Handles ImgCFDiMasivo.Click Dim Msg As New StringBuilder Dim GvT As GridView = Gv Dim UUID, RFCDe, RFCPara As String If Tabs.ActiveTabIndex = 1 Then GvT = GvFyE End If For Each gvr As GridViewRow In GvT.Rows 'recorro las que no se han validado If gvr.DataKey("ValidacionFactura") <> "" Then UUID = gvr.DataKey("ValidacionFactura").Split("|"c)(1) RFCDe = gvr.DataKey("ValidacionFactura").Split("|"c)(2) RFCPara = gvr.DataKey("ValidacionFactura").Split("|"c)(3) Dim Valida As New ClsValidaCFDi(UUID, RFCDe, RFCPara) If Valida.EsValida > 0 Then If Valida.EsValida = 2 Then Msg.AppendFormat("{0} - {1}
", gvr.DataKey("RazonSocial"), gvr.DataKey("SerieFolio")) End If 'Dim ObjDatos As New ClsCompras 'If ObjDatos.UpdateEstatus(Valida.EsValida, gvr.DataKey("CveFactura").ToEntero) Then 'End If 'ObjDatos.Dispose() End If Valida.Dispose() End If Next If Msg.Length > 0 Then Alert(String.Format("Se Encontraron las siguientes facturas canceladas en el SAT:
,{0}", Msg.ToString), TipoMensaje.MsgAdvertencia) Else Alert("La validación de facturas terminó correctamente") End If End Sub End Class