From 52c498d33175f83304f121d291b71e52dee9a858 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 23 Sep 2022 16:23:00 -0700 Subject: [PATCH] considear la serie --- Inventarios/TraspasoAlmacen.aspx.vb | 255 +++------------------------- 1 file changed, 23 insertions(+), 232 deletions(-) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 8db91b075..0506df4ff 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -593,9 +593,6 @@ Partial Class Inventarios_TraspasoAlmacen End If End If - 'codigo provisional. - Dim CveSubP As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenOrigen.SelectedValue.ToEntero).FiltroPrimeroValor("CveSubProyecto", "").ToEntero - If DrPS("AplicaCaducidad").ToString = "True" Then If Not ChkSugiereFechaCaducidad.Checked AndAlso (TxtnFechaCaducidad.Text = "" OrElse TxtnLote.Text = "") Then Alert("Falta Especificar lote/Fecha del producto", TipoMensaje.MsgAdvertencia) @@ -790,10 +787,10 @@ Partial Class Inventarios_TraspasoAlmacen Private Sub LimpiaAgregar() 'DdlClasificacion.SelectedValue = "-1" 'DdlClasificacion_SelectedIndexChanged(DdlClasificacion, EventArgs.Empty) - txtCantidad.Text = "" + txtCantidad.Text = "1" TxtnObservaciones.Text = "" TxtnSerie.Text = "" - TxtnSerie.Visible = False + 'TxtnSerie.Visible = False TxtnLote.Text = "" TxtnFechaCaducidad.Text = "" @@ -951,14 +948,33 @@ Partial Class Inventarios_TraspasoAlmacen If ObjInventario.GetExistenciasProducto(gvr.DataKey("CvePS").ToEntero, gvr.DataKey("CveUM").ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Serie, Lote:=Lote, Caducidad:=FechaCaducidad) Then 'si hay existencia en almacen costeado, lo tengo que sacar + ' si tiene serie el producto, debe de Existencia = ObjInventario.DtResultados.FiltroPrimeroValor("ExistenciaFinal", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue)).ToDecimal + Dim ExistenciaSinPendiente As Decimal = ObjInventario.DtResultados.FiltroPrimeroValor("Existencia", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue)).ToDecimal + Dim PendienteporSurtir As Decimal = ObjInventario.DtResultados.FiltroPrimeroValor("PendientePorSurtir", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue)).ToDecimal + + ' si la existencia es negativa y tiene serie ó lote, quiere decir que la consulta es específica, y si hay pendientes por surtir. puede generar negativos + ' para asegurarnos que lo pendiente por surtir se pueda surtir con otras series, consultamos de nuevo, pero a nivel producto, para checar existencia + + If ExistenciaSinPendiente > 0 AndAlso Existencia < 0 AndAlso PendienteporSurtir > 0 Then + If ObjInventario.GetExistenciasProducto(gvr.DataKey("CvePS").ToEntero, gvr.DataKey("CveUM").ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd 23:59")) Then + 'si hay existencia en almacen costeado, lo tengo que sacar + Existencia = ObjInventario.DtResultados.FiltroPrimeroValor("ExistenciaFinal", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue)).ToDecimal + 'si la existencia del producto en general, supera a lo pendiente, entonces la serie si se puede sacar. + If Existencia > PendienteporSurtir Then + Existencia = ExistenciaSinPendiente + Else + Existencia = ExistenciaSinPendiente - PendienteporSurtir + End If + + End If + End If + End If Existencia -= gvr.FCTextBox("TxtCantidad2").Text.ToEntero() If Existencia < 0 Then ErrorExistencia = True - - 'gvr.FCTextBox("TxtCantidad2").Text = (Existencia + gvr.FCTextBox("TxtCantidad2").Text.ToEntero).ToString TextoExistencia.AppendFormat("-#{0} {1} {2}   Existencia: {3}
", gvr.DataKey("No"), gvr.DataKey("PS"), If(gvr.DataKey("Serie").ToString().Trim().Length > 0, $"   Serie: {gvr.DataKey("Serie")}", ""), (Existencia + gvr.FCTextBox("TxtCantidad2").Text.ToEntero)) End If Next @@ -1224,8 +1240,6 @@ Partial Class Inventarios_TraspasoAlmacen RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") End If - ' If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose() - 'SI OCURRIO UN ERROR EN LA EXISTENCIA RECARGAMOS EL GRID PARA COLOREAR LOS DETALLES CON ERROR If ErrorExistencia Then CargaGvDatos() @@ -1234,98 +1248,6 @@ Partial Class Inventarios_TraspasoAlmacen ObjInventario.Dispose() End Sub - 'Function ConsumoInterno(TipoAlmacenOrigen As Integer, TipoAlmacenDestino As Integer) As Boolean - ' Dim Retorno As Boolean = False - ' Dim ErrorMovInv As Boolean = False - ' Dim TextoError As String = "" - ' Dim Fecha As Date = TxtFecha.Text.ToDate - - ' Dim ObjInventario As New ClsInventarios - ' Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) - ' Dim CveMovimiento As Integer = 0 - ' Dim TipoMovto = If(TipoAlmacenOrigen = 14, -1, 1) - ' Dim CveConceptoInventario As Integer = 8 - - - ' Dim CveAlmacenCI = If(TipoAlmacenOrigen = 14, DdlAlmacenOrigen.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero) - ' Dim DtCostos As DataTable = Nothing - ' Dim ValorInventario As Decimal = 0 - - ' '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/G4") - ' Dim FolioMov As Integer = ObjInventario.Folio - - ' If CveMovimiento <= 0 Then - ' TextoError = "No se pudo generar el movimiento de salida correctamente" - ' ErrorMovInv = True - ' Else - - ' For Each Dr As DataRow In DtMovimientos.Rows - ' If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Dr("CveAF").ToString.ToEntero, -1, Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then - ' ErrorMovInv = True - ' TextoError = "Ocurrió un error al guardar los movimientos de salida" - ' Exit For - ' End If - ' Next - ' End If - - ' If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then - ' DtCostos = ObjInventario.DtResultados - ' Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"}) - ' Dim IdCtaContable As Integer = 0 - ' Dim CveCuenta As Integer = 0 - - ' If tmpCostos.Rows.Count > 0 Then - ' Dim Concepto As String = $"Consumo Interno: {ObjInventario.Folio} - {TxtObservaciones.Text}" - ' Dim CvePrePoliza = ObjConta.AddPrePolizas("Inv/ConsumoInterno", 53, DtCostos.SUM("Total") * TipoMovto, DtCostos.SUM("Total") * TipoMovto, 1, TxtFecha.Text.ToDate, $"Consumo Interno: {TxtObservaciones.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - ' For Each RowInv As DataRow In tmpCostos.Rows - ' ValorInventario = DtCostos.SUM("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").ToString.ToDecimal - ' IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero - ' CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorInventario * TipoMovto, Concepto, 181, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ValorInventario * TipoMovto, CveCuenta:=CveCuenta) Then - ' ErrorMovInv = True - ' Exit For - ' End If - ' Next - - ' IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={CveAlmacenCI}").ToEntero - - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DtCostos.SUM("Total").ToDecimal * TipoMovto, Concepto, 68, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=DtCostos.SUM("Total").ToDecimal * TipoMovto) Then - ' ErrorMovInv = True - ' End If - - ' End If - ' End If - - ' If Not ErrorMovInv Then - - ' ObjInventario.Commit() - ' Dim Mensaje As StringBuilder = New StringBuilder - - ' Mensaje.Append("Se realizó el consumo interno.") - - ' Mensaje.AppendFormat("
Folio: {0}", FolioMov, CveMovimiento) - - ' Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) - ' Mensaje.Clear() - - ' LimpiaMovimiento() - - ' Else - ' ObjInventario.RollBack() - ' Alert(TextoError, TipoMensaje.MsgError) - ' RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") - ' End If - - - - ' Return Retorno - - 'End Function - #End Region @@ -1463,42 +1385,6 @@ Partial Class Inventarios_TraspasoAlmacen TdFechaCaducidad.Visible = GvDatos.Columns(7).Visible : ThFechaCaducidad.Visible = GvDatos.Columns(7).Visible GvDatos.Columns(8).Visible = DtTemp.MAX("CveSeccionAlmacen").ToString.ToEntero > 0 - ''TxtnSerie.Visible = False - ''ThSerie.Visible = False - ''TdSerie.Visible = False - 'GvDatos.Columns(5).Visible = False - - 'TxtnLote.Visible = False - 'ThLote.Visible = False - 'TdLote.Visible = False - 'GvDatos.Columns(6).Visible = False - - 'TxtnFechaCaducidad.Visible = False - 'ThFechaCaducidad.Visible = False - 'TdFechaCaducidad.Visible = False - 'GvDatos.Columns(7).Visible = False - - - 'If DtTemp.MAX("Serie").ToString <> "" Then - ' TxtnSerie.Visible = True - ' ThSerie.Visible = True - ' TdSerie.Visible = True - ' GvDatos.Columns(5).Visible = True - 'End If - 'If DtTemp.MAX("Lote").ToString <> "" Then - ' TxtnLote.Visible = True - ' ThLote.Visible = True - ' TdLote.Visible = True - ' GvDatos.Columns(6).Visible = True - 'End If - 'If DtTemp.MAX("FechaCaducidad").ToString.ToDate > MinFecha Then - ' TxtnFechaCaducidad.Visible = True - ' ThFechaCaducidad.Visible = True - ' TdFechaCaducidad.Visible = True - ' GvDatos.Columns(7).Visible = True - - 'End If - End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound @@ -1514,47 +1400,6 @@ Partial Class Inventarios_TraspasoAlmacen e.Row.FCTextBox("TxtCantidad2").Attributes.Add("onblur", String.Format("ValidaCantidad(this,{0})", e.Row.DBCampo("Cantidad"))) End If - 'If If(e.Row.DBCampo("Serie").ToString = "", "-1", e.Row.DBCampo("Serie").ToString) <> "-1" Then - ' TxtnSerie.Visible = True - ' ThSerie.Visible = True - ' TdSerie.Visible = True - ' GvDatos.Columns(4).Visible = True - ' e.Row.Cells(4).Text = e.Row.DBCampo("Serie").ToString - 'Else - ' e.Row.Cells(4).Text = "" - 'End If - - 'If If(e.Row.DBCampo("Lote").ToString = "", "-1", e.Row.DBCampo("Lote").ToString) <> "-1" Then - ' TxtnLote.Visible = True - ' ThLote.Visible = True - ' TdLote.Visible = True - ' GvDatos.Columns(5).Visible = True - ' e.Row.Cells(5).Text = e.Row.DBCampo("Lote").ToString - - ' TxtnBatch.Visible = True - ' ThBatch.Visible = True - ' TdBatch.Visible = True - ' GvDatos.Columns(6).Visible = True - - 'Else - ' e.Row.Cells(5).Text = "" - ' e.Row.Cells(6).Text = "" - 'End If - - 'If e.Row.RowState = DataControlRowState.Edit Then - ' e.Row.FCDropDownList("DdlUnidad").DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) - ' e.Row.FCDropDownList("DdlUnidad").DataBind() - ' e.Row.FCDropDownList("DdlUnidad").SelectedValue = e.Row.DBCampo("CveUM") - - ' e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) - ' e.Row.FCDropDownList("DdlClasificacion").DataBind() - ' e.Row.FCDropDownList("DdlClasificacion").SelectedValue = e.Row.DBCampo("CveClasificacion") - - ' e.Row.FCDropDownList("DdlProducto").DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa) - ' e.Row.FCDropDownList("DdlProducto").DataBind() - ' e.Row.FCDropDownList("DdlProducto").SelectedValue = e.Row.DBCampo("CvePS") - 'End If - End If End Sub Protected Sub GvPS_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting @@ -1566,60 +1411,6 @@ Partial Class Inventarios_TraspasoAlmacen CargaGvDatos() End Sub - 'Protected Sub GvM_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvDatos.RowEditing - ' GvDatos.EditIndex = e.NewEditIndex - - ' CargaGvDatos() - 'End Sub - 'Protected Sub GvM_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvDatos.RowUpdating - ' Dim dr = GvDatos.Rows(e.RowIndex) - - ' Dim Cantidad = dr.FCTextBox("TxtCantidad").Text.ToDouble - ' Dim CveUM = dr.FCDropDownList("DdlUnidad").SelectedValue.ToEntero - ' Dim CveClasificacion = dr.FCDropDownList("DdlClasificacion").SelectedValue.ToEntero - ' Dim CvePS = dr.FCDropDownList("DdlProducto").SelectedValue.ToEntero - ' Dim No = dr.DataKey("No").ToEntero - ' Dim Serie As String = dr.FCTextBox("TxtSerie").Text - - ' 'VALIDA EXISTENCIA - ' Dim Valido = True - ' Dim Inv As New ClsInventarios - ' Dim Existencia As Double = Inv.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, -1, TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), If(Serie = "", "-1", Serie)) - ' Inv.Dispose() - - ' If Existencia - txtCantidad.Text.ToDouble < 0 Then - ' If Existencia <= 0 Then - ' Alert("No hay existencia del producto", TipoMensaje.MsgError) - ' Else - ' Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgError) - ' End If - ' Valido = False - ' End If - - ' If Valido Then - - ' Dim Drs As DataRow() = DtMovimientos.Select(String.Format("No = {0}", No)) - ' If Drs.Count = 1 Then - - ' Drs(0)("Cantidad") = Cantidad - ' Drs(0)("CveUM") = CveUM - ' Drs(0)("CveClasificacion") = CveClasificacion - ' Drs(0)("CvePS") = CvePS - ' Drs(0)("EstatusExistencia") = "1" - ' End If - - - ' DtMovimientos.AcceptChanges() - ' GvDatos.EditIndex = -1 - ' End If - ' CargaGvDatos() - - 'End Sub - 'Protected Sub GvM_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvDatos.RowCancelingEdit - ' GvDatos.EditIndex = -1 - ' CargaGvDatos() - 'End Sub - Protected Sub ChkSugiereFechaCaducidad_CheckedChanged(sender As Object, e As EventArgs) TxtnFechaCaducidad.Visible = Not ChkSugiereFechaCaducidad.Checked