-
+
<%--<%#Eval("Cantidad") %>--%>
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index b4bb04673..9a205f1b3 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -13,7 +13,7 @@ Imports MoreLinq
Imports System.Data.SqlClient
Imports ClsPaginas
Imports Microsoft.Reporting.WebForms
-Imports CrystalDecisions.[Shared]
+Imports DocumentFormat.OpenXml.Math
Partial Class Compras_Compras
Inherits ClsPaginas
@@ -539,6 +539,8 @@ Partial Class Compras_Compras
ViewState("EsNoDeducible") = value
End Set
End Property
+
+
#End Region
#Region "PROPIEDADES - AC NEW"
@@ -1036,8 +1038,6 @@ Partial Class Compras_Compras
End Set
End Property
-
-
Public Property FechaCompraOriginal As Date
Get
Return ViewState("FechaCompraOriginal").ToString.ToDate
@@ -1202,22 +1202,8 @@ Partial Class Compras_Compras
End Set
End Property
-
-
-
-
-
-
- 'ImporteRNCSaldar = 0
- 'SerieFolioProntoPago = ""
- 'TipoCambioProntoPago = 1
- 'FechaProntoPago = MinFecha
- 'CveMonedaProntoPago = 1
-
-
#End Region
-
'Public Property ListaFacturasRealcionadasRNC As List(Of String)
' Get
' If ViewState("ListaFacturasRealcionadasRNC") Is Nothing Then
@@ -1230,15 +1216,37 @@ Partial Class Compras_Compras
' End Set
'End Property
+ Private Property EsGrupoDiaz As Boolean
+ Get
+ If ViewState("EsGrupoDiaz") Is Nothing Then
+ ViewState("EsGrupoDiaz") = False
+ End If
+ Return CType(ViewState("EsGrupoDiaz"), Boolean)
+ End Get
+ Set(value As Boolean)
+ ViewState("EsGrupoDiaz") = value
+ End Set
+ End Property
-
-
+ Private Property CveCompraDRMC As Integer
+ Get
+ If ViewState("CveCompraDRMC") Is Nothing Then
+ ViewState("CveCompraDRMC") = -1
+ End If
+ Return ViewState("CveCompraDRMC").ToString.ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveCompraDRMC") = value
+ End Set
+ End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
'ImgBtnBuscarOC.Attributes.Add("data-toggle", "tooltip")
'ImgBtnBuscarOC.Attributes.Add("data-placement", "top")
+ EsGrupoDiaz = If(UsuarioActual.Empresa.Funcionalidad(382) = "1", True, False)
+
CargaDatosAgregarPS()
TieneAnticiposXML = False
Modalidad = ""
@@ -7196,23 +7204,23 @@ Partial Class Compras_Compras
If ImporteRNCSaldar > TotalSaldo Then ImporteRNCSaldar = TotalSaldo
If Not ErrorPrepoliza Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteRNCSaldar, ImporteRNCSaldar, 373, Referencia, Concepto, CveCompra:=CveCompraRNC, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
- CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteRNCSaldar, ImporteRNCSaldar, 373, Referencia, Concepto, CveCompra:=CveCompraRNC, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
+ CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ If Not ErrorPrepoliza Then
+ Dim ConPrePNC As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(15, CompraActual.CveMoneda, True, CompraActual.CveTipoConceptoProveedor)
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteRNCSaldar, ImporteRNCSaldar, ConPrePNC.CveConcepto, Referencia, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
+ CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
ErrorPrepoliza = True
Exit For
End If
-
- If Not ErrorPrepoliza Then
- Dim ConPrePNC As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(15, CompraActual.CveMoneda, True, CompraActual.CveTipoConceptoProveedor)
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteRNCSaldar, ImporteRNCSaldar, ConPrePNC.CveConcepto, Referencia, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio,
- CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then
- ErrorPrepoliza = True
- Exit For
- End If
- End If
End If
End If
+ End If
Next
If ErrorPrepoliza Then
@@ -7797,7 +7805,8 @@ Partial Class Compras_Compras
If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 Or ImporteRNCProntoPago > 0) Then
- If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza) Then
+ If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", DdlMoneda.SelectedValue.ToEntero,
+ TxtSerie.Text, TxtFolio.Text) Then
TieneError = True
End If
End If
@@ -14680,6 +14689,17 @@ Partial Class Compras_Compras
ErrorCancelar = True
End Try
+
+ If Not ErrorCancelar AndAlso DdlTipoComprobante.SelectedValue = "RNC" AndAlso TxtSerie.Text.Contains("DRNC") Then
+ If Not ErrorCancelar Then
+ If Not RegistroInventarioDevTemporal(ObjCompras.IniciaTransacSQL, TmpDT.MAX("CveSubProyecto").ToEntero, CveCompra, EsCancelacion:=True) Then
+ ErrorCancelar = True
+ End If
+ End If
+ End If
+
+
+
If Not ErrorCancelar Then
If ObjAC IsNot Nothing Then
ObjAC.Commit()
@@ -19120,6 +19140,7 @@ Partial Class Compras_Compras
Else
HplDevv.Text = " Solicitar Devolución Almacén"
HplDevv.ToolTip = "¿Está seguro de Solicitar la Devolución de Almacén?"
+ ChkEsDevolucionDevInv.Visible = True
End If
End If
@@ -19145,23 +19166,95 @@ Partial Class Compras_Compras
Protected Sub BtnDevolucion_Click(sender As Object, e As EventArgs)
Dim ObjCompras As New ClsCompras
Dim TieneError As Boolean = False
+ Dim tCveSubProyeto As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero
ObjCompras.IniciaTransacSQL()
+ If ChkEsDevolucionDevInv.Checked Then
+
+ End If
+
+ Dim ImporteCompra As Decimal = 0
+
If EstatusAlmacen = 0 Then
+
For Each gvr As GridViewRow In GvSolDev.Rows
+
+ Dim Canidad As Decimal = gvr.FCTextBox("TxtCant").Text.ToDecimal
+ Dim PU As Decimal = gvr.DataKey("PU").ToDecimal
+
If gvr.FCTextBox("TxtCant").Text.ToDecimal > 0 Then
- 'actualiza el estatus del detalle
ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 0, UsuarioActual.CveUsuario, CantidadDevolucion:=gvr.FCTextBox("TxtCant").Text.ToDecimal)
+ ImporteCompra = ImporteCompra + ((PU * Canidad))
Else
ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 1, UsuarioActual.CveUsuario, CantidadDevolucion:=0)
End If
+
Next
End If
+ ImporteRNC = ImporteCompra
+
If ObjCompras.UpdateEstatusAlmacen(CveCompra, If(EstatusAlmacen = 1, 0, 1), UsuarioActual.CveUsuario) Then
EstatusAlmacen = If(EstatusAlmacen = 1, 0, 1)
Alert(If(EstatusAlmacen = 1, "La solicitud de devolución de almacen se guardo correctamente.", "La solicitud de almacen se canceló correctamente."))
End If
+
+ If ChkEsDevolucionDevInv.Checked Then
+
+ Dim objConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL)
+
+ CvePrePoliza = objConta.AddPrePolizas("Compras/RncDevInv", 53, ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, $"RNC Devolucion Inv {TxtSerie.Text}-{TxtFolio.Text}",
+ UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=0, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue,
+ UsuarioActual.CveEmpresa), CveTipoPoliza:=objConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
+ If CvePrePoliza > 0 Then
+
+ Dim PorcentajeIVA As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal
+
+ Dim CompraActual As New Compra
+ CompraActual.CveCompra = CveCompra
+ CompraActual.CveTipoConceptoProveedor = CveTipoConcepto
+ CompraActual.CveProveedor = CveProveedor
+ CompraActual.CveMoneda = DdlMoneda.SelectedValue.ToEntero
+ CompraActual.Fecha = TxtFecha.Text.ToDate
+ CompraActual.SerieFolio = TxtSerie.Text.Trim & "-" & TxtFolio.Text.Trim
+ CompraActual.ProveedorNombre = HplProveedor.Text
+ CompraActual.TC = TipoCambio
+ CompraActual.Total = TxtTotal.Text.ToDecimal
+ CompraActual.IVA = TxtIVA.Text.ToDecimal
+ CompraActual.IVADeducible = TxtIVA.Text.ToDecimal
+ CompraActual.IEPS = TxtIEPS.Text.ToDecimal
+ CompraActual.RetIVA = TxtRetIVA.Text.ToDecimal
+ CompraActual.RetISR = TxtRetISR.Text.ToDecimal
+ CompraActual.CveConceptoRetISR = DdlRetISRConcepto.SelectedValue.ToEntero
+ CompraActual.CveConceptoRetIVA = DdlRetIVAConcepto.SelectedValue.ToEntero
+ CompraActual.PorcentajeIVA = PorcentajeIVA
+ CompraActual.UsuarioActual = UsuarioActual
+ CompraActual.CveSubProyecto = tCveSubProyeto
+ CompraActual.EsImportacion = chkImportacion.Checked
+
+ If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, objConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", DdlMoneda.SelectedValue.ToEntero,
+ TxtSerie.Text, TxtFolio.Text, EsDRMN:=True) Then
+ TieneError = True
+ End If
+
+ Else
+ TieneError = True
+ End If
+
+ If Not CveCompraDRMC > 0 Then
+ TieneError = True
+ End If
+
+ If Not TieneError Then
+ If Not RegistroInventarioDevTemporal(ObjCompras.IniciaTransacSQL, tCveSubProyeto, CveCompraDRMC, EsCancelacion:=False) Then
+ TieneError = True
+ End If
+ End If
+
+ End If
+
+
+
If Not TieneError Then
ObjCompras.Commit()
Else
@@ -19173,6 +19266,370 @@ Partial Class Compras_Compras
InicializaDevolucionAlmacen()
End Sub
+ Function RegistroInventarioDevTemporal(ByRef transaccion As SqlTransaction, tCveSubProyecto As Integer, CveCompraDRMCRelacionada As Integer, EsCancelacion As Boolean) As Boolean
+
+ 'Dim CveConceptoInv As Integer = If(OpcionOrigen = 1, 2, 3)
+
+ Dim CveConceptoSalida As Integer = If(EsCancelacion, 2, 13)
+ 'Dim CveConceptoEntrada As Integer = 2 'OIC FIXME Ver Con Rene
+
+ Dim Respuesta As Boolean = True
+
+ 'Dim ObjOC As New ClsOC(transaccion)
+
+ Dim CveAlmacenOrigen As Integer = -1
+ 'Dim CveAlmacenDestino As Integer = -1
+
+
+ For Each gvRow As GridViewRow In GvInvMov.Rows
+ CveAlmacenOrigen = gvRow.DataKey("CveAlmacen").ToEntero
+ If CveAlmacenOrigen > 0 Then
+ Exit For
+ End If
+ Next
+
+ If CveAlmacenOrigen <= 0 Then
+ Alert("Almacén de devolución proveedor no esta asignado.")
+ Return False
+ End If
+
+ 'CveAlmacenDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveSubProyecto = {tCveSubProyecto} AND CveTipoAlmacen = 21 ").ToEntero
+ 'If CveAlmacenDestino <= 0 Then
+ ' CveAlmacenDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen = 21 ").ToEntero
+ 'End If
+ 'If CveAlmacenDestino <= 0 Then
+ ' Alert("Almacén destino de devolución proveedor no esta asignado.")
+ ' Return False
+ 'End If
+
+ Dim ObjConta As New ClsContabilidad(transaccion)
+ Dim ObjInventario As New ClsInventarios(transaccion)
+
+ 'Dim CveConceptoInv As Integer = If(TipoTermino = 1, 3, 2)
+
+ Dim CvePrePolizaSalida As Integer = ObjConta.AddPrePolizas("Comp/InvDevSal", 53, 0, 0, 1, TxtFecha.Text.Replace(",", "").ToDate, $"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
+ 'Dim CvePrePolizaEntrada As Integer = ObjConta.AddPrePolizas("Comp/InvDevEnt", 53, 0, 0, 1, TxtFecha.Text.Replace(",", "").ToDate, $"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
+
+ Dim CveMovimientoSalida As Integer = ObjInventario.AddMovimiento(CveAlmacenOrigen, CveConceptoSalida, 1, NowADS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompraDRMCRelacionada, -1, tCveSubProyecto, -1, Observaciones:=$"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}",
+ CveAlmacenDestino:=-1, Modulo:="ComprasDev/1")
+
+ Dim FolioMtoSalida As Integer = ObjInventario.Folio
+ Dim FolioMtoEntrada As Integer = 0 'Se asigna mas abajo
+
+
+
+
+ If CveMovimientoSalida <= 0 OrElse CvePrePolizaSalida <= 0 Then
+ Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
+ 'ObjInventario.RollBack() 'deshace lo insertado
+ Respuesta = False
+ Else
+
+ Dim Mensaje As String = ""
+ Dim Cont As Integer = 0
+
+ If EsCancelacion Then
+
+ For Each gvRow As GridViewRow In GvInvMov.Rows
+ 'Dim FechaCaducidadVal As Date = If(Dr("AplicaCaducidad").ToString = "True", Dr("FechaCaducidad").ToString.ToDate, MinFecha)
+ Dim FechaMovtoExistenciaStr As String = $"{NowADS.ToString("yyyy/MM/dd")} {NowADS.ToString("HH:mm")}"
+ Dim Cantidad As Decimal = gvRow.DataKey("Cantidad").ToDecimal
+
+ If Cantidad > 0 Then
+
+ Dim CveUM As Integer = gvRow.DataKey("CveUM").ToString.ToEntero
+ Dim CvePS As Integer = gvRow.DataKey("CvePS").ToString.ToEntero
+ 'Dim CveCompraDetalle As Integer = gvRow.DataKey("CveCompraDetalle").ToEntero' OIC 2024-12-26 se quita relacion
+ Dim PU As Decimal = gvRow.DataKey("PU").ToDecimal
+ Dim CodigoPS As String = gvRow.DataKey("CodigoPS")
+
+
+
+ If UsuarioActual.TienePermisoProceso(114) Or EsCancelacion Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, PU, -1, Observaciones:=$"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}", CveUsuarioModifico:=UsuarioActual.CveUsuario,
+ CveOrdenCompraDetalle:=-1) Then
+ Mensaje = "Error al guardar los movimientos"
+ Respuesta = False
+ Exit For
+ End If
+ Else
+ Mensaje = String.Format("No hay existencias suficientes del producto: {0}", CodigoPS)
+ Alert(Mensaje, TipoMensaje.MsgAdvertencia)
+ Respuesta = False
+ Exit For
+ End If
+
+
+
+ Cont += 1
+
+ End If
+ Next
+
+ Else
+ For Each gvRow As GridViewRow In GvSolDev.Rows
+ 'Dim FechaCaducidadVal As Date = If(Dr("AplicaCaducidad").ToString = "True", Dr("FechaCaducidad").ToString.ToDate, MinFecha)
+ Dim FechaMovtoExistenciaStr As String = $"{NowADS.ToString("yyyy/MM/dd")} {NowADS.ToString("HH:mm")}"
+ Dim Cantidad As Decimal = gvRow.FCTextBox("TxtCant").Text.ToDecimal
+
+ If Cantidad > 0 Then
+
+ Dim CveUM As Integer = gvRow.DataKey("CveUM").ToString.ToEntero
+ Dim CvePS As Integer = gvRow.DataKey("CvePS").ToString.ToEntero
+ 'Dim CveCompraDetalle As Integer = gvRow.DataKey("CveCompraDetalle").ToEntero' OIC 2024-12-26 se quita relacion
+ Dim PU As Decimal = gvRow.DataKey("PU").ToDecimal
+ Dim CodigoPS As String = gvRow.DataKey("CodigoPS")
+
+ If ObjInventario.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, CveAlmacenOrigen, FechaMovto:=FechaMovtoExistenciaStr) >= Cantidad And Not EsCancelacion Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, PU, -1, Observaciones:=$"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}", CveUsuarioModifico:=UsuarioActual.CveUsuario,
+ CveCompraDetalle:=-1) Then
+ Mensaje = "Error al guardar los movimientos"
+ Respuesta = False
+ Exit For
+ End If
+ Else
+
+ If UsuarioActual.TienePermisoProceso(114) Or EsCancelacion Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, PU, -1, Observaciones:=$"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}", CveUsuarioModifico:=UsuarioActual.CveUsuario,
+ CveOrdenCompraDetalle:=-1) Then
+ Mensaje = "Error al guardar los movimientos"
+ Respuesta = False
+ Exit For
+ End If
+ Else
+ Mensaje = String.Format("No hay existencias suficientes del producto: {0}", CodigoPS)
+ Alert(Mensaje, TipoMensaje.MsgAdvertencia)
+ Respuesta = False
+ Exit For
+ End If
+
+ End If
+ Cont += 1
+
+ End If
+ Next
+ End If
+
+
+
+
+ ''Se quita entrada
+ 'Dim CveMovimientoEntrada As Integer = ObjInventario.AddMovimiento(CveAlmacenDestino, CveConceptoEntrada, 1, NowADS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, tCveSubProyecto, -1, Observaciones:=$"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}",
+ ' Modulo:="ComprasDev/2", CveMovimientoRelacionado:=CveMovimientoSalida)
+ 'FolioMtoEntrada = ObjInventario.Folio
+ 'If Respuesta AndAlso CveMovimientoEntrada > 0 Then
+ ' If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ ' For Each dRow As DataRow In ObjInventario.DtResultados.Rows
+ ' Dim Cantidad As Decimal = dRow("Cantidad").ToString.ToDecimal
+ ' If Cantidad > 0 Then
+ ' Dim CveUM As Integer = dRow("CveUM").ToString.ToEntero
+ ' Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero
+ ' Dim CveMovimientoDetalle As Integer = dRow("CveMovimientoDetalle").ToString.ToEntero
+ ' Dim PU As Decimal = dRow("PU").ToString.ToDecimal
+ ' Dim CodigoPS As String = dRow("CodigoPS").ToString
+ ' Dim ImporteConcepto As Decimal = PU
+ ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, CveUM, CvePS, ImporteConcepto, Observaciones:=$"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}", CveUsuarioModifico:=UsuarioActual.CveUsuario,
+ ' CveMovimientoDetalleEntrada:=CveMovimientoDetalle) Then
+ ' Mensaje = "Error al guardar los movimientos"
+ ' Respuesta = False
+ ' Exit For
+ ' End If
+ ' Cont += 1
+ ' End If
+ ' Next
+ ' End If
+ 'End If
+
+
+ 'PrePoliza Movmiento de salida
+ Dim EsContabilizable As Boolean = False
+ 'Registro la prepóliza
+ If Respuesta AndAlso ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL() '* (If(EsCancelacion, -1, 1))
+ 'Dim tValorOtro As Decimal = tValorInventario
+
+ Dim TipoMovtoAlmacen As Boolean = False
+ Dim TipoMovtoOtro As Boolean = True
+
+
+ Dim drA2 As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", CveAlmacenOrigen))
+ If drA2 IsNot Nothing Then
+ tCveSubProyecto = drA2("CveSubProyecto").ToString.ToEntero
+ End If
+
+ Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & CveConceptoSalida).ToEntero
+ If OrigenMov = 1 Then TipoMovtoAlmacen = False Else TipoMovtoAlmacen = True
+ TipoMovtoOtro = Not TipoMovtoAlmacen
+
+ Dim CveConceptoContable As Integer = 260
+ Dim CveClasificacion As Integer = -1
+ Select Case CveConceptoSalida
+ Case 2, 32
+ CveConceptoContable = 78
+ EsContabilizable = True
+ Case 28, 31
+ CveConceptoContable = 51
+ If CveConceptoSalida = 28 Then
+ ''cuando es 28, es otros ingresos.78
+ CveConceptoContable = 78
+ End If
+ EsContabilizable = True
+ Case 30
+ CveConceptoContable = 181
+ TipoMovtoOtro = False
+ If DdlSubProyecto.Visible = True AndAlso DdlSubProyecto.SelectedValue.ToEntero > 0 Then tCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero
+
+ Case 34
+ CveConceptoContable = 51
+ EsContabilizable = True
+ Case 13, 29
+ CveConceptoContable = 69
+ TipoMovtoOtro = True
+ 'tValorOtro = -tValorOtro
+ Dim drr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimero("")
+ If drr IsNot Nothing Then
+ CveClasificacion = drr("CveClasificacion").ToString.ToEntero
+ End If
+ Case 3
+ CveConceptoContable = 51
+ EsContabilizable = True
+ Case Else
+ CveConceptoContable = 95
+
+ End Select
+
+ '2-78
+ Dim Obs As String = $"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}"
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePolizaSalida, TipoMovtoAlmacen, tValorInventario, tValorInventario, 68, Obs, Obs, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then
+
+ Dim Dt As DataTable = ObjInventario.DtResultados.FiltraParametros("", "", {"CveClasificacion"}).Copy
+ For Each Dr As DataRow In Dt.Rows
+ Dim Total As Decimal = ObjInventario.DtResultados.FiltraParametros($"CveClasificacion = {Dr("CveClasificacion")}").SUM("Total").RoundSQL() ' * (If(EsCancelacion, -1, 1))
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaSalida, Not TipoMovtoAlmacen, Total, Total, 95, LblFolio.Text, Obs, 0, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=Dr("CveClasificacion").ToString.ToEntero, CveSubProyecto:=tCveSubProyecto, Contabilizable:=EsContabilizable) Then
+ Respuesta = False
+ End If
+ Next
+ 'If CveConceptoContable.Contiene(181, 78, 51, 69) Then
+ ' Dim Dt As DataTable = ObjInventario.DtResultados.FiltraParametros("", "", {"CveClasificacion"}).Copy
+
+ ' For Each Dr As DataRow In Dt.Rows
+ ' Dim Total As Decimal = ObjInventario.DtResultados.FiltraParametros($"CveClasificacion = {Dr("CveClasificacion")}").SUM("Total").RoundSQL()
+
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaSalida, Not TipoMovtoAlmacen, Total, Total, CveConceptoContable, LblFolio.Text, Obs, 0, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=Dr("CveClasificacion").ToString.ToEntero, CveSubProyecto:=tCveSubProyecto) Then
+ ' Respuesta = False
+ ' End If
+ ' Next
+ 'Else
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaSalida, Not TipoMovtoAlmacen, tValorInventario, tValorInventario, CveConceptoContable, Obs, Obs, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then
+ ' Respuesta = False
+ ' End If
+ 'End If
+
+
+ Else
+ Respuesta = False
+
+ End If
+ Else
+ Respuesta = False
+ End If
+
+
+ ''PrePoliza Movmiento de entrada
+ 'If Respuesta AndAlso ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then
+ ' Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL()
+ ' Dim tValorOtro As Decimal = tValorInventario
+
+ ' Dim TipoMovtoAlmacen As Boolean = False
+ ' Dim TipoMovtoOtro As Boolean = True
+
+
+ ' Dim drA2 As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", CveAlmacenOrigen))
+ ' If drA2 IsNot Nothing Then
+ ' tCveSubProyecto = drA2("CveSubProyecto").ToString.ToEntero
+ ' End If
+
+ ' Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & CveConceptoEntrada).ToEntero
+ ' If OrigenMov = 1 Then TipoMovtoAlmacen = False Else TipoMovtoAlmacen = True
+ ' TipoMovtoOtro = Not TipoMovtoAlmacen
+
+ ' Dim CveConceptoContable As Integer = 260
+ ' Dim CveClasificacion As Integer = -1
+ ' Select Case CveConceptoEntrada
+ ' Case 2, 32
+ ' CveConceptoContable = 78
+ ' EsContabilizable = True
+ ' Case 28, 31
+ ' CveConceptoContable = 51
+ ' If CveConceptoEntrada = 28 Then
+ ' ''cuando es 28, es otros ingresos.78
+ ' CveConceptoContable = 78
+ ' End If
+ ' EsContabilizable = True
+ ' Case 30
+ ' CveConceptoContable = 181
+ ' TipoMovtoOtro = False
+ ' If DdlSubProyecto.Visible = True AndAlso DdlSubProyecto.SelectedValue.ToEntero > 0 Then tCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero
+
+ ' Case 34
+ ' CveConceptoContable = 51
+ ' EsContabilizable = True
+ ' Case 13, 29
+ ' CveConceptoContable = 69
+ ' TipoMovtoOtro = True
+ ' tValorOtro = -tValorOtro
+ ' Dim drr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimero("")
+ ' If drr IsNot Nothing Then
+ ' CveClasificacion = drr("CveClasificacion").ToString.ToEntero
+ ' End If
+ ' Case 3
+ ' CveConceptoContable = 51
+ ' EsContabilizable = True
+ ' Case Else
+ ' CveConceptoContable = 95
+
+ ' End Select
+
+ ' '2-78
+ ' Dim Obs As String = $"Devolución proveedor {TxtSerie.Text}{TxtFolio.Text}"
+
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaEntrada, TipoMovtoAlmacen, tValorInventario, tValorInventario, 68, Obs, Obs, CveMovimientoAlmacen:=CveMovimientoEntrada, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then
+ ' Respuesta = False
+ ' Else
+
+ ' 'Dim Total As Decimal = 0
+ ' If CveConceptoContable.Contiene(181, 78, 51, 69) Then
+ ' Dim Dt As DataTable = ObjInventario.DtResultados.FiltraParametros("", "", {"CveClasificacion"}).Copy
+
+ ' For Each Dr As DataRow In Dt.Rows
+ ' Dim Total As Decimal = ObjInventario.DtResultados.FiltraParametros($"CveClasificacion = {Dr("CveClasificacion")}").SUM("Total").RoundSQL()
+
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaEntrada, Not TipoMovtoAlmacen, Total, Total, CveConceptoContable, LblFolio.Text, Obs, 0, CveMovimientoAlmacen:=CveMovimientoEntrada, CveClasificacion:=Dr("CveClasificacion").ToString.ToEntero, CveSubProyecto:=tCveSubProyecto) Then
+ ' Respuesta = False
+ ' End If
+ ' Next
+ ' Else
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaEntrada, Not TipoMovtoAlmacen, tValorInventario, tValorInventario, CveConceptoContable, Obs, Obs, CveMovimientoAlmacen:=CveMovimientoEntrada, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then
+ ' Respuesta = False
+ ' End If
+ ' End If
+ ' End If
+ 'Else
+ ' Respuesta = False
+ 'End If
+
+ End If
+
+ If Respuesta Then
+ Alert($"Movimientos Guardados Correctamente Folio Salida: {FolioMtoSalida}, Folio Entrada: {FolioMtoEntrada}", TipoMensaje.MsgInformacion)
+ End If
+
+ Return Respuesta
+
+ End Function
+
'Protected Sub LBDevolucionAlmacen_Click(sender As Object, e As EventArgs)
' Dim ObjCompras As New ClsCompras
@@ -21749,7 +22206,9 @@ Partial Class Compras_Compras
#Region "PRONTO PAGO"
- Public Function GeneraRNC(ByRef sqltransaccion As SqlTransaction, CveCompraRegistrada As Integer, ByRef CompraActual As Compra, ByRef ObjConta As ClsContabilidad, CvePrePoliza As Integer) As Boolean
+ Public Function GeneraRNC(ByRef sqltransaccion As SqlTransaction, CveCompraRegistrada As Integer, ByRef CompraActual As Compra, ByRef ObjConta As ClsContabilidad, CvePrePoliza As Integer,
+ CveProveedor As Integer, NombreProveedor As String, Fecha As Date, Descripcion As String, CveMoneda As Integer, Serie As String, Folio As String, Optional EsDRMN As Boolean = False) As Boolean
+ CveCompraDRMC = -1
Dim respuesta As Boolean = True
Dim PorcentajeIVA As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal
@@ -21775,15 +22234,15 @@ Partial Class Compras_Compras
Dim CompraRNC As New ClsCompraManagerCompras(UsuarioActual) With {
.CveFactura = -1,
.TipoDocto = "RNC",
- .CveProveedor = DdlProveedor.SelectedValue.ToEntero,
+ .CveProveedor = CveProveedor,
.CveTipoProveedor = CveTipoProveedor,
.CveTipoConceptoProveedor = CveTipoConcepto,
- .Descripcion = $"Remisión Nota de Crédito {TxtDescripcion.Text}",
- .NombreProveedor = DdlProveedor.SelectedItem.Text,
- .Fecha = TxtFecha.Text.ToDate,
- .CveMoneda = DdlMoneda.SelectedValue.ToEntero,
- .Serie = TxtSerie.Text,
- .Folio = TxtFolio.Text,
+ .Descripcion = Descripcion,
+ .NombreProveedor = NombreProveedor,
+ .Fecha = Fecha,
+ .CveMoneda = CveMoneda,
+ .Serie = If(EsDRMN, $"DRNC{Serie}", Serie),
+ .Folio = Folio,
.CveCompraAmortizacion = CveCompraRegistrada
}
@@ -21811,6 +22270,7 @@ Partial Class Compras_Compras
Pago.AplicaAcreditable = False
Pago.TipoPago = "RNC"
Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC
+ CveCompraDRMC = CompraRNC.CveCompra
respuesta = Not AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
Else
respuesta = False
@@ -21820,15 +22280,15 @@ Partial Class Compras_Compras
Dim CompraRNCProntoPago As New ClsCompraManagerCompras(UsuarioActual) With {
.TipoDocto = "RNC",
- .CveProveedor = DdlProveedor.SelectedValue.ToEntero,
+ .CveProveedor = CveProveedor,
.CveTipoProveedor = CveTipoProveedor,
.CveTipoConceptoProveedor = CveTipoConcepto,
- .Descripcion = $"Remisión Nota de Crédito {TxtDescripcion.Text}",
- .NombreProveedor = DdlProveedor.SelectedItem.Text,
- .Fecha = TxtFecha.Text.ToDate,
- .CveMoneda = DdlMoneda.SelectedValue.ToEntero,
- .Serie = $"PP-{TxtSerie.Text}",
- .Folio = $"{TxtFolio.Text}",
+ .Descripcion = Descripcion,
+ .NombreProveedor = NombreProveedor,
+ .Fecha = Fecha,
+ .CveMoneda = CveMoneda,
+ .Serie = $"PP-{Serie}",
+ .Folio = $"{Folio}",
.CveCompraAmortizacion = CveCompraRegistrada
}
Dim IVARNCProntoPago As Decimal = (ImporteRNCProntoPago * PorcentajeIVA).RoundSQL(2)
diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb
index 33304926c..b84f1214f 100644
--- a/Inventarios/RecepcionUsados.aspx.vb
+++ b/Inventarios/RecepcionUsados.aspx.vb
@@ -3195,16 +3195,47 @@ Partial Class Inventarios_RecepcionUsados
Try
If DdlAlmacen.SelectedValue.ToEntero() <= 0 Then
+ TxtPorcentajeAjuste.Text = ""
+ TxtImporteAjuste.Text = "0.00"
+
Alert("Debe seleccionar un almacen de tipo garantía", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
- If DdlTipoUso.SelectedValue.ToEntero > 0 AndAlso DdlPSAjuste.SelectedValue.ToEntero > 0 AndAlso TxtMesesUso.Text <> "" Then
- Dim CveMarca As Integer = -1
+ If String.IsNullOrEmpty(TxtEtiqueta.Text.Trim) Then
+ TxtPorcentajeAjuste.Text = ""
+ TxtImporteAjuste.Text = "0.00"
- CveMarca = GlobalDTPS(UsuarioActual.CveEmpresa, DdlPSAjuste.SelectedValue.ToEntero).FiltroPrimeroValor("CveMarca", "").ToEntero
+ Alert("Es necesario llenar el campo 'Etiqueta'", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ If TxtEtiqueta.Text.Trim.Length <> 4 Then
+ TxtPorcentajeAjuste.Text = ""
+ TxtImporteAjuste.Text = "0.00"
+
+ Alert("La etiqueta no es valida", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ If DdlTipoUso.SelectedValue.ToEntero > 0 AndAlso DdlPSAjuste.SelectedValue.ToEntero > 0 AndAlso TxtMesesUso.Text <> "" Then
+ Dim CveMarca As Integer = -1, Marca As String = ""
+
+ Dim rowPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, DdlPSAjuste.SelectedValue.ToEntero).FiltroPrimero("")
+
+ CveMarca = rowPS("CveMarca").ToString().ToEntero
+ Marca = rowPS("Marca").ToString()
Dim DtAcumMeses As DataTable = GlobalDTAcumGarantiasTipoUsoMeses(UsuarioActual.CveEmpresa, CveMarca, DdlTipoUso.SelectedValue.ToEntero, TxtMesesUso.Text.ToEntero)
+
+ If DtAcumMeses IsNot Nothing AndAlso DtAcumMeses.Rows.Count = 0 Then
+ TxtPorcentajeAjuste.Text = ""
+ TxtImporteAjuste.Text = "0.00"
+
+ Alert($"No se encontraron datos de garantias con los siguientes datos: Tipo de Uso :{DdlTipoUso.SelectedItem.Text} Meses :{TxtMesesUso.Text} Marca :{Marca}", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
Dim Dtt As DataTable = Nothing
If DtAcumMeses IsNot Nothing Then
''obtener siempre y cuando la fecha de inicio sea mayor
@@ -3256,6 +3287,8 @@ Partial Class Inventarios_RecepcionUsados
'cuando no está registrada, no da ajuste
TxtImporteAjuste.ToolTip = "El producto no tiene ajuste en ese periodo"
TxtImporteAjuste.Text = "0.00"
+
+ Alert("El producto no tiene ajuste en ese periodo", TipoMensaje.MsgAdvertencia)
End If
End If
@@ -3330,7 +3363,7 @@ Partial Class Inventarios_RecepcionUsados
CalculaMesesUso()
End Sub
Protected Sub BtnCalcularImporteAjuste_Click(sender As Object, e As EventArgs)
- CalculaPorcentajeAjuste()
+ CalculaMesesUso()
End Sub
Private Sub CalculaMesesUso()
diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb
index c360a5a9a..aba42539d 100644
--- a/OC/OC.aspx.vb
+++ b/OC/OC.aspx.vb
@@ -9837,7 +9837,7 @@ Partial Class OC_OC
If CveMovimiento <= 0 OrElse CvePrePoliza <= 0 Then
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
- ObjInventario.RollBack() 'deshace lo insertado
+ 'ObjInventario.RollBack() 'deshace lo insertado
Respuesta = False
Else
diff --git a/Ventas/PVCobranza.aspx b/Ventas/PVCobranza.aspx
index 8f00257b4..31f0620f8 100644
--- a/Ventas/PVCobranza.aspx
+++ b/Ventas/PVCobranza.aspx
@@ -331,10 +331,10 @@
DataKeyNames="CveVenta,TipoDocto,Saldo,AtencionA,CveFormaPago33,SerieFolio,CondicionesPago,PlazoCobranza">
<%----%>
-
-
-
-
+
+
+
+
@@ -401,7 +401,7 @@