Option Strict On Imports Extensiones Imports System.Data Imports System.IO Partial Class Contabilidad_FisImpuestos Inherits ClsPaginas #Region "Propiedades" Public Property DtMovimientos As DataTable Get Return CType(ViewState("DtMovimientos"), DataTable) End Get Set(value As DataTable) ViewState("DtMovimientos") = value End Set End Property Private Property CveImpuesto As Integer Get If ViewState("CveImpuesto") Is Nothing Then Return -1 Else Return DirectCast(ViewState("CveImpuesto"), Integer) End If End Get Set(value As Integer) ViewState("CveImpuesto") = value End Set End Property Private Property RutaArchivo As String Get If ViewState("RutaArchivo") Is Nothing Then Return "-1" Else Return ViewState("RutaArchivo").ToString End If End Get Set(value As String) ViewState("RutaArchivo") = 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 #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 'Dim Dtplantilla As DataTable = GlobalDTContaPlantillasPolizasDetalle(62).FiltraParametros(String.Format("CveEmpresa={0}", UsuarioActual.CveEmpresa), "Orden") If Not Page.IsPostBack Then CargaCombos() Try If Not Request.QueryString("CveImpuesto") Is Nothing Then CveImpuesto = Request.QueryString("CveImpuesto").ToString.ToEntero ' CargaDatos() End If Catch ex As Exception End Try Dim DT As DataTable = Nothing If UsuarioActual.Empresa.UsaContabilidad Then Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa) If ObjConta.GetCuentas(-1, "-1", 1) Then DT = ObjConta.DtResultados DTCuentasContables = ObjConta.DtResultados End If ObjConta.Dispose() End If DirectCast(Master.FindControl("TSM"), ScriptManager).EnablePageMethods = True 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.Double")) .Add("Abono", Type.GetType("System.Double")) .Add("Importe", Type.GetType("System.Double")) .Add("TipoMovto", Type.GetType("System.Int32")) .Add("EsComodin", Type.GetType("System.Int32")) .Add("CveConcepto", Type.GetType("System.Int32")) .Add("CveProveedor", Type.GetType("System.Int32")) .Add("RazonSocial", Type.GetType("System.String")) .Add("SubProyecto", Type.GetType("System.String")) .Add("CveSubProyecto", Type.GetType("System.Int32")) End With Try If Not Request.QueryString("CveImpuesto") Is Nothing Then CveImpuesto = Request.QueryString("CveImpuesto").ToString.ToEntero End If Catch ex As Exception End Try If CveImpuesto > 0 Then CargaDatos() Else CargaDetallesPlantilla() End If GvMov.DataBind() UPMovs.Update() End If End Sub Private Sub CargaCombos() Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa) Dim ObjContabilidad As New ClsContabilidad If ObjConta.GetMonedas() Then DdlMoneda.DataSource = ObjConta.DtResultados End If If ObjContabilidad.GetFisImpuestosTipos(1) Then DdlTipoImpuesto.DataSource = ObjContabilidad.DtResultados End If ObjConta.Dispose() DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlMoneda.DataBind() DdlTipoImpuesto.DataBind() DdlProveedores.DataBind() DdlMoneda.Items.Insert(0, New ListItem("Seleccione una moneda", "-1")) DdlTipoImpuesto.Items.Insert(0, New ListItem("Seleccione una opción", "-1")) DdlProveedores.Items.Insert(0, New ListItem("Seleccione un proveedor", "-1")) End Sub Private Sub CargaDatos() Dim objConta As New ClsContabilidad Dim DtTemp As New DataTable Dim _CvePrePoliza As Integer = 0 Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(62).FiltraParametros(String.Format("CveEmpresa={0}", UsuarioActual.CveEmpresa), "Orden") Dim DtTempDetalle As New DataTable With DtTempDetalle.Columns .Add("IdMov", Type.GetType("System.Int32")) .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.Double")) .Add("Abono", Type.GetType("System.Double")) .Add("TipoMovto", Type.GetType("System.Int32")) .Add("EsComodin", Type.GetType("System.Int32")) .Add("Importe", Type.GetType("System.Double")) .Add("CveConcepto", Type.GetType("System.Int32")) .Add("CveProveedor", Type.GetType("System.Int32")) .Add("RazonSocial", Type.GetType("System.String")) .Add("SubProyecto", Type.GetType("System.String")) .Add("CveSubProyecto", Type.GetType("System.Int32")) End With If objConta.GetFisImpuestos(CveImpuesto, -1, -1, "-1", UsuarioActual.Empresa.CveEmpresa, Nothing, Nothing) Then DtTemp = objConta.DtResultados If DtTemp.Rows.Count > 0 Then TxtFolio.Text = DtTemp(0)("Folio").ToString DdlProveedores.SelectedValueExist(DtTemp(0)("CveProveedor").ToString) DdlMoneda.SelectedValueExist(DtTemp(0)("CveMoneda").ToString) DdlTipoImpuesto.SelectedValueExist("CveTipoImpuesto") TxtConcepto.Text = DtTemp(0)("Concepto").ToString TxtFechaImpuesto.Text = DtTemp(0)("Fecha").ToString.ToDate.ToString("dd/MM/yyyy") _CvePrePoliza = DtTemp(0)("CvePrepoliza").ToString.ToEntero BtnGuardar.Visible = False UPImpuesto.Update() If objConta.GetFisImpuestosDetalle(CveImpuesto, -1, -1, "-1", UsuarioActual.Empresa.CveEmpresa, Nothing, Nothing) Then For Each DRD As DataRow In objConta.DtResultados.Rows Dim dr As DataRow = DtTempDetalle.NewRow dr("IdCuenta") = DRD("IdCtaContable").ToString.ToEntero dr("CodigoCuenta") = "" dr("Cuenta") = DRD("ConceptoContable").ToString dr("RazonSocial") = "" dr("Concepto") = "" dr("TipoMovto") = If(DRD("TipoMovto").ToString = "False", 0, 1) dr("EsComodin") = 1 dr("Importe") = DRD("Importe").ToString.ToDouble dr("CveConcepto") = 0 dr("CveProveedor") = DRD("CveProveedor").ToString.ToEntero dr("SubProyecto") = DRD("SubProyecto") dr("CveSubProyecto") = DRD("CveSubProyecto").ToString.ToEntero DtTempDetalle.Rows.Add(dr) Next GvMov.DataSource = DtTempDetalle GvMov.DataBind() UPMovs.Update() End If Else Alert("No se encontron registros del impuesto solicitado.", TipoMensaje.MsgAdvertencia) End If objConta.Dispose() Else objConta.Dispose() End If End Sub Private Sub CargaDetallesPlantilla() Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(62).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() End If EsComodin = 0 End If Dim dr As DataRow = DtMovimientos.NewRow dr("IdCuenta") = IdCuenta dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta dr("Cuenta") = Cuenta dr("RazonSocial") = drt("RazonSocial") dr("Concepto") = TxtConcepto.Text dr("TipoMovto") = If(drt("TipoMovto").ToString = "False", 0, 1) dr("EsComodin") = EsComodin dr("CveConcepto") = drt("CveConcepto") dr("CveProveedor") = drt("CveProveedor") dr("SubProyecto") = drt("SubProyecto") dr("CveSubProyecto") = drt("CveSubProyecto") DtMovimientos.Rows.Add(dr) Next GvMov.DataSource = DtMovimientos GvMov.DataBind() UPMovs.Update() End Sub Private Function SubirComprobante(CveImpuesto As Integer) As Boolean Dim Respuesta As Boolean = False Dim RutaDirectorio As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, "Comprobantes\") Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos Dim filemove As String = "" Dim Comprobante As String = "" If filesgral.Count > 0 Then For Each fileItem As Archivo In filesgral Comprobante = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") filemove = fileItem.FileUrl RutaArchivo = String.Format("{0}{1}", RutaDirectorio, CveImpuesto) RutaArchivo = String.Format("{0}.{1}", RutaArchivo, fileItem.Extencion) Try If Not Directory.Exists(RutaDirectorio) Then Directory.CreateDirectory(RutaDirectorio) End If If File.Exists(RutaArchivo) Then File.Delete(RutaArchivo) End If File.Move(filemove, RutaArchivo) Respuesta = True Catch ex As Exception OnError("Error al intentar guardar archivo ", ex) Respuesta = False RutaArchivo = "-1" End Try Anexo.Text = "" Next Else Respuesta = True End If UpAnexo.Update() Return Respuesta End Function Protected Sub GvMov_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvMov.RowDataBound Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(62).FiltraParametros(String.Format("CveEmpresa={0}", UsuarioActual.CveEmpresa), "Orden") If e.Row.RowType = DataControlRowType.DataRow Then e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(0).ToolTip = e.Row.DBCampo("IdCuenta") If e.Row.DBCampo("TipoMovto") = "1" Then e.Row.FCTextBox("TxtAbono").Visible = True Else e.Row.FCTextBox("TxtCargo").Visible = True 'cuando se modifica el importe de la cuenta bancaria que se actualice el importe del documento If e.Row.DBCampo("EsComodin") = "1" Then If e.Row.DBCampo("TipoMovto") = "1" Then e.Row.FCTextBox("TxtAbono").Attributes.Add("onkeyup", "FncImporte('TxtImporte',this.id,2)") If e.Row.DataKey("Importe").ToString.ToDouble > 0 Then e.Row.FCTextBox("TxtAbono").Text = e.Row.DataKey("Importe").ToString.ToDouble.ToString("###,###,###.00") e.Row.FCTextBox("TxtAbono").Enabled = False TxtTotalAbonos.Enabled = False End If 'e.Row.FCTextBox("TxtAbono").Text = TxtImporte.Text Else e.Row.FCTextBox("TxtCargo").Attributes.Add("onkeyup", "FncImporte('TxtImporte',this.id,2)") If e.Row.DataKey("Importe").ToString.ToDouble > 0 Then e.Row.FCTextBox("TxtCargo").Text = e.Row.DataKey("Importe").ToString.ToDouble.ToString("###,###,###.00") e.Row.FCTextBox("TxtCargo").Enabled = False TxtTotalCargos.Enabled = False End If 'e.Row.FCTextBox("TxtCargo").Text = TxtImporte.Text End If End If End If End Sub Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click Dim objConta As New ClsContabilidad Dim ErrorProceso As Boolean = True Dim InfoArchivo As FileInfo Dim CvePrepoliza As Integer = 0 Dim NombreArchivo As String = "-1" Dim CargoTotal As Double = 0 Dim AbonoTotal As Double = 0 For Each gvRow As GridViewRow In GvMov.Rows Dim Cargo As Double = gvRow.FCTextBox("txtcargo").Text.ToDouble Dim Abono As Double = gvRow.FCTextBox("txtabono").Text.ToDouble CargoTotal = CargoTotal + Cargo AbonoTotal = AbonoTotal + Abono Next If CargoTotal = AbonoTotal And CargoTotal > 0 Then objConta.IniciaTransacSQL() CvePrepoliza = objConta.AddPrePolizas("Contabilidad/Impuestos", 62, 0, 0, DdlMoneda.SelectedValue.ToEntero, Now, TxtConcepto.Text.Trim.ToUpper, UsuarioActual.CveUsuario, UsuarioActual.Empresa.CveEmpresa) If CvePrepoliza > 0 Then If objConta.AddUpdateFisImpuestos(-1, DdlTipoImpuesto.SelectedValue.ToEntero, CvePrepoliza, DdlProveedores.SelectedValue.ToEntero, TxtFechaImpuesto.Text.ToDate, TxtFolio.Text.Trim.ToUpper, NombreArchivo, UsuarioActual.CveUsuario, UsuarioActual.Empresa.CveEmpresa) Then ErrorProceso = False CveImpuesto = objConta.DtResultados(0)("CveImpuesto").ToString.ToEntero ' If objConta.AddUpdateFisImpuestos(CveImpuesto, DdlTipoImpuesto.SelectedValue.ToEntero, -1, DdlProveedores.SelectedValue.ToEntero, TxtFechaImpuesto.Text.ToDate, TxtFolio.Text.Trim.ToUpper, "-1", UsuarioActual.CveUsuario, UsuarioActual.Empresa.CveEmpresa) Then ErrorProceso = False Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos If filesgral.Count > 0 Then If SubirComprobante(CveImpuesto) Then InfoArchivo = New FileInfo(RutaArchivo) If InfoArchivo.Exists Then NombreArchivo = System.IO.Path.GetFileName(RutaArchivo) objConta.AddUpdateFisImpuestos(CveImpuesto, DdlTipoImpuesto.SelectedValue.ToEntero, CvePrepoliza, DdlProveedores.SelectedValue.ToEntero, TxtFechaImpuesto.Text.ToDate, TxtFolio.Text.Trim.ToUpper, NombreArchivo, UsuarioActual.CveUsuario, UsuarioActual.Empresa.CveEmpresa) ErrorProceso = False Else ErrorProceso = True OnError("", New Exception("No existe el archivo")) End If Else ErrorProceso = True End If End If If Not ErrorProceso Then Dim ContadorOrdern As Integer = 0 For Each gvRow As GridViewRow In GvMov.Rows 'insercion de detalle *********************************************************************************************** Dim Importe As Decimal = 0 Dim TipoMovto As Boolean = False Dim Cargo As Double = gvRow.FCTextBox("txtcargo").Text.ToDouble Dim Abono As Double = gvRow.FCTextBox("txtabono").Text.ToDouble Dim Concepto As String = TxtConcepto.Text.ToUpper.Trim Dim CveConcepto As Integer = gvRow.DataKey("CveConcepto").ToEntero Dim IdCtaContable As Integer = gvRow.DataKey("IDCuenta").ToEntero Dim CveSubProtyecto As Integer = If(gvRow.DataKey("CveSubProyecto").ToEntero = 0, -1, gvRow.DataKey("CveSubProyecto").ToEntero) Dim CveProveedor As Integer = gvRow.DataKey("CveProveedor").ToEntero Dim TipoMovimientoString As String = gvRow.DataKey("TipoMovto") If gvRow.DataKey("TipoMovto").ToDouble = 0 Then Importe = gvRow.FCTextBox("txtcargo").Text.ToDecimal TipoMovto = True Else Importe = gvRow.FCTextBox("txtabono").Text.ToDecimal TipoMovto = False End If If Importe > 0 Then If objConta.AddPrePolizasDetalle(CvePrepoliza, TipoMovto, Importe, TxtFolio.Text.Trim.ToUpper, CveConcepto, Concepto, Now, IdCtaContable, -1, CveProveedor:=CveProveedor, CveSubProyecto:=CveSubProtyecto) Then ContadorOrdern = ContadorOrdern + 1 ErrorProceso = False Else ErrorProceso = True Exit For End If End If Next End If If Not ErrorProceso Then Alert($"Prepoliza { CvePrepoliza } Insertada correctamente, Impuesto { CveImpuesto } insertado y actualizado correctamente") End If Else ErrorProceso = True End If Else ErrorProceso = True End If If Not ErrorProceso Then objConta.Commit() Response.Redirect($"FisImpuestos.aspx?CveImpuesto={CveImpuesto}", True) Else objConta.RollBack() End If Else If CargoTotal = 0 Then Alert("El cargo total debe ser mayor a 0") End If If CargoTotal <> AbonoTotal Then Alert("El cargo total y el abono total deben ser iguales.") End If End If objConta.Dispose() End Sub Private Function IdCuentaBancos(CveCuenta As Integer) As Integer Dim Retorno As Integer = 0 'saco de la póliza el importe del cheque, que coincida la cuenta contable con la bancaria If CveCuenta > 0 Then Dim drr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta=" & CveCuenta) If drr IsNot Nothing Then Retorno = drr("IdCtaContable").ToString.ToEntero End If End If Return Retorno End Function Private Sub ResetControles() DdlMoneda.SelectedIndex = 0 DdlTipoImpuesto.SelectedIndex = 0 DdlProveedores.SelectedIndex = 0 TxtFechaImpuesto.Text = "" TxtConcepto.Text = "" TxtFolio.Text = "" UPImpuesto.Update() CargaDetallesPlantilla() End Sub End Class