Checkbox de devolucion de almacen
This commit is contained in:
@@ -609,6 +609,12 @@
|
||||
<asp:TextBox ID="TxtObservacionesRecepcion" TextMode="MultiLine" Rows="2" runat="server" Width="300px"></asp:TextBox>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="DivRealizarDevolucion" runat="server" visible="false">
|
||||
<label class="col-sm-3">Realizar Devolución:</label>
|
||||
<div class="col-sm-9">
|
||||
<asp:CheckBox ID="ChkRealizarDevolucion" runat="server" Checked="false" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div style="text-align: center;" class="col-sm-12">
|
||||
<asp:UpdatePanel runat="server">
|
||||
|
||||
@@ -1460,6 +1460,9 @@ Partial Class Inventarios_TraspasoAlmacen
|
||||
End Sub
|
||||
Private Sub CargaRecepcion()
|
||||
|
||||
DivRealizarDevolucion.Visible = False
|
||||
ChkRealizarDevolucion.Checked = False
|
||||
|
||||
Dim Dtt As DataTable = Nothing
|
||||
|
||||
FolioBusqueda = If(TxtFolioRecepcion.Text = "", -1, TxtFolioRecepcion.Text.ToEntero)
|
||||
@@ -1506,6 +1509,11 @@ Partial Class Inventarios_TraspasoAlmacen
|
||||
If UsuarioActual.TienePermisoProceso(290) Then
|
||||
BtnCancelarTraspaso.Visible = True
|
||||
End If
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(162) = "1" Then
|
||||
DivRealizarDevolucion.Visible = True
|
||||
ChkRealizarDevolucion.Checked = True
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
@@ -1518,6 +1526,7 @@ Partial Class Inventarios_TraspasoAlmacen
|
||||
|
||||
UpDatosRecepcion.Update()
|
||||
UPDivCodigoSeriePSRecepcion.Update()
|
||||
UPDatosAlmacen.Update()
|
||||
End Sub
|
||||
|
||||
Protected Sub GvDatosRecepcion_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosRecepcion.RowDataBound
|
||||
@@ -1815,6 +1824,225 @@ Partial Class Inventarios_TraspasoAlmacen
|
||||
|
||||
End Sub
|
||||
|
||||
Private Class MCancelacionTraspaso
|
||||
Public Property TieneError As Boolean = False
|
||||
Public Property MsgError As String = ""
|
||||
Public Property CveMovimientoEntrada As Integer = -1
|
||||
Public Property FolioEntrada As Integer = 0
|
||||
Public Property CveMovimientoSalidaTransitorio As Integer = -1
|
||||
Public Property FolioSalidaTransitorio As Integer = 0
|
||||
End Class
|
||||
|
||||
Private Function CancelarTraspaso(ByRef ObjInventario As ClsInventarios, ByRef ObjConta As ClsContabilidad, CveAlmacenDestino As Integer, Fecha As DateTime) As MCancelacionTraspaso
|
||||
Dim Retorno As New MCancelacionTraspaso()
|
||||
Dim ErrorMovInv As Boolean = False
|
||||
Try
|
||||
Dim CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenDestino, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
|
||||
Observaciones:=TxtObservacionesRecepcion.Text.Trim, Recibio:=TxtRecibio.Text, CveAlmacenDestino:=CveAlmacenDestino,
|
||||
CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/C")
|
||||
If CveMovimientoEntrada <= 0 Then
|
||||
Retorno.MsgError = "No se pudo generar el movimiento"
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
Retorno.CveMovimientoEntrada = CveMovimientoEntrada
|
||||
Retorno.FolioEntrada = ObjInventario.Folio
|
||||
|
||||
'AGREGAMOS LA SALIDA
|
||||
Dim CveMovimientoSalidaTransitorio = ObjInventario.AddMovimiento(CveAlmacenTransitorio, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
|
||||
Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=CveAlmacenDestino,
|
||||
CveMovimientoRelacionado:=CveMovimientoEntrada, Modulo:="TA/G12")
|
||||
|
||||
Retorno.CveMovimientoSalidaTransitorio = CveMovimientoSalidaTransitorio
|
||||
|
||||
Dim CvePrePoliza As Integer = -1
|
||||
Dim Concepto As String = TxtObservacionesRecepcion.Text
|
||||
If Concepto = "" Then Concepto = "Cancelación Traspaso"
|
||||
|
||||
If Not ErrorMovInv Then
|
||||
Retorno.FolioSalidaTransitorio = ObjInventario.Folio
|
||||
CvePrePoliza = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
|
||||
If CvePrePoliza <= 0 Then
|
||||
Retorno.MsgError = "No se pudo generar la Poliza para la cancelación"
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
End If
|
||||
|
||||
If CveMovimientoEntrada <= 0 And Not ErrorMovInv Then
|
||||
Retorno.MsgError = "No se pudo generar el movimiento de entrada correctamente"
|
||||
ErrorMovInv = True
|
||||
Else
|
||||
Dim CveMovimientoDetalleSalida As Integer = 0
|
||||
Dim importe As Double = 0
|
||||
|
||||
Dim Dtt As DataTable = Nothing
|
||||
|
||||
FolioBusqueda = TxtFolioRecepcion.Text.ToEntero
|
||||
|
||||
If ObjInventario.GetMovimientosTransitorios(DdlAlmacenRecepcion.SelectedValue.ToEntero, -1, DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero, -1, FolioBusqueda, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
|
||||
Dtt = ObjInventario.DtResultados.FiltraParametros(String.Format("CveTipoAlmacenDestino <> 4"))
|
||||
Else
|
||||
Dtt = Nothing
|
||||
End If
|
||||
|
||||
If Dtt IsNot Nothing Then
|
||||
For Each GvRow As DataRow In Dtt.Rows
|
||||
Dim CvePS As Integer = GvRow("CvePS").ToString().ToEntero
|
||||
'DEBE CONSIDERAR SOLO LAS FILAS QUE TENGA PRODUCTOS, NO EL TOTALIZADOR
|
||||
If CvePS > 0 Then
|
||||
CveMovimientoDetalleSalida = GvRow("CveMovimientoDetalle").ToString.ToEntero
|
||||
Dim Cantidad As Decimal = GvRow("Cantidad").ToString.ToDecimal
|
||||
Dim PrecioUnitario As Decimal = GvRow("PU").ToString.ToDecimal
|
||||
If CveMovimientoDetalleSalida <= 0 Then
|
||||
ErrorMovInv = True
|
||||
Retorno.MsgError = "Ocurrió un error al guardar los movimientos de salida"
|
||||
Exit For
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, GvRow("CveUM").ToString().ToEntero, CvePS, PrecioUnitario, -1, -1, Serie:=GvRow("Serie").ToString, Lote:=GvRow("Lote").ToString(), FechaCaducidad:=GvRow("FechaCaducidad").ToString().ToDate, CveMovimientoDetalleEntrada:=CveMovimientoDetalleSalida) Then
|
||||
ErrorMovInv = True
|
||||
Retorno.MsgError = "Ocurrió un error al guardar los movimientos de entrada"
|
||||
Exit For
|
||||
End If
|
||||
'MOV, Alm, Transito
|
||||
If GvRow("CveMovimientoDetalleTransitorio").ToString.ToEntero > 0 Then
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaTransitorio, Cantidad, GvRow("CveUM").ToString.ToEntero, CvePS, PrecioUnitario, CveSeccionAlmacen:=-3, Serie:=GvRow("Serie").ToString, Lote:=GvRow("Lote").ToString, FechaCaducidad:=GvRow("FechaCaducidad").ToString().ToDate, CveMovimientoDetalleEntrada:=GvRow("CveMovimientoDetalleTransitorio").ToString.ToEntero) Then
|
||||
ErrorMovInv = True
|
||||
Retorno.MsgError = "Ocurrió un error al guardar los movimientos de salida"
|
||||
Exit For
|
||||
End If
|
||||
Else
|
||||
CveMovimientoSalidaTransitorio = 0
|
||||
End If
|
||||
importe += Cantidad * PrecioUnitario
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
Retorno.MsgError = "Ocurrió un error al guardar los movimientos de salida"
|
||||
End If
|
||||
|
||||
|
||||
'VIRTUAL ENTRADA
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
|
||||
|
||||
Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero).FiltroPrimeroValor("CveAlmacenVirtual", "").ToEntero()
|
||||
Dim CveAlmacenVirtualSalida As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacenTransitorio).FiltroPrimeroValor("CveAlmacenVirtual", "").ToEntero()
|
||||
|
||||
'SI EL ALMACEN ORIGEN ES DE APOPYO LOGISTICO EL ALMACEN VIRTUAL DEBE SER DE APOYO LOGISTICO
|
||||
'Dim CveAlmacenVirtual As Integer = -1
|
||||
'If CveTipoAlmacenOrigen = 27 Then
|
||||
' CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen =25 AND CveSubProyecto={CveSubProyecto}").ToEntero()
|
||||
'Else
|
||||
' CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen =24 AND CveSubProyecto={CveSubProyecto}").ToEntero()
|
||||
'End If
|
||||
|
||||
Dim CveMovimientoVirtualEntrada As Integer = -1
|
||||
Dim CveMovimientoVirtualSalida As Integer = -1
|
||||
|
||||
'VERIFICA SI TIENE ALMACEN VIRTUAL ASIGNADA
|
||||
If CveAlmacenVirtual > 0 And CveAlmacenVirtualSalida > 0 Then
|
||||
|
||||
Dim dtvirtual As DataTable = Nothing
|
||||
Dim importePoliza As Decimal = 0
|
||||
|
||||
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoSalida) Then
|
||||
dtvirtual = ObjInventario.DtResultados
|
||||
If dtvirtual.Rows.Count > 0 Then
|
||||
|
||||
CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveMovimientoRelacionado:=CveMovimientoEntrada, Modulo:="TA/C2")
|
||||
|
||||
CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtualSalida, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalidaTransitorio, Modulo:="TA/C3")
|
||||
|
||||
Dim FolioVirtualEntrada = ObjInventario.Folio
|
||||
|
||||
For Each RowVirtual As DataRow In dtvirtual.Rows
|
||||
Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
|
||||
Dim CantidadUsado As Decimal = RowVirtual("Cantidad").ToString().ToDecimal()
|
||||
Dim PU As Decimal = RowVirtual("PUOriginal").ToString().ToDecimal()
|
||||
Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
|
||||
Dim CostoIndirecto As Decimal = RowVirtual("CostoIndirecto").ToString().ToDecimal()
|
||||
|
||||
|
||||
importePoliza = importePoliza + (CantidadUsado * PU)
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
|
||||
ErrorMovInv = True
|
||||
Exit For
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualSalida, CantidadUsado, CveUM, CvePS, PU, -1, CostoIndirecto:=CostoIndirecto, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
|
||||
ErrorMovInv = True
|
||||
Exit For
|
||||
End If
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
'Else
|
||||
' TextoError = "No se pudo registrar el movimiento virtual"
|
||||
' ErrorMovInv = True
|
||||
End If
|
||||
|
||||
|
||||
If Not ErrorMovInv AndAlso (CveMovimientoSalida > 0 And CveMovimientoVirtualEntrada > 0) Then
|
||||
|
||||
Dim CvePrePolizaMovVirtual As Integer = ObjConta.AddPrePolizas("TA/C2|TA/C3", 53, importePoliza, importePoliza, 1, TxtFecha.Text.ToDate, "TA/C2|TA/C3", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
If CvePrePolizaMovVirtual > 0 Then
|
||||
If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePolizaMovVirtual, True, importePoliza, importePoliza, 68, TxtObservacionesRecepcion.Text, TxtObservacionesRecepcion.Text, -1, -1, CveMovimientoAlmacen:=CveMovimientoVirtualSalida, Contabilizable:=False) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaMovVirtual, False, importePoliza, importePoliza, 68, TxtObservacionesRecepcion.Text, TxtObservacionesRecepcion.Text, -1, -1, CveMovimientoAlmacen:=CveMovimientoVirtualEntrada, Contabilizable:=False) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
End If
|
||||
'Else
|
||||
' TextoError = "La Sucursal no tiene creado un almacen virtual"
|
||||
' ErrorMovInv = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If Not ErrorMovInv Then
|
||||
Dim ImporteDecimal As Decimal = importe.ToDecimal.RoundAD
|
||||
Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero)).ToEntero
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1,
|
||||
CveMovimientoAlmacen:=CveMovimientoEntrada, ImporteMX:=ImporteDecimal, Contabilizable:=False) Then
|
||||
ErrorMovInv = True
|
||||
Retorno.MsgError = "Ocurrió un error al cancelar el traspaso"
|
||||
End If
|
||||
|
||||
If CveMovimientoSalidaTransitorio > 0 Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1,
|
||||
CveMovimientoAlmacen:=CveMovimientoSalidaTransitorio, ImporteMX:=ImporteDecimal, Contabilizable:=False) Then
|
||||
ErrorMovInv = True
|
||||
Retorno.MsgError = "Ocurrió un error al cancelar el traspaso"
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
ErrorMovInv = True
|
||||
Retorno.MsgError = "Ocurrió un error al cancelar el traspaso"
|
||||
OnError("Ocurrió un erro al cancelar el traspaso", ex)
|
||||
End Try
|
||||
|
||||
Retorno.TieneError = ErrorMovInv
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs)
|
||||
If GvDatosRecepcion.Rows.Count > 0 Then
|
||||
'Valida Movimientos
|
||||
@@ -2039,6 +2267,13 @@ Partial Class Inventarios_TraspasoAlmacen
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim CancelacionTraspaso As MCancelacionTraspaso = Nothing
|
||||
If UsuarioActual.Empresa.Funcionalidad(162) = "1" AndAlso ChkRealizarDevolucion.Checked AndAlso Not ErrorMovInv Then
|
||||
CancelacionTraspaso = CancelarTraspaso(ObjInventario, ObjConta, GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, TxtFechaRecepcion.Text.ToDateTime())
|
||||
If CancelacionTraspaso IsNot Nothing Then
|
||||
ErrorMovInv = CancelacionTraspaso.TieneError
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If Not ErrorMovInv Then
|
||||
@@ -2053,6 +2288,9 @@ Partial Class Inventarios_TraspasoAlmacen
|
||||
Mensaje.AppendFormat("<br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) 'onclick='ImprimirTraslado()'
|
||||
If CveMovimientoVirtualEntrada > 0 Then Mensaje.AppendFormat("<br/><br/><br/>Folio Virtual <b> <a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a> </b> <br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoVirtualEntrada)), CveMovimientoVirtualEntrada, FolioVirtualEntrada) 'onclick='ImprimirTraslado()'
|
||||
|
||||
If CancelacionTraspaso IsNot Nothing Then
|
||||
If CancelacionTraspaso.CveMovimientoEntrada > 0 Then Mensaje.AppendFormat("<br/><br/><br/>Folio Devolución <b> <a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a> </b> <br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CancelacionTraspaso.CveMovimientoEntrada)), CancelacionTraspaso.CveMovimientoEntrada, CancelacionTraspaso.FolioEntrada) 'onclick='ImprimirTraslado()'
|
||||
End If
|
||||
|
||||
Alert(Mensaje.ToString, TipoMensaje.MsgInformacion)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user