Files
SIG/Bancos/PopIEVentas.aspx.vb
2020-01-06 11:46:10 -07:00

3600 lines
257 KiB
VB.net

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 TipoCambioOriginal As Decimal
Get
Return ViewState("TipoCambioOriginal").ToString.ToDecimal
End Get
Set(value As Decimal)
ViewState("TipoCambioOriginal") = value
End Set
End Property
<Serializable>
Public Class Anticipos
Public Property CveIE As Integer
Public Property Importe As Double
Public Property CvePersonal As Integer
End Class
<Serializable>
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
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
'CargaProveedor
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" Then
' Dim Valida As New ClsValidaCFDi(dr("FolioFiscal").ToString(), dr("ClienteRFC").ToString, UsuarioActual.Empresa.RFC)
' If Valida.EsValida > 0 Then
' If Valida.EsValida = 2 Then
' Validada = False
' 'Dim ObjDatos As New ClsCompras
' 'If ObjDatos.UpdateEstatus(Valida.EsValida, gvr.DataKey("CveFactura").ToEntero) Then
' 'End If
' 'ObjDatos.Dispose()
' 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
' Validada = True
' End If
' Valida.Dispose()
'Else
' Validada = True
'End If
If Validada Then
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).FiltroPrimeroValor("Nombre", String.Format("CveCliente = {0}", CveCliente))
SerieFolio = dr("SerieFolio").ToString
TipoCambioOriginal = dr("TipoCambio").ToString.ToDecimal
CveSubProyectoVenta = dr("CveSubProyecto").ToString.ToEntero
'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
End If
End If
End If
ObjVenta.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
'Conta SIG
CveCuentaCliente = ObjCliente.CveCuentaClientes
ViewState("CveCuentaMonedaExtranjera") = ObjCliente.CveCuentaMonedaExtranjera
ViewState("CveCuentaComplementaria") = ObjCliente.CveCuentaComplementaria
ViewState("CveCuentaRetIVA") = ObjCliente.CveCuentaRetIVA
ViewState("CveCuentaRetISR") = ObjCliente.CveCuentaRetISR
ViewState("CveCuentaAnticipo") = ObjCliente.CveCuentaAnticipos
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)
'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 SIG
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
'Conta ContPAQ
ViewState("CveCuentaProveedor") = ObjProveedor.CveCuentaProveedores
ViewState("CveCuentaProveedorDeudores") = ObjProveedor.CveCuentaDeudor
ViewState("CveCuentaProveedorAcreedores") = ObjProveedor.CveCuentaAcreedor
ViewState("CveCuentaRetISRProveedor") = ObjProveedor.CveCuentaRetISR
ViewState("CveCuentaRetIVAProveedor") = ObjProveedor.CveCuentaRetIVA
ViewState("CveCuentaProveedorExtranjera") = ObjProveedor.CveCuentaProveedoresExtranjera
ViewState("CveCuentaComplementariaProveedor") = ObjProveedor.CveCuentaProveedoresComplementaria
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).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
'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 CveConcepto As Integer = -1
Dim CveConcepto2 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
CveConcepto = 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
CveConcepto = 17
CveConcepto2 = 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).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:<br><br>"
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"))
If CveIE > 0 Then
If CveVenta > 0 Then
CveConcepto = 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
CveConcepto = 2
CveConcepto2 = 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
CveConcepto = 2
CveConcepto2 = 43
CveProveedor2 = DdlDeudor.SelectedValue.ToEntero
CveIE = -1
End If
Case "5" 'Compras
If CveVenta > 0 Then
ImportePagado = TxtImporte.Text.Trim.ToDecimal
CveConcepto = 2
'CveConcepto2 = 43
CveIE = -1
End If
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 CveCuenta 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 AndAlso (IdCtaContComplementaria > 0 Or UsuarioActual.CveEmpresa = 119) Then
ImporteMX = ImporteMovimiento
IdCtaContable = IdCtaContMonedaExtranjera
Else
IdCtaContable = IdCuentaCliente
CveCuenta = CveCuentaCliente
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, CveCuenta:=CveCuenta, TipoCambio:=tipoCambioVentaValuacion, TipoCambioPago:=tipoCambioPago) Then
MsgError = "No se pudo insertar la póliza"
End If
If CveMonedaVenta = 2 Then
IdCtaContable = IdCtaContComplementaria
CveCuenta = CveCuentaComplementaria
If ImporteMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsuarioActual.CveEmpresa = 119) 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, CveCuenta:=CveCuenta, 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
CveCuenta = CveCuentaMonedaExtranjera
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
CveCuenta = CveCuentaCliente
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, CveCuenta:=CveCuenta, TipoCambio:=tipoCambioVentaValuacion, TipoCambioPago:=tipoCambioPago) Then
MsgError = "No se pudo insertar la póliza"
End If
If CveMonedaVenta = 2 Then
IdCtaContable = IdCtaContComplementaria
CveCuenta = CveCuentaComplementaria
If ImporteMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsuarioActual.CveEmpresa = 119) 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, CveCuenta:=CveCuenta, 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
CveCuenta = CveCuentaMonedaExtranjera
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
CveCuenta = CveCuentaCliente
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, CveCuenta:=CveCuenta, TipoCambio:=tipoCambioVentaValuacion, TipoCambioPago:=tipoCambioPago) Then
MsgError = "No se pudo insertar la póliza"
End If
If CveMonedaVenta = 2 Then
IdCtaContable = IdCtaContComplementaria
CveCuenta = CveCuentaComplementaria
If ImporteMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsuarioActual.CveEmpresa = 119) 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, CveCuenta:=CveCuenta, 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
CveCuenta = CveCuentaMonedaExtranjera
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
CveCuenta = CveCuentaCliente
Else
IdCtaContable = IdCtaContComplementaria
CveCuenta = CveCuentaComplementaria
CveSubProyectoContabilizar = CveSubProyectoVenta
If ImporteMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsuarioActual.CveEmpresa = 119) 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, CveCuenta:=CveCuenta, 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
CveCuenta = CveCuentaMonedaExtranjera
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
'Conta SIG
If CveCuentaRetIVA <> 0 Then
CveCuenta = CveCuentaRetIVA
Else
If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjMov.DtResultados.Rows.Count > 0 Then
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacionSIG").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
'Conta SIG
If CveCuentaRetISR <> 0 Then
CveCuenta = CveCuentaRetISR
Else
If 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
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
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
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)}"
PorcentajeImpuesto = MovimientoPagar.PorcentajeIVA
Dim IdCtaIVAXTrasladar As Integer = 0
Dim CveCuentaIVAxTrasladar As Integer = 0
If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then
IdCtaIVAXTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXTrasladar").ToString.ToEntero
CveCuentaIVAxTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("CveCuentaIVAXTrasladar").ToString.ToEntero
End If
IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar)
CveCuenta = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar)
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)
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
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)}"
PorcentajeImpuesto = MovimientoPagar.PorcentajeIVA
Dim IdCtaIVATrasladado As Integer = 0
Dim CveCuentaIVATrasladado As Integer = 0
If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then
IdCtaIVATrasladado = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVATrasladado").ToString.ToEntero
CveCuentaIVATrasladado = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("CveCuentaIVATrasladado").ToString.ToEntero
End If
IdCtaContable = If(IdCtaIVATrasladado > 0, IdCtaIVATrasladado, UsuarioActual.Empresa.IdCuentaIVATrasladado)
CveCuenta = If(CveCuentaIVATrasladado > 0, CveCuentaIVATrasladado, UsuarioActual.Empresa.CveCuentaIVATrasladado)
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
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)
ImporteMX = ImporteMovimiento * tipoCambioVenta
End If
ImporteMovimiento = Math.Round(ImporteMovimiento, 2)
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
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxTrasladarSIG").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)
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)
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 ImporteMovimiento > 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjMov.DtResultados.Rows.Count > 0 Then
IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString.ToEntero
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSTrasladadoSIG").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)
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)
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
'Conta SIG
If CveCuentaRetIVA <> 0 Then
CveCuenta = CveCuentaRetIVA
Else
If ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjMov.DtResultados.Rows.Count > 0 Then
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacionSIG").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)
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)
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
'Conta SIG
If CveCuentaRetISR <> 0 Then
CveCuenta = CveCuentaRetISR
Else
If 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
Case 64 'Ganancia
If CveMoneda <> 1 OrElse CveMonedaVenta <> 1 Then
IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria
CveCuenta = UsuarioActual.Empresa.CveCuentaGananciaCambiaria
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)
'' 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
CveCuenta = CveCuentaCliente
Else
IdCtaContable = IdCuentaBancariaComplementaria
CveCuenta = CveCuentaComplementaria
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, CveCuenta:=CveCuenta) Then
MsgError = "No se pudo insertar la póliza"
End If
ImporteMX = ImporteMovimiento
IdCtaContable = IdCuentaBancaria
CveCuenta = CveCuentaMonedaExtranjera
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
CveCuenta = CveCuentaMonedaExtranjera
Else
IdCtaContable = IdCtaAnticipo
CveCuenta = CveCuentaAnticipo
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, CveCuenta:=CveCuenta, 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
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 AndAlso (IdCtaContComplementaria > 0 Or UsuarioActual.CveEmpresa = 119) Then
ImporteMX = ImporteMovimiento
IdCtaContable = IdCtaContComplementariaProveedor
Else
IdCtaContable = CtaProveedor
CveCuenta = CveCuentaProveedor
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, CveCuenta:=CveCuenta, TipoCambio:=tipoCambioPago) Then
MsgError = "No se pudo insertar la póliza"
End If
If rw.DataKey("CveMoneda").ToEntero = 2 Then
IdCtaContable = IdCtaProveedorExtranjera
CveCuenta = CveCuentaProveedorExtranjera
If ImporteMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsuarioActual.CveEmpresa = 119) 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, CveCuenta:=CveCuenta) Then
MsgError = "No se pudo insertar la póliza"
End If
End If
ImporteMX = ImporteMovimiento
IdCtaContable = IdCtaContMonedaExtranjera
CveCuenta = CveCuentaMonedaExtranjera
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
'Conta SIG
If CveCuentaRetIVAProveedor <> 0 Then
CveCuenta = CveCuentaRetIVAProveedor
Else
If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjMov.DtResultados.Rows.Count > 0 Then
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacionSIG").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, CveCuenta:=CveCuenta, 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, CveCuenta:=CveCuenta, 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
'Conta SIG
If CveCuentaRetIVAProveedor <> 0 Then
CveCuenta = CveCuentaRetIVAProveedor
Else
If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjMov.DtResultados.Rows.Count > 0 Then
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacionSIG").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, CveCuenta:=CveCuenta, 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, CveCuenta:=CveCuenta, 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
'Conta SIG
If CveCuentaRetIVAProveedor <> 0 Then
CveCuenta = CveCuentaRetIVAProveedor
Else
If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjMov.DtResultados.Rows.Count > 0 Then
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacionSIG").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, CveCuenta:=CveCuenta, 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, CveCuenta:=CveCuenta, 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, CveCuenta:=CveCuenta, 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, CveCuenta:=CveCuenta, 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, CveCuenta:=CveCuenta, 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
' '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, CveCuenta:=CveCuenta, 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
' '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, CveCuenta:=CveCuenta, 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
' '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, CveCuenta:=CveCuenta, 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
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaIVAxAcreditarSIG").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, CveCuenta:=CveCuenta, 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
CveCuenta = 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, CveCuenta:=CveCuenta, 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
CveCuenta = 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, CveCuenta:=CveCuenta, 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
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxAcreditarSIG").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, CveCuenta:=CveCuenta, 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
CveCuenta = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSAcreditableSIG").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, CveCuenta:=CveCuenta, 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 Then
'Conta ContPAQ
If IdCtaContable = 0 Then
CuentasContablesInvalidas.Append("<br>" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
idCuentaContabilizacion = 0
End If
'Conta SIG
If CveCuenta = 0 Then
CuentasContablesInvalidasSIG.Append("<br>" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString)
CveCuentaContabilizacion = 0
End If
If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, ReferenciaConcepto, ConceptoContable, ConceptoMovimiento, Fecha, IdCtaContable, -1, CveIE, CveVenta, -1, CveSubProyectoContabilizar, CveCliente:=CveClienteOriginal, ImporteMX:=ImporteMX, CveCuenta:=CveCuenta, CvePersonal:=CvePersonal, TipoCambio:=TimpocambioGeneral, TipoCambioPago:=tipoCambioPago, PorcentajeImpuesto:=PorcentajeImpuesto) Then
MsgError = "No se pudo insertar la póliza"
End If
End If
Next
If ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 3) Then
If ObjMov.ValorPolizaDescuadre > 0 Then
MsgError = ObjMov.MensajePolizaDescuadre
End If
End If
'Conta SIG
If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso MsgError = "" AndAlso UsuarioActual.Empresa.UsaContabilidadSIG Then
If CveCuentaContabilizacion > 0 Then
If ObjMov.ContabilizarPrePolizaSIG(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion)
Else
Alert("Ocurrio un error al contabilizar en SIG, pongase en contacto con Soporte Técnico")
End If
Else
Alert(String.Format("No se puede contabilizar la Prepoliza en SIG debido a que las siguientes cuentas son invalidas: {0}", CuentasContablesInvalidasSIG))
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.<br/>")
'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 <b>{0}</b><br/>", 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($"<br/>{TextoComplementoPago}")
End If
If IdPoliza > 0 Then
StrMsg.AppendFormat("<br/><a Class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza</a>", IdPoliza)
End If
Alert($"{StrMsg.ToString}<br/>", 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
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 <strong>{0}</strong> <br>", ObjBancos.ComplementoSerieFolio)
Retorno.AppendFormat("<a class=""texto"" style='color:#337ab7' href=""/Compras/PopUpVerFactura.aspx?P={0}"" target=""_blank"">XML &nbsp;<i class=""fa fa-file""></i></i></a>&nbsp;&nbsp;", Encripta(String.Format("OP=CompP&EXT=xml&SerieFolio={0}&CveComplementoPago={1}&CveIE={2}", ObjBancos.ComplementoSerieFolio, ObjBancos.CveComplementoPago, CveIE)))
Retorno.AppendFormat("<a class=""texto"" style='color:#337ab7' href=""/Compras/PopUpVerFactura.aspx?P={0}"" target=""_blank"">PDF &nbsp;<i class=""fa fa-ad-pdf""></i></i></i></a>&nbsp;", 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 <b>NO</b> generado . {ObjBancos.Mensaje}")
ObjBancos.RollBack()
End If
ObjBancos.Dispose()
' Next
Return Retorno.ToString
End Function
#End Region
End Class