This commit is contained in:
2024-12-27 14:07:18 -07:00
8 changed files with 980 additions and 261 deletions

View File

@@ -1417,7 +1417,7 @@
<div class="Widthall" style="overflow-x: auto;">
<asp:GridView ID="GvInvMov" runat="server" AutoGenerateColumns="false" DataKeyNames="Origen" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%"
<asp:GridView ID="GvInvMov" runat="server" AutoGenerateColumns="false" DataKeyNames="Cantidad,Origen,CveAlmacen,CveUM,CvePS,CodigoPS,PU" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%"
HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover" GridLines="None" Visible="false">
<Columns>
<asp:TemplateField HeaderText="Cantidad" ItemStyle-Width="60px" ItemStyle-HorizontalAlign="Center">
@@ -5170,10 +5170,15 @@
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12" style="text-align:right">
<asp:CheckBox runat="server" ID="ChkEsDevolucionDevInv" Text="Es Temporal" Visible="false" />
</div>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:GridView ID="GvSolDev" runat="server" AutoGenerateColumns="false" GridLines="none" BorderWidth="0" DataKeyNames="Cantidad,CveCompraDetalle,CvePS" CssClass="table GvPS table-striped table-hover table-advance Widthall ScrollAD mysmallbtn">
<asp:GridView ID="GvSolDev" runat="server" AutoGenerateColumns="false" GridLines="none" BorderWidth="0"
DataKeyNames="Cantidad,CveCompraDetalle,CvePS,PU,CveUM,CodigoPS"
CssClass="table GvPS table-striped table-hover table-advance Widthall ScrollAD mysmallbtn">
<Columns>
<%--<%#Eval("Cantidad") %>--%>
<asp:TemplateField ItemStyle-Width="55px" HeaderText="Cant">

View File

@@ -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 = "<i class='fa fa-pencil'></i> 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)