Files
SIG/Contabilidad/RegPrePoliza.aspx.vb

2406 lines
114 KiB
VB.net

Option Strict Off
Imports System.Data
Imports System.IO
Imports Extensiones
Imports GemBox.Spreadsheet
Imports iText.Kernel.Geom
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas
Imports iText.Layout
Imports iText.IO.Image
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 = NowADS().Ticks.ToString()
If UsuarioActual.Empresa.TipoContabilizacion = 1 OrElse UsuarioActual.Empresa.TipoContabilidad = 1 OrElse UsuarioActual.CveEmpresa = 119 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"))
.Add("FolioPoliza", Type.GetType("System.Int32"))
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 & "<br>" & 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").ToString
TxtFechaDocumento.Text = dr("Fecha").ToString.ToDate.ToShortDateString
TxtConcepto.Text = dr("Concepto").ToString
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
If dr("Modulo").ToString.Contiene("Banc/FluctuaA", "Banc/FluctuaC", "Banc/FluctuaV", "Banc/FluctuaFilial") Then
BtnEliminar.Enabled = False
BtnEliminar.ToolTip = "No se puede eliminar al prepóliza, eliminarlos desde el módulo"
End If
ObjContabilidad.GetContabilizacionDiarioDetalle(CvePrePoliza, UsuarioActual.CveEmpresa)
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 OrElse UsuarioActual.CveEmpresa.Contiene(13, 83) 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(UsuarioActual.CveEmpresa, CvePlantilla).FiltraParametros("", "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 & "<br>" & NombreCuenta
End If
EsComodin = 0
End If
If drt("CveCuenta").ToString().ToEntero() > 0 Then
NombreCuenta = String.Format("{0}<br>{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:<br><br>"
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").ToEntero
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.ToDate, 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.AddPrePolizasDetalle2(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(),
' 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("<br/><br/>Folio Bancario: <b><a href = ""/Bancos/IE.aspx?CveIE={0}"" class=""texto"" target=""_blank"" >{1}</a></b>", 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.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) 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("<br/><br/>Folio de Póliza: <b><a href = ""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"" class=""texto"" target=""_blank"" >{1}</a></b>", ObjMov.ContaIdPoliza, ObjMov.ContaFolio)
' MensajeAlert.AppendFormat("<br/><br/>Prepóliza: <b><a href = ""/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}"" class=""texto"" target=""_blank"" >{1}</a></b>", 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("<br/><br/>Folio Bancario: <b><a href = ""/Bancos/IE.aspx?CveIE={0}"" class=""texto"" target=""_blank"" >{1}</a></b>", 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("TxtAbono").Text.ToDecimal() <> 0, True, False)
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())
Dim ttSubProyecto As Integer = row.DataKey("CveSubProyecto").ToEntero()
If ttSubProyecto = 0 Then ttSubProyecto = -1
If row.DataKey("CvePrePolizaDetalle").ToEntero() > 0 Then
Dim actualizar As Boolean
actualizar = (Concepto <> row.DataKey("Concepto") OrElse CveSubProyecto <> ttSubProyecto 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()),
If(row.FCTextBox("TxtCargo").Text.ToDecimal() <> 0, row.FCTextBox("TxtCargo").Text.ToDecimal(), row.FCTextBox("TxtAbono").Text.ToDecimal()),
row.DataKey("CveConceptoContable").ToEntero(), row.DataKey("Referencia").ToString(),
row.FCTextBox("TxtConcepto").Text, CveSubProyecto:=row.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero(),
CveTipoGasto:=If(DdlTipoGasto.Visible, row.FCDropDownList("DdlTipoGasto").SelectedValue.ToEntero(), row.DataKey("CveTipoGasto").ToEntero()),
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.<br/>se actualizaron {contador} registros.", TipoMensaje.MsgInformacion)
Else
ObjContabilidad.RollBack()
Alert($"Ocurrio un error al actualizar la PrePoliza.<br/>{contador} registros.", TipoMensaje.MsgError)
End If
'RegistraScript($"console.log(""{diferencia}"")".Replace("'", "\'"))
End Using
CargaPrePoliza()
If Not OcurrioError Then
If IdPoliza > 0 AndAlso contador > 0 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 & "<br>" & 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 & "<br>" & 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").ToString
TxtReferencia.Text = DrM("Referencia").ToString
TxtObservaciones.Text = DrM("Concepto").ToString
' (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").ToString
DdlSubProyecto.SelectedValue = DrM("CveSubProyecto").ToString
DdlProveedores.SelectedValue = DrM("CveProveedor").ToString
DdlCompras.SelectedValue = DrM("CveCompra").ToString
DdlPersonal.SelectedValue = DrM("CvePersonal").ToString
' DrM("CveClasificacion") = -1
DdlClientes.SelectedValue = DrM("CveCliente").ToString
DdlVentas.SelectedValue = DrM("CveVenta").ToString
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 & "<br>" & 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. <br/><br/>Folio:<a Class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza</a>", 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: <b>{0}</b> &nbsp;", Banco.ComplementoSerieFolio)
Str.AppendFormat("<a class=""texto"" style='color:#337ab7' href=""/Compras/PopUpVerFactura.aspx?P={0}"" target=""_blank"">XML &nbsp;<i class=""fa fa-file""></i></i></a>&nbsp;&nbsp;", Encripta(String.Format("OP=CompP&EXT=xml&SerieFolio={0}&CveComplementoPago={1}", Banco.ComplementoSerieFolio, Banco.CveComplementoPago)))
Str.AppendFormat("<a class=""texto"" style='color:#337ab7' href=""/Compras/PopUpVerFactura.aspx?P={0}"" target=""_blank"">PDF &nbsp;<i class=""fa fa-ad-pdf""></i></i></i></a>&nbsp;", Encripta(String.Format("OP=CompP&EXT=pdf&SerieFolio={0}&CveComplementoPago={1}", 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 documento = New Document(New PdfDocument(New PdfWriter(New FileStream(ComprobantePDF, FileMode.Create))), PageSize.A4)
documento.SetMargins(18, 18, 18, 18)
Dim image = New Element.Image(ImageDataFactory.Create(Path))
'image.ScaleToFit(documento.GetPageEffectiveArea(PageSize.A4).GetWidth(), documento.GetPageEffectiveArea(PageSize.A4).GetHeight())
image.ScaleToFit(540, 700)
documento.Add(image)
documento.Close()
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 pdfFilesList() As String)
Dim f As Integer = 0
Dim pdfCount As Integer = pdfFilesList.Length
Try
If pdfCount > 0 Then
Dim currentFile = pdfFilesList(f)
Dim reader As New PdfReader(currentFile)
Dim srcDoc As New PdfDocument(reader)
Dim pageCount = srcDoc.GetNumberOfPages()
Dim writer As New PdfWriter(New FileStream(String.Format("{0}\{1}\{2}-{3}.pdf", AppDomain.CurrentDomain.BaseDirectory, Tick, TipoPoliza, Folio), FileMode.Create))
Dim mergedDoc As New PdfDocument(writer)
Dim document As New Document(mergedDoc, srcDoc.GetFirstPage.GetPageSizeWithRotation())
document.SetMargins(18, 18, 18, 18)
While f < pdfCount
Dim p As Integer = 0
While p < pageCount
p += 1
Dim srcPage = srcDoc.GetPage(p)
Dim srcPageSize = srcPage.GetPageSizeWithRotation()
mergedDoc.SetDefaultPageSize(srcPageSize)
Dim canvas As New PdfCanvas(mergedDoc.AddNewPage())
Dim srcPageXObj = srcPage.CopyAsFormXObject(mergedDoc)
Dim rotation = srcPage.GetRotation()
If rotation = 90 Then
canvas.AddXObjectWithTransformationMatrix(srcPageXObj, 0, -1.0F, 1.0F, 0, 0, srcPageSize.GetHeight())
ElseIf rotation = 270 Then
canvas.AddXObjectWithTransformationMatrix(srcPageXObj, 0, 1.0F, -1.0F, 0, srcPageSize.GetWidth() + 60, -30)
Else
canvas.AddXObjectWithTransformationMatrix(srcPageXObj, 1.0F, 0, 0, 1.0F, 0, 0)
End If
End While
f += 1
If f < pdfCount Then
currentFile = pdfFilesList(f)
reader = New PdfReader(currentFile)
srcDoc = New PdfDocument(reader)
pageCount = srcDoc.GetNumberOfPages()
End If
End While
srcDoc.Close()
document.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
Dim result As Boolean = 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.Substring(1, 30))
Dim CvePlantilla As Integer = DdlPlantilla2.SelectedValue.ToEntero()
Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(UsuarioActual.CveEmpresa, CvePlantilla).FiltraParametros("", "Orden")
Dim DtExcel As DataTable = (From row In Dt.AsEnumerable
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.path
Dim Tipo As String = If(file.Extension.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} </br>")
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, NowADS().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("<br/><br/>Prepóliza: <b><a href=""/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}"" class=""texto"" target=""_blank"" >{1}</a></b>", 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 = String.Format("{0}IE", UsuarioActual.Empresa.Ruta)
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