Imports System.Data Imports Extensiones Imports System.Linq Imports System.Web.Services Imports GemBox.Spreadsheet Imports System.IO Imports iTextSharp.text.pdf Imports Microsoft.Reporting.WebForms Partial Class ContabilidadC_RegPrePoliza Inherits ClsPaginas #Region "Propiedades" 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 CvePrePoliza As Integer Get Return ViewState("CvePrePoliza").ToString().ToEntero() End Get End Property 'PARA CREAR IE Private Property CveConcepto As Integer Get Return ViewState("CveConcepto").ToString().ToEntero() End Get Set(value As Integer) ViewState("CveConcepto") = value End Set End Property Private Property CveTipoTransaccion As Integer Get Return ViewState("CveTipoTransaccion").ToString().ToEntero() End Get Set(value As Integer) ViewState("CveTipoTransaccion") = value End Set End Property Private Property CveCuenta As Integer Get Return ViewState("CveCuenta").ToString().ToEntero() End Get Set(value As Integer) ViewState("CveCuenta") = value End Set End Property Private Property Folio As String Get Return ViewState("Folio").ToString() End Get Set(value As String) ViewState("Folio") = value End Set End Property Private Property ImporteDocumento As Decimal Get Return ViewState("ImporteDocumento").ToString().ToDecimal() End Get Set(value As Decimal) ViewState("ImporteDocumento") = value End Set End Property Private Property Observaciones As String Get Return ViewState("Observaciones").ToString() End Get Set(value As String) ViewState("Observaciones") = value End Set End Property Private Property Beneficiario As String Get Return ViewState("Beneficiario").ToString() End Get Set(value As String) ViewState("Beneficiario") = value End Set End Property Private Property RowIndex As Integer Get Return ViewState("RowIndex").ToString().ToEntero() End Get Set(value As Integer) ViewState("RowIndex") = value End Set End Property Private Property Actualizar As Boolean Get Return CBool(ViewState("Actualizar").ToString()) End Get Set(value As Boolean) ViewState("Actualizar") = value End Set End Property Public Property IDMovEditar As Integer Get Return CType(ViewState("IDMovEditar"), Integer) End Get Set(value As Integer) ViewState("IDMovEditar") = 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 Public Property IndiceGrid As Integer Get Return CType(ViewState("IndiceGrid"), Integer) End Get Set(value As Integer) ViewState("IndiceGrid") = value End Set End Property Public Property IdPoliza As Integer Get Return CType(ViewState("IdPoliza"), Integer) End Get Set(value As Integer) ViewState("IdPoliza") = value End Set End Property Public Property Tick As String Get Return CType(ViewState("Tick"), String) End Get Set(value As String) ViewState("Tick") = value End Set End Property Public Property CveIE As Integer Get Return CType(ViewState("CveIE"), Integer) End Get Set(value As Integer) ViewState("CveIE") = value End Set End Property Public Property TipoPoliza As String Get Return CType(ViewState("TipoPoliza"), String) End Get Set(value As String) ViewState("TipoPoliza") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then Tick = DateTime.Now.Ticks.ToString() If UsuarioActual.Empresa.TipoContabilizacion = 1 OrElse UsuarioActual.Empresa.TipoContabilidad = 1 Then Response.Redirect(Request.Url.PathAndQuery.Replace("RegPrePoliza", "RegPrePolizaS")) End If CveMoneda = 1 ViewState("CvePrePoliza") = 0 ViewState("CvePeriodo") = "0" CveConcepto = -1 CveTipoTransaccion = -1 CveCuenta = -1 Folio = "-1" ImporteDocumento = -1 Observaciones = "-1" Beneficiario = "-1" Actualizar = False IdPoliza = -1 Dim dt As DataTable = Nothing ' If UsuarioActual.Empresa.UsaContabilidad Then 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 IfNull(Request("Tipo"), "").ToString() = "NOMPROV" Then DivTipoGasto.Visible = True ThTipoGasto.Visible = True CargaTiposGasto() End If If Request("CvePrePoliza") IsNot Nothing AndAlso IsNumeric(Request("CvePrePoliza")) AndAlso Request("CvePrePoliza").ToEntero() > 0 Then ViewState("CvePrePoliza") = Request("CvePrePoliza").ToEntero() CreaDT() CargaPrePoliza() CargaGvBitacora() If IfNull(Request("Tipo"), "").ToString() <> "NOMPROV" Then GvPrePoliza.Columns(4).Visible = False GvConcepto.Columns(4).Visible = False GvMov.Columns(5).Visible = False End If If IfNull(Request("Conta"), "").ToString() = "1" Then Contabilizar() End If Exit Sub LnkExcel.Visible = False Else LnkExcel.Visible = True CreaDT() BtnEliminar.Visible = False If UsuarioActual.Empresa.UsaAC Then ChkAutoConta.Checked = True End If End If TipoPlantilla = 0 If IfNull(Request("Tipo"), "").ToString() = "Ing" Then TipoPlantilla = 1 LblEncabezado.Text = "Otros Ingresos" End If CargaPlantillas(TipoPlantilla) If UsuarioActual.CveRol = 1 Then trNotificar.Visible = True CargaConceptos() CargaSubProyectos() CargaCuentasContables() 'crea tabla temporal ArregloMovs = New ArrayList CargaCuentas() '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", "61")) ' 'DdlPlantilla.SelectedValue = "61" ' DdlPlantilla.Enabled = False ' DivAgregarConceptos.Visible = False ' CargaNomina() ' RegistraScript("$(document).ready(function () { calculateCargo(); Sys.Application.add_load(function (s, e) { calculateCargo(); }); } );", 1) ' RegistraScript("$(document).ready(function () { calculateAbono(); Sys.Application.add_load(function (s, e) { calculateAbono(); }); } );", 2) ' RegistraScript("$(document).ready(function () { comparar(); Sys.Application.add_load(function (s, e) { comparar(); }); } );", 3) 'End If If IfNull(Request("Tipo"), "").ToString() <> "NOMPROV" Then GvPrePoliza.Columns(3).Visible = False GvConcepto.Columns(3).Visible = False GvMov.Columns(4).Visible = False End If 'Else ' Alert("Este módulo requiere el uso de Contabilidad.", TipoMensaje.MsgAdvertencia) ' BtnIEGuardar.Enabled = False ' BtnEliminar.Visible = False ' LbAgregar.Enabled = False 'End If End If End Sub Private Sub CreaDT() 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("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.Decimal")) .Add("Abono", Type.GetType("System.Decimal")) .Add("TipoMovto", Type.GetType("System.Int32")) .Add("EsComodin", Type.GetType("System.Int32")) .Add("CveConcepto", Type.GetType("System.Int32")) .Add("CveSubProyecto", Type.GetType("System.Int32")) .Add("Descripcion", Type.GetType("System.String")) .Add("CveProveedor", Type.GetType("System.Int32")) .Add("CvePersonal", Type.GetType("System.Int32")) .Add("CveCompra", Type.GetType("System.Int32")) .Add("CveCliente", Type.GetType("System.Int32")) .Add("CveVenta", Type.GetType("System.Int32")) .Add("CveClasificacion", Type.GetType("System.Int32")) .Add("MultipleSubProyecto", Type.GetType("System.Boolean")) .Add("CveTipoGasto", Type.GetType("System.Int32")) .Add("CvePrePolizaDetalle", Type.GetType("System.Int32")) .Add("CveConceptoContable", Type.GetType("System.Int32")) .Add("IdCtaContable", Type.GetType("System.Int32")) .Add("CveOC", Type.GetType("System.Int32")) .Add("ConceptoContable", Type.GetType("System.String")) .Add("TC", Type.GetType("System.Decimal")) .Add("PorcentajeImpuesto", Type.GetType("System.Decimal")) .Add("CveCuenta", Type.GetType("System.Int32")) .Add("ContadoTipoTransaccion", Type.GetType("System.Int32")) .Add("ContadoCuenta", Type.GetType("System.Int32")) .Add("ContadoNumeroFolio", Type.GetType("System.String")) .Add("ContadoImporte", Type.GetType("System.Double")) .Add("ContadoBeneficiario", Type.GetType("System.String")) .Add("ContadoObservaciones", Type.GetType("System.String")) End With End Sub 'Private Sub CargaNomina() ' Dim CvePlantilla As Integer = DdlPlantilla.SelectedValue.ToEntero() ' Dim ObjNomina As New ClsNominas ' Dim ObjConta As New ClsContabilidad ' 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 Referencia As String = "" ' Dim EsComodin As Integer = 0 ' DtMovimientos.Clear() ' If ObjNomina.GetProvisionNomina(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("NombreCompleto").ToString() = "" AndAlso ObjConta.GetRetCuenta(31, UsuarioActual.CveEmpresa) Then ' CveConcepto = 98 ' Cuenta = "Nominas por Pagar" ' IdCuenta = ObjConta.DtResultados(0)("IdCtaContable").ToString().ToEntero() ' Concepto = "Pago Nomina" ' Referencia = "Pago Nomina" ' Else ' Concepto = drt("NombreCompleto") ' Referencia = "" ' CveConcepto = drt("CveConceptoContable").ToString().ToEntero() ' Cuenta = drt("ConceptoContable").ToString() ' IdCuenta = drt("IdCtaContable").ToString().ToEntero() ' End If ' Dim drr As DataRow = DtCuentasContables.FiltroPrimero($"Id={IdCuenta}") ' CodigoCuenta = If(drr IsNot Nothing, drr("CuentaFormato").ToString(), "") ' NombreCuenta = If(drr IsNot Nothing, drr("Nombre").ToString(), "") ' TipoMovto = drt("TipoMovto") ' If TipoMovto = 0 Then ' dr("Cargo") = Math.Abs(drt("Importe").ToString().ToDecimal()) ' dr("Abono") = 0 ' Else ' dr("Cargo") = 0 ' dr("Abono") = Math.Abs(drt("Importe").ToString().ToDecimal()) ' End If ' dr("IdCuenta") = IdCuenta ' dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta ' dr("Cuenta") = Cuenta ' dr("Concepto") = Concepto ' dr("Descripcion") = Concepto ' dr("Referencia") = Referencia ' dr("TipoMovto") = TipoMovto ' dr("EsComodin") = EsComodin ' dr("CveConcepto") = CveConcepto ' dr("CveProveedor") = "-1" ' dr("CveSubProyecto") = drt("CveSubProyecto") ' dr("CvePersonal") = drt("CvePersonal") ' dr("CveClasificacion") = drt("CveClasificacion") ' dr("CveTipoGasto") = drt("CveTipoGasto") ' DtMovimientos.Rows.Add(dr) ' Next ' GvMov.DataSource = DtMovimientos ' GvMov.DataBind() ' UPMovs.Update() ' End If 'End Sub Private Sub CargaPrePoliza() BtnEliminar.Visible = True LblEncabezado.Text = "Edición de Póliza" Dim ObjContabilidad As New ClsContabilidad If ObjContabilidad.GetPrePoliza(CvePrePoliza, UsuarioActual.CveEmpresa) Then Dim dr As DataRow = ObjContabilidad.DtResultados.FiltroPrimero("") If dr IsNot Nothing Then DdlTipoPoliza.SelectedValue = dr("CveTipoPoliza") TxtFechaDocumento.Text = dr("Fecha") TxtConcepto.Text = dr("Concepto") DivDatosPoliza.Visible = True TipoPoliza = DdlTipoPoliza.SelectedItem.Text Folio = dr("FolioPoliza").ToString() If UsuarioActual.CveRol = 1 OrElse UsuarioActual.TienePermisoProceso(221) Then DivAgregarConceptos.Visible = True CargaConceptos() CargaSubProyectos() CargaCuentasContables() End If ObjContabilidad.GetContabilizacionDiarioDetalle(CvePrePoliza) DtMovimientos = ObjContabilidad.DtResultados.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}") GvPrePoliza.DataSource = DtMovimientos GvPrePoliza.DataBind() If DtMovimientos.FiltraParametros("CveConceptoContable IN (2,17)").Rows.Count > 0 Then LnkComplementoPago.Visible = True End If IdPoliza = dr("IdPoliza").ToString().ToEntero() If dr("IdPoliza").ToString().ToEntero() > 0 Then HplContabilizada.NavigateUrl = String.Format("RegPoliza.aspx?IdPoliza={0}", dr("IdPoliza")) divContabilziada.Visible = True BtnEliminar.Visible = False If UsuarioActual.CveUsuario = 100 Then BtnContabilizar.Visible = True BtnContabilizar.Text = "Actualizar Poliza" End If ElseIf TxtTotalCargos.Text.ToDouble = TxtTotalAbonos.Text.ToDouble Then 'sino está contabilizada, se activa el botón BtnContabilizar.Visible = True End If divDatosPrincipales.Visible = False divObservaciones.Visible = False UPMovs.Visible = False UPMovs.Update() UPPDocumento.Update() UpPrePoliza.Update() RegistraScript("comparar();") If Request("Tipo") IsNot Nothing AndAlso IsNumeric(Request("Tipo")) AndAlso Request("Tipo").ToEntero() = 1 AndAlso UsuarioActual.CveUsuario <> 100 Then For Each row As GridViewRow In GvPrePoliza.Rows row.FCTextBox("TxtCargo").Enabled = False row.FCTextBox("TxtAbono").Enabled = False Next End If Else Alert("El documento solicitado no existe, favor de revisar su búsqueda.", TipoMensaje.MsgAdvertencia) BtnEliminar.Visible = False End If End If CargaGvBitacora() ObjContabilidad.Dispose() UpPoliza.Update() UpBitacora.Update() End Sub Private Sub GvPrePoliza_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPrePoliza.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then 'Asignamos los Subproyectos e.Row.FCDropDownList("DdlSubProyecto").DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlSubProyecto").DataBind() e.Row.FCDropDownList("DdlSubProyecto").Items.Insert(0, New ListItem(" - ", "-1")) e.Row.FCDropDownList("DdlSubProyecto").SelectedValueExist(e.Row.DataKey("CveSubProyecto")) 'Asignamos los Tipos de Gasto e.Row.FCDropDownList("DdlTipoGasto").DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlTipoGasto").DataBind() 'e.Row.FCDropDownList("DdlTipoGasto").Items.Insert(0, New ListItem("Sin Asignar", "-1")) e.Row.FCDropDownList("DdlTipoGasto").SelectedValueExist(e.Row.DataKey("CveTipoGasto")) 'ASignamos las CuentasContables e.Row.FCDropDownList("DdlCtaContable").DataSource = Session("DtCuentas") e.Row.FCDropDownList("DdlCtaContable").DataBind() 'e.Row.FCDropDownList("DdlCtaContable").Items.Insert(0, New ListItem("Sin Asignar", "0")) e.Row.FCDropDownList("DdlCtaContable").SelectedValueExist(e.Row.DataKey("IdCtaContable")) TxtTotalCargos.Text = (TxtTotalCargos.Text.ToDouble + e.Row.FCTextBox("TxtCargo").Text.ToDouble).ToString().FormatoNumero TxtTotalAbonos.Text = (TxtTotalAbonos.Text.ToDouble + e.Row.FCTextBox("TxtAbono").Text.ToDouble).ToString().FormatoNumero Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero() If CveConceptoContable.Contiene(1, 2, 12, 13, 38, 207, 203, 39, 61, 62, 63, 150, 251, 226) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta")) If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) If CveConceptoContable.Contiene(176) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/OC/OC.aspx?CveOrdenCompra={0}", e.Row.DataKey("CveOC")) If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen")) If CveConceptoContable.Contiene(30, 204) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")) If CveConceptoContable.Contiene(30) Then LnkImprimirPDF.Visible = True LnkComprobante.Visible = True CveIE = e.Row.DBCampo("CveIE").ToString().ToEntero() End If 'e.Row.FCHyperLink("HlReferencia").NavigateUrl = CveConceptoContable End If If e.Row.RowType = DataControlRowType.Header Then e.Row.FCDropDownList("DdlSubProyectoFiltro").DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlSubProyectoFiltro").DataBind() e.Row.FCDropDownList("DdlSubProyectoFiltro").Items.Insert(0, New ListItem("Todos", "-1")) End If End Sub Private Sub CargaPlantillas(TipoPlantilla As Integer) 'GvPlantillas.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) 'GvPlantillas.DataBind() If UsuarioActual.CveEmpresa.Contiene(120) Then DdlPlantilla.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, -1) DdlPlantilla2.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, -1) Else DdlPlantilla.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) DdlPlantilla2.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) End If DdlPlantilla.DataBind() DdlPlantilla.Items.Insert(0, New ListItem("Plantilla Personalizada", "53")) DdlPlantilla2.DataBind() DdlPlantilla2.Items.Insert(0, New ListItem("Plantilla Personalizada", "53")) End Sub Private Sub CargaConceptos() DdlConceptosContables.DataSource = GlobalDTContaConceptosContables(-1) DdlConceptosContables.DataBind() End Sub Private Sub DdlConceptosContables_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlConceptosContables.SelectedIndexChanged If DdlConceptosContables.SelectedValue.ToEntero().Contiene(5, 17, 201, 205, 206, 14, 15, 16, 19, 25, 26, 21, 18, 60) Then CargaProveedores() DdlProveedores.Visible = True DdlCompras.Visible = True Else DdlProveedores.Visible = False DdlCompras.Visible = False End If If DdlConceptosContables.SelectedValue.ToEntero().Contiene(28, 29) Then CargaPersonal() DdlPersonal.Visible = True Else DdlPersonal.Visible = False End If If DdlConceptosContables.SelectedValue.ToEntero().Contiene(1, 2, 203, 207, 13, 61, 8, 9, 62, 63, 38, 39, 12, 91) Then CargaClientes() DdlClientes.Visible = True DdlVentas.Visible = True Else DdlClientes.Visible = False DdlVentas.Visible = False End If If DdlConceptosContables.SelectedValue.ToEntero().Contiene(51) Then CargaClasificacionesE() DdlClasificacionesE.Visible = True Else DdlClasificacionesE.Visible = False End If If DdlConceptosContables.SelectedValue.ToEntero().Contiene(201, 202, 203, 204, 206, 207, 226, 227, 229, 233, 234, 235, 239, 242, 256, 266) Then TxtTC.Text = "2" TxtTC.Visible = True Else TxtTC.Text = "" TxtTC.Visible = False End If If DdlConceptosContables.SelectedValue.ToEntero().Contiene(69) Then CargaClasificaciones() DdlClasificaciones.Visible = True Else TxtTC.Text = "" DdlClasificaciones.Visible = False End If End Sub Private Sub DdlProveedores_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProveedores.SelectedIndexChanged If DdlConceptosContables.SelectedValue.ToEntero().Contiene(18, 60) Then CargaNotasCreditoCompras(DdlProveedores.SelectedValue.ToEntero(), DdlCompras) Else CargaCompras(DdlProveedores.SelectedValue.ToEntero()) End If End Sub Private Sub DdlClientes_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClientes.selectedindexchange If DdlConceptosContables.SelectedValue.ToEntero().Contiene(12, 91) Then CargaVentas(DdlClientes.SelectedValue.ToEntero()) Else CargaVentas(DdlClientes.SelectedValue.ToEntero()) End If End Sub Private Sub CargaSubProyectos() DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem(" - ", "-1")) DdlSubProyectoFiltroMov.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyectoFiltroMov.DataBind() DdlSubProyectoFiltroMov.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaCuentasContables() DdlCtaContable.DataSource = Session("DtCuentas") DdlCtaContable.DataBind() DdlCtaContable.Items.Insert(0, New ListItem("Sin Asignar", "0")) End Sub Private Sub CargaTiposGasto() DdlTipoGasto.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) DdlTipoGasto.DataBind() DdlTipoGasto.Items.Insert(0, New ListItem("Sin Asignar", "0")) End Sub Private Sub CargaProveedores() DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() DdlProveedores.Items.Insert(0, New ListItem(" - ", "-1")) End Sub Private Sub CargaCompras(CveProveedor As Integer) If Not DdlConceptosContables.SelectedValue.ToEntero().Contiene(21) Then Dim ObjCompras As New ClsCompras DdlCompras.ClearSelection() If ObjCompras.GetCompras(-1, "-1", "-1", CveProveedor, -1, UsuarioActual.CveEmpresa) Then DdlCompras.DataSource = ObjCompras.DtResultados.FiltraParametros("Saldo > 0") DdlCompras.DataBind() DdlCompras.Items.Insert(0, New ListItem(" - ", "-1")) Else DdlCompras.DataSource = Nothing DdlCompras.DataBind() DdlCompras.Items.Insert(0, New ListItem(" - ", "-1")) End If ObjCompras.Dispose() End If End Sub Private Sub CargaNotasCreditoCompras(CveProveedor As Integer, ddl As DropDownList) If DdlConceptosContables.SelectedValue.ToEntero().Contiene(18, 60) Then Dim ObjCompras As New ClsCompras ddl.ClearSelection() If ObjCompras.GetCompras(UsuarioActual.CveEmpresa, "NC", "-1", "-1", "-1", "-1", "-1", "-1", "-1", "-1", CveProveedor:=CveProveedor, TopSelect:=1000) Then ddl.DataSource = ObjCompras.DtResultados '.FiltraParametros("Saldo <> 0") ddl.DataBind() ddl.Items.Insert(0, New ListItem(" - ", "-1")) Else ddl.DataSource = Nothing ddl.DataBind() ddl.Items.Insert(0, New ListItem(" - ", "-1")) End If ObjCompras.Dispose() End If End Sub Private Sub CargaClientes() DdlClientes.setEsWebService(True) DdlClientes.Attributes.Add("data-metodo", "getcliente") DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) DdlClientes.DataBind() ' DdlClientes.Items.Insert(0, New ListItem(" - ", "-1")) End Sub Private Sub CargaClasificaciones() DdlClasificaciones.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) DdlClasificaciones.DataBind() ' DdlClientes.Items.Insert(0, New ListItem(" - ", "-1")) End Sub Private Sub CargaVentas(CveCliente As Integer) Dim ObjVentas As New ClsVentas DdlVentas.ClearSelection() If ObjVentas.GetVentas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1", CveCliente, -1, -1, -1, "-1", "-1", "-1", CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then DdlVentas.DataSource = ObjVentas.DtResultados '.FiltraParametros("Saldo > 0") DdlVentas.DataBind() DdlVentas.Items.Insert(0, New ListItem(" - ", "-1")) Else DdlVentas.DataSource = Nothing DdlVentas.DataBind() DdlVentas.Items.Insert(0, New ListItem(" - ", "-1")) End If ObjVentas.Dispose() End Sub Private Sub CargaNotasCreditoVentas(CveCliente As Integer) Dim ObjVentas As New ClsVentas DdlVentas.ClearSelection() If ObjVentas.GetVentas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1", CveCliente, -1, -1, -1, "-1", "-1", "-1", CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then DdlVentas.DataSource = ObjVentas.DtResultados '.FiltraParametros("Saldo > 0") DdlVentas.DataBind() DdlVentas.Items.Insert(0, New ListItem(" - ", "-1")) Else DdlVentas.DataSource = Nothing DdlVentas.DataBind() DdlVentas.Items.Insert(0, New ListItem(" - ", "-1")) End If ObjVentas.Dispose() End Sub Private Sub CargaPersonal() DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) DdlPersonal.DataBind() DdlPersonal.Items.Insert(0, New ListItem(" - ", "-1")) End Sub Private Sub CargaClasificacionesE() DdlClasificacionesE.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) DdlClasificacionesE.DataBind() DdlClasificacionesE.Items.Insert(0, New ListItem(" - ", "-1")) End Sub Protected Sub DdlPlantilla_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPlantilla.SelectedIndexChanged TxtTotalAbonos.Text = "" TxtTotalCargos.Text = "" If DdlPlantilla.SelectedValue.ToEntero() <= 0 Then Alert("Seleccione un Movimiento Válido", TipoMensaje.MsgAdvertencia) DdlPlantilla.SelectedValue = "-1" Exit Sub End If If DdlPlantilla.SelectedValue.ToEntero() = 53 Then 'Plantilla Personalizada DivAgregarConceptos.Visible = True Else DivAgregarConceptos.Visible = False End If Dim CvePlantilla As Integer = DdlPlantilla.SelectedValue.ToEntero() Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(CvePlantilla).FiltraParametros(String.Format("CveEmpresa={0}", UsuarioActual.CveEmpresa), "Orden") Dim Cuenta As String = "" Dim IdCuenta 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 = 0 CodigoCuenta = "" NombreCuenta = "" If drt("IdCtaContable").ToString().ToEntero() > 0 Then 'DtCuentasContables Dim drr As DataRow = DtCuentasContables.FiltroPrimero(String.Format("Id={0}", drt("IdCtaContable").ToString())) If drr IsNot Nothing Then IdCuenta = drt("IdCtaContable").ToString().ToEntero() CodigoCuenta = drr("CuentaFormato").ToString() NombreCuenta = drr("Nombre").ToString() 'Cuenta = drr("Nombre").Tostring() NombreCuenta = CodigoCuenta & "
" & NombreCuenta End If EsComodin = 0 End If If drt("CveCuenta").ToString().ToEntero() > 0 Then NombreCuenta = String.Format("{0}
{1}", drt("Codigo"), drt("Nombre")) End If Dim dr As DataRow = DtMovimientos.NewRow dr("IdCuenta") = IdCuenta dr("CodigoCuenta") = NombreCuenta dr("Cuenta") = Cuenta 'TxtCuentaContable.Text dr("Referencia") = If(drt("CveConcepto").ToString().Contiene("29", "130"), drt("Personal"), drt("RazonSocial")) dr("Concepto") = TxtObservaciones.Text dr("TipoMovto") = If(drt("TipoMovto").ToString() = "False", 0, 1) dr("EsComodin") = EsComodin dr("CveConcepto") = drt("CveConcepto") dr("CveSubProyecto") = drt("CveSubProyectoNegativo") dr("Cargo") = TxtCargo.Text.ToDouble dr("Abono") = TxtAbono.Text.ToDouble dr("CveProveedor") = drt("CveProveedor") dr("CvePersonal") = drt("CvePersonal") dr("CveClasificacion") = -1 dr("MultipleSubProyecto") = drt("MultipleSubProyecto") dr("PorcentajeImpuesto") = drt("PorcentajeImpuesto") dr("CveCuenta") = drt("CveCuenta") dr("FolioPoliza") = drt("FolioPoliza") DtMovimientos.Rows.Add(dr) Next GvMov.DataSource = DtMovimientos GvMov.DataBind() UPMovs.Update() End Sub Protected Sub GvMov_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvMov.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Height = Unit.Pixel(1) 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 End If e.Row.FCTextBox("TxtAbono").Text = If(e.Row.DBCampo("Abono") = 0, "", e.Row.DBCampo("Abono")) e.Row.FCTextBox("TxtCargo").Text = If(e.Row.DBCampo("Cargo") = 0, "", e.Row.DBCampo("Cargo")) e.Row.FCTextBox("TxtConcepto").Text = e.Row.DBCampo("Descripcion") If CvePeriodo > 0 Then e.Row.FCTextBox("TxtCargo").Enabled = False e.Row.FCTextBox("TxtAbono").Enabled = False End If e.Row.FCDropDownList("DdlSubProyecto").DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlSubProyecto").DataBind() e.Row.FCDropDownList("DdlSubProyecto").Items.Insert(0, New ListItem(" - ", "-1")) e.Row.FCDropDownList("DdlSubProyecto").SelectedValue = e.Row.DBCampo("CveSubProyecto") 'Asignamos los Tipos de Gasto e.Row.FCDropDownList("DdlTipoGasto").DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlTipoGasto").DataBind() e.Row.FCDropDownList("DdlTipoGasto").Items.Insert(0, New ListItem("Sin Asignar", "-1")) e.Row.FCDropDownList("DdlTipoGasto").SelectedValue = e.Row.DBCampo("CveTipoGasto") If DdlPlantilla.SelectedValue.ToEntero() = 53 Then 'Plantilla Personalizada e.Row.FCDropDownList("DdlSubProyecto").Enabled = True e.Row.FCImageButton("imgD").Visible = True Else e.Row.FCDropDownList("DdlSubProyecto").Enabled = False End If If e.Row.DBCampo("MultipleSubProyecto") = "True" Then e.Row.FCDropDownList("DdlSubProyecto").Enabled = True End If 'Agregamos la opcion para vincular los movimientos bancarios If e.Row.DataKey("CveConcepto").ToEntero().Contiene(41) Then Dim ObjMovimientos As New ClsMovimientos Dim DdlSaldos As DropDownList = e.Row.FCDropDownList("DdlSaldos") Select Case e.Row.DataKey("CveConcepto").ToEntero() 'Acreedores Case 41 If (ObjMovimientos.GetAcreedoresSaldosDetalles(-1, CveMoneda, UsuarioActual.CveEmpresa)) Then DdlSaldos.Visible = True DdlSaldos.DataSource = ObjMovimientos.DtResultados.FiltraParametros($"CveIE > 0 AND CveProveedor = {e.Row.DataKey("CveProveedor").ToEntero()}") DdlSaldos.DataBind() DdlSaldos.Items.Insert(0, New ListItem("Seleccione", "-1")) End If End Select ObjMovimientos.Dispose() End If If e.Row.DataKey("CveConcepto").ToEntero().Contiene(30) Then e.Row.FCLinkButton("ImgBancos").Visible = True If e.Row.DataKey("ContadoTipoTransaccion").ToEntero > 0 And e.Row.DataKey("ContadoCuenta").ToEntero > 0 And e.Row.DataKey("ContadoNumeroFolio").ToString.Length > 0 And e.Row.DataKey("ContadoImporte").ToDecimal > 0 And e.Row.DataKey("ContadoBeneficiario").ToString.Length > 0 Then e.Row.FCLinkButton("ImgBancos").CssClass = "btn btn-circle btn-sm green" End If 'If CveTipoTransaccion > 0 And CveCuenta > 0 And Folio.Length > 0 And ImporteDocumento > 0 And Beneficiario.Length > 0 Then ' e.Row.FCLinkButton("ImgBancos").CssClass = "btn btn-circle btn-sm green" 'End If End If If e.Row.DataKey("CveConcepto").ToEntero().Contiene(17) Then e.Row.FCDropDownList("DdlProveedores").Visible = True e.Row.FCDropDownList("DdlProveedores").DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlProveedores").DataBind() e.Row.FCDropDownList("DdlProveedores").Items.Insert(0, New ListItem(" - ", "-1")) 'If CveTipoTransaccion > 0 And CveCuenta > 0 And Folio.Length > 0 And ImporteDocumento > 0 And Beneficiario.Length > 0 Then ' e.Row.FCLinkButton("ImgPagoCompra").CssClass = "btn btn-circle btn-sm green" 'End If End If End If End Sub Protected Sub BtnIEGuardar_Click(sender As Object, e As EventArgs) Handles BtnIEGuardar.Click Dim TotalCargos, TotalAbonos As Decimal If CvePrePoliza > 0 Then TotalCargos = TxtTotalCargos.Text.ToDecimal() TotalAbonos = TxtTotalAbonos.Text.ToDecimal() Else For Each Gvr As GridViewRow In GvMov.Rows TotalCargos += Gvr.FCTextBox("TxtCargo").Text.ToDecimal() TotalAbonos += Gvr.FCTextBox("TxtAbono").Text.ToDecimal() Next End If If Not (TotalCargos = TotalAbonos AndAlso (GvPrePoliza.Rows.Count > 0 Or GvMov.Rows.Count > 0)) Then Alert($"La suma de los movimientos no son iguales ({TotalCargos}-{TotalAbonos})", TipoMensaje.MsgAdvertencia) Exit Sub End If If CvePrePoliza > 0 Then 'Nuevo Modulo Charlie ActualizarPrePoliza() Else Dim MensajeAlert = New StringBuilder Dim ObjIE As New ClsBancos() Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) Dim ObjNom As New ClsNominas(ObjIE.IniciaTransacSQL) Dim Conta As ClsContPAQi = Nothing Dim IDPoliza As Integer = 0 Dim MsgError As String = "" Dim CveIE As Integer = -1 Dim CveIEInsertado As Integer = -1 Dim FolioIE As String = "" Try Dim CvePrePoliza As Integer Dim ConceptoPoliza As String = TxtObservaciones.Text CvePrePoliza = ObjMov.AddPrePolizas("Contabilidad/RegPrePoliza", DdlPlantilla.SelectedValue.ToEntero(), TotalCargos, TotalAbonos, 1, TxtFecha.Text.ToDate(), ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=DdlTipoPolizaAdd.SelectedValue.ToEntero()) If CvePrePoliza > 0 Then Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:

" Dim idCuentaContabilizacion As Long = 1 Dim Importe As Double = 0 Dim TipoMovto As Boolean = False Dim IdCtaContable As Integer = 0 Dim PorcentajeImpuesto As Decimal = 0 Dim CveProveedor As Integer = -1 Dim CveCompra As Integer = -1 'inserto las compras que voy a pagarDdlSaldos For Each gvr As GridViewRow In GvMov.Rows If gvr.DataKey("IDCuenta").ToEntero() > 0 Then IdCtaContable = gvr.DataKey("IDCuenta") End If CveProveedor = gvr.DataKey("CveProveedor").ToEntero() CveCompra = gvr.DataKey("CveCompra").ToEntero() CveConcepto = gvr.DataKey("CveConcepto").ToEntero() If gvr.DataKey("TipoMovto").ToDouble <> 0 Then Importe = gvr.FCTextBox("TxtAbono").Text.ToDouble TipoMovto = True Else Importe = gvr.FCTextBox("TxtCargo").Text.ToDouble TipoMovto = False End If 'Registra pago de compra If CveConcepto = 17 Then CveProveedor = gvr.FCDropDownList("DdlProveedores").SelectedValue.ToEntero() CveCompra = gvr.FCDropDownList("DdlCompras").SelectedValue.ToEntero() End If If CveConcepto = 41 Then CveIE = gvr.FCDropDownList("DdlSaldos").SelectedValue.ToEntero() Else If CveConcepto = 30 AndAlso Importe <> 0 Then 'Registra movimieno bancario If CveConcepto = 30 Then CveIE = ObjIE.AddBancos_IE(gvr.DataKey("ContadoCuenta").ToEntero, gvr.DataKey("ContadoTipoTransaccion").ToEntero, TxtFecha.Text, gvr.DataKey("ContadoNumeroFolio").ToString, gvr.DataKey("ContadoBeneficiario").ToString, gvr.DataKey("ContadoImporte").ToString.ToDecimal, CveMoneda, 0, gvr.DataKey("ContadoObservaciones").ToString, "", False, False, 0, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CveIE < 0 Then MsgError = "No se pudo registrar movimiento bancario" CveIEInsertado = CveIE If ObjIE.GetBancosIE(CveIE, -1, -1, "-1", -1, "-1", "-1", -1, -1, -1, -1, -1, MinFecha, MaxFecha, MinFecha, MaxFecha, MinFecha, MaxFecha, -1, -1, UsuarioActual.CveEmpresa) Then FolioIE = ObjIE.Folio End If End If CveIE = CveIEInsertado Else CveIE = -1 End If End If If idCuentaContabilizacion = 1 AndAlso (IdCtaContable = 0) Then idCuentaContabilizacion = 0 End If If Importe <> 0 Then If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, gvr.FCLiteral("LtlReferencia").Text, gvr.DataKey("CveConcepto").ToEntero(), gvr.FCTextBox("TxtConcepto").Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero(), CveIE:=CveIE, CveProveedor:=CveProveedor, CveCompra:=CveCompra, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero(), CveClasificacion:=gvr.DataKey("CveClasificacion").ToEntero(), ImporteMX:=Importe, CveTipoGasto:=gvr.FCDropDownList("DdlTipoGasto").SelectedValue.ToEntero(), CveCliente:=gvr.DataKey("CveCliente").ToEntero(), CveVenta:=gvr.DataKey("CveVenta").ToEntero(), TipoCambio:=If(gvr.DataKey("TC").ToString().ToDecimal() > 0, gvr.DataKey("TC").ToString().ToDecimal(), 1), ImporteME:=If(gvr.DataKey("TC").ToString().ToDecimal() > 0, (Importe / (gvr.DataKey("TC").ToString().ToDecimal() - 1)).RoundSQL, 0), PorcentajeImpuesto:=gvr.DataKey("PorcentajeImpuesto").ToDecimal(), CveCuenta:=gvr.DataKey("CveCuenta").ToEntero()) Then Else MsgError = "No se pudo insertar el detalle de la póliza2" Exit For End If End If If CveIE > 0 AndAlso gvr.DataKey("CveConcepto").ToEntero = 30 Then MensajeAlert.AppendFormat("

Folio Bancario: {1}", CveIE, FolioIE) End If Next 'If CvePeriodo > 0 Then ' If Not ObjNom.UpdateProvisionNomina(CvePeriodo, CvePrePoliza, UsuarioActual.CveEmpresa) Then ' MsgError = "No se pudo actualizar el periodo de la nómina" ' End If 'End If If ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 1) Then If ObjMov.ValorPolizaDescuadre > 0 Then GuardaLogAD($"Contabilidad/RegPrePolizas | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") MsgError = ObjMov.MensajePolizaDescuadre & "-" End If End If 'El movimiento 2 es el de Pago If ChkAutoConta.Checked AndAlso MsgError = "" Or UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then If idCuentaContabilizacion > 0 Then If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then 'MENSAJE PRINCIPAL MensajeAlert.AppendFormat("

Folio de Póliza: {1}", ObjMov.ContaIdPoliza, ObjMov.ContaFolio) MensajeAlert.AppendFormat("

Prepóliza: {1}", CvePrePoliza, ObjMov.ContaFolio) 'Alert(MensajeAlert.Tostring(), ModExtensiones.TipoMensaje.MsgInformacion) Else Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico") End If Else Alert("No se puede contabilizar la Prepoliza debido a que una o mas cuentas son inválidas") End If End If Else MsgError = "No se pudo insertar la póliza" End If If MsgError = "" Then 'MENSAJE IE If CveIE > 0 Then MensajeAlert.AppendFormat("

Folio Bancario: {1}", CveIE, FolioIE) Alert(MensajeAlert.ToString(), ModExtensiones.TipoMensaje.MsgInformacion, "window.location.reload()") Else Alert(If(MensajeAlert.ToString() = "", "Se registro con exito.", MensajeAlert.ToString()), TipoMensaje.MsgInformacion, "window.location.reload()") End If ObjIE.Commit() If Conta IsNot Nothing Then Conta.Commit() 'UPPDocumento.Update() 'TxtObservaciones.Text = "" 'GvMov.DataBind() 'TxtFecha.Text = "" 'TxtObservaciones.Text = "" Else MsgError.GuardaLogAD() ObjIE.RollBack() If Conta IsNot Nothing Then Conta.RollBack() End If Catch ex As Exception ex.GuardaLog(ex.Message) ObjIE.RollBack() If Conta IsNot Nothing Then Conta.RollBack() Alert("Ocurrio un error al registrar el movimiento", TipoMensaje.MsgInformacion) End Try ObjIE.Dispose() ObjMov.Dispose() If Conta IsNot Nothing Then Conta.Dispose() End If End Sub Private Sub ActualizarPrePoliza() Dim contador As Integer = 0 'Dim diferencia As String = "" Dim OcurrioError As Boolean = False Using ObjContabilidad As New ClsContabilidad ObjContabilidad.IniciaTransacSQL() If Not ObjContabilidad.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) Then OcurrioError = True End If If ObjContabilidad.UpdatePrePoliza(MinFecha, -1, DdlTipoPoliza.SelectedValue.ToEntero(), -1, CvePrePoliza, UsuarioActual.CveEmpresa, Concepto:=TxtConcepto.Text, FechaPoliza:=TxtFechaDocumento.Text.ToDate(), CveUsuarioModifico:=UsuarioActual.CveUsuario) Then For Each row As GridViewRow In GvPrePoliza.Rows Dim CvePrePolizaDetalle As Integer = row.DataKey("CvePrePolizaDetalle").ToEntero() Dim Concepto As String = row.FCTextBox("TxtConcepto").Text Dim CveSubProyecto As Integer = row.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero() Dim CtaContable As Integer = row.FCDropDownList("DdlCtaContable").SelectedValue.ToEntero() Dim TipoMovto As Boolean = If(row.FCTextBox("TxtCargo").Text.ToDecimal() <> 0, False, True) Dim TipoMovtoOld As Boolean = (row.DataKey("TipoMovto").ToString = "True") Dim ImporteMN As Decimal = If(row.FCTextBox("TxtCargo").Text.ToDecimal() <> 0, row.FCTextBox("TxtCargo").Text.ToDecimal(), row.FCTextBox("TxtAbono").Text.ToDecimal()) Dim CveTipoGastonew As Integer = If(DdlTipoGasto.Visible, row.FCDropDownList("DdlTipoGasto").SelectedValue.ToEntero(), row.DataKey("CveTipoGasto").ToEntero()) If row.DataKey("CvePrePolizaDetalle").ToEntero() > 0 Then Dim actualizar As Boolean actualizar = (Concepto <> row.DataKey("Concepto") OrElse CveSubProyecto <> row.DataKey("CveSubProyecto").ToEntero() OrElse CtaContable <> row.DataKey("IdCtaContable").ToEntero() OrElse TipoMovto <> TipoMovtoOld OrElse ImporteMN <> row.DataKey("ImporteMN").ToDecimal() OrElse CveTipoGastonew <> row.DataKey("CveTipoGasto").ToEntero()) 'diferencia = $"{diferencia}\r\n /*{actualizar}*/actualizar = '{Concepto}' <> '{row.DataKey("Concepto")}' || '{CveSubProyecto}' <> '{row.DataKey("CveSubProyecto").ToEntero()}' || '{CtaContable}' <> '{row.DataKey("IdCtaContable").ToEntero()}' ||" 'diferencia = $"{diferencia} '{TipoMovto}' <> '{TipoMovtoOld}' OrElse '{ImporteMN}' <> '{row.DataKey("ImporteMN").ToEntero()}' OrElse '{CveTipoGastonew}' <> '{row.DataKey("CveTipoGasto").ToEntero()}'" If actualizar Then contador = contador + 1 If Not ObjContabilidad.UpdatePrePolizasDetalle(CvePrePolizaDetalle, Concepto, CveSubProyecto, CtaContable, TipoMovto, ImporteMN, CveTipoGasto:=CveTipoGastonew, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then OcurrioError = True Exit For End If End If Else contador = contador + 1 If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePoliza, If(row.FCTextBox("TxtCargo").Text.ToDecimal() <> 0, False, True), If(row.FCTextBox("TxtCargo").Text.ToDecimal() <> 0, row.FCTextBox("TxtCargo").Text.ToDecimal(), row.FCTextBox("TxtAbono").Text.ToDecimal()), row.DataKey("Referencia").ToString(), row.DataKey("CveConceptoContable").ToEntero(), row.FCTextBox("TxtConcepto").Text, Now, row.FCDropDownList("DdlCtaContable").SelectedValue.ToEntero(), 0, CveSubProyecto:=row.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero(), CveTipoGasto:=If(DdlTipoGasto.Visible, row.FCDropDownList("DdlTipoGasto").SelectedValue.ToEntero(), row.DataKey("CveTipoGasto").ToEntero()), ImporteMX:=If(row.FCTextBox("TxtCargo").Text.ToDecimal() <> 0, row.FCTextBox("TxtCargo").Text.ToDecimal(), row.FCTextBox("TxtAbono").Text.ToDecimal()), CveProveedor:=DdlProveedores.SelectedValue.ToEntero()) Then OcurrioError = True Exit For End If End If Next Else OcurrioError = True End If If Not OcurrioError Then ObjContabilidad.Commit() Alert($"La Prepoliza se actualizó correctamente.
se actualizaron {contador} registros.", TipoMensaje.MsgInformacion) Else ObjContabilidad.RollBack() Alert($"Ocurrio un error al actualizar la PrePoliza.
{contador} registros.", TipoMensaje.MsgError) End If 'RegistraScript($"console.log(""{diferencia}"")".Replace("'", "\'")) End Using CargaPrePoliza() If Not OcurrioError Then If IdPoliza > 0 AndAlso contador Then BtnContabilizar_Click(Nothing, Nothing) End If End If End Sub Protected Sub GvPrePoliza_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvPrePoliza.RowUpdating RegistraScript(String.Format("$('#{0}').modal();", "DivEditConcepto")) CargaSubProyectos() IndiceGrid = e.RowIndex Dim DtTemp As New DataTable DtTemp.Columns.Add("ConceptoContable", GetType(String)) DtTemp.Columns.Add("FolioFactura", GetType(String)) DtTemp.Columns.Add("Concepto", GetType(String)) DtTemp.Columns.Add("CveSubProyecto", GetType(Integer)) DtTemp.Columns.Add("CveTipoGasto", GetType(Integer)) DtTemp.Columns.Add("Id", GetType(Integer)) DtTemp.Columns.Add("CargoImporteMN", GetType(Decimal)) DtTemp.Columns.Add("AbonoImporteMN", GetType(Decimal)) Dim ConceptoContable As String = GvPrePoliza.Rows(IndiceGrid).FCLiteral("LtlConceptoContable").Text Dim FolioFactura As String = GvPrePoliza.Rows(IndiceGrid).FCHyperLink("HlReferencia").Text Dim Concepto As String = GvPrePoliza.Rows(IndiceGrid).FCTextBox("TxtConcepto").Text Dim CveSubProyecto As Integer = GvPrePoliza.Rows(IndiceGrid).FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero() Dim CveTipoGasto As Integer = GvPrePoliza.Rows(IndiceGrid).FCDropDownList("DdlTipoGasto").SelectedValue.ToEntero() Dim Id As Integer = GvPrePoliza.Rows(IndiceGrid).FCDropDownList("DdlCtaContable").SelectedValue.ToEntero() Dim Cargo As Double = GvPrePoliza.Rows(IndiceGrid).FCTextBox("TxtCargo").Text.ToDouble Dim Abono As Double = GvPrePoliza.Rows(IndiceGrid).FCTextBox("TxtAbono").Text.ToDouble Dim registro As DataRow = DtTemp.NewRow registro.Item("ConceptoContable") = ConceptoContable registro.Item("FolioFactura") = FolioFactura registro.Item("Concepto") = Concepto registro.Item("CveSubProyecto") = CveSubProyecto registro.Item("CveTipoGasto") = CveTipoGasto registro.Item("Id") = Id registro.Item("CargoImporteMN") = Cargo registro.Item("AbonoImporteMN") = Abono DtTemp.Rows.Add(registro) GvConcepto.DataSource = DtTemp GvConcepto.DataBind() UppGrid.Update() End Sub Private Sub GvConcepto_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvConcepto.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then 'Asignamos los Subproyectos e.Row.FCDropDownList("DdlSubProyecto").DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlSubProyecto").DataBind() e.Row.FCDropDownList("DdlSubProyecto").Items.Insert(0, New ListItem(" - ", "-1")) e.Row.FCDropDownList("DdlSubProyecto").SelectedValueExist(e.Row.DataKey("CveSubProyecto")) 'Asignamos los Tipos de Gasto e.Row.FCDropDownList("DdlTipoGasto").DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlTipoGasto").DataBind() e.Row.FCDropDownList("DdlTipoGasto").Items.Insert(0, New ListItem("Sin Asignar", "-1")) e.Row.FCDropDownList("DdlTipoGasto").SelectedValueExist(e.Row.DataKey("CveTipoGasto")) 'ASignamos las CuentasContables e.Row.FCDropDownList("DdlCtaContable").DataSource = Session("DtCuentas") e.Row.FCDropDownList("DdlCtaContable").DataBind() e.Row.FCDropDownList("DdlCtaContable").Items.Insert(0, New ListItem("Sin Asignar", "0")) 'e.Row.FCDropDownList("DdlCtaContable").SelectedValueExist(e.Row.DataKey("IdCtaContable")) 'TxtTotalCargos.Text = (TxtTotalCargos.Text.ToDouble + e.Row.FCTextBox("TxtCargo").Text.ToDouble).Tostring().FormatoNumero 'TxtTotalAbonos.Text = (TxtTotalAbonos.Text.ToDouble + e.Row.FCTextBox("TxtAbono").Text.ToDouble).Tostring().FormatoNumero 'Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero() 'If CveConceptoContable.Contiene(1, 2, 13, 38, 207, 203, 39, 61, 62, 63) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta")) 'If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 234, 235) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) 'If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen")) 'e.Row.FCHyperLink("HlReferencia").NavigateUrl = CveConceptoContable End If If e.Row.RowType = DataControlRowType.Header Then e.Row.FCDropDownList("DdlSubProyectoFiltro").DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlSubProyectoFiltro").DataBind() e.Row.FCDropDownList("DdlSubProyectoFiltro").Items.Insert(0, New ListItem("Todos", "-1")) End If End Sub Protected Sub BtnAceptar_Click(sender As Object, e As EventArgs) Handles BtnAceptar.Click 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 RegistraScript("calculateCargo();calculateAbono();comparar()") 'saco de la póliza el importe del cheque, que coincida la cuenta contable con la bancaria End Sub Private Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click If DtMovimientos Is Nothing Then CreaDT() If Actualizar Then Dim Rows As DataRow() = DtMovimientos.Select("IDMov = " & HdnCve.Value) If Rows.Count > 0 Then Dim dr As DataRow = Rows(0) Dim CodigoCuenta As String = "" Dim NombreCuenta As String = "" dr("IdCuenta") = DdlCtaContable.SelectedValue If DdlCtaContable.SelectedValue.ToEntero() > 0 Then Dim drr As DataRow = DtCuentasContables.FiltroPrimero(String.Format("Id={0}", DdlCtaContable.SelectedValue)) If drr IsNot Nothing Then CodigoCuenta = drr("CuentaFormato").ToString() NombreCuenta = drr("Nombre").ToString() End If End If dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta dr("Cuenta") = DdlConceptosContables.SelectedItem dr("Referencia") = TxtReferencia.Text dr("Concepto") = TxtObservaciones.Text dr("TipoMovto") = If(Math.Abs(TxtCargo.Text.ToDouble) > 0, 0, 1) dr("EsComodin") = 0 dr("CveConcepto") = DdlConceptosContables.SelectedValue dr("Cargo") = TxtCargo.Text.ToDouble dr("Abono") = TxtAbono.Text.ToDouble dr("Descripcion") = TxtDescripcion.Text dr("CveSubProyecto") = DdlSubProyecto.SelectedValue dr("CveProveedor") = DdlProveedores.SelectedValue.ToEntero() dr("CveCompra") = DdlCompras.SelectedValue.ToEntero() dr("CvePersonal") = DdlPersonal.SelectedValue.ToEntero() dr("CveClasificacion") = DdlClasificaciones.SelectedValue.ToEntero() dr("CveCliente") = DdlClientes.SelectedValue.ToEntero() dr("CveVenta") = DdlVentas.SelectedValue.ToEntero() End If GvMov.DataSource = DtMovimientos GvMov.DataBind() UPMovs.Update() LbCancelarEdicion.Visible = False LbAgregar.Text = "Agregar" Actualizar = False Else If CvePrePoliza > 0 Then Dim dr As DataRow = DtMovimientos.NewRow dr("IdCtaContable") = DdlCtaContable.SelectedValue dr("ConceptoContable") = DdlConceptosContables.SelectedItem.Text dr("CveConceptoContable") = DdlConceptosContables.SelectedValue dr("Concepto") = TxtDescripcion.Text dr("Referencia") = TxtReferencia.Text dr("TipoMovto") = If(Math.Abs(TxtCargo.Text.ToDouble) > 0, 0, 1) dr("Cargo") = TxtCargo.Text.ToDouble dr("Abono") = TxtAbono.Text.ToDouble dr("ImporteMN") = If(Math.Abs(TxtCargo.Text.ToDouble) > 0, TxtCargo.Text.ToDouble, TxtAbono.Text.ToDouble) dr("CveSubProyecto") = DdlSubProyecto.SelectedValue TxtTotalAbonos.Text = (TxtTotalAbonos.Text.ToDouble + TxtAbono.Text.ToDouble).ToString().FormatoNumero TxtTotalCargos.Text = (TxtTotalCargos.Text.ToDouble + TxtCargo.Text.ToDouble).ToString().FormatoNumero DtMovimientos.Rows.Add(dr) DtMovimientos.AcceptChanges() If CvePrePoliza > 0 Then GvPrePoliza.DataSource = DtMovimientos GvPrePoliza.DataBind() UpPrePoliza.Update() End If Else Dim dr As DataRow = DtMovimientos.NewRow Dim CodigoCuenta As String = "" Dim NombreCuenta As String = "" dr("IdCuenta") = DdlCtaContable.SelectedValue If DdlCtaContable.SelectedValue.ToEntero() > 0 Then Dim drr As DataRow = DtCuentasContables.FiltroPrimero(String.Format("Id={0}", DdlCtaContable.SelectedValue)) If drr IsNot Nothing Then CodigoCuenta = drr("CuentaFormato").ToString() NombreCuenta = drr("Nombre").ToString() End If End If dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta dr("Cuenta") = DdlConceptosContables.SelectedItem.Text dr("Referencia") = TxtReferencia.Text dr("Concepto") = TxtObservaciones.Text dr("TipoMovto") = If(Math.Abs(TxtCargo.Text.ToDouble) > 0, 0, 1) dr("EsComodin") = 0 dr("CveConcepto") = DdlConceptosContables.SelectedValue dr("CveConceptoContable") = DdlConceptosContables.SelectedValue dr("ConceptoContable") = DdlConceptosContables.SelectedItem.Text dr("Cargo") = TxtCargo.Text.ToDouble dr("Abono") = TxtAbono.Text.ToDouble dr("Descripcion") = TxtDescripcion.Text dr("CveSubProyecto") = DdlSubProyecto.SelectedValue dr("CveProveedor") = DdlProveedores.SelectedValue.ToEntero() dr("CveCompra") = DdlCompras.SelectedValue.ToEntero() dr("CvePersonal") = DdlPersonal.SelectedValue.ToEntero() dr("CveClasificacion") = DdlClasificaciones.SelectedValue.ToEntero() dr("CveCliente") = DdlClientes.SelectedValue.ToEntero() dr("CveVenta") = DdlVentas.SelectedValue.ToEntero() dr("TC") = TxtTC.Text.ToDouble TxtTotalAbonos.Text = (TxtTotalAbonos.Text.ToDouble + TxtAbono.Text.ToDouble).ToString().FormatoNumero TxtTotalCargos.Text = (TxtTotalCargos.Text.ToDouble + TxtCargo.Text.ToDouble).ToString().FormatoNumero DtMovimientos.Rows.Add(dr) DtMovimientos.AcceptChanges() 'If CvePrePoliza > 0 Then ' GvPrePoliza.DataSource = DtMovimientos ' GvPrePoliza.DataBind() ' UpPrePoliza.Update() 'End If GvMov.DataSource = DtMovimientos GvMov.DataBind() UPMovs.Update() Actualizar = False End If End If TxtCargo.Text = "" TxtAbono.Text = "" TxtReferencia.Text = "" TxtDescripcion.Text = "" End Sub #Region "PESTAÑA INFORMACION GENERAL DE BANCO IE" Public Sub Bancos_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) RowIndex = GvRow.RowIndex If GvRow.FCTextBox("TxtAbono").Text = "" Then CargaTipoTransaccion("Ing") Else CargaTipoTransaccion("Egs") End If Dim IdMov As Integer = GvRow.DataKey("IdMov").ToString.ToEntero Dim Rows As DataRow() = DtMovimientos.Select("IdMov = " & IdMov) IDMovEditar = IdMov If Rows.Count > 0 Then Dim dr As DataRow = Rows(0) DdlTipoTransaccion.SelectedValueExist(dr("ContadoTipoTransaccion").ToString.ToEntero) DdlCuenta.SelectedValueExist(dr("ContadoCuenta").ToString.ToEntero) TxtDocumentoFolio.Text = dr("ContadoNumeroFolio").ToString TxtDocumentoObservaciones.Text = dr("ContadoObservaciones").ToString TxtDocumentoBeneficiario.Text = dr("ContadoBeneficiario").ToString End If TxtDocumentoImporte.Text = If(GvRow.FCTextBox("TxtAbono").Text = "", GvRow.FCTextBox("TxtCargo").Text.FormatoNumero, GvRow.FCTextBox("TxtAbono").Text.FormatoNumero) UpBancos.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivContadoModal")) End Sub Private Sub CargaTipoTransaccion(Tipo As String) DdlTipoTransaccion.Items.Clear() DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros($"Tipo = '{Tipo}'") DdlTipoTransaccion.DataBind() DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1")) End Sub Private Sub CargaCuentas() DdlCuenta.Items.Clear() DdlCuenta.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) '.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", DdlMoneda.SelectedValue)) DdlCuenta.DataBind() DdlCuenta.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub BtnContado_Click(sender As Object, e As EventArgs) Handles BtnContado.Click Dim Rows As DataRow() = DtMovimientos.Select("IdMov = " & IDMovEditar) If Rows.Count > 0 Then Dim dr As DataRow = Rows(0) dr("ContadoTipoTransaccion") = DdlTipoTransaccion.SelectedValue.ToEntero dr("ContadoCuenta") = DdlCuenta.SelectedValue.ToEntero dr("ContadoNumeroFolio") = TxtDocumentoFolio.Text dr("ContadoImporte") = TxtDocumentoImporte.Text.ToDecimal dr("ContadoBeneficiario") = TxtDocumentoBeneficiario.Text dr("ContadoObservaciones") = TxtDocumentoObservaciones.Text End If DtMovimientos.AcceptChanges() GvMov.DataSource = DtMovimientos GvMov.DataBind() 'CveTipoTransaccion = DdlTipoTransaccion.SelectedValue.ToEntero 'CveCuenta = DdlCuenta.SelectedValue.ToEntero 'Folio = TxtDocumentoFolio.Text 'ImporteDocumento = TxtDocumentoImporte.Text.ToDecimal 'Observaciones = TxtDocumentoObservaciones.Text 'Beneficiario = TxtDocumentoBeneficiario.Text RegistraScript(String.Format("$('#{0}').modal('hide');", "DivContadoModal")) GvMov.Rows(RowIndex).FCLinkButton("ImgBancos").CssClass = "btn btn-circle btn-sm green" UPMovs.Update() End Sub Private Sub BtnEliminar_Click(sender As Object, e As EventArgs) Handles BtnEliminar.Click Dim ObjContabilidad As New ClsContabilidad ObjContabilidad.IniciaTransacSQL() Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa) ObjConta.IniciaTransacSQL() Dim TieneError As Boolean = False If ObjContabilidad.RemovePrePolizas(CvePrePoliza, UsuarioActual.CveEmpresa) Then If IdPoliza > 0 Then If Not ObjConta.RemovePoliza(IdPoliza) Then TieneError = True End If End If Alert("La Prepóliza ha sido eliminada", TipoMensaje.MsgInformacion) Else Alert("La Prepóliza ha podido ser eliminada", TipoMensaje.MsgError) TieneError = True End If If Not TieneError Then ObjContabilidad.Commit() ObjConta.Commit() Else ObjContabilidad.RollBack() ObjConta.RollBack() End If ObjContabilidad.Dispose() End Sub #End Region Protected Sub DdlTipoGasto_SelectedIndexChanged(sender As Object, e As EventArgs) If UpPrePoliza.Visible Then For Each Gvr As GridViewRow In GvPrePoliza.Rows Gvr.FCDropDownList("DdlTipoGasto").SelectedValueExist(DdlTipoGasto.SelectedValue) Next UpPrePoliza.Update() End If If UPMovs.Visible Then For Each Gvr As GridViewRow In GvMov.Rows Gvr.FCDropDownList("DdlTipoGasto").SelectedValueExist(DdlTipoGasto.SelectedValue) Next UPMovs.Update() End If End Sub Protected Sub DdlSubProyectoFiltro_SelectedIndexChanged(sender As Object, e As EventArgs) Dim Ddl As DropDownList = CType(sender, DropDownList) For Each Gvr As GridViewRow In GvPrePoliza.Rows If Ddl.SelectedValue.ToEntero() > 0 Then If Gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero() = Ddl.SelectedValue.ToEntero() Or Not Gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero() > 0 Or Gvr.FCDropDownList("DdlSubProyecto").Enabled Then Gvr.Visible = True Gvr.FCDropDownList("DdlSubProyecto").SelectedValueExist(Ddl.SelectedValue) Else Gvr.Visible = False End If Else Gvr.Visible = True End If Next UpPrePoliza.Update() RegistraScript("calculateAbono()", "cargo") RegistraScript("calculateCargo()", "abono") RegistraScript("comparar()", "compara") End Sub Protected Sub DdlSubProyectoFiltroMov_SelectedIndexChanged(sender As Object, e As EventArgs) For Each Gvr As GridViewRow In GvMov.Rows If DdlSubProyectoFiltroMov.SelectedValue.ToEntero() > 0 Then If Gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero() = DdlSubProyectoFiltroMov.SelectedValue.ToEntero() Or Not Gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero() > 0 Or Gvr.FCDropDownList("DdlSubProyecto").Enabled Then Gvr.Visible = True Gvr.FCDropDownList("DdlSubProyecto").SelectedValueExist(DdlSubProyectoFiltroMov.SelectedValue) Else Gvr.Visible = False End If Else Gvr.Visible = True End If Next UpPrePoliza.Update() RegistraScript("calculateAbono()", "cargo") RegistraScript("calculateCargo()", "abono") RegistraScript("comparar()", "compara") End Sub Private Sub GvMov_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvMov.RowEditing Actualizar = True GvMov.DataKeys(e.NewEditIndex).Value.ToString().ToEntero() Dim idMov As Integer = GvMov.DataKeys(e.NewEditIndex).Value.ToString().ToEntero() Dim DrM As DataRow = DtMovimientos.Rows(e.NewEditIndex) If DrM IsNot Nothing Then HdnCve.Value = idMov.ToString() DdlCtaContable.SelectedValue = DrM("IdCuenta") TxtReferencia.Text = DrM("Referencia") TxtObservaciones.Text = DrM("Concepto") ' (Math.Abs(TxtCargo.Text.ToDouble) > 0, 0, 1) = dr("TipoMovto") DrM("EsComodin") = 0 DdlConceptosContables.SelectedValue = DrM("CveConcepto").ToString() TxtCargo.Text = DrM("Cargo").ToString() TxtAbono.Text = DrM("Abono").ToString() TxtDescripcion.Text = DrM("Descripcion") DdlSubProyecto.SelectedValue = DrM("CveSubProyecto") DdlProveedores.SelectedValue = DrM("CveProveedor") DdlCompras.SelectedValue = DrM("CveCompra") DdlPersonal.SelectedValue = DrM("CvePersonal") ' DrM("CveClasificacion") = -1 DdlClientes.SelectedValue = DrM("CveCliente") DdlVentas.SelectedValue = DrM("CveVenta") LbCancelarEdicion.Visible = True LbAgregar.Text = "Actualizar" GvMov.Rows(e.NewEditIndex).FCTextBox("TxtCargo").CssClass = "" GvMov.Rows(e.NewEditIndex).FCTextBox("TxtAbono").CssClass = "" End If UPPDocumento.Update() DivAgregarConceptos.Visible = True 'If DtMovimientos Is Nothing Then CreaDT() 'Dim dr As DataRow = DtMovimientos.NewRow 'Dim CodigoCuenta As String = "" 'Dim NombreCuenta As String = "" 'dr("IdCuenta") = DdlCtaContable.SelectedValue 'If DdlCtaContable.SelectedValue.ToEntero() > 0 Then ' Dim drr As DataRow = DtCuentasContables.FiltroPrimero(String.Format("Id={0}", DdlCtaContable.SelectedValue)) ' If drr IsNot Nothing Then ' CodigoCuenta = drr("CuentaFormato").Tostring() ' NombreCuenta = drr("Nombre").Tostring() ' End If 'End If 'dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta 'dr("Cuenta") = DdlConceptosContables.SelectedItem 'dr("Referencia") = TxtReferencia.Text 'dr("Concepto") = TxtObservaciones.Text 'dr("TipoMovto") = If(Math.Abs(TxtCargo.Text.ToDouble) > 0, 0, 1) 'dr("EsComodin") = 0 'dr("CveConcepto") = DdlConceptosContables.SelectedValue 'dr("Cargo") = TxtCargo.Text.ToDouble 'dr("Abono") = TxtAbono.Text.ToDouble 'dr("Descripcion") = TxtDescripcion.Text 'dr("CveSubProyecto") = DdlSubProyecto.SelectedValue 'dr("CveProveedor") = DdlProveedores.SelectedValue.ToEntero() 'dr("CveCompra") = DdlCompras.SelectedValue.ToEntero() 'dr("CvePersonal") = DdlPersonal.SelectedValue.ToEntero() 'dr("CveClasificacion") = -1 'dr("CveCliente") = DdlClientes.SelectedValue.ToEntero() 'dr("CveVenta") = DdlVentas.SelectedValue.ToEntero() 'TxtTotalAbonos.Text = (TxtTotalAbonos.Text.ToDouble + TxtAbono.Text.ToDouble).Tostring().FormatoNumero 'TxtTotalCargos.Text = (TxtTotalCargos.Text.ToDouble + TxtCargo.Text.ToDouble).Tostring().FormatoNumero 'DtMovimientos.Rows.Add(dr) 'If CvePrePoliza > 0 Then ' GvPrePoliza.DataSource = DtMovimientos ' GvPrePoliza.DataBind() 'End If 'GvMov.DataSource = DtMovimientos 'GvMov.DataBind() 'UPMovs.Update() End Sub Private Sub LbCancelarEdicion_Click(sender As Object, e As EventArgs) Handles LbCancelarEdicion.Click LbCancelarEdicion.Visible = False TxtObservaciones.Text = "" Actualizar = False LbAgregar.Text = "Agregar" GvMov.DataSource = DtMovimientos GvMov.DataBind() UPMovs.Update() RegistraScript("calculateCargo();calculateAbono();comparar()") End Sub Private Sub BtnContabilizar_Click(sender As Object, e As EventArgs) Handles BtnContabilizar.Click Contabilizar() End Sub Private Sub Contabilizar() Dim ObjConta As New ClsContabilidad If IdPoliza > 0 Then 'si está bloqueada, lo desbloqueaprimero ObjConta.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) End If If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, pIDPoliza:=If(IdPoliza > 0, IdPoliza, -1), Concepto:=TxtConcepto.Text, Fecha:=TxtFechaDocumento.Text.ToDateTime()) Then Alert(String.Format("Prepóliza contabilizada.

Folio:Ver Póliza", ObjConta.ContaIdPoliza), ModExtensiones.TipoMensaje.MsgInformacion) Else Alert($"Ocurrio un error al contabilizar {ObjConta.AlertaMensaje}", TipoMensaje.MsgAdvertencia) End If ObjConta.Dispose() End Sub #Region "COMPLEMENTO DE PAGO" Private Sub GeneraTimbre(CvePrePoliza As Integer) Dim Str As New StringBuilder Dim Banco As New ClsBancos Banco.IniciaTransacSQL() If Banco.GeneraTimbrePago(-1, -1, UsuarioActual, CvePrePoliza:=CvePrePoliza) Then If Banco.Mensaje = "" Then Banco.Commit() PDFReciboDePagos(-1, -1, Banco.CveComplementoPago, False) Str.AppendFormat("Folio: {0}  ", Banco.ComplementoSerieFolio) Str.AppendFormat("XML    ", Encripta(String.Format("OP=CompP&EXT=xml&SerieFolio={0}&CveComplementoPago={1}", Banco.ComplementoSerieFolio, Banco.CveComplementoPago))) Str.AppendFormat("PDF   ", Encripta(String.Format("OP=CompP&EXT=pdf&SerieFolio={0}&CveComplementoPago={1}", Banco.ComplementoSerieFolio, Banco.CveComplementoPago))) MandaCorreo(Banco.ComplementoSerieFolio, Banco.CobranzaCorreo) End If Else Banco.RollBack() Str.AppendFormat("No se genero complemento por el siguiente motivo: {0}", Banco.Mensaje) End If Banco.Dispose() Alert(Str.ToString(), TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") End Sub Private Sub MandaCorreo(NombreArchivo As String, Correo As String, Optional ConAlerta As Boolean = True) Try Dim Msg As String = "" If NombreArchivo <> "-1" Then ' Dim ObjMail As New ClsSisMail() Dim RutaXML As String = String.Format("{0}\XML\Pag\{1}.xml", UsuarioActual.Empresa.Ruta, NombreArchivo) Dim RutaPDF As String = String.Format("{0}\PDF\Pag\{1}.pdf", UsuarioActual.Empresa.Ruta, NombreArchivo) Dim Cuerpo As String = "Se hace entrega del comprobante de pago" Dim Asunto As String = "Entrega de comprobante de pago" If IO.File.Exists(RutaPDF) AndAlso IO.File.Exists(RutaXML) Then Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = RutaPDF}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = RutaXML}) If ObjMail.SendMail(UsuarioActual.Empresa, Correo, Asunto, Cuerpo, "", LSRutasMail) Then If ConAlerta Then 'RegistraScript("$('#ModalDivMail').modal('hide');") Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) End If Else Msg = "No se pudo enviar el correo electrónico." End If Else Msg = "No se pudo adjuntar el correo electrónico." End If End If If ConAlerta AndAlso Msg <> "" Then Alert(Msg, TipoMensaje.MsgError) End If Catch ex As Exception OnError("Ocurrió error al mandar MAIL", ex) End Try End Sub Protected Sub LnkComplementoPago_Click(sender As Object, e As EventArgs) GeneraTimbre(CvePrePoliza) End Sub Protected Sub LnkImprimirPDF_Click(sender As Object, e As EventArgs) Dim filtro() As String = {"CveCompra", "CveIE", "CveConceptoContable"} Dim filtroComplemento() As String = {"CveIE"} Dim Pathpdf As New List(Of String) Dim pdfs = New List(Of Byte()) Dim Path As String Dim dt As DataTable = DtMovimientos.FiltraParametros("", "", filtro) Dim ObjCompra As New ClsCompras Dim ObjIE As New ClsBancos() Dim pathPoliza As String = "" Dim TieneComprobante As Boolean Try TieneComprobante = VerificarComprobante() If TieneComprobante Then Path = ImprimirPolizaPDF(IdPoliza) pathPoliza = Path If File.Exists(Path) Then Pathpdf.Add(Path) End If For Each Row As DataRow In dt.Rows If Row("CveConceptoContable").ToString().ToEntero() = 30 Then If Row("CveIE").ToString().ToEntero() > 0 Then If ObjIE.GetBancosIE(Row("CveIE").ToString().ToEntero(), UsuarioActual.CveEmpresa) Then If ObjIE.DtResultados.Rows.Count > 0 Then Path = String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, ObjIE.Comprobante.ToString()) If File.Exists(Path) Then Dim formato As String = System.IO.Path.GetExtension(Path) If formato.ToLower.Contiene(".jpg", ".png", ".jpeg") Then Dim ComprobantePDF As String = String.Format("{0}\{1}\comprobante.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick) Using crea_archivo = New iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 18, 18, 18, 18) PdfWriter.GetInstance(crea_archivo, New FileStream(ComprobantePDF, FileMode.Create)) crea_archivo.Open() Dim image As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(Path) If image.Height > image.Width Then Dim percentage As Double = 0.0F percentage = 700 / image.Height image.ScalePercent(percentage * 100) Else Dim percentage As Double = 0.0F percentage = 540 / image.Width image.ScalePercent(percentage * 100) End If crea_archivo.Add(image) End Using Pathpdf.Add(ComprobantePDF) Else Pathpdf.Add(Path) End If End If End If End If End If End If If Row("CveConceptoContable").ToString().ToEntero().Contiene(17, 309, 312, 308) Then If ObjCompra.GetCompras(Row("CveCompra").ToString().ToEntero(), "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then If ObjCompra.DtResultados IsNot Nothing AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then Dim dr As DataRow = ObjCompra.DtResultados.Rows(0) Dim RFC As String = dr("RFC").ToString() Dim CveFactura As String = dr("CveFactura").ToString() Path = String.Format("{0}Compras\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, RFC, CveFactura) If File.Exists(Path) Then Pathpdf.Add(Path) End If End If End If End If Next dt = DtMovimientos.FiltraParametros("", "", filtroComplemento) For Each Row As DataRow In dt.Rows If ObjCompra.GetCompraComplementoPago(-1, UsuarioActual.CveEmpresa, Row("CveIE").ToString().ToEntero()) Then Console.WriteLine(Row("CveIE").ToString()) If ObjCompra.DtResultados IsNot Nothing AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then Dim dr As DataRow = ObjCompra.DtResultados.Rows(0) Dim RFC As String = dr("RFCde").ToString() Dim CveFactura As String = dr("CveFactura").ToString() Console.WriteLine(RFC & CveFactura) If CveFactura <> "" Then Path = String.Format("{0}Compras\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, RFC, CveFactura) Console.WriteLine(Path) If File.Exists(Path) Then Pathpdf.Add(Path) End If End If End If End If Next MergePdfFiles(Pathpdf.ToArray) If File.Exists(pathPoliza) Then Directory.Delete(String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, Tick), True) End If Else Alert("No se tiene cargado comprobante de pago", TipoMensaje.MsgAdvertencia) End If Catch ex As Exception Alert("Error al descargar el paquete", TipoMensaje.MsgError) End Try ObjCompra.Dispose() ObjIE.Dispose() End Sub Private Function ImprimirPolizaPDF(IdPoliza As Integer) As String Dim ObjConta As New ClsContabilidad 'Dim ObjPoliza As New ClsContPAQi(UsuarioActual.Empresa) Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Polizas.rdlc", UsuarioActual.Empresa.Ruta)) Dim params As New List(Of ReportParameter) Dim Bytes As Byte() = Nothing 'If ObjPoliza.GetPoliza(IdPoliza, -1, -1, -1, -1) AndAlso ObjPoliza.DtResultados.Rows.Count > 0 Then If ObjConta.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Dim dtVC As DataTable Dim dr As DataRow dtVC = ObjConta.DtResultados dr = dtVC.Rows(0) Dim ruta As String = "" params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("TipoPoliza", dr("TipoPoliza").ToString())) params.Add(New ReportParameter("Finicio", dr("Fecha").ToString().ToDate().ToShortDateString)) params.Add(New ReportParameter("FFin", dr("Fecha").ToString().ToDate().ToShortDateString)) params.Add(New ReportParameter("Fecha", dr("Fecha").ToString().ToDate().ToShortDateString)) 'params.Add(New ReportParameter("Nombre", dr("Cuenta").Tostring())) 'params.Add(New ReportParameter("Cuenta", dr("Codigo").Tostring())) params.Add(New ReportParameter("Numero", dr("FolioPoliza").ToString())) params.Add(New ReportParameter("Moneda", "")) params.Add(New ReportParameter("CodigoPostal", "")) If UsuarioActual.CveEmpresa = 119 Then params.Add(New ReportParameter("UsuarioRegistro", GlobalDTUsuarios(dr("CveUsuario").ToString().ToEntero()).FiltroPrimeroValor("Nombre"))) End If If Archivo.Exists Then ruta = UsuarioActual.Empresa.Ruta & "Formatos/Polizas.rdlc" Else ruta = "Empresas/Grales/Formatos/Polizas.rdlc" End If Bytes = StreamPDF(ruta, dtVC, params, "ppoliza") If Not File.Exists(String.Format("{0}{1}\{2}.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick, IdPoliza.ToString())) Then DirectoryExistsCreate(String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, Tick)) File.WriteAllBytes(String.Format("{0}\{1}\{2}.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick, IdPoliza.ToString()), Bytes) End If End If Return String.Format("{0}\{1}\{2}.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick, IdPoliza.ToString()) ObjConta.Dispose() End Function Private Sub MergePdfFiles(ByVal pdfFiles() As String) Dim result As Boolean = False Dim pdfCount As Integer = 0 Dim f As Integer = 0 Dim fileName As String Dim reader As iTextSharp.text.pdf.PdfReader = Nothing Dim pageCount As Integer = 0 Dim pdfDoc As iTextSharp.text.Document = Nothing Dim writer As PdfWriter = Nothing Dim cb As PdfContentByte = Nothing Dim page As PdfImportedPage = Nothing Dim rotation As Integer = 0 Try pdfCount = pdfFiles.Length If pdfCount > 0 Then fileName = pdfFiles(f) reader = New iTextSharp.text.pdf.PdfReader(fileName) pageCount = reader.NumberOfPages pdfDoc = New iTextSharp.text.Document(reader.GetPageSizeWithRotation(1), 18, 18, 18, 18) writer = PdfWriter.GetInstance(pdfDoc, New FileStream(String.Format("{0}\{1}\{2}-{3}.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick, TipoPoliza, Folio), FileMode.Create)) With pdfDoc .Open() End With cb = writer.DirectContent While f < pdfCount Dim i As Integer = 0 While i < pageCount i += 1 pdfDoc.SetPageSize(reader.GetPageSizeWithRotation(i)) pdfDoc.NewPage() page = writer.GetImportedPage(reader, i) rotation = reader.GetPageRotation(i) If rotation = 90 Then cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height) ElseIf rotation = 270 Then cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, reader.GetPageSizeWithRotation(i).Width + 60, -30) Else cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0) End If End While f += 1 If f < pdfCount Then fileName = pdfFiles(f) reader = New iTextSharp.text.pdf.PdfReader(fileName) pageCount = reader.NumberOfPages End If End While pdfDoc.Close() Dim Archivo As New System.IO.FileInfo(String.Format("{0}\{1}\{2}-{3}.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick, TipoPoliza, Folio)) If Archivo.Exists Then HttpContext.Current.Response.Clear() HttpContext.Current.Response.ClearContent() HttpContext.Current.Response.ContentType = "application/octet-stream" HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name)) HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) HttpContext.Current.Response.TransmitFile(String.Format("{0}\{1}\{2}-{3}.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick, TipoPoliza, Folio)) Response.Flush() ' send it to the client to download HttpContext.Current.Response.SuppressContent = True HttpContext.Current.ApplicationInstance.CompleteRequest() Response.End() End If result = True End If Catch ex As Exception End Try End Sub #End Region Protected Sub DdlProveedores_SelectedIndexChanged1(sender As Object, e As EventArgs) Dim ddl As DropDownList = CType(sender, DropDownList) Dim ddl2 As DropDownList = DirectCast(ddl.BindingContainer, GridViewRow).FCDropDownList("DdlCompras") If DdlConceptosContables.SelectedValue.ToEntero().Contiene(18, 60) Then CargaNotasCreditoCompras(ddl.SelectedValue.ToEntero(), ddl2) Else CargaCompras2(ddl.SelectedValue.ToEntero(), ddl2) End If End Sub Private Sub CargaCompras2(CveProveedor As Integer, ddl As DropDownList) Dim ObjCompras As New ClsCompras ddl.ClearSelection() If ObjCompras.GetCompras(-1, "-1", "-1", CveProveedor, -1, UsuarioActual.CveEmpresa) Then ddl.DataSource = ObjCompras.DtResultados.FiltraParametros("Saldo > 0") ddl.DataBind() ddl.Items.Insert(0, New ListItem(" - ", "-1")) ddl.Visible = True Else ddl.DataSource = Nothing ddl.DataBind() ddl.Items.Insert(0, New ListItem(" - ", "-1")) End If ObjCompras.Dispose() End Sub Private Sub CargaGvBitacora() ' COMENTADO POR IPP PARA SUBIR 5 ABRIL 2017 Dim ObjGral As New ClsGenerales() If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePrePoliza:=CvePrePoliza) Then GvBitacora.DataSource = ObjGral.DtResultados GvBitacora.DataBind() End If ObjGral.Dispose() End Sub Private Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click RegistraScript(String.Format("$('#{0}').modal();", "DivCargaExcel")) End Sub Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click Dim NombreArchivo As String SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) Dim workbook As New ExcelFile() Dim worksheet = workbook.Worksheets.Add(DdlPlantilla2.SelectedItem.Text.ToString()) Dim CvePlantilla As Integer = DdlPlantilla2.SelectedValue.ToEntero() Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(CvePlantilla).FiltraParametros(String.Format("CveEmpresa={0}", UsuarioActual.CveEmpresa), "Orden") Dim DtExcel As DataTable = (From row As DataRow In Dt.Rows Select New With { .ConceptoAdministrativo = row.Item("ConceptoContable"), .Cuenta = "", .NombreCuenta = "", .Cargo = "", .Abono = "", .Referencia = "", .Concepto = "", .SubProyecto = row.Item("SubProyecto"), .CveConceptoContable = row.Item("CveConcepto"), .CveSubProyecto = IIf(row.Item("CveSubProyecto").ToString().ToEntero() > 0, row.Item("CveSubProyecto"), -1), .IdCtaContable = IIf(row.Item("IdCtaContable").ToString().ToEntero() > 0, row.Item("IdCtaContable"), -1) }).QueryToDataTable(True) worksheet.InsertDataTable(DtExcel, New InsertDataTableOptions() With { .ColumnHeaders = True, .StartRow = 0, .StartColumn = 0 }) Dim columnCount = worksheet.CalculateMaxUsedColumns() For i = 0 To columnCount worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1)) Next worksheet.Columns("I").Hidden = True worksheet.Columns("J").Hidden = True worksheet.Columns("K").Hidden = True NombreArchivo = DdlPlantilla2.SelectedItem.Text.ToString() workbook.Save(Response, $"{NombreArchivo}.xlsx", SaveOptions.XlsxDefault) End Sub Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click If TxtExcel.getfiles().Archivos.Count > 0 Then Dim file As Archivo = TxtExcel.getfiles().Archivos(0) Dim Directorio As String = Server.MapPath("~") & file.patch Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV") CargarArchivo(Directorio, file.filename, Tipo) Else Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError) End If End Sub Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String) Dim dt As New DataTable ' Conexion As Odbc.OdbcConnection = Nothing Dim ErrorArchivo = False Dim ErrorExcel = False dt = ReadExcelFile(Ruta + FileName, True) If Not ErrorArchivo Then If Not dt.Columns(0).ColumnName = "ConceptoAdministrativo" Then Alert("El nombre de la primera columna debe ser 'ConceptoAdmin'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(1).ColumnName = "Cuenta" Then Alert("El nombre de la segunda columna debe ser 'Cuenta'.Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(2).ColumnName = "NombreCuenta" Then Alert("El nombre de la tercera columna debe ser 'NombreCuenta'.Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(3).ColumnName = "Cargo" Then Alert("El nombre de la cuarta columna debe ser 'Cargo'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(4).ColumnName = "Abono" Then Alert("El nombre de la quinta columna debe ser 'Abono' .Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(5).ColumnName = "Referencia" Then Alert("El nombre de la sexta columna debe ser 'Referencia'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(6).ColumnName = "Concepto" Then Alert("El nombre de la séptima columna debe ser 'Concepto'.Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(7).ColumnName = "SubProyecto" Then Alert("El nombre de la octava columna debe ser 'SubProyecto'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If End If If Not ErrorArchivo Then Dim ObjConta As New ClsContabilidad() ObjConta.IniciaTransacSQL() Try Dim TieneError As Boolean = False Dim ContadorUpdate As Integer = 0 Dim ContadorError As Integer = 0 Dim NombreCuenta As String = "" Dim CvePrePoliza As Integer = 0 Dim Cuenta As String = "" Dim Reporte As New StringBuilder Dim TotalCargos As Integer = 0 Dim TotalAbonos As Integer = 0 CvePrePoliza = ObjConta.AddPrePolizas("Contabilidad/RegPrePolizaExcel", DdlPlantilla2.SelectedValue.ToEntero(), TotalCargos, TotalAbonos, 1, TxtFecha.Text.ToDate(), DdlPlantilla2.SelectedItem.Text.ToString(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=DdlTipoPolizaAdd.SelectedValue.ToEntero()) For Each Row As DataRow In dt.Rows NombreCuenta = Row("NombreCuenta").ToString() Cuenta = Row("Cuenta").ToString() Dim Importe As Decimal = If(Row("Cargo").ToString().ToDecimal() <> 0, Row("Cargo").ToString().ToDecimal(), Row("Abono").ToString().ToDecimal()) Dim Concepto As String = Row("Concepto").ToString() Dim Referencia As String = Row("Referencia").ToString() Dim IdCuenta As Integer = -1 Dim CveSubProyecto As Integer = Row("CveSubProyecto").ToString().ToEntero() Dim TipoMovto As Boolean = If(Row("Cargo").ToString().ToDecimal() <> 0, False, True) Dim YaExiste As Boolean = False Dim CveConceptoContable As Integer = Row("CveConceptoContable").ToString().ToEntero() Dim IdCtaContable As Integer = Row("IdCtaContable").ToString().ToEntero() If ObjConta.GetCuentas(-1, Cuenta.Replace("-", ""), 1, UsuarioActual.CveEmpresa) Then If ObjConta.DtResultados.Rows.Count > 0 Then IdCuenta = ObjConta.DtResultados().FiltroPrimeroValor("CveCuenta").ToEntero() 'TipoCuenta = ObjConta.DtResultados().FiltroPrimeroValor("Tipo") Else Reporte.AppendLine($"{Cuenta} - {NombreCuenta} - {Importe}
") TieneError = True YaExiste = True End If Else TieneError = True Exit For End If 'If TipoCuenta.Contiene("A", "C", "E") Then ' CargoAbono = False 'End If If YaExiste = False Then If IdCuenta > 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, "", CveConceptoContable, Concepto, Now.ToDate(), IdCtaContable, -1, ImporteMX:=Importe, CveSubProyecto:=CveSubProyecto, CveCuenta:=IdCuenta) Then TieneError = True Exit For End If Else IdCuenta = -2 End If End If Next If Not TieneError Then ObjConta.Commit() Alert(String.Format("

Prepóliza: {1}", CvePrePoliza, ObjConta.ContaFolio)) Alert($"Se agregó la póliza {ObjConta.ContaFolio}") Else Alert($"No encontraron las siguientes cuentas: {Reporte.ToString()} ", TipoMensaje.MsgError) ObjConta.RollBack() End If Catch ex As Exception ObjConta.RollBack() End Try ObjConta.Dispose() End If End Sub Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet) Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath) Dim unnamed As Integer = 0 Dim cols As Integer Dim columns As String() Dim curRow As Integer = 0 Dim curCol As Integer = 0 Dim dataTable As DataTable = New DataTable() Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0) For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1 If firstRowHasHeaders Then If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString().Trim) Else dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed))) End If curRow = 1 Else dataTable.Columns.Add("Column " & (cols + 1)) End If Next While curRow < worksheet.Rows.Count columns = New String(cols - 1) {} For curCol = 0 To cols - 1 If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then columns(curCol) = "" Else columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString() End If Next dataTable.Rows.Add(columns) curRow += 1 End While Return dataTable End Function Protected Sub BtnGuardarArchivo_Click(sender As Object, e As EventArgs) Handles BtnGuardarArchivo.Click Dim ObjIE As New ClsBancos Dim Comprobante As String = "" Dim Filesgral As List(Of Archivo) = TxtCargarArchivo.getfiles().Archivos If Filesgral.Count > 0 Then Dim fileItem As Archivo = Filesgral(0) Dim Path As String = HttpContext.Current.Request.ApplicationPath Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Path = Extensiones.DirectorioBaseEmpresas Path += String.Format("Empresas/{0}/IE", UsuarioActual.CveEmpresa) If Not Directory.Exists(Path) Then Directory.CreateDirectory(Path) End If Path += $"/{CveIE}.{Comprobante}" If File.Exists(Path) Then File.Delete(Path) End If My.Computer.FileSystem.MoveFile(fileItem.FileUrl, Path) End If TxtCargarArchivo.Text = "" RegistraScript("$('#ModalUpload').modal('hide')", "hidemodal1") If ObjIE.UpdateComprobanteIE(Comprobante.Replace("."c, ""), CveIE) Then Alert("El Comprobante se guardo exitosamente.", TipoMensaje.MsgInformacion) End If ObjIE.Dispose() End Sub Private Function VerificarComprobante() As Boolean Dim filtro() As String = {"CveCompra", "CveIE", "CveConceptoContable"} Dim Path As String Dim dt As DataTable = DtMovimientos.FiltraParametros("", "", filtro) Dim ObjIE As New ClsBancos() Dim TieneComprobante As Boolean = False For Each Row As DataRow In dt.FiltraParametros("CveConceptoContable = 30").Rows If ObjIE.GetBancosIE(Row("CveIE").ToString().ToEntero(), UsuarioActual.CveEmpresa) Then If ObjIE.DtResultados.Rows.Count > 0 Then Path = String.Format("{0}IE\{1}", UsuarioActual.Empresa.Ruta, ObjIE.Comprobante.ToString()) If File.Exists(Path) Then TieneComprobante = True Exit For Else TieneComprobante = False Exit For End If Else TieneComprobante = False Exit For End If End If Next ObjIE.Dispose() Return TieneComprobante End Function End Class