Imports System.Data Imports Extensiones Imports System.IO Imports System.Linq Imports System.Web.Services Imports Stimulsoft.Report.BarCodes Partial Class Bancos_PolizaCheque Inherits ClsPaginas #Region "Propiedades" Private Property NombreArchivo As String Get Return ViewState("NombreArchivo").ToString End Get Set(value As String) ViewState("NombreArchivo") = value End Set End Property Private Property TextoCompleto As String Get Return ViewState("TextoCompleto").ToString End Get Set(value As String) ViewState("TextoCompleto") = value End Set End Property Public Property ArregloMovs As ArrayList Get Return CType(ViewState("ArregloMovs"), ArrayList) End Get Set(value As ArrayList) ViewState("ArregloMovs") = value End Set End Property Public Property DtMovimientos As DataTable Get Return CType(ViewState("DtMovimientos"), DataTable) End Get Set(value As DataTable) ViewState("DtMovimientos") = value End Set End Property Public Property DtCuentasContables As DataTable Get Return CType(ViewState("DtCuentasContables"), DataTable) End Get Set(value As DataTable) ViewState("DtCuentasContables") = value End Set End Property Public Property TipoPlantilla As Integer Get Return CType(ViewState("TipoPlantilla"), Integer) End Get Set(value As Integer) ViewState("TipoPlantilla") = value End Set End Property Public Property CveMoneda As Integer Get Return CType(ViewState("CveMoneda"), Integer) End Get Set(value As Integer) ViewState("CveMoneda") = value End Set End Property Private ReadOnly Property CvePeriodo As Integer Get Return CType(ViewState("CvePeriodo"), Integer) End Get End Property Private ReadOnly Property CveProyecto As Integer Get Return CType(ViewState("CveProyecto"), Integer) End Get End Property Private ReadOnly Property CveSubProyecto As Integer Get Return CType(ViewState("CveSubProyecto"), Integer) End Get End Property Private ReadOnly Property CveTurno As Integer Get Return CType(ViewState("CveTurno"), Integer) End Get End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then ViewState("CveProveedor") = "-1" ViewState("CvePeriodo") = "0" CveMoneda = 1 If UsuarioActual.Empresa.Funcionalidad(200) <> "" Then ChkContabilizar.Enabled = False : ChkContabilizar.Checked = True DirectCast(Master.FindControl("TSM"), ScriptManager).EnablePageMethods = True Dim dt As DataTable = Nothing If UsuarioActual.Empresa.TipoContabilidad = 2 Then Dim Conta As New ClsContPAQi(UsuarioActual.Empresa) If Conta.GetCuentas(-1, "-1", 1) Then dt = Conta.DtResultados DtCuentasContables = Conta.DtResultados Session("DtCuentas") = Conta.DtResultados End If Conta.Dispose() End If If UsuarioActual.Empresa.TipoContabilidad = 1 Then Dim Conta As New ClsContabilidad If Conta.GetCuentas(-1, "-1", 1, UsuarioActual.CveEmpresa) Then dt = Conta.DtResultados DtCuentasContables = Conta.DtResultados Session("DtCuentas") = Conta.DtResultados End If Conta.Dispose() End If TipoPlantilla = 0 If IfNull(Request("Tipo"), "").ToString = "Ing" Then TipoPlantilla = 1 LblEncabezado.Text = "Otros Ingresos" TrPaguese.Visible = False ChkAbonoCuenta.Visible = False Else TxtImporte.Attributes.Add("onkeyup", String.Format("FncImporteCuenta(this)")) End If CargaPlantillas(TipoPlantilla) CargaTipoTransaccion(TipoPlantilla) CargaCuenta() If UsuarioActual.CveEmpresa = 66 Then trNotificar.Visible = True 'crea tabla temporal ArregloMovs = New ArrayList DtMovimientos = New DataTable("Movimientos") Dim IDMov As DataColumn = DtMovimientos.Columns.Add("IdMov", Type.GetType("System.Int32")) : IDMov.AutoIncrement = True With DtMovimientos.Columns .Add("IdCuenta", Type.GetType("System.Int32")) .Add("CveCuenta", Type.GetType("System.Int32")) .Add("CodigoCuenta", Type.GetType("System.String")) .Add("Cuenta", Type.GetType("System.String")) .Add("Referencia", Type.GetType("System.String")) .Add("Concepto", Type.GetType("System.String")) .Add("Cargo", Type.GetType("System.Double")) .Add("Abono", Type.GetType("System.Double")) .Add("TipoMovto", Type.GetType("System.Int32")) .Add("EsComodin", Type.GetType("System.Int32")) .Add("CveConcepto", Type.GetType("System.Int32")) .Add("CveProveedor", Type.GetType("System.Int32")) .Add("RazonSocial", Type.GetType("System.String")) .Add("SubProyecto", Type.GetType("System.String")) .Add("Proyecto", Type.GetType("System.String")) .Add("Personal", Type.GetType("System.String")) .Add("CvePersonal", Type.GetType("System.Int32")) .Add("CveSubProyecto", Type.GetType("System.Int32")) End With GvMov.DataBind() UPMovs.Update() If Request("CvePeriodo") IsNot Nothing AndAlso IsNumeric(Request("CvePeriodo")) AndAlso Request("CvePeriodo").ToEntero > 0 Then ViewState("CvePeriodo") = Request("CvePeriodo").ToEntero ViewState("CveProyecto") = Request("CveProyecto").ToEntero ViewState("CveSubProyecto") = Request("CveSubProyecto").ToEntero ViewState("CveTurno") = Request("CveTurno").ToEntero DdlPlantilla.Items.Add(New ListItem("Pago Nomina", "36")) DdlPlantilla.SelectedValue = "36" DdlPlantilla.Enabled = False End If DdlProveedores.txtText.Value = "Seleccione" DdlProveedores.txtValue.Value = "-1" DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") CargaDDLPersonal() End If End Sub Private Sub CargaPlantillas(TipoPlantilla As Integer) DdlPlantilla.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) DdlPlantilla.DataBind() DdlPlantilla.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub CargaCuenta() DdlCuenta.Items.Clear() Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) 'cuando es layout If DdlTipoTransaccion.SelectedValue.ToEntero = 9 Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) dt = dt.FiltraParametros("UsaLayout = 1") End If 'cuando es layout Por Grupos If DdlTipoTransaccion.SelectedValue.ToEntero = 17 Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) dt = dt.FiltraParametros("UsaLayoutGrupos = 1") End If DdlCuenta.DataSource = dt 'GlobalDTBancosCuentas(UsuarioActual.CveUsuario) DdlCuenta.DataBind() DdlCuenta.Items.Insert(0, New ListItem("Seleccione", "-1")) UPPDocumento.Update() End Sub Private Sub CargaTipoTransaccion(TipoPlantilla As Integer) DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros(String.Format("Tipo = '{0}' ", If(TipoPlantilla = 0, "Egs", "Ing"))) DdlTipoTransaccion.DataBind() End Sub Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged CargaCuenta() End Sub Private Sub CargaFolio() If HdnTipoTransaccion.Value = "" Then CargaHdnTipoTransaccion() If DdlTipoTransaccion.SelectedValue.ToEntero > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then If UsuarioActual.CveEmpresa = 119 AndAlso IfNull(Request("Tipo"), "").ToString = "Ing" 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 End If ObjFolios.Dispose() Else Dim Folio As Long Dim Banco As New ClsBancos Folio = Banco.GetNextFolio(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero) Banco.Dispose() TxtFolio.Text = Folio.ToString End If End If Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCuenta={0}", DdlCuenta.SelectedValue)) If dr IsNot Nothing Then CveMoneda = dr("CveMoneda").ToString.ToEntero End If End Sub Private Sub CargaHdnTipoTransaccion() 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 End If End Sub Protected Sub DdlCuenta_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuenta.SelectedIndexChanged CargaFolio() If CvePeriodo > 0 Then CargaNomina() End If End Sub Public Shared Function wsGetCuentas(ByVal prefixText As String, ByVal count As Integer) As String() Dim items As New List(Of String)(count) Dim dbrows As DataRow() dbrows = DirectCast(HttpContext.Current.Session("DtCuentas"), DataTable).Select(String.Format("nombre like '%{0}%'", prefixText)) For i As Integer = 0 To count - 1 If dbrows.Length > i Then items.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(dbrows(i)("Nombre").ToString, dbrows(i)("Id").ToString)) Else Exit For End If Next Return items.ToArray() End Function Public Shared Function wsGetNombreCuenta(ByVal contextKey As System.String) As System.String Dim Retorno As String = "" Dim dr As DataRow = DirectCast(HttpContext.Current.Session("DtCuentas"), DataTable).FiltroPrimero("Id = " & contextKey) If dr IsNot Nothing Then Retorno = dr("nombre").ToString End If Return Retorno End Function Protected Sub DdlPlantilla_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPlantilla.SelectedIndexChanged DdlPersonal.SelectedValueExist(-1) DdlProveedores.txtText.Value = "Seleccione" DdlProveedores.txtValue.Value = "-1" TxtPagueseA.Text = "" If DdlPlantilla.SelectedValue.ToEntero = 56 Then DdlProveedores.Visible = False DdlPersonal.Visible = True Else DdlProveedores.Visible = True DdlPersonal.Visible = False End If If DdlCuenta.SelectedValue.ToEntero <= 0 Then If UsuarioActual.CveEmpresa <> 126 Then Alert("Seleccione la Cuenta Bancaria", TipoMensaje.MsgAdvertencia) DdlPlantilla.SelectedValue = "-1" Exit Sub End If End If If DdlPlantilla.SelectedValue.ToEntero <= 0 Then Alert("Seleccione un Movimiento Válido", TipoMensaje.MsgAdvertencia) DdlPlantilla.SelectedValue = "-1" Exit Sub End If Dim CvePlantilla As Integer = DdlPlantilla.SelectedValue.ToEntero Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(UsuarioActual.CveEmpresa, CvePlantilla).FiltraParametros("", "Orden") Dim Cuenta As String = "" Dim IdCuenta As Integer = 0 Dim CveCuenta As Integer = 0 Dim CodigoCuenta As String = "" Dim NombreCuenta As String = "" Dim EsComodin As Integer = 0 DtMovimientos.Clear() For Each drt As DataRow In Dt.Rows Cuenta = drt("ConceptoContable").ToString IdCuenta = drt("IdCtaContable").ToString.ToEntero CveCuenta = drt("CveCuenta").ToString.ToEntero CodigoCuenta = drt("Codigo").ToString NombreCuenta = drt("Nombre").ToString If UsuarioActual.Empresa.TipoContabilidad = 1 AndAlso drt("CveCuenta").ToString.ToEntero > 0 Then Dim drr As DataRow = DtCuentasContables.FiltroPrimero(String.Format("CveCuenta={0}", drt("CveCuenta").ToString)) If drr IsNot Nothing Then CveCuenta = drt("CveCuenta").ToString.ToEntero CodigoCuenta = drr("CuentaFormato").ToString() NombreCuenta = drr("Nombre").ToString() End If EsComodin = 0 End If Dim dr As DataRow = DtMovimientos.NewRow dr("IdCuenta") = IdCuenta dr("CveCuenta") = CveCuenta dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta dr("Cuenta") = Cuenta dr("RazonSocial") = drt("RazonSocial") dr("Concepto") = TxtObservaciones.Text dr("TipoMovto") = If(drt("TipoMovto").ToString = "False", 0, 1) dr("EsComodin") = EsComodin dr("CveConcepto") = drt("CveConcepto") dr("CveProveedor") = drt("CveProveedor") dr("SubProyecto") = drt("SubProyecto") dr("CveSubProyecto") = drt("CveSubProyecto") dr("Proyecto") = drt("Proyecto") dr("Personal") = drt("Personal") dr("CvePersonal") = drt("CvePersonal") DtMovimientos.Rows.Add(dr) Next GvMov.DataSource = DtMovimientos GvMov.DataBind() UPMovs.Update() End Sub Private Sub CargaNomina() Dim CvePlantilla As Integer = DdlPlantilla.SelectedValue.ToEntero Dim ObjNomina As New ClsNominas Dim ObjConta As New ClsContabilidad trAjuste.Visible = True Dim Dt As DataTable = Nothing Dim Cuenta As String = "" Dim Concepto As String = "" Dim IdCuenta As Integer = 0 Dim TipoMovto As Integer Dim CveConcepto As Integer Dim CodigoCuenta As String = "" Dim NombreCuenta As String = "" Dim TotalProceso As Decimal = 0 Dim EsComodin As Integer = 0 DtMovimientos.Clear() If ObjNomina.GetPagoNomina(CveProyecto, CveSubProyecto, CveTurno, CvePeriodo, UsuarioActual.CveEmpresa) Then Dt = ObjNomina.DtResultados For Each drt As DataRow In Dt.Rows Dim dr As DataRow = DtMovimientos.NewRow If drt("CveNomina").ToString.ToEntero > 0 Then Dim drr As DataRow = Nothing ' DtCuentasContables.FiltroPrimero(String.Format("Id={0}", If(ObjConta.GetRetCuenta(31, UsuarioActual.CveEmpresa), ObjConta.DtResultados.Rows(0)("Id0CtaContable").ToString.ToEntero, -1))) TipoMovto = 0 CveConcepto = 31 IdCuenta = If(drr IsNot Nothing, drr("Id").ToString.ToEntero, -1) CodigoCuenta = If(drr IsNot Nothing, drr("CuentaFormato").ToString(), "") NombreCuenta = If(drr IsNot Nothing, drr("Nombre").ToString(), "") Concepto = drt("NombreCompleto").ToString dr("Cargo") = drt("Total").ToString.ToDecimal.FormatoNumero(2) TotalProceso += drt("Total").ToString.ToDecimal Else TipoMovto = 1 CveConcepto = 30 Concepto = "Pago Nómina" dr("Abono") = TotalProceso EsComodin = 1 TxtTotalAbonos.Text = TotalProceso.FormatoNumero(2) TxtTotalCargos.Text = TotalProceso.FormatoNumero(2) TxtImporte.Text = TotalProceso.FormatoNumero(2) HdnImporte.Value = TotalProceso.FormatoNumero(2) TxtImporte.Enabled = False TxtTotalAbonos.Enabled = False TxtTotalCargos.Enabled = False End If dr("IdCuenta") = IdCuenta dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta dr("Cuenta") = Cuenta dr("RazonSocial") = "" dr("Concepto") = Concepto dr("TipoMovto") = TipoMovto dr("EsComodin") = EsComodin dr("CveConcepto") = CveConcepto dr("CveProveedor") = "-1" dr("SubProyecto") = drt("SubProyecto") dr("Proyecto") = "" dr("Personal") = "" dr("CveSubProyecto") = drt("CveSubProyecto") dr("CvePersonal") = drt("CvePersonal") DtMovimientos.Rows.Add(dr) Next ObjNomina.Dispose() ObjConta.Dispose() GvMov.DataSource = DtMovimientos GvMov.DataBind() UPMovs.Update() GeneraLayout() End If End Sub #Region "LAYOUT" Private Function CreaArchivo() As Boolean DirectoryExistsCreate(String.Format("{0}Layout", UsuarioActual.Empresa.Ruta)) NombreArchivo = String.Format("{2}{1}{0}.txt", UsuarioActual.CveUsuario, NowADS().ToString("yyyyMMdd-HH-mm"), "LAYOUTPAGONOMINA") Dim path As String = String.Format("{0}Layout\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo) Dim fs As FileStream = File.Create(path) ' Add text to the file. Dim info As Byte() = New UTF8Encoding(True).GetBytes(TextoCompleto) fs.Write(info, 0, info.Length) fs.Close() Return True End Function Private Sub GeneraLayout() Dim ObjPersonal As New ClsRH() TextoCompleto = "" 'Encabezado Dim Identificador As String = "1" Dim NumRegistros As String = GeneraCampoInverso(DtMovimientos.FiltraParametros("CvePersonal > 0").Rows.Count.ToString, 7, "0"c) Dim ImporteRegistros As String = GeneraCampoInverso(DecimalesSinPunto(TxtImporte.Text), 15, "0"c) Dim RegistrosInc As String = "0000000" Dim ImporteRegistrosInc As String = "000000000000000" Dim ContratoPagel As String = "000000000000" Dim NumeroEmpresa As String = "4200976091" 'Requiere cuadre Dim CodigoPago As String = "R23" Dim TipoServicio As String = "110" Dim ClaveEntrada As String = "1" Dim FechaArchivo As String = NowADS().ToString("yyyyMMdd") Dim FechaPago As String = TxtFechaDocumento.ToDate.ToString("yyyyMMdd") Dim Filler As String = GeneraCampo("", 142) TextoCompleto = Identificador + NumRegistros + ImporteRegistros + RegistrosInc + ImporteRegistrosInc + ContratoPagel + NumeroEmpresa + CodigoPago + TipoServicio + ClaveEntrada + FechaArchivo + FechaPago + Filler + vbNewLine 'Detalle For Each dr As DataRow In DtMovimientos.FiltraParametros("CvePersonal > 0").Rows TextoCompleto += GeneraLineaLayout(dr("CvePersonal").ToString.ToEntero, dr("Cargo").ToString, dr("Concepto").ToString, ObjPersonal) + vbNewLine Next 'CreaArchivo() ObjPersonal.Dispose() End Sub Private Function GeneraLineaLayout(CvePersonal As Integer, Importe As String, Concepto As String, ObjPersonal As ClsRH) As String Dim Retorno As String = "" If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then Dim Identidicador As String = "3" Dim ReferenciaNumerica As String = GeneraCampo("", 7) Dim Curp As String = GeneraCampo(ObjPersonal.DtResultados(0)("CURP").ToString, 18) Dim TipoCuenta As String = "98" Dim BancoDestino As String = GeneraCampo(ObjPersonal.DtResultados(0)("CveSATBanco").ToString, 3) Dim PlazaDestino As String = "000" Dim NumeroCuenta As String = GeneraCampo(ObjPersonal.DtResultados(0)("CuentaBancaria").ToString, 16) Dim ImporteAbono As String = GeneraCampoInverso(DecimalesSinPunto(Importe), 15, "0"c) Dim EstadoPago As String = "0000000" Dim DescripcionPago As String = GeneraCampo(Concepto, 80) Dim TitularCuenta As String = GeneraCampo(ObjPersonal.DtResultados(0)("Nombre").ToString, 40) Dim MotivoPago As String = GeneraCampo(TxtObservaciones.Text, 40) Retorno = Identidicador + ReferenciaNumerica + Curp + TipoCuenta + BancoDestino + PlazaDestino + NumeroCuenta + ImporteAbono + EstadoPago + DescripcionPago + TitularCuenta + MotivoPago End If Return Retorno End Function Private Function DecimalesSinPunto(Importe As String) As String Dim Retorno As String = "" Importe = Importe.Replace(",", "") Dim PosicionD As Integer = Importe.IndexOf(".") Dim Decimales As Integer = Importe.Substring(PosicionD + 1).Length If PosicionD > 0 Then If Decimales = 1 Then Retorno = Importe.ToString.Replace(".", "") + "0" Else Retorno = Importe.ToString.Replace(".", "") End If Else Retorno = Importe.ToString + "00" End If Return Retorno End Function 'Genera los campos con un relleno a la derecha Private Function GeneraCampo(Texto As String, Tamaño As Integer, Optional Caracter As Char = " "c) As String Dim Retorno As String = "" If Texto.Length >= Tamaño Then Retorno = Texto.Substring(0, Tamaño) Else Retorno = Texto For i As Integer = Texto.Length + 1 To Tamaño Retorno += Caracter Next End If Return UCase(Retorno) End Function 'Genera el campo con un relleno a la izquierda Private Function GeneraCampoInverso(Texto As String, Tamaño As Integer, Optional Caracter As Char = " "c) As String Dim Retorno As String = "" If Texto.Length >= Tamaño Then Retorno = Texto.Substring(0, Tamaño) Else Retorno = Texto For i As Integer = Texto.Length + 1 To Tamaño Retorno = Caracter + Retorno Next End If Return UCase(Retorno) End Function 'Este metodo es el de las altas 'Private Function GeneraLineaLayout(CvePersonal As Integer, ObjPersonal As ClsRH) As String ' Dim Retorno As String = "" ' If ObjPersonal.GetPersonal(CvePersonal, "-1", "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) Then ' Dim TipoRegistro As String = "02" 'Estatico ' Dim Nombre As String = GeneraCampo(ObjPersonal.DtResultados(0)("Nombres").ToString, 20) ' Dim ApellidoPaterno As String = GeneraCampo(ObjPersonal.DtResultados(0)("APaterno").ToString, 20) ' Dim ApellidoMaterno As String = GeneraCampo(ObjPersonal.DtResultados(0)("AMaterno").ToString, 20) ' Dim FechaNacimiento As String = ObjPersonal.DtResultados(0)("FechaNacimiento").ToString.ToDate.ToString("yyyy-MM-dd") ' Dim EstadoCivil As String = "S" 'Requiere cuadre entre nuestra tabla y el catalogo del banco ' Dim Curp As String = GeneraCampo(ObjPersonal.DtResultados(0)("CURP").ToString, 18) ' Dim Sexo As String = GeneraCampo(ObjPersonal.DtResultados(0)("Genero").ToString, 1) ' Dim Nacionalidad As String = GeneraCampo("M", 3) 'Requiere cuadre entre nuestra tabla y el catalogo del banco ' Dim PaisOrigen As String = "MEX" 'Requiere cuadre entre nuestra tabla y el catalogo del banco ' Dim Ocupacion As String = "OFI" 'Requiere cuadre entre nuestra tabla y el catalogo del banco ' Dim FechaIngreso As String = ObjPersonal.DtResultados(0)("FechaIngreso").ToString.ToDate.ToString("yyyy-MM-dd") ' Dim Calle As String = GeneraCampo(ObjPersonal.DtResultados(0)("Calle").ToString, 50) ' Dim NumeroExterior As String = GeneraCampo(ObjPersonal.DtResultados(0)("NumExt").ToString, 8) ' Dim NumeroInterior As String = GeneraCampo(ObjPersonal.DtResultados(0)("NumInt").ToString, 8) ' Dim Colonia As String = GeneraCampo(ObjPersonal.DtResultados(0)("Colonia").ToString, 30) ' Dim CP As String = GeneraCampo(ObjPersonal.DtResultados(0)("CP").ToString, 5) ' Dim Poblacion As String = GeneraCampo("MEXICO", 30) ' Dim Estado As String = GeneraCampo(ObjPersonal.DtResultados(0)("Estado").ToString, 25) ' Dim TelefonoParticular As String = GeneraCampo(ObjPersonal.DtResultados(0)("Telefono").ToString, 10) ' Dim TelefonoOficina As String = GeneraCampo(ObjPersonal.DtResultados(0)("Telefono").ToString, 10) ' Dim ExtensionOficina As String = "000000" 'No tenemos este campo ' Dim Celular As String = GeneraCampo(ObjPersonal.DtResultados(0)("Celular").ToString, 10) ' Dim CorreoElectronico As String = GeneraCampo(ObjPersonal.DtResultados(0)("Correo").ToString, 50) ' Dim TipoProducto As String = "A0" 'Estatico ' Dim SubProducto As String = "245" 'Estatico ' Dim CuentaUniversal As String = GeneraCampo("", 2) 'Este valor se captura vacío ' Dim TipoCuenta As String = GeneraCampo("A", 2) 'Requiere cuadre entre nuestra tabla y el catalogo del banco ' Dim NumeroTDD As String = GeneraCampo("0000" + ObjPersonal.DtResultados(0)("Correo").ToString, 20) ' Dim Oficina As String = GeneraCampo(ObjPersonal.DtResultados(0)("Sucursal").ToString, 4) ' Dim MontoDisperciones As String = "000000000000000" 'Estatico ' Dim NumeroDisperciones As String = "0" 'Estatico ' Dim OficinaEntrega As String = "0000" 'Estatico ' Dim Beneficiario As String = GeneraCampo(ObjPersonal.DtResultados(0)("Nombres").ToString, 20) ' Dim ApellidoPaternoBeneficiario As String = GeneraCampo(ObjPersonal.DtResultados(0)("APaterno").ToString, 20) ' Dim ApellidoMaternoBeneficiario As String = GeneraCampo(ObjPersonal.DtResultados(0)("AMaterno").ToString, 20) ' Dim ParentescoBeneficiario As String = "SD" 'Requiere cuadre entre nuestra tabla y el catalogo del banco ' Dim SexoBeneficiario As String = GeneraCampo(ObjPersonal.DtResultados(0)("Genero").ToString, 1) ' Dim FechaNacimientoBeneficiario As String = ObjPersonal.DtResultados(0)("FechaNacimiento").ToString.ToDate.ToString("yyyy-MM-dd") ' Retorno = TipoRegistro + Nombre + ApellidoPaterno + ApellidoMaterno + FechaNacimiento + EstadoCivil + Curp + Sexo + Nacionalidad + PaisOrigen + Ocupacion + FechaIngreso + Calle + NumeroExterior + NumeroInterior + ' Colonia + CP + Poblacion + Estado + TelefonoParticular + TelefonoOficina + ExtensionOficina + Celular + CorreoElectronico + TipoProducto + SubProducto + CuentaUniversal + TipoCuenta + NumeroTDD + Oficina + ' MontoDisperciones + NumeroDisperciones + OficinaEntrega + Beneficiario + ApellidoPaternoBeneficiario + ApellidoMaternoBeneficiario + ParentescoBeneficiario + SexoBeneficiario + FechaNacimientoBeneficiario ' End If ' Return Retorno 'End Function #End Region Protected Sub GvMov_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvMov.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowIndex = 0 Then e.Row.Cells(0).Width = Unit.Pixel(110) e.Row.Cells(1).Width = Unit.Pixel(200) e.Row.Cells(2).Width = Unit.Pixel(120) e.Row.Cells(3).Width = Unit.Pixel(303) e.Row.Cells(4).Width = Unit.Pixel(72) e.Row.Cells(5).Width = Unit.Pixel(72) End If e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(0).ToolTip = e.Row.DBCampo("IdCuenta") If e.Row.DBCampo("TipoMovto") = "1" Then e.Row.FCTextBox("TxtAbono").Visible = True Else e.Row.FCTextBox("TxtCargo").Visible = True If CvePeriodo > 0 Then e.Row.FCLiteral("LtlCargo").Visible = False e.Row.FCTextBox("TxtCargo").Enabled = False e.Row.FCLiteral("LtlAbono").Visible = False e.Row.FCTextBox("TxtAbono").Enabled = False End If If e.Row.DBCampo("Cuenta") = "Comprobación Personal" And e.Row.DBCampo("Personal") <> "" Then e.Row.FCLiteral("LtlCuenta").Text = $"{e.Row.DBCampo("Cuenta")} - {e.Row.DBCampo("Personal")}" e.Row.FCDropDownList("DdlSubProyecto").DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) e.Row.FCDropDownList("DdlSubProyecto").DataBind() e.Row.FCDropDownList("DdlSubProyecto").SelectedValue = e.Row.DBCampo("CveSubProyecto") e.Row.FCDropDownList("DdlSubProyecto").Items.Insert(0, New ListItem("Sin SubProyecto Asignado", "-1")) If UsuarioActual.CveEmpresa.Contiene(119, 7, 11, 12, 122, 145) Then e.Row.FCLiteral("LtlSP").Visible = False e.Row.FCDropDownList("DdlSubProyecto").Visible = True End If End If End Sub Protected Sub BtnIEGuardar_Click(sender As Object, e As EventArgs) Handles BtnIEGuardar.Click Dim TotalCargos, TotalAbonos, ImporteDocumento As Decimal Dim CvePrePoliza As Integer Dim ValidaConcepto30 As Boolean = False Dim PaguesA As String = TxtPagueseA.Text.Trim Dim CveProveedorSeleccionado As Integer = -1 Dim CvePersonalSeleccionado As Integer = -1 If DdlPlantilla.SelectedValue.ToEntero = 56 Then CvePersonalSeleccionado = DdlPersonal.SelectedValue.ToEntero Else CveProveedorSeleccionado = DdlProveedores.txtValue.Value.ToEntero End If If DdlCuenta.SelectedValue.ToEntero <= 0 Then If UsuarioActual.CveEmpresa <> 126 Then Alert("Seleccione la Cuenta Bancaria", TipoMensaje.MsgAdvertencia) DdlPlantilla.SelectedValue = "-1" Exit Sub End If End If For Each Gvr As GridViewRow In GvMov.Rows TotalCargos += Gvr.FCTextBox("TxtCargo").Text.ToDecimal TotalAbonos += Gvr.FCTextBox("TxtAbono").Text.ToDecimal Next For Each Gvr As GridViewRow In GvMov.Rows If Gvr.DataKey("CveConcepto").ToEntero = 30 Then If Gvr.FCTextBox("TxtAbono").Text.ToDecimal = TxtImporte.Text.ToDecimal Or Gvr.FCTextBox("TxtCargo").Text.ToDecimal = TxtImporte.Text.ToDecimal Then ValidaConcepto30 = True End If End If Next If Not ValidaConcepto30 Then Alert("El importe no coincide con el concepto de bancos.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos Dim filemove As String = "" Dim Comprobante As String = "" For Each fileItem As Archivo In filesgral Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") filemove = fileItem.filename Next If TotalCargos = TotalAbonos Then Dim ObjIE As New ClsBancos() Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) Dim IDPoliza As Integer = 0 Dim CveIE As Integer Dim MsgError As String = "" If MsgError = "" Then ImporteDocumento = TxtImporte.Text.ToDecimal If ImporteDocumento > 0 Then Try Dim ConceptoPoliza As String = TxtObservaciones.Text If ConceptoPoliza = "" Then ConceptoPoliza = PaguesA Dim CveMoneda As Integer = 1 Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCuenta={0}", DdlCuenta.SelectedValue)) If dr IsNot Nothing Then CveMoneda = dr("CveMoneda").ToString.ToEntero End If Dim TC As Decimal = If(CveMoneda > 1, GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).ToDecimal, 1D) Dim CveTipoPoliza As Integer = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla).FiltroPrimeroValor("TipoPoliza", String.Format("CvePlantillaPoliza={0}", DdlPlantilla.SelectedValue)).ToEntero CvePrePoliza = ObjMov.AddPrePolizas("PolizaCheque/Guardar", DdlPlantilla.SelectedValue.ToEntero, TotalCargos, TotalAbonos, 1, TxtFechaDocumento.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=CveTipoPoliza) CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, PaguesA, ImporteDocumento, CveMoneda, If(CveMoneda > 1, TC, 0.0), TxtObservaciones.Text.Trim, TxtNotificarA.Text.Trim, ChkAbonoCuenta.Checked, True, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CveIE > 0 Then 'inserto los movimientos de la conta para abonar al saldo If CvePrePoliza > 0 Then Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:

" Dim Importe As Decimal = 0 Dim TipoMovto As Boolean = False 'inserto las compras que voy a pagar For Each gvr As GridViewRow In GvMov.Rows If gvr.DataKey("TipoMovto").ToDouble > 0 Then Importe = gvr.FCTextBox("TxtAbono").Text.ToDecimal TipoMovto = True Else Importe = gvr.FCTextBox("TxtCargo").Text.ToDecimal TipoMovto = False End If If Not CveProveedorSeleccionado > 0 Then CveProveedorSeleccionado = gvr.DataKey("CveProveedor").ToEntero End If If Not CvePersonalSeleccionado > 0 Then CvePersonalSeleccionado = gvr.DataKey("CvePersonal").ToEntero End If If Importe <> 0 Then If MsgError = "" Then 'aplica el ajuste en el concepto 30 Dim Referencia As String = gvr.FCTextBox("TxtConcepto").Text If gvr.DataKey("CveConcepto").ToEntero = 30 Then Importe = Importe - TxtAjuste.Text.ToDecimal Referencia = ObjIE.Folio ElseIf CveMoneda > 1 Then Importe = Importe * TC End If If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Importe, gvr.DataKey("CveConcepto").ToEntero, Referencia, TxtObservaciones.Text, CveIE:=CveIE, CveProveedor:=CveProveedorSeleccionado, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=CvePersonalSeleccionado, TipoCambio:=TC, CveCuenta:=gvr.DataKey("CveCuenta").ToEntero) Then MsgError = "no se pudo insertar el detalle de la póliza2" End If If gvr.DataKey("CveConcepto").ToEntero = 30 Then If CveMoneda > 1 AndAlso UsuarioActual.CveEmpresa = 119 Then 'Agregamos complementaria If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, 0, Importe * TC - Importe, 204, gvr.FCTextBox("TxtConcepto").Text, TxtObservaciones.Text, CveIE:=CveIE, CveProveedor:=CveProveedorSeleccionado, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=CvePersonalSeleccionado, ImporteME:=Importe, TipoCambio:=TC) Then MsgError = "Ocurrió un error al registrar el asiento del ingreso." End If End If End If End If End If Next If TxtAjuste.Text.ToDecimal <> 0 Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, TxtAjuste.Text.ToDecimal, TxtAjuste.Text.ToDecimal, 44, "", TxtObservaciones.Text, CveIE:=CveIE, TipoCambio:=TC) Then MsgError = "no se pudo insertar el detalle de la póliza2" End If End If Else MsgError = "No se pudo insertar la póliza" End If Else MsgError = "No se insertó el encabezado" End If Catch ex As Exception MsgError = "Error" End Try If MsgError = "" Then If ObjMov.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then If ObjMov.ValorPolizaDescuadre > 0 Then GuardaLogAD($"PolizaCheque/Guardar Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") End If Else MsgError = "No se pudo validar la prepoliza de cuadre." End If End If If MsgError = "" Then ObjIE.Commit() If filemove <> "" Then filemove.FilesMove(CveIE.ToString, String.Format("{0}IE", UsuarioActual.Empresa.Ruta), ConcatenarDirectorioBase:=False) End If GeneraChequePDF(CveIE, UsuarioActual.Empresa, IDPoliza) UPPDocumento.Update() TxtFolio.Text = "" TxtObservaciones.Text = "" GvMov.DataBind() DdlCuenta.SelectedValue = "-1" TxtFechaDocumento.Text = "" TxtImporte.Text = "" TxtPagueseA.Text = "" TxtObservaciones.Text = "" Dim StrMsg As New StringBuilder StrMsg.AppendFormat("El Movimiento se guardo correctamente

Movimiento
", CveIE) If UsuarioActual.Empresa.TipoContabilidad = 1 Then StrMsg.AppendFormat("
Ver Póliza", CvePrePoliza) Else StrMsg.AppendFormat("
Ver Póliza", ObjMov.ContaIdPoliza) End If Alert(StrMsg.ToString, TipoMensaje.MsgInformacion, "window.location.reload();") Else Alert(MsgError.ToString, TipoMensaje.MsgError) ObjIE.RollBack() End If Else Alert("Debe de llevar un importe", TipoMensaje.MsgAdvertencia) End If End If ObjIE.Dispose() ObjMov.Dispose() Else Alert("La suma de los movimientos no son iguales", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub GvMov_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvMov.RowDeleting Dim idMov As Integer = GvMov.DataKeys(e.RowIndex).Value.ToString.ToEntero Dim Rows As DataRow() = DtMovimientos.Select("IDMov = " & idMov) If Rows.Count > 0 Then DtMovimientos.Rows.Remove(Rows(0)) DtMovimientos.AcceptChanges() End If GvMov.DataSource = DtMovimientos GvMov.DataBind() TxtTotalAbonos.Text = DtMovimientos.SUM("Abono").FormatoNumero TxtTotalCargos.Text = DtMovimientos.SUM("Cargo").FormatoNumero 'saco de la póliza el importe del cheque, que coincida la cuenta contable con la bancaria If DdlCuenta.SelectedValue.ToEntero > 0 Then Dim drr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta=" & DdlCuenta.SelectedValue) If drr IsNot Nothing Then TxtImporte.Text = DtMovimientos.SUM("Abono", "IdCuenta =" & drr("IdCtaContable").ToString).ToString UPPDocumento.Update() End If End If End Sub Protected Sub CargaDDLPersonal() DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) DdlPersonal.DataBind() DdlPersonal.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Protected Sub DdlPersonal_SelectedIndexChanged(sender As Object, e As EventArgs) TxtPagueseA.Text = DdlPersonal.SelectedItem.Text UPPDocumento.Update() End Sub Protected Sub DdlProveedores_selectedindexchange(sender As Object, e As EventArgs) TxtPagueseA.Text = DdlProveedores.txtText.Value UPPDocumento.Update() End Sub End Class