From 37627d7f09460279d4aa08be8856d50ea6de17ca Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 19 Feb 2020 20:04:35 -0700 Subject: [PATCH] Correccion en la cancelacion de un traspaso --- Inventarios/TraspasoAlmacen.aspx.vb | 188 ++++++++++++++++------------ 1 file changed, 105 insertions(+), 83 deletions(-) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 3be76f987..1f3700713 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -787,7 +787,7 @@ Partial Class Inventarios_TraspasoAlmacen CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, GastoIndirecto:=If(ChkTransitorio.Checked And TxtGastoIndirecto.Text.ToDouble > 0, TxtGastoIndirecto.Text, "-1").ToDouble, CveChofer:=If(ChkTransitorio.Checked, DdlChofer.SelectedValue.ToEntero, -1), Placa:=If(ChkTransitorio.Checked, TxtPlaca.Text.Trim, "-1"), FechaEntrega:=If(ChkTransitorio.Checked, TxtFechaEntrega.Text.Trim.ToDateTime.ToString("dd/MM/yyyy"), "-1"), EspecifUnidad:=If(ChkTransitorio.Checked, TxtEspecifUnidad.Text.Trim, "-1"), ResponsableCarga:=If(ChkTransitorio.Checked, TxtResponsableCarga.Text.Trim, "-1"), ResponsableRecibio:=If(ChkTransitorio.Checked, TxtResponsableRecibio.Text.Trim, "-1"), Identificacion:=If(ChkTransitorio.Checked, TxtIdentificacion.Text.Trim, "-1"), Domicilio:=If(ChkTransitorio.Checked, TxtDomicilio.Text.Trim, "-1"), - Telefono:=If(ChkTransitorio.Checked, TxtTelefono.Text.Trim, "-1"), Ciudad:=If(ChkTransitorio.Checked, TxtCiudad.Text.Trim, "-1"), Licencia:=If(ChkTransitorio.Checked, TxtLicencia.Text.Trim, "-1"), Modulo:="TA/G") + Telefono:=If(ChkTransitorio.Checked, TxtTelefono.Text.Trim, "-1"), Ciudad:=If(ChkTransitorio.Checked, TxtCiudad.Text.Trim, "-1"), Licencia:=If(ChkTransitorio.Checked, TxtLicencia.Text.Trim, "-1"), Modulo:="TA/G2") FolioSalida = ObjInventario.Folio Folio = ObjInventario.Folio If CveMovimientoSalida <= 0 Then @@ -852,7 +852,7 @@ Partial Class Inventarios_TraspasoAlmacen AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero) CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"), - CveAlmacenDestino:=If(ChkTransitorio.Checked, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G") + CveAlmacenDestino:=If(ChkTransitorio.Checked, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G3") FolioEntrada = ObjInventario.Folio If CveMovimientoEntrada <= 0 Then TextoError = "Ocurrió un error al generar el movimiento de entrada" @@ -1039,7 +1039,7 @@ Partial Class Inventarios_TraspasoAlmacen 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, CveConceptoInventario, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, ""), - GastoIndirecto:=If(ChkTransitorio.Checked And TxtGastoIndirecto.Text.ToDouble > 0, TxtGastoIndirecto.Text, "-1").ToDouble, Modulo:="TA/G") + GastoIndirecto:=If(ChkTransitorio.Checked And TxtGastoIndirecto.Text.ToDouble > 0, TxtGastoIndirecto.Text, "-1").ToDouble, Modulo:="TA/G4") Dim FolioMov As Integer = ObjInventario.Folio If CveMovimiento <= 0 Then @@ -1508,96 +1508,118 @@ Partial Class Inventarios_TraspasoAlmacen If Not GvDatosRecepcion.Rows.Count > 0 Then Alert("No hay movimientos para el traspaso", TipoMensaje.MsgAdvertencia) Exit Sub - End If + End If + + Dim CveMovimientoEntrada As Integer = 0 + Dim Folio As Integer = 0 + Dim ErrorMovInv As Boolean = False + Dim TextoError As String = "" + Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate Dim ObjInventario As New ClsInventarios Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) ObjInventario.IniciaTransacSQL() - Dim CveMovimientoEntrada As Integer = 0 - Dim Folio = 0 - Dim ErrorMovInv As Boolean = False - Dim TextoError = "" - Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate - - CveMovimientoEntrada = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, - Observaciones:=TxtObservacionesRecepcion.Text.Trim, Recibio:=TxtRecibio.Text, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, - CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G") - - Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, TxtObservacionesRecepcion.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - If CvePrePoliza <= 0 Then - TextoError = "No se pudo generar la Poliza para la cancelacion" - ErrorMovInv = True - End If - - Folio = ObjInventario.Folio - - If CveMovimientoEntrada <= 0 And Not ErrorMovInv Then - TextoError = "No se pudo generar el movimiento de entrada correctamente" - ErrorMovInv = True - Else - Dim CveMovimientoDetalleSalida As Integer = 0 - Dim importe As Double = 0 - If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then - For Each Dr As DataRow In ObjInventario.DtResultados.Rows - CveMovimientoDetalleSalida = Dr("CveMovimientoDetalle").ToString.ToEntero - Dim Cantidad As Double = Dr("Cantidad").ToString.ToDouble - Dim PrecioUnitario As Double = Dr("PU").ToString.ToDouble - If CveMovimientoDetalleSalida <= 0 Then - ErrorMovInv = True - TextoError = "Ocurrió un error al guardar los movimientos de salida" - Exit For - End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PrecioUnitario, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveMovimientoDetalleEntrada:=CveMovimientoDetalleSalida) Then - ErrorMovInv = True - TextoError = "Ocurrió un error al guardar los movimientos de entrada" - Exit For - End If - importe += Cantidad * PrecioUnitario - Next - - End If - If Not ErrorMovInv Then - Dim ImporteDecimal As Decimal = importe.ToDecimal - Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero)).ToEntero + Try + CveMovimientoEntrada = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, + Observaciones:=TxtObservacionesRecepcion.Text.Trim, Recibio:=TxtRecibio.Text, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, + CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/C") + If CveMovimientoEntrada <= 0 Then + TextoError = "No se pudo generar el movimiento" + ErrorMovInv = True + End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteDecimal, TxtObservaciones.Text, 289, TxtObservaciones.Text, Fecha, IdCtaContable, -1, - CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=ImporteDecimal) Then + Dim CvePrePoliza As Integer = -1 + If Not ErrorMovInv Then + Folio = ObjInventario.Folio + CvePrePoliza = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, TxtObservacionesRecepcion.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + If CvePrePoliza <= 0 Then + TextoError = "No se pudo generar la Poliza para la cancelación" ErrorMovInv = True End If + End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, - CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=ImporteDecimal) Then + If CveMovimientoEntrada <= 0 And Not ErrorMovInv Then + TextoError = "No se pudo generar el movimiento de entrada correctamente" + ErrorMovInv = True + Else + Dim CveMovimientoDetalleSalida As Integer = 0 + Dim importe As Double = 0 + If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then + For Each Dr As DataRow In ObjInventario.DtResultados.Rows + CveMovimientoDetalleSalida = Dr("CveMovimientoDetalle").ToString.ToEntero + Dim Cantidad As Double = Dr("Cantidad").ToString.ToDouble + Dim PrecioUnitario As Double = Dr("PU").ToString.ToDouble + If CveMovimientoDetalleSalida <= 0 Then + ErrorMovInv = True + TextoError = "Ocurrió un error al guardar los movimientos de salida" + Exit For + End If + + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PrecioUnitario, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveMovimientoDetalleEntrada:=CveMovimientoDetalleSalida) Then + ErrorMovInv = True + TextoError = "Ocurrió un error al guardar los movimientos de entrada" + Exit For + End If + importe += Cantidad * PrecioUnitario + Next + Else ErrorMovInv = True - End If - End If - - End If - - If Not ErrorMovInv Then - ObjInventario.Commit() - - TxtRecibio.Text = "" - TxtFechaRecepcion.Text = Now.ToShortDateString - TxtObservacionesRecepcion.Text = "" - - Dim Mensaje As StringBuilder = New StringBuilder - Mensaje.AppendFormat("Se realizo correctamente la cancelación.
Folio de Entrada: {0}", Folio, CveMovimientoEntrada) - Mensaje.AppendFormat("
Imprimir Reporte", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) 'onclick='ImprimirTraslado()' - - Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) - - DivCodigoSeriePSRecepcion.Visible = False - - GvDatosRecepcion.DataBind() - UpDatosRecepcion.Update() - UPDatosAlmacen.Update() - Else - ObjInventario.RollBack() - ObjConta.RollBack() - Alert(TextoError, TipoMensaje.MsgError) - End If + TextoError = "Ocurrió un error al obtener los movimientos de salida" + End If + + If Not ErrorMovInv Then + Dim ImporteDecimal As Decimal = importe.ToDecimal + 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, 289, TxtObservaciones.Text, Fecha, IdCtaContable, -1, + CveMovimientoAlmacen:=CveMovimientoEntrada, ImporteMX:=ImporteDecimal) Then + ErrorMovInv = True + TextoError = "Ocurrió un erro al cancelar el traspaso" + End If + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, + CveMovimientoAlmacen:=CveMovimientoEntrada, ImporteMX:=ImporteDecimal) Then + ErrorMovInv = True + TextoError = "Ocurrió un erro al cancelar el traspaso" + End If + End If + + End If + + Catch ex As Exception + ErrorMovInv = True + TextoError = "Ocurrió un erro al cancelar el traspaso" + OnError(TextoError, ex) + End Try + + If Not ErrorMovInv Then + ObjInventario.Commit() + + TxtRecibio.Text = "" + TxtFechaRecepcion.Text = Now.ToShortDateString + TxtObservacionesRecepcion.Text = "" + + Dim Mensaje As StringBuilder = New StringBuilder + Mensaje.AppendFormat("Se realizo correctamente la cancelación.
Folio de Entrada: {0}", Folio, CveMovimientoEntrada) + Mensaje.AppendFormat("
Imprimir Reporte", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) 'onclick='ImprimirTraslado()' + + Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) + + DivCodigoSeriePSRecepcion.Visible = False + + GvDatosRecepcion.DataBind() + UpDatosRecepcion.Update() + UPDatosAlmacen.Update() + Else + ObjInventario.RollBack() + + Alert(TextoError, TipoMensaje.MsgError) + End If + ObjConta.Dispose() ObjInventario.Dispose() + CargaRecepcion() End Sub @@ -1648,7 +1670,7 @@ Partial Class Inventarios_TraspasoAlmacen 'AGREGAMOS LA ENTRADA CveMovimientoSalida = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, - Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G") + Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G1") Folio = ObjInventario.Folio If CveMovimientoSalida <= 0 Then