Files
SIG/Contabilidad/RegPrePoliza.aspx.vb
JORGE LUIS CAUDILLO ESPARZA 2b1cf3ccae
2021-05-19 10:42:08 -07:00

2375 lines
110 KiB
VB.net

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
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"))
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")
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 & "<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 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")
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(CveCuenta, CveTipoTransaccion, TxtFecha.Text, Folio, Beneficiario, ImporteDocumento, CveMoneda, 0, Observaciones, "", 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
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("<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("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.<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 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
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
CveConcepto = 30
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 & "<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 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) 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} </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, 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("<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 = 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