This commit is contained in:
Rakcsle Supertramp
2020-11-06 22:49:08 -07:00
20 changed files with 1933 additions and 970 deletions

View File

@@ -5551,7 +5551,6 @@ Public Class ClsContabilidad
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@TipoCambio", SqlDbType.Int).Value = TipoCambio .Add("@TipoCambio", SqlDbType.Int).Value = TipoCambio
.Add("@TCEspecifico", SqlDbType.Float).Value = TCEspecifico .Add("@TCEspecifico", SqlDbType.Float).Value = TCEspecifico
.Add("@Cuenta", SqlDbType.NVarChar).Value = Cuenta
End With End With
Try Try
SqlAdapter.Fill(Data) SqlAdapter.Fill(Data)

View File

@@ -1075,7 +1075,7 @@ Public Class ClsPaginas
End Get End Get
Set(ByVal value As DataTable) Set(ByVal value As DataTable)
Dim AppNombre As String = String.Format("GlobalDTSubProyectosUsuarios-{0}", CveEmpresa) Dim AppNombre As String = String.Format("GlobalDTProyectosUsuarios-{0}", CveEmpresa)
Application(AppNombre) = value Application(AppNombre) = value
End Set End Set
End Property End Property
@@ -6713,6 +6713,17 @@ Public Class ClsPaginas
params.Add(New ReportParameter("ClienteDatoExtra1", DatosCliente)) params.Add(New ReportParameter("ClienteDatoExtra1", DatosCliente))
End If End If
'ECONOLLANTAS - AGREGAR QR DE DESCARGA
If UsuarioActual.CveEmpresa = 141 Then
Dim QRDescarga As String = ""
Dim cfdi As New RVCFDI33.GeneraCFDI()
Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?P={Encripta($"File={Vta.SerieFolio}.pdf")}")
QRDescarga = Convert.ToBase64String(b)
params.Add(New ReportParameter("QRDescarga", QRDescarga))
End If
'INE COMPLEMENTOS 'INE COMPLEMENTOS
If UsuarioActual.CveEmpresa.Contiene(72, 1) Then If UsuarioActual.CveEmpresa.Contiene(72, 1) Then
Dim INETipoProceso As String = "" Dim INETipoProceso As String = ""

View File

@@ -551,6 +551,8 @@ Namespace Modelos
Public Property SeTimbro As Boolean Public Property SeTimbro As Boolean
Public Property SeTimbroNotaCredito As Boolean Public Property SeTimbroNotaCredito As Boolean
Public Property CveEstatus As Integer Public Property CveEstatus As Integer
Public Property CveMovimientoUsado As Integer
Public Property FolioUsado As String
End Class End Class
Public Function RegenerarPrePolizas(Optional TransaccionCompartida As SqlClient.SqlTransaction = Nothing, Optional ObjACTransac As ClsContPAQi = Nothing) As Boolean Public Function RegenerarPrePolizas(Optional TransaccionCompartida As SqlClient.SqlTransaction = Nothing, Optional ObjACTransac As ClsContPAQi = Nothing) As Boolean
@@ -707,7 +709,7 @@ Namespace Modelos
Next Next
End If End If
GuardarVenta(Me, ObjVentas, ObjConta, ObjInventario, ObjContr, DtDetalle, Me.CveNCaVincular, ObjContPaq, ObjBancos, ObjOS, ObjEventos, ObjCGame, ObjClientes, ObjAcum:=ObjAcum) GuardarVenta(Me, ObjVentas, ObjConta, ObjInventario, ObjContr, DtDetalle, Me.CveNCaVincular, ObjContPaq, ObjBancos, ObjOS, ObjEventos, ObjCGame, ObjClientes, ObjAcum:=ObjAcum, Resp:=Retorno)
'SI ES REFACTURACION 'SI ES REFACTURACION
Dim ObjNC As List(Of Object) = Nothing Dim ObjNC As List(Of Object) = Nothing
@@ -1341,7 +1343,7 @@ Namespace Modelos
End If End If
End Sub End Sub
Public Sub GuardarVenta(ByRef factura As Modelos.Factura, ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, ByRef TmpDTDetalle As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, Optional ByRef ObjOS As ClsOS = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjCGame As ClsCGame = Nothing, ByRef Optional ObjCliente As ClsClientes = Nothing, Optional EsNotaCredito As Boolean = False, Optional ObjAcum As ClsAcumuladores = Nothing) Public Sub GuardarVenta(ByRef factura As Modelos.Factura, ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, ByRef TmpDTDetalle As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, Optional ByRef ObjOS As ClsOS = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjCGame As ClsCGame = Nothing, ByRef Optional ObjCliente As ClsClientes = Nothing, Optional EsNotaCredito As Boolean = False, Optional ObjAcum As ClsAcumuladores = Nothing, ByRef Optional Resp As MMensajeFactura = Nothing)
Dim Msgok As New StringBuilder Dim Msgok As New StringBuilder
factura.CvePrePoliza = ObjConta.AddPrePolizas("Modelos/GuardarVentaM", factura.CvePlantillaPoliza, factura.TotalTC, factura.TotalTC, factura.CveMoneda, factura.Fecha, If(factura.CveEmpresaCRM > 0, factura.EmpresaCRM, factura.Cliente.Nombre), factura.CveUsuario, factura.CveEmpresa) factura.CvePrePoliza = ObjConta.AddPrePolizas("Modelos/GuardarVentaM", factura.CvePlantillaPoliza, factura.TotalTC, factura.TotalTC, factura.CveMoneda, factura.Fecha, If(factura.CveEmpresaCRM > 0, factura.EmpresaCRM, factura.Cliente.Nombre), factura.CveUsuario, factura.CveEmpresa)
@@ -1375,11 +1377,6 @@ Namespace Modelos
factura.Timbre.Comprobante.Serie = ObjVentas.Serie factura.Timbre.Comprobante.Serie = ObjVentas.Serie
factura.Timbre.Comprobante.Folio = ObjVentas.Folio.ToString factura.Timbre.Comprobante.Folio = ObjVentas.Folio.ToString
If Not GuardarUsados(ObjVentas.IniciaTransacSQL, ObjVentas, factura) Then
ErrorList.Add("Error al guardar usados")
End If
If factura.TipoDocto = "Egs" AndAlso NuevaFactura = 1 Then If factura.TipoDocto = "Egs" AndAlso NuevaFactura = 1 Then
If DtVentasNC Is Nothing Then If DtVentasNC Is Nothing Then
InicializaDTVentasNC() InicializaDTVentasNC()
@@ -1452,6 +1449,11 @@ Namespace Modelos
End If End If
Next Next
'GUARDAR USADOS
If Not GuardarUsados(ObjAcum, ObjVentas, ObjInventario, factura, Resp) Then
ErrorList.Add("Error al guardar usados")
End If
'BONIFICACION USADOS 'BONIFICACION USADOS
If UsadosBonificacion IsNot Nothing AndAlso UsadosBonificacion.Count > 0 AndAlso TipoBonificacion > 0 Then If UsadosBonificacion IsNot Nothing AndAlso UsadosBonificacion.Count > 0 AndAlso TipoBonificacion > 0 Then
For Each CveMovto In UsadosBonificacion For Each CveMovto In UsadosBonificacion
@@ -1627,10 +1629,10 @@ Namespace Modelos
If ErrorList.Count = 0 Then If ErrorList.Count = 0 Then
'prepoliza 'prepoliza
GuardarVentaPrePolizas(factura, ObjConta, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos) GuardarVentaPrePolizas(factura, ObjConta, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, ObjInventario:=ObjInventario)
If ErrorList.Count = 0 Then If ErrorList.Count = 0 Then
'inventarios 'inventarios
GuardarVentaInventarios(factura, ObjInventario, ObjConta) GuardarVentaInventarios(factura, ObjInventario, ObjConta, ObjVentas, ObjAcum)
'GuardaRecepcionUsados(factura, ObjInventario, ObjConta) 'GuardaRecepcionUsados(factura, ObjInventario, ObjConta)
@@ -1910,7 +1912,7 @@ Namespace Modelos
DtVentasNC.Rows.Add(Dr) DtVentasNC.Rows.Add(Dr)
End If End If
End Sub End Sub
Private Function GuardarUsados(SqlTransaccion As SqlClient.SqlTransaction, ByRef ObjVentas As ClsVentas, factura As Modelos.Factura) As Boolean Private Function GuardarUsados(ByRef ObjAcum As ClsAcumuladores, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, factura As Modelos.Factura, ByRef Optional Resp As MMensajeFactura = Nothing) As Boolean
Dim Resultado As Boolean = True Dim Resultado As Boolean = True
If UsuarioActual.Empresa.Funcionalidad(533).ToEntero > 0 AndAlso factura.TipoDocto.Contiene("Ing", "Rem") Then If UsuarioActual.Empresa.Funcionalidad(533).ToEntero > 0 AndAlso factura.TipoDocto.Contiene("Ing", "Rem") Then
@@ -1918,8 +1920,6 @@ Namespace Modelos
If factura.TipoDocto = "Ing" AndAlso factura.Cliente.EsDistribuidor Then If factura.TipoDocto = "Ing" AndAlso factura.Cliente.EsDistribuidor Then
Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero
Dim ObjAcum As New ClsAcumuladores(SqlTransaccion)
For Each drow As DataRow In factura.DtDetalle.Rows For Each drow As DataRow In factura.DtDetalle.Rows
If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then If drow("CveTamaño").ToString.ToEntero > 0 And (CvePSPSA <> drow("CvePS").ToString.ToEntero) Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, factura.CveVenta, UsuarioActual.CveUsuario, If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, drow("Cantidad").ToString.ToEntero, drow("CveTamaño").ToString.ToEntero, 2, factura.CveVenta, UsuarioActual.CveUsuario,
@@ -1944,6 +1944,64 @@ Namespace Modelos
End If End If
End If End If
'SI ES UNA RNC DE CARGO GENERA EL MOVIMIENTO DE ALMACEN AQUI
If factura.TipoDocto = "RNC" AndAlso factura.Num1 = 1 AndAlso factura.DtMovimientosUsados IsNot Nothing AndAlso ObjAcum IsNot Nothing Then
'Dim Mensaje As String = ""
Dim CveMovimiento = ObjInventario.AddMovimiento(factura.CveAlmacen, factura.CveConceptoMovimiento, 1, factura.Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, factura.CveVenta,
CveSubProyecto, CveActivoFijo:=-1, Guia:="", Observaciones:=factura.ObservacionesMovimiento, CvePersonal:=-1, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, Modulo:="RU/G")
If CveMovimiento <= 0 Then
'Mensaje = "Error al guardar los movimientos"
Resultado = False
Else
For Each Dr As DataRow In factura.DtMovimientosUsados.Rows
Dim ImporteConcepto As Decimal = 0
If factura.CveConceptoMovimiento = 42 AndAlso factura.CveMoneda = 2 Then
ImporteConcepto = Dr("PU").ToString.ToDecimal * GlobalTipoCambio(factura.Fecha).ToDecimal
Else
ImporteConcepto = Dr("PU").ToString.ToDecimal
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
'Mensaje = "Error al guardar los movimientos"
Resultado = False
Exit For
End If
If CveVenta > 0 AndAlso Not ObjVentas.UpdateVentaUsadoRecibido(CveVenta, Dr("CvePS").ToString.ToEntero, True, CveMovimiento) Then
'Mensaje = "Error al actualizar el recibo de los usados"
Resultado = False
Exit For
End If
'si es selectedvalue = 42, es entrada ,3 -salida
Dim CveConceptoUsados As Integer = If(factura.CveConceptoMovimiento = 42, 1, 2)
If factura.Cliente.EsDistribuidor AndAlso factura.CveConceptoMovimiento = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
' Mensaje = "Error al guardar Movimientos de distribuidor"
Resultado = False
Exit For
End If
End If
Next
End If
Resp.CveMovimientoUsado = CveMovimiento
If CveMovimiento > 0 Then
If ObjInventario.GetMovimientos(CveMovimiento, -1, -1, UsuarioActual.CveEmpresa) Then
Resp.FolioUsado = ObjInventario.DtResultados.FiltroPrimeroValor("Folio")
End If
End If
End If
Return Resultado Return Resultado
End Function End Function
@@ -1968,7 +2026,7 @@ Namespace Modelos
Return Resultado Return Resultado
End Function End Function
Private Sub GuardarVentaPrePolizas(ByRef factura As Modelos.Factura, ByRef ObjConta As ClsContabilidad, TmpDTDetalleMovimientos As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing) Private Sub GuardarVentaPrePolizas(ByRef factura As Modelos.Factura, ByRef ObjConta As ClsContabilidad, TmpDTDetalleMovimientos As DataTable, CveNCaVincular As Integer, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, ByRef Optional ObjInventario As ClsInventarios = Nothing)
Dim CveIE As Integer = -1 Dim CveIE As Integer = -1
Dim DT As DataTable = Nothing Dim DT As DataTable = Nothing
@@ -1986,7 +2044,7 @@ Namespace Modelos
'P R E P O L I Z A S 'P R E P O L I Z A S
If Me.TipoDocto <> "Cot" Then If Me.TipoDocto <> "Cot" Then
If Me.CvePrePoliza > 0 Then If Me.CvePrePoliza > 0 Then
If ProcesoPrepolizas(factura, ObjConta, CveIE, TmpDTDetalleMovimientos, objContPaqi, 1, ObjBancos, ObjVentas, ObjEventos:=ObjEventos) Then If ProcesoPrepolizas(factura, ObjConta, CveIE, TmpDTDetalleMovimientos, objContPaqi, 1, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, ObjInventario:=ObjInventario) Then
ErrorList.Add("Ocurrió un error al agregar los Movimientos de la prepoliza.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico") ErrorList.Add("Ocurrió un error al agregar los Movimientos de la prepoliza.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
End If End If
Else Else
@@ -1997,7 +2055,7 @@ Namespace Modelos
Private Function ProcesoPrepolizas(ObjFactura As Factura, ByRef ObjConta As ClsContabilidad, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi, Private Function ProcesoPrepolizas(ObjFactura As Factura, ByRef ObjConta As ClsContabilidad, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi,
Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef Optional ObjEventos As ClsOIEventos = Nothing,
Optional ByRef DtRemisionesRelacionadas As DataTable = Nothing, Optional SeCancelaRemisionProceso As Boolean = False, Optional CancelarRemisiones As Boolean = False, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional ByRef DtRemisionesRelacionadas As DataTable = Nothing, Optional SeCancelaRemisionProceso As Boolean = False, Optional CancelarRemisiones As Boolean = False, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing,
Optional CveEstatusRefacturacion As Integer = 0) As Boolean Optional CveEstatusRefacturacion As Integer = 0, Optional ByRef ObjInventario As ClsInventarios = Nothing) As Boolean
Dim ErrorPrepoliza As Boolean = False Dim ErrorPrepoliza As Boolean = False
Try Try
Dim DT As DataTable Dim DT As DataTable
@@ -2177,12 +2235,48 @@ Namespace Modelos
IdCtaContableCliente = IdCtaContable IdCtaContableCliente = IdCtaContable
CveCuentaCliente = CveCuenta CveCuentaCliente = CveCuenta
If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then Dim CveMovimiento As Integer = -1
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then Dim CveAlmacen As Integer = -1
If ObjInventario IsNot Nothing AndAlso ObjInventario.GetInv_Mov(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then
CveMovimiento = ObjInventario.DtResultados.FiltroPrimeroValor("CveMovimiento", "CvePS IS NULL AND CveConcepto = 42").ToEntero()
CveAlmacen = ObjInventario.DtResultados.FiltroPrimeroValor("CveAlmacen", "CvePS IS NULL AND CveConcepto = 42").ToEntero()
End If
'VERIFICA SI TIENE MOVIMIENTO DE ENTRADA DE USADO
If CveMovimiento > 0 AndAlso CveAlmacen > 0 Then
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
Dim Importe68 As Decimal = ObjInventario.DtResultados.SUMD("Total").RoundSQL
Dim IdCtaContable68 = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={CveAlmacen}").ToEntero
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, Importe68, Referencia, 68, Concepto, FechaMovimiento, IdCtaContable68, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=Importe68, Contabilizable:=False) Then
ErrorPrepoliza = True
End If
Dim Importe318 As Decimal = importeMovimiento - Importe68
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, Importe318, Referencia, 318, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Importe318, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
Else
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
Else Else
ErrorPrepoliza = True If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
Else
ErrorPrepoliza = True
End If
End If End If
importeMovimiento = 0 importeMovimiento = 0
@@ -3487,7 +3581,7 @@ Namespace Modelos
Return OcurrioError Return OcurrioError
End Function End Function
Private Function GuardarVentaInventarios(ByRef factura As Modelos.Factura, ObjInventario As ClsInventarios, ObjConta As ClsContabilidad) As Boolean Private Function GuardarVentaInventarios(ByRef factura As Modelos.Factura, ObjInventario As ClsInventarios, ObjConta As ClsContabilidad, ObjVentas As ClsVentas, ObjAcum As ClsAcumuladores) As Boolean
Dim OcurrioError As Boolean = False Dim OcurrioError As Boolean = False
If UsuarioActual.Empresa.UsaInventarios AndAlso factura.TipoDocto.Contiene("Ing", "Egs", "Rem") Then If UsuarioActual.Empresa.UsaInventarios AndAlso factura.TipoDocto.Contiene("Ing", "Egs", "Rem") Then
@@ -4311,7 +4405,7 @@ Namespace Modelos
If CveEstatusFacturaAsignado <= 0 Then If CveEstatusFacturaAsignado <= 0 Then
Try Try
If ObjFactura.FolioFiscal <> "" Then If ObjFactura.FolioFiscal <> "" Then
If ObjFactura.TipoDocto.Contiene("Ing", "Ant", "Dev", "Egs", "RNC") Then If ObjFactura.TipoDocto.Contiene("Ing", "Ant", "Dev", "Egs") Then
Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), UsuarioActual.Empresa.FacturaProduccion) Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), UsuarioActual.Empresa.FacturaProduccion)
@@ -4891,6 +4985,8 @@ Namespace Modelos
CveEstatus = 12 CveEstatus = 12
Case "Com" Case "Com"
CveEstatus = 9 CveEstatus = 9
Case "Cot"
CveEstatus = 10
Case "Ped", "DPe" Case "Ped", "DPe"
CveEstatus = 14 CveEstatus = 14
End Select End Select
@@ -5591,6 +5687,7 @@ Namespace Modelos
Public Property FacturaMateriales As Integer Public Property FacturaMateriales As Integer
Public Property TipoDescuento As Integer Public Property TipoDescuento As Integer
Public Property SubProyectoPorcentajeIVA As Double Public Property SubProyectoPorcentajeIVA As Double
Public Property PorcentajeIVA As Double
Public Property CveAlmacenOrigenContrato As Integer Public Property CveAlmacenOrigenContrato As Integer
Public Property CveDevolucion As Integer Public Property CveDevolucion As Integer
Public Property TotalOtrosConceptos As Decimal Public Property TotalOtrosConceptos As Decimal
@@ -5604,6 +5701,9 @@ Namespace Modelos
Public Property CveAnticipo As Integer Public Property CveAnticipo As Integer
Public Property RemisionesLista As List(Of Integer) Public Property RemisionesLista As List(Of Integer)
Public Property CveAlmacen As Integer Public Property CveAlmacen As Integer
Public Property CveConceptoMovimiento As Integer
Public Property ObservacionesMovimiento As String
Public Property DtMovimientosUsados As DataTable
Public Property CveAlmacenDevolucion As Integer Public Property CveAlmacenDevolucion As Integer
Public Property CveVenta As Integer Public Property CveVenta As Integer
Public Property CveEmpresa As Integer Public Property CveEmpresa As Integer
@@ -5982,14 +6082,16 @@ Namespace Modelos
Public Property FemsaFactura As Modelos.FemsaFactura Public Property FemsaFactura As Modelos.FemsaFactura
Public Sub SetSubProyecto() Public Sub SetSubProyecto()
If CveSubProyecto > 0 Then If CveSubProyecto > 0 AndAlso UsuarioActual IsNot Nothing Then
SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}")) SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
End If End If
End Sub End Sub
Public Sub SetSubProyectoMatriz() Public Sub SetSubProyectoMatriz()
Dim Row As Data.DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1") If UsuarioActual IsNot Nothing Then
If Not IsNothing(Row) Then Dim Row As Data.DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1")
SubProyectoMatriz = New Modelos.SubProyectoModel(Row) If Not IsNothing(Row) Then
SubProyectoMatriz = New Modelos.SubProyectoModel(Row)
End If
End If End If
End Sub End Sub
Public Sub SetCliente() Public Sub SetCliente()
@@ -6033,7 +6135,7 @@ Namespace Modelos
End Sub End Sub
Public Sub SetSubProyecto(obj As ClsPaginas) Public Sub SetSubProyecto(obj As ClsPaginas)
If CveSubProyecto > 0 AndAlso Not IsNothing(obj) Then If CveSubProyecto > 0 AndAlso Not IsNothing(obj) Then
SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}")) SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveEmpresa:=obj.UsuarioActual.CveEmpresa).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
End If End If
End Sub End Sub
Public Sub SetSubProyectoMatriz(obj As ClsPaginas) Public Sub SetSubProyectoMatriz(obj As ClsPaginas)

135
Ashx/E141.ashx Normal file
View File

@@ -0,0 +1,135 @@
<%@ WebHandler Language="VB" Class="E141" %>
Imports System
Imports System.Web
Imports System.Data
Imports System.Net.Http
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Imports Extensiones
Imports System.IO
Public Class E141 : Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
Private ReadOnly Property CveEmpresa As Integer = 141
Public ReadOnly Property EsProduccion As Boolean
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then
Return False
Else
Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1")
End If
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim retorno As String = "no se encontro la variable"
Try
Dim Params = If(context.Request("P") = Nothing, "", context.Request("P").ToString())
If Not String.IsNullOrEmpty(Params) Then
Dim UrlParametros As Hashtable = Parametros(Decripta(Params))
Dim File As String = UrlParametros("FILE").ToString()
If Not String.IsNullOrEmpty(File) Then
ImprimirbytesPDF(context, DescargarFactura(File), File)
End If
End If
Catch ex As Exception
retorno = ex.ToString()
ex.GuardaLog(ex.ToString())
context.Response.Write(retorno)
End Try
End Sub
'Private Function DescargarFactura(CveVenta As Integer) As Byte()
' Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?P={1}", ClsPaginas.UrlSitio, Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=0", CveVenta))))
' Dim File As Byte() = Nothing
' Try
' Using httpClient = New HttpClient()
' httpClient.Timeout = New TimeSpan(0, 15, 0)
' Using request = New HttpRequestMessage(HttpMethod.Get, Url)
' request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks)))
' Dim response = httpClient.SendAsync(request).Result
' If response.StatusCode = Net.HttpStatusCode.OK Then
' File = response.Content.ReadAsByteArrayAsync().Result
' End If
' End Using
' End Using
' Catch ex As Exception
' File = Nothing
' OnError("Ocurrió un error al descargar la factura", ex)
' End Try
' Return File
'End Function
Private Function DescargarFactura(FilePDF As String) As Byte()
Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?TipoDocto=Ing&File={1}&TipoArchivo=PDF", "http://localhost/", FilePDF))
Dim File As Byte() = Nothing
Try
Using httpClient = New HttpClient()
httpClient.Timeout = New TimeSpan(0, 1, 0)
Using request = New HttpRequestMessage(HttpMethod.Get, Url)
request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks)))
Dim response = httpClient.SendAsync(request).Result
If response.StatusCode = Net.HttpStatusCode.OK Then
File = response.Content.ReadAsByteArrayAsync().Result
End If
End Using
End Using
Catch ex As Exception
File = Nothing
OnError("Ocurrió un error al descargar la factura", ex)
End Try
Return File
End Function
Public Sub ImprimirbytesPDF(ByVal context As HttpContext, bytes As Byte(), NombreArchivo As String)
'limpio ReportViwer
Dim mimeType As String = Nothing
Dim extension As String = Nothing
Try
bytes = bytes
context.Response.Buffer = True
context.Response.Clear()
context.Response.ContentType = mimeType
context.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", NombreArchivo))
context.Response.BinaryWrite(bytes) ' create the file
context.Response.Flush() ' send it to the client to download
context.Response.SuppressContent = True
context.ApplicationInstance.CompleteRequest()
context.Response.End()
Catch ex As Exception
End Try
End Sub
Private Function Parametros(Cadena As String) As Hashtable
Dim P1() As String = Cadena.Split("&"c)
Dim Tmp As String
Dim P2() As String
Dim URLParametros As New Hashtable
For Each Tmp In P1
P2 = Tmp.Replace("%26%", "&").Split("="c)
URLParametros.Add(P2(0).ToString.ToUpper, P2(1))
Next
Return URLParametros
End Function
End Class

View File

@@ -344,7 +344,7 @@ Public Class SIGFacturacionCiclica : Implements IHttpHandler, IRequiresSessionSt
Dim DtDetalle As DataTable = Nothing Dim DtDetalle As DataTable = Nothing
Dim objContratos As New ClsContratos Dim objContratos As New ClsContratos
If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then
DtDetalle = objContratos.DtResultados DtDetalle = objContratos.DtResultados.FiltraParametros("CveTipoPresupuesto=2")
Else Else
DtDetalle = Nothing DtDetalle = Nothing
End If End If

View File

@@ -1657,19 +1657,18 @@ Partial Class Bancos_ProveedoresAbonar
importeMX = 0 importeMX = 0
End If End If
Else Else
ImporteMovimiento = gvr.DataKey("IVAPorPagar").ToDecimal * PorcentajePago
If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento importeMX = ImporteMovimiento
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
End If End If
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)
@@ -1723,19 +1722,18 @@ Partial Class Bancos_ProveedoresAbonar
importeMX = 0 importeMX = 0
End If End If
Else Else
ImporteMovimiento = gvr.DataKey("IVAPorPagar").ToDecimal * PorcentajePago
If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento importeMX = ImporteMovimiento
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)
End If End If
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)
@@ -1760,9 +1758,9 @@ Partial Class Bancos_ProveedoresAbonar
IdCtaContable = If(IdCtaIVAAcreditable > 0, IdCtaIVAAcreditable, 0) IdCtaContable = If(IdCtaIVAAcreditable > 0, IdCtaIVAAcreditable, 0)
'se registra el iva no acreditable 'se registra el iva no acreditable
If gvr.DataKey("IVANoDeducible").ToDecimal > 0 Then If gvr.DataKey("IVAPorPagarNoDeducible").ToDecimal > 0 Then
Dim ImporteNOIVA As Decimal = gvr.DataKey("IVANoDeducible").ToDecimal * PorcentajePago Dim ImporteNOIVA As Decimal = gvr.DataKey("IVAPorPagarNoDeducible").ToDecimal * PorcentajePago
If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteNOIVA, Referencia, 280, ConceptoMovimiento, FechaMovimiento, IdCtaContableNoIVA, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=ImporteNOIVA, ImporteME:=If(TipoCambioPago = 1, 0, ImporteMovimiento), CveCuenta:=CveCuenta, TipoCambio:=TipoCambioGeneral, PorcentajeImpuesto:=PorcentajeImpuesto) Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteNOIVA, Referencia, 280, ConceptoMovimiento, FechaMovimiento, IdCtaContableNoIVA, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=ImporteNOIVA, ImporteME:=If(TipoCambioPago = 1, 0, ImporteMovimiento), CveCuenta:=CveCuenta, TipoCambio:=TipoCambioGeneral, PorcentajeImpuesto:=PorcentajeImpuesto) Then
MsgError = "No se pudo insertar la póliza" MsgError = "No se pudo insertar la póliza"
@@ -1778,19 +1776,16 @@ Partial Class Bancos_ProveedoresAbonar
End If End If
Case 25 'IEPS X Acreditar Case 25 'IEPS X Acreditar
Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal
ImporteMovimiento = gvr.DataKey("IEPSPorPagar").ToDecimal * PorcentajePago
If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento importeMX = ImporteMovimiento
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
End If End If
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)
@@ -1806,19 +1801,16 @@ Partial Class Bancos_ProveedoresAbonar
End If End If
Case 26 'IEPS Acreditable Case 26 'IEPS Acreditable
Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal
ImporteMovimiento = gvr.DataKey("IEPSPorPagar").ToDecimal * PorcentajePago
If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento importeMX = ImporteMovimiento
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * tipoCambioCompra importeMX = ImporteMovimiento * tipoCambioCompra
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal
ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago)
importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)
End If End If
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)

View File

@@ -19,7 +19,8 @@ Partial Class Bancos_RepCxCCliente
DdlMoneda.DataSource = GlobalDTMonedas() DdlMoneda.DataSource = GlobalDTMonedas()
DdlMoneda.DataBind() DdlMoneda.DataBind()
If UsuarioActual.CveEmpresa = 119 Then Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False)
If EsWS Then
DdlClientesWS.setEsWebService(True) DdlClientesWS.setEsWebService(True)
Else Else
DdlClientesWS.setEsWebService(False) DdlClientesWS.setEsWebService(False)

View File

@@ -826,7 +826,7 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("Chofer", Chofer)) params.Add(New ReportParameter("Chofer", Chofer))
params.Add(New ReportParameter("Placa", Placa)) params.Add(New ReportParameter("Placa", Placa))
params.Add(New ReportParameter("Recibio", Recibio)) params.Add(New ReportParameter("Recibio", Recibio))
params.Add(New ReportParameter("FechaEntrega", FechaEntrega.ToString())) params.Add(New ReportParameter("FechaEntrega", FechaEntrega.ToDateTime().ToString("dd/MM/yyyy")))
params.Add(New ReportParameter("EspecifUnidad", EspecifUnidad)) params.Add(New ReportParameter("EspecifUnidad", EspecifUnidad))
params.Add(New ReportParameter("DireccionOrigen", SBDireccionO.ToString)) params.Add(New ReportParameter("DireccionOrigen", SBDireccionO.ToString))
params.Add(New ReportParameter("DireccionDestino", SBDireccionD.ToString)) params.Add(New ReportParameter("DireccionDestino", SBDireccionD.ToString))
@@ -3241,8 +3241,8 @@ Partial Class PopUpVerFactura
params.Add(New ReportParameter("Direccion", Almacen)) params.Add(New ReportParameter("Direccion", Almacen))
params.Add(New ReportParameter("FechaConFormato", FechaConFormato)) params.Add(New ReportParameter("FechaConFormato", FechaConFormato))
params.Add(New ReportParameter("FechaInicial", Fecha)) 'params.Add(New ReportParameter("FechaInicial", Fecha))
params.Add(New ReportParameter("FechaFinal", Today.ToString)) 'params.Add(New ReportParameter("FechaFinal", Today.ToString("dd/MM/yyyy")))
params.Add(New ReportParameter("Sucursal", "Sucursal")) params.Add(New ReportParameter("Sucursal", "Sucursal"))
params.Add(New ReportParameter("Cliente", NombreCliente)) params.Add(New ReportParameter("Cliente", NombreCliente))

View File

@@ -109,7 +109,7 @@
<div class="row"> <div class="row">
<label class="col-md-1 truncate">Num. Cuenta</label> <label class="col-md-1 truncate">Num. Cuenta</label>
<div class="col-md-2"> <div class="col-md-2">
<asp:TextBox runat="server" ID="TxtCuenta" CssClass="form-control input-sm" /> <asp:DropDownList runat="server" ID="DdlCuenta" CssClass="select2me" Width="240px" DataTextField="NumCuentaMoneda" DataValueField="CveCuenta" />
</div> </div>
</div> </div>
</div> </div>

View File

@@ -66,6 +66,8 @@ public partial class Contabilidad_RepIVA : ClsPaginas
LnkAccionesDIOT.Visible = true; LnkAccionesDIOT.Visible = true;
DdlCuenta.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:UsuarioActual.CveEmpresa, CveTipoCuenta:2);
DdlCuenta.DataBind();
} }
public void Consulta() public void Consulta()
@@ -73,27 +75,26 @@ public partial class Contabilidad_RepIVA : ClsPaginas
if (TipoCambio == 3 && TxtEspecifico.Text != "") { TCEspecifico = TxtEspecifico.Text.ToDouble(); } else { TCEspecifico = -1; } if (TipoCambio == 3 && TxtEspecifico.Text != "") { TCEspecifico = TxtEspecifico.Text.ToDouble(); } else { TCEspecifico = -1; }
int Conciliado = DdlTipoMovto.SelectedValue.ToEntero(); int Conciliado = DdlTipoMovto.SelectedValue.ToEntero();
LblMsgAcreditable.Text = ""; // lbl de mensajes de negativos LblMsgAcreditable.Text = ""; // lbl de mensajes de negativos
string Cuenta = TxtCuenta.Text == "" ? "-1" : TxtCuenta.Text;
ClsContabilidad ObjCont = new ClsContabilidad(); ClsContabilidad ObjCont = new ClsContabilidad();
if (ObjCont.GetRepIVA(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), 1, UsuarioActual.CveUsuario, -1, Conciliado, UsuarioActual.CveEmpresa, TipoCambio, TCEspecifico)) if (ObjCont.GetRepIVA(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), 1, UsuarioActual.CveUsuario, DdlCuenta.SelectedValue.ToEntero(), Conciliado, UsuarioActual.CveEmpresa, TipoCambio, TCEspecifico))
{ {
GvT.DataSource = ObjCont.DtResultados; GvT.DataSource = ObjCont.DtResultados;
DtIVATrasladado = ObjCont.DtResultados; DtIVATrasladado = ObjCont.DtResultados;
if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 1, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{ {
GvIEPSA.DataSource = ObjCont.DtResultados; GvIEPSA.DataSource = ObjCont.DtResultados;
DtIEPSA = ObjCont.DtResultados; DtIEPSA = ObjCont.DtResultados;
} }
if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 2, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 2, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{ {
GvIVAA.DataSource = ObjCont.DtResultados; GvIVAA.DataSource = ObjCont.DtResultados;
DtIVAA = ObjCont.DtResultados; DtIVAA = ObjCont.DtResultados;
} }
} }
if (ObjCont.GetRepIVA(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), 2, UsuarioActual.CveUsuario, -1, Conciliado, UsuarioActual.CveEmpresa, TipoCambio, TCEspecifico)) if (ObjCont.GetRepIVA(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), 2, UsuarioActual.CveUsuario, DdlCuenta.SelectedValue.ToEntero(), Conciliado, UsuarioActual.CveEmpresa, TipoCambio, TCEspecifico))
{ {
GvA.DataSource = ObjCont.DtResultados; GvA.DataSource = ObjCont.DtResultados;
DtIVAAcreditable = ObjCont.DtResultados; DtIVAAcreditable = ObjCont.DtResultados;
@@ -103,7 +104,7 @@ public partial class Contabilidad_RepIVA : ClsPaginas
} }
if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 3, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 3, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{ {
GvIVA2.DataSource = ObjCont.DtResultados; GvIVA2.DataSource = ObjCont.DtResultados;
} }

View File

@@ -1009,16 +1009,17 @@ Partial Class Contratos_Default
ChkAplicaFacCiclica.Checked = CBool(ObjContratos.DtResultados.Rows(0)("FacturacionCicilica")) ChkAplicaFacCiclica.Checked = CBool(ObjContratos.DtResultados.Rows(0)("FacturacionCicilica"))
If ChkAplicaFacCiclica.Checked Then If ChkAplicaFacCiclica.Checked Then
CargaPeriodos()
ChkFacAutomatica.Checked = CBool(ObjContratos.DtResultados.Rows(0)("FacturacionCiclicaAutomatico")) ChkFacAutomatica.Checked = CBool(ObjContratos.DtResultados.Rows(0)("FacturacionCiclicaAutomatico"))
DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo"))
DdlPeriodo_SelectedIndexChanged(DdlPeriodo, EventArgs.Empty)
DdlDiaFact.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("DiaMesFacturacion").ToString()) DdlDiaFact.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("DiaMesFacturacion").ToString())
TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString
ChkAplicaFacCiclica_CheckedChanged(ChkAplicaFacCiclica, EventArgs.Empty) ChkAplicaFacCiclica_CheckedChanged(ChkAplicaFacCiclica, EventArgs.Empty)
If ObjContratos.DtResultados.Rows(0)("CvePeriodo").ToString().ToEntero() > 0 Then
DdlPeriodo.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CvePeriodo").ToString().ToEntero())
DdlPeriodo_SelectedIndexChanged(DdlPeriodo, EventArgs.Empty)
End If
UpFacCiclica.Update()
End If End If
@@ -3558,6 +3559,8 @@ Partial Class Contratos_Default
End Sub End Sub
Private Sub CargaPeriodos() Private Sub CargaPeriodos()
DdlPeriodo.Items.Clear()
Dim ObjContratos As New ClsContratos Dim ObjContratos As New ClsContratos
If ObjContratos.GetPeriodos(-1, UsuarioActual.CveEmpresa) Then If ObjContratos.GetPeriodos(-1, UsuarioActual.CveEmpresa) Then
DtPeriodo = ObjContratos.DtResultados DtPeriodo = ObjContratos.DtResultados
@@ -3568,6 +3571,8 @@ Partial Class Contratos_Default
ObjContratos.Dispose() ObjContratos.Dispose()
DdlPeriodo.DataBind() DdlPeriodo.DataBind()
DdlPeriodo.Items.Insert(0, New ListItem("Seleccione", "-1"))
UpGral.Update() UpGral.Update()
End Sub End Sub
Protected Sub DdlPeriodo_SelectedIndexChanged(sender As Object, e As EventArgs) Protected Sub DdlPeriodo_SelectedIndexChanged(sender As Object, e As EventArgs)
@@ -4490,6 +4495,7 @@ Partial Class Contratos_Default
Protected Sub ChkAplicaFacCiclica_CheckedChanged(sender As Object, e As EventArgs) Protected Sub ChkAplicaFacCiclica_CheckedChanged(sender As Object, e As EventArgs)
DivFacCiclica.Visible = ChkAplicaFacCiclica.Checked DivFacCiclica.Visible = ChkAplicaFacCiclica.Checked
DivCiclosComerciales.Visible = ChkAplicaFacCiclica.Checked DivCiclosComerciales.Visible = ChkAplicaFacCiclica.Checked
CargaPeriodos()
UpFacCiclica.Update() UpFacCiclica.Update()
End Sub End Sub

View File

@@ -542,7 +542,7 @@ Partial Class Contratos_FacturacionMasiva
Dim objContratos As New ClsContratos Dim objContratos As New ClsContratos
If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then
DTDetalle = objContratos.DtResultados DTDetalle = objContratos.DtResultados.FiltraParametros("CveTipoPresupuesto=2")
Else Else
DTDetalle = Nothing DTDetalle = Nothing
End If End If

View File

@@ -361,7 +361,7 @@
<Value>Sello Digital del CFDI:</Value> <Value>Sello Digital del CFDI:</Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6pt</FontSize>
</Style> </Style>
</TextRun> </TextRun>
</TextRuns> </TextRuns>
@@ -373,7 +373,7 @@
<Value>=Parameters!SelloCFDI.Value</Value> <Value>=Parameters!SelloCFDI.Value</Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6pt</FontSize>
<FontWeight>Normal</FontWeight> <FontWeight>Normal</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -386,7 +386,7 @@
<Value>Sello Digital del SAT:</Value> <Value>Sello Digital del SAT:</Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6pt</FontSize>
<FontWeight>Normal</FontWeight> <FontWeight>Normal</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -399,7 +399,7 @@
<Value>=Parameters!SelloSAT.Value</Value> <Value>=Parameters!SelloSAT.Value</Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6pt</FontSize>
<FontWeight>Normal</FontWeight> <FontWeight>Normal</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -412,7 +412,7 @@
<Value>Cadena Original del complemento de certificación digital del SAT:</Value> <Value>Cadena Original del complemento de certificación digital del SAT:</Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6pt</FontSize>
<FontWeight>Normal</FontWeight> <FontWeight>Normal</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -425,7 +425,7 @@
<Value>=Parameters!CadenaOriginal.Value</Value> <Value>=Parameters!CadenaOriginal.Value</Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6pt</FontSize>
<FontWeight>Normal</FontWeight> <FontWeight>Normal</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -438,7 +438,7 @@
<Value>RFC del Proveedor de Certificación: </Value> <Value>RFC del Proveedor de Certificación: </Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>6.5pt</FontSize> <FontSize>6pt</FontSize>
<FontWeight>Normal</FontWeight> <FontWeight>Normal</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -451,7 +451,7 @@
<Value>Este documento es una representación impresa de un CFDI</Value> <Value>Este documento es una representación impresa de un CFDI</Value>
<Style> <Style>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
<FontSize>8pt</FontSize> <FontSize>6pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -479,7 +479,7 @@
<KeepTogether>true</KeepTogether> <KeepTogether>true</KeepTogether>
<Top>6.06618in</Top> <Top>6.06618in</Top>
<Left>0.06752in</Left> <Left>0.06752in</Left>
<Height>1.60919in</Height> <Height>1.42169in</Height>
<Width>8.23953in</Width> <Width>8.23953in</Width>
<Style> <Style>
<Border> <Border>
@@ -2257,8 +2257,8 @@
<Source>Embedded</Source> <Source>Embedded</Source>
<Value>ID3</Value> <Value>ID3</Value>
<Sizing>FitProportional</Sizing> <Sizing>FitProportional</Sizing>
<Top>11.63749cm</Top> <Top>21.4598cm</Top>
<Left>15.78306cm</Left> <Left>0.28014cm</Left>
<Height>0.93046cm</Height> <Height>0.93046cm</Height>
<Width>5.37042cm</Width> <Width>5.37042cm</Width>
<ZIndex>17</ZIndex> <ZIndex>17</ZIndex>
@@ -2275,10 +2275,10 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>DESCARGA NUESTRA APLICACIÓN</Value> <Value>DESCARGA NUESTRA NUEVA APLICACIÓN</Value>
<Style> <Style>
<FontFamily>CALIbri</FontFamily> <FontFamily>CALIbri</FontFamily>
<FontSize>9pt</FontSize> <FontSize>12pt</FontSize>
<FontWeight>Bold</FontWeight> <FontWeight>Bold</FontWeight>
</Style> </Style>
</TextRun> </TextRun>
@@ -2289,10 +2289,10 @@
</Paragraph> </Paragraph>
</Paragraphs> </Paragraphs>
<rd:DefaultName>Textbox60</rd:DefaultName> <rd:DefaultName>Textbox60</rd:DefaultName>
<Top>11.08689cm</Top> <Top>19.12502cm</Top>
<Left>15.67443cm</Left> <Left>0.28014cm</Left>
<Height>0.50299cm</Height> <Height>0.6882cm</Height>
<Width>5.42547cm</Width> <Width>20.71217cm</Width>
<ZIndex>18</ZIndex> <ZIndex>18</ZIndex>
<Style> <Style>
<Border> <Border>
@@ -2512,7 +2512,7 @@
<Top>12.76838cm</Top> <Top>12.76838cm</Top>
<Left>0.16383cm</Left> <Left>0.16383cm</Left>
<Height>2.44366cm</Height> <Height>2.44366cm</Height>
<Width>15.5106cm</Width> <Width>15.51057cm</Width>
<ZIndex>20</ZIndex> <ZIndex>20</ZIndex>
<Style> <Style>
<Border> <Border>
@@ -2995,21 +2995,6 @@
<PaddingBottom>2pt</PaddingBottom> <PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Image Name="Image3">
<Source>Embedded</Source>
<Value>ECONO_Marcas</Value>
<Sizing>FitProportional</Sizing>
<Top>11.08689cm</Top>
<Left>0.22108cm</Left>
<Height>1.5cm</Height>
<Width>15.34658cm</Width>
<ZIndex>34</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox47"> <Textbox Name="Textbox47">
<CanGrow>true</CanGrow> <CanGrow>true</CanGrow>
<CanShrink>true</CanShrink> <CanShrink>true</CanShrink>
@@ -3018,7 +3003,7 @@
<Paragraph> <Paragraph>
<TextRuns> <TextRuns>
<TextRun> <TextRun>
<Value>&lt; ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** &gt;</Value> <Value>&lt; ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** &gt; </Value>
<Style> <Style>
<FontStyle>Normal</FontStyle> <FontStyle>Normal</FontStyle>
<FontFamily>calibri</FontFamily> <FontFamily>calibri</FontFamily>
@@ -3037,7 +3022,7 @@
<Left>0.19008cm</Left> <Left>0.19008cm</Left>
<Height>0.40655cm</Height> <Height>0.40655cm</Height>
<Width>12.88812cm</Width> <Width>12.88812cm</Width>
<ZIndex>35</ZIndex> <ZIndex>34</ZIndex>
<Style> <Style>
<Border> <Border>
<Style>None</Style> <Style>None</Style>
@@ -3048,14 +3033,341 @@
<PaddingBottom>2pt</PaddingBottom> <PaddingBottom>2pt</PaddingBottom>
</Style> </Style>
</Textbox> </Textbox>
<Image Name="QRCodeDescarga">
<Source>Database</Source>
<Value>=System.Convert.FromBase64String(Parameters!QRDescarga.Value)</Value>
<MIMEType>image/png</MIMEType>
<Sizing>FitProportional</Sizing>
<Top>8.0685in</Top>
<Left>6.67743in</Left>
<Height>0.6035in</Height>
<Width>0.78275in</Width>
<ZIndex>35</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Textbox Name="Textbox61">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Puedes encontrarla en Appstore o Google play </Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>como Econollantas:</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox60</rd:DefaultName>
<Top>19.5698cm</Top>
<Left>0.28014cm</Left>
<Height>1.49135cm</Height>
<Width>5.37042cm</Width>
<ZIndex>36</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox13">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style />
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Top>19.10915cm</Top>
<Left>0.14007cm</Left>
<Height>0.05496cm</Height>
<Width>20.88652cm</Width>
<ZIndex>37</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<BackgroundColor>Black</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox14">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value />
<Style />
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox5</rd:DefaultName>
<Top>22.48903cm</Top>
<Left>0.28014cm</Left>
<Height>0.05496cm</Height>
<Width>20.88652cm</Width>
<ZIndex>38</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<BackgroundColor>Black</BackgroundColor>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox62">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Con tu aplicación el beneficio más</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>importante es poder escanear el código QR de tu póliza y siempre traerla contigo para </Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>atenderte</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
<Paragraph>
<TextRuns>
<TextRun>
<Value>MÁS RÁPIDO Y MEJOR.</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox60</rd:DefaultName>
<Top>19.5698cm</Top>
<Left>7.45145cm</Left>
<Height>2.45709cm</Height>
<Width>6.56105cm</Width>
<ZIndex>39</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox63">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Una vez descargada la App utiliza la podrás agregar tu póliza escaneando el código QR</Value>
<Style>
<FontStyle>Normal</FontStyle>
<FontFamily>Calibri</FontFamily>
<FontSize>9pt</FontSize>
<FontWeight>Normal</FontWeight>
<TextDecoration>None</TextDecoration>
<Color>#000000</Color>
</Style>
</TextRun>
</TextRuns>
<Style>
<TextAlign>Center</TextAlign>
</Style>
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox60</rd:DefaultName>
<Top>19.56002cm</Top>
<Left>14.67145cm</Left>
<Height>1.46939cm</Height>
<Width>6.32076cm</Width>
<ZIndex>40</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Image Name="ImgRockblade">
<Source>Embedded</Source>
<Value>rockblade</Value>
<Sizing>FitProportional</Sizing>
<Top>11.19428cm</Top>
<Left>5.58835cm</Left>
<Height>0.86918cm</Height>
<Width>4.08628cm</Width>
<ZIndex>41</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="ImgYokohama">
<Source>Embedded</Source>
<Value>yokohama2</Value>
<Sizing>FitProportional</Sizing>
<Top>11.33186cm</Top>
<Left>0.58737cm</Left>
<Height>0.65751cm</Height>
<Width>4.35272cm</Width>
<ZIndex>42</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="ImgMaster">
<Source>Embedded</Source>
<Value>mastercraft</Value>
<Sizing>FitProportional</Sizing>
<Top>11.30011cm</Top>
<Left>17.06617cm</Left>
<Height>0.93972cm</Height>
<Width>3.99634cm</Width>
<ZIndex>43</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
<Image Name="ImgCooper">
<Source>Embedded</Source>
<Value>coopertires</Value>
<Sizing>FitProportional</Sizing>
<Top>11.33186cm</Top>
<Left>10.33489cm</Left>
<Height>0.65751cm</Height>
<Width>6.09184cm</Width>
<ZIndex>44</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
</ReportItems> </ReportItems>
<Height>19.49544cm</Height> <Height>22.57045cm</Height>
<Style /> <Style />
</Body> </Body>
<Width>21.16666cm</Width> <Width>21.16666cm</Width>
<Page> <Page>
<PageFooter> <PageFooter>
<Height>0.52388cm</Height> <Height>0.52387cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage> <PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage> <PrintOnLastPage>true</PrintOnLastPage>
<ReportItems> <ReportItems>
@@ -3114,7 +3426,7 @@
</Style> </Style>
</TextRun> </TextRun>
<TextRun> <TextRun>
<Value>=Today</Value> <Value>=Now.ToString("dd/MM/yyyy hh:mm tt")</Value>
<Style> <Style>
<FontSize>8pt</FontSize> <FontSize>8pt</FontSize>
</Style> </Style>
@@ -3759,6 +4071,12 @@
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt> <Prompt>ReportParameter1</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="QRDescarga">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters> </ReportParameters>
<EmbeddedImages> <EmbeddedImages>
<EmbeddedImage Name="ID2"> <EmbeddedImage Name="ID2">
@@ -3872,6 +4190,72 @@ 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</ImageData> ZbZ/X7cBU4+7u0dOTra0TUEJ8KrLy8vp+zSlSDlms2W1MTc318rKqmYFgLe3j4eHR0FBfnV1TbMlAEx6Hh7uOp0jXPlz5yxKBp4xdAJLZUAYeHh4ZmZeXlrtqoiJ6YS9KC4uvmI/YI/s7e3Lykqx73RZZ8ke/QNaWh0OjadXci5P39B+8idqGJ6eXpYrHQ0dgQLr6uoqKmzNUJqTEwq8XBqyQDV17dolKUm+wJ3lLaXyhdpsgJKhC8dJoHtt1qQODAyCBL14MVPabhkcIzQJGhjiOT+/oJVupJZODftoWX0O/YnOSU5OojEcDuffCxc5HA6Hw+FwOBwOp13Bb1fjcDgcDofD4XA47QoucjgcDofD4XA4HE67goscDofD4XA4HA6H067gIofD4XA4HA6Hw+G0K7jI4XA4HA6Hw+FwOO0KLnI4HA6Hw+FwOBxOu4KLHA6Hw+FwOBwOh9Ou4CKHw+FwOBwOh8PhtCu4yOFwOBwOh8PhcDjtCi5yOBwOh8PhcDgcTruCixwOh8PhcDgcDofTruAih8PhcDgcDofD4bQruMjhcDgcDofD4XA47QoucjgcDofD4XA4HE67goscDofD4XA4HA6H067gIofD4XA4HA6Hw+G0K7jI4XA4HA6Hw+FwOO0KLnI4HA6Hw+FwOBxOu4KLHA6Hw+FwOBwOh9Ou4CKHw+FwOBwOh8PhtCu4yOFwOBwOh8PhcDjtCi5yOBwOh8PhcDgcTruCixwOh8PhcDgcDofTruAih8PhcDgcDofD4bQruMjhcDgcDofD4XA47QoucjgcDofD4XA4HE67goscDofD4XA4HA6H067gIofD4XA4HA6Hw+G0IwTh/wkiAUDA4LaQAAAAAElFTkSuQmCC</ImageData>
</EmbeddedImage> </EmbeddedImage>
<EmbeddedImage Name="coopertires">
<MIMEType>image/png</MIMEType>
<ImageData>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</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="mastercraft">
<MIMEType>image/png</MIMEType>
<ImageData>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</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="rockblade">
<MIMEType>image/png</MIMEType>
<ImageData>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</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="yokohama2">
<MIMEType>image/png</MIMEType>
<ImageData>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</ImageData>
</EmbeddedImage>
</EmbeddedImages> </EmbeddedImages>
<Language>es-MX</Language> <Language>es-MX</Language>
<ConsumeContainerWhitespace>true</ConsumeContainerWhitespace> <ConsumeContainerWhitespace>true</ConsumeContainerWhitespace>

View File

@@ -394,6 +394,14 @@ Partial Class Inventarios_RecepcionAlmacen
ViewState("RealizarMovimientoVirtual") = Value ViewState("RealizarMovimientoVirtual") = Value
End Set End Set
End Property End Property
Private Property SumarImporteUsados As Boolean
Get
Return If(IsNothing(ViewState("SumarImporteUsados")), False, CBool(ViewState("SumarImporteUsados")))
End Get
Set
ViewState("SumarImporteUsados") = Value
End Set
End Property
#End Region #End Region
@@ -847,6 +855,7 @@ Partial Class Inventarios_RecepcionAlmacen
CveAlmacenDevolucionProveedor = -1 CveAlmacenDevolucionProveedor = -1
RealizarTraspasoAlmacenDevolucion = False RealizarTraspasoAlmacenDevolucion = False
RealizarMovimientoVirtual = False RealizarMovimientoVirtual = False
SumarImporteUsados = False
BtnGuardar.Enabled = True BtnGuardar.Enabled = True
CargaAlmacenes(-1) CargaAlmacenes(-1)
@@ -900,6 +909,7 @@ Partial Class Inventarios_RecepcionAlmacen
RealizarTraspasoAlmacenDevolucion = False RealizarTraspasoAlmacenDevolucion = False
RealizarMovimientoVirtual = False RealizarMovimientoVirtual = False
SumarImporteUsados = False
CveAlmacenDevolucionProveedor = -1 CveAlmacenDevolucionProveedor = -1
Dim ObjCompras As New ClsCompras Dim ObjCompras As New ClsCompras
@@ -956,9 +966,11 @@ Partial Class Inventarios_RecepcionAlmacen
'SI LA COMPRA TIENE PRODUCTOS Y USADOS SOLO MOSTRAR LOS PRODUCTOS 'SI LA COMPRA TIENE PRODUCTOS Y USADOS SOLO MOSTRAR LOS PRODUCTOS
If NumProductos > 0 AndAlso NumUsados > 0 Then If NumProductos > 0 AndAlso NumUsados > 0 Then
DtRecepcion = ObjInventario.DtResultados.FiltraParametros("EsUsado = False") DtRecepcion = ObjInventario.DtResultados.FiltraParametros("EsUsado = False")
SumarImporteUsados = True
'SI LA COMPRA TIENE PUROS USADOS, MOSTRAR LOS USADOS Y CARGAR LOS ALMACENES 'SI LA COMPRA TIENE PUROS USADOS, MOSTRAR LOS USADOS Y CARGAR LOS ALMACENES
ElseIf NumProductos = 0 AndAlso NumUsados > 0 Then ElseIf NumProductos = 0 AndAlso NumUsados > 0 Then
CargaSoloUsados = True CargaSoloUsados = True
SumarImporteUsados = True
DtRecepcion = ObjInventario.DtResultados.Copy() DtRecepcion = ObjInventario.DtResultados.Copy()
If UsuarioActual.CveRol = 1 Then If UsuarioActual.CveRol = 1 Then
CargaAlmacenes(-1, "22,24", CveTipoCompra) CargaAlmacenes(-1, "22,24", CveTipoCompra)
@@ -966,6 +978,7 @@ Partial Class Inventarios_RecepcionAlmacen
CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22", CveTipoCompra) CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22", CveTipoCompra)
End If End If
Else Else
SumarImporteUsados = False
DtRecepcion = ObjInventario.DtResultados.Copy() DtRecepcion = ObjInventario.DtResultados.Copy()
End If End If
@@ -2704,8 +2717,11 @@ Partial Class Inventarios_RecepcionAlmacen
Exit For Exit For
End If End If
Next Next
If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtual, UsuarioActual.CveEmpresa) Then
ImporteIngresoAdicional = ObjInventario.DtResultados.SUMD("TotalOriginal") If SumarImporteUsados Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtual, UsuarioActual.CveEmpresa) Then
ImporteIngresoAdicional = ObjInventario.DtResultados.SUMD("TotalOriginal")
End If
End If End If
Else Else

View File

@@ -1052,10 +1052,11 @@ Partial Class Inventarios_RecepcionUsados
Protected Sub Guardar(Optional GenerarRNC As Boolean = False) Protected Sub Guardar(Optional GenerarRNC As Boolean = False)
If GvM.Rows.Count > 0 Then If GvM.Rows.Count > 0 Then
Dim Msg As New StringBuilder() Dim Msg As New StringBuilder()
Dim Resp As Modelos.Factura.MMensajeFactura = Nothing
Dim ObjInventario As New ClsInventarios Dim ObjInventario As New ClsInventarios
Dim ObjAcum As New ClsAcumuladores(ObjInventario.IniciaTransacSQL()) Dim ObjAcum As New ClsAcumuladores(ObjInventario.IniciaTransacSQL())
Dim ObjVentas As New ClsVentas(ObjInventario.IniciaTransacSQL()) Dim ObjVentas As New ClsVentas(ObjInventario.IniciaTransacSQL())
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim ErrorMovInv As Boolean = False Dim ErrorMovInv As Boolean = False
Dim ErrorAC As Boolean = False Dim ErrorAC As Boolean = False
@@ -1089,93 +1090,116 @@ Partial Class Inventarios_RecepcionUsados
CveVenta = -1 CveVenta = -1
End If End If
If Not ErrorMovInv AndAlso GenerarRNC AndAlso ObjRemisionNC IsNot Nothing Then If Not ErrorMovInv AndAlso GenerarRNC AndAlso ObjRemisionNC IsNot Nothing Then
CargaDTDetalleRNC() CargaDTDetalleRNC()
Dim Resp = ObjRemisionNC.EmitirFactura(False, ObjInventario.IniciaTransacSQL) Resp = ObjRemisionNC.EmitirFactura(False, ObjInventario.IniciaTransacSQL)
For Each mensaje2 As String In Resp.Mensajes 'For Each mensaje2 As String In Resp.Mensajes
Msg.AppendFormat("<br>{0}", mensaje2) ' Msg.AppendFormat("<br>{0}", mensaje2)
Next 'Next
If Resp.TieneError Then ErrorMovInv = True If Resp.TieneError Then ErrorMovInv = True
Alert(Msg.ToString, If(Resp.CveVenta > 0, TipoMensaje.MsgInformacion, TipoMensaje.MsgAdvertencia)) 'Alert(Msg.ToString, If(Resp.CveVenta > 0, TipoMensaje.MsgInformacion, TipoMensaje.MsgAdvertencia))
CveVenta = Resp.CveVenta CveVenta = Resp.CveVenta
End If End If
CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, Dim Mensaje As String = ""
Dim FolioInv As String = ""
If GenerarRNC Then
CveMovimiento = Resp.CveMovimientoUsado
FolioInv = Resp.FolioUsado
Else
CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta,
CveSubProyecto, ActivoFijo, Guia:=TxtGuia.Text, Observaciones:=TxtObservaciones.Text, CvePersonal:=DdlPersonal.SelectedValue.ToEntero, CveSubProyecto, ActivoFijo, Guia:=TxtGuia.Text, Observaciones:=TxtObservaciones.Text, CvePersonal:=DdlPersonal.SelectedValue.ToEntero,
Recibio:=TxtResponsable.Text.Trim, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, DepartamentoEntrega:=TxtDepartamentoEntrega.Text, Recibio:=TxtResponsable.Text.Trim, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, DepartamentoEntrega:=TxtDepartamentoEntrega.Text,
PedidoContrato:=TxtPedidoContrato.Text, CveProveedor:=tCveProveedor, Modulo:="RU/G") PedidoContrato:=TxtPedidoContrato.Text, CveProveedor:=tCveProveedor, Modulo:="RU/G")
If CveMovimiento <= 0 Then If CveMovimiento <= 0 Then
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError) Mensaje = "Error al guardar los movimientos"
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") ErrorMovInv = True
ObjInventario.RollBack() 'deshace lo insertado Else
Else FolioInv = ObjInventario.Folio.ToString()
Dim Mensaje As String = ""
For Each Dr As DataRow In DtMovimientos.Rows
If CveConcepto = 42 AndAlso DdlMoneda.SelectedValue.ToEntero = 2 Then
ImporteConcepto = Dr("PU").ToString.ToDecimal * GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
Else
ImporteConcepto = Dr("PU").ToString.ToDecimal
End If
For Each Dr As DataRow In DtMovimientos.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
Mensaje = "Error al guardar los movimientos"
If CveConcepto = 42 AndAlso DdlMoneda.SelectedValue.ToEntero = 2 Then
ImporteConcepto = Dr("PU").ToString.ToDecimal * GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
Else
ImporteConcepto = Dr("PU").ToString.ToDecimal
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
Mensaje = "Error al guardar los movimientos"
ErrorMovInv = True
Exit For
End If
If CveVenta > 0 AndAlso Not ObjVentas.UpdateVentaUsadoRecibido(CveVenta, Dr("CvePS").ToString.ToEntero, True, CveMovimiento) Then
Mensaje = "Error al actualizar el recibo de los usados"
ErrorMovInv = True
Exit For
End If
'si es selectedvalue = 42, es entrada ,3 -salida
Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 42, 1, 2)
If EsDistribuidor AndAlso RBLOpcion.SelectedValue.ToEntero = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
If Not ObjAcum.DistribuidorMovtosAdd(DdlClientes.SelectedValue.ToEntero, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
Mensaje = "Error al guardar Movimientos de distribuidor"
ErrorMovInv = True ErrorMovInv = True
Exit For Exit For
End If End If
End If If CveVenta > 0 AndAlso Not ObjVentas.UpdateVentaUsadoRecibido(CveVenta, Dr("CvePS").ToString.ToEntero, True, CveMovimiento) Then
Next Mensaje = "Error al actualizar el recibo de los usados"
ErrorMovInv = True
Exit For
End If
If Not ErrorMovInv Then 'si es selectedvalue = 42, es entrada ,3 -salida
Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 42, 1, 2)
If EsDistribuidor AndAlso RBLOpcion.SelectedValue.ToEntero = 42 AndAlso Dr("CveTamaño").ToString.ToEntero > 0 Then
Msg.AppendFormat("<br/>El Movimiento se registro con el Folio: <b><a href='/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}'>{0}</a></b>", ObjInventario.Folio, CveMovimiento) If Not ObjAcum.DistribuidorMovtosAdd(DdlClientes.SelectedValue.ToEntero, Dr("Cantidad").ToString.ToEntero(), Dr("CveTamaño").ToString.ToEntero, CveConceptoUsados, CveVenta, UsuarioActual.CveUsuario,
Msg.AppendFormat("<br/><br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento))) UsuarioActual.CveEmpresa, 0, Dr("Observaciones").ToString, CveMovimiento:=CveMovimiento) Then
Mensaje = "Error al guardar Movimientos de distribuidor"
ErrorMovInv = True
Exit For
End If
If IDPoliza > 0 Then Msg = Msg.AppendFormat("<br/><br/> <a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza</a>", IDPoliza) End If
Next
ObjInventario.Commit() ' aplica los movimientos insertados 'GENERA LA PREPOLIZA DE ALMACEN VS EL CONCEPTO DE RNC
'If Not ErrorMovInv Then
' ErrorMovInv = Not GeneraPrePoliza(CveMovimiento, ObjInventario, ObjConta, True)
'End If
'Limpia Valores cuando inserta de campos especiales
If UsuarioActual.CveEmpresa = 66 Then
DdlSubProyecto.SelectedValueExist("-1")
End If
' EnvioCorreo()
CargaPendientesRecibir()
UPDatos.Update()
Else
ObjInventario.RollBack() 'deshace lo insertado
CveMovimiento = 0
Alert("ocurrió un Error al registrar los movimientos", TipoMensaje.MsgError)
End If End If
End If End If
If Not ErrorMovInv Then
If Resp IsNot Nothing Then
For Each mensaje2 As String In Resp.Mensajes
Msg.AppendFormat("<br>{0}", mensaje2)
Next
End If
End If
If Not ErrorMovInv Then
Msg.AppendFormat("<br/>El Movimiento se registro con el Folio: <b><a href='/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}' target='_blank'>{0}</a></b>", FolioInv, CveMovimiento)
Msg.AppendFormat("<br/><br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento)))
If IDPoliza > 0 Then Msg = Msg.AppendFormat("<br/><br/> <a class=""Texto"" target='_blank' href=""/Contabilidad/RegPoliza.aspx?IdPoliza={0}"">Ver Póliza</a>", IDPoliza)
ObjInventario.Commit() ' aplica los movimientos insertados
'Limpia Valores cuando inserta de campos especiales
If UsuarioActual.CveEmpresa = 66 Then
DdlSubProyecto.SelectedValueExist("-1")
End If
' EnvioCorreo()
CargaPendientesRecibir()
UPDatos.Update()
Else
ObjInventario.RollBack() 'deshace lo insertado
CveMovimiento = 0
Alert("ocurrió un Error al registrar los movimientos", TipoMensaje.MsgError)
End If
End If End If
Catch ex As Exception Catch ex As Exception
ObjInventario.RollBack() 'deshace lo insertado ObjInventario.RollBack() 'deshace lo insertado
@@ -1202,6 +1226,94 @@ Partial Class Inventarios_RecepcionUsados
End Sub End Sub
Private Function GeneraPrePoliza(CveMovimiento As Integer, ByRef ObjInventario As ClsInventarios, ByRef ObjConta As ClsContabilidad, EsContabilizable As Boolean) As Boolean
Dim Correcto As Boolean = True
Try
Dim DtCostos As DataTable = Nothing
Dim ValorInventario As Decimal = 0
Dim ValorInventarioME As Decimal = 0
ObjInventario.GetMovimientos(CveMovimiento, -1, -1, UsuarioActual.CveEmpresa)
Dim CveVenta As Integer = ObjInventario.CveVenta
Dim CveAlmacen As Integer = ObjInventario.CveAlmacen
Dim SerieFolio As String = ObjInventario.DtResultados.Rows(0)("SerieFolioVenta").ToString
Dim MovAlmacen As Boolean = True
Dim CveConcepto As Integer = ObjInventario.DtResultados.Rows(0)("CveConcepto").ToString().ToEntero()
Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & CveConcepto).ToEntero
If OrigenMov = 1 Then MovAlmacen = False Else MovAlmacen = True
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
DtCostos = ObjInventario.DtResultados
Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
Dim IdCtaContable As Integer = 0
Dim ConceptoPoliza As String = String.Format("{0}-{1}", "Salida de Almacen", SerieFolio)
If tmpCostos.Rows.Count > 0 Then
Dim Concepto As String = ConceptoPoliza
Dim CvePrePoliza = ObjConta.AddPrePolizas("Inv_EntradaSalida", 74, DtCostos.SUM("Total"), DtCostos.SUM("Total"), 1, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
Dim tCveSubProyecto = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen={CveAlmacen}").ToEntero
Dim tCveConcepto As Integer = 278
For Each RowInv As DataRow In tmpCostos.Rows
ValorInventario = DtCostos.SUM("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").ToString.ToDecimal.RoundSQL
If tCveConcepto = 69 Then
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not MovAlmacen, ValorInventario, Concepto, tCveConcepto, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveVenta:=CveVenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ValorInventario, CveSubProyecto:=tCveSubProyecto, Contabilizable:=EsContabilizable) Then
Correcto = False
Exit For
End If
Next
IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={CveAlmacen}").ToEntero
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, MovAlmacen, DtCostos.SUMD("Total").RoundSQL, Concepto, 68, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=DtCostos.SUMD("Total").RoundSQL, Contabilizable:=EsContabilizable) Then
Correcto = False
End If
If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, -1) Then
If ObjConta.ValorPolizaDescuadre > 0 Then
GuardaLogAD($"Inventarios/RecepcionAlmacen-PPCompOC | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
Correcto = False
End If
End If
'CONTABILIZAR - SIMPLIFICAR
If Correcto Then
If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then
If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then
Correcto = False
End If
End If
'If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
' If ObjContaContPAQ Is Nothing Then
' ObjContaContPAQ = New ClsContPAQi(UsuarioActual.Empresa)
' ObjContaContPAQ.IniciaTransacSQL()
' End If
' If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaContPAQ) Then
' Retorno = False
' End If
'End If
End If
Else
Correcto = False
End If
Else
Correcto = False
End If
Catch ex As Exception
OnError("Ocurrió un error al guadar la prepoliza", ex)
Correcto = False
End Try
Return Correcto
End Function
#End Region #End Region
#Region " ADD INVENTARIO INICIAL " #Region " ADD INVENTARIO INICIAL "
@@ -2451,6 +2563,12 @@ Partial Class Inventarios_RecepcionUsados
ObjRemisionNC.IEPS = ImporteIEPS ObjRemisionNC.IEPS = ImporteIEPS
ObjRemisionNC.Total = Total ObjRemisionNC.Total = Total
ObjRemisionNC.TotalOtrosConceptos = 0 ObjRemisionNC.TotalOtrosConceptos = 0
ObjRemisionNC.DtMovimientosUsados = DtMovimientos
ObjRemisionNC.CveAlmacen = DdlAlmacen.SelectedValue.ToEntero()
ObjRemisionNC.ObservacionesMovimiento = TxtObservaciones.Text
ObjRemisionNC.CveConceptoMovimiento = CveConcepto
End Sub End Sub
Protected Sub CargaTamaños() Protected Sub CargaTamaños()

View File

@@ -794,201 +794,176 @@ Partial Class Sistemas_UsuarioDetalle
Dim TieneError = False Dim TieneError = False
Dim EsNuevoUsuario As Boolean = False Dim EsNuevoUsuario As Boolean = False
Try
'Cargo la ultima empresa consultada en asignaciones 'Cargo la ultima empresa consultada en asignaciones
Dim DtValida = DtAsignacionesMultiEmpresa.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaAnterior)) Dim DtValida = DtAsignacionesMultiEmpresa.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaAnterior))
If DtValida.Rows.Count > 0 Then If DtValida.Rows.Count > 0 Then
Dim dr = DtAsignacionesMultiEmpresa.Select(String.Format("CveEmpresa = {0}", CveEmpresaAnterior)) Dim dr = DtAsignacionesMultiEmpresa.Select(String.Format("CveEmpresa = {0}", CveEmpresaAnterior))
dr(0)("CveEmpresa") = CveEmpresaAnterior dr(0)("CveEmpresa") = CveEmpresaAnterior
dr(0)("CvePersonal") = DdlPersonal.SelectedValue.ToEntero dr(0)("CvePersonal") = DdlPersonal.SelectedValue.ToEntero
dr(0)("CveVendedor") = DdlVendedor.SelectedValue.ToEntero dr(0)("CveVendedor") = DdlVendedor.SelectedValue.ToEntero
dr(0)("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero dr(0)("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero
dr(0)("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero dr(0)("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero
dr(0)("CveTipoDocumento") = DdlTipoDocumento.SelectedValue dr(0)("CveTipoDocumento") = DdlTipoDocumento.SelectedValue
dr(0).AcceptChanges() dr(0).AcceptChanges()
Else Else
Dim Row As DataRow = Nothing Dim Row As DataRow = Nothing
Row = DtAsignacionesMultiEmpresa.NewRow() Row = DtAsignacionesMultiEmpresa.NewRow()
Row("CveEmpresa") = CveEmpresaAnterior Row("CveEmpresa") = CveEmpresaAnterior
Row("CvePersonal") = DdlPersonal.SelectedValue.ToEntero Row("CvePersonal") = DdlPersonal.SelectedValue.ToEntero
Row("CveVendedor") = DdlVendedor.SelectedValue.ToEntero Row("CveVendedor") = DdlVendedor.SelectedValue.ToEntero
Row("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero Row("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero
Row("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero Row("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero
Row("CveTipoDocumento") = DdlTipoDocumento.SelectedValue Row("CveTipoDocumento") = DdlTipoDocumento.SelectedValue
DtAsignacionesMultiEmpresa.Rows.Add(Row) DtAsignacionesMultiEmpresa.Rows.Add(Row)
End If End If
'REGISTRA O ACTUALIZA LOS DATOS GENERALES DEL USUARIO 'REGISTRA O ACTUALIZA LOS DATOS GENERALES DEL USUARIO
If CveUsuario = -1 Then
CveUsuario = ObjUsuarios.AddUsuario(TxtUsuario.Text.Trim, Encripta(ContraseñaPredeterminada), TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, UsuarioActual.CveUsuario, DdlEmpresa.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, CveAlmacenAsignado:=DdlAlmacenGeneral.SelectedValue.ToEntero, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble)
EsNuevoUsuario = True
If CveUsuario = -1 Then If CveUsuario = -1 Then
TieneError = True CveUsuario = ObjUsuarios.AddUsuario(TxtUsuario.Text.Trim, Encripta(ContraseñaPredeterminada), TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, UsuarioActual.CveUsuario, DdlEmpresa.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, CveAlmacenAsignado:=DdlAlmacenGeneral.SelectedValue.ToEntero, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble)
End If EsNuevoUsuario = True
If CveUsuario = -1 Then
For Each Row As DataRow In DtAsignacionesMultiEmpresa.Rows
If Not ObjUsuarios.AddUsuarioAsignar(Row("CvePersonal").ToString.ToEntero, Row("CveVendedor").ToString.ToEntero, Row("CveAlmacen").ToString.ToEntero, Row("CveSucursal").ToString.ToEntero, Row("CveTipoDocumento").ToString, Row("CveEmpresa").ToString.ToEntero, CveUsuario) Then
TieneError = True TieneError = True
End If End If
Next
Else
If Not ObjUsuarios.UpdateUsuario(TxtUsuario.Text.Trim, TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, ChkEstatus.Checked, DdlEmpresa.SelectedValue.ToEntero, CveUsuario, DdlAlmacenGeneral.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, UsuarioActual.CveUsuario, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble) Then
TieneError = True
End If
For Each Row As DataRow In DtAsignacionesMultiEmpresa.Rows For Each Row As DataRow In DtAsignacionesMultiEmpresa.FiltraParametros("CveEmpresa > 0").Rows
If Not ObjUsuarios.UpdateUsuarioAsignar(Row("CvePersonal").ToString.ToEntero, Row("CveVendedor").ToString.ToEntero, Row("CveAlmacen").ToString.ToEntero, Row("CveSucursal").ToString.ToEntero, Row("CveEmpresa").ToString.ToEntero, Row("CveTipoDocumento").ToString, CveUsuario, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then If Not ObjUsuarios.AddUsuarioAsignar(Row("CvePersonal").ToString.ToEntero, Row("CveVendedor").ToString.ToEntero, Row("CveAlmacen").ToString.ToEntero, Row("CveSucursal").ToString.ToEntero, Row("CveTipoDocumento").ToString, Row("CveEmpresa").ToString.ToEntero, CveUsuario) Then
TieneError = True
End If
Next
Else
If Not ObjUsuarios.UpdateUsuario(TxtUsuario.Text.Trim, TxtNombre.Text.Trim, DdlRol.SelectedValue.ToEntero, TxtCorreo.Text.Trim, DdlPersonal.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, ChkCambiarContraseña.Checked, ChkEstatus.Checked, DdlEmpresa.SelectedValue.ToEntero, CveUsuario, DdlAlmacenGeneral.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, UsuarioActual.CveUsuario, AsignarSubProyecto:=ChkAsignarSubProyecto.Checked, AsignarOC:=ChkAsignarOC.Checked, DescuentoAutorizado:=TxtDescuentoAutorizado.Text.ToDouble) Then
TieneError = True TieneError = True
End If End If
Next
End If
'GUARDA ACCESO MODULOS For Each Row As DataRow In DtAsignacionesMultiEmpresa.FiltraParametros("CveEmpresa > 0").Rows
If Not TieneError Then If Not ObjUsuarios.UpdateUsuarioAsignar(Row("CvePersonal").ToString.ToEntero, Row("CveVendedor").ToString.ToEntero, Row("CveAlmacen").ToString.ToEntero, Row("CveSucursal").ToString.ToEntero, Row("CveEmpresa").ToString.ToEntero, Row("CveTipoDocumento").ToString, CveUsuario, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
For Each Row As GridViewRow In GvModulosAcceso.Rows
'Nota, permitir, tiene 3 valores, ''(Vacio), no se ha estipulado, '0' que se denego, '1' permitido(aplicado solo cuando no viene del rol
If Row.DataKey("CveModuloAcceso") <> "" Then
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkDenegar").Checked OrElse Row.DataKey("Permitir") = "0" AndAlso Row.FCCheckBox("ChkDenegar").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosModulos(CveUsuario, Row.DataKey("CveModulo").ToEntero, Not Row.FCCheckBox("ChkDenegar").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
Else
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkPermitir").Checked OrElse Row.DataKey("Permitir") = "1" AndAlso Row.FCCheckBox("ChkPermitir").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosModulos(CveUsuario, Row.DataKey("CveModulo").ToEntero, Row.FCCheckBox("ChkPermitir").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
'GUARDA PERMISO MODULOS
If Not TieneError Then
For Each Row As GridViewRow In GvModulosPermiso.Rows
If Row.DataKey("CveProcesoAcceso") <> "" Then
'checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkD").Checked OrElse Row.DataKey("Permitir") = "0" AndAlso Row.FCCheckBox("ChkD").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosProcesos(CveUsuario, Row.DataKey("CveProceso").ToEntero, Not Row.FCCheckBox("ChkD").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
Else
'permisos que el rol, no le está otorgando, y serán únicos para el usuario
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkP").Checked OrElse Row.DataKey("Permitir") = "1" AndAlso Row.FCCheckBox("ChkP").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosProcesos(CveUsuario, Row.DataKey("CveProceso").ToEntero, Row.FCCheckBox("ChkP").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
''checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados
'If Row.DataKey("CveProcesoAcceso") <> "" Then
' If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Not Row.FCCheckBox("ChkD").Checked) Then
' TieneError = True
' Exit For
' End If
'Else
' 'permisos que el rol, no le está otorgando, y serán únicos para el usuario
' If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Row.FCCheckBox("ChkP").Checked) Then
' TieneError = True
' Exit For
' End If
'End If
Next
End If
'Agregar Indicadores
If Not TieneError Then
For Each Row As GridViewRow In GvIndicadores.Rows
If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") <> "" And Row.FCCheckBox("chkIndicador").Checked = False Then
If Not Indicador.RemoveIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For
End If End If
End If Next
End If
If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") = "" Then 'GUARDA ACCESO MODULOS
If Row.FCCheckBox("chkIndicador").Checked Then If Not TieneError Then
If Not Indicador.AddIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then For Each Row As GridViewRow In GvModulosAcceso.Rows
'Nota, permitir, tiene 3 valores, ''(Vacio), no se ha estipulado, '0' que se denego, '1' permitido(aplicado solo cuando no viene del rol
If Row.DataKey("CveModuloAcceso") <> "" Then
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkDenegar").Checked OrElse Row.DataKey("Permitir") = "0" AndAlso Row.FCCheckBox("ChkDenegar").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosModulos(CveUsuario, Row.DataKey("CveModulo").ToEntero, Not Row.FCCheckBox("ChkDenegar").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
Else
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkPermitir").Checked OrElse Row.DataKey("Permitir") = "1" AndAlso Row.FCCheckBox("ChkPermitir").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosModulos(CveUsuario, Row.DataKey("CveModulo").ToEntero, Row.FCCheckBox("ChkPermitir").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
'GUARDA PERMISO MODULOS
If Not TieneError Then
For Each Row As GridViewRow In GvModulosPermiso.Rows
If Row.DataKey("CveProcesoAcceso") <> "" Then
'checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkD").Checked OrElse Row.DataKey("Permitir") = "0" AndAlso Row.FCCheckBox("ChkD").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosProcesos(CveUsuario, Row.DataKey("CveProceso").ToEntero, Not Row.FCCheckBox("ChkD").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
Else
'permisos que el rol, no le está otorgando, y serán únicos para el usuario
If Row.DataKey("Permitir") = "" AndAlso Row.FCCheckBox("ChkP").Checked OrElse Row.DataKey("Permitir") = "1" AndAlso Row.FCCheckBox("ChkP").Checked = False Then
If Not ObjUsuarios.UpdateUsuariosProcesos(CveUsuario, Row.DataKey("CveProceso").ToEntero, Row.FCCheckBox("ChkP").Checked, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
''checo si el permiso que tiene es del rol, de ser así, nada más actualizo los denegados
'If Row.DataKey("CveProcesoAcceso") <> "" Then
' If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Not Row.FCCheckBox("ChkD").Checked) Then
' TieneError = True
' Exit For
' End If
'Else
' 'permisos que el rol, no le está otorgando, y serán únicos para el usuario
' If Not ClsUsuarios.UpdateUsuariosProcesos(Row.DataKey("CveUsuario").ToEntero, Row.DataKey("CveProceso").ToEntero, Row.FCCheckBox("ChkP").Checked) Then
' TieneError = True
' Exit For
' End If
'End If
Next
End If
'Agregar Indicadores
If Not TieneError Then
For Each Row As GridViewRow In GvIndicadores.Rows
If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") <> "" And Row.FCCheckBox("chkIndicador").Checked = False Then
If Not Indicador.RemoveIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
End If End If
End If
Next
End If
If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") = "" Then
If Row.FCCheckBox("chkIndicador").Checked Then
'GUARDA ACCESO EMPRESAS If Not Indicador.AddIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then
If Not TieneError Then TieneError = True
For Each dr As DataRow In DtEmpresasUsuario.FiltraParametros("Accion IN (1,2)").Rows Exit For
If dr("Accion").ToString = "1" Then End If
If Not ObjUsuarios.AddUsuariosEmpresas(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then End If
TieneError = True
Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then Next
If Not ObjUsuarios.RemoveEmpresasAcceso(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then End If
TieneError = True
Exit For
End If
End If
Next
End If
'GUARDA SUBPROYECTOS
If Not TieneError Then
For Each dr As DataRow In DtSubProyectos.FiltraParametros("Accion IN (1,2,4)").Rows 'GUARDA ACCESO EMPRESAS
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If Not TieneError Then
For Each dr As DataRow In DtEmpresasUsuario.FiltraParametros("Accion IN (1,2)").Rows
If dr("Accion").ToString = "1" Then If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then If Not ObjUsuarios.AddUsuariosEmpresas(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then If Not ObjUsuarios.RemoveEmpresasAcceso(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "4" Then
If Not ObjUsuarios.UpdateSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, dr("ViejoCveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
End If End If
End If Next
Next End If
End If
'GUARDA ESTATUS DE OC 'GUARDA SUBPROYECTOS
If Not TieneError Then If Not TieneError Then
If DTEstatusOC IsNot Nothing AndAlso DTEstatusOC.Rows.Count > 0 Then For Each dr As DataRow In DtSubProyectos.FiltraParametros("Accion IN (1,2,4)").Rows
For Each dr As DataRow In DTEstatusOC.FiltraParametros("Accion IN (1,2,4)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero) Then If Not ObjUsuarios.AddSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero) Then If Not ObjUsuarios.RemoveSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "4" Then ElseIf dr("Accion").ToString = "4" Then
If Not ObjUsuarios.UpdateEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero, dr("ViejoCveEstatus").ToString.ToEntero) Then If Not ObjUsuarios.UpdateSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, dr("ViejoCveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
@@ -997,19 +972,161 @@ Partial Class Sistemas_UsuarioDetalle
Next Next
End If End If
End If 'GUARDA ESTATUS DE OC
'GUARDA CLASIFICACIONES If Not TieneError Then
If Not TieneError Then If DTEstatusOC IsNot Nothing AndAlso DTEstatusOC.Rows.Count > 0 Then
If DtClasificaciones IsNot Nothing AndAlso DtClasificaciones.Rows.Count > 0 Then For Each dr As DataRow In DTEstatusOC.FiltraParametros("Accion IN (1,2,4)").Rows
For Each dr As DataRow In DtClasificaciones.FiltraParametros("Accion IN (1,2,4)").Rows If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "4" Then
If Not ObjUsuarios.UpdateEstatusOC(CveUsuario, dr("CveEstatus").ToString.ToEntero, dr("ViejoCveEstatus").ToString.ToEntero) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
End If
'GUARDA CLASIFICACIONES
If Not TieneError Then
If DtClasificaciones IsNot Nothing AndAlso DtClasificaciones.Rows.Count > 0 Then
For Each dr As DataRow In DtClasificaciones.FiltraParametros("Accion IN (1,2,4)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddUsuariosClasificaciones(CveUsuario, dr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveUsuariosClasificaciones(CveUsuario, dr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
End If
'GUARDA ALMACENES
If Not TieneError Then
For Each dr As DataRow In DtAlmacenes.FiltraParametros("Accion IN (1,2,4)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddUsuariosClasificaciones(CveUsuario, dr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveUsuario) Then If Not ObjUsuarios.AddAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveUsuariosClasificaciones(CveUsuario, dr("CveClasificacion").ToString.ToEntero, UsuarioActual.CveUsuario) Then If Not ObjUsuarios.RemoveAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "4" Then
If Not ObjUsuarios.UpdateAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, dr("ViejoCveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
'Guarda Estatus de Ordenes de Compra
If Not TieneError Then
GuardaEstatusProyectosREQ(ObjOC, TieneError)
GuardaEstatusProyectoOC(ObjOC, TieneError)
End If
''Guarda Estatus de Ordenes de Servicio
'If Not TieneError Then
' GuardaEstatusOS(ObjOS, TieneError)
'End If
'GUARDA CUENTAS BANCARIAS
If Not TieneError Then
For Each dr As DataRow In DtCuentasBancarias.FiltraParametros("Accion IN (1,2)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjBancos.AddBancosCuentasUsuarios(dr("CveCuenta").ToString.ToEntero, CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjBancos.RemoveBancosCuentasUsuarios(dr("CveCuenta").ToString.ToEntero, CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
'GUARDAMOS RESTRICCIONES DE ACCESO
If Not TieneError Then
For Each dr As DataRow In DtRestricciones.FiltraParametros("Accion IN (1,2,4)").Rows
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.UsuariosRestriccionesAccesoAdd(CveUsuario, dr("IP").ToString, dr("MAC").ToString, dr("HI1").ToString, dr("HF1").ToString, dr("HI2").ToString, dr("HF2").ToString, dr("HI3").ToString, dr("HF3").ToString, dr("HI4").ToString, dr("HF4").ToString, dr("HI5").ToString, dr("HF5").ToString, dr("HI6").ToString, dr("HF6").ToString, dr("HI7").ToString, dr("HF7").ToString, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.UsuariosRestriccionesAccesoRemove(dr("CveUsuarioRestriccionAcceso").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "4" Then
If Not ObjUsuarios.UsuariosRestriccionesAccesoUpdate(dr("CveUsuarioRestriccionAcceso").ToString.ToEntero, dr("IP").ToString, dr("MAC").ToString, dr("HI1").ToString, dr("HF1").ToString, dr("HI2").ToString, dr("HF2").ToString, dr("HI3").ToString, dr("HF3").ToString, dr("HI4").ToString, dr("HF4").ToString, dr("HI5").ToString, dr("HF5").ToString, dr("HI6").ToString, dr("HF6").ToString, dr("HI7").ToString, dr("HF7").ToString, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
Next
End If
ObjUsuarios.UsuariosRestriccioneXMacUpdate(CveUsuario)
'CLONAR USUARIO
If Not TieneError Then
If EsNuevoUsuario Then
If Not ClonarUsuario(DdlUsuarioClonar.SelectedValue.ToEntero, ObjUsuarios) Then
TieneError = True
End If
End If
End If
''''''''''''''''''''''''GUARDA ASIGNAR''''''''''''''''''''''''
'GUARDA ROLES
If Not TieneError Then
For Each dr As DataRow In DTRolesAsignar.FiltraParametros("Accion IN (1,2)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddRolesAsignar(CveUsuario, dr("CveRol").ToString.ToEntero) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveRolesAsignar(CveUsuario, dr("CveRol").ToString.ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
@@ -1017,260 +1134,148 @@ Partial Class Sistemas_UsuarioDetalle
End If End If
Next Next
End If End If
End If
'GUARDA ALMACENES
If Not TieneError Then
For Each dr As DataRow In DtAlmacenesAsignar.FiltraParametros("Accion IN (1,2)").Rows
'GUARDA ALMACENES If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If Not TieneError Then If dr("Accion").ToString = "1" Then
For Each dr As DataRow In DtAlmacenes.FiltraParametros("Accion IN (1,2,4)").Rows If Not ObjUsuarios.AddAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then TieneError = True
If dr("Accion").ToString = "1" Then Exit For
If Not ObjUsuarios.AddAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then End If
TieneError = True ElseIf dr("Accion").ToString = "2" Then
Exit For If Not ObjUsuarios.RemoveAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then
End If TieneError = True
ElseIf dr("Accion").ToString = "2" Then Exit For
If Not ObjUsuarios.RemoveAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then End If
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "4" Then
If Not ObjUsuarios.UpdateAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, dr("ViejoCveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If End If
End If End If
End If Next
Next
End If
'Guarda Estatus de Ordenes de Compra
If Not TieneError Then
GuardaEstatusProyectosREQ(ObjOC, TieneError)
GuardaEstatusProyectoOC(ObjOC, TieneError)
End If
''Guarda Estatus de Ordenes de Servicio
'If Not TieneError Then
' GuardaEstatusOS(ObjOS, TieneError)
'End If
'GUARDA CUENTAS BANCARIAS
If Not TieneError Then
For Each dr As DataRow In DtCuentasBancarias.FiltraParametros("Accion IN (1,2)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjBancos.AddBancosCuentasUsuarios(dr("CveCuenta").ToString.ToEntero, CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjBancos.RemoveBancosCuentasUsuarios(dr("CveCuenta").ToString.ToEntero, CveUsuario) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
'GUARDAMOS RESTRICCIONES DE ACCESO
If Not TieneError Then
For Each dr As DataRow In DtRestricciones.FiltraParametros("Accion IN (1,2,4)").Rows
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.UsuariosRestriccionesAccesoAdd(CveUsuario, dr("IP").ToString, dr("MAC").ToString, dr("HI1").ToString, dr("HF1").ToString, dr("HI2").ToString, dr("HF2").ToString, dr("HI3").ToString, dr("HF3").ToString, dr("HI4").ToString, dr("HF4").ToString, dr("HI5").ToString, dr("HF5").ToString, dr("HI6").ToString, dr("HF6").ToString, dr("HI7").ToString, dr("HF7").ToString, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.UsuariosRestriccionesAccesoRemove(dr("CveUsuarioRestriccionAcceso").ToString.ToEntero, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "4" Then
If Not ObjUsuarios.UsuariosRestriccionesAccesoUpdate(dr("CveUsuarioRestriccionAcceso").ToString.ToEntero, dr("IP").ToString, dr("MAC").ToString, dr("HI1").ToString, dr("HF1").ToString, dr("HI2").ToString, dr("HF2").ToString, dr("HI3").ToString, dr("HF3").ToString, dr("HI4").ToString, dr("HF4").ToString, dr("HI5").ToString, dr("HF5").ToString, dr("HI6").ToString, dr("HF6").ToString, dr("HI7").ToString, dr("HF7").ToString, UsuarioActual.CveUsuario) Then
TieneError = True
Exit For
End If
End If
Next
End If
ObjUsuarios.UsuariosRestriccioneXMacUpdate(CveUsuario)
'CLONAR USUARIO
If Not TieneError Then
If EsNuevoUsuario Then
If Not ClonarUsuario(DdlUsuarioClonar.SelectedValue.ToEntero, ObjUsuarios) Then
TieneError = True
End If
End If End If
End If
'GUARDA SUBPROYECTOS
If Not TieneError Then
For Each dr As DataRow In DtSubProyectosAsignar.FiltraParametros("Accion IN (1,2,4)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddSubProyectosAsignar(CveUsuario, dr("CveSubProyecto").ToString.ToEntero) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveSubProyectosAsignar(CveUsuario, dr("CveSubProyecto").ToString.ToEntero) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
'GUARDA CUENTAS BANCARIAS
If Not TieneError Then
For Each dr As DataRow In DtCuentasBancariasAsignar.FiltraParametros("Accion IN (1,2)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddCuentasBancariasAsignar(CveUsuario, dr("CveCuenta").ToString.ToEntero) Then
TieneError = True
Exit For
End If
ElseIf dr("Accion").ToString = "2" Then
If Not ObjUsuarios.RemoveCuentasBancariasAsignar(CveUsuario, dr("CveCuenta").ToString.ToEntero) Then
TieneError = True
Exit For
End If
End If
End If
Next
End If
''''''''''''''''''''''''GUARDA ASIGNAR'''''''''''''''''''''''' 'GUARDA MODULOS
If Not TieneError Then
'GUARDA ROLES For Each Row As GridViewRow In GvModulosAsignar.Rows
If Not TieneError Then If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
For Each dr As DataRow In DTRolesAsignar.FiltraParametros("Accion IN (1,2)").Rows If Not ObjUsuarios.RemoveModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If dr("Accion").ToString = "1" Then
If Not ObjUsuarios.AddRolesAsignar(CveUsuario, dr("CveRol").ToString.ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
If Not ObjUsuarios.RemoveRolesAsignar(CveUsuario, dr("CveRol").ToString.ToEntero) Then If Not ObjUsuarios.AddModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
End If End If
End If Next
Next End If
End If
'GUARDA ALMACENES 'GUARDA PERMISOS
If Not TieneError Then If Not TieneError Then
For Each dr As DataRow In DtAlmacenesAsignar.FiltraParametros("Accion IN (1,2)").Rows For Each Row As GridViewRow In GvPermisosAsignar.Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
If dr("Accion").ToString = "1" Then If Not ObjUsuarios.RemovePermisosAsignar(CveUsuario, Row.DataKey("CvePermiso").ToEntero) Then
If Not ObjUsuarios.AddAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
If Not ObjUsuarios.RemoveAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then If Not ObjUsuarios.AddPermisosAsignar(CveUsuario, Row.DataKey("CvePermiso").ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
End If End If
End If Next
Next End If
End If
'GUARDA SUBPROYECTOS 'GUARDA INDICADORES
If Not TieneError Then If Not TieneError Then
For Each dr As DataRow In DtSubProyectosAsignar.FiltraParametros("Accion IN (1,2,4)").Rows For Each Row As GridViewRow In GvIndicadoresAsignar.Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
If dr("Accion").ToString = "1" Then If Not ObjUsuarios.RemoveIndicadoresAsignar(CveUsuario, Row.DataKey("CveIndicador").ToEntero) Then
If Not ObjUsuarios.AddSubProyectosAsignar(CveUsuario, dr("CveSubProyecto").ToString.ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
If Not ObjUsuarios.RemoveSubProyectosAsignar(CveUsuario, dr("CveSubProyecto").ToString.ToEntero) Then If Not ObjUsuarios.AddIndicadoresAsignar(CveUsuario, Row.DataKey("CveIndicador").ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
End If End If
End If Next
Next End If
End If
'GUARDA CUENTAS BANCARIAS 'GUARDA EMPRESAS
If Not TieneError Then If Not TieneError Then
For Each dr As DataRow In DtCuentasBancariasAsignar.FiltraParametros("Accion IN (1,2)").Rows For Each Row As GridViewRow In GvEmpresasAsignar.Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
If dr("Accion").ToString = "1" Then If Not ObjUsuarios.RemoveEmpresasAsignar(CveUsuario, Row.DataKey("CveEmpresa").ToEntero) Then
If Not ObjUsuarios.AddCuentasBancariasAsignar(CveUsuario, dr("CveCuenta").ToString.ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
ElseIf dr("Accion").ToString = "2" Then ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
If Not ObjUsuarios.RemoveCuentasBancariasAsignar(CveUsuario, dr("CveCuenta").ToString.ToEntero) Then If Not ObjUsuarios.AddEmpresasAsignar(CveUsuario, Row.DataKey("CveEmpresa").ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If End If
End If End If
End If Next
Next End If
End If
'GUARDA MODULOS 'ELIMINA YA AGREGADOS EMPRESAS
If Not TieneError Then If Not TieneError Then
For Each Row As GridViewRow In GvModulosAsignar.Rows For Each dr As DataRow In DTEmpresasAsignar.FiltraParametros("TienePermiso IN (-2)").Rows
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If Not ObjUsuarios.RemoveModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then If Not ObjUsuarios.RemoveEmpresasAsignar(CveUsuario, dr("CveEmpresa").ToString.ToEntero) Then
TieneError = True TieneError = True
Exit For Exit For
End If
End If End If
ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then Next
If Not ObjUsuarios.AddModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then End If
TieneError = True
Exit For
End If
End If
Next
End If
'GUARDA PERMISOS Catch ex As Exception
If Not TieneError Then TieneError = True
For Each Row As GridViewRow In GvPermisosAsignar.Rows OnError("Ocurrió un error al guardar el usuario", ex)
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then End Try
If Not ObjUsuarios.RemovePermisosAsignar(CveUsuario, Row.DataKey("CvePermiso").ToEntero) Then
TieneError = True
Exit For
End If
ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
If Not ObjUsuarios.AddPermisosAsignar(CveUsuario, Row.DataKey("CvePermiso").ToEntero) Then
TieneError = True
Exit For
End If
End If
Next
End If
'GUARDA INDICADORES
If Not TieneError Then
For Each Row As GridViewRow In GvIndicadoresAsignar.Rows
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
If Not ObjUsuarios.RemoveIndicadoresAsignar(CveUsuario, Row.DataKey("CveIndicador").ToEntero) Then
TieneError = True
Exit For
End If
ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
If Not ObjUsuarios.AddIndicadoresAsignar(CveUsuario, Row.DataKey("CveIndicador").ToEntero) Then
TieneError = True
Exit For
End If
End If
Next
End If
'GUARDA EMPRESAS
If Not TieneError Then
For Each Row As GridViewRow In GvEmpresasAsignar.Rows
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
If Not ObjUsuarios.RemoveEmpresasAsignar(CveUsuario, Row.DataKey("CveEmpresa").ToEntero) Then
TieneError = True
Exit For
End If
ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
If Not ObjUsuarios.AddEmpresasAsignar(CveUsuario, Row.DataKey("CveEmpresa").ToEntero) Then
TieneError = True
Exit For
End If
End If
Next
End If
'ELIMINA YA AGREGADOS EMPRESAS
If Not TieneError Then
For Each dr As DataRow In DTEmpresasAsignar.FiltraParametros("TienePermiso IN (-2)").Rows
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
If Not ObjUsuarios.RemoveEmpresasAsignar(CveUsuario, dr("CveEmpresa").ToString.ToEntero) Then
TieneError = True
Exit For
End If
End If
Next
End If
If Not TieneError Then If Not TieneError Then
@@ -1287,6 +1292,11 @@ Partial Class Sistemas_UsuarioDetalle
ObjUsuarios.Dispose() ObjUsuarios.Dispose()
ObjSubProyectos.Dispose()
ObjOC.Dispose()
ObjOS.Dispose()
Indicador.Dispose()
ObjBancos.Dispose()
End Sub End Sub
Private Sub RecargaGlobales(TieneError As Boolean, ObjSubProyectos As ClsSubProyectos, ObjBancos As ClsBancos, ObjOC As ClsOC, ObjUsuarios As ClsSisUsuarios) Private Sub RecargaGlobales(TieneError As Boolean, ObjSubProyectos As ClsSubProyectos, ObjBancos As ClsBancos, ObjOC As ClsOC, ObjUsuarios As ClsSisUsuarios)

View File

@@ -2707,7 +2707,7 @@
<div class="col-md-12" visible="false"> <div class="col-md-12" visible="false">
<asp:GridView ID="GvRecepcionUsados" runat="server" GridLines="None" ShowHeaderWhenEmpty="true" CssClass="table table-hover table-striped ScrollAD mysmallbtn" <asp:GridView ID="GvRecepcionUsados" runat="server" GridLines="None" ShowHeaderWhenEmpty="true" CssClass="table table-hover table-striped ScrollAD mysmallbtn"
data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" data-height="100" data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" data-height="100"
DataKeyNames="CvePSCargo,CveUM,Cargo,CveTamaño"> DataKeyNames="CvePSCargo,CveUM,Cargo,CveTamaño,CodigoPS">
<Columns> <Columns>
<asp:BoundField DataField="CodigoPS" HeaderText="Tamaño" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="35%" /> <asp:BoundField DataField="CodigoPS" HeaderText="Tamaño" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="35%" />
<asp:TemplateField HeaderText="Cantidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20%"> <asp:TemplateField HeaderText="Cantidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20%">

View File

@@ -4657,7 +4657,28 @@ Partial Class PV
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero, DdlPS) DdlPSIndexChange(DdlPS.SelectedValue.ToEntero, DdlPS)
DdlUnidadMedida.SelectedValueExist(GvRow.DataKey("CveUM")) DdlUnidadMedida.SelectedValueExist(GvRow.DataKey("CveUM"))
TxtCantidad.Text = GvRow.DataKey("Cantidad") TxtCantidad.Text = GvRow.DataKey("Cantidad")
TxtObsPS.Text = GvRow.DataKey("Obs")
'Dim TotalCargos As Decimal = 0
'Dim StrTamanios As New StringBuilder()
'StrTamanios.Append("Se recibierón los siguientes usados:")
'For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
' If Gvr.RowType = DataControlRowType.DataRow Then
' If Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
' TotalCargos += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal * Gvr.DataKey("Cargo").ToDecimal
' StrTamanios.AppendFormat("{0},", Gvr.DataKey("CodigoPS"))
' End If
' End If
'Next
'If TotalCargos > 0 Then
' StrTamanios.Remove(StrTamanios.Length - 1, 1)
'Else
' StrTamanios.Clear()
'End If
TxtObsPS.Text = GvRow.DataKey("Obs") '.Replace(StrTamanios.ToString(), "")
TxtPrecio.Text = GvRow.DataKey("PU") TxtPrecio.Text = GvRow.DataKey("PU")
TxtDescuento.Text = GvRow.DataKey("Descuento") TxtDescuento.Text = GvRow.DataKey("Descuento")
LblTotalPS.Text = GvRow.DataKey("Total") LblTotalPS.Text = GvRow.DataKey("Total")
@@ -6681,12 +6702,16 @@ Partial Class PV
Dim TotalCargos As Decimal = 0 Dim TotalCargos As Decimal = 0
Dim TotalCantidad As Decimal = 0 Dim TotalCantidad As Decimal = 0
Dim StrTamanios As New StringBuilder()
StrTamanios.Append("Se recibierón los siguientes usados:")
For Each Gvr As GridViewRow In Gv.Rows For Each Gvr As GridViewRow In Gv.Rows
If Gvr.RowType = DataControlRowType.DataRow Then If Gvr.RowType = DataControlRowType.DataRow Then
If Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then If Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
TotalCargos += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal * Gvr.DataKey("Cargo").ToDecimal TotalCargos += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal * Gvr.DataKey("Cargo").ToDecimal
TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
StrTamanios.AppendFormat("{0},", Gvr.DataKey("CodigoPS"))
Dim Row As DataRow = TmpDTRecepcionUsados.NewRow() Dim Row As DataRow = TmpDTRecepcionUsados.NewRow()
Row("CvePS") = Gvr.DataKey("CvePSCargo").ToEntero Row("CvePS") = Gvr.DataKey("CvePSCargo").ToEntero
@@ -6703,9 +6728,15 @@ Partial Class PV
End If End If
Next Next
If TotalCargos > 0 Then
StrTamanios.Remove(StrTamanios.Length - 1, 1)
Else
StrTamanios.Clear()
End If
Dim StrCargos As New StringBuilder Dim StrCargos As New StringBuilder
For Each CvePSCargo As Integer In ListaPSCargo For Each CvePSCargo As Integer In ListaPSCargo
StrCargos.AppendFormat("{0},", CvePSCargo) StrCargos.AppendFormat(" {0},", CvePSCargo)
Next Next
StrCargos.Remove(StrCargos.Length - 1, 1) StrCargos.Remove(StrCargos.Length - 1, 1)
@@ -6720,28 +6751,38 @@ Partial Class PV
For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = True AND EliminarDB = False AND CvePS IN ({StrCargos})").Rows For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = True AND EliminarDB = False AND CvePS IN ({StrCargos})").Rows
Dim TotalAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal Dim TotalAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
Dim PUActual As Decimal = (TotalAnterior - TotalCargos) / Dr("Cantidad").ToString.ToDecimal 'Dim PUActual As Decimal = (TotalAnterior - TotalCargos) / Dr("Cantidad").ToString.ToDecimal
Dim Descuento As Decimal = Dr("Descuento").ToString.ToDecimal Dim DescuentoCargo As Decimal = (TotalCargos / Dr("Cantidad").ToString.ToDecimal)
Dim TotalCalculableImpuestos As Decimal = (Dr("Cantidad").ToString.ToDecimal * (PUActual)) - Descuento
TotalCargos -= TotalAnterior
If PUActual <= 0 Then
Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
TmpDT.Rows.Remove(drt(0))
Else
Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
Dim drr As DataRow = drt(0)
drr("PU") = PUActual
drr("ImporteIVA") = Math.Round(Dr("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteIEPS") = Math.Round(Dr("PorcentajeIEPS").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("IEPS") = Dr("ImporteIEPS")
drr("Total") = (Dr("Cantidad").ToString.ToDecimal * PUActual)
drr("TotalImporte") = Math.Round(Dr("Cantidad").ToString.ToDecimal * PUActual, NumeroDecimales)
If DescuentoCargo > (TotalAnterior - Dr("Descuento").ToString.ToDecimal()) Then
DescuentoCargo = (TotalAnterior - Dr("Descuento").ToString.ToDecimal())
End If End If
Dim Descuento As Decimal = Dr("Descuento").ToString.ToDecimal + DescuentoCargo
Dim TotalCalculableImpuestos As Decimal = (Dr("Cantidad").ToString.ToDecimal * (Dr("PU").ToString.ToDecimal)) - Descuento
TotalCargos -= DescuentoCargo
'If PUActual <= 0 Then
' Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
' TmpDT.Rows.Remove(drt(0))
'Else
'End If
Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
Dim drr As DataRow = drt(0)
'drr("PU") = PUActual
drr("ImporteIVA") = Math.Round(Dr("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteIEPS") = Math.Round(Dr("PorcentajeIEPS").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("IEPS") = Dr("ImporteIEPS")
drr("Descuento") = Descuento
drr("Obs") = StrTamanios.ToString() + Dr("Obs").ToString()
'drr("Total") = (Dr("Cantidad").ToString.ToDecimal * PUActual)
'drr("TotalImporte") = Math.Round(Dr("Cantidad").ToString.ToDecimal * PUActual, NumeroDecimales)
If TotalCargos <= 0 Then If TotalCargos <= 0 Then
Exit For Exit For
End If End If
@@ -6752,27 +6793,47 @@ Partial Class PV
For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = False AND EliminarDB = False AND CvePS={CvePS}").Rows For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = False AND EliminarDB = False AND CvePS={CvePS}").Rows
Dim PUAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal Dim PUAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
Dim PUActual As Decimal = PUAnterior - (TotalCargos / Dr("Cantidad").ToString.ToDecimal) Dim DescuentoCargo As Decimal = (TotalCargos / Dr("Cantidad").ToString.ToDecimal)
Dim Descuento As Decimal = Dr("Descuento").ToString.ToDecimal
Dim TotalCalculableImpuestos As Decimal = (Dr("Cantidad").ToString.ToDecimal * (PUActual)) - Descuento
TotalCargos += -(TotalCargos / Dr("Cantidad").ToString.ToDecimal)
If PUActual <= 0 Then If DescuentoCargo > (PUAnterior - Dr("Descuento").ToString.ToDecimal()) Then
Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString) DescuentoCargo = (PUAnterior - Dr("Descuento").ToString.ToDecimal())
TmpDT.Rows.Remove(drt(0))
Else
Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
Dim drr As DataRow = drt(0)
drr("PU") = PUActual
drr("ImporteIVA") = Math.Round(Dr("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteIEPS") = Math.Round(Dr("PorcentajeIEPS").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("IEPS") = Dr("ImporteIEPS")
drr("Total") = (Dr("Cantidad").ToString.ToDecimal * PUActual)
drr("TotalImporte") = Math.Round(Dr("Cantidad").ToString.ToDecimal * PUActual, NumeroDecimales)
End If End If
'Dim PUActual As Decimal = PUAnterior - DescuentoCargo
Dim Descuento As Decimal = Dr("Descuento").ToString.ToDecimal + DescuentoCargo
Dim TotalCalculableImpuestos As Decimal = (Dr("Cantidad").ToString.ToDecimal * (PUAnterior)) - Descuento
TotalCargos += -DescuentoCargo
Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
Dim drr As DataRow = drt(0)
drr("ImporteIVA") = Math.Round(Dr("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
drr("ImporteIEPS") = Math.Round(Dr("PorcentajeIEPS").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
drr("IEPS") = Dr("ImporteIEPS")
drr("Descuento") = Descuento
'drr("Obs") = StrTamanios.ToString() + Dr("Obs").ToString()
'drr("Total") = (Dr("Cantidad").ToString.ToDecimal * PUActual)
'drr("TotalImporte") = Math.Round(Dr("Cantidad").ToString.ToDecimal * PUActual, NumeroDecimales)
'If PUActual <= 0 Then
' Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
' TmpDT.Rows.Remove(drt(0))
'Else
' Dim drt As DataRow() = TmpDT.Select("Consec = " & Dr("Consec").ToString)
' Dim drr As DataRow = drt(0)
' 'drr("PU") = PUActual
' drr("ImporteIVA") = Math.Round(Dr("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
' drr("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
' drr("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
' drr("ImporteIEPS") = Math.Round(Dr("PorcentajeIEPS").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
' drr("IEPS") = Dr("ImporteIEPS")
' 'drr("Total") = (Dr("Cantidad").ToString.ToDecimal * PUActual)
' 'drr("TotalImporte") = Math.Round(Dr("Cantidad").ToString.ToDecimal * PUActual, NumeroDecimales)
'End If
If TotalCargos <= 0 Then If TotalCargos <= 0 Then
Exit For Exit For
End If End If

View File

@@ -245,7 +245,7 @@
<asp:HyperLink ID="HLOrdenServicio" Target="_blank" runat="server" Visible="false"> <i class="fa fa-plus"></i> Genera O. S.</asp:HyperLink> <asp:HyperLink ID="HLOrdenServicio" Target="_blank" runat="server" Visible="false"> <i class="fa fa-plus"></i> Genera O. S.</asp:HyperLink>
</li> </li>
<li> <li>
<asp:LinkButton ID="LkCotizacionAutorizar" Target="_blank" runat="server" Visible="false"> <i class="fa fa-check"></i> Autorizar Cotización</asp:LinkButton> <asp:LinkButton ID="LkCotizacionAutorizar" runat="server" Visible="false"> <i class="fa fa-check"></i> Autorizar Cotización</asp:LinkButton>
</li> </li>
<li id="LiBuscarPrecio" runat="server" visible="false"> <li id="LiBuscarPrecio" runat="server" visible="false">
@@ -7099,8 +7099,13 @@
TxtImporte.value = FormatoNumero(Saldo, 2); TxtImporte.value = FormatoNumero(Saldo, 2);
} }
} else { } else {
TxtImporte.value = ""; if (SaldoMaximoUtilizable > 0) {
Chk.checked = false; TxtImporte.value = "";
Chk.checked = false;
} else {
TxtImporte.value = FormatoNumero(Saldo, 2);
}
} }
} else { } else {

View File

@@ -2167,7 +2167,7 @@ Partial Class Ventas
DdlSubProyectoDatos.Enabled = False DdlSubProyectoDatos.Enabled = False
BtnEmitirImprimir.Visible = False BtnEmitirImprimir.Visible = False
BtnCrearApartirDe.Visible = True BtnCrearApartirDe.Visible = True
If UsuarioActual.TienePermisoProceso(302) AndAlso DdlTipoComprobante.SelectedValue <> "Cot" Then BtnEditar.Visible = True If UsuarioActual.TienePermisoProceso(302) AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then BtnEditar.Visible = True
'DdlEstatus.Enabled = True 'DdlEstatus.Enabled = True
DivFechaAnticipoCliente.Visible = True DivFechaAnticipoCliente.Visible = True
@@ -2222,7 +2222,13 @@ Partial Class Ventas
End If End If
If UsuarioActual.TienePermisoProceso(269) AndAlso Not DevolucionAlmacen = 2 Then If UsuarioActual.TienePermisoProceso(269) AndAlso Not DevolucionAlmacen = 2 Then
DivDevAlm.Visible = True Dim ObjInventario As New ClsInventarios
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count > 0 Then
DivDevAlm.Visible = True
End If
End If
ObjInventario.Dispose()
End If End If
@@ -3791,6 +3797,17 @@ Partial Class Ventas
End If End If
End If End If
Dim TipoEstatus As Integer = GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {CveEstatus}").ToEntero()
If UsuarioActual.Empresa.Funcionalidad(135) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso TipoEstatus = 5 Then
If UsuarioActual.TienePermisoProceso(159) Then
Dim TienePermiso As String = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, -1).FiltroPrimeroValor("CveSubProyecto", String.Format("CveSubProyecto = {0}", DbRowVenta("CveSubProyecto")))
If TienePermiso <> "" Then
LbCancelarDocumento.Visible = True
End If
End If
End If
'CargaDetalle 'CargaDetalle
If ObjVentas.GetVentaDetalle(CveVenta) Then If ObjVentas.GetVentaDetalle(CveVenta) Then
TmpDT = ObjVentas.DtResultados TmpDT = ObjVentas.DtResultados
@@ -3885,17 +3902,26 @@ Partial Class Ventas
End If End If
'Verifico si tiene la funcionalidad (135)
If UsuarioActual.Empresa.Funcionalidad(135) = "1" Then If UsuarioActual.Empresa.Funcionalidad(135) = "1" Then
'Reviso cuales son los supervisores 'Reviso cuales son los supervisores
Dim Objeto As New ClsVtaVendedores Dim Objeto As New ClsVtaVendedores
If Objeto.GetVendedores(UsuarioActual.CveEmpresa) Then If Objeto.GetVendedores(UsuarioActual.CveEmpresa) Then
Dim DTVendedores As New DataTable Dim DTVendedores As New DataTable
DTVendedores = Objeto.DtResultados.FiltraParametros(String.Format("CveVendedor = {0}", DbRowVenta("CveVendedor").ToString())).FiltraParametros(String.Format("CveSupervisor = {0}", UsuarioActual.CveVendedor)) If DbRowVenta("CveVendedor").ToString().ToEntero() > 0 AndAlso UsuarioActual.CveVendedor > 0 Then
DTVendedores = Objeto.DtResultados.FiltraParametros(String.Format("CveVendedor = {0}", DbRowVenta("CveVendedor").ToString())).FiltraParametros(String.Format("CveSupervisor = {0}", UsuarioActual.CveVendedor))
End If
'Verifico si es su supervisor asignado 'Verifico si es su supervisor asignado
If DTVendedores.Rows.Count > 0 Then If DTVendedores.Rows.Count > 0 Then
LkCotizacionAutorizar.Visible = True LkCotizacionAutorizar.Visible = True
If TipoEstatus = 2 Then
LkCotizacionAutorizar.Visible = False
ElseIf TipoEstatus = 2 Then
LkCotizacionAutorizar.Visible = False
End If
End If End If
DTVendedores.Dispose() DTVendedores.Dispose()
End If End If
@@ -4651,6 +4677,41 @@ Partial Class Ventas
End If End If
GvOCRelacionadas.DataBind() GvOCRelacionadas.DataBind()
'Verifico si tiene la funcionalidad (135)
If DdlTipoComprobante.SelectedValue = "Cot" AndAlso UsuarioActual.Empresa.Funcionalidad(135) = "1" Then
'Reviso cuales son los supervisores
Dim ObjVendedores As New ClsVtaVendedores
If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then
Dim DTVendedores As New DataTable
If DbRowVenta("CveVendedor").ToString().ToEntero() > 0 AndAlso UsuarioActual.CveVendedor > 0 Then
DTVendedores = ObjVendedores.DtResultados.FiltraParametros(String.Format("CveVendedor = {0}", DbRowVenta("CveVendedor").ToString())).FiltraParametros(String.Format("CveSupervisor = {0}", UsuarioActual.CveVendedor))
End If
'Verifico si es su supervisor asignado
If DTVendedores.Rows.Count > 0 Then
If GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.CveEstatus}").ToEntero() = 2 Then
BtnsFacturar.Visible = True
BtnGenerarRemision.Visible = True
Else
BtnsFacturar.Visible = False
BtnGenerarRemision.Visible = False
End If
End If
DTVendedores.Dispose()
End If
ObjVendedores.Dispose()
End If
If DdlTipoComprobante.SelectedValue = "Cot" Then
If GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.CveEstatus}").ToEntero() = 5 Then
BtnsFacturar.Visible = False
BtnGenerarRemision.Visible = False
End If
End If
UpPS.Update() UpPS.Update()
UpContado.Update() UpContado.Update()
UpEstatus.Update() UpEstatus.Update()
@@ -10413,7 +10474,7 @@ Partial Class Ventas
If ErrorList.Count = 0 Then If ErrorList.Count = 0 Then
'prepoliza 'prepoliza
GuardarVentaPrePolizas(ObjConta, factura, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento) GuardarVentaPrePolizas(ObjConta, factura, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento, ObjInventario:=ObjInventario)
If ErrorList.Count = 0 Then If ErrorList.Count = 0 Then
'INVENTARIOS 'INVENTARIOS
@@ -10448,7 +10509,7 @@ Partial Class Ventas
Private Sub GuardarVentaPrePolizas(ByRef ObjConta As ClsContabilidad, factura As Modelos.Factura, TmpDTDetalleMovimientos As DataTable, CveNCaVincular As Integer, Private Sub GuardarVentaPrePolizas(ByRef ObjConta As ClsContabilidad, factura As Modelos.Factura, TmpDTDetalleMovimientos As DataTable, CveNCaVincular As Integer,
ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing,
ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional EsNCAmortizacion As Boolean = False, Optional NCDescuento As Boolean = False, ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional EsNCAmortizacion As Boolean = False, Optional NCDescuento As Boolean = False,
Optional ValorMultiplicador As Integer = 1, Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing) Optional ValorMultiplicador As Integer = 1, Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing, Optional ObjInventario As ClsInventarios = Nothing)
Dim CveIE As Integer = -1 Dim CveIE As Integer = -1
Dim DT As DataTable = Nothing Dim DT As DataTable = Nothing
@@ -10467,7 +10528,7 @@ Partial Class Ventas
If DdlTipoComprobante.SelectedValue <> "Cot" Then If DdlTipoComprobante.SelectedValue <> "Cot" Then
If factura.CvePrePoliza > 0 Then If factura.CvePrePoliza > 0 Then
If ProcesoPrepolizas(ObjConta, factura, CveIE, TmpDTDetalleMovimientos, objContPaqi, ValorMultiplicador, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento) Then If ProcesoPrepolizas(ObjConta, factura, CveIE, TmpDTDetalleMovimientos, objContPaqi, ValorMultiplicador, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento, ObjInventario:=ObjInventario) Then
ErrorList.Add("Ocurrió un error al agregar los Movimientos de la prepoliza.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico") ErrorList.Add("Ocurrió un error al agregar los Movimientos de la prepoliza.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
End If End If
@@ -10478,7 +10539,8 @@ Partial Class Ventas
End Sub End Sub
Private Function ProcesoPrepolizas(ByRef ObjConta As ClsContabilidad, ObjFactura As Modelos.Factura, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi, Private Function ProcesoPrepolizas(ByRef ObjConta As ClsContabilidad, ObjFactura As Modelos.Factura, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi,
Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing, Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing,
ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional EsNCAmortizacion As Boolean = False, Optional NCDescuento As Boolean = False, Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing) As Boolean ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional EsNCAmortizacion As Boolean = False, Optional NCDescuento As Boolean = False,
Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing, Optional ObjInventario As ClsInventarios = Nothing) As Boolean
Try Try
Dim DT As DataTable Dim DT As DataTable
Dim CvePlantilaPoliza As Integer Dim CvePlantilaPoliza As Integer
@@ -11313,12 +11375,43 @@ Partial Class Ventas
IdCtaContableCliente = IdCtaContable IdCtaContableCliente = IdCtaContable
CveCuentaCliente = CveCuenta CveCuentaCliente = CveCuenta
If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then Dim CveMovimiento As Integer = -1
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then Dim CveAlmacen As Integer = -1
If ObjInventario IsNot Nothing AndAlso ObjInventario.GetInv_Mov(ObjRNC.CveVenta, UsuarioActual.CveEmpresa) Then
CveMovimiento = ObjInventario.DtResultados.FiltroPrimeroValor("CveMovimiento", "CvePS IS NULL AND CveConcepto = 42").ToEntero()
CveAlmacen = ObjInventario.DtResultados.FiltroPrimeroValor("CveAlmacen", "CvePS IS NULL AND CveConcepto = 42").ToEntero()
End If
'VERIFICA SI TIENE MOVIMIENTO DE ENTRADA DE USADO
If CveMovimiento > 0 AndAlso CveAlmacen > 0 Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
Dim SubTotalCalculado As Decimal = (importeMovimiento / (1D + ObjRNC.PorcentajeIVA)).ToDecimal
Dim Importe318 As Decimal = (SubTotalCalculado * ObjRNC.PorcentajeIVA).RoundSQL(2).ToDecimal()
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, Importe318, Referencia, 318, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Importe318, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, SubTotalCalculado, Referencia, 150, Concepto, ObjFactura.Fecha, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, CveClasificacion:=ObjRNC.DtDetalle.MAX("CveClasificacion").ToEntero(), CveSubProyecto:=ObjRNC.CveSubProyecto, ImporteMX:=SubTotalCalculado, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), TipoCambio:=tipoCambio, CveCuenta:=CveCuenta, Contabilizable:=False) Then
ErrorPrepoliza = True
Else
ViewState("SeGuardoPrePoliza") = True
End If
Else Else
ErrorPrepoliza = True If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
Else
ErrorPrepoliza = True
End If
End If End If
importeMovimiento = 0 importeMovimiento = 0
@@ -12717,15 +12810,15 @@ Partial Class Ventas
'TIMBRADO NUEVO 'TIMBRADO NUEVO
Try Try
If CveVenta > 0 Then
ObjFactura = New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=False)
End If
pdf = PdfFactura(ObjFactura) pdf = PdfFactura(ObjFactura)
Catch ex As Exception Catch ex As Exception
Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgError) Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgError)
End Try End Try
If CveVenta > 0 Then
ObjFactura = New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=False)
End If
LocalSerieFolio = ObjFactura.SerieFolio LocalSerieFolio = ObjFactura.SerieFolio
LocalTipoDocto = ObjFactura.TipoDocto LocalTipoDocto = ObjFactura.TipoDocto
@@ -15773,305 +15866,309 @@ Partial Class Ventas
Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False) As Boolean Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
If Not CvePS > 0 Then Try
Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError) If Not CvePS > 0 Then
Return False Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError)
End If
If (Obs.Length + PS.Length > 1000) AndAlso DdlTipoComprobante.SelectedValue <> "Cot" Then
Alert(String.Format("El Nombre y observación del producto tiene longitud de {0} caracteres y excede los 1000 caracteres permitidos.", Obs.Length + PS.Length), TipoMensaje.MsgAdvertencia)
Return False
End If
'VALIDA CONCEPTOS EN CERO - YA SE VALIDA ANTES CON FUNCIONALIDAD - A MIRAS DE ELIMINAR - IPP 28 AGOSTO 2017
If Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "Ant") Then
If UsuarioActual.CveEmpresa.Contiene(72, 80) AndAlso CveOrdenCompraDetalle = 0 Then ' si viene de una oc, se permiten valores en cero
If Cantidad * PU <= 0 Then
If Not DdlTipoComprobante.SelectedValue = "DPe" Then
Alert("El importe del concepto debe ser mayor a cero. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Return False
End If
End If
End If
End If
Dim Row As DataRow = Nothing
Dim TotalCalculableImpuestos As Decimal = 0
Dim TotalCalculableImpuestosIVA As Decimal = 0
PU = PU.RoundSQL(6) ' el precio unitario puede llevar hasta 6 decimales permitidos
Row = TmpDT.NewRow()
Row("CveProyecto") = CveProyecto
Row("Proyecto") = Proyecto
Row("CveSubProyecto") = CveSubProyecto
Row("SubProyecto") = SubProyecto
Row("Serie") = Serie
Row("TiempoEntrega") = TiempoEntrega
Row("Orden") = TmpDT.Rows.Count + 1
Row("Cantidad") = Cantidad
Row("CveUM") = CveUM
Row("UM") = UM
Row("CveClasificacion") = CveClasificacion
Row("Clasificacion") = Clasificacion
Row("CvePS") = CvePS
Row("Obs") = Obs
Dim DrPS As DataRow = Nothing
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
If DrPS Is Nothing Then
Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Return False
End If
If (DrPS("SATClaveUnidadMedida").ToString() = "" Or DrPS("SATClavePS").ToString() = "") Then
'VALIDA CLAVESAT
If Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then 'DOCUMENTOS DONDE NO SE VALIDA
If DrPS("SATClavePS").ToString() = "" Then
MensajeCveSAT.AppendFormat("<b>{0}-{1}</b>: Sin producto SAT<br/>", DrPS("Codigo").ToString(), DrPS("PS").ToString())
Return False
ElseIf DrPS("SATClaveUnidadMedida").ToString() = "" Then
MensajeCveSAT.AppendFormat("<b>{0}-{1}</b>: Sin Unidad Medida SAT<br/>", DrPS("Codigo").ToString(), DrPS("PS").ToString())
Return False
End If
If UsuarioActual.CveEmpresa = 72 AndAlso DrPS("SATClavePS").ToString() = "01010101" Then
MensajeCveSAT.AppendFormat("<b>{0}-{1}</b>: El producto/servicio no existe en el catálogo del SAT<br/>", DrPS("Codigo").ToString(), DrPS("PS").ToString())
Return False
End If
End If
End If
'verifica si tiene ventaminima
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString().ToDecimal > 0 Then
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
If Cantidad Mod DrPS("VentaMinima").ToString().ToDecimal <> 0 Then
Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString()))
Return False Return False
End If End If
End If
'VERIFICA SI EN LA FACTURA PADRE SE DESGLOSO EL IEPS If (Obs.Length + PS.Length > 1000) AndAlso DdlTipoComprobante.SelectedValue <> "Cot" Then
Dim FacturaDesglosoIEPS As Boolean = ((CveDevolucion > 0 AndAlso NuevaFactura = 1) AndAlso (Me.ObjFacturaNC IsNot Nothing AndAlso Not Me.ObjFacturaNC.VentaDesglosaIEPS)) Alert(String.Format("El Nombre y observación del producto tiene longitud de {0} caracteres y excede los 1000 caracteres permitidos.", Obs.Length + PS.Length), TipoMensaje.MsgAdvertencia)
Return False
If Not ClienteDesglosaIEPS Then
If Not RegeneraIEPS AndAlso Not FacturaDesglosoIEPS Then
PU = PU * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal)
VentaDesglosaIEPS = True
End If End If
DrPS("IEPSPorcentaje") = 0
End If
'SI YA SE DESGLOSO EL IEPS SE GUARDA LA BANDERA EN ESTA FACTURA
If FacturaDesglosoIEPS Then
VentaDesglosaIEPS = True
End If
'VALIDA CONCEPTOS EN CERO - YA SE VALIDA ANTES CON FUNCIONALIDAD - A MIRAS DE ELIMINAR - IPP 28 AGOSTO 2017
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento If Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "Ant") Then
TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal) If UsuarioActual.CveEmpresa.Contiene(72, 80) AndAlso CveOrdenCompraDetalle = 0 Then ' si viene de una oc, se permiten valores en cero
If Cantidad * PU <= 0 Then
Row("PU") = PU If Not DdlTipoComprobante.SelectedValue = "DPe" Then
Row("Codigo") = DrPS("Codigo") Alert("El importe del concepto debe ser mayor a cero. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Row("NoIdentificacion") = DrPS("Codigo") Return False
Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria") End If
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana") End If
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion") End If
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
If Modalidad = "U" Then
Row("Consec") = Index
Else
Row("Consec") = TmpDT.Rows.Count + 1
End If
Row("PS") = DrPS("PS")
Row("CodigoPS") = DrPS("PSCodigo").ToString()
Row("CveTipoPS") = DrPS("CveTipoPS")
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
Row("CveTamaño") = DrPS("CveTamaño")
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
If DrPS("IVA").ToString().Contiene("-1", "") Then
Row("PorcentajeIVA") = PorcentajeIVA
Else
Row("PorcentajeIVA") = DrPS("IVA")
End If
Dim ClienteRetIVA = Me.ClienteRetIVA
If ClienteRetIVA <= 0 Then
If CBool(DrPS("EsOutSourcing").ToString()) Then
ClienteRetIVA = 0.06D
DdlTipoRetencion.SelectedValueExist("4")
ElseIf DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then
ClienteRetIVA = 0.106667D
ElseIf DdlTipoRetencion.SelectedValue.Contiene("3") Then
ClienteRetIVA = 0.04D
End If End If
End If
LblRetIVA.Text = (ClienteRetIVA * 100).FormatoNumero Dim Row As DataRow = Nothing
TrRetIVA.Style.Add("display", "") Dim TotalCalculableImpuestos As Decimal = 0
DdlTipoRetencion.Visible = True Dim TotalCalculableImpuestosIVA As Decimal = 0
PU = PU.RoundSQL(6) ' el precio unitario puede llevar hasta 6 decimales permitidos
Row = TmpDT.NewRow()
Row("CveProyecto") = CveProyecto
Row("Proyecto") = Proyecto
Row("CveSubProyecto") = CveSubProyecto
Row("SubProyecto") = SubProyecto
Row("Serie") = Serie
Row("TiempoEntrega") = TiempoEntrega
Row("Orden") = TmpDT.Rows.Count + 1
Row("Cantidad") = Cantidad
Row("CveUM") = CveUM
Row("UM") = UM
Row("CveClasificacion") = CveClasificacion
Row("Clasificacion") = Clasificacion
Row("CvePS") = CvePS
Row("Obs") = Obs
Row("IVA") = Row("PorcentajeIVA") Dim DrPS As DataRow = Nothing
Row("ImporteIVA") = (Row("PorcentajeIVA").ToString().ToDecimal * TotalCalculableImpuestosIVA).RoundSQL(NumeroDecimales)
Row("ImporteRetIVA") = (ClienteRetIVA * TotalCalculableImpuestos).RoundSQL(NumeroDecimales)
Row("ImporteRetISR") = (ClienteRetISR * TotalCalculableImpuestos).RoundSQL(NumeroDecimales)
Row("PorcentajeRetIVA") = ClienteRetIVA
Row("PorcentajeRetISR") = ClienteRetISR
Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
Row("ImporteIEPS") = (DrPS("IEPSPorcentaje").ToString().ToDecimal * TotalCalculableImpuestos).RoundSQL(NumeroDecimales)
Row("IEPS") = Row("ImporteIEPS")
Row("Descuento") = (Descuento).RoundSQL(NumeroDecimales)
Row("TipoDescuento") = HdnTipoDescuento.Value
Row("CvePromocionDetalle") = CvePromocionDetalle
Row("Total") = (Cantidad * PU)
Row("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales)
'Row("AsientoContableVentas") = DrPS("AsientoContableVentas") DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
' Row("IdCtaContVentas") = IdCtaContable
' Row("AplicaParaConcepto") = AplicaParaConcepto
Row("SATClaveProdServ") = DrPS("SATClavePS") If DrPS Is Nothing Then
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida") Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Return False
End If
If UsuarioActual.Empresa.UsaAC Then If (DrPS("SATClaveUnidadMedida").ToString() = "" Or DrPS("SATClavePS").ToString() = "") Then
Row("CvePresupuestoIngreso") = Me.DdlFuenteRecaudacion.SelectedValue 'VALIDA CLAVESAT
End If If Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then 'DOCUMENTOS DONDE NO SE VALIDA
If DrPS("SATClavePS").ToString() = "" Then
MensajeCveSAT.AppendFormat("<b>{0}-{1}</b>: Sin producto SAT<br/>", DrPS("Codigo").ToString(), DrPS("PS").ToString())
Return False
ElseIf DrPS("SATClaveUnidadMedida").ToString() = "" Then
MensajeCveSAT.AppendFormat("<b>{0}-{1}</b>: Sin Unidad Medida SAT<br/>", DrPS("Codigo").ToString(), DrPS("PS").ToString())
Return False
End If
Row("EntregaDirecta") = EntregaDirecta If UsuarioActual.CveEmpresa = 72 AndAlso DrPS("SATClavePS").ToString() = "01010101" Then
'Contratos MensajeCveSAT.AppendFormat("<b>{0}-{1}</b>: El producto/servicio no existe en el catálogo del SAT<br/>", DrPS("Codigo").ToString(), DrPS("PS").ToString())
Row("CveContratoDetalle") = CveContratoDetalle
Row("CveVentaDetalle") = CveVentaDetalle
Row("CveMovimientoDetallePedido") = CveMovimientoDetallePedido
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
Row("CuentaPredial") = CuentaPredial
Row("EsOutSourcing") = DrPS("EsOutSourcing")
Row("EsCargo") = EsCargo
If UsuarioActual.CveEmpresa = 119 Then
If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString() Then
Alert($"La moneda base del producto: <b>{DrPS("PSCodigo").ToString()}</b> es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
Return False Return False
End If End If
End If End If
End If
'ACTIVA PRODUCTOS DE LA MISMA MONEDA 'verifica si tiene ventaminima
If TmpDT.Rows.Count = 0 And CveVenta < 0 Then If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString().ToDecimal > 0 Then
DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString()) 'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
CambiaMoneda() If Cantidad Mod DrPS("VentaMinima").ToString().ToDecimal <> 0 Then
DdlMoneda.Enabled = False Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString()))
Return False
End If End If
End If End If
End If
'VERIFICA SI EN LA FACTURA PADRE SE DESGLOSO EL IEPS
Dim FacturaDesglosoIEPS As Boolean = ((CveDevolucion > 0 AndAlso NuevaFactura = 1) AndAlso (Me.ObjFacturaNC IsNot Nothing AndAlso Not Me.ObjFacturaNC.VentaDesglosaIEPS))
If Not ClienteDesglosaIEPS Then
If Not RegeneraIEPS AndAlso Not FacturaDesglosoIEPS Then
PU = PU * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal)
VentaDesglosaIEPS = True
End If
DrPS("IEPSPorcentaje") = 0
End If
'SI YA SE DESGLOSO EL IEPS SE GUARDA LA BANDERA EN ESTA FACTURA
If FacturaDesglosoIEPS Then
VentaDesglosaIEPS = True
End If
'RECARGAR GV TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
TmpDT.Rows.Add(Row) TotalCalculableImpuestosIVA = TotalCalculableImpuestos * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal)
Row("PU") = PU
Row("Codigo") = DrPS("Codigo")
Row("NoIdentificacion") = DrPS("Codigo")
Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
If Modalidad = "U" Then
Row("Consec") = Index
Else
Row("Consec") = TmpDT.Rows.Count + 1
End If
Row("PS") = DrPS("PS")
Row("CodigoPS") = DrPS("PSCodigo").ToString()
Row("CveTipoPS") = DrPS("CveTipoPS")
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
Row("CveTamaño") = DrPS("CveTamaño")
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
If DrPS("IVA").ToString().Contiene("-1", "") Then
Row("PorcentajeIVA") = PorcentajeIVA
Else
Row("PorcentajeIVA") = DrPS("IVA")
End If
Dim ClienteRetIVA = Me.ClienteRetIVA
If ClienteRetIVA <= 0 Then
If CBool(DrPS("EsOutSourcing").ToString()) Then
ClienteRetIVA = 0.06D
DdlTipoRetencion.SelectedValueExist("4")
ElseIf DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then
ClienteRetIVA = 0.106667D
ElseIf DdlTipoRetencion.SelectedValue.Contiene("3") Then
ClienteRetIVA = 0.04D
End If
End If
LblRetIVA.Text = (ClienteRetIVA * 100).FormatoNumero
TrRetIVA.Style.Add("display", "")
DdlTipoRetencion.Visible = True
'AGREGA PS ADICIONAL Row("IVA") = Row("PorcentajeIVA")
If UsuarioActual.Empresa.Funcionalidad(561).ToString() = "1" AndAlso Not UsuarioActual.TienePermisoProceso(285) AndAlso GlobalDTPSAdicionales(CvePS, UsuarioActual.CveEmpresa).Rows.Count > 0 AndAlso Not SeActualiza Then Row("ImporteIVA") = (Row("PorcentajeIVA").ToString().ToDecimal * TotalCalculableImpuestosIVA).RoundSQL(NumeroDecimales)
Row("ImporteRetIVA") = (ClienteRetIVA * TotalCalculableImpuestos).RoundSQL(NumeroDecimales)
Row("ImporteRetISR") = (ClienteRetISR * TotalCalculableImpuestos).RoundSQL(NumeroDecimales)
Row("PorcentajeRetIVA") = ClienteRetIVA
Row("PorcentajeRetISR") = ClienteRetISR
Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
Row("ImporteIEPS") = (DrPS("IEPSPorcentaje").ToString().ToDecimal * TotalCalculableImpuestos).RoundSQL(NumeroDecimales)
Row("IEPS") = Row("ImporteIEPS")
Row("Descuento") = (Descuento).RoundSQL(NumeroDecimales)
Row("TipoDescuento") = HdnTipoDescuento.Value
Row("CvePromocionDetalle") = CvePromocionDetalle
Row("Total") = (Cantidad * PU)
Row("TotalImporte") = (Cantidad * PU).RoundSQL(NumeroDecimales)
For Each Dr As DataRow In GlobalDTPSAdicionales(CvePS, UsuarioActual.CveEmpresa).Rows 'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
Dim CvePSAdicional As Integer = Dr("CvePSAdicional").ToString().ToEntero() ' Row("IdCtaContVentas") = IdCtaContable
Dim DrPoliza As DataRow = TmpDT.NewRow() ' Row("AplicaParaConcepto") = AplicaParaConcepto
DrPoliza.ItemArray = Row.ItemArray
Dim DrPSAdicional = GlobalDTPS(UsuarioActual.CveEmpresa, CvePSAdicional).Rows(0)
If DrPSAdicional IsNot Nothing Then
DrPoliza("CvePS") = CvePSAdicional
DrPoliza("PS") = DrPSAdicional("PS").ToString()
DrPoliza("CveUM") = DrPSAdicional("CveUM").ToString().ToEntero()
DrPoliza("UM") = DrPSAdicional("UnidadMedida").ToString()
DrPoliza("CveClasificacion") = DrPSAdicional("CveClasificacion").ToString().ToEntero()
DrPoliza("Clasificacion") = DrPSAdicional("Clasificacion").ToString()
DrPoliza("CodigoPS") = DrPSAdicional("PSCodigo").ToString()
DrPoliza("CveTipoPS") = DrPSAdicional("CveTipoPS")
DrPoliza("CveTipoInvPS") = DrPSAdicional("Inv_CveMetodoInventario")
DrPoliza("NoIdentificacion") = DrPSAdicional("Codigo")
If Modalidad = "U" Then
DrPoliza("Consec") = Index
Else
DrPoliza("Consec") = TmpDT.Rows.Count + 1
End If
Row("Orden") = TmpDT.Rows.Count + 1
DrPoliza("Cantidad") = If(Dr("Cantidad").ToString().ToDecimal > 0, Dr("Cantidad").ToString().ToDecimal, Cantidad)
PU = 0
Dim PrecioSugerido As Decimal = 0 Row("SATClaveProdServ") = DrPS("SATClavePS")
'Dim CvePrecioListaPS = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltroPrimeroValor("CvePrecioLista", $"CveCliente = {CveCliente}").ToEntero() Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
If CvePrecioLista > 0 Then
Dim ObjPS As New ClsProductosServicios
If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioLista, CvePS:=CvePSAdicional) Then
PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDecimal If UsuarioActual.Empresa.UsaAC Then
If PrecioSugerido = 0 Then Row("CvePresupuestoIngreso") = Me.DdlFuenteRecaudacion.SelectedValue
Dim ObjInventarios As New ClsInventarios End If
Dim CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal Row("EntregaDirecta") = EntregaDirecta
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) 'Contratos
Row("CveContratoDetalle") = CveContratoDetalle
Row("CveVentaDetalle") = CveVentaDetalle
Row("CveMovimientoDetallePedido") = CveMovimientoDetallePedido
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
Row("CuentaPredial") = CuentaPredial
Row("EsOutSourcing") = DrPS("EsOutSourcing")
Row("EsCargo") = EsCargo
ObjInventarios.Dispose() If UsuarioActual.CveEmpresa = 119 Then
Dim PorcentajePrecio = ObjPS.DtResultados.FiltroPrimeroValor("Porcentaje").ToDecimal If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
If CostoPS > 0 And PorcentajePrecio > 0 Then
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS 'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
End If If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
End If If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString() Then
ObjPS.Dispose() Alert($"La moneda base del producto: <b>{DrPS("PSCodigo").ToString()}</b> es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
Return False
End If End If
End If End If
'ACTIVA PRODUCTOS DE LA MISMA MONEDA
If PrecioSugerido > 0 Then If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
PU = PrecioSugerido DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString())
CambiaMoneda()
DdlMoneda.Enabled = False
End If End If
PU = Math.Round(PU, 6)
DrPoliza("PU") = PU
TotalCalculableImpuestos = (DrPoliza("Cantidad").ToString().ToDecimal * (PU))
If DrPSAdicional("IVA").ToString().Contiene("-1", "") Then
DrPoliza("PorcentajeIVA") = PorcentajeIVA
Else
DrPoliza("PorcentajeIVA") = DrPSAdicional("IVA")
End If
DrPoliza("IVA") = DrPoliza("PorcentajeIVA")
DrPoliza("ImporteIVA") = Math.Round(DrPoliza("PorcentajeIVA").ToString().ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("PorcentajeRetIVA") = ClienteRetIVA
DrPoliza("PorcentajeRetISR") = ClienteRetISR
DrPoliza("PorcentajeIEPS") = DrPSAdicional("IEPSPorcentaje")
DrPoliza("ImporteIEPS") = Math.Round(DrPSAdicional("IEPSPorcentaje").ToString().ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("IEPS") = DrPoliza("ImporteIEPS")
DrPoliza("Descuento") = 0 ' Descuento
DrPoliza("TipoDescuento") = HdnTipoDescuento.Value
DrPoliza("Total") = (DrPoliza("Cantidad").ToString().ToDecimal * PU)
DrPoliza("TotalImporte") = Math.Round(DrPoliza("Cantidad").ToString().ToDecimal * PU, NumeroDecimales)
DrPoliza("SATClaveProdServ") = DrPSAdicional("SATClavePS")
DrPoliza("SATClaveUM") = DrPSAdicional("SATClaveUnidadMedida")
TmpDT.Rows.Add(DrPoliza)
End If End If
Next End If
'RECARGAR GV
TmpDT.Rows.Add(Row)
End If 'AGREGA PS ADICIONAL
If UsuarioActual.Empresa.Funcionalidad(561).ToString() = "1" AndAlso Not UsuarioActual.TienePermisoProceso(285) AndAlso GlobalDTPSAdicionales(CvePS, UsuarioActual.CveEmpresa).Rows.Count > 0 AndAlso Not SeActualiza Then
For Each Dr As DataRow In GlobalDTPSAdicionales(CvePS, UsuarioActual.CveEmpresa).Rows
Dim CvePSAdicional As Integer = Dr("CvePSAdicional").ToString().ToEntero()
Dim DrPoliza As DataRow = TmpDT.NewRow()
DrPoliza.ItemArray = Row.ItemArray
Dim DrPSAdicional = GlobalDTPS(UsuarioActual.CveEmpresa, CvePSAdicional).Rows(0)
If DrPSAdicional IsNot Nothing Then
DrPoliza("CvePS") = CvePSAdicional
DrPoliza("PS") = DrPSAdicional("PS").ToString()
DrPoliza("CveUM") = DrPSAdicional("CveUM").ToString().ToEntero()
DrPoliza("UM") = DrPSAdicional("UnidadMedida").ToString()
DrPoliza("CveClasificacion") = DrPSAdicional("CveClasificacion").ToString().ToEntero()
DrPoliza("Clasificacion") = DrPSAdicional("Clasificacion").ToString()
DrPoliza("CodigoPS") = DrPSAdicional("PSCodigo").ToString()
DrPoliza("CveTipoPS") = DrPSAdicional("CveTipoPS")
DrPoliza("CveTipoInvPS") = DrPSAdicional("Inv_CveMetodoInventario")
DrPoliza("NoIdentificacion") = DrPSAdicional("Codigo")
If Modalidad = "U" Then
DrPoliza("Consec") = Index
Else
DrPoliza("Consec") = TmpDT.Rows.Count + 1
End If
Row("Orden") = TmpDT.Rows.Count + 1
DrPoliza("Cantidad") = If(Dr("Cantidad").ToString().ToDecimal > 0, Dr("Cantidad").ToString().ToDecimal, Cantidad)
PU = 0
Dim PrecioSugerido As Decimal = 0
'Dim CvePrecioListaPS = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltroPrimeroValor("CvePrecioLista", $"CveCliente = {CveCliente}").ToEntero()
If CvePrecioLista > 0 Then
Dim ObjPS As New ClsProductosServicios
If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioLista, CvePS:=CvePSAdicional) Then
PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDecimal
If PrecioSugerido = 0 Then
Dim ObjInventarios As New ClsInventarios
Dim CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSAdicional, DrPoliza("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
Dim PorcentajePrecio = ObjPS.DtResultados.FiltroPrimeroValor("Porcentaje").ToDecimal
If CostoPS > 0 And PorcentajePrecio > 0 Then
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS
End If
End If
ObjPS.Dispose()
End If
End If
If PrecioSugerido > 0 Then
PU = PrecioSugerido
End If
PU = Math.Round(PU, 6)
DrPoliza("PU") = PU
TotalCalculableImpuestos = (DrPoliza("Cantidad").ToString().ToDecimal * (PU))
If DrPSAdicional("IVA").ToString().Contiene("-1", "") Then
DrPoliza("PorcentajeIVA") = PorcentajeIVA
Else
DrPoliza("PorcentajeIVA") = DrPSAdicional("IVA")
End If
DrPoliza("IVA") = DrPoliza("PorcentajeIVA")
DrPoliza("ImporteIVA") = Math.Round(DrPoliza("PorcentajeIVA").ToString().ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("PorcentajeRetIVA") = ClienteRetIVA
DrPoliza("PorcentajeRetISR") = ClienteRetISR
DrPoliza("PorcentajeIEPS") = DrPSAdicional("IEPSPorcentaje")
DrPoliza("ImporteIEPS") = Math.Round(DrPSAdicional("IEPSPorcentaje").ToString().ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
DrPoliza("IEPS") = DrPoliza("ImporteIEPS")
DrPoliza("Descuento") = 0 ' Descuento
DrPoliza("TipoDescuento") = HdnTipoDescuento.Value
DrPoliza("Total") = (DrPoliza("Cantidad").ToString().ToDecimal * PU)
DrPoliza("TotalImporte") = Math.Round(DrPoliza("Cantidad").ToString().ToDecimal * PU, NumeroDecimales)
DrPoliza("SATClaveProdServ") = DrPSAdicional("SATClavePS")
DrPoliza("SATClaveUM") = DrPSAdicional("SATClaveUnidadMedida")
TmpDT.Rows.Add(DrPoliza)
End If
Next
End If
Retorno = True
Catch ex As Exception
Retorno = False
OnError("Ocurrió un error al agregar el producto/servicio", ex)
End Try
Retorno = True
Return Retorno Return Retorno
End Function End Function
@@ -19542,8 +19639,19 @@ Partial Class Ventas
LBDevolucionAlmacen.ToolTip = "¿Está seguro de Solicitar la Devolución de Almacén?" LBDevolucionAlmacen.ToolTip = "¿Está seguro de Solicitar la Devolución de Almacén?"
End If End If
If VentaSaldoAlmacen < 0 Then
If DevolucionAlmacen = 0 Then
LBAplicaDevolucion.Visible = True
ElseIf DevolucionAlmacen.Contiene(1, 2) Then
LBAplicaDevolucion.Visible = False
End If
ElseIf VentaSaldoAlmacen >= 0 Then
LBAplicaDevolucion.Visible = False
End If
End If End If
UpnTools.Update()
'UpInvDev.Update() 'UpInvDev.Update()
End Sub End Sub
Protected Sub LBDevolucionAlmacen_Click(sender As Object, e As EventArgs) Protected Sub LBDevolucionAlmacen_Click(sender As Object, e As EventArgs)
@@ -19571,8 +19679,9 @@ Partial Class Ventas
ObjVentas.Dispose() ObjVentas.Dispose()
Me.DevolucionAlmacen = EstatusDevolucion Me.DevolucionAlmacen = EstatusDevolucion
InicializaDevolucionAlmacen() InicializaDevolucionAlmacen()
UpnTools.Update() 'UpnTools.Update()
End Sub End Sub
@@ -20243,8 +20352,21 @@ Partial Class Ventas
End Sub End Sub
Private Sub LkCotizacionAutorizar_Click(sender As Object, e As EventArgs) Handles LkCotizacionAutorizar.Click Private Sub LkCotizacionAutorizar_Click(sender As Object, e As EventArgs) Handles LkCotizacionAutorizar.Click
EsSupervisor = True EsSupervisor = True
GeneraPDFCotizacion(True) Dim ActualizoEstatus As Boolean = False
Alert("La cotización ha sido enviada al correo de nuestro cliente:" & Mail)
Dim ObjVentas As New ClsVentas
If ObjVentas.UpdateEstatusFactura(8, FolioFiscal, "", Now, CveVenta) Then
ActualizoEstatus = True
End If
ObjVentas.Dispose()
If ActualizoEstatus Then
'GeneraPDFCotizacion(True)
Alert("La cotización ha sido enviada al correo de nuestro cliente:" & Mail)
Else
Alert("No se pudo autorizar la cotización", TipoMensaje.MsgError)
End If
End Sub End Sub
#End Region #End Region