Files
SIG/Bancos/PopIEVentas.aspx.vb
2024-06-18 19:25:23 -07:00

1546 lines
65 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 CveCuentaBancaria As Integer
Get
Return ViewState("CveCuentaBancaria").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCuentaBancaria") = value
End Set
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 IfNull(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 VentaActual As Venta
Get
Return CType(ViewState("VentaActual"), Venta)
End Get
Set(value As Venta)
ViewState("VentaActual") = value
End Set
End Property
Private Property ArrIE As ArrayList
Get
Return CType(ViewState("ArrIE"), ArrayList)
End Get
Set(value As ArrayList)
ViewState("ArrIE") = value
End Set
End Property
Private Property ArrIEFuncionariosEmpleados As ArrayList
Get
Return CType(ViewState("ArrIEFuncionariosEmpleados"), ArrayList)
End Get
Set(value As ArrayList)
ViewState("ArrIEFuncionariosEmpleados") = value
End Set
End Property
Private Property DTFuenteRecaudacion As DataTable
Get
Return CType(ViewState("DTFuenteRecaudacion"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTFuenteRecaudacion") = value
End Set
End Property
Private Property DTFuncionarioEmpleado As DataTable
Get
Return CType(ViewState("DTFuncionarioEmpleado"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTFuncionarioEmpleado") = value
End Set
End Property
Private Property NombreCliente As String
Get
Return ViewState("NombreCliente").ToString
End Get
Set(value As String)
ViewState("NombreCliente") = value
End Set
End Property
Private Property SerieFolio As String
Get
Return ViewState("SerieFolio").ToString
End Get
Set(value As String)
ViewState("SerieFolio") = value
End Set
End Property
Private Property CveMonedaVenta As Integer
Get
Return ViewState("CveMonedaVenta").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveMonedaVenta") = value
End Set
End Property
Private Property CveMonedaCompra As Integer
Get
Return ViewState("CveMonedaVenta").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveMonedaVenta") = value
End Set
End Property
Private Property CveCorte As Integer
Get
Return ViewState("CveCorte").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCorte") = value
End Set
End Property
Private Property TipoCambioOriginal As Decimal
Get
Return ViewState("TipoCambioOriginal").ToString.ToDecimal
End Get
Set(value As Decimal)
ViewState("TipoCambioOriginal") = value
End Set
End Property
<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 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
CveCorte = -1
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
ArrIE = New ArrayList()
ArrIEFuncionariosEmpleados = New ArrayList()
RFCCliente = "-1"
TxtFechaDocumento.Text = NowADS().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
'rowComisiones.Visible = True
'SI USUARIO USA AMORTIZACIÓN CONTABLE
If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso 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 dia As Integer = If(UsuarioActual.CveEmpresa = 13, NowADS().Day - 1, NowADS().Day)
Fecha = (dia.ToString + "/" + NowADS().Month.ToString + "/" + NowADS().Year.ToString).ToDate
If CveMoneda = 2 Then
ChkPagarPesos.Visible = True
TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
DivDolaresDolares.Visible = True
TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);")
Else
ChkPagarDolares.Visible = True
TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
End If
End If
End Sub
#Region "C A M B I A R P A N E L"
Private Sub RBLContado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLContado.SelectedIndexChanged
Select Case RBLContado.SelectedValue
Case "1" ' Bancos
PanelBancos.Visible = True
PanelFyE.Visible = False
PanelIngresos.Visible = False
PanelDeudores.Visible = False
PanelCompras.Visible = False
TxtImporte.Text = SaldoVenta.FormatoNumero
ChkComplementoPago.Visible = True
Case "2" ' F y E
PanelBancos.Visible = False
PanelFyE.Visible = True
PanelIngresos.Visible = False
PanelDeudores.Visible = False
PanelCompras.Visible = False
CargaFuncionariosEmpleados()
TxtImporte.Text = SaldoVenta.FormatoNumero
ChkComplementoPago.Visible = False
Case "3" 'Ingresos x Comprobar
PanelBancos.Visible = False
PanelFyE.Visible = False
PanelIngresos.Visible = True
PanelDeudores.Visible = False
PanelCompras.Visible = False
CargaOtrosIngresos(CveMoneda)
TxtImporte.Text = "0.00"
ChkComplementoPago.Visible = False
Case "4" 'Deudores
PanelBancos.Visible = False
PanelFyE.Visible = False
PanelIngresos.Visible = False
PanelDeudores.Visible = True
PanelCompras.Visible = False
CargaDeudores(CveMoneda)
TxtImporte.Text = "0.00"
ChkComplementoPago.Visible = False
Case "5" 'Compras
PanelBancos.Visible = False
PanelFyE.Visible = False
PanelIngresos.Visible = False
PanelDeudores.Visible = False
PanelCompras.Visible = True
CargaCompras(CveMoneda)
TxtImporte.Text = "0.00"
ChkComplementoPago.Visible = False
End Select
UpGuardar.Update()
End Sub
#End Region
#Region "C A R G A R I N F O R M A C I O N"
Private Sub CargaVenta(pCveVenta As Integer)
Dim ObjVenta As New ClsVentas()
If ObjVenta.GetVenta(pCveVenta, UsuarioActual.CveEmpresa) Then
If ObjVenta.DtResultados IsNot Nothing AndAlso ObjVenta.DtResultados.Rows.Count > 0 Then
Dim dr As DataRow = ObjVenta.DtResultados.Rows(0)
Dim Validada As Boolean = True
'JJMQ:20190606 Se cancela código de validacion ante el SAT por lentitud en el servicio.
'Sustituir la línea anterior por todo lo siguiente hasta donde termina el end if para que valide de nueva cuenta
'Dim Validada As Boolean = False
If Not UsuarioActual.Empresa.Funcionalidad(529) = "1" AndAlso dr("FolioFiscal").ToString() <> "" Then
Dim Valida As New ClsValidaCFDi(dr("FolioFiscal").ToString().Trim, UsuarioActual.Empresa.RFC, dr("RFCReceptor").ToString, dr("Total").ToString.ToDecimal.RoundAD(2))
If Valida.EsValida > 0 Then
If Valida.EsValida = 2 Then
Validada = False
BtnGuardar.Enabled = False
If UsuarioActual.Empresa.UsaAC Then
RegistraScript("if (confirm('La factura está cancelada ante el SAT., ¿Desea eliminar la compra?')) { $get('BtnEliminarCompra').click();}")
Else
Alert("La factura está cancelada ante el SAT.")
End If
Else
Validada = True
End If
Else
'no se pudo validar, pero ya tuvo la primera vuelta de validacion
Alert("La factura no se pudo validar.", TipoMensaje.MsgAdvertencia)
Validada = False
BtnGuardar.Enabled = False
BtnGuardar.ToolTip = "La factura no se pudo validar"
End If
Valida.Dispose()
Else
Validada = True
End If
CveCliente = dr("CveCliente").ToString.ToEntero
CveClienteOriginal = dr("CveCliente").ToString.ToEntero
HdnCveCliente.Value = CveCliente.ToString
CargaCliente(CveCliente, "-1")
CveMoneda = dr("CveMoneda").ToString.ToEntero
CveMonedaVenta = dr("CveMoneda").ToString.ToEntero
CveMonedaFiltros = dr("CveMoneda").ToString.ToEntero
NombreCliente = dr("ClienteNombre").ToString '' GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=CveCliente).FiltroPrimeroValor("Nombre", String.Format("CveCliente = {0}", CveCliente))
SerieFolio = dr("SerieFolio").ToString
TipoCambioOriginal = dr("TipoCambio").ToString.ToDecimal
CveSubProyectoVenta = dr("CveSubProyecto").ToString.ToEntero
LblMetodoPAgo.Text = $"{dr("ClaveMetodoPagoSATStr").ToString() }"
'Configuración de Modalidad Update
'Dim RFCCliente As String = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RFC", $"CveCliente = {CveCliente} ")
If Not UsuarioActual.Empresa.Funcionalidad(536) = "1" Then
If dr("TipoDocto").ToString = "Rem" Then
Alert("Los documentos de tipo Remisión no se permite realizar el pago", TipoMensaje.MsgAdvertencia)
BtnGuardar.Visible = False
End If
End If
'MovimientoPagar = New IEMovimiento
'MovimientoPagar.SubTotal = dr("SubTotal").ToString.ToDecimal
'MovimientoPagar.IVA = dr("IVA").ToString.ToDecimal
'MovimientoPagar.RetIVA = dr("RetIVA").ToString.ToDecimal
'MovimientoPagar.RetISR = dr("RetISR").ToString.ToDecimal
'MovimientoPagar.Total = dr("Total").ToString.ToDecimal
'MovimientoPagar.Saldo = dr("Saldo").ToString.ToDecimal
'MovimientoPagar.IEPS = dr("IEPS").ToString.ToDecimal
'MovimientoPagar.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal
VentaActual = New Venta(UsuarioActual)
VentaActual.CveVenta = pCveVenta
VentaActual.Fecha = dr("Fecha").ToString.ToDate
VentaActual.CveCliente = dr("CveCliente").ToString.ToEntero
VentaActual.CveMoneda = dr("CveMoneda").ToString.ToEntero
VentaActual.TipoDocto = dr("TipoDocto").ToString
VentaActual.SerieFolio = dr("SerieFolio").ToString
VentaActual.ClienteNombre = NombreCliente
VentaActual.TC = dr("TipoCambio").ToString.ToDecimal
VentaActual.Total = dr("Total").ToString.ToDecimal
VentaActual.IVA = dr("IVA").ToString.ToDecimal
VentaActual.IEPS = dr("IEPS").ToString.ToDecimal
VentaActual.RetIVA = dr("RetIVA").ToString.ToDecimal
VentaActual.RetISR = dr("RetISR").ToString.ToDecimal
VentaActual.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal
VentaActual.CveSubProyecto = dr("CveSubProyecto").ToString.ToEntero
LtlTitulo.Text = "Cuentas por Cobrar"
LtlTipo2.Text = "Folio de la Venta"
LtlTipo3.Text = "Fecha de la Venta"
LtlSaldo.Text = If(CveMoneda = 1, $"{dr("Saldo").ToString.FormatoNumero}{" MXN"}", $"{dr("Saldo").ToString.FormatoNumero}{" USD"}")
LtlFechaVenta.Text = dr("Fecha").ToString.ToDate.ToShortDateString()
LtlFolio.Text = dr("SerieFolio").ToString
TxtFolio.Enabled = True
TxtFechaDocumento.Enabled = True
Calendario.Enabled = True
TxtPagueseA.Enabled = False
TxtImporte.Enabled = True
DdlCuenta.Enabled = True
DdlTipoTransaccion.Enabled = True
TxtObservaciones.Enabled = True
RVImporte.Enabled = True
RVImporte.MaximumValue = dr("Saldo").ToString.ToDouble.ToString.FormatoNumero
TxtImporte.Text = dr("Saldo").ToString.ToDouble.FormatoNumero
FechaVenta = dr("Fecha").ToString.ToDate
SaldoVenta = dr("Saldo").ToString.ToDouble
'Cortes de Caja
If UsuarioActual.TienePermisoProceso(160) Then
CargaCorteCaja()
End If
If UsuarioActual.Empresa.Funcionalidad(531) = "1" OrElse (dr("CveCorte").ToString.ToEntero > 0) Then 'toma como proridad el que viene de
CveCorte = dr("CveCorte").ToString.ToEntero
End If
If RFCCliente.ToUpper <> "XAXX010101000" Then
Dim CveProveedor As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa, RFC:=RFCCliente.ToUpper).FiltroPrimeroValor("CveProveedor").ToEntero
If CveProveedor > 0 Then
Dim Mov As New ClsMovimientos
If Mov.GetCxPProveedor(CveProveedor, MinFecha.ToShortDateString, MaxFecha.ToShortDateString, -1, -1, -1, -1, -1, 1, -1, -1, "-1", "-1", "-1") Then
If Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio").Rows.Count > 0 Then
RBLContado.Items(4).Enabled = True
End If
End If
Mov.Dispose()
End If
End If
If Not Validada Then
BtnGuardar.Visible = False
End If
End If
End If
ObjVenta.Dispose()
End Sub
Private Sub CargaCorteCaja()
'Checar si hay un Turno Abierto
Dim ObjPVenta As New ClsPuntoVenta
If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then
If ObjPVenta.DtResultados.Rows.Count > 0 Then
CveCorte = ObjPVenta.CveCorte
End If
End If
ObjPVenta.Dispose()
End Sub
Private Sub CargaCliente(ByVal CveCliente As Integer, RFC As String)
Dim ObjCliente As New ClsClientes
If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", RFC, "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
TxtPagueseA.Text = ObjCliente.Nombre
RFCCliente = ObjCliente.RFC
Else
Alert("El cliente solicitado no existe, por favor intente de nuevo.", TipoMensaje.MsgAdvertencia)
End If
End If
ObjCliente.Dispose()
End Sub
Private Sub CargaTipoTransaccion(Optional Tipo As String = "Egs")
DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros(String.Format("Tipo = '{0}' AND Estatus = 1", Tipo))
DdlTipoTransaccion.DataBind()
DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1"))
End Sub
Private Sub CargaCuentas()
DdlCuenta.Items.Clear()
Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa)
'dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMoneda))
If ChkPagarPesos.Checked Then
dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1))
RegistraScript("CambiaPesosDolares();")
ElseIf ChkPagarDolares.Checked Then
dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 2))
RegistraScript("CambiaDolaresPesos();")
Else
If CveMonedaFiltros > 0 Then
dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMonedaFiltros))
End If
End If
DdlCuenta.DataSource = dt
DdlCuenta.DataBind()
DdlCuenta.Items.Insert(0, New ListItem("Seleccione cuenta", "-1"))
End Sub
Private Sub CargaGridTarjetas()
Dim ObjCreditos As New ClsBancos
ObjCreditos.GetTarjetasCreditos(DdlCuenta.SelectedValue.ToEntero)
DdlTarjeta.Items.Clear()
DdlTarjeta.DataSource = ObjCreditos.DtResultados
DdlTarjeta.DataBind()
DdlTarjeta.Items.Insert(0, New ListItem("Seleccione", "-1"))
ObjCreditos.Dispose()
DivTarjeta.Visible = True
End Sub
Protected Sub CargaFuncionariosEmpleados()
'SI ES VENTA SOLO CARGO FUNCIONARIOS
If CveVenta > 0 Then
DdlFuncionarioEmpleado.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa)
DdlFuncionarioEmpleado.DataBind()
DdlFuncionarioEmpleado.Items.Insert(0, New ListItem("Seleccione Funcionario Empleado", "-1"))
End If
End Sub
Protected Sub CargaOtrosIngresos(Optional CveMoneda As Integer = 1)
Dim IngresosXcomprobar As New ClsMovimientos
DdlIngreso.Items.Clear()
If IngresosXcomprobar.GetIngresosSaldos(-1, UsuarioActual.CveEmpresa) Then
DtDeudores = IngresosXcomprobar.DtResultados.FiltraParametros($"CveCliente > 0 AND Saldo > 0 AND CveMoneda = {CveMoneda}")
DdlIngreso.DataSource = DtDeudores
DdlIngreso.DataBind()
DdlIngreso.Items.Insert(0, New ListItem("Seleccione Ingreso", "-1"))
UpDatos.Update()
CambieIngreso()
End If
IngresosXcomprobar.Dispose()
End Sub
Protected Sub CargaDeudores(Optional CveMoneda As Integer = 1)
Dim Deudores As New ClsMovimientos
DdlDeudor.Items.Clear()
If Deudores.GetDeudoresSaldos2(-1, UsuarioActual.CveEmpresa) Then
DtDeudores = Deudores.DtResultados.FiltraParametros($"CveProveedor > 0 AND SaldoVentas > 0 AND CveMoneda = {CveMoneda}")
DdlDeudor.DataSource = DtDeudores
DdlDeudor.DataBind()
DdlDeudor.Items.Insert(0, New ListItem("Seleccione Deudor", "-1"))
UpDatos.Update()
CambieDeudor()
End If
Deudores.Dispose()
End Sub
Protected Sub CargaCompras(Optional CveMoneda As Integer = 1)
If RFCCliente = "XAXX010101000" Then Exit Sub
Dim ObjCompras As New ClsCompras
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
ObjCompras.Dispose()
UpDatos.Update()
End Sub
Private Sub CambieIngreso()
Dim stringDeudor As String = DdlIngreso.SelectedItem.ToString
Dim SaldoD As Decimal = stringDeudor.Substring(stringDeudor.IndexOf("$") + 1, stringDeudor.Length - (stringDeudor.IndexOf("$") + 1)).ToDecimal
If DdlIngreso.SelectedValue.ToEntero > 0 Then
Dim Deudores As New ClsMovimientos
If Deudores.GetIngresosSaldosDetalle(DdlIngreso.SelectedValue.ToEntero, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then
DtDeudoresDetalle = Deudores.DtResultados.FiltraParametros("CveCliente > 0 AND Saldo > 0")
GvIngresos.DataSource = DtDeudoresDetalle
GvIngresos.DataBind()
End If
Deudores.Dispose()
Else
GvIngresos.DataSource = Nothing
GvIngresos.DataBind()
End If
UpIngresos.Update()
End Sub
Private Sub CambieDeudor()
Dim stringDeudor As String = DdlDeudor.SelectedItem.ToString
Dim SaldoD As Decimal = stringDeudor.Substring(stringDeudor.IndexOf("$") + 1, stringDeudor.Length - (stringDeudor.IndexOf("$") + 1)).ToDecimal
If DdlDeudor.SelectedValue.ToEntero > 0 Then
Dim Deudores As New ClsMovimientos
Dim OpcionSaldo As Integer = 1
If CveVenta > 0 Then OpcionSaldo = 2
If Deudores.GetDeudoresSaldosDetalle(DdlDeudor.SelectedValue.ToEntero, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then
DtDeudoresDetalle = Deudores.DtResultados.FiltraParametros(If(CveVenta > 0, " CveProveedor > 0 AND SaldoVentas > 0", "CveProveedor > 0 AND Saldo > 0"))
GvDeudores.DataSource = DtDeudoresDetalle
GvDeudores.DataBind()
End If
Deudores.Dispose()
Else
GvDeudores.DataSource = Nothing
GvDeudores.DataBind()
End If
UpDeudores.Update()
End Sub
#End Region
#Region "DDL'S CHANGED"
Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged
'Dim valor As Integer = DirectCast(sender, DropDownList).SelectedValue.ToEntero
'Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing
Select Case valor
Case 1
LblPagueseA.Text = "Páguese a"
Case 2
LblPagueseA.Text = "Beneficiario"
End Select
'RecargaCuentas
CargaCuentasDepositos()
CargaCuentas()
UpDatos.Update()
End Sub
Protected Sub DdlCuenta_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuenta.SelectedIndexChanged
Dim Folio As Long
Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue)
Dim TCveMoneda As Integer = -1
If dr IsNot Nothing Then
If ChkPagarPesos.Checked Then
CveMoneda = 1
RegistraScript("CambiaPesosDolares();")
Else
CveMoneda = dr("CveMoneda").ToString.ToEntero
RegistraScript("CambiaDolaresPesos();")
End If
If dr("UsaTarjeta").ToString = "True" Then
CargaGridTarjetas()
Else
DivTarjeta.Visible = False
End If
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, CveEmpresa:=UsuarioActual.CveEmpresa) Then
If DdlTipoTransaccion.SelectedValue = "9" Then
DdlCuentaDeposito.DataSource = Dep.DtResultados.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'")
If Dep.DtResultados.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'").Rows.Count > 0 Then
trCuentaDeposito.Visible = True
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
Else
BtnGuardar.Enabled = False
Alert("El Cliente no tiene ninguna cuenta deposito registrada ante el sistema BBVA BANCOMER", TipoMensaje.MsgAdvertencia)
End If
Else
DdlCuentaDeposito.DataSource = Dep.DtResultados.FiltraParametros("Estatus ='True'")
If Dep.DtResultados.Rows.Count >= 1 Then
trCuentaDeposito.Visible = True
DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1"))
End If
End If
End If
Dep.Dispose()
DdlCuentaDeposito.DataBind()
Else
trCuentaDeposito.Visible = False
DdlCuentaDeposito.Items.Clear()
End If
UpCuentaDeposito.Update()
UpDatos.Update()
End Sub
'Private Sub RecargaCuentasDepositos()
' Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing
' If dr IsNot Nothing Then
' HdnTipoTransaccion.Value = dr("Tipo").ToString
' HdnTipoTransaccionAbreviatura.Value = dr("Abreviatura").ToString
' End If
' CargaCuentasDepositos()
'End Sub
Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim Dep As New ClsGenerales
If Dep.GetCuentasDepositos(CveCliente:=CveCliente, CveCuentaDeposito:=DdlCuentaDeposito.SelectedValue.ToEntero) AndAlso Dep.DtResultados.Rows.Count = 1 Then
If Dep.DtResultados.Rows(0)("TieneCIE").ToString.ToEntero = 1 Then
TrReferenciaCIE.Visible = True
TxtReferenciaCIE.Text = Dep.DtResultados.Rows(0)("Referencia").ToString
Else
TrReferenciaCIE.Visible = False
End If
End If
Dep.Dispose()
UpCuentaDeposito.Update()
End Sub
#End Region
#End Region
#Region "GV ROW DATA BOUND"
Private Sub GvIngresos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvIngresos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim total As Double
Dim saldo As Double
saldo = e.Row.DataKey("Saldo").ToDouble
total = SaldoVenta
e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo))
e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();")
e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN")
Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator)
End If
End Sub
Private Sub GvDeudores_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDeudores.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim total As Double
Dim saldo As Double
saldo = e.Row.DataKey("Saldo").ToDouble
total = SaldoVenta
e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo))
e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();")
e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN")
Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator)
End If
End Sub
Private Sub GvCompras_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCompras.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim total As Double
Dim saldo As Double
saldo = e.Row.DataKey("Saldo").ToDouble
total = SaldoVenta
e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo))
e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();")
e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN")
Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator)
End If
End Sub
#End Region
#Region "CHK TIPO CAMBIO"
#Region "PAGAR CON PESOS"
Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs)
If ChkPagarPesos.Checked Then
DivTipoCambio.Visible = True
DivDolaresDolares.Visible = False
TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
CveMonedaFiltros = 1
CargaCuentas()
CargaOtrosIngresos(1)
CargaDeudores(1)
CargaCompras(1)
GvIngresos.Columns(5).Visible = True
GvIngresos.Columns(6).Visible = True
GvDeudores.Columns(5).Visible = True
GvDeudores.Columns(6).Visible = True
RVImporte.Enabled = False
RVImporte.MaximumValue = "0.00"
CVImportePesos.Enabled = True
CVImporteDolares.Enabled = True
Else
DivTipoCambio.Visible = False
DivDolaresDolares.Visible = True
TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
CveMonedaFiltros = 2
CargaCuentas()
CargaOtrosIngresos(2)
CargaDeudores(2)
CargaCompras(2)
GvIngresos.Columns(5).Visible = False
GvIngresos.Columns(6).Visible = False
GvDeudores.Columns(5).Visible = False
GvDeudores.Columns(6).Visible = False
RVImporte.Enabled = True
RVImporte.MaximumValue = LtlSaldo.Text.ToDouble.ToString
CVImporteDolares.Enabled = False
CVImportePesos.Enabled = False
End If
UpDatos.Update()
UpIngresos.Update()
UpDeudores.Update()
RegistraScript("CambiaPesosDolares();")
End Sub
Protected Sub CVImporteDolares_ServerValidate(source As Object, args As ServerValidateEventArgs)
If args.Value.ToString.Substring(0, args.Value.Length - 3).ToDouble <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDouble Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
#End Region
#Region "PAGAR CON DOLARES"
Protected Sub ChkPagarDolares_CheckedChanged(sender As Object, e As EventArgs)
If ChkPagarDolares.Checked Then
DivTCDolares.Visible = True
DivDolaresDolares.Visible = False
TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);")
TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
CveMonedaFiltros = 2
CargaCuentas()
CargaOtrosIngresos(2)
CargaDeudores(2)
CargaCompras(2)
GvIngresos.Columns(5).Visible = True
GvIngresos.Columns(6).Visible = True
GvDeudores.Columns(5).Visible = True
GvDeudores.Columns(6).Visible = True
RVImporte.Enabled = False
RVImporte.MaximumValue = "0.00"
CVImportePesos.Enabled = True
Else
DivTCDolares.Visible = False
DivDolaresDolares.Visible = False
TxtFechaDocumento.Attributes.Remove("onchange")
CveMonedaFiltros = 1
CargaCuentas()
CargaOtrosIngresos(1)
CargaDeudores(1)
CargaCompras(1)
GvIngresos.Columns(5).Visible = False
GvIngresos.Columns(6).Visible = False
GvDeudores.Columns(5).Visible = False
GvDeudores.Columns(6).Visible = False
RVImporte.Enabled = True
RVImporte.MaximumValue = LtlSaldo.Text.ToDouble.ToString
CVImporteDolares.Enabled = False
CVImportePesos.Enabled = False
End If
UpDatos.Update()
RegistraScript("CambiaDolaresPesos();")
End Sub
Protected Sub CVImportePesos_ServerValidate(source As Object, args As ServerValidateEventArgs)
If args.Value.ToString.Substring(0, args.Value.Length - 3).ToDouble <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDouble Then
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
#End Region
Protected Sub BtnCambiaTipoMoneda_Click(sender As Object, e As EventArgs)
CambiaTipoMoneda()
End Sub
Private Sub CambiaTipoMoneda()
Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, TxtFechaDocumento.Text.ToDate.Day - 1, TxtFechaDocumento.Text.ToDate.Day)
Fecha = (dia.ToString + "/" + TxtFechaDocumento.Text.ToDate.Month.ToString + "/" + TxtFechaDocumento.Text.ToDate.Year.ToString).ToDate
If DivTipoCambio.Visible Then
TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
RegistraScript("CambiaPesosDolares();")
End If
If DivTCDolares.Visible Then
TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
RegistraScript("CambiaDolaresPesos();")
End If
If DivDolaresDolares.Visible Then
TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4)
End If
UpDatos.Update()
End Sub
#End Region
#Region "G U A R D A R"
Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
Dim FechaEmision As Date = MinFecha
If ChkComplementoPago.Checked AndAlso UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
FechaEmision = TxtFechaEmision.Text.ToDate
If FechaEmision <= MinFecha Then
Alert("Fecha de Emisión no valida", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
If ChkComplementoPago.Checked Then
Dim objGral As New ClsGralFolios
Dim SalirDeMetodo As Boolean = False
If objGral.GetFolios("CP", UsuarioActual.CveEmpresa) Then
If Not objGral.DtResultados.Rows.Count > 0 Then
Alert("No se cuenta con folios para emitir complemento de pago", TipoMensaje.MsgAdvertencia)
SalirDeMetodo = True
End If
End If
objGral.Dispose()
If SalirDeMetodo Then
Exit Sub
End If
End If
Dim FechaFactura As Date = FechaVenta
Dim FechaDocumentoPago As Date = TxtFechaDocumento.Text.ToDate
Dim AnioFactura As Integer = FechaFactura.Year
Dim MesFactura As Integer = FechaFactura.Month
Dim AnioDocumento As Integer = FechaDocumentoPago.Year
Dim MesDocumento As Integer = FechaDocumentoPago.Month
If AnioFactura > AnioDocumento Then
Alert($"El mes de la fecha de venta no puede ser mayor al mes de la la fecha de pago <br/> Fecha de venta: { FechaVenta.ToString("dd/MM/yyyy") }", TipoMensaje.MsgAdvertencia)
Exit Sub
ElseIf AnioFactura = AnioDocumento And MesFactura > MesDocumento Then
Alert($"El mes de la fecha de venta no puede ser mayor al mes de la la fecha de pago <br/> Fecha de venta: { FechaVenta.ToString("dd/MM/yyyy") }", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
'VALIDACION PARA LOS IMPORTES CUANDO SE QUIERE PAGAR EN DIFERENTE MONEDA
If Not Page.IsValid Then
Exit Sub
End If
Dim MsgError As String = ""
Dim Inserta As Boolean = True
Dim ImportePagado As Decimal = 0
Dim Fecha As Date = TxtFechaDocumento.Text.Trim.ToDate
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
Case "2" 'FyE
ImportePagado = TxtImporte.Text.Trim.ToDecimal
Fecha = TxtFechaDocumento.Text.Trim.ToDate
CveIE = -1
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
CveIE = -1
Case "5" 'Compras
ImportePagado = TxtImporte.Text.Trim.ToDecimal
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 As Date = FechaVenta
Dim StrMsg As New StringBuilder
'Saca moneda en que se va a pagar segun metodo de pago
Select Case RBLContado.SelectedValue
Case "1" ' Banco
If DdlCuenta.SelectedValue.ToEntero > 0 Then
CveMoneda = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero
End If
Case "2", "3", "4", "5" 'FyE, Ingresos, Deudores
If ChkPagarDolares.Checked Then
CveMoneda = 2
ElseIf ChkPagarPesos.Checked Then
CveMoneda = 1
End If
End Select
'cuando es pago con compra, debe de ser de Diario
Dim CveTipoPoliza As Integer = ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)
If RBLContado.SelectedValue = "5" Then CveTipoPoliza = 3
Dim CvePrePoliza As Integer = ObjMov.AddPrePolizas("Bancos/PopIEVentas", CvePlantillaPoliza, ImportePagado, ImportePagado, CveMoneda, Fecha, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa))
If Inserta Then
If CvePrePoliza > 0 Then
'SE AGREGA DETALLE DE UNA VENTA
If CveVenta > 0 Then
If VentaActual IsNot Nothing Then
Dim tipoCambioPago As Decimal = 1
Dim CuentasContablesInvalidas As New StringBuilder
Dim tFecha As Date = TxtFechaDocumento.Text.ToDate
Dim Pago As New VentaPago
Pago.Fecha = TxtFechaDocumento.Text.ToDate
Pago.CveMonedaPago = CveMoneda
Pago.Referencia = VentaActual.SerieFolio
If DdlOtrosPagos.SelectedValue = "2" Then
ImportePagado = TxtImporte.Text.Trim.ToDecimal.RoundSQL + TxtComision.Text.ToDecimal
Else
ImportePagado = TxtImporte.Text.Trim.ToDecimal.RoundSQL
End If
'Tipos de cambio
If Pago.CveMonedaPago = 1 AndAlso VentaActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos
Pago.TCPago = 1 / TxtTipoCambio.Text.ToDecimal
ElseIf Pago.CveMonedaPago = 2 AndAlso VentaActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES
Pago.TCPago = TxtTipoCambio.Text.ToDecimal
ElseIf Pago.CveMonedaPago = 2 AndAlso VentaActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES
Pago.TCPago = TxtTipoCambio.Text.ToDecimal
Pago.TCPago = TxtTipoCambio.Text.ToDecimal
End If
If ChkPagarPesos.Checked Then Pago.TCPago = 1 / TxtTipoCambio.Text.ToDecimal
If ChkPagarDolares.Checked Then Pago.TCPago = TxtTipoCambio.Text.ToDecimal
If TxtComision.Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Else Pago.OtroGastoIngreso = 0
Select Case RBLContado.SelectedValue
Case "1" ' Banco
CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, Fecha, TxtFolio.Text.Trim, TxtPagueseA.Text.Trim, ImportePagado, CveMoneda, tipoCambioPago, TxtObservaciones.Text.Trim, "",
True, True, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaTarjeta:=If(DivTarjeta.Visible, DdlTarjeta.SelectedValue.ToEntero, -1), CveCuentaDeposito:=CveCuentaDeposito,
Referencia:=If(TxtReferenciaCIE.Visible, TxtReferenciaCIE.Text, "-1"), CveCorte:=CveCorte, FechaEmision:=FechaEmision)
If CveIE > 0 Then
Pago.ImportePago = ImportePagado
Pago.ImportePagoVenta = ImportePagado - Pago.OtroGastoIngreso
Pago.CveIE = CveIE
Pago.TipoPago = "B"
If MsgError = "" AndAlso AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
End If
Else
MsgError = "Ocurrio un Error al registrarse el movimiento bancario."
Inserta = False
End If
Case "2" ' FyE
Pago.ImportePago = ImportePagado
Pago.ImportePagoVenta = ImportePagado - Pago.OtroGastoIngreso
Pago.TipoPago = "FyE"
Pago.CvePersonal = DdlFuncionarioEmpleado.SelectedValue.ToEntero
Pago.Referencia = DdlFuncionarioEmpleado.SelectedItem.ToString
If MsgError = "" AndAlso AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
End If
Case "3" 'Ingresos x Comprobar
CveCliente = DdlIngreso.SelectedValue.ToEntero
CveIE = -1
ImportePagado = TxtImporte.Text.Trim.ToDecimal
Pago.ImportePago = ImportePagado
Pago.TipoPago = "I"
For Each rw As GridViewRow In GvIngresos.Rows
If rw.FCCheckBox("Chk").Checked Then
CveIE = rw.DataKey("CveIE").ToEntero
Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero
Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
Pago.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal
Pago.FechaDocumentoRelacionado = rw.DataKey("FechaDocumento").ToDate
Pago.CveIE = CveIE
Pago.CveClientePago = rw.DataKey("CveCliente").ToEntero
If ChkPagarPesos.Checked Then Pago.TCPago = 1 / rw.DataKey("TipoCambio").ToDecimal
If ChkPagarDolares.Checked Then Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal
If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
Else
Exit For
End If
End If
Next
Case "4" 'Deudores Diversos
ImportePagado = TxtImporte.Text.Trim.ToDecimal
'CveProveedor2 = DdlDeudor.SelectedValue.ToEntero
CveIE = -1
If DdlDeudor.SelectedValue.ToEntero <= 0 Then
Alert("Debe especificar el deudor.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
For Each rw As GridViewRow In GvDeudores.Rows
If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then
Pago.CveIE = rw.DataKey("CveIE").ToEntero
Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero
Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal
'Pago.CveProveedor = DdlDeudor.SelectedValue.ToEntero
Pago.TipoPago = "DD"
If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
Else
Exit For
End If
End If
Next
Case "5" 'Compras
ImportePagado = TxtImporte.Text.Trim.ToDecimal
CveIE = -1
For Each rw As GridViewRow In GvCompras.Rows
If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then
Pago.CveMonedaPago = 1
Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
Pago.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
Pago.TipoPago = "Compra"
If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
End If
If MsgError = "" Then
Dim CompraActual As New Compra() With {.CveCompra = rw.DataKey("CveCompra").ToEntero, .ProveedorNombre = NombreCliente, .SerieFolio = rw.DataKey("SerieFolio"), .CveProveedor = rw.DataKey("CveProveedor").ToEntero, .IVA = rw.DataKey("IVA").ToDecimal, .IEPS = rw.DataKey("IEPS").ToDecimal, .RetIVA = rw.DataKey("RetIVA").ToDecimal, .RetISR = rw.DataKey("RetISR").ToDecimal, .Total = rw.DataKey("Total").ToDecimal, .PorcentajeIVA = rw.DataKey("PorcentajeIVA").ToDecimal, .CveSubProyecto = rw.DataKey("CveSubProyecto").ToEntero, .CveMoneda = rw.DataKey("CveMoneda").ToEntero, .CveTipoConceptoProveedor = rw.DataKey("CveTipoConcepto").ToEntero}
Dim PagoCompra As New CompraPago
PagoCompra.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero
PagoCompra.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal
PagoCompra.TCPago = rw.DataKey("TipoCambio").ToDecimal
PagoCompra.CveProveedor = rw.DataKey("CveProveedor").ToEntero
PagoCompra.CveVentaRelacionada = CveVenta
PagoCompra.TipoPago = "Venta"
If AplicaPrePolizaPagoCompra(CompraActual, PagoCompra, CvePrePoliza, ObjMov) Then
MsgError = "No se pudo insertar la póliza"
End If
End If
End If
Next
Case Else
'NO SE HA DEFINIDO PARA FUNCIONARIO Y EMPLEADO
If RBLContado.SelectedValue <> "2" Then
MsgError = "No se ha especificada opcion."
End If
End Select
If MsgError = "" Then
If MsgError = "" AndAlso ObjMov.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=3) Then
If ObjMov.ValorPolizaDescuadre > 0 Then
MsgError = ObjMov.MensajePolizaDescuadre
End If
End If
Else
MsgError = "No se pudo insertar la poliza detalle"
End If
End If
Else
MsgError = "venta no identificada"
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 ObjIE.Folio <> "" Then StrMsg.AppendFormat("Folio <b>{0}</b><br/>", ObjIE.Folio)
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
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
StrMsg.AppendFormat("</br> <br/>Póliza: <b> <a href='/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={0}' class='Texto' target='_blank'>{1}</a><br/>", CvePrePoliza, ObjMov.ContaFolio)
End If
Alert($"{StrMsg.ToString}<br/>", TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();")
Else
ObjIE.RollBack()
Alert(MsgError, TipoMensaje.MsgError)
End If
ObjIE.Dispose()
ObjMov.Dispose()
ObjCliente.Dispose()
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 = NowADS().ToShortDateString
ChkComplementoPago.Checked = False
UpDatos.Update()
UpGuardar.Update()
End Sub
#End Region
#Region " COMPLEMENTOS PAGO "
Private Function EmitirComplementoPago(CveIE As Integer, CveVentas As List(Of Integer), Series As List(Of String)) As String
If Not ChkComplementoPago.Checked Then
Return ""
End If
Dim Retorno As New StringBuilder
'For i = 0 To CveVentas.Count - 1
Dim ObjBancos As New ClsBancos
If ObjBancos.GetComplementoPagosRep(-1, NowADS().AddYears(-2), NowADS(), CveIE, -1, 1, UsuarioActual.CveEmpresa, -1) Then
If Not ObjBancos.DtResultados.Rows.Count > 0 Then
ObjBancos.Dispose()
Alert("No se generaron complementos de pago porque no hay facturas con método de pago PPD", TipoMensaje.MsgAdvertencia)
Return ""
End If
End If
ObjBancos.IniciaTransacSQL()
If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente) Then
ObjBancos.Commit()
PDFReciboDePagos(-1, -1, ObjBancos.CveComplementoPago, False)
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
Private Sub RVTxtFechaDocumento_Init(sender As Object, e As EventArgs) Handles RVTxtFechaDocumento.Init
RVTxtFechaDocumento.MaximumValue = NowADS().ToShortDateString
Calendario.EndDate = NowADS()
End Sub
Protected Sub ChkComplementoPago_CheckedChanged(sender As Object, e As EventArgs)
If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then
DvFechaEmision.Visible = ChkComplementoPago.Checked
UpGuardar.Update()
End If
End Sub
End Class