diff --git a/AF/AF.aspx.vb b/AF/AF.aspx.vb index 690738748..2dcae1e8e 100644 --- a/AF/AF.aspx.vb +++ b/AF/AF.aspx.vb @@ -2135,12 +2135,12 @@ Partial Class AF_AF 'PREPOLIZA DE IMPORTACION DESDE ALMACEN If AFInvCvePS > 0 AndAlso AFInvCveAlmacen > 0 Then Dim IDCtaContableInv = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={AFInvCveAlmacen}").ToEntero - Dim CveCuentaInv = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen={AFInvCveAlmacen}").ToEntero + 'Dim CveCuentaInv = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen={AFInvCveAlmacen}").ToEntero If Not ErrorGuardar Then Dim CvePrePoliza As Integer = ObjContabilidad.AddPrePolizas("AF/ImportadoInv", 4, TxtValorCompra.Text.ToDouble, TxtValorCompra.Text.ToDouble, 1, Now, $"AF importado de Almacén {TxtCodigo.Text.Trim}", UsuarioActual.CveUsuario, CveEmpresaActual) If ObjContabilidad.AddPrePolizasDetalle(CvePrePoliza, False, TxtValorCompra.Text.ToDecimal, $"{TxtCodigo.Text.Trim} - {TxtDescripcion.Text.Trim}", 49, $"{TxtCodigo.Text.Trim} - {TxtDescripcion.Text.Trim}", Now, DdlCtaContable.SelectedValue.Trim.ToEntero, -1, CveActivoFijo:=CveActivoFijo, ImporteMX:=TxtValorCompra.Text.ToDecimal, CveCuenta:=If(UsuarioActual.Empresa.UsaContabilidad AndAlso UsuarioActual.Empresa.UsaContabilidadSIG, ObtenerCuentaDobleConta(DdlCtaContable.SelectedValue.Trim.ToEntero, UsuarioActual.CveEmpresa), -1)) Then If Not ErrorGuardar Then - If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePoliza, True, TxtValorCompra.Text.ToDecimal, TxtCodigo.Text.Trim, 68, TxtCodigo.Text.Trim, Now, IDCtaContableInv, -1, CveMovimientoAlmacen:=CveMovimientoSalidaInv, ImporteMX:=TxtValorCompra.Text.ToDecimal, CveCuenta:=CveCuentaInv) Then + If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePoliza, True, TxtValorCompra.Text.ToDecimal, TxtCodigo.Text.Trim, 68, TxtCodigo.Text.Trim, Now, IDCtaContableInv, -1, CveMovimientoAlmacen:=CveMovimientoSalidaInv, ImporteMX:=TxtValorCompra.Text.ToDecimal) Then ErrorGuardar = True End If End If diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 41a2511cb..eacb04c20 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -417,8 +417,8 @@ Public Class ClsBancos Me.FFinal = Data.Rows(0)("FFinal").ToString.ToEntero Me.IdCtaContable = Data.Rows(0)("IdCtaContable").ToString.ToEntero Me.IdCtaContableComplementaria = Data.Rows(0)("IdCtaContableComplementaria").ToString.ToEntero - Me.CveCuentaConta = Data.Rows(0)("IdCtaContableSIG").ToString.ToEntero - Me.CveCuentaContaComplementaria = Data.Rows(0)("IdCtaContableComplementariaSIG").ToString.ToEntero + Me.CveCuentaConta = Data.Rows(0)("CveCuentaContable").ToString.ToEntero + Me.CveCuentaContaComplementaria = Data.Rows(0)("CveCuentaComplementaria").ToString.ToEntero Me.FormatoCheque = Data.Rows(0)("FormatoCheque").ToString Me.Estatus = Data.Rows(0)("Estatus").ToString Me.Fecha = Data.Rows(0)("Fecha").ToString.ToDate diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index a32033f8e..bf0da4b34 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -2183,13 +2183,14 @@ Public Class ClsCompras #Region " ESTATUS ALMACEN " - Public Function UpdateEstatusAlmacen(CveCompra As Integer, ValorEstatus As Integer) As Boolean + Public Function UpdateEstatusAlmacen(CveCompra As Integer, ValorEstatus As Integer, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Comp_ComprasEstatusAlmacenUpdate") With SqlAdapter.SelectCommand.Parameters .Add("@CveCompra", SqlDbType.Int).Value = CveCompra .Add("@Estatus", SqlDbType.Int).Value = ValorEstatus + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario End With Try @@ -2201,13 +2202,14 @@ Public Class ClsCompras Return Retorno End Function - Public Function UpdateEstatusAlmacenDetalle(CveCompraDetalle As Integer, ValorEstatus As Integer) As Boolean + Public Function UpdateEstatusAlmacenDetalle(CveCompraDetalle As Integer, ValorEstatus As Integer, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Comp_ComprasDetalleEstatusAlmacenUpdate") With SqlAdapter.SelectCommand.Parameters .Add("@CveCompraDetalle", SqlDbType.Int).Value = CveCompraDetalle .Add("@Estatus", SqlDbType.Int).Value = ValorEstatus + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario End With Try diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 4085f9b24..a3e36c05a 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -62,7 +62,7 @@ Public Class ClsContabilidad Public Property CveEmpresa As Integer Public Property CveTipoPlantillaPoliza As Integer - Public Property ContaIdPoliza As Integer + Public Property ContaIdPoliza As Integer = 0 Public Property ContaFolio As Integer Public Property ValorPolizaDescuadre As Integer @@ -153,22 +153,22 @@ Public Class ClsContabilidad - Public Function CuentasContablesSigGet(cveEmpresa As Int32) As Boolean - Dim retorno As Boolean = False - DataAdapter("PA_Conta_CuentasContablesSigGet", CommandType.StoredProcedure) - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa - End With - Try - SqlAdapter.Fill(Data) - retorno = True - Catch ex1 As SqlException - OnError("Ocurrió un error al obtener las Cuentas Contables", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - Catch ex As Exception - OnError("Ocurrió un error al obtener las Cuentas Contables", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - Return retorno - End Function + 'Public Function CuentasContablesSigGet(cveEmpresa As Int32) As Boolean + ' Dim retorno As Boolean = False + ' DataAdapter("PA_Conta_CuentasContablesSigGet", CommandType.StoredProcedure) + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + ' End With + ' Try + ' SqlAdapter.Fill(Data) + ' retorno = True + ' Catch ex1 As SqlException + ' OnError("Ocurrió un error al obtener las Cuentas Contables", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' Catch ex As Exception + ' OnError("Ocurrió un error al obtener las Cuentas Contables", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' End Try + ' Return retorno + 'End Function #Region " C O N T A B I L I D A D - P R E P O L I Z A" Public Function ObtenerTipoPoliza(Valor1 As String, Valor2 As String, CveEmpresa As Integer) As Integer @@ -1118,8 +1118,9 @@ Public Class ClsContabilidad Public Function ContabilizarPrePoliza(CvePrePoliza As Integer, CveUsuario As Integer, Empresa As Empresa, Optional Fecha As Date = MinFecha, Optional Concepto As String = "", Optional ObjConta As ClsContPAQi = Nothing, Optional pIDPoliza As Integer = -1) As Boolean - + Dim StrLog As New StringBuilder Dim Retorno As Boolean = False + StrLog.AppendFormat("CvePrep:{0} - Inicio", CvePrePoliza) If Empresa.TipoContabilizacion = 1 Then ' contabilidad en SIG @@ -1396,6 +1397,8 @@ Public Class ClsContabilidad If Not ContaCompartida Then ObjConta.Dispose() End If + StrLog.AppendFormat(" - Fin") + StrLog.ToString.GuardaLogAD("LogContabilidazacion") Return Retorno End Function @@ -4645,25 +4648,25 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function GetSaldoCuenta(IdCuenta As Integer, TipoMovto As Integer, Ejercicio As Integer) As Boolean - Dim Retorno As Boolean + 'Public Function GetSaldoCuenta(IdCuenta As Integer, TipoMovto As Integer, Ejercicio As Integer) As Boolean + ' Dim Retorno As Boolean - If TipoMovto = 0 Then - DataAdapter(String.Format("SELECT SUM(CASE WHEN TipoMovto = 1 THEN -1 ELSE 1 END * Importe) AS Saldo from Conta_PolizasDetalle CD inner join Conta_Polizas CP on CP.CvePoliza=CD.CvePoliza and year(CP.Fecha)={1} WHERE CveCuenta = {0}", IdCuenta, Ejercicio), CommandType.Text) - Else - DataAdapter(String.Format("SELECT SUM(CASE WHEN TipoMovto = 0 THEN -1 ELSE 1 END * Importe) AS Saldo from Conta_PolizasDetalle CD inner join Conta_Polizas CP on CP.CvePoliza=CD.CvePoliza and year(CP.Fecha)={1} WHERE CveCuenta = {0} ", IdCuenta, Ejercicio), CommandType.Text) - End If + ' If TipoMovto = 0 Then + ' DataAdapter(String.Format("SELECT SUM(CASE WHEN TipoMovto = 1 THEN -1 ELSE 1 END * Importe) AS Saldo from Conta_PolizasDetalle CD inner join Conta_Polizas CP on CP.CvePoliza=CD.CvePoliza and year(CP.Fecha)={1} WHERE CveCuenta = {0}", IdCuenta, Ejercicio), CommandType.Text) + ' Else + ' DataAdapter(String.Format("SELECT SUM(CASE WHEN TipoMovto = 0 THEN -1 ELSE 1 END * Importe) AS Saldo from Conta_PolizasDetalle CD inner join Conta_Polizas CP on CP.CvePoliza=CD.CvePoliza and year(CP.Fecha)={1} WHERE CveCuenta = {0} ", IdCuenta, Ejercicio), CommandType.Text) + ' End If - Try - SqlAdapter.Fill(Data) - 'Retorno = Math.Round(SqlCommand.ExecuteScalar.ToString.ToDouble, 2) - Retorno = True - Catch ex As Exception - Me.OnError("Ocurrió un error al obtener eL saldo de la cuenta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try + ' Try + ' SqlAdapter.Fill(Data) + ' 'Retorno = Math.Round(SqlCommand.ExecuteScalar.ToString.ToDouble, 2) + ' Retorno = True + ' Catch ex As Exception + ' Me.OnError("Ocurrió un error al obtener eL saldo de la cuenta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try - Return Retorno - End Function + ' Return Retorno + 'End Function Public Function GetRepPresupuestosEgresosSaldos(Ejercicio As Integer, Fecha As Date, Capitulo As String, CveClasificacion As Integer, CveFuenteFinanciamiento As Integer, CveProgramaOperativo As Integer, CveUnidadAdministrativa As Integer, CveTipoGasto As Integer, Gpo As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_PresupuestosEgresosSaldosRep") @@ -4742,138 +4745,138 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function Conta_ContabilizaPrePoliza(CvePrepoliza As Integer, Ejercicio As Integer) As Boolean - Dim Retorno = False + 'Public Function Conta_ContabilizaPrePoliza(CvePrepoliza As Integer, Ejercicio As Integer) As Boolean + ' Dim Retorno = False - DataAdapter("PA_Conta_ContabilizaPrepolizas") + ' DataAdapter("PA_Conta_ContabilizaPrepolizas") - With SqlAdapter.SelectCommand.Parameters - .Add("@CvePrepoliza", SqlDbType.Int).Value = CvePrepoliza - .Add("@Ejercicio", SqlDbType.Int).Value = Ejercicio - .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output - End With + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CvePrepoliza", SqlDbType.Int).Value = CvePrepoliza + ' .Add("@Ejercicio", SqlDbType.Int).Value = Ejercicio + ' .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output + ' End With - Try - SqlAdapter.Fill(Data) - If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero = 0 Then - Retorno = True - Else - Retorno = False - End If - Catch ex As Exception - Me.OnError("Ocurrió un error al contabilizar la prepoliza", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try + ' Try + ' SqlAdapter.Fill(Data) + ' If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero = 0 Then + ' Retorno = True + ' Else + ' Retorno = False + ' End If + ' Catch ex As Exception + ' Me.OnError("Ocurrió un error al contabilizar la prepoliza", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try - Return Retorno - End Function - Public Function Conta_CompactaPrePoliza(CvePrepoliza As Integer) As Boolean - Dim Retorno = False + ' Return Retorno + 'End Function + 'Public Function Conta_CompactaPrePoliza(CvePrepoliza As Integer) As Boolean + ' Dim Retorno = False - DataAdapter("PA_Comp_CompactaPrepoliza") + ' DataAdapter("PA_Comp_CompactaPrepoliza") - With SqlAdapter.SelectCommand.Parameters - .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrepoliza - .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output - End With + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CvePrePoliza", SqlDbType.Int).Value = CvePrepoliza + ' .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output + ' End With - Try - SqlAdapter.Fill(Data) - If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero = 0 Then - Retorno = True - Else - Retorno = False - End If - Catch ex As Exception - Me.OnError("Ocurrió un error al contabilizar la prepoliza", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try + ' Try + ' SqlAdapter.Fill(Data) + ' If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero = 0 Then + ' Retorno = True + ' Else + ' Retorno = False + ' End If + ' Catch ex As Exception + ' Me.OnError("Ocurrió un error al contabilizar la prepoliza", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try - Return Retorno - End Function - Public Function Conta_GeneraPptarias(CveCompra As Integer) As Boolean - Dim Retorno = False + ' Return Retorno + 'End Function + 'Public Function Conta_GeneraPptarias(CveCompra As Integer) As Boolean + ' Dim Retorno = False - DataAdapter("PA_Conta_GeneraPptarias") + ' DataAdapter("PA_Conta_GeneraPptarias") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveCompra", SqlDbType.Int).Value = CveCompra - .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output - End With + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveCompra", SqlDbType.Int).Value = CveCompra + ' .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output + ' End With - Try - SqlAdapter.Fill(Data) - If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero = 0 Then - Retorno = True - Else - Retorno = False - End If - Catch ex As Exception - Me.OnError("Ocurrió un error al Generar las Cuentas Presupuestarias", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try + ' Try + ' SqlAdapter.Fill(Data) + ' If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero = 0 Then + ' Retorno = True + ' Else + ' Retorno = False + ' End If + ' Catch ex As Exception + ' Me.OnError("Ocurrió un error al Generar las Cuentas Presupuestarias", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try - Return Retorno - End Function + ' Return Retorno + 'End Function - Public Function AddConta_Poliza(CveTipoPoliza As Integer, CveEjercicio As Integer, Folio As Integer, FechaPoliza As Date, Concepto As String, CveUsuario As Integer, CveEmpresa As Integer) As Integer - Dim Retorno As Integer = 0 + 'Public Function AddConta_Poliza(CveTipoPoliza As Integer, CveEjercicio As Integer, Folio As Integer, FechaPoliza As Date, Concepto As String, CveUsuario As Integer, CveEmpresa As Integer) As Integer + ' Dim Retorno As Integer = 0 - DataAdapter("PA_Add_Conta_Polizas") + ' DataAdapter("PA_Add_Conta_Polizas") - With SqlAdapter.SelectCommand.Parameters - .Add("@Folio", SqlDbType.Int).Value = Folio - ' .Add("@CveTipoPoliza", SqlDbType.Int).Value = CveTipoPoliza - .Add("@Ejercicio", SqlDbType.Int).Value = CveEjercicio - .Add("@Concepto", SqlDbType.VarChar).Value = Concepto - .Add("@FechaPoliza", SqlDbType.DateTime).Value = FechaPoliza - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@CvePoliza", SqlDbType.Int).Direction = ParameterDirection.Output - End With - Try - SqlAdapter.Fill(Data) - Retorno = SqlAdapter.SelectCommand.Parameters("@CvePoliza").Value.ToString.ToEntero - Catch ex As Exception - OnError("Ocurrió un error al agregar la poliza", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@Folio", SqlDbType.Int).Value = Folio + ' ' .Add("@CveTipoPoliza", SqlDbType.Int).Value = CveTipoPoliza + ' .Add("@Ejercicio", SqlDbType.Int).Value = CveEjercicio + ' .Add("@Concepto", SqlDbType.VarChar).Value = Concepto + ' .Add("@FechaPoliza", SqlDbType.DateTime).Value = FechaPoliza + ' .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + ' .Add("@CvePoliza", SqlDbType.Int).Direction = ParameterDirection.Output + ' End With + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = SqlAdapter.SelectCommand.Parameters("@CvePoliza").Value.ToString.ToEntero + ' Catch ex As Exception + ' OnError("Ocurrió un error al agregar la poliza", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try - Return Retorno - End Function - Public Function AddConta_PolizaDetalle(CvePoliza As Integer, CveCuenta As Integer, TipoMovto As Boolean, Importe As Double, Referencia As String, - Concepto As String, FechaMovto As Date, CveUsuario As Integer, Optional ImporteMonedaExtranjera As Double = 0) As Boolean - Dim Retorno As Boolean = False + ' Return Retorno + 'End Function + 'Public Function AddConta_PolizaDetalle(CvePoliza As Integer, CveCuenta As Integer, TipoMovto As Boolean, Importe As Double, Referencia As String, + ' Concepto As String, FechaMovto As Date, CveUsuario As Integer, Optional ImporteMonedaExtranjera As Double = 0) As Boolean + ' Dim Retorno As Boolean = False - If CvePoliza <= 0 Or CveCuenta <= 0 Then - Return False - End If + ' If CvePoliza <= 0 Or CveCuenta <= 0 Then + ' Return False + ' End If - DataAdapter("PA_Add_Conta_PolizasDetalles") - 'DataAdapter("PA_Conta_PolizasDetalleAdd") + ' DataAdapter("PA_Add_Conta_PolizasDetalles") + ' 'DataAdapter("PA_Conta_PolizasDetalleAdd") - With SqlAdapter.SelectCommand.Parameters - .Add("@CvePoliza", SqlDbType.Int).Value = CvePoliza - .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta - .Add("@TipoMovto", SqlDbType.Int).Value = TipoMovto - .Add("@Total", SqlDbType.Money).Value = Math.Round(Importe, 2) - .Add("@ImporteME", SqlDbType.Money).Value = ImporteMonedaExtranjera - .Add("@Referencia", SqlDbType.VarChar).Value = Referencia - .Add("@Concepto", SqlDbType.VarChar).Value = Concepto - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output - End With + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CvePoliza", SqlDbType.Int).Value = CvePoliza + ' .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta + ' .Add("@TipoMovto", SqlDbType.Int).Value = TipoMovto + ' .Add("@Total", SqlDbType.Money).Value = Math.Round(Importe, 2) + ' .Add("@ImporteME", SqlDbType.Money).Value = ImporteMonedaExtranjera + ' .Add("@Referencia", SqlDbType.VarChar).Value = Referencia + ' .Add("@Concepto", SqlDbType.VarChar).Value = Concepto + ' .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + ' .Add("@Error", SqlDbType.Int).Direction = ParameterDirection.Output + ' End With - Try - SqlAdapter.Fill(Data) - If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero <> 0 Then - Retorno = False - Else - Retorno = True - End If - Catch ex As Exception - OnError("Ocurrió un error al agregar el movimiento en la póliza.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try + ' Try + ' SqlAdapter.Fill(Data) + ' If SqlAdapter.SelectCommand.Parameters("@Error").Value.ToString.ToEntero <> 0 Then + ' Retorno = False + ' Else + ' Retorno = True + ' End If + ' Catch ex As Exception + ' OnError("Ocurrió un error al agregar el movimiento en la póliza.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + ' End Try - Return Retorno - End Function + ' Return Retorno + 'End Function Public Function GetSaldoCuentaAC(TipoMovto As Integer, CveCuentaAprobado As Integer, CveCuentaDevengado As Integer, Ejercicio As Integer) As Decimal Dim Retorno As Decimal DataAdapter("PA_Conta_CalculaSaldo") @@ -4895,51 +4898,51 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function GetSegmentosNegocio(Id As Integer, Codigo As String) As Boolean - Dim Retorno As Boolean = False - Dim StrSQl = New StringBuilder + 'Public Function GetSegmentosNegocio(Id As Integer, Codigo As String) As Boolean + ' Dim Retorno As Boolean = False + ' Dim StrSQl = New StringBuilder - StrSQl.Clear() - StrSQl.Append(" SELECT Id, RTRIM (LTRIM (Codigo)) AS Codigo, Nombre, '' AS CveProyecto, '' AS CveSubProyecto ") - StrSQl.Append(" FROM SegmentosNegocio ") - StrSQl.Append(" WHERE (@Id = -1 OR Id = @Id) ") - StrSQl.Append(" AND (@Codigo = '-1' OR Codigo = @Codigo) ") + ' StrSQl.Clear() + ' StrSQl.Append(" SELECT Id, RTRIM (LTRIM (Codigo)) AS Codigo, Nombre, '' AS CveProyecto, '' AS CveSubProyecto ") + ' StrSQl.Append(" FROM SegmentosNegocio ") + ' StrSQl.Append(" WHERE (@Id = -1 OR Id = @Id) ") + ' StrSQl.Append(" AND (@Codigo = '-1' OR Codigo = @Codigo) ") - DataAdapter(StrSQl.ToString, CommandType.Text) - SqlAdapter.SelectCommand.Parameters.Add("@Id", SqlDbType.Int).Value = Id - SqlAdapter.SelectCommand.Parameters.Add("@Codigo", SqlDbType.VarChar).Value = Codigo + ' DataAdapter(StrSQl.ToString, CommandType.Text) + ' SqlAdapter.SelectCommand.Parameters.Add("@Id", SqlDbType.Int).Value = Id + ' SqlAdapter.SelectCommand.Parameters.Add("@Codigo", SqlDbType.VarChar).Value = Codigo - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al consultar los Segmentos de Negocio.", ex) - End Try + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch ex As Exception + ' OnError("Ocurrió un error al consultar los Segmentos de Negocio.", ex) + ' End Try - Return Retorno - End Function + ' Return Retorno + 'End Function - Public Function GetSubProyectos(CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - Dim StrSQl = New StringBuilder + 'Public Function GetSubProyectos(CveEmpresa As Integer) As Boolean + ' Dim Retorno As Boolean = False + ' Dim StrSQl = New StringBuilder - DataAdapter("PA_Comp_Compras_Pptarias") + ' DataAdapter("PA_Comp_Compras_Pptarias") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + ' End With - SqlAdapter.Fill(Data) - Retorno = True - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al consultar los Segmentos de Negocio.", ex) - End Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch ex As Exception + ' OnError("Ocurrió un error al consultar los Segmentos de Negocio.", ex) + ' End Try - Return Retorno - End Function + ' Return Retorno + 'End Function Public Function GetNumeroPoliza(CveTipoPoliza As Integer, Tipo As String, Fecha As DateTime, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False @@ -4962,29 +4965,29 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function Compras_Pptarias(CveCompra As Integer, Importe As Decimal, CveConceptoContable As Integer) As Boolean + 'Public Function Compras_Pptarias(CveCompra As Integer, Importe As Decimal, CveConceptoContable As Integer) As Boolean - Dim Retorno As Boolean = False + ' Dim Retorno As Boolean = False - DataAdapter("PA_Comp_Compras_Pptarias") + ' DataAdapter("PA_Comp_Compras_Pptarias") - With SqlAdapter.SelectCommand.Parameters - .Add("@CveCompra", SqlDbType.Int).Value = CveCompra - .Add("@Importe", SqlDbType.Decimal).Value = Importe - .Add("@CveConceptoContable", SqlDbType.Int).Value = CveConceptoContable - End With + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveCompra", SqlDbType.Int).Value = CveCompra + ' .Add("@Importe", SqlDbType.Decimal).Value = Importe + ' .Add("@CveConceptoContable", SqlDbType.Int).Value = CveConceptoContable + ' End With - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex1 As SqlException - OnError("Ocurrió un error al obtener las Plantillas", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - Catch ex As Exception - OnError("Ocurrió un error al obtener las Plantillas", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch ex1 As SqlException + ' OnError("Ocurrió un error al obtener las Plantillas", ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' Catch ex As Exception + ' OnError("Ocurrió un error al obtener las Plantillas", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' End Try - Return Retorno - End Function + ' Return Retorno + 'End Function #End Region #Region "FIS IMPUESTOS" @@ -5878,7 +5881,7 @@ Public Class ClsContabilidad End Function Public Function GetPrePolizasImpresion(CveEmpresa As Integer, FechaI As String, FechaF As String, Optional CveTipoPoliza As Integer = -1, Optional FolioI As Integer = -1, - Optional FolioF As Integer = -1, Optional CveUsuario As Integer = -1, Optional IdSegNegocio As Integer = -1, + Optional FolioF As Integer = -1, Optional CveUsuario As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional CveCuenta As Integer = -1, Optional CvePlantillaPoliza As Integer = -1, Optional CveProveedor As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -5892,7 +5895,7 @@ Public Class ClsContabilidad .Add("@FolioI", SqlDbType.Int).Value = FolioI .Add("@FolioF", SqlDbType.Int).Value = FolioF .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@IdSegNegocio", SqlDbType.Int).Value = IdSegNegocio + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta .Add("@CvePlantillaPoliza", SqlDbType.Int).Value = CvePlantillaPoliza .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 4f57d07db..de4c0e719 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1516,7 +1516,7 @@ Public Class ClsInventarios Return Retorno End Function - Public Function GetKardex(Entrada As Boolean, Salida As Boolean, CvePS As Integer, FechaI As String, FechaF As String, CveAlmacen As Integer, CveTiposAlmacen As String, CveUnidadMedida As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional AgruparAlmacen As Boolean = False, Optional Serie As String = "-1") As Boolean + Public Function GetKardex(Entrada As Boolean, Salida As Boolean, CvePS As Integer, FechaI As String, FechaF As String, CveAlmacen As Integer, CveTiposAlmacen As String, CveUnidadMedida As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional AgruparAlmacen As Boolean = False, Optional Serie As String = "-1", Optional CveAlmacenes As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_KardexGet") @@ -1534,6 +1534,8 @@ Public Class ClsInventarios .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@AgruparAlmacen", SqlDbType.Bit).Value = AgruparAlmacen .Add("@Serie", SqlDbType.VarChar).Value = Serie + .Add("@CveAlmacenes", SqlDbType.VarChar).Value = CveAlmacenes + End With Try @@ -1551,16 +1553,17 @@ Public Class ClsInventarios End Function - Public Function GetExistenciasProductoSerie(CvePS As Integer, CveAlmacen As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Public Function GetExistenciasProductoSerie(CvePS As Integer, CveAlmacen As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional CveAlmacenes As String = "-1") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_ExistenciaPSSeriesGet") With SqlAdapter.SelectCommand.Parameters .Add("@CvePS", SqlDbType.Int).Value = CvePS - .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen + .Add("@CveAlmacen", SqlDbType.VarChar).Value = CveAlmacen .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveAlmacenes", SqlDbType.VarChar).Value = CveAlmacenes End With Try diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index e3b1f758d..513bb17b4 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -2032,6 +2032,107 @@ Public Class ClsNominas End Try Return retorno End Function + +#Region "CRUD_Acumulados" + Public Function GetAcumuladosTipos() As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_TipoAcumuladosGet", CommandType.StoredProcedure) + Try + SqlAdapter.Fill(Data) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + Public Function GetAcumulados(cveAcumulado As Int32, cveEmpresa As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_AcumuladosGet", CommandType.StoredProcedure) + Try + With SqlAdapter.SelectCommand.Parameters + .Add("@CveAcumulado", SqlDbType.Int).Value = cveAcumulado + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + End With + + SqlAdapter.Fill(Data) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + Public Function AcumuladosAdd(cveTipoAcumulado As Int32, acumulado As String, cveEmpresa As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_AcumuladosAdd", CommandType.StoredProcedure) + Try + With SqlAdapter.SelectCommand.Parameters + .Add("@CveTipoAcumulado", SqlDbType.Int).Value = cveTipoAcumulado + .Add("@Acumulado", SqlDbType.VarChar).Value = acumulado + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + End With + + SqlAdapter.Fill(Data) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + Public Function AcumuladosUp(cveAcumulado As Int32, cveTipoAcumulado As Int32, acumulado As String, cveEmpresa As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_AcumuladosUp", CommandType.StoredProcedure) + Try + With SqlAdapter.SelectCommand.Parameters + .Add("@CveAcumulado", SqlDbType.Int).Value = cveAcumulado + .Add("@CveTipoAcumulado", SqlDbType.VarChar).Value = cveTipoAcumulado + .Add("@Acumulado", SqlDbType.Int).Value = acumulado + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + End With + + SqlAdapter.Fill(Data) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + Public Function AcumuladosRemove(cveAcumulado As Int32, cveEmpresa As Int32) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_Nom_AcumuladosRemove", CommandType.StoredProcedure) + Try + With SqlAdapter.SelectCommand.Parameters + .Add("@CveAcumulado", SqlDbType.Int).Value = cveAcumulado + .Add("@CveEmpresa", SqlDbType.Int).Value = cveEmpresa + End With + + SqlAdapter.Fill(Data) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener los acumulados.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function +#End Region #Region "MovtosPermanentes" Public Function GetMovtoPermanente(CveEmpresa As Int32, CvePersonal As Integer) As Boolean diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index a3d763c62..9d546b7b5 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3723,6 +3723,7 @@ Public Class ClsPaginas If Application("GlobalSIGAppPaginas") Is Nothing Then PaginaDict = New System.Collections.Hashtable + PaginaDict.Add("/Nomina/Acumulados.aspx".ToUpper(), -1) PaginaDict.Add("/Inicio.aspx".ToUpper(), -1) PaginaDict.Add("/reporteador.aspx".ToUpper(), -1) PaginaDict.Add("/General/CATIEPSxEntidadFed.aspx".ToUpper(), 719) diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index bf13b3e27..1163cef22 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -1740,7 +1740,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Calle As String, NumExt As String, NumInt As String, Colonia As String, CP As String, Ciudad As String, CveEstado As Integer, Telefono As String, Celular As String, RFC As String, CURP As String, NombrePadre As String, NombreMadre As String, CveSATBanco As Integer, CveSATRiesgoPuesto As Integer, CveSATRegimenContratacion As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, URL As String, CveSupervisor As Integer, CLABE As String, BancoNumCuenta As String, CveJornada As Integer, IdCtaContPersonal As Integer, CtaContPersonal As String, IdCtaContPrestamos As Integer, CtaContPrestamos As String, CveUsuario As Integer, CveEmpresa As Integer, CveUsuarioNomina As Integer, Optional CveSubProyectoZona As Integer = Nothing, Optional CveUniforme As Integer = -1, - Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1") As Boolean + Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveTipodeSalario As Integer = 1) As Boolean Dim Retorno As Boolean = False @@ -1820,8 +1820,8 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo .Add("@CelularPersonal", SqlDbType.VarChar).Value = CelularPersonal .Add("@TelefonoMarcadoRapido", SqlDbType.VarChar).Value = TelefonoMarcadoRapido .Add("@ContactoAlterno", SqlDbType.VarChar).Value = ContactoAlterno - - + .Add("@CveTipodeSalario", SqlDbType.Int).Value = CveTipodeSalario + .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue End With @@ -1853,7 +1853,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo NombrePadre As String, NombreMadre As String, CveSATBanco As Integer, CveSATRiesgoPuesto As Integer, CveSATRegimenContratacion As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, CvePersonal As Integer, URL As String, CveSupervisor As Integer, CLABE As String, BancoNumCuenta As String, CveJornada As Integer, IdCtaContPersonal As Integer, CtaContPersonal As String, IdCtaContPrestamos As Integer, CtaContPrestamos As String, CveEmpresa As Integer, CveUsuarioNomina As Integer, Optional CveSubProyectoZona As Integer = Nothing, Optional CveUniforme As Integer = -1, Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveUsuarioModifico As Integer = -1, - Optional FechaActivo As Date = MinFecha, Optional FechaReingreso As Date = MinFecha) As Boolean + Optional FechaActivo As Date = MinFecha, Optional FechaReingreso As Date = MinFecha, Optional CveTipodeSalario As Integer = 1) As Boolean Dim Retorno As Boolean = False @@ -1937,7 +1937,8 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico .Add("@FechaActivo", SqlDbType.Date).Value = FechaActivo .Add("@FechaReingreso", SqlDbType.Date).Value = FechaReingreso - + .Add("@CveTipodeSalario", SqlDbType.Int).Value = CveTipodeSalario + End With Try diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 6df233d4e..deb17d739 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -4631,7 +4631,7 @@ Namespace Modelos Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"}) Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero - Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero + 'Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero Dim IdCtaContable As Integer = 0 Dim CveCuenta As Integer = 0 If tmpCostos.Rows.Count > 0 Then @@ -4668,7 +4668,7 @@ Namespace Modelos cont += 1 Next - If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, -1 * TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * TotalCosto, CveCuenta:=CveCuentaAlmacen) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, -1 * TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * TotalCosto) Then ErrorCancelar = True End If diff --git a/Bancos/CuentasBancariasDetalle.aspx.vb b/Bancos/CuentasBancariasDetalle.aspx.vb index 2b4c1f02f..656a2aa10 100644 --- a/Bancos/CuentasBancariasDetalle.aspx.vb +++ b/Bancos/CuentasBancariasDetalle.aspx.vb @@ -41,9 +41,8 @@ Partial Class Bancos_CuentasBancariasDetalle ViewState("CveCuenta") = Request("CveCuenta") - If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then - trCuentaContable.Visible = True - trCuentaContableComplementaria.Visible = True + If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then + CargaCuentasContables() End If @@ -60,9 +59,8 @@ Partial Class Bancos_CuentasBancariasDetalle ViewState("CveCuenta") = -1 BtnEliminar.Visible = False CreaDTUsuarios() - If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then - trCuentaContable.Visible = True - trCuentaContableComplementaria.Visible = True + If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then + CargaCuentasContables() End If 'LbAgregarSucursal.Enabled = False @@ -98,37 +96,69 @@ Partial Class Bancos_CuentasBancariasDetalle DdlMoneda.DataSource = GlobalDTMonedas DdlMoneda.DataBind() End Sub - Private Sub CargaCuentasContables() - Dim IdPadre As Integer - Dim Conta As New ClsContPAQi(UsuarioActual.Empresa) - - If DdlTipoCuenta.SelectedValue.ToEntero = 1 Then 'Caja Chica - IdPadre = UsuarioActual.Empresa.Funcionalidad(218).ToEntero - Else - Dim tesstr = UsuarioActual.Empresa.Funcionalidad(209) - IdPadre = UsuarioActual.Empresa.Funcionalidad(209).ToEntero - End If - - If IdPadre = 0 Then IdPadre = -1 + Private Sub CargaCuentasContables() Dim dt As DataTable = Nothing - If Conta.GetCuentasRecursiva(IdPadre, 1) Then - dt = Conta.DtResultados - End If - Conta.Dispose() - DDlCuentaContable.DataSource = dt - DDlCuentaContable.DataBind() - DDlCuentaContable.Items.Insert(0, New ListItem("-", "-1")) - DdlCuentaContableComplementaria.DataSource = dt - DdlCuentaContableComplementaria.DataBind() - DdlCuentaContableComplementaria.Items.Insert(0, New ListItem("-", "-1")) - If dt IsNot Nothing Then dt.Dispose() - End Sub + If UsuarioActual.Empresa.TipoContabilizacion = 1 Then + Using ObjContabilidad As New ClsContabilidad + 'UsuarioActual.Empresa.Funcionalidad(208).ToEntero + If ObjContabilidad.GetCuentas(-1, "-1", 1, UsuarioActual.CveEmpresa) Then + DDlCuentaContable.DataSource = ObjContabilidad.DtResultados + DDlCuentaContable.DataBind() + DDlCuentaContable.Items.Insert(0, New ListItem("Selecione", "-1")) + DDlCuentaContable.DataTextField = "Cuenta" + DDlCuentaContable.DataValueField = "CveCuenta" + End If + End Using + + DDlCuentaContable.DataSource = dt + DDlCuentaContable.DataBind() + DDlCuentaContable.Items.Insert(0, New ListItem("-", "-1")) + DdlCuentaContableComplementaria.DataSource = dt + DdlCuentaContableComplementaria.DataBind() + DdlCuentaContableComplementaria.Items.Insert(0, New ListItem("-", "-1")) + If dt IsNot Nothing Then dt.Dispose() + trCuentaContable.Visible = True + trCuentaContableComplementaria.Visible = True + + Else + If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then + Dim IdPadre As Integer + Dim Conta As New ClsContPAQi(UsuarioActual.Empresa) + + If DdlTipoCuenta.SelectedValue.ToEntero = 1 Then 'Caja Chica + IdPadre = UsuarioActual.Empresa.Funcionalidad(218).ToEntero + Else + Dim tesstr = UsuarioActual.Empresa.Funcionalidad(209) + IdPadre = UsuarioActual.Empresa.Funcionalidad(209).ToEntero + End If + + If IdPadre = 0 Then IdPadre = -1 + + If Conta.GetCuentasRecursiva(IdPadre, 1) Then + dt = Conta.DtResultados + End If + + Conta.Dispose() + DDlCuentaContable.DataSource = dt + DDlCuentaContable.DataBind() + DDlCuentaContable.Items.Insert(0, New ListItem("-", "-1")) + DdlCuentaContableComplementaria.DataSource = dt + DdlCuentaContableComplementaria.DataBind() + DdlCuentaContableComplementaria.Items.Insert(0, New ListItem("-", "-1")) + If dt IsNot Nothing Then dt.Dispose() + trCuentaContable.Visible = True + trCuentaContableComplementaria.Visible = True + End If + End If + + + End Sub #End Region - + #End Region - - + + #Region " CARGA DATOS " Private Sub CargaDatos() Dim ObjCuentasBancariasDetalle As New ClsBancos() @@ -164,8 +194,14 @@ Partial Class Bancos_CuentasBancariasDetalle DdlTipoCuenta.SelectedValue = ObjCuentasBancariasDetalle.CveTipoCuenta.ToString DdlTipoCuenta_SelectedIndexChanged(DdlTipoCuenta, EventArgs.Empty) - DDlCuentaContable.SelectedValueExist(ObjCuentasBancariasDetalle.IdCtaContable.ToString) - DdlCuentaContableComplementaria.SelectedValueExist(ObjCuentasBancariasDetalle.IdCtaContableComplementaria.ToString) + If UsuarioActual.Empresa.TipoContabilizacion = 1 Then + DDlCuentaContable.SelectedValueExist(ObjCuentasBancariasDetalle.CveCuentaConta.ToString) + DdlCuentaContableComplementaria.SelectedValueExist(ObjCuentasBancariasDetalle.CveCuentaContaComplementaria.ToString) + Else + DDlCuentaContable.SelectedValueExist(ObjCuentasBancariasDetalle.IdCtaContable.ToString) + DdlCuentaContableComplementaria.SelectedValueExist(ObjCuentasBancariasDetalle.IdCtaContableComplementaria.ToString) + End If + Else Alert("El Banco Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False diff --git a/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index fec2b767e..3ed466c16 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -26,13 +26,13 @@ Partial Class Bancos_DepositosCaja End Sub Private Sub CargaCuentas() - DdlCuentaDeposito.DataSource = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveTipoCuenta <> 1", "", {"CveCuenta", "NumCuentaMoneda"}) + DdlCuentaDeposito.DataSource = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta <> 1", "", {"CveCuenta", "NumCuentaMoneda"}) DdlCuentaDeposito.DataBind() - DdlCajaChica.DataSource = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveTipoCuenta = 1", "", {"CveCuenta", "NumCuentaMoneda"}) + DdlCajaChica.DataSource = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta = 1", "", {"CveCuenta", "NumCuentaMoneda"}) DdlCajaChica.DataBind() - DdlSubProyectos.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveEmpresa, -1, UsuarioActual.CveEmpresa) + DdlSubProyectos.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa) DdlSubProyectos.DataBind() DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1")) End Sub @@ -86,8 +86,8 @@ Partial Class Bancos_DepositosCaja Dim IdCuentaBancariaDestino As Integer = 0 Dim CveCuentaBancariaOrigen As Integer = 0 Dim CveCuentaBancariaDestino As Integer = 0 - Dim drOrigen As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero($"CveCuenta = {DdlCajaChica.SelectedValue}") - Dim drDestino As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero($"CveCuenta = {DdlCuentaDeposito.SelectedValue}") + Dim drOrigen As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCajaChica.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("") + Dim drDestino As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCuentaDeposito.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("") If drOrigen IsNot Nothing Then CveMoneda = drOrigen("CveMoneda").ToString.ToEntero diff --git a/Bancos/Devoluciones.aspx.cs b/Bancos/Devoluciones.aspx.cs index 991e48ded..65a91d93d 100644 --- a/Bancos/Devoluciones.aspx.cs +++ b/Bancos/Devoluciones.aspx.cs @@ -339,6 +339,7 @@ public partial class Bancos_Devoluciones : ClsPaginas int cvePersonal = (DdlPersonal.SelectedValue.ToEntero() > 0) ? DdlPersonal.SelectedValue.ToEntero() : -1; int cveCliente = (DdlCliente.SelectedValue.ToEntero() > 0) ? DdlCliente.SelectedValue.ToEntero() : -1; bool TipoMovoDevolucion = false; + double TC = 1; StringBuilder Msg = new StringBuilder(); switch (OpcionDevolucion.SelectedValue) @@ -369,6 +370,11 @@ public partial class Bancos_Devoluciones : ClsPaginas break; } + if (CveMoneda != 1) + { + TC = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate()); + } + // DATOS PREPOLIZA if ( DdlTipoTransanccion.SelectedValue == "1" && UsuarioActual.CveEmpresa != 119) FolioFijo = TxtFolio.Text.ToEntero(); CvePrePoliza = ObjMov.AddPrePolizas("Bancos/IE Devoluciones", CvePlantillaPoliza, TxtImporte.Text.Trim().ToDouble(), TxtImporte.Text.Trim().ToDouble(), CveMoneda, TxtFechaDocumento.Text.ToDate(), TxtObservaciones.Text.Trim(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo: FolioFijo, ReglaFolioPoliza: ObjComp.ObtenerReglaFolio(DdlTipoTransanccion.SelectedValue, null, UsuarioActual.CveEmpresa), CveTipoPoliza: ObjMov.ObtenerTipoPoliza(DdlTipoTransanccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)); @@ -379,7 +385,7 @@ public partial class Bancos_Devoluciones : ClsPaginas string Ref = TxtObservaciones.Text == "" ? TxtFolio.Text : TxtObservaciones.Text; CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero(), DdlTipoTransanccion.SelectedValue.ToEntero(), TxtFechaDocumento.Text.Trim().ToDate(), TxtFolio.Text.Trim(), PagueseA, TxtImporte.Text.Trim().ToDouble(), CveMoneda, - 1, TxtObservaciones.Text.Trim(), "", false, false, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa); + TC, TxtObservaciones.Text.Trim(), "", false, false, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa); if (CveIE > 0) { //GUARDA PREPOLIZAS DETALLE DEVOLUCION diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 663b0e342..716f86cfc 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -3671,27 +3671,7 @@ Partial Class Bancos_IE End If End Select - - 'El movimiento 1 es el de Venta - - 'Conta ContPAQ - If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso MsgError = "" Then - If IDCtaBeneficiario > 0 And IDCtaContable > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then - IDPoliza = ObjMov.ContaIdPoliza - 'Alert(alertaContabilizacion & ObjMov.AlertaMensaje, ModExtensiones.TipoMensaje.MsgInformacion) - Else - Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) - End If - Else - If IDCtaContable < 1 Then - Alert("No se puede contabilizar la Prepoliza debido a que la cuenta de Bancos es invalida", TipoMensaje.MsgAdvertencia) - End If - If IDCtaBeneficiario < 1 Then - Alert("No se puede contabilizar la Prepoliza debido a que las cuenta del Beneficiario es invalida", TipoMensaje.MsgAdvertencia) - End If - End If - End If + If UsuarioActual.Empresa.UsaAC Then Dim ConceptoRenglon, Referencia As String @@ -3783,6 +3763,29 @@ Partial Class Bancos_IE Else MsgError = "No se pudo validar la prepoliza de cuadre." End If + End If + + + 'El movimiento 1 es el de Venta + + 'Conta ContPAQ + If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso MsgError = "" Then + If IDCtaBeneficiario > 0 And IDCtaContable > 0 Then + If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then + IDPoliza = ObjMov.ContaIdPoliza + 'Alert(alertaContabilizacion & ObjMov.AlertaMensaje, ModExtensiones.TipoMensaje.MsgInformacion) + Else + Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) + MsgError = "Error al contabilizar." + End If + Else + If IDCtaContable < 1 Then + Alert("No se puede contabilizar la Prepoliza debido a que la cuenta de Bancos es invalida", TipoMensaje.MsgAdvertencia) + End If + If IDCtaBeneficiario < 1 Then + Alert("No se puede contabilizar la Prepoliza debido a que las cuenta del Beneficiario es invalida", TipoMensaje.MsgAdvertencia) + End If + End If End If If MsgError = "" Then diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 5f3084c38..092f884ab 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -1521,7 +1521,7 @@ + DataKeyNames="CantidadF,FolioREQ,CveProveedorSucursal,CveTipoPS,PS,CantidadPendienteVincular,IEPSPS,IVA,RetIVA,RetISR,Descuento,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,IEPSPSIVAPorcentaje,Cantidad,CveProveedorOC,Importe"> @@ -1762,7 +1762,7 @@
- + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 341e1a52a..6109d4080 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -3997,23 +3997,23 @@ Partial Class Compras_Compras End If End If - 'VERIFICA SI LOS PRODUCTOS/SERVICIOS EXISTEN EN EL CATALOGO DEL SAT - If UsuarioActual.CveEmpresa = 72 Then + ''VERIFICA SI LOS PRODUCTOS/SERVICIOS EXISTEN EN EL CATALOGO DEL SAT + 'If UsuarioActual.CveEmpresa = 72 Then - Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(CveSATPS,0) = 46920 ") - If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then - Dim StrNoEncontrados As New StringBuilder - StrNoEncontrados.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT

") - For Each drt As DataRow In DtNoEncontrados.Rows - StrNoEncontrados.AppendFormat("{0}
", drt("CodigoPS")) - Next - Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia) - DtNoEncontrados.Dispose() - StrNoEncontrados.Clear() - Exit Sub - End If - DtNoEncontrados.Dispose() - End If + ' Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(CveSATPS,0) = 46920 ") + ' If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then + ' Dim StrNoEncontrados As New StringBuilder + ' StrNoEncontrados.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT

") + ' For Each drt As DataRow In DtNoEncontrados.Rows + ' StrNoEncontrados.AppendFormat("{0}
", drt("CodigoPS")) + ' Next + ' Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia) + ' DtNoEncontrados.Dispose() + ' StrNoEncontrados.Clear() + ' Exit Sub + ' End If + ' DtNoEncontrados.Dispose() + 'End If 'Verifica funcionalidad 702 "Require orden de compra para factura de compra" @@ -4646,7 +4646,7 @@ Partial Class Compras_Compras ErrorOC = True End If 'actualiza la compra para que no se surta en almacen. sino por el flete o importación - If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2) Then + If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2, UsuarioActual.CveUsuario) Then ErrorOC = True End If End Select @@ -4661,7 +4661,7 @@ Partial Class Compras_Compras ErrorOC = True End If 'actualiza la compra para que no se surta en almacen. sino por el flete o importación - If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2) Then + If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2, UsuarioActual.CveUsuario) Then ErrorOC = True End If End Select @@ -15489,6 +15489,12 @@ Partial Class Compras_Compras 'If DdlOCVinculaInv.SelectedValue.ToEntero = 237 And Not CveFlete > 0 Then Alert("Necesita vincular un flete si selecciona Factura de Flete", TipoMensaje.MsgAdvertencia) : Exit Sub 'If DdlOCVinculaInv.SelectedValue.ToEntero = 240 And Not CveImportacion > 0 Then Alert("Necesita vincular una Importación si selecciona Factura de Importación", TipoMensaje.MsgAdvertencia) : Exit Sub + If UsuarioActual.CveEmpresa = 119 And DdlTipoComprobante.SelectedValue = "Fac" Then + If Not VerificarProductosCompraConOC() Then + Exit Sub + End If + End If + Dim SubTotalGV = 0.0D Dim Amortizacion As Decimal = TmpDT.SUMD("Total") If ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 Then @@ -18720,14 +18726,14 @@ Partial Class Compras_Compras For Each gvr As GridViewRow In GvSolDev.Rows If gvr.FCTextBox("TxtCant").Text.ToDecimal > 0 Then 'actualiza el estatus del detalle - ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 0) + ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 0, UsuarioActual.CveUsuario) Else - ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 1) + ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 1, UsuarioActual.CveUsuario) End If Next End If - If ObjCompras.UpdateEstatusAlmacen(CveCompra, If(EstatusAlmacen = 1, 0, 1)) Then + If ObjCompras.UpdateEstatusAlmacen(CveCompra, If(EstatusAlmacen = 1, 0, 1), UsuarioActual.CveUsuario) Then EstatusAlmacen = If(EstatusAlmacen = 1, 0, 1) Alert(If(EstatusAlmacen = 1, "La solicitud de devolución de almacen se guardo correctamente.", "La solicitud de almacen se canceló correctamente.")) End If @@ -19090,7 +19096,7 @@ Partial Class Compras_Compras End If CveMovimientoInventario = DtInv.MAX("CveMovimiento", $"CveCompraDetalle = {Row2("CveCompraDetalle")}").ToEntero IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DtInv.MIN("CveAlmacen", $"CveCompraDetalle = {Row2("CveCompraDetalle")}")}").ToEntero - CveCuenta = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DtInv.MIN("CveAlmacen", $"CveCompraDetalle = {Row2("CveCompraDetalle")}")}").ToEntero + ' CveCuenta = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DtInv.MIN("CveAlmacen", $"CveCompraDetalle = {Row2("CveCompraDetalle")}")}").ToEntero ImporteMovimiento = DtInv.SUM(If(DdlMoneda.SelectedValue = "1", "Total", "TotalExtranjero"), $"CveCompraDetalle = {Row2("CveCompraDetalle")}").ToDecimal ImporteMovimiento = If(ImporteMovimiento > Row2("Total").ToString.ToDecimal, Row2("Total").ToString.ToDecimal, ImporteMovimiento) * Multiplicador @@ -19120,15 +19126,15 @@ Partial Class Compras_Compras If IdCtaContable = 0 Then CuentasContablesInvalidas.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) End If - If CveCuenta = 0 Then - CuentasContablesInvalidasSIG.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) - End If + 'If CveCuenta = 0 Then + ' CuentasContablesInvalidasSIG.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) + 'End If Dim SeContabiliza As Boolean = True 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 If DdlTipoCompra.SelectedValue = "10" Then SeContabiliza = False End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, Concepto, 68, Concepto, FechaMovimiento, Row("IdCtaContable").ToString.ToEntero, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveMovimientoAlmacen:=Row("CveMovimiento").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(TipoCambioActual = 1, 0, ImporteMovimiento), CveCuenta:=Row("CveCuenta").ToString.ToEntero, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, Concepto, 68, Concepto, FechaMovimiento, Row("IdCtaContable").ToString.ToEntero, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveMovimientoAlmacen:=Row("CveMovimiento").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(TipoCambioActual = 1, 0, ImporteMovimiento), Contabilizable:=SeContabiliza) Then TieneError = True Exit For End If @@ -19485,7 +19491,7 @@ Partial Class Compras_Compras ErrorTrans = True End If 'actualiza la compra para que no se surta en almacen. sino por el flete o importación - If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2) Then + If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2, UsuarioActual.CveUsuario) Then ErrorTrans = True End If End Select @@ -19500,7 +19506,7 @@ Partial Class Compras_Compras ErrorTrans = True End If 'actualiza la compra para que no se surta en almacen. sino por el flete o importación - If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2) Then + If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2, UsuarioActual.CveUsuario) Then ErrorTrans = True End If End Select @@ -20300,10 +20306,71 @@ Partial Class Compras_Compras ' Return False 'End If - ' Return True + 'Return True 'End Function + Private Function VerificarProductosCompraConOC() As Boolean + + + Dim ProductosNoValidados As New StringBuilder() + + Dim DtCompras As New DataTable() + DtCompras.Columns.Add("Cantidad", GetType(String)) + DtCompras.Columns.Add("UM", GetType(String)) + DtCompras.Columns.Add("PS", GetType(String)) + DtCompras.Columns.Add("SATClaveProductoServicio", GetType(String)) + DtCompras.Columns.Add("PU", GetType(String)) + DtCompras.Columns.Add("Total", GetType(String)) + + For Each GvOC2Row As GridViewRow In GvOC2.Rows + Dim Cantidad As String = GvOC2Row.DataKey("Cantidad") + Dim UM As String = GvOC2Row.DataKey("UM") + Dim PS As String = GvOC2Row.DataKey("PS") + Dim SATClaveProductoServicio As String = GvOC2Row.DataKey("SATClaveProductoServicio") + Dim PU As String = (GvOC2Row.DataKey("Total").ToEntero / GvOC2Row.DataKey("Cantidad").ToEntero).ToString + Dim Total As String = GvOC2Row.DataKey("Total") + DtCompras.Rows.Add(Cantidad, UM, PS, SATClaveProductoServicio, PU, Total) + Next + + For Each GvOCRow As GridViewRow In GvOC1.Rows + + Dim TipoPS As String = GvOCRow.DataKey("CveTipoPS") + + If TipoPS = "2" Then + Dim ProductoAisloadoString As String = GvOCRow.DataKey("PS").Split("-"c)(1).Trim() + Dim PSOC As String = ProductoAisloadoString + Dim CantidadOC As String = GvOCRow.DataKey("CantidadF") + Dim PrecioUnitarioOC As String = GvOCRow.DataKey("Importe") + + Dim Filtro As String = String.Format("Cantidad = {0} AND PS = '{1}' AND PU = {2}", CantidadOC, PSOC, PrecioUnitarioOC) + + Dim RenglonCompras As DataRow = DtCompras.FiltroPrimero(Filtro) + + If RenglonCompras Is Nothing Then + Dim FiltroCantidad As String = String.Format("Cantidad = {0} AND PS = '{1}'", CantidadOC, PSOC) + Dim RenglonFiltroCantidad As DataRow = DtCompras.FiltroPrimero(FiltroCantidad) + If RenglonFiltroCantidad Is Nothing Then + ProductosNoValidados.AppendFormat("La Cantidad del producto '{0}' no coincide
", PSOC) + End If + + Dim FiltroPU As String = String.Format("PS = '{0}' AND PU = {1}", PSOC, PrecioUnitarioOC) + Dim RenglonFiltroPU As DataRow = DtCompras.FiltroPrimero(FiltroPU) + If RenglonFiltroPU Is Nothing Then + ProductosNoValidados.AppendFormat("El Precio Unitario del producto '{0}' no coincide
", PSOC) + End If + + ProductosNoValidados.Append("
") + End If + End If + Next + If ProductosNoValidados.ToString().Length() > 0 Then + Dim AlertProductosNoValidados As String = String.Format("Los siguientes productos no se encuentran en la factura:

{0}", ProductosNoValidados.ToString) + Alert(AlertProductosNoValidados, TipoMensaje.MsgAdvertencia) + Return False + End If + Return True + End Function End Class Public Class MMensajeDevolucion diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 25b566e4d..ebb9a654f 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1275,10 +1275,23 @@ Partial Class PopUpVerFactura Dim FechaMovimiento As Date = ObjInventarios.FechaRegistro Dim CveMovimientoRelacionado As Integer = -1 + Dim FolioRelacionado As String = "" + Dim CveConceptoMovtoRelacionado As Integer = -1 + + 'VERIFICA SI TIENE MOVIMIENTO VIRTUAL RELACIONADO If UsuarioActual.CveEmpresa = 140 AndAlso ObjInventarios.DtResultados.Rows.Count > 0 Then CveMovimientoRelacionado = ObjInventarios.DtResultados.Rows(0)("CveMtoRel").ToString().ToEntero() - End If - + If CveConcepto.Contiene(3, 26) AndAlso ObjInventarios.DtResultados.FiltroPrimeroValor("CveMovimientoVirtual").ToEntero() > 0 Then + FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioVirtual") + CveConceptoMovtoRelacionado = 37 + ElseIf CveConcepto = 37 Then + FolioRelacionado = ObjInventarios.DtResultados.FiltroPrimeroValor("FolioRelacionado") + CveConceptoMovtoRelacionado = 3 + End If + End If + + + Dim CantidadProductos As Decimal = 0 Dim CantidadUsados As Decimal = 0 @@ -1345,7 +1358,8 @@ Partial Class PopUpVerFactura EstadoOrigen, PaisOrigen, CPOrigen, CalleDestino, NoExtDestino, ColoniaDestino, LocalidadDestino, MunicipioDestino, EstadoDestino, PaisDestino, CPDestino, FechaMovimiento, NombreCapturo, PuestoRecibio, PuestoEnrego, RazonSocial, ResponsableCarga, ResponsableRecibio, NombreCliente, - CantidadProductos:=CantidadProductos, CantidadUsados:=CantidadUsados, CveTipoAlmacen:=CveTipoAlmacen, NombreEntrego:=NombreEntrego) + CantidadProductos:=CantidadProductos, CantidadUsados:=CantidadUsados, CveTipoAlmacen:=CveTipoAlmacen, NombreEntrego:=NombreEntrego, + CveConceptoMovRelacionado:=CveConceptoMovtoRelacionado, FolioRelacionado:=FolioRelacionado) End Sub Private Sub PUanacExtr(CveMoneda As Integer) 'preciounitario a moneda nacional o extranjera @@ -1362,7 +1376,8 @@ Partial Class PopUpVerFactura Remision As String, Proveedor As String, CalleOrigen As String, NoExtOrigen As String, ColoniaOrigen As String, LocalidadOrigen As String, MunicipioOrigen As String, EstadoOrigen As String, PaisOrigen As String, CPOrigen As String, CalleDestino As String, NoExtDestino As String, ColoniaDestino As String, LocalidadDestino As String, MunicipioDestino As String, EstadoDestino As String, PaisDestino As String, CPDestino As String, FechaMovimiento As Date, NombreCapturo As String, PuestoRecibio As String, PuestoEntrego As String, - RazonSocial As String, ResponsableCarga As String, ResponsableRecibio As String, NombreCliente As String, Optional CantidadProductos As Decimal = 0, Optional CantidadUsados As Decimal = 0, Optional CveTipoAlmacen As Integer = -1, Optional NombreEntrego As String = "") + RazonSocial As String, ResponsableCarga As String, ResponsableRecibio As String, NombreCliente As String, Optional CantidadProductos As Decimal = 0, Optional CantidadUsados As Decimal = 0, + Optional CveTipoAlmacen As Integer = -1, Optional NombreEntrego As String = "", Optional CveConceptoMovRelacionado As Integer = -1, Optional FolioRelacionado As String = "") Select Case CveConcepto @@ -1542,7 +1557,7 @@ Partial Class PopUpVerFactura ImprimirPDF("Empresas/Grales/Formatos/EntradaSalida.rdlc", DtMovimientos, params, String.Format("Entrada de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") End If - Case 3, 16 ' S A L I D A S + Case 3, 16, 37 ' S A L I D A S 'Dim Archivo As New System.IO.FileInfo(String.Format("Empresas/{0}/Formatos/Salidas.rdlc", 72)) 'Dim Imagen As New System.IO.FileInfo(String.Format("Empresas/{0}/Logo.png", 72)) Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Salidas.rdlc", UsuarioActual.Empresa.Ruta)) @@ -1552,6 +1567,8 @@ Partial Class PopUpVerFactura Dim concepto As String = "" If CveConcepto = 3 Then concepto = "SALIDA DE ALMACÉN" + ElseIf CveConcepto = 37 Then + concepto = "SALIDA VIRTUAL" Else concepto = "SALIDA DE ALMACÉN POR RECONSTRUCCIÓN" End If @@ -1688,6 +1705,34 @@ Partial Class PopUpVerFactura 'ImprimirPDF(String.Format("Empresas/{0}/Formatos/Salidas.rdlc", 72), DtMovimientos, params, "ReporteSalidas", RDSName:="DsInventarios") ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") + ElseIf UsuarioActual.CveEmpresa = 140 Then + + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + + params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("Concepto", concepto)) + params.Add(New ReportParameter("Almacen", Almacen)) + params.Add(New ReportParameter("Fecha", Fecha)) + params.Add(New ReportParameter("FacturaProveedor", FolioVenta)) + params.Add(New ReportParameter("FacturadoA", If(DtMovimientos(0)("Nombre").ToString <> "", DtMovimientos(0)("Nombre").ToString, NombreCliente))) + params.Add(New ReportParameter("Observaciones", Observaciones)) + params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("Folio", Folio)) + params.Add(New ReportParameter("Descuentos", "")) + params.Add(New ReportParameter("IVA", "")) + params.Add(New ReportParameter("Total", "")) + 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) + params.Add(New ReportParameter("NombreRecibio", Recibio)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) + params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) + + ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") Else params.Add(New ReportParameter("Folio", Folio)) params.Add(New ReportParameter("Fecha", Fecha)) @@ -2124,7 +2169,9 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("CantidadProductos", CantidadProductos.ToString())) - params.Add(New ReportParameter("CantidadUsados", CantidadUsados.ToString())) + params.Add(New ReportParameter("CantidadUsados", CantidadUsados.ToString())) + params.Add(New ReportParameter("CveConceptoMovRelacionado", CveConceptoMovRelacionado.ToString())) + params.Add(New ReportParameter("FolioRelacionado", FolioRelacionado)) Else params.Add(New ReportParameter("Observaciones", Observaciones)) 'TxtObservaciones.Text params.Add(New ReportParameter("CveAlmacen", DtMovimientos(0)("CveTipoAlmacen").ToString)) @@ -2469,19 +2516,19 @@ Partial Class PopUpVerFactura If (UsuarioActual.CveEmpresa = 72) Then params.Add(New ReportParameter("DomicilioFiscal", DomicilioFiscalCompu)) End If - ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/SalidasGarantia.rdlc", DtMovimientos, params, String.Format("SalidaGarantia{0}", Folio.ToString), RDSName:="DsInventarios") - 'Else - ' params.Add(New ReportParameter("Folio", Folio)) - ' params.Add(New ReportParameter("Fecha", Fecha)) - ' params.Add(New ReportParameter("Almacen", Almacen)) - ' params.Add(New ReportParameter("SubProyecto", SubProyecto)) - ' params.Add(New ReportParameter("Observaciones", Observaciones)) - ' params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) - ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) - ' ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") - 'End If - - + ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/SalidasGarantia.rdlc", DtMovimientos, params, String.Format("SalidaGarantia{0}", Folio.ToString), RDSName:="DsInventarios") + 'Else + ' params.Add(New ReportParameter("Folio", Folio)) + ' params.Add(New ReportParameter("Fecha", Fecha)) + ' params.Add(New ReportParameter("Almacen", Almacen)) + ' params.Add(New ReportParameter("SubProyecto", SubProyecto)) + ' params.Add(New ReportParameter("Observaciones", Observaciones)) + ' params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) + ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) + ' ImprimirPDF(UsuarioActual.Empresa.Ruta & "Formatos/Salidas.rdlc", DtMovimientos, params, String.Format("Salida de Almacen - {0}", Folio.ToString), RDSName:="DsInventarios") + 'End If + + Case 18 'D E V O L U C I O N D E L C L I E N T E Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/DevolucionCliente.rdlc", UsuarioActual.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) @@ -2658,36 +2705,36 @@ Partial Class PopUpVerFactura ImprimirPDF(Archivo, DtMovimientos, params, String.Format("Salida por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") ElseIf CveConcepto = 22 Then ImprimirPDF(Archivo, DtMovimientos, params, String.Format("Entrada por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") - End If - - 'Case 22 'ENTRADA POR PRESTAMO - ' Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) - ' Dim params As New List(Of ReportParameter) - - ' Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - ' If Imagen.Exists Then - ' params.Add(New ReportParameter("LogoPath", logouri)) - ' Else - ' params.Add(New ReportParameter("LogoPath", "")) - ' End If - - ' params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) - ' params.Add(New ReportParameter("Concepto", "Entrada por Prestamo")) - ' params.Add(New ReportParameter("Almacen", Almacen)) - ' params.Add(New ReportParameter("Fecha", Fecha)) - ' params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) - ' params.Add(New ReportParameter("Folio", Folio)) - ' params.Add(New ReportParameter("Descuentos", "")) - ' params.Add(New ReportParameter("IVA", "")) - ' params.Add(New ReportParameter("Total", "")) - ' 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) - ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) - ' params.Add(New ReportParameter("FacturadoA", NombreCliente)) - ' If (UsuarioActual.CveEmpresa = 72) Then - ' params.Add(New ReportParameter("DomicilioFiscal", DomicilioFiscalCompu)) - ' End If - ' ImprimirPDF("Empresas/Grales/Formatos/EntradaSalida.rdlc", DtMovimientos, params, String.Format("Entrada por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") - + End If + + 'Case 22 'ENTRADA POR PRESTAMO + ' Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + ' Dim params As New List(Of ReportParameter) + + ' Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + ' If Imagen.Exists Then + ' params.Add(New ReportParameter("LogoPath", logouri)) + ' Else + ' params.Add(New ReportParameter("LogoPath", "")) + ' End If + + ' params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + ' params.Add(New ReportParameter("Concepto", "Entrada por Prestamo")) + ' params.Add(New ReportParameter("Almacen", Almacen)) + ' params.Add(New ReportParameter("Fecha", Fecha)) + ' params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy"))) + ' params.Add(New ReportParameter("Folio", Folio)) + ' params.Add(New ReportParameter("Descuentos", "")) + ' params.Add(New ReportParameter("IVA", "")) + ' params.Add(New ReportParameter("Total", "")) + ' 'params.Add(New ReportParameter("NombreEntrego", String.Format("ENTREGÓ{0}{1}", vbCrLf, Capturo))) + ' params.Add(New ReportParameter("NombreRecibio", String.Format("RECIBIÓ{0}{1}", vbCrLf, Recibio))) + ' params.Add(New ReportParameter("FacturadoA", NombreCliente)) + ' If (UsuarioActual.CveEmpresa = 72) Then + ' params.Add(New ReportParameter("DomicilioFiscal", DomicilioFiscalCompu)) + ' End If + ' ImprimirPDF("Empresas/Grales/Formatos/EntradaSalida.rdlc", DtMovimientos, params, String.Format("Entrada por Prestamo - {0}", Folio.ToString), RDSName:="DsInventarios") + Case 24 'SALIDA POR RESGUARDO If DtMovimientos(0)("CveTipoAlmacen").ToString.ToEntero = 20 Or DtMovimientos(0)("CveTipoAlmacen").ToString.ToEntero = 19 Then Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) @@ -3170,11 +3217,11 @@ Partial Class PopUpVerFactura If CveConcepto = 2 Then ElseIf CveConcepto = 3 Then End If - End Sub - - + End Sub + + #End Region - + #Region "OP = 'OC' - IMPRIME PDF OC" Private Sub ImprimePDFOC(CveOrdenCompra As Integer) Dim reporte As Byte() = NewGeneraBytesOC(CveOrdenCompra, ConBitacora:=(UsuarioActual.Empresa.Funcionalidad(119) = "1")) diff --git a/Compras/ProveedoresAuxiliar.aspx.vb b/Compras/ProveedoresAuxiliar.aspx.vb index 26f320e35..529a6887d 100644 --- a/Compras/ProveedoresAuxiliar.aspx.vb +++ b/Compras/ProveedoresAuxiliar.aspx.vb @@ -118,23 +118,19 @@ Partial Class Compras_ProveedoresAuxiliar Dim OpcionP = If(DdlOpcion.SelectedValue = "-1", "", $" Opción: {DdlOpcion.SelectedItem.Text}") Dim TipoProv = If(DdlTipoProveedor.SelectedValue = "-1", "", $" Tipo Proveedor: {DdlTipoProveedor.SelectedItem.Text}") Dim ContaP = If(DdlOpcionContabilizable.SelectedValue = "-1", "", $" Contabilizable: {DdlOpcionContabilizable.SelectedItem.Text}") - If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then - Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) - Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - Dim params As New List(Of ReportParameter) - params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaImpresion", Now.ToString)) - params.Add(New ReportParameter("Filtros", $"Filtros: {Proveedor}{FechaIn}{FechaFn}{OpcionP}{TipoProv}{ContaP}")) - If Imagen.Exists Then - params.Add(New ReportParameter("LogoPath", logouri)) - Else - params.Add(New ReportParameter("LogoPath", "")) - End If - ImprimirPDF("Empresas/Grales/Formatos/AuxiliarProveedor.rdlc", DtDatos, params, "AuxiliarProveedor", Opcion) + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToString)) + params.Add(New ReportParameter("Filtros", $"Filtros: {Proveedor}{FechaIn}{FechaFn}{OpcionP}{TipoProv}{ContaP}")) + If Imagen.Exists Then + params.Add(New ReportParameter("LogoPath", logouri)) Else - Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) + params.Add(New ReportParameter("LogoPath", "")) End If + ImprimirPDF("Empresas/Grales/Formatos/AuxiliarProveedor.rdlc", DtDatos, params, "AuxiliarProveedor", Opcion) End Sub Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click GenerarPDF("PDF") diff --git a/Contabilidad/ContabilizacionVentas.aspx.cs b/Contabilidad/ContabilizacionVentas.aspx.cs index 0b85ddfa4..ab77c72da 100644 --- a/Contabilidad/ContabilizacionVentas.aspx.cs +++ b/Contabilidad/ContabilizacionVentas.aspx.cs @@ -42,7 +42,7 @@ public partial class Contabilidad_ContabilizacionVentas : ClsPaginas TienePermisoVerPoliza = true; } - if (UsuarioActual.Empresa.TipoContabilidad == 2 && UsuarioActual.Empresa.UsaContabilidad) + if (UsuarioActual.Empresa.TipoContabilizacion != 1 ) { ClsContPAQi ObjCont = new ClsContPAQi(UsuarioActual.Empresa); @@ -336,7 +336,7 @@ public partial class Contabilidad_ContabilizacionVentas : ClsPaginas int cvecuenta = e.Row.DataKey("CveCuenta").ToString().ToEntero(); int CveConcepto = e.Row.DBCampo("CveConceptoContable").ToEntero(); - if (CveConcepto.Contiene(5, 6, 14, 19, 17, 206, 25, 26)) + if (CveConcepto.Contiene(5, 6, 14, 19, 17, 206, 25, 26,272,275, 305,306,307,308,309,310,311,312 )) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DBCampo("CveCompra")); } @@ -344,7 +344,7 @@ public partial class Contabilidad_ContabilizacionVentas : ClsPaginas { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")); } - if (CveConcepto.Contiene(1, 2, 4, 13, 61, 38, 39, 150, 203, 207, 251)) + if (CveConcepto.Contiene(1, 2, 4, 12, 13, 61, 38, 39, 91, 150, 203, 207, 251, 291, 292, 293, 294)) { e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta")); } diff --git a/Contabilidad/RegPrePoliza.aspx.vb b/Contabilidad/RegPrePoliza.aspx.vb index 28d7b8831..c5b0c6618 100644 --- a/Contabilidad/RegPrePoliza.aspx.vb +++ b/Contabilidad/RegPrePoliza.aspx.vb @@ -171,7 +171,7 @@ Partial Class ContabilidadC_RegPrePoliza Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then - If UsuarioActual.Empresa.TipoContabilidad = 1 Then + If UsuarioActual.Empresa.TipoContabilizacion = 1 Then Response.Redirect(Request.Url.PathAndQuery.Replace("RegPrePoliza", "RegPrePolizaS")) End If @@ -190,14 +190,17 @@ Partial Class ContabilidadC_RegPrePoliza Dim dt As DataTable = Nothing ' If UsuarioActual.Empresa.UsaContabilidad Then - Dim Conta As New ClsContPAQi(UsuarioActual.Empresa) + 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 + If Conta.GetCuentas(-1, "-1", 1) Then + dt = Conta.DtResultados + DtCuentasContables = Conta.DtResultados + Session("DtCuentas") = Conta.DtResultados + End If + Conta.Dispose() End If - Conta.Dispose() + If IfNull(Request("Tipo"), "").ToString = "NOMPROV" Then DivTipoGasto.Visible = True @@ -949,24 +952,9 @@ Partial Class ContabilidadC_RegPrePoliza Exit For End If End If - Next - - 'El movimiento 2 es el de Pago - If ChkAutoConta.Checked AndAlso MsgError = "" Or UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then - If idCuentaContabilizacion > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then - - 'MENSAJE PRINCIPAL - MensajeAlert.AppendFormat("

Folio de Salida: {1}", ObjMov.ContaIdPoliza, ObjMov.ContaFolio) - MensajeAlert.AppendFormat("

Prepóliza: {1}", CvePrePoliza, ObjMov.ContaFolio) - 'Alert(MensajeAlert.ToString, ModExtensiones.TipoMensaje.MsgInformacion) - Else - Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico") - End If - Else - Alert("No se puede contabilizar la Prepoliza debido a que una o mas cuentas son inválidas") - End If - End If + 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" @@ -978,6 +966,23 @@ Partial Class ContabilidadC_RegPrePoliza GuardaLogAD($"Contabilidad/RegPrePolizas | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") MsgError = ObjMov.MensajePolizaDescuadre & "-" End If + End If + + 'El movimiento 2 es el de Pago + If ChkAutoConta.Checked AndAlso MsgError = "" Or UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then + If idCuentaContabilizacion > 0 Then + If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then + + 'MENSAJE PRINCIPAL + MensajeAlert.AppendFormat("

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

Prepóliza: {1}", CvePrePoliza, ObjMov.ContaFolio) + 'Alert(MensajeAlert.ToString, ModExtensiones.TipoMensaje.MsgInformacion) + Else + Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico") + End If + Else + Alert("No se puede contabilizar la Prepoliza debido a que una o mas cuentas son inválidas") + End If End If Else @@ -1003,14 +1008,16 @@ Partial Class ContabilidadC_RegPrePoliza '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) - ex.GuardaLog(ex.Message) + Alert("Ocurrio un error al registrar el movimiento", TipoMensaje.MsgInformacion) + End Try diff --git a/Contabilidad/RegPrePolizaS.aspx b/Contabilidad/RegPrePolizaS.aspx index 56ac1ea7e..e3b61c3c4 100644 --- a/Contabilidad/RegPrePolizaS.aspx +++ b/Contabilidad/RegPrePolizaS.aspx @@ -266,11 +266,15 @@
-
+
Si
+ +
+ +
@@ -575,7 +579,7 @@
- +
diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index 074017309..cfa135354 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -388,14 +388,23 @@ Partial Class ContabilidadC_RegPrePolizaS LnkComplementoPago.Visible = True End If - If dr("IdPoliza").ToString.ToEntero > 0 Then - HplContabilizada.NavigateUrl = String.Format("RegPoliza.aspx?IdPoliza={0}", dr("IdPoliza")) - divContabilziada.Visible = True - ElseIf TxtTotalCargos.Text.ToDouble = TxtTotalAbonos.Text.ToDouble Then - 'sino está contabilizada, se activa el botón - BtnContabilizar.Visible = True - End If - + If UsuarioActual.Empresa.TipoContabilizacion = 1 Then + If dr("FolioPoliza").ToString.ToEntero > 0 Then + divContabilizada.Visible = True + LblFolio.Text = dr("FolioPoliza").ToString + End If + Else + If dr("IdPoliza").ToString.ToEntero > 0 Then + HplContabilizada.NavigateUrl = String.Format("RegPoliza.aspx?IdPoliza={0}", dr("IdPoliza")) + divContabilizada.Visible = True + ElseIf TxtTotalCargos.Text.ToDouble = TxtTotalAbonos.Text.ToDouble Then + 'sino está contabilizada, se activa el botón + BtnContabilizar.Visible = True + End If + End If + + + divDatosPrincipales.Visible = False divObservaciones.Visible = False UPMovs.Visible = False diff --git a/Contabilidad2/PolizasImpresion.aspx b/Contabilidad2/PolizasImpresion.aspx index f266fa9be..7664693c0 100644 --- a/Contabilidad2/PolizasImpresion.aspx +++ b/Contabilidad2/PolizasImpresion.aspx @@ -73,9 +73,9 @@
- +
- +
diff --git a/Contabilidad2/PolizasImpresion.aspx.vb b/Contabilidad2/PolizasImpresion.aspx.vb index 72185a306..992887fb8 100644 --- a/Contabilidad2/PolizasImpresion.aspx.vb +++ b/Contabilidad2/PolizasImpresion.aspx.vb @@ -18,7 +18,7 @@ Partial Class Contabilidad2_PolizasImpresion DdlUsuarioRegistro.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) DdlUsuarioRegistro.DataBind() cargaddlpolizas() - CargaSegmentoNeg() + CargaSubProyectos() CargaCuentas() End If End Sub @@ -34,13 +34,13 @@ Partial Class Contabilidad2_PolizasImpresion Dim ArchivoReporte As String = "Empresas/Grales/Formatos/Polizas.rdlc" - 'If IO.File.Exists(String.Format("{0}Formatos/Polizas.rdlc", UsuarioActual.Empresa.Ruta)) Then - ' ArchivoReporte = String.Format("{0}Formatos/Polizas.rdlc", UsuarioActual.Empresa.Ruta) - 'End If + If IO.File.Exists(String.Format("{0}Formatos/Polizas.rdlc", UsuarioActual.Empresa.Ruta)) Then + ArchivoReporte = String.Format("{0}Formatos/Polizas.rdlc", UsuarioActual.Empresa.Ruta) + End If Dim ObjConta As New ClsContabilidad If ObjConta.GetPrePolizasImpresion(UsuarioActual.CveEmpresa, TxtFechaInicio.Text, TxtFechaFin.Text, CveTipoPoliza:=ddlTipoPoliza.SelectedValue.ToEntero, FolioI:=foli, - FolioF:=folf, CveUsuario:=DdlUsuarioRegistro.SelectedValue.ToEntero, IdSegNegocio:=DdlSegmentoNeg.SelectedValue.ToEntero, + FolioF:=folf, CveUsuario:=DdlUsuarioRegistro.SelectedValue.ToEntero, CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, CveCuenta:=DdlCuenta.SelectedValue.ToEntero, CvePlantillaPoliza:=DdlGrupoPlantilla.SelectedValue.ToEntero, CveProveedor:=DdlTipoProveedor.SelectedValue.ToEntero) Then If ObjConta.DtResultados.Rows.Count < 10000 Then @@ -60,9 +60,9 @@ Partial Class Contabilidad2_PolizasImpresion params.Add(New ReportParameter("Moneda", "")) params.Add(New ReportParameter("CodigoPostal", "")) - 'If UsuarioActual.CveEmpresa = 119 Then - ' params.Add(New ReportParameter("UsuarioRegistro", GlobalDTUsuarios(dr("IdUsuario").ToString.ToEntero).FiltroPrimeroValor("Nombre"))) - 'End If + If UsuarioActual.CveEmpresa = 119 Then + params.Add(New ReportParameter("UsuarioRegistro", dr("NombreUsuario").ToString)) + End If ImprimirPDF(ArchivoReporte, ObjConta.DtResultados, params) @@ -89,15 +89,11 @@ Partial Class Contabilidad2_PolizasImpresion DdlUsuarioRegistro.Items.Insert(0, New ListItem("Todos", "-1")) End Sub - Private Sub CargaSegmentoNeg() - Dim objtcont As New ClsContabilidad - If objtcont.GetSegmentosNegocio(-1, "-1") Then - DdlSegmentoNeg.DataSource = objtcont.DtResultados - DdlSegmentoNeg.DataBind() - End If - objtcont.Dispose() - DdlSegmentoNeg.Items.Insert(0, New ListItem("Todos", "-1")) - DdlSegmentoNeg.Items.Insert(1, New ListItem("Sin Asignar", "-2")) + Private Sub CargaSubProyectos() + DdlSubProyectos.DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa) + DdlSubProyectos.DataBind() + DdlSubProyectos.Items.Insert(0, New ListItem("Todos", "-1")) + DdlSubProyectos.Items.Insert(1, New ListItem("Sin Asignar", "-2")) End Sub Private Sub CargaCuentas() diff --git a/Empresas/140/Formatos/Salidas.rdlc b/Empresas/140/Formatos/Salidas.rdlc new file mode 100644 index 000000000..ff50a2ecb --- /dev/null +++ b/Empresas/140/Formatos/Salidas.rdlc @@ -0,0 +1,1358 @@ + + + + + + + + + 1.14223cm + + + 3.14766cm + + + 11.67011cm + + + 2.70027cm + + + 1.73945cm + + + + + 0.42054cm + + + + + true + true + + + + + Cant. + + + + + + + Textbox7 + + + + Black + + 1pt + + + Black + + 1pt + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Código + + + + + + + Textbox9 + + + + Black + + 1pt + + + Black + + 1pt + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descripción + + + + + + + Textbox11 + + + + Black + + 1pt + + + Black + + 1pt + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Serie + + + + + + + Textbox6 + + + + Black + + 1pt + + + Black + + 1pt + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Lote + + + + + + + Textbox5 + + + + Black + + 1pt + + + Black + + 1pt + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.69042cm + + + + + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!Codigo.Value + + + + + + + Codigo + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!PS.Value + + + + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!SerieLote.Value + + + + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + true + true + + + + + =Fields!Lote.Value + + + + + + 2pt + 2pt + =IIf(RowNumber(Nothing)=1,"1pt","0pt") + + + + + + + + + + + + + + + + + =IIF(String.IsNullOrEmpty(Fields!Lote.Value), True,False) + + + + + + + + After + + + + + + + DsInventarios + 0.17639cm + 0.22456cm + 1.11096cm + 20.39972cm + + + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + 0.82291in + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Concepto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!LogoPath.Value + FitProportional + 0.3175cm + 0.19987cm + 1.66316cm + 3.43141cm + 2 + + + + + + true + true + + + + + =Parameters!FacturaProveedor.Value + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!FacturadoA.Value + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Proveedor: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Factura: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Folio: + + + + + + + Textbox3 + 0.22328cm + 13.63291cm + 0.89103cm + 4.09693cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Folio.Value + + + + + + + Textbox31 + 0.1905cm + 17.72984cm + 0.9263cm + 2.57165cm + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!Almacen.Value + + + + + + + Textbox6 + 2.40855cm + 14.4575cm + 0.56824cm + 5.9022cm + 10 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Fecha.Value + + + + + + + Textbox32 + 3.12876cm + 14.4575cm + 0.58913cm + 5.9022cm + 11 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Almacén: + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =IIF(Parameters!CveConceptoMovRelacionado.Value = 37,"Folio Virtual:","Folio Relacionado:") + + + + + + + Textbox3 + 1.27306cm + 13.63291cm + 0.47477cm + 4.09693cm + 13 + + =IIF(Parameters!FolioRelacionado.Value = "",true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + true + + + + + =Parameters!FolioRelacionado.Value + + + + + + + Textbox31 + 1.27306cm + 17.72984cm + 0.47477cm + 2.57165cm + 14 + + =IIF(Parameters!FolioRelacionado.Value = "",true,false) + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + 2.22251cm + true + true + + + 0.28886cm + 2.22221cm + 0cm + 4.95004cm + + + + + + true + true + + + + + =Parameters!NombreRecibio.Value + + + + Textbox31 + 0.46525cm + 1.74387cm + 0.6cm + 5.95755cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + 0.28886cm + 12.20081cm + 0cm + 4.95004cm + 2 + + + + + + true + true + + + + + =Parameters!Almacen.Value + + + + Textbox31 + 0.42997cm + 11.80394cm + 0.6cm + 5.95755cm + 3 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresion: + + + + + + + Textbox5 + 1.49022cm + 11.96388cm + 0.6cm + 2.90426cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!FechaImpresion.Value + + + + + + + Textbox33 + 1.49022cm + 14.86814cm + 0.6cm + 2.89335cm + 5 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 29.7cm + 21cm + 0.5cm + 1.5cm + 2cm + 2cm + 0.13cm + + + true + true + + + + + =Parameters!FolioRelacionado.Value + + + + + + 2pt + 2pt + + + + true + true + + + + + =IIF(Parameters!CveConceptoMovRelacionado.Value = 37,"Folio Virtual:","Folio Relacionado:") + + + + + + + Textbox5 + 1.34386cm + 17.07518cm + 0.6cm + 2.07667cm + 10 + + =IIF(Parameters!FolioRelacionado.Value = "",true,false) + + + + Bottom + 2pt + 2pt + + @@ -183,11 +184,12 @@ - Jesús Julían Moreno Quintana, R.F.C MOQJ851214HK4 + Jesús Julían Moreno Quintana @@ -198,11 +200,64 @@ - |www.adssistemas.mx | julian@adssistemas.mx| + R.F.C MOQJ851214HK4 + + + + + + + + Paseo Florido, 62-A, Col.: Nueva Galicia, C.P.: 83245, + + + + + + + + + Hermosillo, Sonora, México. Tel.: (662) 216-2270 + + + + + + + + + |www.adsistemas.mx | julian@adsistemas.mx| + @@ -213,9 +268,9 @@ Textbox4 0.03532cm - 1.80916in - 0.66099in - 3.62386in + 1.58787in + 1.10377in + 4.01898in 4 - - Embedded - Logo1 - FitProportional - 0.13016cm - 2.88998cm - 3.43694cm - 6 - - - - true @@ -267,6 +308,7 @@ Calibri 9pt Normal + DimGray @@ -280,7 +322,7 @@ 5.662in 0.25114in 2.24597in - 7 + 6 @@ -317,7 +360,7 @@ 5.662in 0.25635in 2.24597in - 8 + 7 - - true - - - - - Domicilio Fiscal - - - - - - - - - Paseo Florido, 62-A, Col.: Nueva Galicia, C.P.: 83245, Hermosillo, Sonora, México. Tel.: (662) 216-2270 - - - - - - - Textbox10 - 0.52493in - 1.53781in - 0.65513in - 2.06754in - 9 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Lugar de Expedición - - - - - - - - - =Parameters!DomicilioSucursal.Value - - - - - - - Textbox10 - 0.52493in - 3.69748in - 0.65513in - 1.93674in - 10 - - - Top - - true true @@ -436,9 +379,11 @@ - Nombre + Nombre: @@ -450,7 +395,7 @@ 0.14361cm 0.22222in 0.81128in - 11 + 8 @@ -492,7 +438,7 @@ 0.86782in 0.22222in 4.79418in - 12 + 9 @@ -535,7 +483,7 @@ 0.05654in 0.23611in 0.81128in - 13 + 10 @@ -578,7 +527,7 @@ 0.86782in 0.2309in 7.0427in - 14 + 11 @@ -621,7 +572,7 @@ 0.05654in 0.23611in 0.81128in - 15 + 12 @@ -663,7 +616,7 @@ 0.86782in 0.23611in 4.79418in - 16 + 13 @@ -867,11 +821,11 @@ Textbox58 - 5.82498in - 5.71166in + 5.01023in + 5.70142in 0.18056in 2.22448in - 21 + 18 @@ -894,6 +848,7 @@ calibri 7.5pt Normal + DimGray @@ -901,11 +856,11 @@ Textbox59 - 6.02214in - 5.70646in + 5.20739in + 5.69622in 0.16667in 2.22969in - 22 + 19 @@ -927,6 +882,7 @@ @@ -934,11 +890,11 @@ Textbox60 - 6.22915in - 5.70646in + 5.4144in + 5.69622in 0.16939in 2.22714in - 23 + 20 @@ -960,6 +916,7 @@ @@ -967,11 +924,11 @@ Textbox61 - 6.4388in - 5.71166in + 5.62405in + 5.70142in 0.17784in 2.22193in - 24 + 21 @@ -989,10 +946,11 @@ - Régimen: Régimen General de Ley Personas Morales; Condiciones de pago: + Regímen: Regímen General de Ley Personas Morales; Condiciones de pago: @@ -1000,6 +958,7 @@ @@ -1007,6 +966,7 @@ @@ -1014,6 +974,7 @@ @@ -1021,6 +982,7 @@ @@ -1028,6 +990,7 @@ @@ -1035,11 +998,11 @@ Textbox62 - 6.63726in - 1.54805in + 5.82251in + 1.53781in 0.29498in 6.38809in - 25 + 22 @@ -1057,9 +1020,10 @@ - Éste documento es una representación impresa de un CFDi + Éste documento es una representacion impresa de un CFDi @@ -1067,11 +1031,11 @@ Textbox63 - 6.8506in - 2.55254in + 6.03585in + 2.5423in 0.25in 3.69856in - 26 + 23 @@ -1099,7 +1063,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1109,6 +1073,7 @@ 7.5pt Normal dd/MM/yyyy + DimGray @@ -1118,6 +1083,7 @@ 7.5pt Normal dd/MM/yyyy + DimGray @@ -1127,6 +1093,7 @@ 7.5pt Normal dd/MM/yyyy + DimGray @@ -1138,7 +1105,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1150,7 +1117,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1162,7 +1129,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1174,7 +1141,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1186,7 +1153,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1198,11 +1165,11 @@ Normal dd/MM/yyyy None - #000000 + DimGray - ). Valor recibido a mi (nuestra) entera satisfacción. La falta de pago de éste documento a su vencimiento dará derecho a AD Sistemas, Análisis y Diseño de Sistemas o tenedor, desde el día siguiente a cobrar el 10% mensual de interes moratorios hasta su total liquidación y los gastos judiciales que se ocasionen. Lugar y Fecha de Suscripción: Hermosillo, Sonora a + ). Valor recibido a mi (nuestra) entera satisfacción. la falta de pago de éste documento a su vencimiento dará derecho a AD Sistemas, Análisis y Diseño de Sistemas o tenedor, desde el día siguiente a cobrar el 10% mensual de interes moratorios hasta su total liquidación y los gastos judiciales que se ocasionen. Lugar y Fecha de Suscripción: Hermosillo, Sonora a @@ -1222,7 +1189,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1234,7 +1201,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1251,7 +1218,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1268,7 +1235,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1297,7 +1264,16 @@ - Nombre: + Nombre: + + + + @@ -1316,7 +1293,16 @@ - Dirección: + Dirección: + + + + @@ -1360,6 +1347,7 @@ @@ -1825,11 +1813,11 @@ true - 21.55897cm - 0.0728cm + 16.20868cm + 0.13016cm 4.04843cm 20.06179cm - 27 + 24 = (Parameters!AplicaPagare.Value="0" ORelse Parameters!AplicaPagare.Value="") @@ -2465,7 +2453,7 @@ 0.11468cm 1.01949cm 20.01064cm - 28 + 25 @@ -2504,7 +2492,7 @@ 5.662in 0.20317in 2.26391in - 29 + 26 @@ -2707,6 +2696,7 @@ Myriad Pro 9pt Normal + DimGray @@ -2743,6 +2733,7 @@ 9pt Normal #,0.00 + DimGray @@ -2790,7 +2781,7 @@ 5.73412in 0.34081in 2.19818in - 30 + 27 @@ -2822,6 +2813,7 @@ Calibri 9pt '$'#,0.00;('$'#,0.00) + DimGray @@ -2880,7 +2872,9 @@ - ImpuestoLocal @@ -2906,7 +2900,7 @@ 14.56464cm 0.6cm 5.58343cm - 31 + 28 @@ -2940,6 +2934,7 @@ @@ -2952,19 +2947,9 @@ + - - - - - - - - - - 1pt 2pt @@ -3000,7 +2985,7 @@ @@ -3042,6 +3027,7 @@ @@ -3086,7 +3072,7 @@ @@ -3135,6 +3121,7 @@ @@ -3179,7 +3166,7 @@ @@ -3228,6 +3215,7 @@ @@ -3273,7 +3261,7 @@ @@ -3322,6 +3310,7 @@ @@ -3367,7 +3356,7 @@ @@ -3416,6 +3405,7 @@ @@ -3440,64 +3430,6 @@ - - 0.6cm - - - - - true - true - - - - - Cadena original del complemento de certificación digital del SAT: - - - - - - - Textbox136 - - - - - - - - - - - - - - 1pt - - #eb831f - Middle - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - @@ -3514,15 +3446,14 @@ - DsOC 5.75282cm 0.11468cm - 5.76188cm + 5.16188cm 14.34413cm - 32 + 29 @@ -3541,6 +3472,7 @@ calibri 7pt Normal + DimGray @@ -3554,6 +3486,7 @@ calibri 7pt Bold + DimGray @@ -3561,11 +3494,11 @@ Textbox18 - 4.54585in + 4.59585in 0.04404in 0.36457in 7.87931in - 33 + 30 @@ -3576,507 +3509,6 @@ 2pt - - - - true - true - - - - - CFDI Relacionados - - - - - - - Textbox5 - 0.11382cm - 0.05336cm - 0.54004cm - 20.00281cm - - - #eb831f - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Tipo Relación: - - - - - - - Textbox29 - 0.83025cm - 4.33636cm - 0.41981cm - 5.31841cm - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!TipoRelacionTexto.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.42456cm - - - 2.05585cm - - - 3.03631cm - - - 7.7847cm - - - - - 0.44125cm - - - - - true - true - - - - - Folio - - - - - - - Textbox10 - - - #eb831f - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Fecha - - - - - - - Textbox12 - - - #eb831f - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox21 - - - #eb831f - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Folio Fiscal - - - - - - - Textbox11 - - - #eb831f - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.41479cm - - - - - true - true - - - - - =Fields!SerieFolio.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Fecha.Value - - - - - - - Fecha - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!FolioFiscal.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - After - - - - - - - DataSet4 - 1.39643cm - 2.83462cm - 0.85604cm - 15.30142cm - 3 - - - - - - true - true - - - - - VERSION 3.3 - - - - - - - Textbox5 - 2.28775cm - 17.08931cm - 0.6cm - 3.06609cm - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - true - 18.31666cm - 0.0585cm - 2.97096cm - 20.1554cm - 34 - - =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) - - - - - true true @@ -4084,264 +3516,57 @@ - Nombre Comercial: + Cadena original del complemento de certificación digital del SAT: - - - - - Beneficiario: - - - - - - - - - - - - - Banco: - - - - - - - - - - - - - Clabe: - - - - - - - - - Cuenta: - - - - - - - - Textbox1 - 12.65668cm - 0.09631cm - 2.03294cm - 10.03331cm - 35 + 10.95026cm + 0.13016cm + 0.6cm + 19.96256cm + 31 + #eb831f 2pt 2pt 2pt 2pt - - true - true - - - - - JESUS JULIAN MORENO QUINTANA - - - - - - - - - Jesús Julián Moreno Quintana - - - - - - - - - BBVA Bancomer - - - - - - - - - 01 2760 0261 1276 8759 - - - - - - - - - 26 1127 6875 - - - - - - - Textbox1 - 12.65667cm - 10.12962cm - 2.03294cm - 10.08428cm - 36 + + Embedded + Logo + FitProportional + 0.07652cm + 0.13016cm + 2.76239cm + 3.72665cm + 32 - 2pt - 2pt - 2pt - 2pt - + - 25.6074cm + 20.41057cm - - - - - - - =Today - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 27.94cm 21.59cm 0.5cm @@ -4381,20 +3606,6 @@ c220a38d-e45b-4e04-917e-7dfd9cc3345f - - - System.Data.DataSet - /* Local Connection */ - - c220a38d-e45b-4e04-917e-7dfd9cc3345f - - - - System.Data.DataSet - /* Local Connection */ - - c220a38d-e45b-4e04-917e-7dfd9cc3345f - @@ -4609,74 +3820,6 @@ - - - DsDesgloseImpuestos - /* Local Query */ - - - - SerieFolio - System.String - - - Fecha - System.String - - - Importe - System.String - - - FolioFiscal - System.String - - - - DsDocumentosRelacionados - C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd - DataTable1 - - - - - - - - DsDesgloseImpuestos - /* Local Query */ - - - - SerieFolio - System.String - - - Fecha - System.String - - - SubTotal - System.String - - - Importe - System.String - - - Moneda - System.String - - - - DsNCVinculadas - C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd - DataTable1 - - - - - @@ -5219,6 +4362,57 @@ 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 + + image/png + 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 + Cm ce050101-4530-4332-90ec-6ac094336e40 diff --git a/Empresas/70/Formatos/Factura.rdlc b/Empresas/70/Formatos/Factura.rdlc index 7fb9bb4e8..9345e93cb 100644 --- a/Empresas/70/Formatos/Factura.rdlc +++ b/Empresas/70/Formatos/Factura.rdlc @@ -172,8 +172,10 @@ @@ -188,9 +190,10 @@ @@ -203,13 +206,74 @@ - www.adssistemas.mx|facturacion@adssistemas.mx + Paseo Florido 62A. Col. Nueva Galicia. C.P. 83245 + + + 0cm + 0cm + + + + + + Hermosillo, Sonora, México. + + + + 0cm + 0cm + + + + + + Tel. (662)2.16.22.70 + + + + 0cm + 0cm + + + + + + www.adssistemas.mx|compras@adssistemas.mx + @@ -221,9 +285,10 @@ Textbox4 - 1.93416in - 0.50583in - 3.62386in + 0.0635cm + 1.41912in + 1.04333in + 4.18732in 4 @@ -259,6 +325,7 @@ calibri 7pt Bold + DimGray @@ -266,7 +333,7 @@ Textbox18 - 4.66779in + 4.69279in 0.04515in 0.64582in 7.86282in @@ -285,7 +352,7 @@ External =Parameters!QR.Value FitProportional - 5.38305in + 6.38305in 0.04026in 1.3497in 1.5531in @@ -296,21 +363,6 @@ - - Embedded - logo - FitProportional - 0.07204cm - 1.40623cm - 2.88998cm - 2.5499cm - 7 - - - - true @@ -322,6 +374,7 @@ Calibri 9pt Normal + DimGray @@ -335,7 +388,7 @@ 5.662in 0.25114in 2.24597in - 8 + 7 @@ -372,7 +426,7 @@ 5.662in 0.25635in 2.24597in - 9 + 8 - - true - - - - - Domicilio Fiscal - - - - - - - - - Paseo Florido, 62 A, Col Nueva Galicia, - - - - 0cm - 0cm - - - - - - C.P.: 83240, Hermosillo, Sonora, México. - - - - 0cm - 0cm - - - - - - Tel.: (662) 216-2270 - - - - 0cm - 0cm - - - - Textbox10 - 0.51102in - 1.93416in - 0.65513in - 1.79619in - 10 - - - 2pt - 2pt - 2pt - 2pt - - - - true - - - - - Lugar de Expedición - - - - - - - - - =Parameters!DomicilioSucursal.Value - - - - - - - Textbox10 - 0.51102in - 3.77202in - 0.65513in - 1.786in - 11 - - - Top - - true true @@ -536,6 +449,8 @@ @@ -547,7 +462,7 @@ 0.14361cm 0.22222in 0.81128in - 12 + 9 @@ -589,7 +505,7 @@ 0.86782in 0.22222in 4.79418in - 13 + 10 @@ -632,7 +550,7 @@ 0.05654in 0.23611in 0.81128in - 14 + 11 @@ -675,7 +594,7 @@ 0.86782in 0.2309in 7.0427in - 15 + 12 @@ -718,7 +639,7 @@ 0.05654in 0.23611in 0.81128in - 16 + 13 @@ -743,12 +664,14 @@ =Parameters!ClienteLugar.Value @@ -760,7 +683,7 @@ 0.86782in 0.23611in 4.79418in - 17 + 14 @@ -961,11 +885,11 @@ Textbox58 - 5.38382in + 6.38382in 5.70142in 0.18056in 2.22448in - 22 + 19 @@ -988,6 +912,7 @@ calibri 7.5pt Normal + DimGray @@ -995,11 +920,11 @@ Textbox59 - 5.58098in + 6.58098in 5.69622in 0.16667in 2.22969in - 23 + 20 @@ -1021,6 +946,7 @@ @@ -1028,11 +954,11 @@ Textbox60 - 5.80049in + 6.80049in 5.69622in 0.16939in 2.22714in - 24 + 21 @@ -1054,6 +980,7 @@ @@ -1061,11 +988,11 @@ Textbox61 - 5.99764in + 6.99764in 5.70142in 0.17784in 2.22193in - 25 + 22 @@ -1087,6 +1014,7 @@ @@ -1094,6 +1022,7 @@ @@ -1101,6 +1030,7 @@ @@ -1108,6 +1038,7 @@ @@ -1115,6 +1046,7 @@ @@ -1122,6 +1054,7 @@ @@ -1129,11 +1062,11 @@ Textbox62 - 6.21987in + 7.21987in 1.60725in 0.29498in 6.31865in - 26 + 23 @@ -1154,6 +1087,7 @@ Éste documento es una representacion impresa de un CFDi @@ -1161,11 +1095,11 @@ Textbox63 - 6.51485in + 7.51485in 2.5423in 0.25in 3.69856in - 27 + 24 @@ -1193,7 +1127,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1203,6 +1137,7 @@ 7.5pt Normal dd/MM/yyyy + DimGray @@ -1212,6 +1147,7 @@ 7.5pt Normal dd/MM/yyyy + DimGray @@ -1221,6 +1157,7 @@ 7.5pt Normal dd/MM/yyyy + DimGray @@ -1232,7 +1169,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1244,7 +1181,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1256,7 +1193,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1268,7 +1205,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1280,7 +1217,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1292,7 +1229,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1304,7 +1241,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1316,7 +1253,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1328,7 +1265,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1345,7 +1282,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1362,7 +1299,7 @@ Normal dd/MM/yyyy None - #000000 + DimGray @@ -1395,6 +1332,8 @@ @@ -1427,6 +1366,8 @@ @@ -1567,6 +1508,7 @@ @@ -1987,11 +1929,11 @@ true - 20.23207cm + 22.77207cm 0.0019cm 4.14042cm 20.06179cm - 28 + 25 = (Parameters!AplicaPagare.Value="0") @@ -2663,7 +2605,7 @@ 0.11468cm 1.25761cm 20.01064cm - 29 + 26 @@ -2676,21 +2618,32 @@ - RFC: + RFC: + + + + =Parameters!ClienteRFC.Value @@ -2702,7 +2655,7 @@ 5.662in 0.23611in 2.26391in - 30 + 27 @@ -2905,6 +2859,7 @@ calibri 9pt Normal + DimGray @@ -2941,6 +2896,7 @@ 9pt Normal #,0.00 + DimGray @@ -2988,7 +2944,7 @@ 5.68499in 0.34081in 2.23334in - 31 + 28 @@ -3020,6 +2976,7 @@ Calibri 9pt '$'#,0.00;('$'#,0.00) + DimGray @@ -3078,7 +3035,9 @@ - ImpuestoLocal @@ -3104,7 +3063,7 @@ 14.4684cm 0.6cm 5.60381cm - 32 + 29 @@ -3138,6 +3097,7 @@ @@ -3150,19 +3110,9 @@ + - - - - - - - - - - 1pt 2pt @@ -3198,7 +3148,7 @@ @@ -3206,24 +3156,8 @@ + - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - #eb831f Middle 2pt @@ -3247,6 +3181,7 @@ @@ -3291,7 +3226,7 @@ @@ -3299,24 +3234,8 @@ + - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - #eb831f Middle 2pt @@ -3340,6 +3259,7 @@ @@ -3384,7 +3304,7 @@ @@ -3392,24 +3312,8 @@ + - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - #eb831f Middle 2pt @@ -3433,6 +3337,7 @@ @@ -3478,7 +3383,7 @@ @@ -3486,24 +3391,8 @@ + - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - #eb831f Middle 2pt @@ -3527,6 +3416,7 @@ @@ -3572,7 +3462,7 @@ @@ -3580,24 +3470,8 @@ + - - - 1pt - - - - 1pt - - - - 1pt - - - - 1pt - #eb831f Middle 2pt @@ -3621,6 +3495,7 @@ @@ -3645,64 +3520,6 @@ - - 0.6cm - - - - - true - true - - - - - Cadena original del complemento de certificación digital del SAT: - - - - - - - Textbox136 - - - - - - - - - - - - - - 1pt - - #eb831f - Middle - 2pt - 2pt - 2pt - 2pt - - - 2 - - - - - @@ -3719,15 +3536,14 @@ - DsOC 5.84979cm 0.14053cm - 6cm + 5.4cm 14.32787cm - 33 + 30 @@ -3785,6 +3601,7 @@ Myriad Pro 8pt Bold + DimGray @@ -3820,6 +3637,7 @@ @@ -4028,6 +3846,7 @@ @@ -4061,6 +3880,7 @@ myriad pro 7.5pt dd/MM/yyyy + DimGray @@ -4096,6 +3916,7 @@ myriad pro 7.5pt #,0.00;-#,0.00;'-' + DimGray @@ -4130,6 +3951,7 @@ @@ -4195,6 +4017,7 @@ MYRiad Pro 9.16pt Bold + DimGray @@ -4221,11 +4044,11 @@ true - 17.18306cm + 19.72306cm 0.04112cm 2.97096cm 20.1554cm - 34 + 31 =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) @@ -4235,8 +4058,242 @@ + + true + true + + + + + Cadena original del complemento de certificación digital del SAT: + + + + + + + Textbox1 + 11.26418cm + 0.14053cm + 0.6cm + 19.93168cm + 32 + + + #eb831f + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Nombre Comercial + + + + + + + + + Beneficiario + + + + + + + + + Banco + + + + + + + + + Clabe + + + + + + + + + Cuenta + + + + + + + Textbox5 + 13.70118cm + 0.14361cm + 2.37271cm + 9.55228cm + 33 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + AD Sistemas Soluciones en TI S.A. de C.V + + + + + + + + + AD Sistemas Soluciones en TI S.A. de C.V + + + + + + + + + BBVA Bancomer + + + + + + + + + 01 2760 0010 3031 6240 + + + + + + + + + 01 0303 1624 + + + + + + + Textbox5 + 13.70118cm + 9.7982cm + 2.37271cm + 9.55228cm + 34 + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + Logo + FitProportional + 0.0635cm + 0.14361cm + 2.6818cm + 3.32767cm + 35 + + + + - 24.37249cm + 27.07124cm @@ -4269,6 +4327,7 @@ =Today @@ -5178,6 +5237,57 @@ OD7vW1kNMHB6w4ebT6+4cBNw7u7uJCOeS3RPEVCkIejo6KApqFHXxGygOAMvqGE+eBaCxXnMmDHjpVEj wDra2lAbPXr0mDGjScCmTZsqLgbHiyiukRHLHt9WfAGLt7f38ePH/8JuUCkaHhzHdub0qeDAgFHWVrCrDM7QSJ+RS1+XZgo4hgQmqmbvvgs1xSiqrDVBjYZ77NixV0RrIhoeHHHr1q24DesdxttDrRI4I0ND5vxhQ4cCTlBTLBYJamiNURSt0UAV1I4cOfLqaE1Eo4Cj5Z05fTooIADBWSiBGzhA9hdEhpiZDRs2lHmUIZS5StQ1QU0se9BDkRspLKhR1141akSjgCMQ3brYdQ724/74U8iDBw0yNpb9QYzBgzp3/r558+ZojR4KNbHERkOAGloDGdZEX18fY3z48OFXKkMV0Vjg0Ej2yZMBfn6/gzMzMzExNTEZYGT47TffCK2J83uAEwuTCI3BwNjYmIGBcSo2NpYG/de63BqiscARJYhuzRrbMaPIU1mympnhQhAUtgNqsKMboDVUxiw1fPhwnO38+fOTkpLIzdzc3Hp/7efLiUYEh+gwEH4+PkNMTEjV/lpan37aAaNLtGjRgilKS0sLq0c+xsTEpKWlXbhwgQTnWa8yL0U0IjiipOR27Nq1o6ytmbA6fv4ZHYCqT/FycHCIiIiIj48X4rp///7fApZyNC648idPsrOzg4OCZP5jxAis/4oVK/bt26cQl3y7v2E0LjiiuLg4JSVl48aNiEtSscb9txNXldHo4Bj7sa9ZWVm5N2+iMrLyVRjRXzwaOVXLyn755ZfNmzahuIMZGdmnTpGkN27cgObdu3exGq+mR6tNNC643+7cQW6AS9iyZe/evYcOHRK/Wn7+/PkrV67QFgoLC+/cufPw4cO/SzNVRCOCIyVzb9zIPHhw7549KRVf7XTs6NGz52Qh+/qRs2d//vnnixcv5uTk3Lx5UxCkAv6/HXn66OHDy5cuoTiCyYk4ceLEzxVaIy7/HuKfV69evX79ukQiURBk4H2VCTYWOI6ZyeHSxYuoC1gEQuN/ITEYVYpfK4IfqIDi u/dEHXxli2BjgSt7/LhAKr129eq1K1dktxX/5Vy7xi1oUJYENtWE7NGKQH2vbBduFHDIjQMuKCjIy8uTM/g94JInyZNKpQgKi0fwQ6UQd0KN25KSkleTXaOA4zjJMlxblQEL4vbvQUWrOZj2X8GO0SjgOE6qO0qpMgAhHhU/iBAPVRfC8b1C7J4+/T+bHvWpPSfVSAAAAABJRU5ErkJggg== + + image/png + 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 + Cm ce050101-4530-4332-90ec-6ac094336e40 diff --git a/Empresas/Grales/Formatos/EntradasSalidas.rdlc b/Empresas/Grales/Formatos/EntradasSalidas.rdlc index 176b0a50e..edfdd2cda 100644 --- a/Empresas/Grales/Formatos/EntradasSalidas.rdlc +++ b/Empresas/Grales/Formatos/EntradasSalidas.rdlc @@ -108,34 +108,34 @@ - 1.82858cm + 3.4316cm - 5.84308cm + 3.4316cm - 1.40241cm + 1.7158cm - 1.59046cm + 1.7158cm - 1.59046cm + 1.7158cm - 1.3846cm + 1.7158cm - 1.62687cm + 1.7158cm - 1.99138cm + 1.7158cm - 1.7797cm + 1.7158cm - 1.865cm + 1.7158cm @@ -193,7 +193,7 @@ - + true true @@ -211,7 +211,7 @@ - Textbox9 + Textbox1 @@ -266,26 +266,9 @@ White - - White - - 1pt - - - White - - 1pt - - White - - 1pt + - - White - - 1pt - #d3d3d3 2pt 2pt @@ -308,7 +291,7 @@ - Importe + @@ -422,7 +405,7 @@ - Articulos + Artículos - White - 1pt - White - 1pt - White - - 1pt + - White - 1pt #d3d3d3 @@ -1763,9 +1738,8 @@ DataSet1 0.20849cm - 0.00415cm 2.52171cm - 20.90254cm + 20.5896cm @@ -1776,7 +1750,7 @@ 1.16692in - Textbox1 0.22049cm - 2.78201cm 0.6cm - 12.60299cm + 20.5896cm @@ -1850,9 +1825,8 @@ Textbox2 1.13799cm - 4.68157cm 0.52945cm - 9.98771cm + 20.5896cm 1 @@ -1988,9 +1959,8 @@ Textbox8 0.28575cm - 0.6059cm 0.44125cm - 1.60042cm + 1.7158cm 1 @@ -379,7 +379,7 @@ Filtros 0.20788cm 0.6cm - 18.70841cm + 20cm 1 @@ -470,9 +470,9 @@ Textbox2 1.10271cm - 3.59188cm + 5cm 0.52945cm - 12.60299cm + 10cm 1 @@ -597,7 +595,7 @@ 0.06cm 1.60042cm 0.68085cm - 5.14936cm + 2.6852cm 2 - Textbox10 0.06cm - 7.24367cm + 5cm 0.68085cm - 2.92333cm + 5cm 3 - 0cm 0cm 19.26933cm 5 @@ -707,7 +706,7 @@ Textbox13 0.48502cm 0.45889cm - 6.74978cm + 4.28563cm 6