Option Explicit On Option Strict On Imports System.Data Imports System.IO Imports System.Net.Http Imports Extensiones Partial Class Bancos_DepositosCaja Inherits ClsPaginas Private Property FacturasCheckadas As Integer Get Return ViewState("FacturasCheckadas").ToString.ToEntero End Get Set(value As Integer) ViewState("FacturasCheckadas") = value End Set End Property Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then FacturasCheckadas = 0 TxtFecha.Text = NowADS().ToShortDateString txtFechaI.Text = NowADS().AddDays(-1).ToShortDateString txtFechaF.Text = NowADS().ToShortDateString TxtComision.Attributes.Add("onKeyUp", "txtSuma(this);") TxtDescuento.Attributes.Add("onKeyUp", "txtSumaDescuento(this);") TxtCuentaRetorno.Attributes.Add("onKeyUp", "txtSumaCuentaRetorno(this);") TxtIVA.Attributes.Add("onKeyUp", "txtSumaIVA(this);") TxtComisionIntermediario.Attributes.Add("onKeyUp", "txtSumaTntermediario(this);") If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then 'quita la opción de todos DdlTipoDeposito.Items.Remove("-1") End If CargaCuentas() ChkFaltante.Attributes.Add("onclick", "CheckFaltante(this);") ChkDescuento.Attributes.Add("onclick", "CheckDescuento(this);") ChkIntermediario.Attributes.Add("onclick", "CheckIntermediario(this);") ChkCuentaRetorno.Attributes.Add("onclick", "CheckRowCuenta(this);") BtnConsultar.Attributes.Add("onclick", "Consultar(this);") BtnDepositar.Attributes.Add("onclick", "Depositar(this);") 'Dim StrEncriptPrueba As String = Encripta($"OP=DC&CveIE={2784391}&CuentaCaja={"TestCuantaCaja"}&CuentaDepo={"Test cuenta"}") 'HplImprimirPDF.NavigateUrl = $"/Compras/PopUpVerFactura.aspx?P={StrEncriptPrueba}" If UsuarioActual.CveEmpresa = 189 Then If DdlTipoPago.Items.FindByValue("-1") IsNot Nothing Then DdlTipoPago.Items.Remove(DdlTipoPago.Items.FindByValue("-1")) End If divdescuento2.Visible = False divdescuento3.Visible = False DivIntercheck.Visible = False End If End If End Sub Private Sub CargaCuentas() DdlCuentaDeposito.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta <> 1", "", {"CveCuenta", "NumCuentaMoneda"}) DdlCuentaDeposito.DataBind() DdlCuentaDeposito.Items.Insert(0, New ListItem("-", "-1")) DdlCajaChica.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta = 1", "", {"CveCuenta", "NumCuentaMoneda"}) DdlCajaChica.DataBind() 'código temporal, para claudia y toñita, monge, anadelia, alba,patricia If UsuarioActual.TienePermisoProceso(383) Then 'UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then DdlCajaChica.Items.Add(New ListItem("Todas", "-1")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Solidaridad", "7850")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Obregón", "7853")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Matriz", "7861")) divFolio.Visible = True End If If UsuarioActual.Empresa.Funcionalidad(531) = "1" _ OrElse UsuarioActual.Empresa.Funcionalidad(109) = "1" _ OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1" Then 'solo If UsuarioActual.TienePermisoProceso(383) Then DivRowCuenta.Visible = True DivDescuentocheck.Visible = True Else DivRowCuenta.Visible = False DivDescuentocheck.Visible = False End If If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DivRowCuenta.Visible = True End If End If If UsuarioActual.CveEmpresa.Contiene(140, 141) Then divTipoPago.Visible = False : divTipoPago1.Visible = False DdlSubProyectos.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa) DdlSubProyectos.DataBind() DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyectoDeposito.DataSource = DdlSubProyectos.DataSource DdlSubProyectoDeposito.DataBind() DdlSubProyectoDeposito.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlSubProyectoDescuento.DataSource = DdlSubProyectos.DataSource DdlSubProyectoDescuento.DataBind() DdlSubProyectoDescuento.Items.Insert(0, New ListItem("Seleccione", "-1")) Dim dtclasif As DataTable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=2) If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then dtclasif = dtclasif.FiltraParametros("AplicaDepositoCaja = 1") End If DdlClasificacion.DataSource = dtclasif DdlClasificacion.DataBind() DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlClasificacionDescuento.DataSource = DdlClasificacion.DataSource DdlClasificacionDescuento.DataBind() DdlClasificacionDescuento.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) DdlPersonal.DataBind() Dim ClavesProvs As String = UsuarioActual.Empresa.Funcionalidad(206) If ClavesProvs = "" Then ClavesProvs = "0" ' para que no marque error 'intermediario DdlProveedorIntermediario.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveProveedor in ({0})", ClavesProvs)) DdlProveedorIntermediario.DataBind() DdlClasificacionIntermediario.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa, UsoClasificacion:=2) DdlClasificacionIntermediario.DataBind() DdlSubProyectoIntermediario.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa) DdlSubProyectoIntermediario.DataBind() 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarios(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlUsuario.DataBind() End Sub Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click CargaDatos() End Sub Private Sub CargaDatos() Dim ObjBancos As New ClsBancos Dim FechaI, FechaF As String FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") Dim MSI As Integer = -1 If DdlTipoPago.SelectedValue = "12" Then MSI = DDlMesesSinIntereses.SelectedValue.ToEntero End If ObjBancos.GetPagosCajaChica(FechaI, FechaF, UsuarioActual.CveEmpresa, DdlCajaChica.SelectedValue.ToEntero, DdlTipoPago.SelectedValue.ToEntero, CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, MSI:=MSI, CveUsuario:=DdlUsuario.SelectedValue.ToEntero) GvFacturas.DataSource = ObjBancos.DtResultados If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then If ObjBancos.DtResultados IsNot Nothing AndAlso ObjBancos.DtResultados.Rows.Count > 0 Then lblValorTotal.Text = ObjBancos.DtResultados.SUM("Importe").ToString("###,###,###.00") RegistraScript($" ValorTotalSeleccionado = {ObjBancos.DtResultados.SUM("Importe")};") End If End If ObjBancos.Dispose() GvFacturas.DataBind() ChkFaltante.Checked = False ChkDescuento.Checked = False ChkIntermediario.Checked = False ChkCuentaRetorno.Checked = False TxtComision.Text = "" TxtDescuento.Text = "" TxtIVA.Text = "" TxtComisionIntermediario.Text = "" TxtCuentaRetorno.Text = "" 'lblValorTotal.Text = "0.0" lblValorTotalSeleccionado.Text = "0.0" divLabelTotal.Visible = True DdlSubProyectoDeposito.SelectedValueExist(DdlSubProyectos.SelectedValue.ToEntero) DdlSubProyectoDescuento.SelectedValueExist(DdlSubProyectos.SelectedValue.ToEntero) DdlSubProyectoIntermediario.SelectedValueExist(DdlSubProyectos.SelectedValue.ToEntero) UpGvFacturas.Update() UpParametros.Update() UpComisiones.Update() End Sub Private Sub BtnDepositar_Click(sender As Object, e As EventArgs) Handles BtnDepositar.Click If Not Validaciones() Then Exit Sub End If Dim TotalImporte As Decimal = 0 Dim TotalImportePrePoliza As Decimal Dim Comision As Decimal = TxtComision.Text.ToDecimal Dim Descuento As Decimal = TxtDescuento.Text.ToDecimal Dim CuentaRetorno As Decimal = TxtCuentaRetorno.Text.ToDecimal Dim IVA As Decimal = TxtIVA.Text.ToDecimal Dim ImporteInter As Decimal = TxtComisionIntermediario.Text.ToDecimal Dim MsgError As String = "" If DdlCuentaDeposito.SelectedValue.ToEntero <= 0 Then Alert("No se ha especificado la cuenta a depositar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim tContador As Integer = 0 For Each Gvr As GridViewRow In GvFacturas.Rows If Gvr.FCCheckBox("ChkFactura").Checked Then TotalImporte += Gvr.DataKey("Importe").ToDecimal Next 'If TotalImporte = 0 AndAlso CuentaRetorno <> 0 Then ' Alert("Seleccione una factura para realizar el depósito", TipoMensaje.MsgAdvertencia) ' Exit Sub 'End If TotalImportePrePoliza = TotalImporte If Comision <> 0 Then TotalImporte = TotalImporte + Comision 'Comision = -(Comision) ' se inverte el valor, va cargada 'Descuento = -(Descuento) ' se inverte el valor, va cargada If DdlSubProyectoDeposito.SelectedValue.ToEntero = -1 Then Alert("Debes Seleccionar un Subproyecto ", TipoMensaje.MsgAdvertencia) Exit Sub End If End If If Descuento <> 0 Then TotalImporte = TotalImporte - Descuento 'Descuento = -(Descuento) ' se inverte el valor, va cargada 'If DdlSubProyectoDescuento.SelectedValue.ToEntero = -1 Or DdlClasificacionDescuento.SelectedValue.ToEntero = -1 Then ' Alert("Debes Seleccionar un Subproyecto y una Clasificación de descuento", TipoMensaje.MsgAdvertencia) ' Exit Sub 'End If End If If CuentaRetorno <> 0 Then TotalImporte = TotalImporte + CuentaRetorno 'Descuento = -(Descuento) ' se inverte el valor, va cargada 'If DdlSubProyectoDescuento.SelectedValue.ToEntero = -1 Or DdlClasificacionDescuento.SelectedValue.ToEntero = -1 Then ' Alert("Debes Seleccionar un Subproyecto y una Clasificación de descuento", TipoMensaje.MsgAdvertencia) ' Exit Sub 'End If End If If TxtComisionIntermediario.Text.ToDecimal <> 0 Then TotalImporte = TotalImporte - TxtComisionIntermediario.Text.ToDecimal - IVA End If If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TotalImportePrePoliza = 0 Then Alert("No se ha especificado un importe a depositar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim OcurrioError As Boolean = False Dim NuevaCvePrePoliza As Integer Dim pdf64 As String = "" Dim documentos As String = "Los Depósitos se realizaron exitosamente

" Dim CveIEOrigen As Integer = -1 'CajaChica Dim CveIEDestino As Integer = -1 'Banco Dim ObjConta As New ClsContabilidad() Dim ObjBancos As New ClsBancos(ObjConta.IniciaTransacSQL()) Try Dim FolioIE As Long = -1 Dim CveMoneda As Integer = 1 Dim CveMonedaDeposito As Integer Dim TipoCambio As Decimal = 1 Dim Fecha As Date = TxtFecha.Text.ToDate Dim drOrigen As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCajaChica.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("") Dim drDestino As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCuentaDeposito.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("") Dim CveSubProyecto As Integer = DdlSubProyectos.SelectedValue.ToEntero Dim CveClasificacion As Integer = -1 Dim CveSubProyectoComision As Integer Dim CveClasificacionComision As Integer Dim CveSubProyectoDescuento As Integer Dim CveClasificacionDescuento As Integer Dim imprimirFolios As String = "" Dim CveSubProyectoIntermediario As Integer Dim CveClasificacionIntermediario As Integer Dim CveProveedorIntermediario As Integer = -1 Dim tSubProyectoDeposito As String = "" If drOrigen IsNot Nothing Then CveMoneda = drOrigen("CveMoneda").ToString.ToEntero End If If drDestino IsNot Nothing Then CveMonedaDeposito = drDestino("CveMoneda").ToString.ToEntero End If If CveMonedaDeposito <> 1 Then TipoCambio = TxtTCDeposito.Text.ToDecimal If TipoCambio < 10 Then Alert("Tipo cambio incorrecto", TipoMensaje.ToastAdventencia) Exit Sub End If End If NuevaCvePrePoliza = ObjConta.AddPrePolizas("DepCaja", 13, TotalImportePrePoliza, TotalImportePrePoliza, CveMoneda, Fecha, $"Depósito Bancario - {DdlTipoDeposito.SelectedItem.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=1) Dim IntermediarioFactura As Boolean = False If UsuarioActual.CveEmpresa = 145 Then IntermediarioFactura = True If ChkIntermediario.Checked Then CveSubProyectoIntermediario = DdlSubProyectoIntermediario.SelectedValue.ToEntero CveClasificacionIntermediario = DdlClasificacionIntermediario.SelectedValue.ToEntero CveProveedorIntermediario = DdlProveedorIntermediario.SelectedValue.ToEntero If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then ' empresa llantera If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, False, TotalImporte, TotalImporte, 95, DdlClasificacionIntermediario.SelectedItem.Text, DdlClasificacionIntermediario.SelectedItem.Text, CveClasificacion:=CveClasificacionIntermediario, CveSubProyecto:=CveSubProyectoIntermediario, CveProveedor:=CveProveedorIntermediario, CveCuenta:=57619) Then OcurrioError = True End If If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, True, TotalImporte, TotalImporte, 95, DdlClasificacionIntermediario.SelectedItem.Text, DdlClasificacionIntermediario.SelectedItem.Text, CveClasificacion:=CveClasificacionIntermediario, CveSubProyecto:=CveSubProyectoIntermediario, CveProveedor:=CveProveedorIntermediario, CveCuenta:=57619) Then OcurrioError = True End If End If If Not IntermediarioFactura Then ' si factura no se manda al gasto sino se disminuye solo lo depositado If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, False, ImporteInter, ImporteInter, 51, DdlClasificacionIntermediario.SelectedItem.Text, DdlClasificacionIntermediario.SelectedItem.Text, CveClasificacion:=CveClasificacionIntermediario, CveSubProyecto:=CveSubProyectoIntermediario) Then OcurrioError = True End If End If If IVA <> 0 Then If Not OcurrioError AndAlso Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, False, IVA, IVA, 14, DdlClasificacionIntermediario.SelectedItem.Text, DdlClasificacionIntermediario.SelectedItem.Text, CveClasificacion:=CveClasificacionIntermediario, CveSubProyecto:=CveSubProyectoIntermediario, PorcentajeImpuesto:=0.16D) Then OcurrioError = True End If End If End If Dim CveTransaccionBanco As Integer = DdlTipoDeposito.SelectedValue.ToEntero If CveTransaccionBanco = -1 Then CveTransaccionBanco = 13 End If If TotalImporte < 0 Then 'que es una devolución, entonces como es negativo, se cambia el concetpo de bancos, por condición de trigger CveTransaccionBanco = 6 End If 'If DdlTipoPago.SelectedValue.Contiene("11", "12") Then ' cuando son pagos con tarjetas ' CveTransaccionBanco = DdlTipoPago.SelectedValue.ToEntero 'End If 'código temporal, para claudia y toñita, monge, anadelia, alba,patricia If UsuarioActual.TienePermisoProceso(383) Then 'CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then FolioIE = TxtFolio.Text.ToEntero End If If FolioIE <= 0 Then 'Entrada a bancos FolioIE = ObjBancos.GetNextFolio(DdlCuentaDeposito.SelectedValue.ToEntero, CveTransaccionBanco) End If If CveSubProyecto <= 0 Then 'sino se seleccionó del combo, busca en el listado el primero For Each Gvr As GridViewRow In GvFacturas.Rows If Gvr.FCCheckBox("ChkFactura").Checked Then CveSubProyecto = Gvr.DataKey("CveSubProyecto").ToEntero Exit For End If Next If CveSubProyecto <= 0 Then 'se saca de la cuenta de la caja chica CveSubProyecto = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCajaChica.SelectedValue.ToEntero, Estatus:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto").ToEntero() End If End If tSubProyectoDeposito = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyecto).FiltroPrimeroValor("SubProyecto") If FolioIE <= 0 Then OcurrioError = True End If CveIEOrigen = ObjBancos.AddBancos_IE(DdlCuentaDeposito.SelectedValue.ToEntero, CveTransaccionBanco, Fecha, FolioIE.ToString, $"Depósito Bancario - {tSubProyectoDeposito}", TotalImporte, CveMonedaDeposito, TipoCambio, TxtObservaciones.Text, "", False, False, -1, NuevaCvePrePoliza, "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedorIntermediario:=CveProveedorIntermediario) documentos += String.Format("Depósito: {1}    
", CveIEOrigen, FolioIE) If Not OcurrioError AndAlso ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, False, TotalImporte, TotalImporte, 30, $"Depósito Bancario - {DdlTipoDeposito.SelectedItem.Text}", $"Depósito Bancario - {DdlTipoDeposito.SelectedItem.Text}", CveClasificacion:=CveClasificacion, CveSubProyecto:=CveSubProyecto, CveIE:=CveIEOrigen) Then If CveMonedaDeposito > 1 Then If Not OcurrioError AndAlso Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, False, TotalImporte, (TotalImporte * TipoCambio) - TotalImporte, 204, $"Depósito Bancario - {DdlTipoDeposito.SelectedItem.Text}", $"Depósito Bancario - {DdlTipoDeposito.SelectedItem.Text}", CveClasificacion:=CveClasificacion, CveSubProyecto:=CveSubProyecto, CveIE:=CveIEOrigen, ImporteME:=TotalImporte, TipoCambio:=TipoCambio) Then OcurrioError = True End If End If If ChkFaltante.Checked Then CveSubProyectoComision = DdlSubProyectoDeposito.SelectedValue.ToEntero CveClasificacionComision = DdlClasificacion.SelectedValue.ToEntero If Comision <> 0 Then Dim tCveConcepto As Integer = 78 Dim tTipoMovto As Boolean = True If Comision < 0 Then tCveConcepto = 51 : Comision = -Comision : tTipoMovto = False End If If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, tTipoMovto, Comision, Comision * TipoCambio, tCveConcepto, $"Depósito Bancario - FALTANTE/SOBRANTE - {tSubProyectoDeposito}", $"Depósito Bancario - {tSubProyectoDeposito}", CveClasificacion:=CveClasificacionComision, CveSubProyecto:=CveSubProyectoComision) Then OcurrioError = True End If End If End If If Not OcurrioError AndAlso ChkDescuento.Checked Then CveSubProyectoDescuento = CveSubProyecto 'DdlSubProyectoDescuento.SelectedValue.ToEntero CveClasificacionDescuento = DdlClasificacionDescuento.SelectedValue.ToEntero If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, False, Descuento, Descuento * TipoCambio, 257, "", DdlPersonal.SelectedItem.Text, CveClasificacion:=CveClasificacionDescuento, CveSubProyecto:=CveSubProyectoDescuento, CvePersonal:=DdlPersonal.SelectedValue.ToEntero, CveIE:=CveIEOrigen) Then OcurrioError = True End If End If Else OcurrioError = True End If If Not OcurrioError AndAlso ChkCuentaRetorno.Checked Then If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, True, CuentaRetorno, CuentaRetorno * TipoCambio, 325, $"Depósito Bancario - CAJA - {tSubProyectoDeposito}", TxtCuentaRetornoObs.Text.Trim, CveSubProyecto:=CveSubProyecto) Then OcurrioError = True End If End If If Not OcurrioError Then Dim i As Integer = 0 For Each Gvr As GridViewRow In GvFacturas.Rows If Gvr.FCCheckBox("ChkFactura").Checked Then 'Datos de las Nuevas PrePolizas 'Entrada a Bancos Dim Importe As Decimal = Gvr.DataKey("Importe").ToDecimal Dim SerieFolio As String = Gvr.DataKey("SerieFolio").ToString 'si es el primero, se descuenta la "comisión" If i = 0 AndAlso IntermediarioFactura Then Importe = Importe - ImporteInter i += 1 End If 'Datos de las Prepolizas A Cancelar Dim CveIE As Integer = Gvr.DataKey("CveIE").ToEntero Dim CveVenta As Integer = Gvr.DataKey("CveVenta").ToEntero Dim CveCuentaBancaria As Integer = Gvr.DataKey("CveCuenta").ToEntero Dim tCveSubProyecto As Integer = Gvr.DataKey("CveSubProyecto").ToEntero If tCveSubProyecto <= 0 Then tCveSubProyecto = CveSubProyecto 'sino llega a tenerlo por caso de devolución, que tome el general FolioIE = ObjBancos.GetNextFolio(CveCuentaBancaria, 2) If Not FolioIE > 0 Then OcurrioError = True Exit For End If CveIEDestino = ObjBancos.AddBancos_IE(CveCuentaBancaria, 2, Fecha, FolioIE.ToString, String.Format("Depósito Bancario: {0}", SerieFolio), Importe, CveMoneda, 1, TxtObservaciones.Text, "", False, False, -1, NuevaCvePrePoliza, "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If Not OcurrioError AndAlso ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, True, Importe, Importe, 30, SerieFolio, String.Format("Depósito Bancario: {0}", SerieFolio), CveClasificacion:=CveClasificacion, CveSubProyecto:=tCveSubProyecto, CveVenta:=CveVenta, CveIE:=CveIEDestino) Then If Gvr.DataKey("CveMoneda").ToEntero > 1 Then If Not OcurrioError AndAlso Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, True, Importe, (Importe * TipoCambio) - Importe, 204, SerieFolio, String.Format("Depósito Bancario: {0}", SerieFolio), CveClasificacion:=CveClasificacion, CveSubProyecto:=tCveSubProyecto, CveVenta:=CveVenta, CveIE:=CveIEDestino, ImporteME:=Importe, TipoCambio:=TipoCambio) Then OcurrioError = True Exit For End If End If Else OcurrioError = True Exit For End If 'Asignamos la cuenta Deposito If Not OcurrioError AndAlso Not ObjBancos.UpdateBancos_IECuentaDeposito(CveIEOrigen, CveIE) Then OcurrioError = True Exit For End If End If Next Dim StrEncript As String = Encripta($"OP=DC&CveIE={CveIEOrigen}&CuentaCaja={DdlCajaChica.SelectedItem.Text}&CuentaDepo={DdlCuentaDeposito.SelectedItem.Text}") documentos += String.Format("Imprimir {1}

", StrEncript, "Depósito Bancario") End If If Not OcurrioError AndAlso ObjConta.ValidacionesPrePoliza(NuevaCvePrePoliza, UsuarioActual, Opcion:=1) Then If ObjConta.ValorPolizaDescuadre > 0 Then GuardaLogAD($"Bancos/DepositoCaja | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{NuevaCvePrePoliza}", "LogPrePolizas") OcurrioError = True End If End If If Not OcurrioError Then documentos += String.Format("Prepóliza
", NuevaCvePrePoliza) If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then Dim ParametrosPrePoliza As String = Encripta($"OP=PREPO&CvePrePoliza={NuevaCvePrePoliza}") documentos += String.Format("Imprimir {1}
", ParametrosPrePoliza, "PrePoliza") End If End If Catch ex As Exception OcurrioError = True OnError("Ocurrió un error al procesar los datos", ex) End Try If OcurrioError Then ObjConta.RollBack() Alert(MsgError, TipoMensaje.MsgError) Else ObjConta.Commit() If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then Try pdf64 = ImpresionDirectaPDF(CveIEOrigen, NuevaCvePrePoliza) Catch ex As Exception pdf64 = "" GuardaLog(ex.ToString()) End Try If Not String.IsNullOrEmpty(pdf64) Then RegistraScript($"impresionBase64('{pdf64}');", "Imprimir") Else Alert("No se pudo imprimir el pdf", TipoMensaje.MsgAdvertencia) End If End If Alert(documentos.ToString) TxtCuentaRetorno.Text = "" ChkCuentaRetorno.Checked = False CargaDatos() End If TxtComision.Text = "" TxtDescuento.Text = "" TxtIVA.Text = "" TxtComisionIntermediario.Text = "" lblValorTotal.Text = "0.0" lblValorTotalSeleccionado.Text = "0.0" CargaDatos() ObjConta.Dispose() End Sub Private Function Validaciones() As Boolean Dim Respuesta As Boolean = True If Not ValidaCobranza() Then Respuesta = False End If Return Respuesta End Function Private Function ValidaCobranza() As Boolean Dim Respuesta As Boolean = False If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then If DdlTipoDeposito.SelectedValue <> "8" Then Dim ObjMovtos As New ClsMovimientos() Dim FechaI, FechaF As Date FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha).AddDays(1) Dim CveSubProyecto As Integer = -1 If DdlSubProyectos.SelectedValue.ToEntero > 0 Then CveSubProyecto = DdlSubProyectos.SelectedValue.ToEntero End If Dim CveSubProyectoCuenta = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCajaChica.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto").ToEntero() If CveSubProyectoCuenta > 0 Then CveSubProyecto = CveSubProyectoCuenta End If If ObjMovtos.GetRemisionesCobranza(UsuarioActual.CveEmpresa, CveSubProyecto, FechaI, FechaF, UsuarioActual.CveUsuario) Then Dim dtt As DataTable = ObjMovtos.DtResultados.FiltraParametros($"CveVenta > 0 AND TipoDocto IN ('Ing','Rem') AND RemisionEspecial = 0") 'deben de estar consideradas las que están en proceso de cobro, por algún otro usuario. If dtt.Rows.Count = 0 Then Respuesta = True Else Respuesta = False Alert("No se puede realizar el depósito, ya que hay cobros pendientes por aplicar.", TipoMensaje.MsgAdvertencia) End If Else Alert("Error al consultar cobros pendientes.", TipoMensaje.MsgAdvertencia) Respuesta = False End If ObjMovtos.Dispose() Else 'SI ES TRANSFERENCIA PERMITIR CERRAR Respuesta = True End If Else Respuesta = True End If Return Respuesta End Function Private Sub ObtenerTotalImporta() Dim Total As Double = 0 For Each Gvr As GridViewRow In GvFacturas.Rows If Gvr.FCCheckBox("ChkFactura").Checked Then Total += Gvr.DataKey("Importe").ToDouble End If Next lblValorTotal.Text = Total.ToString("N") UpGvFacturas.Update() UpParametros.Update() End Sub Public Sub ChkFactura_Click(sender As Object, e As EventArgs) 'ObtenerTotalImporta() End Sub Protected Sub GvFacturas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvFacturas.RowDataBound 'If e.Row.RowType = DataControlRowType.DataRow Then ' If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoPago.SelectedValue.Contiene("11", "12", "-2") Then ' e.Row.FCCheckBox("ChkFactura").Checked = True ' e.Row.FCCheckBox("ChkFactura").Enabled = False ' End If ' e.Row.FCCheckBox("ChkFactura").Attributes.Add("onclick", String.Format("FnSuma(this,{0});", e.Row.DBCampo("Importe"))) ' e.Row.FCCheckBox("ChkFactura").InputAttributes.Add("Value", e.Row.DBCampo("Importe")) 'End If 'If e.Row.RowType = DataControlRowType.Header Then ' If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then ' RegistraScript("$('#C_GvFacturas_ChkSelector').attr('checked', true); $('#C_GvFacturas_ChkSelector').prop('disabled', 'disabled');") ' 'RegistraScript("$('#C_GvFacturas_ChkSelector').prop('disabled', 'disabled');") ' End If 'End If If e.Row.RowType = DataControlRowType.DataRow Then If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then e.Row.FCCheckBox("ChkFactura").Checked = True If DdlTipoPago.SelectedValue.Contiene("11", "12", "-2") Then e.Row.FCCheckBox("ChkFactura").Enabled = False End If End If e.Row.FCCheckBox("ChkFactura").Attributes.Add("onclick", String.Format("FnSuma(this,{0});", e.Row.DBCampo("Importe"))) e.Row.FCCheckBox("ChkFactura").InputAttributes.Add("Value", e.Row.DBCampo("Importe")) End If If e.Row.RowType = DataControlRowType.Header Then If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoPago.SelectedValue.Contiene("11", "12", "-2") Then RegistraScript("$('#C_GvFacturas_ChkSelector').attr('checked', true); $('#C_GvFacturas_ChkSelector').prop('disabled', 'disabled');") 'RegistraScript("$('#C_GvFacturas_ChkSelector').prop('disabled', 'disabled');") End If End If End Sub Protected Sub DdlTipoPago_SelectedIndexChanged(sender As Object, e As EventArgs) If DdlTipoPago.SelectedValue = "12" Then DDlMesesSinIntereses.Visible = True Else DDlMesesSinIntereses.Visible = False End If DDlMesesSinIntereses.SelectedValue = "-1" UPPFiltros.Update() End Sub Private Function ImpresionDirectaPDF(CveIEOrigen As Integer, CvePrePoliza As Integer) As String Dim PDFPago As Byte() = Nothing Dim PDFPrePoliza As Byte() = Nothing Dim ParametrosPago As String = Encripta($"OP=DC&CveIE={CveIEOrigen}&CuentaCaja={DdlCajaChica.SelectedItem.Text}&CuentaDepo={DdlCuentaDeposito.SelectedItem.Text}&TipoPago={DdlTipoPago.SelectedItem.Text}") Dim ParametrosPrePoliza As String = Encripta($"OP=PREPO&CvePrePoliza={CvePrePoliza}") Try PDFPago = DescargarPDF(ParametrosPago, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) If PDFPago IsNot Nothing Then PDFPrePoliza = DescargarPDF(ParametrosPrePoliza, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) End If Catch ex As Exception GuardaLog(ex.ToString()) PDFPago = Nothing PDFPrePoliza = Nothing End Try If PDFPago IsNot Nothing AndAlso PDFPrePoliza IsNot Nothing Then Dim pdf64 As String = "" 'UNIFICAR LOS 2 PDF Using ms As New MemoryStream Using pdfdoc As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfWriter(ms)) pdfdoc.InitializeOutlines() Dim docPago As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfReader(New MemoryStream(PDFPago))) docPago.CopyPagesTo(1, docPago.GetNumberOfPages(), pdfdoc) docPago.Close() Dim docPrePoliza As New iText.Kernel.Pdf.PdfDocument(New iText.Kernel.Pdf.PdfReader(New MemoryStream(PDFPrePoliza))) docPrePoliza.CopyPagesTo(1, docPrePoliza.GetNumberOfPages(), pdfdoc) docPrePoliza.Close() pdfdoc.Close() End Using pdf64 = Convert.ToBase64String(ms.ToArray()) End Using Return pdf64 Else Return "" End If End Function Private Function DescargarPDF(Parametros As String, CveEmpresa As Integer, CveUsuarioCreo As Integer, Optional GetBytes As Boolean = True, Optional strURLHOST As String = "") As Byte() If String.IsNullOrEmpty(strURLHOST) Then strURLHOST = String.Format("{0}://{1}:{2}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port) End If Dim Url As New Uri(String.Format("{0}/Compras/PopUpVerFactura.aspx?P={1}", strURLHOST, Parametros)) Dim File As Byte() = Nothing Try Using httpClient As New HttpClient() httpClient.Timeout = New TimeSpan(0, 1, 0) Using request As New HttpRequestMessage(HttpMethod.Get, Url) request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CveUsuario={2}", CveEmpresa, DateTime.UtcNow.Ticks, CveUsuarioCreo))) Dim response = httpClient.SendAsync(request).Result If GetBytes AndAlso response.StatusCode = Net.HttpStatusCode.OK Then File = response.Content.ReadAsByteArrayAsync().Result End If End Using End Using Catch ex As Exception File = Nothing OnError("Ocurrió un error al descargar la factura", ex) End Try Return File End Function Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) Dim CveMonedaDeposito As Integer = GlobalDTBancosCuentasGral(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveCuenta={DdlCuentaDeposito.SelectedValue}").ToEntero If CveMonedaDeposito <> 1 Then divtcdeposito.Visible = True Else divtcdeposito.Visible = False End If End Sub End Class