From 57cf4cfa8b719b927bffd62c46abb5894f810a74 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Wed, 6 May 2020 08:48:26 -0700 Subject: [PATCH] Apoyo logistico --- Compras/Compras.aspx | 2 +- Compras/Compras.aspx.vb | 26 +++++++- Inventarios/RecepcionAlmacen.aspx | 2 +- Inventarios/RecepcionAlmacen.aspx.vb | 97 ++++++++++++++++++++++++++-- Inventarios/TraspasoAlmacen.aspx.vb | 57 ++++++++++------ 5 files changed, 157 insertions(+), 27 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 6256ef9c2..c244877bc 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -467,7 +467,7 @@ - + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index f2c5ad2e7..b8598bf5b 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6390,6 +6390,7 @@ Partial Class Compras_Compras Case 6 'Compra Dim AgregaMercanciaInventario As Boolean = UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119, 140, 141) AndAlso UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" + Dim RegistraConcepto225 As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso DdlTipoComprobante.SelectedValue.Contiene("DEV") AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" If RBLPago.SelectedValue.ToEntero = 4 Then @@ -6620,6 +6621,13 @@ Partial Class Compras_Compras 'falta el registro de la NC cuando es Dim RegistroCuentaPuente As Boolean = False 'NC CON PRODUCTOS - CUENTA PUENTE + + + If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.ToEntero = 9 Then + RegistraConcepto225 = True + End If + + If RegistraConcepto225 Then importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal @@ -6922,6 +6930,12 @@ Partial Class Compras_Compras CveCuenta = CveCuentaProveedorAcreedores Case 18 'NC - Notas de Credito + + + + + + importeMovimiento = importeNC importeMN = importeMovimiento * tipoCambioActual * Multiplicador If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" @@ -11509,7 +11523,7 @@ Partial Class Compras_Compras e.Row.FCCheckBox("cbInv").Enabled = False End If - e.Row.FCDropDownList("ddlEAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1,2,7,14,19)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) + e.Row.FCDropDownList("ddlEAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(If(DdlTipoCompra.SelectedValue.ToEntero = 9, "CveTipoAlmacen IN (21)", "CveTipoAlmacen IN (1,2,7,14,19)")) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("ddlEAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1")) e.Row.FCDropDownList("ddlEAlmacen").DataBind() 'e.Row.FCDropDownList("ddlEAlmacen").SelectedValue = If(e.Row.DBCampo("CveAlmacen").ToEntero <= 0, "-1", e.Row.DBCampo("CveAlmacen")) @@ -11598,6 +11612,12 @@ Partial Class Compras_Compras If UsuarioActual.CveUsuario.Contiene(1397, 1517, 1565) Then ' iliana, horacio, marco, RMF. 2017.03.13 StrAlmacenes = "CveTipoAlmacen IN (1,2,7,14,12,19)" End If + + + If DdlTipoCompra.SelectedValue.ToEntero = 9 Then + StrAlmacenes = "CveTipoAlmacen IN (21)" + End If + e.Row.FCDropDownList("ddlAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("ddlAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1")) e.Row.FCDropDownList("ddlAlmacen").DataBind() @@ -19619,6 +19639,10 @@ Partial Class Compras_Compras Protected Sub DdlTipoCompra_SelectedIndexChanged(sender As Object, e As EventArgs) + If DdlTipoCompra.SelectedValue.ToEntero = 9 Then 'Al seleccionar apoyo logístico se cargan los amancenes de devoculcion proveedor para dar entrada + CargaGvInv() + End If + End Sub #End Region diff --git a/Inventarios/RecepcionAlmacen.aspx b/Inventarios/RecepcionAlmacen.aspx index 8d742140e..598a258d7 100644 --- a/Inventarios/RecepcionAlmacen.aspx +++ b/Inventarios/RecepcionAlmacen.aspx @@ -418,7 +418,7 @@ + DataKeyNames="EntregaDirecta,Consec,CodigoBarras,CvePS,CveUM,PU,CantidadC,CantidadF,UM,PS,CveCompraDetalle,CveOrdenCompraDetalle,PUExtranjero,AplicaSerieLote,CveClasificacion,Codigo,CveVentaDetalle,CostoIndirecto,CveTamaño,Lote, AplicaSeccion,AplicaCaducidad,AplicaLote" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None"> diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index 05ef7a391..2ebe9aa83 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -30,7 +30,14 @@ Partial Class Inventarios_RecepcionAlmacen End Property Private Property DtInv As DataTable Get - Return CType(ViewState("DtInv"), DataTable) + If ViewState("DtInv") Is Nothing Then + Return New DataTable + Else + Return CType(ViewState("DtInv"), DataTable) + End If + + + End Get Set(value As DataTable) ViewState("DtInv") = value @@ -854,9 +861,15 @@ Partial Class Inventarios_RecepcionAlmacen If TipoMovimiento = 3 Then CargaAlmacenes(-1, "21,2") End If + + If CveTipoCompra = 9 Then + CargaAlmacenes(-1, "21") + End If + RecibidaCompleta = False Dim CargaSoloUsados As Boolean = False + If ObjInventario.RecepcionAlmacenGet(pCveCompra, BuscaEntregaDirecta, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then Dim DtRecepcion As DataTable = Nothing Dim NumUsados = ObjInventario.DtResultados.COUNT("EsUsado", "EsUsado = True").ToEntero() @@ -1164,8 +1177,9 @@ Partial Class Inventarios_RecepcionAlmacen Private Sub CargaGVInv() If UsuarioActual.CveEmpresa = 119 Then DtInv = DtInv.FiltraParametros("", "PS") - End If - + End If + + For Each item As DataRow In DtInv.Rows Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, item("CvePS").ToString.ToEntero).FiltroPrimero("") If Dr IsNot Nothing Then @@ -2098,7 +2112,10 @@ Partial Class Inventarios_RecepcionAlmacen End Function Private Sub GuardaCompraOC() + Dim CveMovimiento As Integer + ' Dim CveMovimientoS + Dim InvFolio As String = "" Dim FechaMovto As Date = TxtFecha.Text.ToDate @@ -2394,7 +2411,9 @@ Partial Class Inventarios_RecepcionAlmacen If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 Then Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero() - Dim CveAlmacenVirutal As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero() + Dim CveTipoAlmacenFiltro As Integer = If(CveTipoCompra = 9, 25, 24) + + Dim CveAlmacenVirutal As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacenFiltro).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero() CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirutal, If(TipoMovimiento > 1, 13, 2), 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompraSurtir, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="RA/G") FolioVirtual = ObjInventario.Folio @@ -2486,6 +2505,76 @@ Partial Class Inventarios_RecepcionAlmacen End If End If 'TERMINA: DEVENGAR + + Else + + + + 'VIRTUAL + If CveTipoCompra = 9 And UsuarioActual.Empresa.Funcionalidad(573) = "1" Then + + Dim DtPSVirtual As New DataTable("DtTamanios") + DtPSVirtual.Columns.Add(New DataColumn("CvePS", GetType(Integer))) + DtPSVirtual.Columns.Add(New DataColumn("Cantidad", GetType(Decimal))) + DtPSVirtual.Columns.Add(New DataColumn("PU", GetType(Decimal))) + DtPSVirtual.Columns.Add(New DataColumn("CveUM", GetType(Integer))) + + Dim DtComprasDetalle As DataTable = Nothing + Dim DtTamanios As DataTable = Nothing + + If ObjCompras.GetCompraDetalle(CveCompraSurtir) Then + DtComprasDetalle = ObjCompras.DtResultados.Copy() + End If + + If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then + DtTamanios = ObjAcum.DtResultados.Copy() + End If + + For Each GvRow As GridViewRow In GvInv.Rows + If GvRow.RowType = DataControlRowType.DataRow Then + + For Each Tam As DataRow In DtTamanios.Rows + If Tam("CveTamaño").ToString() = GvRow.DataKey("CveTamaño") Then + Dim CvePSCargo = Tam("CvePSCargo").ToString().ToEntero() + Dim RowCompraDetalle = DtComprasDetalle.FiltroPrimero($"CvePS = {CvePSCargo}") + + If RowCompraDetalle IsNot Nothing Then + Dim Row As DataRow = DtPSVirtual.NewRow() + Row("CvePS") = CvePSCargo + Row("Cantidad") = GvRow.FCTextBox("TbCantidadF").Text.ToDecimal() + Row("PU") = RowCompraDetalle("PU").ToString().ToDecimal() + Row("CveUM") = GvRow.DataKey("CveUM").ToEntero() + DtPSVirtual.Rows.Add(Row) + End If + + End If + Next + + End If + Next + + If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 Then + Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacen.SelectedValue}").ToEntero() + + Dim CveAlmacenVirutal As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 25).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero() + + CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirutal, If(TipoMovimiento > 1, 13, 2), 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompraSurtir, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="RA/G") + FolioVirtual = ObjInventario.Folio + + For Each RowUsado As DataRow In DtPSVirtual.Rows + Dim CvePS = RowUsado("CvePS").ToString().ToEntero() + Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble() + Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal() + Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero() + + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + ErrorMovInv = True + Exit For + End If + Next + End If + End If + End If 'ACTUALIZA ESTATUS ALMACEN diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 0a27020c6..8bd8d5f1c 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -826,9 +826,13 @@ Partial Class Inventarios_TraspasoAlmacen CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtual, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="TA/V", CveMovimientoRelacionado:=CveMovimientoSalida) FolioVirtualSalida = ObjInventario.Folio Dim dtvirtual As DataTable = Nothing + Dim dtvirtualLogistico As DataTable = Nothing If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then + dtvirtual = ObjInventario.DtResultados + dtvirtualLogistico = ObjInventario.DtResultados.Copy + For Each RowVirtual As DataRow In dtvirtual.Rows Dim CvePS = RowVirtual("CvePS").ToString().ToEntero() Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble() @@ -840,9 +844,14 @@ Partial Class Inventarios_TraspasoAlmacen Exit For End If Next + Else ErrorMovInv = True End If + + + + End If 'AGREGAMOS LA ENTRADA @@ -884,30 +893,34 @@ Partial Class Inventarios_TraspasoAlmacen If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenDestino.SelectedValue}").ToEntero() - Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen =24 AND CveSubProyecto={CveSubProyecto}").ToEntero() + Dim CveTipoAlmacenDestipo As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen= {DdlAlmacenDestino.SelectedValue}").ToEntero() + Dim TipoAlmacenEntrada As String = If(CveTipoAlmacenDestipo = 21, "25", "24") + + Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen = { TipoAlmacenEntrada } AND CveSubProyecto={CveSubProyecto}").ToEntero() CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/S3") - FolioVirtualEntrada = ObjInventario.Folio - Dim dtvirtual As DataTable = Nothing + FolioVirtualEntrada = ObjInventario.Folio + Dim dtvirtual As DataTable = Nothing - If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then - dtvirtual = ObjInventario.DtResultados - For Each RowVirtual As DataRow In dtvirtual.Rows - Dim CvePS = RowVirtual("CvePS").ToString().ToEntero() - Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble() - Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal() - Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero() + If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then + dtvirtual = ObjInventario.DtResultados + For Each RowVirtual As DataRow In dtvirtual.Rows + Dim CvePS = RowVirtual("CvePS").ToString().ToEntero() + Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble() + Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal() + Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero() - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then - ErrorMovInv = True - Exit For - End If - Next - Else - ErrorMovInv = True + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + ErrorMovInv = True + Exit For + End If + Next + Else + ErrorMovInv = True + End If End If - End If - Dim Concepto As String = TxtObservaciones.Text + + Dim Concepto As String = TxtObservaciones.Text If Concepto = "" Then Concepto = "Traspaso" 'AGREGAMOS PREPOLIZAS TRASPASO DIRECTO: If Not ErrorMovInv Then @@ -922,7 +935,11 @@ Partial Class Inventarios_TraspasoAlmacen If IdCtaContableSalida = IdCtaContableEntrada Then Contabilizable = False - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableSalida, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=Contabilizable, ImporteMX:=importe) Then + Dim CveTipoAlmacenDestipo As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen= {DdlAlmacenDestino.SelectedValue}").ToEntero() + Dim CveConceptoPrepoliza As Integer = If(CveTipoAlmacenDestipo = 21, 225, 68) + + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, CveConceptoPrepoliza, TxtObservaciones.Text, Fecha, IdCtaContableSalida, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=Contabilizable, ImporteMX:=importe) Then ErrorMovInv = True End If