Option Explicit On Option Strict On Imports System.Data Imports Extensiones Partial Class Bancos_PopIEVentas Inherits ClsPaginas #Region "Propiedades" Private Property DtDeudores As DataTable Get Return CType(ViewState("DtDeudores"), DataTable) End Get Set(value As DataTable) ViewState("DtDeudores") = value End Set End Property Private Property DtAcreedores As DataTable Get Return CType(ViewState("DtAcreedores"), DataTable) End Get Set(value As DataTable) ViewState("DtAcreedores") = value End Set End Property Private Property DtDeudoresDetalle As DataTable Get Return CType(ViewState("DtDeudoresDetalle"), DataTable) End Get Set(value As DataTable) ViewState("DtDeudoresDetalle") = value End Set End Property 'Configuración Private Property CveIE As Integer Get Return ViewState("CveIE").ToString.ToEntero End Get Set(value As Integer) ViewState("CveIE") = value End Set End Property Private Property IdPoliza As Integer Get Return ViewState("IdPoliza").ToString.ToEntero End Get Set(value As Integer) ViewState("IdPoliza") = value End Set End Property Private Property CveVenta As Integer Get Return ViewState("CveVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveVenta") = value End Set End Property Private Property FechaVenta As Date Get Return ViewState("FechaVenta").ToString.ToDate End Get Set(value As Date) ViewState("FechaVenta") = value End Set End Property Private Property CveCliente As Integer Get Return ViewState("CveCliente").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCliente") = value End Set End Property Private Property CveSubProyectoVenta As Integer Get Return ViewState("CveSubProyectoVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveSubProyectoVenta") = value End Set End Property Private Property CveClienteOriginal As Integer Get Return ViewState("CveClienteOriginal").ToString.ToEntero End Get Set(value As Integer) ViewState("CveClienteOriginal") = value End Set End Property Private Property IdCuentaBancaria As Integer Get Return ViewState("IdCuentaBancaria").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCuentaBancaria") = value End Set End Property Private Property IdCuentaBancariaComplementaria As Integer Get Return ViewState("IdCuentaBancariaComplementaria").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCuentaBancariaComplementaria") = value End Set End Property Private Property IdCuentaCliente As Integer Get Return ViewState("IdCuentaCliente").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCuentaCliente") = value End Set End Property Private ReadOnly Property IdCtaContMonedaExtranjera As Integer Get Return ViewState("IdCtaContMonedaExtranjera").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContComplementaria As Integer Get Return ViewState("IdCtaContComplementaria").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContMonedaExtranjeraAnticipo As Integer Get Return ViewState("IdCtaContMonedaExtranjeraAnticipo").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContMonedaComplementariaAnticipo As Integer Get Return ViewState("IdCtaContMonedaComplementariaAnticipo").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContRetIVA As Integer Get Return ViewState("IdCtaContRetIVA").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContRetISR As Integer Get Return ViewState("IdCtaContRetISR").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaAnticipo As Integer Get Return ViewState("IdCtaAnticipo").ToString.ToEntero End Get End Property Private Property CveCuentaBancaria As Integer Get Return ViewState("CveCuentaBancaria").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaBancaria") = value End Set End Property Private Property CveCuentaCliente As Integer Get Return ViewState("CveCuentaCliente").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaCliente") = value End Set End Property Private ReadOnly Property CveCuentaMonedaExtranjera As Integer Get Return ViewState("CveCuentaMonedaExtranjera").ToString.ToEntero End Get End Property Private ReadOnly Property CveCuentaComplementaria As Integer Get Return ViewState("CveCuentaComplementaria").ToString.ToEntero End Get End Property Private ReadOnly Property CveCuentaRetIVA As Integer Get Return ViewState("CveCuentaRetIVA").ToString.ToEntero End Get End Property Private ReadOnly Property CveCuentaRetISR As Integer Get Return ViewState("CveCuentaRetISR").ToString.ToEntero End Get End Property Private ReadOnly Property CveCuentaAnticipo As Integer Get Return ViewState("CveCuentaAnticipo").ToString.ToEntero End Get End Property Private Property CveMoneda As Integer Get Return ViewState("CveMoneda").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMoneda") = value End Set End Property Private Property TipoTransaccion As String Get Return ViewState("TipoTransaccion").ToString End Get Set(value As String) ViewState("TipoTransaccion") = value End Set End Property Private Property SaldoVenta As Double Get Return ViewState("SaldoVenta").ToString.ToDouble End Get Set(value As Double) ViewState("SaldoVenta") = value End Set End Property Private Property MovimientoPagar As IEMovimiento Get Return CType(ViewState("MovimientoPagar"), IEMovimiento) End Get Set(value As IEMovimiento) ViewState("MovimientoPagar") = value End Set End Property Private Property ArrIE As ArrayList Get Return CType(ViewState("ArrIE"), ArrayList) End Get Set(value As ArrayList) ViewState("ArrIE") = value End Set End Property Private Property ArrIEFuncionariosEmpleados As ArrayList Get Return CType(ViewState("ArrIEFuncionariosEmpleados"), ArrayList) End Get Set(value As ArrayList) ViewState("ArrIEFuncionariosEmpleados") = value End Set End Property Private Property DTFuenteRecaudacion As DataTable Get Return CType(ViewState("DTFuenteRecaudacion"), DataTable) End Get Set(value As DataTable) ViewState("DTFuenteRecaudacion") = value End Set End Property Private Property DTFuncionarioEmpleado As DataTable Get Return CType(ViewState("DTFuncionarioEmpleado"), DataTable) End Get Set(value As DataTable) ViewState("DTFuncionarioEmpleado") = value End Set End Property Private Property NombreCliente As String Get Return ViewState("NombreCliente").ToString End Get Set(value As String) ViewState("NombreCliente") = value End Set End Property Private Property SerieFolio As String Get Return ViewState("SerieFolio").ToString End Get Set(value As String) ViewState("SerieFolio") = value End Set End Property Private Property CveMonedaVenta As Integer Get Return ViewState("CveMonedaVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMonedaVenta") = value End Set End Property Private Property CveMonedaCompra As Integer Get Return ViewState("CveMonedaVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMonedaVenta") = value End Set End Property Private Property CveCorte As Integer Get Return ViewState("CveCorte").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCorte") = value End Set End Property Private Property TipoCambioOriginal As Decimal Get Return ViewState("TipoCambioOriginal").ToString.ToDecimal End Get Set(value As Decimal) ViewState("TipoCambioOriginal") = value End Set End Property Public Class Anticipos Public Property CveIE As Integer Public Property Importe As Double Public Property CvePersonal As Integer End Class Public Class IEMovimiento Public Property SubTotal As Decimal Public Property IVA As Decimal Public Property RetIVA As Decimal Public Property RetISR As Decimal Public Property Total As Decimal Public Property Saldo As Decimal Public Property IEPS As Decimal Public Property PorcentajeIVA As Decimal End Class Private Property EmpresaPrueba As Boolean Get Return CBool(ViewState("EmpresaPrueba")) End Get Set(value As Boolean) ViewState("EmpresaPrueba") = value End Set End Property Private Property CveMonedaFiltros As Integer Get Return ViewState("CveMonedaFiltros").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMonedaFiltros") = value End Set End Property Private Property RFCCliente As String Get Return ViewState("RFCCliente").ToString End Get Set(value As String) ViewState("RFCCliente") = value End Set End Property Private Property IdCtaContComplementariaProveedor As Integer Get Return ViewState("IdCtaContComplementariaProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCtaContComplementariaProveedor") = value End Set End Property Private Property CtaProveedor As Integer Get Return ViewState("CtaProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CtaProveedor") = value End Set End Property Private Property CveCuentaProveedor As Integer Get Return ViewState("CveCuentaProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaProveedor") = value End Set End Property Private Property IdCtaProveedorExtranjera As Integer Get Return ViewState("IdCtaProveedorExtranjera").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCtaProveedorExtranjera") = value End Set End Property Private Property CveCuentaProveedorExtranjera As Integer Get Return ViewState("CveCuentaProveedorExtranjera").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaProveedorExtranjera") = value End Set End Property Private Property IdCtaContRetIVAProveedor As Integer Get Return ViewState("IdCtaContRetIVAProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCtaContRetIVAProveedor") = value End Set End Property Private Property CtaProveedorDeudores As Integer Get Return ViewState("CtaProveedorDeudores").ToString.ToEntero End Get Set(value As Integer) ViewState("CtaProveedorDeudores") = value End Set End Property Private Property CtaProveedorAcreedores As Integer Get Return ViewState("CtaProveedorAcreedores").ToString.ToEntero End Get Set(value As Integer) ViewState("CtaProveedorAcreedores") = value End Set End Property Private Property IdCtaContRetISRProveedor As Integer Get Return ViewState("IdCtaContRetISRProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCtaContRetISRProveedor") = value End Set End Property Private Property IdCtaContRetISRAcreditableProveedor As Integer Get Return ViewState("IdCtaContRetISRAcreditableProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCtaContRetISRAcreditableProveedor") = value End Set End Property Private Property IdCtaContRetIVAAcreditableProveedor As Integer Get Return ViewState("IdCtaContRetIVAAcreditableProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCtaContRetIVAAcreditableProveedor") = value End Set End Property Private Property CveCuentaProveedorDeudores As Integer Get Return ViewState("CveCuentaProveedorDeudores").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaProveedorDeudores") = value End Set End Property Private Property CveCuentaProveedorAcreedores As Integer Get Return ViewState("CveCuentaProveedorAcreedores").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaProveedorAcreedores") = value End Set End Property Private Property CveCuentaRetISRProveedor As Integer Get Return ViewState("CveCuentaRetISRProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaRetISRProveedor") = value End Set End Property Private Property CveCuentaRetIVAProveedor As Integer Get Return ViewState("CveCuentaRetIVAProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaRetIVAProveedor") = value End Set End Property Private Property CveCuentaComplementariaProveedor As Integer Get Return ViewState("CveCuentaComplementariaProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaComplementariaProveedor") = value End Set End Property Private Property Fecha As Date Get Return ViewState("Fecha").ToString.ToDate End Get Set(value As Date) ViewState("Fecha") = value End Set End Property #End Region Private Sub Bancos_PopIEVentas_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then If Not UsuarioActual.Empresa.UsaAC Then EmpresaPrueba = True ViewState("IdCtaContMonedaExtranjera") = 0 ViewState("IdCtaContComplementaria") = 0 ViewState("IdCtaContRetIVA") = 0 ViewState("IdCtaContRetISR") = 0 ViewState("IdCuentaBancaria") = 0 ViewState("IdCtaAnticipo") = 0 ViewState("IdCtaContMonedaExtranjeraAnticipo") = 0 ViewState("IdCtaContMonedaComplementariaAnticipo") = 0 CveCorte = -1 IdCuentaBancariaComplementaria = 0 ViewState("CveCuentaMonedaExtranjera") = 0 ViewState("CveCuentaComplementaria") = 0 ViewState("CveCuentaRetIVA") = 0 ViewState("CveCuentaRetISR") = 0 ViewState("CveCuentaBancaria") = 0 ViewState("CveCuentaAnticipo") = 0 End If CveClienteOriginal = -1 CveSubProyectoVenta = -1 CType(Me.Master, BaseMasterPage).EsPopup = True CType(Me.Master, BaseMasterPage).PopupWidth = 750 RegistraScript("if($get('tdContenido')){$get('tdContenido').style.width='350px';}") IdPoliza = -1 CveMoneda = 0 CveMonedaFiltros = 0 CveVenta = -1 MovimientoPagar = Nothing ArrIE = New ArrayList() ArrIEFuncionariosEmpleados = New ArrayList() RFCCliente = "" TxtFechaDocumento.Text = Now.ToShortDateString If Request("CveVenta") IsNot Nothing AndAlso IsNumeric(Request("CveVenta")) AndAlso Request("CveVenta").ToEntero > 0 Then CveVenta = Request("CveVenta").ToEntero CargaVenta(CveVenta) TipoTransaccion = "Ing" LblFolio.Text = "Folio Pago" TrPagueseA.Visible = False Else 'Configuración de Modalidad Insert ViewState("CveIE") = -1 End If If UsuarioActual.CveEmpresa.Contiene(1, 4, 7, 11, 12, 72, 80, 119) Then rowComisiones.Visible = True End If 'SI USUARIO USA AMORTIZACIÓN CONTABLE If UsuarioActual.Empresa.UsaAC Then Dim AC As New ClsAC If AC.GetPresupuestoIngresos(-1, -1, True, UsuarioActual.CveEmpresa) Then DdlFuenteRecaudacion.DataSource = AC.DtResultados() DdlFuenteRecaudacion.DataBind() ViewState("DTFuenteRecaudacion") = AC.DtResultados() End If TrFR.Visible = True AC.Dispose() End If CargaTipoTransaccion(TipoTransaccion) CargaCuentas() Dim ObjCompras As New ClsCompras If ObjCompras.GetCompras(-1, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, ProveedorRFC:=RFCCliente) Then RBLContado.Items(4).Enabled = True End If ObjCompras.Dispose() Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, Now.Day - 1, Now.Day) Fecha = (dia.ToString + "/" + Now.Month.ToString + "/" + Now.Year.ToString).ToDate If CveMoneda = 2 Then ChkPagarPesos.Visible = True TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) DivDolaresDolares.Visible = True TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") Else ChkPagarDolares.Visible = True TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) End If End If End Sub #Region "C A M B I A R P A N E L" Private Sub RBLContado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLContado.SelectedIndexChanged Select Case RBLContado.SelectedValue Case "1" ' Bancos PanelBancos.Visible = True PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = False PanelCompras.Visible = False TxtImporte.Text = SaldoVenta.FormatoNumero ChkComplementoPago.Visible = True Case "2" ' F y E PanelBancos.Visible = False PanelFyE.Visible = True PanelIngresos.Visible = False PanelDeudores.Visible = False PanelCompras.Visible = False CargaFuncionariosEmpleados() TxtImporte.Text = SaldoVenta.FormatoNumero ChkComplementoPago.Visible = False Case "3" 'Ingresos x Comprobar PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = True PanelDeudores.Visible = False PanelCompras.Visible = False CargaOtrosIngresos(CveMoneda) TxtImporte.Text = "0.00" ChkComplementoPago.Visible = False Case "4" 'Deudores PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = True PanelCompras.Visible = False CargaDeudores(CveMoneda) TxtImporte.Text = "0.00" ChkComplementoPago.Visible = False Case "5" 'Compras PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = False PanelCompras.Visible = True CargaCompras(CveMoneda) TxtImporte.Text = "0.00" ChkComplementoPago.Visible = False End Select UpGuardar.Update() End Sub #End Region #Region "C A R G A R I N F O R M A C I O N" Private Sub CargaVenta(pCveVenta As Integer) Dim ObjVenta As New ClsVentas() If ObjVenta.GetVenta(pCveVenta, UsuarioActual.CveEmpresa) Then If ObjVenta.DtResultados IsNot Nothing AndAlso ObjVenta.DtResultados.Rows.Count > 0 Then Dim dr As DataRow = ObjVenta.DtResultados.Rows(0) Dim Validada As Boolean = True 'JJMQ:20190606 Se cancela código de validacion ante el SAT por lentitud en el servicio. 'Sustituir la línea anterior por todo lo siguiente hasta donde termina el end if para que valide de nueva cuenta 'Dim Validada As Boolean = False If Not UsuarioActual.Empresa.Funcionalidad(529) = "1" AndAlso dr("FolioFiscal").ToString() <> "" Then Dim Valida As New ClsValidaCFDi(dr("FolioFiscal").ToString(), UsuarioActual.Empresa.RFC, dr("RFCReceptor").ToString, dr("Total").ToString.ToDecimal) If Valida.EsValida > 0 Then If Valida.EsValida = 2 Then Validada = False BtnGuardar.Enabled = False If UsuarioActual.Empresa.UsaAC Then RegistraScript("if (confirm('La factura está cancelada ante el SAT., ¿Desea eliminar la compra?')) { $get('BtnEliminarCompra').click();}") Else Alert("La factura está cancelada ante el SAT.") End If Else Validada = True End If Else 'no se pudo validar, pero ya tuvo la primera vuelta de validacion Alert("La factura no se pudo validar.") Validada = False BtnGuardar.Visible = False End If Valida.Dispose() Else Validada = True End If CveCliente = dr("CveCliente").ToString.ToEntero CveClienteOriginal = dr("CveCliente").ToString.ToEntero HdnCveCliente.Value = CveCliente.ToString CargaCliente(CveCliente, "-1") CveMoneda = dr("CveMoneda").ToString.ToEntero CveMonedaVenta = dr("CveMoneda").ToString.ToEntero CveMonedaFiltros = dr("CveMoneda").ToString.ToEntero NombreCliente = GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=CveCliente).FiltroPrimeroValor("Nombre", String.Format("CveCliente = {0}", CveCliente)) SerieFolio = dr("SerieFolio").ToString TipoCambioOriginal = dr("TipoCambio").ToString.ToDecimal CveSubProyectoVenta = dr("CveSubProyecto").ToString.ToEntero LblMetodoPAgo.Text = $"{dr("ClaveMetodoPagoSATStr").ToString() }" 'Configuración de Modalidad Update 'Dim RFCCliente As String = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RFC", $"CveCliente = {CveCliente} ") If Not UsuarioActual.Empresa.Funcionalidad(536) = "1" Then If dr("TipoDocto").ToString = "Rem" Then Alert("Los documentos de tipo Remisión no se permite realizar el pago", TipoMensaje.MsgAdvertencia) BtnGuardar.Visible = False End If End If MovimientoPagar = New IEMovimiento MovimientoPagar.SubTotal = dr("SubTotal").ToString.ToDecimal MovimientoPagar.IVA = dr("IVA").ToString.ToDecimal MovimientoPagar.RetIVA = dr("RetIVA").ToString.ToDecimal MovimientoPagar.RetISR = dr("RetISR").ToString.ToDecimal MovimientoPagar.Total = dr("Total").ToString.ToDecimal MovimientoPagar.Saldo = dr("Saldo").ToString.ToDecimal MovimientoPagar.IEPS = dr("IEPS").ToString.ToDecimal MovimientoPagar.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal LtlTitulo.Text = "Cuentas por Cobrar" LtlTipo2.Text = "Folio de la Venta" LtlTipo3.Text = "Fecha de la Venta" LtlSaldo.Text = If(CveMoneda = 1, $"{dr("Saldo").ToString.FormatoNumero}{" MXN"}", $"{dr("Saldo").ToString.FormatoNumero}{" USD"}") LtlFechaVenta.Text = dr("Fecha").ToString.ToDate.ToShortDateString() LtlFolio.Text = dr("SerieFolio").ToString TxtFolio.Enabled = True TxtFechaDocumento.Enabled = True Calendario.Enabled = True TxtPagueseA.Enabled = False TxtImporte.Enabled = True DdlCuenta.Enabled = True DdlTipoTransaccion.Enabled = True TxtObservaciones.Enabled = True RVImporte.Enabled = True RVImporte.MaximumValue = dr("Saldo").ToString.ToDouble.ToString.FormatoNumero TxtImporte.Text = dr("Saldo").ToString.ToDouble.FormatoNumero FechaVenta = dr("Fecha").ToString.ToDate SaldoVenta = dr("Saldo").ToString.ToDouble 'Cortes de Caja If UsuarioActual.TienePermisoProceso(160) Then CargaCorteCaja() End If If Not Validada Then BtnGuardar.Visible = False End If End If End If ObjVenta.Dispose() End Sub Private Sub CargaCorteCaja() 'Checar si hay un Turno Abierto Dim ObjPVenta As New ClsPuntoVenta If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then If ObjPVenta.DtResultados.Rows.Count > 0 Then CveCorte = ObjPVenta.CveCorte End If End If ObjPVenta.Dispose() End Sub Private Sub CargaCliente(ByVal CveCliente As Integer, RFC As String) Dim ObjCliente As New ClsClientes If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", RFC, "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then If ObjCliente.DtResultados.Rows.Count > 0 Then TxtPagueseA.Text = ObjCliente.Nombre RFCCliente = ObjCliente.RFC 'Conta ContPAQ IdCuentaCliente = ObjCliente.IdCtaContClientes ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR ViewState("IdCtaAnticipo") = ObjCliente.IdCtaContAnticipos ViewState("IdCtaContMonedaExtranjeraAnticipo") = ObjCliente.IdCtaMonedaExtranjeraAnticipos ViewState("IdCtaContMonedaComplementariaAnticipo") = ObjCliente.IdCtaContCompAnticipos Else Alert("El cliente solicitado no existe, por favor intente de nuevo.", TipoMensaje.MsgAdvertencia) End If End If ObjCliente.Dispose() End Sub Private Sub CargaTipoTransaccion(Optional Tipo As String = "Egs") DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros(String.Format("Tipo = '{0}' AND Estatus = 1", Tipo)) DdlTipoTransaccion.DataBind() DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1")) End Sub Private Sub CargaCuentas() DdlCuenta.Items.Clear() Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) 'dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMoneda)) If ChkPagarPesos.Checked Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) RegistraScript("CambiaPesosDolares();") ElseIf ChkPagarDolares.Checked Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 2)) RegistraScript("CambiaDolaresPesos();") Else If CveMonedaFiltros > 0 Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMonedaFiltros)) End If End If DdlCuenta.DataSource = dt DdlCuenta.DataBind() DdlCuenta.Items.Insert(0, New ListItem("Seleccione cuenta", "-1")) End Sub Private Sub CargaGridTarjetas() Dim ObjCreditos As New ClsBancos ObjCreditos.GetTarjetasCreditos(DdlCuenta.SelectedValue.ToEntero) DdlTarjeta.Items.Clear() DdlTarjeta.DataSource = ObjCreditos.DtResultados DdlTarjeta.DataBind() DdlTarjeta.Items.Insert(0, New ListItem("Seleccione", "-1")) ObjCreditos.Dispose() DivTarjeta.Visible = True End Sub Protected Sub CargaFuncionariosEmpleados() 'SI ES VENTA SOLO CARGO FUNCIONARIOS If CveVenta > 0 Then DdlFuncionarioEmpleado.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) DdlFuncionarioEmpleado.DataBind() DdlFuncionarioEmpleado.Items.Insert(0, New ListItem("Seleccione Funcionario Empleado", "-1")) End If End Sub Protected Sub CargaOtrosIngresos(Optional CveMoneda As Integer = 1) Dim IngresosXcomprobar As New ClsMovimientos DdlIngreso.Items.Clear() If IngresosXcomprobar.GetIngresosSaldos(-1, UsuarioActual.CveEmpresa) Then DtDeudores = IngresosXcomprobar.DtResultados.FiltraParametros($"CveCliente > 0 AND Saldo > 0 AND CveMoneda = {CveMoneda}") DdlIngreso.DataSource = DtDeudores DdlIngreso.DataBind() DdlIngreso.Items.Insert(0, New ListItem("Seleccione Ingreso", "-1")) UpDatos.Update() CambieIngreso() End If IngresosXcomprobar.Dispose() End Sub Protected Sub CargaDeudores(Optional CveMoneda As Integer = 1) Dim Deudores As New ClsMovimientos DdlDeudor.Items.Clear() If Deudores.GetDeudoresSaldos2(-1, UsuarioActual.CveEmpresa) Then DtDeudores = Deudores.DtResultados.FiltraParametros($"CveProveedor > 0 AND SaldoVentas > 0 AND CveMoneda = {CveMoneda}") DdlDeudor.DataSource = DtDeudores DdlDeudor.DataBind() DdlDeudor.Items.Insert(0, New ListItem("Seleccione Deudor", "-1")) UpDatos.Update() CambieDeudor() End If Deudores.Dispose() End Sub Protected Sub CargaCompras(Optional CveMoneda As Integer = 1) Dim ObjCompras As New ClsCompras Dim ObjProveedor As New ClsCompProveedores Dim CveProveedor As Integer = -1 If ObjCompras.GetCompras(-1, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, ProveedorRFC:=RFCCliente) Then If ObjCompras.DtResultados.FiltraParametros("Saldo > 0").Rows.Count > 0 Then CveProveedor = ObjCompras.DtResultados(0)("CveProveedor").ToString.ToEntero GvCompras.DataSource = ObjCompras.DtResultados.FiltraParametros($"Saldo > 0 AND CveMoneda = {CveMoneda}") GvCompras.DataBind() End If End If If CveProveedor > 0 Then If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, CveProveedor, "-1", "-1", "-1", "-1", RFCCliente, "-1", "-1", -1, UsuarioActual.CveEmpresa) Then 'Conta ContPAQ ViewState("CtaProveedor") = ObjProveedor.IdCtaContProveedores ViewState("CtaProveedorDeudores") = ObjProveedor.IdCtaContDeudor ViewState("CtaProveedorAcreedores") = ObjProveedor.IdCtaContAcreedor ViewState("IdCtaContRetISRProveedor") = ObjProveedor.IdCtaContRetISR ViewState("IdCtaContRetISRAcreditableProveedor") = ObjProveedor.IdCtaContRetISRAcreditable ViewState("IdCtaContRetIVAProveedor") = ObjProveedor.IdCtaContRetIVA ViewState("IdCtaContRetIVAAcreditableProveedor") = ObjProveedor.IdCtaContRetIVAAcreditable ViewState("IdCtaProveedorExtranjera") = ObjProveedor.IdCtaContProveedoresExtranjera ViewState("IdCtaContComplementariaProveedor") = ObjProveedor.IdCtaContProveedoresComplementaria End If End If ObjCompras.Dispose() ObjProveedor.Dispose() UpDatos.Update() End Sub Private Sub CambieIngreso() Dim stringDeudor As String = DdlIngreso.SelectedItem.ToString Dim SaldoD As Decimal = stringDeudor.Substring(stringDeudor.IndexOf("$") + 1, stringDeudor.Length - (stringDeudor.IndexOf("$") + 1)).ToDecimal If DdlIngreso.SelectedValue.ToEntero > 0 Then Dim Deudores As New ClsMovimientos If Deudores.GetIngresosSaldosDetalle(DdlIngreso.SelectedValue.ToEntero, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then DtDeudoresDetalle = Deudores.DtResultados.FiltraParametros("CveCliente > 0 AND Saldo > 0") GvIngresos.DataSource = DtDeudoresDetalle GvIngresos.DataBind() End If Deudores.Dispose() Else GvIngresos.DataSource = Nothing GvIngresos.DataBind() End If UpIngresos.Update() End Sub Private Sub CambieDeudor() Dim stringDeudor As String = DdlDeudor.SelectedItem.ToString Dim SaldoD As Decimal = stringDeudor.Substring(stringDeudor.IndexOf("$") + 1, stringDeudor.Length - (stringDeudor.IndexOf("$") + 1)).ToDecimal If DdlDeudor.SelectedValue.ToEntero > 0 Then Dim Deudores As New ClsMovimientos Dim OpcionSaldo As Integer = 1 If CveVenta > 0 Then OpcionSaldo = 2 If Deudores.GetDeudoresSaldosDetalle(DdlDeudor.SelectedValue.ToEntero, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then DtDeudoresDetalle = Deudores.DtResultados.FiltraParametros(If(CveVenta > 0, " CveProveedor > 0 AND SaldoVentas > 0", "CveProveedor > 0 AND Saldo > 0")) GvDeudores.DataSource = DtDeudoresDetalle GvDeudores.DataBind() End If Deudores.Dispose() Else GvDeudores.DataSource = Nothing GvDeudores.DataBind() End If UpDeudores.Update() End Sub #End Region #Region "DDL'S CHANGED" Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged Dim valor As Integer = DirectCast(sender, DropDownList).SelectedValue.ToEntero Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing Select Case valor Case 1 LblPagueseA.Text = "Páguese a" Case 2 LblPagueseA.Text = "Beneficiario" End Select 'RecargaCuentas CargaCuentasDepositos() CargaCuentas() UpDatos.Update() End Sub Protected Sub DdlCuenta_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuenta.SelectedIndexChanged Dim Folio As Long Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue) Dim TCveMoneda = -1 If dr IsNot Nothing Then If ChkPagarPesos.Checked Then CveMoneda = 1 RegistraScript("CambiaPesosDolares();") Else CveMoneda = dr("CveMoneda").ToString.ToEntero RegistraScript("CambiaDolaresPesos();") End If IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero IdCuentaBancariaComplementaria = dr("IdCtaContableComplementaria").ToString.ToEntero CveCuentaBancaria = dr("IdCtaContableSIG").ToString.ToEntero If dr("UsaTarjeta").ToString = "True" Then CargaGridTarjetas() Else DivTarjeta.Visible = False End If End If 'If CveMoneda = 2 Then ' ChkPagarPesos.Visible = True ' TxtTC.Text = GlobalTipoCambio(Now).FormatoNumero 'End If If UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then If UsuarioActual.CveEmpresa = 119 Then Dim ObjFolios As New ClsGralFolios If ObjFolios.GetFolios("RMF", UsuarioActual.CveEmpresa) Then Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format(" Estado = 'Activo'")) If DT.Rows.Count > 0 Then TxtFolio.Text = DT.Rows(0)("FActual").ToString End If ObjFolios.Dispose() End If Else Dim Banco As New ClsBancos Folio = Banco.GetNextFolio(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero) TxtFolio.Text = Folio.ToString Banco.Dispose() End If End If End Sub Private Sub DdlOtrosPagos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlOtrosPagos.SelectedIndexChanged Dim EsOtrosEgresos As Boolean = (DdlOtrosPagos.SelectedValue.Equals("2")) rowComision.Visible = EsOtrosEgresos rowTotal.Visible = EsOtrosEgresos TxtComision.Text = "0.00" TxtTotal.Text = TxtImporte.Text End Sub Protected Sub DdlFuncionarioEmpleado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlFuncionarioEmpleado.SelectedIndexChanged Dim CvePersonal As Integer = DdlFuncionarioEmpleado.SelectedValue.ToEntero End Sub Private Sub DdlIngreso_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlIngreso.SelectedIndexChanged CambieIngreso() End Sub Private Sub DdlDeudor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlDeudor.SelectedIndexChanged CambieDeudor() End Sub #Region " CUENTAS DEPOSITOS" Private Sub CargaCuentasDepositos() DdlCuentaDeposito.Items.Clear() If DdlTipoTransaccion.SelectedValue.ToEntero > 0 Then ' transferencias y layout trCuentaDeposito.Visible = False Dim Dep As New ClsGenerales If Dep.GetCuentasDepositos(CveCliente:=CveCliente) Then If DdlTipoTransaccion.SelectedValue = "9" Then DdlCuentaDeposito.DataSource = Dep.DtResultados.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'") If Dep.DtResultados.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'").Rows.Count > 0 Then trCuentaDeposito.Visible = True DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) Else BtnGuardar.Enabled = False Alert("El Cliente no tiene ninguna cuenta deposito registrada ante el sistema BBVA BANCOMER", TipoMensaje.MsgAdvertencia) End If Else DdlCuentaDeposito.DataSource = Dep.DtResultados.FiltraParametros("Estatus ='True'") If Dep.DtResultados.Rows.Count >= 1 Then trCuentaDeposito.Visible = True DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) End If End If End If Dep.Dispose() DdlCuentaDeposito.DataBind() Else trCuentaDeposito.Visible = False DdlCuentaDeposito.Items.Clear() End If UpCuentaDeposito.Update() UpDatos.Update() End Sub 'Private Sub RecargaCuentasDepositos() ' Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing ' If dr IsNot Nothing Then ' HdnTipoTransaccion.Value = dr("Tipo").ToString ' HdnTipoTransaccionAbreviatura.Value = dr("Abreviatura").ToString ' End If ' CargaCuentasDepositos() 'End Sub Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) Dim Dep As New ClsGenerales If Dep.GetCuentasDepositos(CveCliente:=CveCliente, CveCuentaDeposito:=DdlCuentaDeposito.SelectedValue.ToEntero) AndAlso Dep.DtResultados.Rows.Count = 1 Then If Dep.DtResultados.Rows(0)("TieneCIE").ToString.ToEntero = 1 Then TrReferenciaCIE.Visible = True TxtReferenciaCIE.Text = Dep.DtResultados.Rows(0)("Referencia").ToString Else TrReferenciaCIE.Visible = False End If End If Dep.Dispose() UpCuentaDeposito.Update() End Sub #End Region #End Region #Region "GV ROW DATA BOUND" Private Sub GvIngresos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvIngresos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Double Dim saldo As Double saldo = e.Row.DataKey("Saldo").ToDouble total = SaldoVenta e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo)) e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();") e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN") Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator) End If End Sub Private Sub GvDeudores_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDeudores.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Double Dim saldo As Double saldo = e.Row.DataKey("Saldo").ToDouble total = SaldoVenta e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo)) e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();") e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN") Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator) End If End Sub Private Sub GvCompras_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCompras.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Double Dim saldo As Double saldo = e.Row.DataKey("Saldo").ToDouble total = SaldoVenta e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo)) e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();") e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN") Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator) End If End Sub #End Region #Region "CHK TIPO CAMBIO" #Region "PAGAR CON PESOS" Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs) If ChkPagarPesos.Checked Then DivTipoCambio.Visible = True DivDolaresDolares.Visible = False TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) CveMonedaFiltros = 1 CargaCuentas() CargaOtrosIngresos(1) CargaDeudores(1) CargaCompras(1) GvIngresos.Columns(5).Visible = True GvIngresos.Columns(6).Visible = True GvDeudores.Columns(5).Visible = True GvDeudores.Columns(6).Visible = True RVImporte.Enabled = False RVImporte.MaximumValue = "0.00" CVImportePesos.Enabled = True CVImporteDolares.Enabled = True Else DivTipoCambio.Visible = False DivDolaresDolares.Visible = True TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) CveMonedaFiltros = 2 CargaCuentas() CargaOtrosIngresos(2) CargaDeudores(2) CargaCompras(2) GvIngresos.Columns(5).Visible = False GvIngresos.Columns(6).Visible = False GvDeudores.Columns(5).Visible = False GvDeudores.Columns(6).Visible = False RVImporte.Enabled = True RVImporte.MaximumValue = LtlSaldo.Text.ToDouble.ToString CVImporteDolares.Enabled = False CVImportePesos.Enabled = False End If UpDatos.Update() UpIngresos.Update() UpDeudores.Update() RegistraScript("CambiaPesosDolares();") End Sub Protected Sub CVImporteDolares_ServerValidate(source As Object, args As ServerValidateEventArgs) If args.Value.ToString.Substring(0, args.Value.Length - 3).ToDouble <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDouble Then args.IsValid = True Else args.IsValid = False End If End Sub #End Region #Region "PAGAR CON DOLARES" Protected Sub ChkPagarDolares_CheckedChanged(sender As Object, e As EventArgs) If ChkPagarDolares.Checked Then DivTCDolares.Visible = True DivDolaresDolares.Visible = False TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) CveMonedaFiltros = 2 CargaCuentas() CargaOtrosIngresos(2) CargaDeudores(2) CargaCompras(2) GvIngresos.Columns(5).Visible = True GvIngresos.Columns(6).Visible = True GvDeudores.Columns(5).Visible = True GvDeudores.Columns(6).Visible = True RVImporte.Enabled = False RVImporte.MaximumValue = "0.00" CVImportePesos.Enabled = True Else DivTCDolares.Visible = False DivDolaresDolares.Visible = False TxtFechaDocumento.Attributes.Remove("onchange") CveMonedaFiltros = 1 CargaCuentas() CargaOtrosIngresos(1) CargaDeudores(1) CargaCompras(1) GvIngresos.Columns(5).Visible = False GvIngresos.Columns(6).Visible = False GvDeudores.Columns(5).Visible = False GvDeudores.Columns(6).Visible = False RVImporte.Enabled = True RVImporte.MaximumValue = LtlSaldo.Text.ToDouble.ToString CVImporteDolares.Enabled = False CVImportePesos.Enabled = False End If UpDatos.Update() RegistraScript("CambiaDolaresPesos();") End Sub Protected Sub CVImportePesos_ServerValidate(source As Object, args As ServerValidateEventArgs) If args.Value.ToString.Substring(0, args.Value.Length - 3).ToDouble <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDouble Then args.IsValid = True Else args.IsValid = False End If End Sub #End Region Protected Sub BtnCambiaTipoMoneda_Click(sender As Object, e As EventArgs) CambiaTipoMoneda() End Sub Private Sub CambiaTipoMoneda() Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, TxtFechaDocumento.Text.ToDate.Day - 1, TxtFechaDocumento.Text.ToDate.Day) Fecha = (dia.ToString + "/" + TxtFechaDocumento.Text.ToDate.Month.ToString + "/" + TxtFechaDocumento.Text.ToDate.Year.ToString).ToDate If DivTipoCambio.Visible Then TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) RegistraScript("CambiaPesosDolares();") End If If DivTCDolares.Visible Then TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) RegistraScript("CambiaDolaresPesos();") End If If DivDolaresDolares.Visible Then TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) End If UpDatos.Update() End Sub #End Region #Region "G U A R D A R" Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click Dim FechaFactura As Date = FechaVenta Dim FechaDocumentoPago As Date = TxtFechaDocumento.Text.ToDate Dim AnioFactura As Integer = FechaFactura.Year Dim MesFactura As Integer = FechaFactura.Month Dim AnioDocumento As Integer = FechaDocumentoPago.Year Dim MesDocumento As Integer = FechaDocumentoPago.Month If AnioFactura > AnioDocumento Then Alert($"El mes de la fecha de venta no puede ser mayor al mes de la la fecha de pago
Fecha de venta: { FechaVenta.ToString("dd/MM/yyyy") }", TipoMensaje.MsgAdvertencia) Exit Sub ElseIf AnioFactura = AnioDocumento And MesFactura > MesDocumento Then Alert($"El mes de la fecha de venta no puede ser mayor al mes de la la fecha de pago
Fecha de venta: { FechaVenta.ToString("dd/MM/yyyy") }", TipoMensaje.MsgAdvertencia) Exit Sub End If 'VALIDACION PARA LOS IMPORTES CUANDO SE QUIERE PAGAR EN DIFERENTE MONEDA If Not Page.IsValid Then Exit Sub End If Dim MsgError As String = "" Dim CveConceptoPrePoliza As Integer = -1 Dim CveConceptoPrePoliza2 As Integer = -1 Dim CvePersonal As Integer = -1 Dim Inserta As Boolean = True Dim ImportePagado As Decimal = 0 Dim TipoMovimiento As Boolean = False Dim PorcentajePago As Decimal = 0 Dim CveProveedor2 As Integer = -1 Dim Fecha As Date = TxtFechaDocumento.Text.Trim.ToDate Dim CompraSaldo As Decimal = 0 If Not EmpresaPrueba Then CveIE = -1 Select Case RBLContado.SelectedValue Case "1" ' Bancos ImportePagado = If(DdlOtrosPagos.SelectedValue.ToEntero = 2, TxtTotal.Text.Trim.ToDecimal, TxtImporte.Text.Trim.ToDecimal) 'TxtImporte.Text.Trim.ToDecimal Fecha = TxtFechaDocumento.Text.Trim.ToDate TipoMovimiento = True Case "2" 'FyE ImportePagado = TxtImporte.Text.Trim.ToDecimal Fecha = TxtFechaDocumento.Text.Trim.ToDate CveConceptoPrePoliza = 29 CveIE = -1 TipoMovimiento = True Dim stringPersonal As String = DdlFuncionarioEmpleado.SelectedItem.ToString CvePersonal = DdlFuncionarioEmpleado.SelectedValue.ToEntero Case "3" 'Ingresos X Comprobar ImportePagado = TxtImporte.Text.Trim.ToDecimal Case "4" 'Deudores Diversos ImportePagado = TxtImporte.Text.Trim.ToDecimal CveConceptoPrePoliza = 17 CveConceptoPrePoliza2 = 37 CveIE = -1 Case "5" 'Compras ImportePagado = TxtImporte.Text.Trim.ToDecimal CveProveedor2 = CveCliente CveIE = -1 Case Else ImportePagado = 0 End Select If ImportePagado <= 0 Then Inserta = False Alert("Debe ingresar un importe.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjIE As New ClsBancos() Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) Dim ObjCliente As New ClsClientes(ObjIE.IniciaTransacSQL) Dim CvePlantillaPoliza As Integer = 11 Dim ConceptoPoliza As String = String.Format("{0} {1}", NombreCliente, SerieFolio) Dim CveCuentaDeposito As Integer = If(DdlCuentaDeposito.Items.Count > 0, DdlCuentaDeposito.SelectedValue.ToEntero, 0) Dim FechaDocumento = FechaVenta Dim StrMsg As New StringBuilder 'Saca moneda en que se va a pagar segun metodo de pago Select Case RBLContado.SelectedValue Case "1" ' Banco If DdlCuenta.SelectedValue.ToEntero > 0 Then CveMoneda = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero End If Case "2", "3", "4", "5" 'FyE, Ingresos, Deudores If ChkPagarDolares.Checked Then CveMoneda = 2 ElseIf ChkPagarPesos.Checked Then CveMoneda = 1 End If End Select 'cuando es pago con compra, debe de ser de Diario Dim CveTipoPoliza As Integer = ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa) If RBLContado.SelectedValue = "5" Then CveTipoPoliza = 3 Dim CvePrePoliza As Integer = ObjMov.AddPrePolizas("Bancos/PopIEVentas", CvePlantillaPoliza, ImportePagado, ImportePagado, CveMoneda, Fecha, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)) If Inserta Then If CvePrePoliza > 0 Then 'SE AGREGA DETALLE DE UNA VENTA If CveVenta > 0 Then If EmpresaPrueba Then If MovimientoPagar IsNot Nothing Then Dim ConceptoMovimiento As String = "" Dim tipoCambioPago As Decimal = 1 Dim tipoCambioVenta As Decimal = 1 Dim tipoCambioVentaValuacion As Decimal = 1 Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:

" Dim idCuentaContabilizacion As Long = 1 Dim CuentasContablesInvalidas As New StringBuilder Dim CveCuentaContabilizacion As Long = 1 Dim CuentasContablesInvalidasSIG As New StringBuilder Dim TipoCambioFluctuacion As Decimal = 1 Dim FechaUltimaFluctuacion As Date = MinFecha If ObjIE.GetFluctuacionesBitacora(UsuarioActual.CveEmpresa) Then If ObjIE.DtResultados.Rows.Count > 0 Then Dim tFecha As Date = TxtFechaDocumento.Text.ToDate Dim strFecha As String = String.Format("{0}/{1}/{2}", tFecha.Year, tFecha.Month, tFecha.Day) Dim drr As DataRow = ObjIE.DtResultados.FiltroPrimero("Fecha < #" & strFecha & "#", "Fecha DESC") If drr IsNot Nothing Then FechaUltimaFluctuacion = drr("Fecha").ToString.ToDate TipoCambioFluctuacion = drr("TipoCambio").ToString.ToDecimal End If End If End If If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then 'Si la venta viene en Pesos y se va a pagar en Pesos tipoCambioPago = 1 tipoCambioVenta = 1 PorcentajePago = TxtImporte.Text.Trim.ToDecimal / MovimientoPagar.Total ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos tipoCambioPago = TxtTipoCambio.Text.ToDecimal tipoCambioVenta = TipoCambioOriginal tipoCambioVentaValuacion = If(FechaVenta < FechaUltimaFluctuacion, TipoCambioFluctuacion, TipoCambioOriginal) PorcentajePago = (TxtImporte.Text.Trim.ToDecimal / tipoCambioPago) / MovimientoPagar.Total ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES 'tipoCambioPago = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).ToString.ToDecimal tipoCambioPago = TxtTCDolaresDolares.Text.ToDecimal tipoCambioVenta = TipoCambioOriginal tipoCambioVentaValuacion = If(FechaVenta < FechaUltimaFluctuacion, TipoCambioFluctuacion, TipoCambioOriginal) PorcentajePago = TxtImporte.Text.Trim.ToDecimal / MovimientoPagar.Total ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES tipoCambioPago = TxtTCDolares.Text.ToDecimal tipoCambioVenta = 1 PorcentajePago = (TxtImporte.Text.Trim.ToDecimal * tipoCambioPago) / MovimientoPagar.Total End If Select Case RBLContado.SelectedValue Case "1" ' Banco CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, Fecha, TxtFolio.Text.Trim, TxtPagueseA.Text.Trim, ImportePagado, CveMoneda, tipoCambioPago, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaTarjeta:=If(DivTarjeta.Visible, DdlTarjeta.SelectedValue.ToEntero, -1), CveCuentaDeposito:=CveCuentaDeposito, Referencia:=If(TxtReferenciaCIE.Visible, TxtReferenciaCIE.Text, "-1"), CveCorte:=CveCorte) If CveIE > 0 Then If CveVenta > 0 Then CveConceptoPrePoliza = 2 End If Else MsgError = "Ocurrio un Error al registrarse el movimiento bancario." Inserta = False End If Case "3" 'Ingresos x Comprobar If CveVenta > 0 Then CveConceptoPrePoliza = 2 CveConceptoPrePoliza2 = 92 CveCliente = DdlIngreso.SelectedValue.ToEntero CveIE = -1 ImportePagado = TxtImporte.Text.Trim.ToDecimal End If Case "4" 'Deudores Diversos If CveVenta > 0 Then ImportePagado = TxtImporte.Text.Trim.ToDecimal CveConceptoPrePoliza = 2 CveConceptoPrePoliza2 = 43 CveProveedor2 = DdlDeudor.SelectedValue.ToEntero CveIE = -1 End If Case "5" 'Compras If CveVenta > 0 Then ImportePagado = TxtImporte.Text.Trim.ToDecimal CveConceptoPrePoliza = 2 'CveConcepto2 = 43 CveIE = -1 End If Case Else MsgError = "No se ha especificada opcion." End Select If MsgError = "" Then 'inserto las ventas que voy a pagar If ObjMov.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPoliza) Then Dim TotalPagarCliente As Decimal = 0 Dim CveSubProyectoContabilizar = -1 For Each Row As DataRow In ObjMov.DtResultados.Rows Dim ConceptoContable = Row("CveConcepto").ToString.ToEntero TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False) ConceptoMovimiento = ObjMov.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, NombreCliente, SerieFolio, ObjIE.Folio, TxtObservaciones.Text.Trim) Dim ImporteMovimiento As Decimal = 0 Dim ImporteMX As Decimal = 0 Dim ImporteCliente As Decimal = 0 Dim IdCtaContable As Integer = 0 Dim Referencia As String = TxtObservaciones.Text Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) Dim TimpocambioGeneral As Decimal = 1 Dim PorcentajeImpuesto As Decimal = 0 Dim ReferenciaConcepto As String = If(ConceptoContable = 30, ObjIE.Folio, LtlFolio.Text) Select Case ConceptoContable Case 2 'Pago Cliente If RBLContado.SelectedValue.Contiene("3", "4", "5") Then If CveMonedaVenta > 1 Then ConceptoContable = 292 For Each rw As GridViewRow In GvIngresos.Rows If rw.FCCheckBox("Chk").Checked Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / tipoCambioPago ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal * tipoCambioPago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVentaValuacion CveSubProyectoContabilizar = CveSubProyectoVenta CveIE = rw.DataKey("CveIE").ToString.ToEntero 'si la factura es en dólares y trae complementaria, el importemn debe ser igual al importe If CveMonedaVenta <> 1 Then ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContMonedaExtranjera Else IdCtaContable = IdCuentaCliente End If TotalPagarCliente = ImporteMovimiento If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ReferenciaConcepto, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, CveCliente:=CveClienteOriginal, ImporteMX:=ImporteMX, TipoCambio:=tipoCambioVentaValuacion, TipoCambioPago:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If If CveMonedaVenta = 2 Then IdCtaContable = IdCtaContComplementaria If ImporteMovimiento <> 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, ReferenciaConcepto, 207, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioVentaValuacion) Then MsgError = "No se pudo insertar la póliza" End If TotalPagarCliente += Math.Round(ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, 2) 'le agrego la complementario ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContMonedaExtranjera End If End If End If Next For Each rw As GridViewRow In GvDeudores.Rows If rw.FCCheckBox("Chk").Checked Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / tipoCambioPago ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal * tipoCambioPago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVentaValuacion CveSubProyectoContabilizar = CveSubProyectoVenta CveIE = rw.DataKey("CveIE").ToString.ToEntero If CveMonedaVenta <> 1 AndAlso IdCtaContComplementaria > 0 Then ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContMonedaExtranjera Else IdCtaContable = IdCuentaCliente End If TotalPagarCliente = ImporteMovimiento If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ReferenciaConcepto, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMX, TipoCambio:=tipoCambioVentaValuacion, TipoCambioPago:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If If CveMonedaVenta = 2 Then IdCtaContable = IdCtaContComplementaria If ImporteMovimiento <> 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, ReferenciaConcepto, 207, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioVentaValuacion) Then MsgError = "No se pudo insertar la póliza" End If ImporteMX = ImporteMovimiento TotalPagarCliente += Math.Round(ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, 2) 'le agrego la complementario IdCtaContable = IdCtaContMonedaExtranjera End If End If End If Next For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / tipoCambioPago ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal * tipoCambioPago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVentaValuacion CveSubProyectoContabilizar = CveSubProyectoVenta If CveMonedaVenta <> 1 AndAlso IdCtaContComplementaria > 0 Then ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContMonedaExtranjera Else IdCtaContable = IdCuentaCliente End If TotalPagarCliente = ImporteMovimiento If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, rw.DataKey("CveCompra").ToEntero, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMX, TipoCambio:=tipoCambioVentaValuacion, TipoCambioPago:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If If CveMonedaVenta = 2 Then IdCtaContable = IdCtaContComplementaria If ImporteMovimiento <> 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, rw.FCLiteral("LtlFolio").Text, 207, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, rw.DataKey("CveCompra").ToEntero, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioVentaValuacion) Then MsgError = "No se pudo insertar la póliza" End If ImporteMX = ImporteMovimiento TotalPagarCliente += Math.Round(ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, 2) 'le agrego la complementario IdCtaContable = IdCtaContMonedaExtranjera End If End If End If Next ImporteMovimiento = 0 Else Dim ImporteMov = TxtImporte.Text.Trim.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = ImporteMov ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = ImporteMov / tipoCambioPago ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = ImporteMov * tipoCambioPago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = ImporteMov ImporteMX = ImporteMovimiento * tipoCambioVentaValuacion End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVentaValuacion TotalPagarCliente = ImporteMovimiento CveSubProyectoContabilizar = CveSubProyectoVenta End If If CveMonedaVenta = 1 Then IdCtaContable = IdCuentaCliente Else IdCtaContable = IdCtaContComplementaria CveSubProyectoContabilizar = CveSubProyectoVenta If ImporteMovimiento <> 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, ReferenciaConcepto, 207, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioVentaValuacion) Then MsgError = "No se pudo insertar la póliza" End If ImporteMX = ImporteMovimiento TotalPagarCliente += Math.Round(ImporteMovimiento * tipoCambioVentaValuacion - ImporteMovimiento, 2) 'le agrego la complementario IdCtaContable = IdCtaContMonedaExtranjera End If End If Case 8 'Ret IVA If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.RetIVA * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago) ImporteMX = ImporteMovimiento * tipoCambioVenta ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago) ImporteMX = ImporteMovimiento * tipoCambioVenta End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVenta CveSubProyectoContabilizar = CveSubProyectoVenta If tipoCambioVenta > 1 Then ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVA <> 0 Then IdCtaContable = IdCtaContRetIVA Else If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If Case 9 'Ret ISR If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.RetISR * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ImporteMX = ImporteMovimiento * tipoCambioVenta ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ImporteMX = ImporteMovimiento * tipoCambioVenta End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVenta CveSubProyectoContabilizar = CveSubProyectoVenta If tipoCambioVenta > 1 Then ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetISR <> 0 Then IdCtaContable = IdCtaContRetISR Else If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero End If End If End If Case 13 'Iva por Trasladar If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.IVA * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IVA * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * tipoCambioVenta ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.IVA * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IVA * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * tipoCambioVenta End If ImporteMovimiento = ImporteMovimiento.RoundSQL ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVenta CveSubProyectoContabilizar = CveSubProyectoVenta If tipoCambioVenta > 1 Then ConceptoMovimiento += $" TC:{tipoCambioVenta} ${ImporteMovimiento.FormatoNumero(2)}" PorcentajeImpuesto = MovimientoPagar.PorcentajeIVA Dim IdCtaIVAXTrasladar As Integer = 0 If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then IdCtaIVAXTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXTrasladar").ToString.ToEntero End If IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar) Case 61 'Iva Trasladado If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.IVA * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IVA * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.IVA * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IVA * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) End If ImporteMovimiento = ImporteMovimiento.RoundSQL ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) CveSubProyectoContabilizar = CveSubProyectoVenta If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" PorcentajeImpuesto = MovimientoPagar.PorcentajeIVA Dim IdCtaIVATrasladado As Integer = 0 If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then IdCtaIVATrasladado = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVATrasladado").ToString.ToEntero End If IdCtaContable = If(IdCtaIVATrasladado > 0, IdCtaIVATrasladado, UsuarioActual.Empresa.IdCuentaIVATrasladado) Case 38 'IEPS por trasladar If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.IEPS * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * tipoCambioVenta ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * tipoCambioVenta End If ImporteMovimiento = ImporteMovimiento.RoundSQL ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioVenta CveSubProyectoContabilizar = CveSubProyectoVenta If ImporteMovimiento > 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString.ToEntero End If End If Case 39 'IEPS Trasladado If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.IEPS * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.IEPS * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) End If ImporteMovimiento = ImporteMovimiento.RoundSQL ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) CveSubProyectoContabilizar = CveSubProyectoVenta If ImporteMovimiento > 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString.ToEntero End If End If Case 62 'Ret IVA Trasladado If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.RetIVA * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetIVA * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) CveSubProyectoContabilizar = CveSubProyectoVenta If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVA <> 0 Then IdCtaContable = IdCtaContRetIVA Else If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If Case 63 'Ret ISR Trasladado If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = MovimientoPagar.RetISR * PorcentajePago ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago) ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then tipoCambioVenta = TipoCambioOriginal ImporteMovimiento = (MovimientoPagar.RetISR * PorcentajePago).RoundSQL ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) CveSubProyectoContabilizar = CveSubProyectoVenta If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetISR <> 0 Then IdCtaContable = IdCtaContRetISR Else If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero End If End If End If Case 64 'Ganancia If CveMoneda <> 1 OrElse CveMonedaVenta <> 1 Then IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria Dim tImporteVenta, tImportePago, Diferencia As Decimal ImporteMovimiento = 0 If CveMonedaVenta = 1 And CveMoneda = 2 Then 'factura pesos, pago en dolares tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVenta / tipoCambioPago).RoundSQL ElseIf CveMonedaVenta = 2 And CveMoneda = 2 Then 'factura dolares, pago en dolares tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL ElseIf CveMonedaVenta = 2 And CveMoneda = 1 Then 'factura dolares, pago en pesos tImporteVenta = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion).RoundSQL tImportePago = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago).RoundSQL End If If tImporteVenta <> tImportePago Then If tImporteVenta < tImportePago Then ConceptoContable = 64 IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria TipoMovimiento = True Else ConceptoContable = 65 IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria TipoMovimiento = False End If Diferencia = Math.Abs(tImporteVenta - tImportePago) End If ' si tiene funcionalidad para que tome el TC de pago, que solo afecta a los impuestos If FuncionalidadFluctuacionImpuestos Then Dim TCImpuestos As Decimal = tipoCambioPago TimpocambioGeneral = TCImpuestos Diferencia -= (((MovimientoPagar.IVA * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.IVA * PorcentajePago) * TCImpuestos)) 'Añadimos la diferencia de ganancia en el IVA Diferencia -= (((MovimientoPagar.RetIVA * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.RetIVA * PorcentajePago) * TCImpuestos)) 'Añadimos la diferencia de ganancia en el RetIVA Diferencia -= (((MovimientoPagar.RetISR * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.RetISR * PorcentajePago) * TCImpuestos)) 'Añadimos la diferencia de ganancia en el RetISR Diferencia -= (((MovimientoPagar.IEPS * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.IEPS * PorcentajePago) * TCImpuestos)) 'Añadimos la diferencia de ganancia en el IEPS Diferencia = Math.Round(Diferencia, 2) End If ImporteMovimiento = Math.Abs(Diferencia) ImporteMX = ImporteMovimiento '' se considera, las diferencias, y no el tipo de cambio, por el caso de las fluctuaciones '' si tiene funcionalidad de flucturación con ivas, tomar tipocambioventa 'If Diferencia < 0 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = Math.Abs(Diferencia) ' ImporteMX = ImporteMovimiento 'End If Else ImporteMovimiento = 0 End If CveSubProyectoContabilizar = CveSubProyectoVenta 'Case 65 'Perdida ' If CveMoneda <> 1 OrElse CveMonedaVenta <> 1 Then ' IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria ' CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria ' Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, tipoCambioVenta) ' TimpocambioGeneral = TCImpuestos ' Dim Diferencia As Decimal = ((MovimientoPagar.Total * PorcentajePago) * tipoCambioVentaValuacion) - ((MovimientoPagar.Total * PorcentajePago) * tipoCambioPago) 'Añadimos la diferencia de perdida en la venta ' Diferencia -= ((MovimientoPagar.IVA * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.IVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA ' Diferencia += ((MovimientoPagar.RetIVA * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA ' Diferencia += ((MovimientoPagar.RetISR * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR ' Diferencia -= ((MovimientoPagar.IEPS * PorcentajePago) * tipoCambioVenta) - ((MovimientoPagar.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS ' Diferencia = Math.Round(Diferencia, 2) ' 'si la diferencia es negativa es pérdida, si es positiva es ganancia ' If Diferencia > 0 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = Math.Abs(Diferencia) ' ImporteMX = ImporteMovimiento ' End If ' Else ' ImporteMovimiento = 0 ' End If ' CveSubProyectoContabilizar = CveSubProyectoVenta Case 30 If RBLContado.SelectedValue = "1" Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If ImporteMovimiento = ImporteMovimiento ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioPago TotalPagarCliente = ImporteMovimiento If CveMoneda = 1 Then IdCtaContable = IdCuentaBancaria Else IdCtaContable = IdCuentaBancariaComplementaria If ImporteMovimiento <> 0 AndAlso IdCtaContable > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, ObjIE.Folio, 204, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, -1, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMovimiento * tipoCambioPago - ImporteMovimiento, ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If ImporteMX = ImporteMovimiento IdCtaContable = IdCuentaBancaria TotalPagarCliente += Math.Round(ImporteMovimiento * tipoCambioPago - ImporteMovimiento, 2) End If End If Referencia = ObjIE.Folio End If Case 92 If RBLContado.SelectedValue = "3" Then For Each rw As GridViewRow In GvIngresos.Rows If rw.FCCheckBox("Chk").Checked Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioPago CveSubProyectoContabilizar = CveSubProyectoVenta CveIE = rw.DataKey("CveIE").ToString.ToEntero 'si la factura es en dólares y trae complementaria, el importemn debe ser igual al importe If CveMoneda = 2 Then ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContMonedaExtranjeraAnticipo Else IdCtaContable = IdCtaAnticipo End If TotalPagarCliente = ImporteMovimiento If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then If ObjCliente.DtResultados.Rows.Count > 0 Then If CveMoneda = 2 Then IdCtaContable = ObjCliente.IdCtaMonedaExtranjeraAnticipos Else IdCtaContable = ObjCliente.IdCtaContAnticipos End If End If End If If UsuarioActual.CveEmpresa.Contiene(119) Then If rw.DataKey("FechaDocumento").ToDate.Year <= 2017 AndAlso Fecha.Year >= 2018 Then If ObjCliente.DtResultados.Rows.Count > 0 Then If CveMoneda = 2 Then IdCtaContable = ObjCliente.IdCtaContMonedaExtranjera Else IdCtaContable = ObjCliente.IdCtaContClientes End If End If End If End If If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ReferenciaConcepto, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMX, TipoCambio:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If If CveMoneda <> 1 AndAlso (IdCtaContMonedaComplementariaAnticipo > 0 Or UsuarioActual.CveEmpresa = 119) Then IdCtaContable = IdCtaContMonedaComplementariaAnticipo If ObjCliente.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjCliente.IdCtaContCompAnticipos End If If UsuarioActual.CveEmpresa.Contiene(119) Then If rw.DataKey("FechaDocumento").ToDate.Year <= 2017 AndAlso Fecha.Year >= 2018 Then If ObjCliente.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjCliente.IdCtaContCompClientes End If End If End If If ImporteMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsuarioActual.CveEmpresa = 119) Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, ReferenciaConcepto, 227, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, If(ViewState("CveCliente") IsNot Nothing, ViewState("CveCliente").ToString.ToEntero, -1), ImporteMX:=ImporteMovimiento * tipoCambioPago - ImporteMovimiento, ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If TotalPagarCliente += Math.Round(ImporteMovimiento * tipoCambioVenta - ImporteMovimiento, 2) 'le agrego la complementario ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContMonedaExtranjeraAnticipo If ObjCliente.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjCliente.IdCtaMonedaExtranjeraAnticipos End If If UsuarioActual.CveEmpresa.Contiene(119) Then If rw.DataKey("FechaDocumento").ToDate.Year <= 2017 AndAlso Fecha.Year >= 2018 Then If ObjCliente.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjCliente.IdCtaContMonedaExtranjera End If End If End If End If End If End If Next End If ImporteMovimiento = 0 Case 43 'Deudores If RBLContado.SelectedValue = "4" Then For Each rw As GridViewRow In GvDeudores.Rows If rw.FCCheckBox("Chk").Checked Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioPago CveSubProyectoContabilizar = CveSubProyectoVenta CveIE = rw.DataKey("CveIE").ToString.ToEntero If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ReferenciaConcepto, ConceptoContable, ConceptoMovimiento, Fecha, rw.DataKey("IdCtaContDeudor").ToString.ToEntero, -1, CveIE, CveVenta:=CveVenta, CveProveedor:=CveProveedor2, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, CveSubProyecto:=CveSubProyectoContabilizar) Then MsgError = "No se pudo insertar la póliza" End If End If Next End If ImporteMovimiento = 0 Case 28 'FyE If RBLContado.SelectedValue = "2" Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = ImportePagado.ToString.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) TimpocambioGeneral = tipoCambioPago CveSubProyectoContabilizar = CveSubProyectoVenta IdCtaContable = GlobalDTRHPersonal(UsuarioActual.CveEmpresa, CvePersonal:=CvePersonal).FiltroPrimeroValor("IdCtaContPrestamos").ToEntero Else ImporteMovimiento = 0 End If Case 78 'Otros Ingresos If DdlOtrosPagos.SelectedValue.ToEntero = 2 AndAlso TxtComision.Text.ToDouble <> 0 Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = TxtComision.Text.Trim.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = TxtComision.Text.Trim.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = TxtComision.Text.Trim.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = TxtComision.Text.Trim.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If If TxtComision.Text.ToDouble < 0 Then TipoMovimiento = False Else TipoMovimiento = True End If ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2)) ImporteMX = Math.Abs(Math.Round(ImporteMX, 2)) CveSubProyectoContabilizar = CveSubProyectoVenta IdCtaContable = UsuarioActual.Empresa.IdCuentaOtrosIngresos End If Case 17 'Pago Proveedor If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal ImporteMX = ImporteMovimiento * tipoCambioPago End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) 'si la factura es en dólares y trae complementaria, el importemn debe ser igual al importe If rw.DataKey("CveMoneda").ToEntero <> 1 Then ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContComplementariaProveedor Else IdCtaContable = CtaProveedor End If If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, 275, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, ImporteMX:=ImporteMX, TipoCambio:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If If rw.DataKey("CveMoneda").ToEntero = 2 Then IdCtaContable = IdCtaProveedorExtranjera If ImporteMovimiento <> 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, rw.FCLiteral("LtlFolio").Text, 206, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMovimiento * tipoCambioPago - ImporteMovimiento, ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioPago) Then MsgError = "No se pudo insertar la póliza" End If End If ImporteMX = ImporteMovimiento IdCtaContable = IdCtaContMonedaExtranjera End If End If Next ImporteMovimiento = 0 End If Case 15 'Ret IVA X Acreditar Honorarios/Serv. Prof. COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 1 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) 'Conta ContPAQ If IdCtaContRetIVAProveedor > 0 Then IdCtaContable = IdCtaContRetIVAProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(307).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(307).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=rw.DataKey("TipoCambio").ToString.ToDecimal) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If Case 22 'Ret IVA Acreditable Honorarios/Serv. Prof. COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 1 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVAAcreditableProveedor > 0 Then IdCtaContable = IdCtaContRetIVAAcreditableProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(308).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(308).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If Case 183 'Ret IVA X Acreditar Fletes P.F. COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 2 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If rw.DataKey("TipoCambio").ToString.ToDecimal > 1 Then ConceptoMovimiento += $" TC:{rw.DataKey("TipoCambio").ToString.ToDecimal} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVAProveedor > 0 Then IdCtaContable = IdCtaContRetIVAProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(309).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(309).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=rw.DataKey("TipoCambio").ToString.ToDecimal) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If Case 184 'Ret IVA Acreditable Fletes P.F. COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 2 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" If IdCtaContRetIVAAcreditableProveedor > 0 Then IdCtaContable = IdCtaContRetIVAAcreditableProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(310).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(310).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If Case 185 'Ret IVA X Acreditar Fletes P.M. COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 3 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If rw.DataKey("TipoCambio").ToString.ToDecimal > 1 Then ConceptoMovimiento += $" TC:{rw.DataKey("TipoCambio").ToString.ToDecimal} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVAProveedor > 0 Then IdCtaContable = IdCtaContRetIVAProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(311).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(311).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=rw.DataKey("TipoCambio").ToString.ToDecimal) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If Case 186 'Ret IVA Acreditable Fletes P.M. COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 3 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVAAcreditableProveedor > 0 Then IdCtaContable = IdCtaContRetIVAAcreditableProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(312).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(312).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If Case 248 'Ret IVA X Acreditar Arrendamiento If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 4 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVAProveedor > 0 Then IdCtaContable = IdCtaContRetIVAProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(313).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(313).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If Case 249 'Ret IVA Acreditable Arrendamiento If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 4 Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("RetIVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" 'Conta ContPAQ If IdCtaContRetIVAAcreditableProveedor > 0 Then IdCtaContable = IdCtaContRetIVAAcreditableProveedor ElseIf UsuarioActual.Empresa.Funcionalidad(314).ToEntero > 0 Then IdCtaContable = UsuarioActual.Empresa.Funcionalidad(314).ToEntero Else If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero End If End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then MsgError = "No se pudo insertar la póliza" End If End If End If End If Next ImporteMovimiento = 0 End If 'Case 16 'Ret ISR X Acreditar COMPRA ' If RBLContado.SelectedValue = "5" Then ' For Each rw As GridViewRow In GvCompras.Rows ' If rw.FCCheckBox("Chk").Checked Then ' If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 1 Then ' Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal ' If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra ' ImporteMX = ImporteMovimiento ' ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ' End If ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ' ImporteMX = Math.Round(ImporteMX, 2) ' If rw.DataKey("TipoCambio").ToString.ToDecimal > 1 Then ConceptoMovimiento += $" TC:{rw.DataKey("TipoCambio").ToString.ToDecimal} ${ImporteMovimiento.FormatoNumero(2)}" ' 'Conta ContPAQ ' If IdCtaContRetISRProveedor > 0 Then ' IdCtaContable = IdCtaContRetISRProveedor ' ElseIf UsuarioActual.Empresa.Funcionalidad(315).ToEntero > 0 Then ' IdCtaContable = UsuarioActual.Empresa.Funcionalidad(315).ToEntero ' Else ' If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then ' If ObjMov.DtResultados.Rows.Count > 0 Then ' IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero ' End If ' End If ' End If ' 'Conta SIG ' If CveCuentaRetISRProveedor <> 0 Then ' CveCuenta = CveCuentaRetISRProveedor ' Else ' If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then ' If ObjMov.DtResultados.Rows.Count > 0 Then ' CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacionSIG").ToString.ToEntero ' End If ' End If ' End If ' If ImporteMovimiento > 0 Then ' If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=rw.DataKey("TipoCambio").ToString.ToDecimal) Then ' MsgError = "No se pudo insertar la póliza" ' End If ' End If ' End If ' End If ' Next ' ImporteMovimiento = 0 ' End If 'Case 23 'Ret ISR Acreditable COMPRA ' If RBLContado.SelectedValue = "5" Then ' For Each rw As GridViewRow In GvCompras.Rows ' If rw.FCCheckBox("Chk").Checked Then ' If rw.DataKey("CveRetIVAConcepto").ToString.ToDecimal = 1 Then ' Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal ' If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra ' ImporteMX = ImporteMovimiento ' ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ' End If ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ' ImporteMX = Math.Round(ImporteMX, 2) ' If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" ' 'Conta ContPAQ ' If IdCtaContRetISRAcreditableProveedor > 0 Then ' IdCtaContable = IdCtaContRetISRAcreditableProveedor ' ElseIf UsuarioActual.Empresa.Funcionalidad(316).ToEntero > 0 Then ' IdCtaContable = UsuarioActual.Empresa.Funcionalidad(316).ToEntero ' Else ' If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then ' If ObjMov.DtResultados.Rows.Count > 0 Then ' IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero ' End If ' End If ' End If ' If ImporteMovimiento > 0 Then ' If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then ' MsgError = "No se pudo insertar la póliza" ' End If ' End If ' End If ' End If ' Next ' ImporteMovimiento = 0 ' End If 'Case 243 'Ret ISR x Acreditar Terceros y Arrendamiento ' If RBLContado.SelectedValue = "5" Then ' For Each rw As GridViewRow In GvCompras.Rows ' If rw.FCCheckBox("Chk").Checked Then ' If rw.DataKey("CveRetISRConcepto").ToString.ToDecimal = 2 Then ' Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal ' If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra ' ImporteMX = ImporteMovimiento ' ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ' End If ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ' ImporteMX = Math.Round(ImporteMX, 2) ' If rw.DataKey("TipoCambio").ToString.ToDecimal > 1 Then ConceptoMovimiento += $" TC:{rw.DataKey("TipoCambio").ToString.ToDecimal} ${ImporteMovimiento.FormatoNumero(2)}" ' 'Conta ContPAQ ' If IdCtaContRetISRProveedor > 0 Then ' IdCtaContable = IdCtaContRetISRProveedor ' ElseIf UsuarioActual.Empresa.Funcionalidad(317).ToEntero > 0 Then ' IdCtaContable = UsuarioActual.Empresa.Funcionalidad(317).ToEntero ' Else ' If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then ' If ObjMov.DtResultados.Rows.Count > 0 Then ' IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero ' End If ' End If ' End If ' If ImporteMovimiento > 0 Then ' If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=rw.DataKey("TipoCambio").ToString.ToDecimal) Then ' MsgError = "No se pudo insertar la póliza" ' End If ' End If ' End If ' End If ' Next ' ImporteMovimiento = 0 ' End If 'Case 244 'Ret ISR Acreditable Terceros y Arrendamiento ' If RBLContado.SelectedValue = "5" Then ' For Each rw As GridViewRow In GvCompras.Rows ' If rw.FCCheckBox("Chk").Checked Then ' If rw.DataKey("CveRetISRConcepto").ToString.ToDecimal = 2 Then ' Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal ' If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra ' ImporteMX = ImporteMovimiento ' ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ' ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ' ImporteMovimiento = (rw.DataKey("RetISR").ToString.ToDecimal * PorcentajePagoCompra) ' ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ' End If ' ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ' ImporteMX = Math.Round(ImporteMX, 2) ' If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" ' 'Conta ContPAQ ' If IdCtaContRetISRAcreditableProveedor > 0 Then ' IdCtaContable = IdCtaContRetISRAcreditableProveedor ' ElseIf UsuarioActual.Empresa.Funcionalidad(318).ToEntero > 0 Then ' IdCtaContable = UsuarioActual.Empresa.Funcionalidad(318).ToEntero ' Else ' If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then ' If ObjMov.DtResultados.Rows.Count > 0 Then ' IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero ' End If ' End If ' End If ' If ImporteMovimiento > 0 Then ' If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveVenta:=CveVenta, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then ' MsgError = "No se pudo insertar la póliza" ' End If ' End If ' End If ' End If ' Next ' ImporteMovimiento = 0 ' End If Case 14 'Iva por Acreditar COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then 'funcionalidad que toma el 100% del pago para acreditamiento de iva Dim TotalImporte As Decimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then TotalImporte = ImportePagado.ToString.ToDecimal ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then TotalImporte = Math.Round(ImportePagado.ToString.ToDecimal / tipoCambioPago, 2) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then TotalImporte = Math.Round(ImportePagado.ToString.ToDecimal * tipoCambioPago, 2) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then TotalImporte = ImportePagado.ToString.ToDecimal End If If TotalImporte = rw.DataKey("Saldo").ToString.ToDecimal Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IVA").ToString.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.DataKey("IVA").ToString.ToDecimal ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IVA").ToString.ToDecimal ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = rw.DataKey("IVA").ToString.ToDecimal ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If rw.DataKey("TipoCambio").ToString.ToDecimal > 1 Then ConceptoMovimiento += $" TC:{rw.DataKey("TipoCambio").ToString.ToDecimal} ${ImporteMovimiento.FormatoNumero(2)}" Else ImporteMovimiento = 0 ImporteMX = 0 End If Else If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IVA").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("IVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVA").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If rw.DataKey("TipoCambio").ToString.ToDecimal > 1 Then ConceptoMovimiento += $" TC:{rw.DataKey("TipoCambio").ToString.ToDecimal} ${ImporteMovimiento.FormatoNumero(2)}" End If PorcentajeImpuesto = rw.DataKey("PorcentajeIVA").ToDecimal Select Case PorcentajeImpuesto.ToString.ToDouble Case 0.16 IdCtaContable = If(UsuarioActual.Empresa.Funcionalidad(338).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(338).ToEntero, 0) Case 0.08 IdCtaContable = If(UsuarioActual.Empresa.Funcionalidad(340).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(340).ToEntero, 0) End Select If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=rw.DataKey("TipoCambio").ToString.ToDecimal, PorcentajeImpuesto:=PorcentajeImpuesto) Then MsgError = "No se pudo insertar la póliza" End If End If End If Next ImporteMovimiento = 0 End If Case 19 'Iva Acreditable COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then 'funcionalidad que toma el 100% del pago para acreditamiento de iva Dim TotalImporte As Decimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then TotalImporte = ImportePagado.ToString.ToDecimal ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then TotalImporte = Math.Round(ImportePagado.ToString.ToDecimal / tipoCambioPago, 2) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then TotalImporte = Math.Round(ImportePagado.ToString.ToDecimal * tipoCambioPago, 2) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then TotalImporte = ImportePagado.ToString.ToDecimal End If If TotalImporte = rw.DataKey("Saldo").ToString.ToDecimal Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IVADeducible").ToString.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVADeducible").ToString.ToDecimal) ImporteMX = ImporteMovimiento '* tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("IVADeducible").ToString.ToDecimal) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVADeducible").ToString.ToDecimal) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" Else ImporteMovimiento = 0 ImporteMX = 0 End If Else If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IVADeducible").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVADeducible").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("IVADeducible").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVADeducible").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" End If PorcentajeImpuesto = rw.DataKey("PorcentajeIVA").ToDecimal Select Case PorcentajeImpuesto.ToString.ToDouble Case 0.16 IdCtaContable = If(UsuarioActual.Empresa.Funcionalidad(339).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(339).ToEntero, 0) Case 0.08 IdCtaContable = If(UsuarioActual.Empresa.Funcionalidad(341).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(341).ToEntero, 0) End Select If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIVAAcreditable").ToString.ToEntero End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal), PorcentajeImpuesto:=PorcentajeImpuesto) Then MsgError = "No se pudo insertar la póliza" End If End If End If Next ImporteMovimiento = 0 End If Case 280 'Iva Acreditable No Deducible COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then 'funcionalidad que toma el 100% del pago para acreditamiento de iva Dim TotalImporte As Decimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then TotalImporte = ImportePagado.ToString.ToDecimal ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then TotalImporte = Math.Round(ImportePagado.ToString.ToDecimal / tipoCambioPago, 2) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then TotalImporte = Math.Round(ImportePagado.ToString.ToDecimal * tipoCambioPago, 2) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then TotalImporte = ImportePagado.ToString.ToDecimal End If If TotalImporte = rw.DataKey("Saldo").ToString.ToDecimal Then If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IVANoDeducible").ToString.ToDecimal ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVANoDeducible").ToString.ToDecimal) ImporteMX = ImporteMovimiento '* tipoCambioPago ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("IVANoDeducible").ToString.ToDecimal) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVANoDeducible").ToString.ToDecimal) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" Else ImporteMovimiento = 0 ImporteMX = 0 End If Else If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IVANoDeducible").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVANoDeducible").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("IVANoDeducible").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IVANoDeducible").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If tipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{tipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" End If PorcentajeImpuesto = rw.DataKey("PorcentajeIVA").ToDecimal Select Case PorcentajeImpuesto.ToString.ToDouble Case 0.16 IdCtaContable = If(UsuarioActual.Empresa.Funcionalidad(339).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(339).ToEntero, 0) Case 0.08 IdCtaContable = If(UsuarioActual.Empresa.Funcionalidad(341).ToEntero > 0, UsuarioActual.Empresa.Funcionalidad(341).ToEntero, 0) End Select If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIVAAcreditable").ToString.ToEntero End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal), PorcentajeImpuesto:=PorcentajeImpuesto) Then MsgError = "No se pudo insertar la póliza" End If End If End If Next ImporteMovimiento = 0 End If Case 25 'IEPS por Acreditar COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * rw.DataKey("TipoCambio").ToString.ToDecimal End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=rw.DataKey("TipoCambio").ToString.ToDecimal) Then MsgError = "No se pudo insertar la póliza" End If End If End If Next ImporteMovimiento = 0 End If Case 26 'IEPS Acreditable COMPRA If RBLContado.SelectedValue = "5" Then For Each rw As GridViewRow In GvCompras.Rows If rw.FCCheckBox("Chk").Checked Then Dim PorcentajePagoCompra = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal / rw.DataKey("Total").ToString.ToDecimal If CveMoneda = 1 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra ImporteMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento '* If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 1 Then ImporteMovimiento = (rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) ElseIf CveMoneda = 2 AndAlso CveMonedaVenta = 2 Then ImporteMovimiento = (rw.DataKey("IEPS").ToString.ToDecimal * PorcentajePagoCompra) ImporteMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, tipoCambioPago, rw.DataKey("TipoCambio").ToString.ToDecimal) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2) ImporteMX = Math.Round(ImporteMX, 2) If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then If ObjMov.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero End If End If If ImporteMovimiento > 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, rw.FCLiteral("LtlFolio").Text, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, -1, CveCompra:=rw.DataKey("CveCompra").ToString.ToEntero, CveProveedor:=rw.DataKey("CveProveedor").ToString.ToEntero, CvePersonal:=CvePersonal, ImporteMX:=ImporteMX, TipoCambio:=If(FuncionalidadFluctuacionImpuestos, rw.DataKey("TipoCambio").ToString.ToDecimal, tipoCambioPago)) Then MsgError = "No se pudo insertar la póliza" End If End If End If Next ImporteMovimiento = 0 End If Case Else ImporteMovimiento = 0 End Select If ImporteMovimiento <> 0 AndAlso MsgError = "" Then 'Conta ContPAQ If IdCtaContable = 0 Then CuentasContablesInvalidas.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) idCuentaContabilizacion = 0 End If If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ReferenciaConcepto, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, CveCliente:=CveClienteOriginal, ImporteMX:=ImporteMX, CvePersonal:=CvePersonal, TipoCambio:=TimpocambioGeneral, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=PorcentajeImpuesto) Then MsgError = "No se pudo insertar la póliza" Exit For End If End If Next If MsgError = "" AndAlso ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 3) Then If ObjMov.ValorPolizaDescuadre > 0 Then MsgError = ObjMov.MensajePolizaDescuadre End If End If 'Conta ContPAQ If UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then If idCuentaContabilizacion > 0 Then If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then IdPoliza = ObjMov.ContaIdPoliza ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) Else Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico") End If Else Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son invalidas: {0}", CuentasContablesInvalidas)) End If End If End If Else MsgError = "No se pudo insertar la poliza detalle" End If End If End If End If Else MsgError = "No se pudo insertar la póliza" End If Else MsgError = "No se insertó el encabezado" End If If MsgError = "" Then ObjIE.Commit() StrMsg.Append("El Documento se guardó correctamente.
") 'Alert("El Documento se guardó correctamente.", TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa) '07-05-2018 - Timbra Complemento de pago Dim TextoComplementoPago As String = "" If UsuarioActual.CveEmpresa = 119 Then StrMsg.AppendFormat("Folio {0}
", ObjIE.Folio) End If If RBLContado.SelectedValue = "1" And ChkComplementoPago.Checked Then Dim SeriesPago As New List(Of String) SeriesPago.Add(SerieFolio) Dim CveVentas As New List(Of Integer) CveVentas.Add(CveVenta) TextoComplementoPago = EmitirComplementoPago(CveIE, CveVentas, SeriesPago) StrMsg.Append($"
{TextoComplementoPago}") End If If IdPoliza > 0 Then StrMsg.AppendFormat("
Ver Póliza", IdPoliza) End If Alert($"{StrMsg.ToString}
", TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") 'Limpiar 'LimpiarTodo() Else ObjIE.RollBack() Alert(MsgError, TipoMensaje.MsgError) End If ObjIE.Dispose() ObjMov.Dispose() ObjCliente.Dispose() 'CargaVenta(CveVenta) 'UpDatosVenta.Update() End Sub Private Sub LimpiarTodo() DdlTipoTransaccion.SelectedValue = "-1" DdlCuenta.SelectedValue = "-1" DdlFuncionarioEmpleado.SelectedValue = "-1" DdlIngreso.SelectedValue = "-1" DdlDeudor.SelectedValue = "-1" TxtFolio.Text = "" TxtObservaciones.Text = "" TxtImporte.Text = "" TxtFechaDocumento.Text = Now.ToShortDateString ChkComplementoPago.Checked = False UpDatos.Update() UpGuardar.Update() End Sub #End Region #Region " COMPLEMENTOS PAGO " Private Function EmitirComplementoPago(CveIE As Integer, CveVentas As List(Of Integer), Series As List(Of String)) As String If Not ChkComplementoPago.Checked Then Return "" End If Dim Retorno As New StringBuilder 'For i = 0 To CveVentas.Count - 1 Dim ObjBancos As New ClsBancos If ObjBancos.GetComplementoPagosRep(-1, Now.AddYears(-2), Now, CveIE, -1, 1, UsuarioActual.CveEmpresa, -1) Then If Not ObjBancos.DtResultados.Rows.Count > 0 Then ObjBancos.Dispose() Alert("No se generaron complementos de pago porque no hay facturas con método de pago PPD", TipoMensaje.MsgAdvertencia) Return "" End If End If ObjBancos.IniciaTransacSQL() If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente) Then ObjBancos.Commit() PDFReciboDePagos(-1, -1, ObjBancos.CveComplementoPago, False) Dim LigaDescargaXML = $"../Empresas/{UsuarioActual.CveEmpresa}/XML/Pag/{ObjBancos.ComplementoSerieFolio}.xml" Dim LigaDescargaPDF = $"../Empresas/{UsuarioActual.CveEmpresa}/PDF/Pag/{ObjBancos.ComplementoSerieFolio}.pdf" Retorno.AppendFormat(" Complemento de pago {0}
", ObjBancos.ComplementoSerieFolio) Retorno.AppendFormat("XML    ", Encripta(String.Format("OP=CompP&EXT=xml&SerieFolio={0}&CveComplementoPago={1}&CveIE={2}", ObjBancos.ComplementoSerieFolio, ObjBancos.CveComplementoPago, CveIE))) Retorno.AppendFormat("PDF   ", Encripta(String.Format("OP=CompP&EXT=pdf&SerieFolio={0}&CveComplementoPago={1}&CveIE={2}", ObjBancos.ComplementoSerieFolio, ObjBancos.CveComplementoPago, CveIE))) 'Dim ResultadoMail As Integer Dim ObjMail As New ClsSisMail() Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = $"{UsuarioActual.Empresa.Ruta}\XML\Pag\{ObjBancos.ComplementoSerieFolio}.xml"}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = $"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{ObjBancos.ComplementoSerieFolio}.pdf"}) Dim Mail As String = ObjBancos.CobranzaCorreo Dim Asunto As String = "Envío de complemento de pago" Dim Cuerpo As String = "Complemento de Pago" If Mail.Trim.Length > 0 Then Try If Not ObjMail.SendMail(UsuarioActual.Empresa, Mail, Asunto, Cuerpo, "", LSRutasMail) Then Alert("No se pudo enviar el correo", TipoMensaje.MsgAdvertencia) End If Catch ex As Exception End Try End If Else Retorno.AppendFormat($" Complemento de pago NO generado . {ObjBancos.Mensaje}") ObjBancos.RollBack() End If ObjBancos.Dispose() ' Next Return Retorno.ToString End Function #End Region Private Sub RVTxtFechaDocumento_Init(sender As Object, e As EventArgs) Handles RVTxtFechaDocumento.Init RVTxtFechaDocumento.MaximumValue = DateTime.Now.ToShortDateString Calendario.EndDate = DateTime.Now End Sub End Class