Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -773,6 +773,27 @@ Public Class ClsContratos
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
|
||||
Public Function GetContratosObraAvancesControlAcumulativo(CveContrato As Integer, CveEstimacion As Integer, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno = False
|
||||
|
||||
DataAdapter("PA_Con_ContratosObraAvancesControlAcumulativo")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
|
||||
.Add("@CveEstimacion", SqlDbType.Int).Value = CveEstimacion
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
End With
|
||||
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al consultar elcontrol acumulativo.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
|
||||
End Try
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C I C L O C O M E R C I A L"
|
||||
|
||||
@@ -1075,7 +1075,7 @@ Public Class ClsPaginas
|
||||
|
||||
End Get
|
||||
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
|
||||
End Set
|
||||
End Property
|
||||
@@ -6713,6 +6713,17 @@ Public Class ClsPaginas
|
||||
params.Add(New ReportParameter("ClienteDatoExtra1", DatosCliente))
|
||||
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
|
||||
If UsuarioActual.CveEmpresa.Contiene(72, 1) Then
|
||||
Dim INETipoProceso As String = ""
|
||||
|
||||
@@ -551,6 +551,8 @@ Namespace Modelos
|
||||
Public Property SeTimbro As Boolean
|
||||
Public Property SeTimbroNotaCredito As Boolean
|
||||
Public Property CveEstatus As Integer
|
||||
Public Property CveMovimientoUsado As Integer
|
||||
Public Property FolioUsado As String
|
||||
|
||||
End Class
|
||||
Public Function RegenerarPrePolizas(Optional TransaccionCompartida As SqlClient.SqlTransaction = Nothing, Optional ObjACTransac As ClsContPAQi = Nothing) As Boolean
|
||||
@@ -707,7 +709,7 @@ Namespace Modelos
|
||||
Next
|
||||
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
|
||||
Dim ObjNC As List(Of Object) = Nothing
|
||||
@@ -1341,7 +1343,7 @@ Namespace Modelos
|
||||
End If
|
||||
|
||||
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
|
||||
|
||||
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.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 DtVentasNC Is Nothing Then
|
||||
InicializaDTVentasNC()
|
||||
@@ -1452,6 +1449,11 @@ Namespace Modelos
|
||||
End If
|
||||
Next
|
||||
|
||||
'GUARDAR USADOS
|
||||
If Not GuardarUsados(ObjAcum, ObjVentas, ObjInventario, factura, Resp) Then
|
||||
ErrorList.Add("Error al guardar usados")
|
||||
End If
|
||||
|
||||
'BONIFICACION USADOS
|
||||
If UsadosBonificacion IsNot Nothing AndAlso UsadosBonificacion.Count > 0 AndAlso TipoBonificacion > 0 Then
|
||||
For Each CveMovto In UsadosBonificacion
|
||||
@@ -1627,10 +1629,10 @@ Namespace Modelos
|
||||
|
||||
If ErrorList.Count = 0 Then
|
||||
'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
|
||||
'inventarios
|
||||
GuardarVentaInventarios(factura, ObjInventario, ObjConta)
|
||||
GuardarVentaInventarios(factura, ObjInventario, ObjConta, ObjVentas, ObjAcum)
|
||||
|
||||
'GuardaRecepcionUsados(factura, ObjInventario, ObjConta)
|
||||
|
||||
@@ -1910,7 +1912,7 @@ Namespace Modelos
|
||||
DtVentasNC.Rows.Add(Dr)
|
||||
End If
|
||||
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
|
||||
|
||||
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
|
||||
Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero
|
||||
|
||||
Dim ObjAcum As New ClsAcumuladores(SqlTransaccion)
|
||||
|
||||
For Each drow As DataRow In factura.DtDetalle.Rows
|
||||
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,
|
||||
@@ -1944,6 +1944,64 @@ Namespace Modelos
|
||||
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
|
||||
|
||||
End Function
|
||||
@@ -1968,7 +2026,7 @@ Namespace Modelos
|
||||
Return Resultado
|
||||
|
||||
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 DT As DataTable = Nothing
|
||||
@@ -1986,7 +2044,7 @@ Namespace Modelos
|
||||
'P R E P O L I Z A S
|
||||
If Me.TipoDocto <> "Cot" 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")
|
||||
End If
|
||||
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,
|
||||
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 CveEstatusRefacturacion As Integer = 0) As Boolean
|
||||
Optional CveEstatusRefacturacion As Integer = 0, Optional ByRef ObjInventario As ClsInventarios = Nothing) As Boolean
|
||||
Dim ErrorPrepoliza As Boolean = False
|
||||
Try
|
||||
Dim DT As DataTable
|
||||
@@ -2177,12 +2235,48 @@ Namespace Modelos
|
||||
IdCtaContableCliente = IdCtaContable
|
||||
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
|
||||
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 CveMovimiento As Integer = -1
|
||||
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
|
||||
End If
|
||||
|
||||
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
|
||||
|
||||
importeMovimiento = 0
|
||||
@@ -3487,7 +3581,7 @@ Namespace Modelos
|
||||
Return OcurrioError
|
||||
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
|
||||
|
||||
If UsuarioActual.Empresa.UsaInventarios AndAlso factura.TipoDocto.Contiene("Ing", "Egs", "Rem") Then
|
||||
@@ -4311,7 +4405,7 @@ Namespace Modelos
|
||||
If CveEstatusFacturaAsignado <= 0 Then
|
||||
Try
|
||||
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)
|
||||
|
||||
@@ -4891,6 +4985,8 @@ Namespace Modelos
|
||||
CveEstatus = 12
|
||||
Case "Com"
|
||||
CveEstatus = 9
|
||||
Case "Cot"
|
||||
CveEstatus = 10
|
||||
Case "Ped", "DPe"
|
||||
CveEstatus = 14
|
||||
End Select
|
||||
@@ -5591,6 +5687,7 @@ Namespace Modelos
|
||||
Public Property FacturaMateriales As Integer
|
||||
Public Property TipoDescuento As Integer
|
||||
Public Property SubProyectoPorcentajeIVA As Double
|
||||
Public Property PorcentajeIVA As Double
|
||||
Public Property CveAlmacenOrigenContrato As Integer
|
||||
Public Property CveDevolucion As Integer
|
||||
Public Property TotalOtrosConceptos As Decimal
|
||||
@@ -5604,6 +5701,9 @@ Namespace Modelos
|
||||
Public Property CveAnticipo As Integer
|
||||
Public Property RemisionesLista As List(Of 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 CveVenta As Integer
|
||||
Public Property CveEmpresa As Integer
|
||||
@@ -5982,14 +6082,16 @@ Namespace Modelos
|
||||
Public Property FemsaFactura As Modelos.FemsaFactura
|
||||
|
||||
Public Sub SetSubProyecto()
|
||||
If CveSubProyecto > 0 Then
|
||||
SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
|
||||
If CveSubProyecto > 0 AndAlso UsuarioActual IsNot Nothing Then
|
||||
SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}"))
|
||||
End If
|
||||
End Sub
|
||||
Public Sub SetSubProyectoMatriz()
|
||||
Dim Row As Data.DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1")
|
||||
If Not IsNothing(Row) Then
|
||||
SubProyectoMatriz = New Modelos.SubProyectoModel(Row)
|
||||
If UsuarioActual IsNot Nothing Then
|
||||
Dim Row As Data.DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("TipoSucursal=1")
|
||||
If Not IsNothing(Row) Then
|
||||
SubProyectoMatriz = New Modelos.SubProyectoModel(Row)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
Public Sub SetCliente()
|
||||
@@ -6033,7 +6135,7 @@ Namespace Modelos
|
||||
End Sub
|
||||
Public Sub SetSubProyecto(obj As ClsPaginas)
|
||||
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 Sub
|
||||
Public Sub SetSubProyectoMatriz(obj As ClsPaginas)
|
||||
|
||||
135
Ashx/E141.ashx
Normal file
135
Ashx/E141.ashx
Normal 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
|
||||
@@ -344,7 +344,7 @@ Public Class SIGFacturacionCiclica : Implements IHttpHandler, IRequiresSessionSt
|
||||
Dim DtDetalle As DataTable = Nothing
|
||||
Dim objContratos As New ClsContratos
|
||||
If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then
|
||||
DtDetalle = objContratos.DtResultados
|
||||
DtDetalle = objContratos.DtResultados.FiltraParametros("CveTipoPresupuesto=2")
|
||||
Else
|
||||
DtDetalle = Nothing
|
||||
End If
|
||||
|
||||
@@ -10,7 +10,27 @@ Imports System.IO
|
||||
Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState
|
||||
|
||||
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
|
||||
context.Response.ContentType = "text/plain"
|
||||
If context.Request("metodo").ToString() = "GetTokenAngular" Then
|
||||
'context.Response.ContentType = "application/json; charset=utf-8"
|
||||
|
||||
context.Response.ContentType = "text/json"
|
||||
Dim origin As String = context.Request.UrlReferrer.ToString()
|
||||
context.Response.AddHeader("Access-Control-Allow-Origin", origin.Substring(0, origin.Length - 1))
|
||||
'context.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:4200")
|
||||
'context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST")
|
||||
context.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept")
|
||||
context.Response.AddHeader("Access-Control-Allow-Credentials", "true")
|
||||
context.Response.StatusCode = 200
|
||||
Dim key As String = GetTokenAngular(context)
|
||||
Dim json As String = JsonConvert.SerializeObject(key)
|
||||
context.Response.Write(json)
|
||||
context.Response.Flush()
|
||||
context.Response.Close()
|
||||
context.Response.End()
|
||||
Else
|
||||
context.Response.ContentType = "text/plain"
|
||||
End If
|
||||
|
||||
Try
|
||||
Select Case context.Request("metodo")
|
||||
Case "getps"
|
||||
@@ -53,10 +73,6 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState
|
||||
context.Response.Write(sendMail(context))
|
||||
Case "sendMailLPM"
|
||||
context.Response.Write(sendMailLPM(context))
|
||||
Case "GetTokenAngular"
|
||||
context.Response.Write(GetTokenAngular(context))
|
||||
context.Response.End()
|
||||
|
||||
End Select
|
||||
Catch ex As Exception
|
||||
ex.GuardaLog(ex.Message)
|
||||
@@ -74,11 +90,6 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState
|
||||
Microsoft.IdentityModel.Tokens.SecurityAlgorithms.HmacSha256Signature)}
|
||||
Dim tokenHandler = New System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler()
|
||||
Dim newtoken = tokenHandler.CreateToken(tokenDescriptor)
|
||||
'context.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:4200")
|
||||
'context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST")
|
||||
'context.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept")
|
||||
context.Response.AddHeader("Access-Control-Allow-Credentials", true )
|
||||
context.Response.StatusCode = 200
|
||||
Dim stokenn As String = tokenHandler.WriteToken(newtoken)
|
||||
Return stokenn
|
||||
|
||||
|
||||
@@ -1657,19 +1657,18 @@ Partial Class Bancos_ProveedoresAbonar
|
||||
importeMX = 0
|
||||
End If
|
||||
Else
|
||||
ImporteMovimiento = gvr.DataKey("IVAPorPagar").ToDecimal * PorcentajePago
|
||||
|
||||
|
||||
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
|
||||
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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
|
||||
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
|
||||
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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
|
||||
End If
|
||||
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)
|
||||
@@ -1723,19 +1722,18 @@ Partial Class Bancos_ProveedoresAbonar
|
||||
importeMX = 0
|
||||
End If
|
||||
Else
|
||||
ImporteMovimiento = gvr.DataKey("IVAPorPagar").ToDecimal * PorcentajePago
|
||||
|
||||
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
|
||||
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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)
|
||||
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
|
||||
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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)
|
||||
End If
|
||||
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)
|
||||
@@ -1760,9 +1758,9 @@ Partial Class Bancos_ProveedoresAbonar
|
||||
IdCtaContable = If(IdCtaIVAAcreditable > 0, IdCtaIVAAcreditable, 0)
|
||||
|
||||
'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
|
||||
MsgError = "No se pudo insertar la póliza"
|
||||
@@ -1778,19 +1776,16 @@ Partial Class Bancos_ProveedoresAbonar
|
||||
End If
|
||||
Case 25 'IEPS X Acreditar
|
||||
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
|
||||
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
|
||||
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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
|
||||
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
|
||||
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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
|
||||
End If
|
||||
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)
|
||||
@@ -1806,19 +1801,16 @@ Partial Class Bancos_ProveedoresAbonar
|
||||
End If
|
||||
Case 26 'IEPS Acreditable
|
||||
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
|
||||
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
|
||||
ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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)
|
||||
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
|
||||
ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then
|
||||
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)
|
||||
End If
|
||||
ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)
|
||||
|
||||
@@ -19,7 +19,8 @@ Partial Class Bancos_RepCxCCliente
|
||||
DdlMoneda.DataSource = GlobalDTMonedas()
|
||||
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)
|
||||
Else
|
||||
DdlClientesWS.setEsWebService(False)
|
||||
|
||||
@@ -826,7 +826,7 @@ Partial Class PopUpVerFactura
|
||||
params.Add(New ReportParameter("Chofer", Chofer))
|
||||
params.Add(New ReportParameter("Placa", Placa))
|
||||
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("DireccionOrigen", SBDireccionO.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("FechaConFormato", FechaConFormato))
|
||||
params.Add(New ReportParameter("FechaInicial", Fecha))
|
||||
params.Add(New ReportParameter("FechaFinal", Today.ToString))
|
||||
'params.Add(New ReportParameter("FechaInicial", Fecha))
|
||||
'params.Add(New ReportParameter("FechaFinal", Today.ToString("dd/MM/yyyy")))
|
||||
params.Add(New ReportParameter("Sucursal", "Sucursal"))
|
||||
params.Add(New ReportParameter("Cliente", NombreCliente))
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
<div class="row">
|
||||
<label class="col-md-1 truncate">Num. Cuenta</label>
|
||||
<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>
|
||||
|
||||
@@ -66,6 +66,8 @@ public partial class Contabilidad_RepIVA : ClsPaginas
|
||||
|
||||
LnkAccionesDIOT.Visible = true;
|
||||
|
||||
DdlCuenta.DataSource = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:UsuarioActual.CveEmpresa, CveTipoCuenta:2);
|
||||
DdlCuenta.DataBind();
|
||||
}
|
||||
|
||||
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; }
|
||||
int Conciliado = DdlTipoMovto.SelectedValue.ToEntero();
|
||||
LblMsgAcreditable.Text = ""; // lbl de mensajes de negativos
|
||||
string Cuenta = TxtCuenta.Text == "" ? "-1" : TxtCuenta.Text;
|
||||
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1009,16 +1009,17 @@ Partial Class Contratos_Default
|
||||
ChkAplicaFacCiclica.Checked = CBool(ObjContratos.DtResultados.Rows(0)("FacturacionCicilica"))
|
||||
|
||||
If ChkAplicaFacCiclica.Checked Then
|
||||
CargaPeriodos()
|
||||
|
||||
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())
|
||||
TxtObservaciones.Text = ObjContratos.DtResultados.Rows(0)("Observaciones").ToString
|
||||
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
|
||||
|
||||
|
||||
@@ -3558,6 +3559,8 @@ Partial Class Contratos_Default
|
||||
End Sub
|
||||
|
||||
Private Sub CargaPeriodos()
|
||||
DdlPeriodo.Items.Clear()
|
||||
|
||||
Dim ObjContratos As New ClsContratos
|
||||
If ObjContratos.GetPeriodos(-1, UsuarioActual.CveEmpresa) Then
|
||||
DtPeriodo = ObjContratos.DtResultados
|
||||
@@ -3568,6 +3571,8 @@ Partial Class Contratos_Default
|
||||
ObjContratos.Dispose()
|
||||
|
||||
DdlPeriodo.DataBind()
|
||||
DdlPeriodo.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
|
||||
UpGral.Update()
|
||||
End Sub
|
||||
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)
|
||||
DivFacCiclica.Visible = ChkAplicaFacCiclica.Checked
|
||||
DivCiclosComerciales.Visible = ChkAplicaFacCiclica.Checked
|
||||
CargaPeriodos()
|
||||
|
||||
UpFacCiclica.Update()
|
||||
End Sub
|
||||
|
||||
@@ -326,20 +326,40 @@
|
||||
<ajax:ValidatorCalloutExtender ID="VCEDescripcionContrato" runat="server" HighlightCssClass="vco" TargetControlID="RFVDescripcionContrato" Width="300px" BehaviorID="_content_VCEDescripcionContrato"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="trLicitacion" runat="server" class="row">
|
||||
<label class="col-md-2 truncate">Número Licitación:</label>
|
||||
<div class="col-md-10">
|
||||
<asp:TextBox ID="TxtNumeroLicitacion" runat="server" MaxLength="70" Width="200px"></asp:TextBox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row" id="TrProveedor" runat="server">
|
||||
<label class="col-md-2 truncate ">
|
||||
<asp:Label ID="LblProveedor" runat="server" Text="Proveedor:"></asp:Label></label><div class="col-md-10">
|
||||
<asp:Label ID="LblProveedor" runat="server" Text="Proveedor:"></asp:Label></label>
|
||||
<div class="col-md-10">
|
||||
<asp:DropDownList ID="DdlContratista" runat="server" CssClass="input-sm form-control select2me" AppendDataBoundItems="True" DataTextField="RazonSocial" DataValueField="CveProveedor" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 350px !important;" ValidationGroup="GrpGuardar">
|
||||
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row" >
|
||||
<label class="col-md-2 truncate ">
|
||||
<asp:Label ID="LblCliente" runat="server" Text="Cliente:"></asp:Label></label>
|
||||
|
||||
<div class="col-md-10">
|
||||
<asp:DropDownList ID="DdlCliente" runat="server" AppendDataBoundItems="True" DataTextField="NombreComercial" DataValueField="CveCliente" Class="table-group-action-input form-control input-inline input-sm select2me" Style="width: 350px !important;" ValidationGroup="GrpGuardar">
|
||||
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row" style="display: none;">
|
||||
<label class="col-md-2 truncate ">Ubicacion:</label>
|
||||
<div class="col-md-10">
|
||||
@@ -460,9 +480,7 @@
|
||||
<div class="row" id="TrCliente" runat="server" visible="False">
|
||||
<label class="col-md-2 truncate">
|
||||
<asp:Label ID="Label1" runat="server" Text="Cliente:"></asp:Label></label><div class="col-md-10">
|
||||
<asp:DropDownList ID="DdlCliente" AutoPostBack="True" OnSelectedIndexChanged="DdlCliente_SelectedIndexChanged" runat="server" AppendDataBoundItems="True" DataTextField="NombreComercial" DataValueField="CveCliente" Class="table-group-action-input form-control input-inline input-sm select2me" Width="75%" ValidationGroup="GrpGuardar">
|
||||
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<asp:UpdatePanel runat="server">
|
||||
|
||||
@@ -362,12 +362,12 @@ Partial Class Contratos_ContratoObra
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
If Not IsPostBack Then
|
||||
CargaValoresIniciales()
|
||||
CreaDtTmpFianzas()
|
||||
|
||||
If Request("CveCliente") IsNot Nothing Then
|
||||
cargaClientes()
|
||||
End If
|
||||
|
||||
CreaDtTmpFianzas()
|
||||
|
||||
|
||||
cargaClientes()
|
||||
|
||||
|
||||
If Request("CveContrato") IsNot Nothing AndAlso IsNumeric(Request("CveContrato")) AndAlso Request("CveContrato").ToEntero > 0 Then
|
||||
ViewState("CveContrato") = Request("CveContrato")
|
||||
|
||||
@@ -474,6 +474,11 @@ Partial Class Contratos_ContratoObra
|
||||
|
||||
End If
|
||||
|
||||
|
||||
TabAvanveDocumento.Visible = False
|
||||
TabContratosGastos.Visible = False
|
||||
TabPed.Visible = False
|
||||
|
||||
End Sub
|
||||
|
||||
#Region " CARGA VALORES INICIALES "
|
||||
@@ -545,13 +550,13 @@ Partial Class Contratos_ContratoObra
|
||||
End Sub
|
||||
Public Function isWithFamily() As Boolean
|
||||
Return UsuarioActual.CveEmpresa = 66
|
||||
End Function
|
||||
Private Sub cargaClientes()
|
||||
TrCliente.Visible = True
|
||||
TrProveedor.Visible = False
|
||||
End Function
|
||||
|
||||
Private Sub cargaClientes()
|
||||
DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
|
||||
DdlCliente.DataBind()
|
||||
End Sub
|
||||
|
||||
Private Sub CreaDT()
|
||||
TmpDT = New DataTable
|
||||
TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
|
||||
@@ -951,7 +956,7 @@ Partial Class Contratos_ContratoObra
|
||||
' TxtPorcentajeComision.Text = ObjContratos.PorcentajeComision.ToString
|
||||
CveTipoContrato = ObjContratos.DtResultados.Rows(0)("CveContratoTipo").ToString.ToEntero
|
||||
TxtCorreoNotificacion.Text = ObjContratos.DtResultados.Rows(0)("CorreoNotificacionPedDev").ToString
|
||||
|
||||
DdlCliente.SelectedValueExist(ObjContratos.DtResultados.Rows(0)("CveCliente").ToString)
|
||||
|
||||
If ObjContratos.CveProveedor > 0 Then
|
||||
TrProveedor.Visible = True
|
||||
|
||||
@@ -542,7 +542,7 @@ Partial Class Contratos_FacturacionMasiva
|
||||
|
||||
Dim objContratos As New ClsContratos
|
||||
If objContratos.GetContratosDetalle(DR("CveContrato").ToString.ToEntero) Then
|
||||
DTDetalle = objContratos.DtResultados
|
||||
DTDetalle = objContratos.DtResultados.FiltraParametros("CveTipoPresupuesto=2")
|
||||
Else
|
||||
DTDetalle = Nothing
|
||||
End If
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
<div class="col-md-6">
|
||||
|
||||
<asp:GridView ID="GVDatos" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron contratos con los Filtros seleccionados"
|
||||
DataKeyNames="CveEstimacion,NumeroEstimacion" ShowHeader="True"
|
||||
DataKeyNames="CveEstimacion,NumeroEstimacion,FechaEstimacion,NumeroContrato" ShowHeader="True"
|
||||
CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None">
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderText="# Estimación">
|
||||
@@ -162,6 +162,14 @@
|
||||
</ItemTemplate>
|
||||
<ItemStyle HorizontalAlign="Center"></ItemStyle>
|
||||
</asp:TemplateField>
|
||||
|
||||
|
||||
<asp:TemplateField HeaderText=" ">
|
||||
<ItemTemplate>
|
||||
<asp:LinkButton ID="LnkAnexo" runat="server" OnClick="LnkAnexo_Click" AlternateText="Agregar Anexo" CssClass="btn btn-circle btn-sm btn-success anexo" Text="<i class='fa fa-table'></i>" />
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Imports Extensiones
|
||||
Imports System.Data
|
||||
|
||||
Imports System.IO
|
||||
|
||||
Partial Class RepContratosObraAvancesDetalle
|
||||
Inherits ClsPaginas
|
||||
|
||||
@@ -87,14 +88,205 @@ Partial Class RepContratosObraAvancesDetalle
|
||||
Dim HplNumeroEstimacion As HyperLink = e.Row.FCHyperLink("HplNumeroEstimacion")
|
||||
HplNumeroEstimacion.NavigateUrl = $"./RepContratosObraAvancesPartida.aspx?CveEstimacion={e.Row.DataKey("CveEstimacion")}&NumeroEstimacion={ e.Row.DataKey("NumeroEstimacion")}&CveContrato={ CveContrato }"
|
||||
|
||||
Dim LnkAnexo As LinkButton = e.Row.FCLinkButton("LnkAnexo")
|
||||
|
||||
ScriptManager.GetCurrent(Me).RegisterPostBackControl(LnkAnexo)
|
||||
' NavigateUrl='<%# Eval("CveEstimacion", "RepContratosObraAvancesPartida.aspx?CveEstimacion={0}")%>'
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
'Protected Sub CmdConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
|
||||
' CargaDatos()
|
||||
End Sub
|
||||
|
||||
'Protected Sub CmdConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
|
||||
' CargaDatos()
|
||||
'End Sub
|
||||
|
||||
|
||||
Protected Sub LnkAnexo_Click(sender As Object, e As EventArgs)
|
||||
|
||||
Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
|
||||
|
||||
Dim CveEstimacion As Integer = GvRow.DataKey("CveEstimacion").ToEntero
|
||||
Dim NumeroEstimacion As Integer = GvRow.DataKey("NumeroEstimacion").ToEntero
|
||||
Dim FechaEstimacion As Date = GvRow.DataKey("FechaEstimacion").ToDate
|
||||
Dim NumeroContrato As String = GvRow.DataKey("NumeroContrato")
|
||||
|
||||
If CveEstimacion > 0 Then
|
||||
GeneraAnexo(CveEstimacion, NumeroEstimacion, FechaEstimacion, NumeroContrato)
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub GeneraAnexo(CveEstimacion As Integer, NumeroEstimacion As Integer, FechaEstimacion As Date, NumeroContrato As String)
|
||||
|
||||
Dim PlantillaAnexo As String = $"{UsuarioActual.Empresa.Ruta}\Formatos\Anexo.xlsx"
|
||||
|
||||
If Not System.IO.File.Exists(PlantillaAnexo) Then
|
||||
Alert("No se encuentra la platilla de anexos.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim DtControl As New DataTable
|
||||
Dim ObjContratos As New ClsContratos
|
||||
|
||||
|
||||
|
||||
|
||||
If ObjContratos.GetContratosObraAvancesControlAcumulativo(CveContrato, CveEstimacion, UsuarioActual.CveEmpresa) Then
|
||||
DtControl = ObjContratos.DtResultados
|
||||
End If
|
||||
ObjContratos.Dispose()
|
||||
|
||||
If DtControl.Rows.Count > 0 Then
|
||||
|
||||
|
||||
Dim WBAnexo = New ClosedXML.Excel.XLWorkbook(PlantillaAnexo)
|
||||
|
||||
Dim WBAnexoSalvar = New ClosedXML.Excel.XLWorkbook
|
||||
|
||||
Dim WSControl = WBAnexo.Worksheet(1)
|
||||
Dim WSDetalle = WBAnexo.Worksheet(2)
|
||||
|
||||
Dim CuerrentRow As Integer = 28
|
||||
|
||||
WSControl.Cell(17, 2).Value = NumeroEstimacion 'Estimacion
|
||||
WSControl.Cell(20, 9).Value = FechaEstimacion.ToString("dd/MM/yyyy") 'Fecha estimacion
|
||||
WSControl.Cell(19, 8).Value = "$ " & DtControl.SUM("Total").ToString("###,###,###.00") 'Total
|
||||
|
||||
WSControl.Cell(20, 6).Value = NumeroContrato
|
||||
|
||||
WSControl.Cell(18, 2).Value = "" 'Lugar
|
||||
WSControl.Cell(17, 6).Value = "" 'Periodo Fecha Inicial
|
||||
WSControl.Cell(17, 7).Value = "" 'Periuodo Fecha Final
|
||||
WSControl.Cell(20, 2).Value = "" 'Obra
|
||||
WSControl.Cell(22, 7).Value = "" 'Presupuesto segun contrato
|
||||
WSControl.Cell(19, 5).Value = "" 'Contrtatista
|
||||
|
||||
|
||||
|
||||
For Each Drow As DataRow In DtControl.Rows
|
||||
|
||||
WSControl.Cell(CuerrentRow, 1).Value = Drow("Codigo").ToString
|
||||
WSControl.Cell(CuerrentRow, 2).Value = Drow("PS").ToString
|
||||
WSControl.Cell(CuerrentRow, 3).Value = Drow("Abreviatura").ToString
|
||||
WSControl.Cell(CuerrentRow, 4).Value = Drow("Cantidad").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 5).Value = Drow("AcumuladoTotal").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 6).Value = Drow("AcumuladoAnterior").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 7).Value = Drow("CantidadActual").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 8).Value = Drow("PU").ToString.ToDecimal
|
||||
WSControl.Cell(CuerrentRow, 9).Value = Drow("Total").ToString.ToDecimal
|
||||
|
||||
CuerrentRow = CuerrentRow + 1
|
||||
Next
|
||||
|
||||
WBAnexo.Worksheet(1).CopyTo(WBAnexoSalvar, "CONTROL")
|
||||
|
||||
|
||||
For Each Drow As DataRow In DtControl.Rows
|
||||
|
||||
|
||||
If Drow("CantidadActual").ToString.ToDecimal > 0 Then
|
||||
|
||||
WSDetalle.Cell(3, 6).Value = NumeroContrato
|
||||
|
||||
WSDetalle.Cell(4, 9).Value = "" 'Fecha de
|
||||
WSDetalle.Cell(4, 10).Value = "" 'Fecha a
|
||||
WSDetalle.Cell(4, 11).Value = NumeroEstimacion
|
||||
|
||||
'WSDetalle.Picture("Logo").Name = $"Logo{Drow("CveContratoDetalle").ToString}"
|
||||
'WSDetalle.Picture("Firma").Name = $"Firma{Drow("CveContratoDetalle").ToString}"
|
||||
|
||||
|
||||
WSDetalle.Cell(14, 2).Value = Drow("Codigo").ToString
|
||||
WSDetalle.Cell(14, 3).Value = Drow("PS").ToString
|
||||
WSDetalle.Cell(14, 4).Value = Drow("Abreviatura").ToString
|
||||
|
||||
|
||||
WSDetalle.Cell(12, 3).Value = "" 'Concepto
|
||||
|
||||
WSDetalle.Cell(14, 10).Value = Drow("CantidadActual").ToString.ToDecimal
|
||||
WSDetalle.Cell(14, 11).Value = Drow("CantidadActual").ToString.ToDecimal
|
||||
'WSDetalle.Cell(61, 6).Value = "" 'Empresario
|
||||
WSDetalle.Cell(61, 9).Value = Drow("Nombre").ToString 'Cliente
|
||||
|
||||
|
||||
|
||||
Dim objContrato As New ClsContratos
|
||||
Dim DTArchivos As New DataTable
|
||||
|
||||
If objContrato.GetContratosAvanceAnexos(Drow("CveContratoDetalle").ToString.ToEntero, Drow("Fecha").ToString, UsuarioActual.CveUsuario, CveEstimacion:=CveEstimacion) Then
|
||||
DTArchivos = objContrato.DtResultados
|
||||
End If
|
||||
objContrato.Dispose()
|
||||
|
||||
Dim Imagenes As New List(Of ClosedXML.Excel.Drawings.IXLPicture)
|
||||
|
||||
Dim CurrectRowImg As Integer = 19 'Row 19 primera imggen
|
||||
Dim RowH As Double = WSDetalle.Row(19).Height
|
||||
|
||||
For Each drowArchivos In DTArchivos.Rows
|
||||
|
||||
Dim Archivo As String = drowArchivos("Archivo").ToString
|
||||
Dim RutaArchivo As String = $"{UsuarioActual.Empresa.Ruta}\Contrato\{CveContrato}\Anexos\{Archivo}"
|
||||
|
||||
If File.Exists(RutaArchivo) Then
|
||||
|
||||
Dim Imagen = WSDetalle.AddPicture(RutaArchivo).MoveTo(WSDetalle.Cell(CurrectRowImg, 3))
|
||||
Imagen.Scale(WSDetalle.Column(3).Width / (Imagen.OriginalWidth * 0.145D))
|
||||
|
||||
Dim ImgWidth As Double = Imagen.Height
|
||||
|
||||
Dim nRowmas As Integer = ImgWidth / RowH
|
||||
|
||||
CurrectRowImg = CurrectRowImg + nRowmas
|
||||
|
||||
Imagenes.Add(Imagen)
|
||||
End If
|
||||
|
||||
Next
|
||||
WBAnexo.Worksheet(2).CopyTo(WBAnexoSalvar, If(Drow("Codigo").ToString.Trim.Length > 0, Drow("Codigo").ToString, Drow("CvePS").ToString))
|
||||
|
||||
For Each img As ClosedXML.Excel.Drawings.IXLPicture In Imagenes
|
||||
img.Delete()
|
||||
Next
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
|
||||
|
||||
|
||||
|
||||
Dim msB = New MemoryStream()
|
||||
WBAnexoSalvar.SaveAs(msB)
|
||||
|
||||
Dim BB As Byte() = msB.ToArray
|
||||
msB.Dispose()
|
||||
|
||||
Response.Clear()
|
||||
Response.Buffer = True
|
||||
Response.AddHeader("content-disposition", "attachment; filename=Anexo_Estimacion" & NumeroEstimacion & ".xlsx")
|
||||
Response.ContentType = "application/vnd.ms-excel"
|
||||
Response.BinaryWrite(BB)
|
||||
Response.End()
|
||||
|
||||
|
||||
Else
|
||||
Alert("No se encontraron datos des control", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function GetStream(excelWorkbook As ClosedXML.Excel.XLWorkbook) As Stream
|
||||
|
||||
Dim fs = New MemoryStream()
|
||||
excelWorkbook.SaveAs(fs)
|
||||
fs.Position = 0
|
||||
Return fs
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -361,7 +361,7 @@
|
||||
<Value>Sello Digital del CFDI:</Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>6.5pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
</Style>
|
||||
</TextRun>
|
||||
</TextRuns>
|
||||
@@ -373,7 +373,7 @@
|
||||
<Value>=Parameters!SelloCFDI.Value</Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>6.5pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
<FontWeight>Normal</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -386,7 +386,7 @@
|
||||
<Value>Sello Digital del SAT:</Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>6.5pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
<FontWeight>Normal</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -399,7 +399,7 @@
|
||||
<Value>=Parameters!SelloSAT.Value</Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>6.5pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
<FontWeight>Normal</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -412,7 +412,7 @@
|
||||
<Value>Cadena Original del complemento de certificación digital del SAT:</Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>6.5pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
<FontWeight>Normal</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -425,7 +425,7 @@
|
||||
<Value>=Parameters!CadenaOriginal.Value</Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>6.5pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
<FontWeight>Normal</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -438,7 +438,7 @@
|
||||
<Value>RFC del Proveedor de Certificación: </Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>6.5pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
<FontWeight>Normal</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -451,7 +451,7 @@
|
||||
<Value>Este documento es una representación impresa de un CFDI</Value>
|
||||
<Style>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
<FontSize>8pt</FontSize>
|
||||
<FontSize>6pt</FontSize>
|
||||
<FontWeight>Bold</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -479,7 +479,7 @@
|
||||
<KeepTogether>true</KeepTogether>
|
||||
<Top>6.06618in</Top>
|
||||
<Left>0.06752in</Left>
|
||||
<Height>1.60919in</Height>
|
||||
<Height>1.42169in</Height>
|
||||
<Width>8.23953in</Width>
|
||||
<Style>
|
||||
<Border>
|
||||
@@ -2257,8 +2257,8 @@
|
||||
<Source>Embedded</Source>
|
||||
<Value>ID3</Value>
|
||||
<Sizing>FitProportional</Sizing>
|
||||
<Top>11.63749cm</Top>
|
||||
<Left>15.78306cm</Left>
|
||||
<Top>21.4598cm</Top>
|
||||
<Left>0.28014cm</Left>
|
||||
<Height>0.93046cm</Height>
|
||||
<Width>5.37042cm</Width>
|
||||
<ZIndex>17</ZIndex>
|
||||
@@ -2275,10 +2275,10 @@
|
||||
<Paragraph>
|
||||
<TextRuns>
|
||||
<TextRun>
|
||||
<Value>DESCARGA NUESTRA APLICACIÓN</Value>
|
||||
<Value>DESCARGA NUESTRA NUEVA APLICACIÓN</Value>
|
||||
<Style>
|
||||
<FontFamily>CALIbri</FontFamily>
|
||||
<FontSize>9pt</FontSize>
|
||||
<FontSize>12pt</FontSize>
|
||||
<FontWeight>Bold</FontWeight>
|
||||
</Style>
|
||||
</TextRun>
|
||||
@@ -2289,10 +2289,10 @@
|
||||
</Paragraph>
|
||||
</Paragraphs>
|
||||
<rd:DefaultName>Textbox60</rd:DefaultName>
|
||||
<Top>11.08689cm</Top>
|
||||
<Left>15.67443cm</Left>
|
||||
<Height>0.50299cm</Height>
|
||||
<Width>5.42547cm</Width>
|
||||
<Top>19.12502cm</Top>
|
||||
<Left>0.28014cm</Left>
|
||||
<Height>0.6882cm</Height>
|
||||
<Width>20.71217cm</Width>
|
||||
<ZIndex>18</ZIndex>
|
||||
<Style>
|
||||
<Border>
|
||||
@@ -2512,7 +2512,7 @@
|
||||
<Top>12.76838cm</Top>
|
||||
<Left>0.16383cm</Left>
|
||||
<Height>2.44366cm</Height>
|
||||
<Width>15.5106cm</Width>
|
||||
<Width>15.51057cm</Width>
|
||||
<ZIndex>20</ZIndex>
|
||||
<Style>
|
||||
<Border>
|
||||
@@ -2995,21 +2995,6 @@
|
||||
<PaddingBottom>2pt</PaddingBottom>
|
||||
</Style>
|
||||
</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">
|
||||
<CanGrow>true</CanGrow>
|
||||
<CanShrink>true</CanShrink>
|
||||
@@ -3018,7 +3003,7 @@
|
||||
<Paragraph>
|
||||
<TextRuns>
|
||||
<TextRun>
|
||||
<Value>< ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** ></Value>
|
||||
<Value>< ** Toda corrección de los datos del comprobante debera efectuarse a más tardar tres dias despues de su expedición. ** > </Value>
|
||||
<Style>
|
||||
<FontStyle>Normal</FontStyle>
|
||||
<FontFamily>calibri</FontFamily>
|
||||
@@ -3037,7 +3022,7 @@
|
||||
<Left>0.19008cm</Left>
|
||||
<Height>0.40655cm</Height>
|
||||
<Width>12.88812cm</Width>
|
||||
<ZIndex>35</ZIndex>
|
||||
<ZIndex>34</ZIndex>
|
||||
<Style>
|
||||
<Border>
|
||||
<Style>None</Style>
|
||||
@@ -3048,14 +3033,341 @@
|
||||
<PaddingBottom>2pt</PaddingBottom>
|
||||
</Style>
|
||||
</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>
|
||||
<Height>19.49544cm</Height>
|
||||
<Height>22.57045cm</Height>
|
||||
<Style />
|
||||
</Body>
|
||||
<Width>21.16666cm</Width>
|
||||
<Page>
|
||||
<PageFooter>
|
||||
<Height>0.52388cm</Height>
|
||||
<Height>0.52387cm</Height>
|
||||
<PrintOnFirstPage>true</PrintOnFirstPage>
|
||||
<PrintOnLastPage>true</PrintOnLastPage>
|
||||
<ReportItems>
|
||||
@@ -3114,7 +3426,7 @@
|
||||
</Style>
|
||||
</TextRun>
|
||||
<TextRun>
|
||||
<Value>=Today</Value>
|
||||
<Value>=Now.ToString("dd/MM/yyyy hh:mm tt")</Value>
|
||||
<Style>
|
||||
<FontSize>8pt</FontSize>
|
||||
</Style>
|
||||
@@ -3759,6 +4071,12 @@
|
||||
<AllowBlank>true</AllowBlank>
|
||||
<Prompt>ReportParameter1</Prompt>
|
||||
</ReportParameter>
|
||||
<ReportParameter Name="QRDescarga">
|
||||
<DataType>String</DataType>
|
||||
<Nullable>true</Nullable>
|
||||
<AllowBlank>true</AllowBlank>
|
||||
<Prompt>ReportParameter1</Prompt>
|
||||
</ReportParameter>
|
||||
</ReportParameters>
|
||||
<EmbeddedImages>
|
||||
<EmbeddedImage Name="ID2">
|
||||
@@ -3872,6 +4190,72 @@ jx8/Xllp+wqaoKBgJydH+fUZ6ISePXtu3Gj7Vqjhw4efO3dO3rG+vr4QXZcuXZKv6414Dw+PvLx8RLi4
|
||||
+7dSgtwMLvuAAQPgxNu8RAW03gZ5IRBa8IMjIiL27NljjWf+sbOzS0srUDfluuuug0SxeRWMFGoVmAUHB2u12kuXLun1emsbEHBw0KWlXWCbVrp27VZdXQWkbVqCn5+/zdUVMGLEyNzcnKKiIrlKgepoulMQY2VlZfIrNuxSjM0NeABNSk9PkzYagMiBzrx48aLVEkUNHTrs22/XQyhCe8gXsgNt7BkcAoVCGRPTEaJOfnBbR96G0FDs7DG2yeFw/m20ddTgcDgcDqcpx48fDwsLgw8Kz5UBL7ON1NTUZmSkV1dXowQUJeVvtQTJgnrJPXv2jIs7iwCESlRUVBtLAJKRKKLZI0eOdHFxuXDBVkug8LYrHLB161Z//wA7Ozup6Db3A+RNx44dy8sr2NM4LC8Cjo6OTV9EA+LiznTo0MEqSADsHRzspQ0ZubmWNc3khwZlNvucUteuXY1Go2REay8pKY2O7piTk4OwFEuv0UH80ByNgOzx9PTEvkjbVGmw+/SgkdAnvr6+UhG0cLrfVwCWkCjQOfHx8UqlUoptDlrhZVgtiO/du3dV1eU7Gzkczr8NLnI4HA6H8+uBG3306NHg4OCIiAhnZ2eNRgMXU0prGfjo8NTZ21cuXbpkb+8wYsSIoKAgeOEqlaqlEhCP8nU6HfL279+/rq4eGgnxR44cKSsrR4y/vz9980yju9RsQCFqtdrBwQHKasKECWvXrk1OTrG5GwoGZ8+29qLJZjl8+FCnTp369evn6uqKEtrSD7AZMGDAl19+OWrUSDQb+86AMhk4cGBLj8vLn8kBMLZZAI1hMll0i7zY2NjY9HRLj8lBA86ePYsGS0YqFcK+vj7PPPN0fX29FEXp27fv9u2N1sGzkpGRgb2WNqiMMRolhXbq1ClXV7fRo0dD6kDRscjWQbNxgKB++/btc8W1p6XGUVA+TqHAwMAxY8Zs2bLF+qYdDofzL8TyxxIpyOFwOBzOryU2trMomquqquka
|
||||
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 Name="coopertires">
|
||||
<MIMEType>image/png</MIMEType>
|
||||
<ImageData>iVBORw0KGgoAAAANSUhEUgAAAU0AAAAgCAIAAAAZj72jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABlpSURBVHhe7VwJdFRF1g6LgIKjDm4zo+OMy6/n/2f+fzZNv+4shH0RRBAXUAF1BAFRwBkFROi9OysJ+xYCCQGSsBggCxCWELJAyA5ZSEJCgABJyL6S4Hz13qPTXa+600k45z+H09/5jkfTVffVu3XvrXur6un0iwMOOPCww+HnDjjw8MPh5w448PDD4ecOOPDww+HnDjjw8MPh5w448FDh3r17pn+aYMvP0fR2deOJ1CuxyYVHU4p6x8KYpMLswlump7e03r12u+7YuaJuCUfj1NwbFdWNjc1toiAW2u62X6+oO51e2i3h0UmXk3PKILyhyZbwhqbWkvKaE6nF3RIelXg5Nfd6lyOvb2otul59vJtqYbEwJrkoIfMqZJbdqsVfeiwQaknPL6+qbcKUCYM0obah5XRaSaykS88Yk1yYln+jvb3jRkVdbDL9K/4Sd74YysdzswpvQp9UA/uJNyooq6yua6acgQKeVXC18gHNReHZzKtNLeLUt3fcgz4Ts8sCD6V7Bp/1Cuk5jcEJ3rsSC65WQSzeJi7jqio0Sb07SbU7efuxnKr6ZuGJVv288FrV0g0nXpzkO9BVO9BV03v2lWt8Q5ME4XCSGSv3PzFC3wPhj7rrnh3rNW7Rru2H02EQgkBzwFdnayKfGes5yK17wge4qB911z49xnPEgp1rw89dvVkjSryPusbW3UezRy8MHuJhGOhCd7dNQfhz47zGL9q1NTLt2u1aUeh9NLfe3RmV6Tpn++BhEK6muveA/V10k/+9B5KXbYgb6O5F/Wo/hZH//h2/j1bs238yF74tDBgIjc0aMtzwYCzERf2Im/G7gKOI0Uv8Ywe6wTYsG7jpX5+2Bq5SUdPkOidwgJuRbmA38UaDh+n+
|
||||
NH09LBzWIr6MGfCUiBOXRi0MftxDMowe0EXdz8WAuahtJKpLzrm2wDv6D5NXD3LT9eOUTs6rekW5FqLS828iYh1OKdbuTQk5cWntofRdJ3PXHc7Qh52rricPZfs51t7/mb7BSWFwkqmdZKoHQLn+hYk+JeXVEK4Lin9ihNFJruuFcHTUOHFalzlBiLXCmIG2ux1rw1OeHOWJx/Ve+N9nbQ07ntNxP+QjAM9Yuc+JIz/1XrjzF9tjki4LkgEIn+d5mDTolXAzctr+chUWrrqGlmHzgpwUnnSDblNNxuasnPpDWGk5iYDtHR3zvY44uXhLWvaMasxaeNxFrLF/fHc1rwfLBpz245X78FwkmL8aboB90w26RyiZPPHJkUbVtlNIo/h5IKisaZpjOETaPLC50D06zIAQCeH+e5OHjvHCX8wkK3tBCNf8sO44JNc3t32z6eT1ygbv/ambYjKNEee2xGStP5K5Nz4fvzL8PPPyrd9M8CauQkWOTiIIdYcyVR9O478nGcKxZPHvppHIpCgRQihpIzf8eowX0jlh5AdO5Q5y1xNXpFtSpMQKlLSRG4Z4GI8kFkAyIsiKTSf48KGStBRISTORaiaQCH9mrPeF3HIIb2q5+61ftBj46JY9Jaf9aEUEhJ/JKMWiZF0yNVqKVGNQhej/9pLQ1rb2G5V1f/1kIxk23QukelGkGvPktP81bU3R9TsX8m5gvaX1TGxGte/kJbyRfscZaM/i105KxFqQasyThF3NmrCUe7+IAX1JQKwTZ0Nj3aSMLLkfLA+H5J1HMge66kj4oNpgbHBai6HaR0732nsBqMsg/E59y1frjsNQdWEp8zfE4d+vVdYHHsvZdjQbvzL8HPbBTx41FBByiVL4UNQdKjzfmr2lpr4FkRI5Bus9oQ5+uRDJfIQVB1N4zlIfwLAbmtv+9ulGEimpBiC6dwoXgrSEVBeBCsOHP0bcbe9AtU9iHzM82VaIoDEyK5KOcgMyaow8OrFw
|
||||
oDtSJ9YL4o+ChG5Rrn9ihCE19waEo4Rje4UgmRotTStDkikzCm4iWSB2whZiLRoK3anGPF28Pl65H4s5dNKHw3RYakymhv5vVjXUNLQMn7+DvQhRAplkTgSnHfZVUGMzWdIj4/Mec+ctkGoDChrrLuX6wcO0CZmld+qa/jFrM8mRabH8skwG1k0STapWbT2FYQMoKr/bejqv7M7mmKzI5CJD+LnMKxV+B9MOJJK0kfbziuqml97xI85AjcZ5VR+Z8sVJftDytKXhU3/YayenfL938r/Ddh/NgfDg6My+4ltZCpcpH/fQvTzF/9WpAa9OXfPW7M1IDt9bGmYSgn/HGjJ0NJ98Un0VnnBFCD+aUkT+U9rAWYmZQ3wRhGMJkgqf+F3oU6OMvB1Y9uV0474NaWxuizyTx7YSmRLDnrgkdNoyhk7eXxY+8uudaPCIgtWX0yJCIWOc53nEiuGqoK5nxnqiqn9unLf9fHaC/7INJJerrm8esWAnI/bJlANdNO5zt2OE1JgFQifg799ZTayQ7kuMMia5MCqxYMLi3VRHEDI95u/oxwm2a9nXedVfPtkofShvJHsPnclHSEUDxjLD6WarD+KNzl+6joqXaUK/f8cPNbD5zJoTEzRhceiQYUL2QfVV/33mZsxyR8e9maqDpMahGoAyNWrpZ8diIroxF6T9eN9FfrEY+ZGzBY+j3KBsTKYa5Kr5TPOzYWeCatvpbhEebth55tadBggHUF+ezi5bEXJ2T3x+1pWKxNwb89bH+UemN/O7p7SfwyFJPGNYvBYaLOELsx5j6tK9fAShFK16coRhR1QG0lcoGmRugp5OL3l2nLcTifTmfZV9FAZNYDwaLPCKEkyQaoAyddOB1Jr6ZhvCc4puvzLFnxHdFMaVW06iwYyf+MqcEi5TvzjRt0udJGSUPjPGk+9u1heU6zGwiuoGGChD4TLV0NHG1XuS0gvKc69UZF6+mVFQbpNoIDI19zreF4/OLryF+lPi
|
||||
Fcq+cu3X3tHC8GxgkV8M6Uu5ukz1wkRf5Io2NqtJdUaCC60uRGrz/RQpUHs/NdLA1FVgZBoabD54gRETZZonRxpOpIrlmzUgiPxp+nqGcJn6k1X70aC0vOb/Pt7AiDIyNYosZEYXi29jLrIKb0mUT1GciPR88p/1jSRT+C7gqCSCkMR7Br/p8KCQevmmz/7UNYfS/A5e2H06r+Vuu/B32s9nqg6wknZiGVF8AtBjlFfWv/H+GsYkyXWT/7VHemZDwWdXInOCnx7teTqtpO1u+5/JFEocldMIoVqUYgVbf04b4Arhlv4gUz3mYYBdojssW2IfSEzUnyrJgoySoa6xRcqGpjb427/WHO0rR9JIe8sTI4ywg5MXrvCi6PCEBjA+xCXEY9N5THeB9+JrDdrfsKxheUFgpQYsEG+EfybnlKFglgRWEvGnr4hoaRUNSIrWtg4SFqVWJNf9beYmSBbbsaDedrqfQrISyNRPj/HMLroNbUxYvIvhqJwGWUBFTaP1iWitrGncGpn2mLt0E0SJgQUeSsfTDycUPOZhpJ8OyvWYi/aOe7CElrYuDJWJGxX13BdbaZ3I1ANd1JsPpmIiahswTqi9C6KZ+Zah/bDw8+u36/isSeJOnBbprrDL2mPsP5WL5FyiZZJ4C1t0NgD9Itlj1DZyvfNnW/Dmx1KK2MI5nWrbKSzjoiAWWtraZ6zcj6Wb7ivXvTlr8+07jREnLpHzD2mu6Kx8/f01KGQ85gWhwJMSP7nN3Y6lhtFXTioCRIEF3khDMGyJbTmveuP9tSMWQDjhRysiYGpsqg4hi5MGyra7HeMX7WLoxFk5wEWt+HIbUnpqwAKF13lxki8/bKnRG5CGiM9gAXbCyFBIvaZGhSI2YgF2PHphMGM3QWGYtjQM01R0/c4QMsuMiUDGxOvK4kVMxETgfZ8YAcOWvI5M/duJfgVXKzEARGSGGYAyFYqvsd+GCKKQ2NJTYKISGfiZesn9CyxFg8gWDPV0
|
||||
MhF/n7kJxZ35aG0TxjDlh7CVW06VSs59bcDCz0Njsx5RsIofhXHR6ljraZpdmGdEFSrdhFAPHeMlXOewgazCm8+P95EMjGzSzvcipvO1TxQf5i31KFMNcNFCxYIQa7hYXPEyOciRrBIK41zjYTSYhRxHKlwg/o6waJssu8TfPUPOQji/ZjJ2QwjNhcP+kPUx6eb37vd72js6+LfpROG1O3yIkfo5SBaxTuFMShUCcurfTfRDESE+gwVkCrxBU3NB1q7DCeSMxxrOZJSi+pU8l8xyQFgKGiC+kJyL9haeUDI1fimZqpDrP1geDu3dqWv+26eb2G8Noi+sV5BjYy7cAxAFhJLYBBQ42qB49m4o/3aiWHtpIAOQ6yZ9t+dWlVicd4lOP8do+Hgm2YSQIWnXCIlNj1F2u/bNWZvIKCnhcuPweUFVtU1iOysIOpzO2kxS/2q4HhUd6i4EcoYeOZ38i62oF0QpVoBEg1gJZT0y1SA3TejRbFQE/zuDVbP1hjINEshTF0qSsssGD2PththPmepRN21ITJb4MmYIicnsJ2emIb2gwhMxxfZ9wc81P/PeYqlPTvPaewHIq8VGLPjuTuIthO74mwk+yTnX0ACrOqMM6SUVRh/++lZydlkf6bC7R2VfhW5nVCb/Np1AJjKd7O88WBMice3cxeviM7pCp5/frGpwnbONYdCc7vVpa3KvVIjtegTE+MGofGibI6vKjxtPiI2sANGRTDCj9ta+Pm0t/PBsVtmzY6XrAJnC79cdE6VYAbp/6xvDiBFy3StT/KET1GzkVoa0TO0hSfoKb3l7cSiKxsX+sUQyc4Gyk5z2pXdWo/wT38cMH/4YwfC3HhNzpzD0ket3HMkQH8ACQvbLUwIYcyFTz1YftJESojSbtiyMNRF697nbkdJjLn73tnSXpMfkJ8LF+8VJfpeKiW0rt57qbRCRa197b83F4tvCG5mAwn7p+jgnFy8SxTB+PLdbpJ4iUKZ6zF1vO7Ey
|
||||
R6efx50vZrkiUfSMn8huZG+wcstJRqbAaZ4eY+xym7TsZi3Zg5UOjFN/soqcnGu2IymSrANQxDCjcAnJBspu1WKdobUpI2NDDEYD/tCLlXGhC0miukUkfrqnRhnhgbklFfDzt2ZvYWw6gLAGui+TBljPxCWhwruYA+/1x3f9yaUxSjJoLVG04UIyNUoAt6+CN+4/TyWlFI6mFA5inHuRmxcRceSWizVkF916fryXxKyVWGOXbyS3DJBRDlDA7iVmgL9QL2KitLFAvqxAjTB1aURMEtn/R0ro/PlWtlPZOxd6J9fVH/wY3naXLqCAomt3lvjHun8V9OrUAP7ITTif64LPjyeHc/yhrGRUcu34RbuEO632QPTzjnv3ftp8gmHQpMTVbNhva9+lS1TWNLnPDWIsyHKD82dbutxM3nfyEjEUSV7dlyP3OrEOvL0klLlFZ8/eIaaZ32anhfeXq4Kjs+oaW1znBDoppOWGfvi8HUhSusnLGHDKxWtC+noytYSkIdK7N3L9RysiJH2ZvAwKe0gUdkRlWPE39YpNJyRyCMmmHSOikQLy+3XHMezrtxlfE1D4xjeaccuFU788xd/2vlFwdCYjKnGaJ0foT124ggbTV+wjvkQ1kKn/MNl/W2Qa9S5g0JGMVxHBpVZHrtz4IGqk5l6vu39XH3UBf5wsUZdMNd3euSg4kljEnAsTblTUYbVPzb1xIc9e7j2ew85iFEbvXYmiXDsg+nl1XbPz51sY4jjN7972kaYi3QKUiGAhyU6VfeTa+V5RYiPrQL7HB1rKFdUvveMHJ79YfOuFSX5MbxG26GyDXHKUZmuc5tejjDer6hMyrw4dzVhkUMv4dEfLTKgD2WnIAFet7f0qe0Buy0u9gtNgkcfaIjayxMHTeYyLHKDcIFwi6BL1ja1kK4txoqb/QhvZ2mb1KA45wgfLwxk+yZGvTYT7iOTcVPpGcsMsFbk/w4SVC0iqgW76MxmlYiMeyzbEsXb4iJ8j
|
||||
QxEb/X8Aixx/FmgZgPjz/ISMLnavzSH6eVr+jT54SWmew2nGfBOCBvcIyJ0b+9lBcA+ZggYGTaaQdtTHPfTCmTzVUSAAN07KLvvNeNaFU077hS4SbYIOZzDTkCHDdGFxF20LT8srf/39tQzL5jQTFpNkWIuKgFFuaH/7trgz1GPcqWsa800wy3DJYZ7tWygU0FK4/2M6Piy7VfcP5q6nwjjjp33NLezEG0N6c/ZmRi9OA+9lbgFQQOk3dLQR7WkJ/I0gsRELcOMXJvow4qlMtdCH3OfZfyp38DDphrmqn4ut/YLj54ufGskcj+GnzSfb2zsTbLe52xnhSabCWiLcg5IeZzBB5oE3MHPhgDBB1mjj3Hehb7STXHLUpyB7FhXVjWIjOyD6eWhsNq9WaTxb9ZePNy7wjkJo/Mp4uFv80hiF7AihmnzVJNU12UjQfqo8gF+pjgK/9olC+spntpLoA8q14bwbi5+XUL/KVI8P13/4YziEUGIF4qEov8l3UQzhpJgMicmsqW8e+fUO5uoEF8UiI6iuZ7hcVkW28RkrmPqVKf5Ic6Bw/FMdeHr1nmQbVG49hZZzDeSl5hrRnlwNPJxQMNhDujKr+it0mw9eEAbAxI8b4/rKMVN0+tpPrj6ZSpJn28BgkKMRBZp351PCtPxysRELkfH5pCW9apH/PH6+CA1QDpDDJPNfQf7Tl5wiq8lme8c9+T+ZW8vkXo35oRT5MoJlRfBzLCcLvI98qY9UbutiLvQ7zswxHBIM7EtjtG9oohAdAvamYGqEvzOJ6fvWLwYZIiVQFxTPX9OkfId8BIVqXxi5nRD9/NSFEqJWpkfBXLBgdpdYBhWGNWEp0DU59iRKpIIISI6R6Y4WtHLmyWmeG+edV0JqIZRhfHHOFK6TCDSnFeEy9RAPPVbUgqtV/KEXbXwwevU24k69QX1TK6mHpckCiCeaBknUaJvGzsau3oibEE62Wlhe8fK7q7Ns7tAWlFaiYJEYFukL
|
||||
IxYbWUFtQ8vIBTsZz1UY319GbrmI7ViYqTzAmAtO/d8frmtqaausaXL+DEWlxF0VnlN/2Mvc9zLBK+QsfxmRmkRELpXwnY+A+7mVxIrIXNw3UbwarXwJTS1dfaav2IdFPK+k4ukxnuTrXeEna4QNU6IEErWstBgSp31ypKG71YTo57UNreRGITF9lqv3gHLDqK93CHf0Sstr35y9lbzMAxEOK1Tolm+MEyYY2cvohSEPTDgf1BavjoHkjfvPM9Zbcmiv6/LujT1ALjp0DP/9L51G9YgyNXJU1N51ja0kC2V4BWZkJ8Ku+HgrIKdx0g0LmVrxZWCTlYRfQEJmKZ98WborJoXTwNnERixU1TaJH5ybdwQ5LRJJNIhPLx3kxgi4fTm19y5bkoErN6qfG8faYZGpfUI7d1hikwvJ17sPai447TNjPVPzSBxB3cHHzQchFkKgJbl2tvpg2/2L63ZC9HMgv7TSY94O3osMRBxUA80S5UqDHF/J2yCn7cepQqI7Lwycu3Rd9vk2RGiJcEvJUpqehYHx6/Pg4Z7zvaNQXYuisQpdrSJfZcmgAgjnb7/aKZzMtzBm4ZDM8JiH5yerDlTXNaOeIjGesbKRYrWXSbsABPudUZnk9ItMHv/xhjgYOwnbNZsaTr+ID09J2WX9Ffz3sOaN+f/sck0GIs8ghYZaBJq6awe6aHJLbN2hgNuQI2JTF4FyPSp222HxcEL+IDcNP3HmffEKOuFYVLn1NL+ymf9KJCOsZBR0cYDc3n5vpvIg0TBUZN6d0yEamucCu49mv/Yef5+/J3MBmuaCeOMXWrJ5hJThpcn+fPigGneTGA+xT/0zY73/tebYnVrx/wZlPzr9HLhd3YiCcMSCYLwwcoP+chU5u8MDMH/mlKkGuqgHWCG69FPo4CR1ll8s3Kxq0G6PH7Uw+JUpAb8arkezvpzSyQUpjaVwipxGEAtz+fOMDR8sDxc+caVQXlmv35GAkb/xwdpO4UifKGkU
|
||||
Oe0jCnKENnS0518/3Tz533vgeMK2MGyaTLmrj2UXb3A5/9H4g8LF4tvfBRyV/3P78+O94UsYufC+XZIcm8F8yZC8nNz80F34n4R5hST2ua80E/vJUST7dukVAJJkcqHAjVwENnV/REH+fU04uXzKRGNz68cr9/dV6Exd+F4q/GX0wp22k3Zy5OG8aoCL1rxvX071+rS1V2/WNrfe9ZgX1E9h8Su01N8FkoNFETZxNLmQV5QPPNBkt1AINFZyw+KoD49bsemE65yg58f74BEYv+mJXZIkQYKRuPqiqMzhj6hmqQ46uQdgzaMa20/BHl6c5PvWZ9tmq38+1dNE0sLPBbS03oVBHDlbEBKTuSsmC6mR+Vev6sB41Nt7juWExmZbY3BUZlpeuSjOEsg30vLLf47Pg2Q4lWZ7vLlwCePXRZyDQPh2TNLly2XEjm2gubUtp/gWViRBOJYviUALBoSlQHhITFZ00mXq81Lke6yxxSMOWjuX6g0qaxpPpBZDqxi5SY22ufd4DsaPIZGBBZ7FfAmiEjKvBkdnUo2hjcgzeTb2dU1AloEkVhWYsDb8HNQOChJgDMgUxEYSwBuPny/eGZVheqLAHUcybPQScPxc0fbD6VRHDBhZAAYMyZHx+cESycgWL1ixMQr1ja3rI86pAs9si0wz2S1UFB530fTxtjlq6ptPXrhi/0SAyAXWR5wXjSTwjOnLzn0nL2GC8Cw0oLrYT0xBYlZZeVXX5x02wPBzBxxw4CGDw88dcODhh8PPHXDg4YfDzx1w4GHHL7/8B56E0hgp1D/TAAAAAElFTkSuQmCC</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>
|
||||
<Language>es-MX</Language>
|
||||
<ConsumeContainerWhitespace>true</ConsumeContainerWhitespace>
|
||||
|
||||
@@ -394,6 +394,14 @@ Partial Class Inventarios_RecepcionAlmacen
|
||||
ViewState("RealizarMovimientoVirtual") = Value
|
||||
End Set
|
||||
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
|
||||
|
||||
@@ -847,6 +855,7 @@ Partial Class Inventarios_RecepcionAlmacen
|
||||
CveAlmacenDevolucionProveedor = -1
|
||||
RealizarTraspasoAlmacenDevolucion = False
|
||||
RealizarMovimientoVirtual = False
|
||||
SumarImporteUsados = False
|
||||
BtnGuardar.Enabled = True
|
||||
CargaAlmacenes(-1)
|
||||
|
||||
@@ -900,6 +909,7 @@ Partial Class Inventarios_RecepcionAlmacen
|
||||
|
||||
RealizarTraspasoAlmacenDevolucion = False
|
||||
RealizarMovimientoVirtual = False
|
||||
SumarImporteUsados = False
|
||||
CveAlmacenDevolucionProveedor = -1
|
||||
|
||||
Dim ObjCompras As New ClsCompras
|
||||
@@ -956,9 +966,11 @@ Partial Class Inventarios_RecepcionAlmacen
|
||||
'SI LA COMPRA TIENE PRODUCTOS Y USADOS SOLO MOSTRAR LOS PRODUCTOS
|
||||
If NumProductos > 0 AndAlso NumUsados > 0 Then
|
||||
DtRecepcion = ObjInventario.DtResultados.FiltraParametros("EsUsado = False")
|
||||
SumarImporteUsados = True
|
||||
'SI LA COMPRA TIENE PUROS USADOS, MOSTRAR LOS USADOS Y CARGAR LOS ALMACENES
|
||||
ElseIf NumProductos = 0 AndAlso NumUsados > 0 Then
|
||||
CargaSoloUsados = True
|
||||
SumarImporteUsados = True
|
||||
DtRecepcion = ObjInventario.DtResultados.Copy()
|
||||
If UsuarioActual.CveRol = 1 Then
|
||||
CargaAlmacenes(-1, "22,24", CveTipoCompra)
|
||||
@@ -966,6 +978,7 @@ Partial Class Inventarios_RecepcionAlmacen
|
||||
CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22", CveTipoCompra)
|
||||
End If
|
||||
Else
|
||||
SumarImporteUsados = False
|
||||
DtRecepcion = ObjInventario.DtResultados.Copy()
|
||||
End If
|
||||
|
||||
@@ -2704,8 +2717,11 @@ Partial Class Inventarios_RecepcionAlmacen
|
||||
Exit For
|
||||
End If
|
||||
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
|
||||
|
||||
Else
|
||||
|
||||
@@ -1052,10 +1052,11 @@ Partial Class Inventarios_RecepcionUsados
|
||||
Protected Sub Guardar(Optional GenerarRNC As Boolean = False)
|
||||
If GvM.Rows.Count > 0 Then
|
||||
Dim Msg As New StringBuilder()
|
||||
|
||||
Dim Resp As Modelos.Factura.MMensajeFactura = Nothing
|
||||
Dim ObjInventario As New ClsInventarios
|
||||
Dim ObjAcum As New ClsAcumuladores(ObjInventario.IniciaTransacSQL())
|
||||
Dim ObjVentas As New ClsVentas(ObjInventario.IniciaTransacSQL())
|
||||
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
|
||||
|
||||
Dim ErrorMovInv As Boolean = False
|
||||
Dim ErrorAC As Boolean = False
|
||||
@@ -1089,93 +1090,116 @@ Partial Class Inventarios_RecepcionUsados
|
||||
CveVenta = -1
|
||||
End If
|
||||
|
||||
|
||||
If Not ErrorMovInv AndAlso GenerarRNC AndAlso ObjRemisionNC IsNot Nothing Then
|
||||
|
||||
CargaDTDetalleRNC()
|
||||
|
||||
Dim Resp = ObjRemisionNC.EmitirFactura(False, ObjInventario.IniciaTransacSQL)
|
||||
For Each mensaje2 As String In Resp.Mensajes
|
||||
Msg.AppendFormat("<br>{0}", mensaje2)
|
||||
Next
|
||||
Resp = ObjRemisionNC.EmitirFactura(False, ObjInventario.IniciaTransacSQL)
|
||||
'For Each mensaje2 As String In Resp.Mensajes
|
||||
' Msg.AppendFormat("<br>{0}", mensaje2)
|
||||
'Next
|
||||
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
|
||||
|
||||
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,
|
||||
Recibio:=TxtResponsable.Text.Trim, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, DepartamentoEntrega:=TxtDepartamentoEntrega.Text,
|
||||
PedidoContrato:=TxtPedidoContrato.Text, CveProveedor:=tCveProveedor, Modulo:="RU/G")
|
||||
If CveMovimiento <= 0 Then
|
||||
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
|
||||
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
|
||||
ObjInventario.RollBack() 'deshace lo insertado
|
||||
Else
|
||||
Dim Mensaje As String = ""
|
||||
If CveMovimiento <= 0 Then
|
||||
Mensaje = "Error al guardar los movimientos"
|
||||
ErrorMovInv = True
|
||||
Else
|
||||
FolioInv = ObjInventario.Folio.ToString()
|
||||
|
||||
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 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"
|
||||
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
|
||||
|
||||
End If
|
||||
Next
|
||||
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
|
||||
|
||||
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)
|
||||
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 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
|
||||
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
|
||||
|
||||
|
||||
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
|
||||
Catch ex As Exception
|
||||
ObjInventario.RollBack() 'deshace lo insertado
|
||||
@@ -1202,6 +1226,94 @@ Partial Class Inventarios_RecepcionUsados
|
||||
|
||||
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
|
||||
|
||||
#Region " ADD INVENTARIO INICIAL "
|
||||
@@ -2451,6 +2563,12 @@ Partial Class Inventarios_RecepcionUsados
|
||||
ObjRemisionNC.IEPS = ImporteIEPS
|
||||
ObjRemisionNC.Total = Total
|
||||
ObjRemisionNC.TotalOtrosConceptos = 0
|
||||
|
||||
|
||||
ObjRemisionNC.DtMovimientosUsados = DtMovimientos
|
||||
ObjRemisionNC.CveAlmacen = DdlAlmacen.SelectedValue.ToEntero()
|
||||
ObjRemisionNC.ObservacionesMovimiento = TxtObservaciones.Text
|
||||
ObjRemisionNC.CveConceptoMovimiento = CveConcepto
|
||||
End Sub
|
||||
|
||||
Protected Sub CargaTamaños()
|
||||
|
||||
@@ -794,485 +794,490 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
Dim TieneError = False
|
||||
Dim EsNuevoUsuario As Boolean = False
|
||||
|
||||
|
||||
'Cargo la ultima empresa consultada en asignaciones
|
||||
Dim DtValida = DtAsignacionesMultiEmpresa.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaAnterior))
|
||||
If DtValida.Rows.Count > 0 Then
|
||||
Dim dr = DtAsignacionesMultiEmpresa.Select(String.Format("CveEmpresa = {0}", CveEmpresaAnterior))
|
||||
dr(0)("CveEmpresa") = CveEmpresaAnterior
|
||||
dr(0)("CvePersonal") = DdlPersonal.SelectedValue.ToEntero
|
||||
dr(0)("CveVendedor") = DdlVendedor.SelectedValue.ToEntero
|
||||
dr(0)("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero
|
||||
dr(0)("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero
|
||||
dr(0)("CveTipoDocumento") = DdlTipoDocumento.SelectedValue
|
||||
dr(0).AcceptChanges()
|
||||
Else
|
||||
Dim Row As DataRow = Nothing
|
||||
Row = DtAsignacionesMultiEmpresa.NewRow()
|
||||
Row("CveEmpresa") = CveEmpresaAnterior
|
||||
Row("CvePersonal") = DdlPersonal.SelectedValue.ToEntero
|
||||
Row("CveVendedor") = DdlVendedor.SelectedValue.ToEntero
|
||||
Row("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero
|
||||
Row("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero
|
||||
Row("CveTipoDocumento") = DdlTipoDocumento.SelectedValue
|
||||
DtAsignacionesMultiEmpresa.Rows.Add(Row)
|
||||
End If
|
||||
|
||||
|
||||
'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
|
||||
TieneError = True
|
||||
End If
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
TieneError = True
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA ACCESO MODULOS
|
||||
If Not TieneError 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
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") = "" Then
|
||||
If Row.FCCheckBox("chkIndicador").Checked Then
|
||||
If Not Indicador.AddIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'GUARDA ACCESO EMPRESAS
|
||||
If Not TieneError Then
|
||||
For Each dr As DataRow In DtEmpresasUsuario.FiltraParametros("Accion IN (1,2)").Rows
|
||||
If dr("Accion").ToString = "1" Then
|
||||
If Not ObjUsuarios.AddUsuariosEmpresas(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" Then
|
||||
If Not ObjUsuarios.RemoveEmpresasAcceso(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
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
|
||||
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
|
||||
If dr("Accion").ToString = "1" Then
|
||||
If Not ObjUsuarios.AddSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" Then
|
||||
If Not ObjUsuarios.RemoveSubProyectos(CveUsuario, dr("CveSubProyecto").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
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA ESTATUS DE OC
|
||||
If Not TieneError Then
|
||||
If DTEstatusOC IsNot Nothing AndAlso DTEstatusOC.Rows.Count > 0 Then
|
||||
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 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 dr("Accion").ToString = "1" Then
|
||||
If Not ObjUsuarios.AddAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" 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
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA ALMACENES
|
||||
If Not TieneError Then
|
||||
For Each dr As DataRow In DtAlmacenesAsignar.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.AddAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" Then
|
||||
If Not ObjUsuarios.RemoveAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
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 MODULOS
|
||||
If Not TieneError Then
|
||||
For Each Row As GridViewRow In GvModulosAsignar.Rows
|
||||
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
|
||||
If Not ObjUsuarios.RemoveModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
|
||||
If Not ObjUsuarios.AddModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA PERMISOS
|
||||
If Not TieneError Then
|
||||
For Each Row As GridViewRow In GvPermisosAsignar.Rows
|
||||
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
|
||||
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
|
||||
|
||||
|
||||
Try
|
||||
'Cargo la ultima empresa consultada en asignaciones
|
||||
Dim DtValida = DtAsignacionesMultiEmpresa.FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresaAnterior))
|
||||
If DtValida.Rows.Count > 0 Then
|
||||
Dim dr = DtAsignacionesMultiEmpresa.Select(String.Format("CveEmpresa = {0}", CveEmpresaAnterior))
|
||||
dr(0)("CveEmpresa") = CveEmpresaAnterior
|
||||
dr(0)("CvePersonal") = DdlPersonal.SelectedValue.ToEntero
|
||||
dr(0)("CveVendedor") = DdlVendedor.SelectedValue.ToEntero
|
||||
dr(0)("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero
|
||||
dr(0)("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero
|
||||
dr(0)("CveTipoDocumento") = DdlTipoDocumento.SelectedValue
|
||||
dr(0).AcceptChanges()
|
||||
Else
|
||||
Dim Row As DataRow = Nothing
|
||||
Row = DtAsignacionesMultiEmpresa.NewRow()
|
||||
Row("CveEmpresa") = CveEmpresaAnterior
|
||||
Row("CvePersonal") = DdlPersonal.SelectedValue.ToEntero
|
||||
Row("CveVendedor") = DdlVendedor.SelectedValue.ToEntero
|
||||
Row("CveSucursal") = DdlSubProyectos.SelectedValue.ToEntero
|
||||
Row("CveAlmacen") = DdlAlmacenGeneral.SelectedValue.ToEntero
|
||||
Row("CveTipoDocumento") = DdlTipoDocumento.SelectedValue
|
||||
DtAsignacionesMultiEmpresa.Rows.Add(Row)
|
||||
End If
|
||||
|
||||
|
||||
'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
|
||||
TieneError = True
|
||||
End If
|
||||
|
||||
For Each Row As DataRow In DtAsignacionesMultiEmpresa.FiltraParametros("CveEmpresa > 0").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
|
||||
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.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
|
||||
TieneError = True
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA ACCESO MODULOS
|
||||
If Not TieneError 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
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
If Row.DataKey("CveIndicador") <> "" AndAlso Row.DataKey("CveUsuario") = "" Then
|
||||
If Row.FCCheckBox("chkIndicador").Checked Then
|
||||
If Not Indicador.AddIndicadoresUsuarios(Row.DataKey("CveIndicador").ToEntero, CveUsuario, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'GUARDA ACCESO EMPRESAS
|
||||
If Not TieneError Then
|
||||
For Each dr As DataRow In DtEmpresasUsuario.FiltraParametros("Accion IN (1,2)").Rows
|
||||
If dr("Accion").ToString = "1" Then
|
||||
If Not ObjUsuarios.AddUsuariosEmpresas(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" Then
|
||||
If Not ObjUsuarios.RemoveEmpresasAcceso(CveUsuario, dr("CveEmpresa").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
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
|
||||
If DtEmpresasUsuario.FiltraParametros(String.Format("CveEmpresa = {0}", dr("CveEmpresa").ToString.ToEntero)).Rows.Count > 0 Then
|
||||
If dr("Accion").ToString = "1" Then
|
||||
If Not ObjUsuarios.AddSubProyectos(CveUsuario, dr("CveSubProyecto").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" Then
|
||||
If Not ObjUsuarios.RemoveSubProyectos(CveUsuario, dr("CveSubProyecto").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
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA ESTATUS DE OC
|
||||
If Not TieneError Then
|
||||
If DTEstatusOC IsNot Nothing AndAlso DTEstatusOC.Rows.Count > 0 Then
|
||||
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 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 dr("Accion").ToString = "1" Then
|
||||
If Not ObjUsuarios.AddAlmacen(CveUsuario, dr("CveAlmacen").ToString.ToEntero, UsuarioActual.CveUsuario) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" 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
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA ALMACENES
|
||||
If Not TieneError Then
|
||||
For Each dr As DataRow In DtAlmacenesAsignar.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.AddAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf dr("Accion").ToString = "2" Then
|
||||
If Not ObjUsuarios.RemoveAlmacenAsignar(CveUsuario, dr("CveAlmacen").ToString.ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
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 MODULOS
|
||||
If Not TieneError Then
|
||||
For Each Row As GridViewRow In GvModulosAsignar.Rows
|
||||
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
|
||||
If Not ObjUsuarios.RemoveModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
ElseIf Row.FCCheckBox("ChkP").Checked AndAlso Not Row.DataKey("TienePermiso").ToEntero > 0 Then
|
||||
If Not ObjUsuarios.AddModulosAsignar(CveUsuario, Row.DataKey("CveModulo").ToEntero) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
'GUARDA PERMISOS
|
||||
If Not TieneError Then
|
||||
For Each Row As GridViewRow In GvPermisosAsignar.Rows
|
||||
If Row.DataKey("TienePermiso").ToEntero > 0 AndAlso Not Row.FCCheckBox("ChkP").Checked Then
|
||||
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
|
||||
|
||||
Catch ex As Exception
|
||||
TieneError = True
|
||||
OnError("Ocurrió un error al guardar el usuario", ex)
|
||||
End Try
|
||||
|
||||
|
||||
If Not TieneError Then
|
||||
If EsNuevoUsuario Then
|
||||
EnviaCorreo()
|
||||
@@ -1286,7 +1291,12 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
End If
|
||||
|
||||
|
||||
ObjUsuarios.Dispose()
|
||||
ObjUsuarios.Dispose()
|
||||
ObjSubProyectos.Dispose()
|
||||
ObjOC.Dispose()
|
||||
ObjOS.Dispose()
|
||||
Indicador.Dispose()
|
||||
ObjBancos.Dispose()
|
||||
End Sub
|
||||
|
||||
Private Sub RecargaGlobales(TieneError As Boolean, ObjSubProyectos As ClsSubProyectos, ObjBancos As ClsBancos, ObjOC As ClsOC, ObjUsuarios As ClsSisUsuarios)
|
||||
|
||||
@@ -2707,7 +2707,7 @@
|
||||
<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"
|
||||
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>
|
||||
<asp:BoundField DataField="CodigoPS" HeaderText="Tamaño" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="35%" />
|
||||
<asp:TemplateField HeaderText="Cantidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="20%">
|
||||
|
||||
@@ -4657,7 +4657,28 @@ Partial Class PV
|
||||
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero, DdlPS)
|
||||
DdlUnidadMedida.SelectedValueExist(GvRow.DataKey("CveUM"))
|
||||
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")
|
||||
TxtDescuento.Text = GvRow.DataKey("Descuento")
|
||||
LblTotalPS.Text = GvRow.DataKey("Total")
|
||||
@@ -6681,12 +6702,16 @@ Partial Class PV
|
||||
|
||||
Dim TotalCargos 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
|
||||
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
|
||||
TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
|
||||
StrTamanios.AppendFormat("{0},", Gvr.DataKey("CodigoPS"))
|
||||
|
||||
Dim Row As DataRow = TmpDTRecepcionUsados.NewRow()
|
||||
Row("CvePS") = Gvr.DataKey("CvePSCargo").ToEntero
|
||||
@@ -6703,9 +6728,15 @@ Partial Class PV
|
||||
End If
|
||||
Next
|
||||
|
||||
If TotalCargos > 0 Then
|
||||
StrTamanios.Remove(StrTamanios.Length - 1, 1)
|
||||
Else
|
||||
StrTamanios.Clear()
|
||||
End If
|
||||
|
||||
Dim StrCargos As New StringBuilder
|
||||
For Each CvePSCargo As Integer In ListaPSCargo
|
||||
StrCargos.AppendFormat("{0},", CvePSCargo)
|
||||
StrCargos.AppendFormat(" {0},", CvePSCargo)
|
||||
Next
|
||||
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
|
||||
|
||||
Dim TotalAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
|
||||
Dim PUActual As Decimal = (TotalAnterior - TotalCargos) / Dr("Cantidad").ToString.ToDecimal
|
||||
Dim Descuento As Decimal = Dr("Descuento").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)
|
||||
'Dim PUActual As Decimal = (TotalAnterior - TotalCargos) / Dr("Cantidad").ToString.ToDecimal
|
||||
Dim DescuentoCargo As Decimal = (TotalCargos / Dr("Cantidad").ToString.ToDecimal)
|
||||
|
||||
If DescuentoCargo > (TotalAnterior - Dr("Descuento").ToString.ToDecimal()) Then
|
||||
DescuentoCargo = (TotalAnterior - Dr("Descuento").ToString.ToDecimal())
|
||||
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
|
||||
Exit For
|
||||
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
|
||||
|
||||
Dim PUAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
|
||||
Dim PUActual As Decimal = PUAnterior - (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)
|
||||
Dim DescuentoCargo As Decimal = (TotalCargos / Dr("Cantidad").ToString.ToDecimal)
|
||||
|
||||
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 > (PUAnterior - Dr("Descuento").ToString.ToDecimal()) Then
|
||||
DescuentoCargo = (PUAnterior - Dr("Descuento").ToString.ToDecimal())
|
||||
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
|
||||
Exit For
|
||||
End If
|
||||
|
||||
@@ -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>
|
||||
</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 id="LiBuscarPrecio" runat="server" visible="false">
|
||||
@@ -7099,8 +7099,13 @@
|
||||
TxtImporte.value = FormatoNumero(Saldo, 2);
|
||||
}
|
||||
} else {
|
||||
TxtImporte.value = "";
|
||||
Chk.checked = false;
|
||||
if (SaldoMaximoUtilizable > 0) {
|
||||
TxtImporte.value = "";
|
||||
Chk.checked = false;
|
||||
} else {
|
||||
TxtImporte.value = FormatoNumero(Saldo, 2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
@@ -2167,7 +2167,7 @@ Partial Class Ventas
|
||||
DdlSubProyectoDatos.Enabled = False
|
||||
BtnEmitirImprimir.Visible = False
|
||||
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
|
||||
|
||||
DivFechaAnticipoCliente.Visible = True
|
||||
@@ -2222,7 +2222,13 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -3791,6 +3797,17 @@ Partial Class Ventas
|
||||
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
|
||||
If ObjVentas.GetVentaDetalle(CveVenta) Then
|
||||
TmpDT = ObjVentas.DtResultados
|
||||
@@ -3885,17 +3902,26 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
|
||||
'Verifico si tiene la funcionalidad (135)
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(135) = "1" Then
|
||||
'Reviso cuales son los supervisores
|
||||
Dim Objeto As New ClsVtaVendedores
|
||||
|
||||
If Objeto.GetVendedores(UsuarioActual.CveEmpresa) Then
|
||||
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
|
||||
If DTVendedores.Rows.Count > 0 Then
|
||||
LkCotizacionAutorizar.Visible = True
|
||||
|
||||
If TipoEstatus = 2 Then
|
||||
LkCotizacionAutorizar.Visible = False
|
||||
ElseIf TipoEstatus = 2 Then
|
||||
LkCotizacionAutorizar.Visible = False
|
||||
End If
|
||||
End If
|
||||
DTVendedores.Dispose()
|
||||
End If
|
||||
@@ -4651,6 +4677,41 @@ Partial Class Ventas
|
||||
End If
|
||||
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()
|
||||
UpContado.Update()
|
||||
UpEstatus.Update()
|
||||
@@ -10413,7 +10474,7 @@ Partial Class Ventas
|
||||
|
||||
If ErrorList.Count = 0 Then
|
||||
'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
|
||||
|
||||
'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,
|
||||
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,
|
||||
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 DT As DataTable = Nothing
|
||||
@@ -10467,7 +10528,7 @@ Partial Class Ventas
|
||||
If DdlTipoComprobante.SelectedValue <> "Cot" 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")
|
||||
End If
|
||||
|
||||
@@ -10478,7 +10539,8 @@ Partial Class Ventas
|
||||
End Sub
|
||||
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,
|
||||
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
|
||||
Dim DT As DataTable
|
||||
Dim CvePlantilaPoliza As Integer
|
||||
@@ -11313,12 +11375,43 @@ Partial Class Ventas
|
||||
IdCtaContableCliente = IdCtaContable
|
||||
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
|
||||
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 CveMovimiento As Integer = -1
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
importeMovimiento = 0
|
||||
@@ -12717,15 +12810,15 @@ Partial Class Ventas
|
||||
|
||||
'TIMBRADO NUEVO
|
||||
Try
|
||||
If CveVenta > 0 Then
|
||||
ObjFactura = New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=False)
|
||||
End If
|
||||
|
||||
pdf = PdfFactura(ObjFactura)
|
||||
Catch ex As Exception
|
||||
Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgError)
|
||||
End Try
|
||||
|
||||
If CveVenta > 0 Then
|
||||
ObjFactura = New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=False)
|
||||
End If
|
||||
|
||||
LocalSerieFolio = ObjFactura.SerieFolio
|
||||
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
|
||||
|
||||
Dim Retorno As Boolean = False
|
||||
If Not CvePS > 0 Then
|
||||
Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError)
|
||||
Return False
|
||||
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()))
|
||||
Try
|
||||
If Not CvePS > 0 Then
|
||||
Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError)
|
||||
Return False
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
|
||||
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
|
||||
'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
|
||||
End If
|
||||
|
||||
LblRetIVA.Text = (ClienteRetIVA * 100).FormatoNumero
|
||||
TrRetIVA.Style.Add("display", "")
|
||||
DdlTipoRetencion.Visible = True
|
||||
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
|
||||
|
||||
|
||||
Row("IVA") = Row("PorcentajeIVA")
|
||||
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)
|
||||
Dim DrPS As DataRow = Nothing
|
||||
|
||||
'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
|
||||
' Row("IdCtaContVentas") = IdCtaContable
|
||||
' Row("AplicaParaConcepto") = AplicaParaConcepto
|
||||
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
|
||||
|
||||
Row("SATClaveProdServ") = DrPS("SATClavePS")
|
||||
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
|
||||
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 UsuarioActual.Empresa.UsaAC Then
|
||||
Row("CvePresupuestoIngreso") = Me.DdlFuenteRecaudacion.SelectedValue
|
||||
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
|
||||
|
||||
Row("EntregaDirecta") = EntregaDirecta
|
||||
'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
|
||||
|
||||
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)
|
||||
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
|
||||
|
||||
'ACTIVA PRODUCTOS DE LA MISMA MONEDA
|
||||
If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
|
||||
DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString())
|
||||
CambiaMoneda()
|
||||
DdlMoneda.Enabled = False
|
||||
'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
|
||||
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
|
||||
TmpDT.Rows.Add(Row)
|
||||
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
|
||||
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
|
||||
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("IVA") = Row("PorcentajeIVA")
|
||||
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
|
||||
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
|
||||
'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
|
||||
' Row("IdCtaContVentas") = IdCtaContable
|
||||
' Row("AplicaParaConcepto") = AplicaParaConcepto
|
||||
|
||||
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
|
||||
Row("SATClaveProdServ") = DrPS("SATClavePS")
|
||||
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
|
||||
|
||||
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)
|
||||
If UsuarioActual.Empresa.UsaAC Then
|
||||
Row("CvePresupuestoIngreso") = Me.DdlFuenteRecaudacion.SelectedValue
|
||||
End If
|
||||
|
||||
'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)
|
||||
Row("EntregaDirecta") = EntregaDirecta
|
||||
'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()
|
||||
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()
|
||||
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
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If PrecioSugerido > 0 Then
|
||||
PU = PrecioSugerido
|
||||
'ACTIVA PRODUCTOS DE LA MISMA MONEDA
|
||||
If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
|
||||
DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString())
|
||||
CambiaMoneda()
|
||||
DdlMoneda.Enabled = False
|
||||
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
|
||||
|
||||
'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
|
||||
End Function
|
||||
|
||||
@@ -19542,8 +19639,19 @@ Partial Class Ventas
|
||||
LBDevolucionAlmacen.ToolTip = "¿Está seguro de Solicitar la Devolución de Almacén?"
|
||||
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
|
||||
|
||||
UpnTools.Update()
|
||||
'UpInvDev.Update()
|
||||
End Sub
|
||||
Protected Sub LBDevolucionAlmacen_Click(sender As Object, e As EventArgs)
|
||||
@@ -19571,8 +19679,9 @@ Partial Class Ventas
|
||||
ObjVentas.Dispose()
|
||||
|
||||
Me.DevolucionAlmacen = EstatusDevolucion
|
||||
|
||||
InicializaDevolucionAlmacen()
|
||||
UpnTools.Update()
|
||||
'UpnTools.Update()
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -20243,8 +20352,21 @@ Partial Class Ventas
|
||||
End Sub
|
||||
Private Sub LkCotizacionAutorizar_Click(sender As Object, e As EventArgs) Handles LkCotizacionAutorizar.Click
|
||||
EsSupervisor = True
|
||||
GeneraPDFCotizacion(True)
|
||||
Alert("La cotización ha sido enviada al correo de nuestro cliente:" & Mail)
|
||||
Dim ActualizoEstatus As Boolean = False
|
||||
|
||||
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 Region
|
||||
|
||||
|
||||
@@ -126,6 +126,10 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user