From 5010c39463e78f10db7b06e3ba395fa244597547 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 7 Jan 2025 19:04:04 -0700 Subject: [PATCH] -- comparativo de xml, en base a acreedor -- kardex. filtrar por los subproyectos de almacen. -- oc. quitar parametro estemporal --- App_Code/ClsCompras.vb | 3 +- App_Code/ClsOC.vb | 15 +- App_Code/modExtensiones.vb | 8 + Compras/Compras.aspx.vb | 18 +-- Inventarios/Kardex.aspx.vb | 21 +-- OC/OC.aspx | 8 - OC/OC.aspx.vb | 312 +------------------------------------ OC/RepOC.aspx | 6 +- OC/RepOC.aspx.vb | 56 +++---- 9 files changed, 60 insertions(+), 387 deletions(-) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 1b16277ef..b06d1b586 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -1162,7 +1162,7 @@ Public Class ClsCompras Return Retorno End Function - Public Function GetFacturasComparacionXML(Version As String, Xml As String, CveEmpresa As Integer) As Boolean + Public Function GetFacturasComparacionXML(Version As String, Xml As String, CveEmpresa As Integer, Optional RestriccionesVinculacion As String = "") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Comp_ComparacionXML") @@ -1170,6 +1170,7 @@ Public Class ClsCompras .Add("@Version", SqlDbType.VarChar, 4).Value = Version .Add("@Xml", SqlDbType.Xml).Value = Xml .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@RestriccionesVinculacion", SqlDbType.VarChar, 100).Value = RestriccionesVinculacion .Add("@Error", SqlDbType.VarChar, 300).Direction = ParameterDirection.Output End With diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb index 29c6072ed..19a737a7f 100644 --- a/App_Code/ClsOC.vb +++ b/App_Code/ClsOC.vb @@ -715,7 +715,7 @@ Public Class ClsOC Optional PorcentajeIVA As Decimal = 0.16D, Optional IVA As Decimal = 0, Optional RetIVA As Decimal = 0, Optional RetISR As Decimal = 0, Optional FechaExpiracion As Date = Nothing, Optional CveCotizacion As Integer = -1, Optional FolioAdicional As String = "", Optional EntregaDirecta As Integer = -1, Optional CveDireccionEnvio As Integer = -1, Optional Guia As String = "-1", Optional IEPS As Decimal = -1, Optional CveIEAnticipo As Integer = -1, Optional ImporteAnticipo As Decimal = 0, Optional UsoCFDI As Integer = -1, Optional Promocion As String = "-1", Optional CveProveedorContacto As Integer = -1, Optional NumRemision As String = "-1", - Optional CveColectiva As Integer = -1, Optional MetodoPago As Integer = -1, Optional CveSubProyectoEntrega As Integer = -1, Optional PorcentajeProntoPago As Decimal = 0, Optional EsTemporal As Boolean = False) As Boolean + Optional CveColectiva As Integer = -1, Optional MetodoPago As Integer = -1, Optional CveSubProyectoEntrega As Integer = -1, Optional PorcentajeProntoPago As Decimal = 0) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraAdd") @@ -763,8 +763,6 @@ Public Class ClsOC .Add("@MetodoPago", SqlDbType.Int).Value = MetodoPago ' 0 Contado, 1 Credito .Add("@CveSubProyectoEntrega", SqlDbType.Int).Value = CveSubProyectoEntrega ' 0 Contado, 1 Credito .Add("@PorcentajeProntoPago", SqlDbType.Decimal).Value = PorcentajeProntoPago - .Add("@EsTemporal", SqlDbType.Bit).Value = EsTemporal - .Add("@vCveOrdenCompra", SqlDbType.Int).Direction = ParameterDirection.Output .Add("@vFolio", SqlDbType.Int).Direction = ParameterDirection.Output @@ -1675,7 +1673,7 @@ Public Class ClsOC CveEmpresa As Integer, CvePS As Integer, Optional PendientePorSurtir As Boolean = False, Optional CveCliente As Integer = -1, Optional Guia As String = "-1", Optional CveActivoFijo As Integer = -1, Optional SoloSubProyectosConPermiso As Boolean = False, Optional CveUsuarioAutorizo As Integer = -1, Optional CveUsuarioAsignado As Integer = -1, Optional EntregaDirecta As Integer = -1, Optional TopSelect As Integer = 10000, Optional CveMoneda As Integer = -1, - Optional MetodoPago As Integer = -1, Optional Serie As String = "-1", Optional TieneAnticipo As Integer = -1, Optional EsTemporal As Integer = -1) As Boolean + Optional MetodoPago As Integer = -1, Optional Serie As String = "-1", Optional TieneAnticipo As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraRep") @@ -1708,9 +1706,6 @@ Public Class ClsOC .Add("@MetodoPago", SqlDbType.Int).Value = MetodoPago .Add("@Serie", SqlDbType.VarChar).Value = Serie .Add("@TieneAnticipo", SqlDbType.Int).Value = TieneAnticipo - .Add("@EsTemporal", SqlDbType.Int).Value = EsTemporal - - End With Try @@ -1849,7 +1844,7 @@ Public Class ClsOC Public Function GetOrdenesPendientes(pTipo As String, pTipoBusqueda As Integer, pCveEmpresa As Integer, pCveProyecto As Integer, pCveSubProyecto As Integer, pCveEstatusCompra As Integer, pCveUsuario As Integer, CveCliente As Integer, Optional SoloSubProyectosConPermiso As Boolean = False, Optional CveUsuarioAsignado As Integer = -1, Optional EntregaDirecta As Integer = -1, - Optional TieneAnticipo As Integer = -1, Optional EsTemporal As Integer = -1) As Boolean + Optional TieneAnticipo As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraPendientes") @@ -1867,7 +1862,6 @@ Public Class ClsOC .Add("@CveUsuarioAsignado", SqlDbType.Int).Value = CveUsuarioAsignado .Add("@EntregaDirecta", SqlDbType.Int).Value = EntregaDirecta .Add("@TieneAnticipo", SqlDbType.Int).Value = TieneAnticipo - .Add("@EsTemporal", SqlDbType.Int).Value = EsTemporal End With Try @@ -2631,12 +2625,13 @@ Public Class ClsOC End Function - Public Function PendientesCompra(CvePS As Integer, CveEmpresa As Integer) As Boolean + Public Function PendientesCompra(CvePS As Integer, CveSubProyectos As String, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_PendientesCompra") With SqlAdapter.SelectCommand.Parameters .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveSubProyectos", SqlDbType.VarChar, 100).Value = CveSubProyectos .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa End With diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index e8fd53eae..9343ffa93 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -3726,6 +3726,14 @@ Namespace Extensiones End Try End Sub + + Public Function DataColumnToString(ByRef dtt As DataTable, NombreColumna As String) As String + + Return String.Join(", ", dtt.AsEnumerable(). + Where(Function(row) Not row.IsNull(NombreColumna)). + Select(Function(row) row(NombreColumna).ToString())) + End Function + Public Function GetSelectedValues(ByRef Ddl As ListBox, Optional beforeValue As String = "", Optional AfterValue As String = "") As String Dim retorno As New StringBuilder diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 6a5c5bcf7..48d4a0c62 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1901,7 +1901,12 @@ Partial Class Compras_Compras Xml = Xml.Replace("<", "") Xml = Xml.Replace("&", "") 'adicional, si hay otros - If ObjeFacturas.GetFacturasComparacionXML(Version, Xml, UsuarioActual.CveEmpresa) Then + 'si el tipo de proveedor es acreedor, no cruzar por numero de parte + Dim RestriccionesVinculacion As String = "" + ' Acreedor + If CveTipoProveedor.Contiene(2, 3) Then RestriccionesVinculacion = "NO-NUMEROPARTE" + + If ObjeFacturas.GetFacturasComparacionXML(Version, Xml, UsuarioActual.CveEmpresa, RestriccionesVinculacion) Then TmpDT = ObjeFacturas.DtResultados TmpDT.Columns.Add("CveSATPSActualizado") SubTotalConceptos = TmpDT.SUMD("Total").RoundSQL @@ -11265,7 +11270,7 @@ Partial Class Compras_Compras 'filtrar solo los almacenes de las sucursales especficiadsa en el tmpdt. para encasillarlo Dim dttt As DataTable = TmpDT.FiltraParametros("", DistinctColumns:={"CveSubProyecto"}) If dttt IsNot Nothing AndAlso dttt.Rows.Count > 0 Then - StrTipo = StrTipo & " AND CveSubProyecto IN (" & DttoString(dttt, "CveSubProyecto") & ") " + StrTipo = StrTipo & " AND CveSubProyecto IN (" & DataColumnToString(dttt, "CveSubProyecto") & ") " End If End If e.Row.FCDropDownList("ddlEAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrTipo) @@ -11434,7 +11439,7 @@ Partial Class Compras_Compras 'filtrar solo los almacenes de las sucursales especficiadsa en el tmpdt. para encasillarlo Dim dttt As DataTable = TmpDT.FiltraParametros("", DistinctColumns:={"CveSubProyecto"}) If dttt IsNot Nothing AndAlso dttt.Rows.Count > 0 Then - StrAlmacenes = StrAlmacenes & " AND CveSubProyecto IN (" & DttoString(dttt, "CveSubProyecto") & ") " + StrAlmacenes = StrAlmacenes & " AND CveSubProyecto IN (" & DataColumnToString(dttt, "CveSubProyecto") & ") " End If End If @@ -11466,13 +11471,6 @@ Partial Class Compras_Compras End Sub - Public Function DttoString(dtt As DataTable, NombreColumna As String) As String - - Return String.Join(", ", dtt.AsEnumerable(). - Where(Function(row) Not row.IsNull(NombreColumna)). - Select(Function(row) row(NombreColumna).ToString())) - End Function - Protected Sub ddlAlmacen_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim Ddl As DropDownList = CType(sender, DropDownList) diff --git a/Inventarios/Kardex.aspx.vb b/Inventarios/Kardex.aspx.vb index 8216a9c36..79c0cf97a 100644 --- a/Inventarios/Kardex.aspx.vb +++ b/Inventarios/Kardex.aspx.vb @@ -245,14 +245,10 @@ Partial Class Inventarios_Kardex Private Sub CargaDatos() + Dim CvePS As Integer = ddlProducto2.SelectedValue.ToEntero - Dim CveProducto As Integer = ddlProducto2.SelectedValue.ToEntero - - - If CveProducto > 0 Then - Dim DtTemp = CargarKardex(CveProducto) - - + If CvePS > 0 Then + Dim DtTemp = CargarKardex(CvePS) If DtTemp IsNot Nothing AndAlso DtTemp.Rows.Count > 0 Then Dim AplicaSeccion, AplicaLote, AplicaCaducidad, AplicaSerie, AplicaAlmacenDestino As Boolean @@ -271,8 +267,7 @@ Partial Class Inventarios_Kardex If AplicaCaducidad Then GvM.Columns(12).Visible = True If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then GvM.Columns(12).HeaderText = UsuarioActual.Empresa.Funcionalidad(147) - - Dim Drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimero("") + Dim Drp As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") Dim AuxAplicaSerie As Boolean Dim AuxAplicaCad As Boolean If Drp IsNot Nothing Then @@ -335,8 +330,13 @@ Partial Class Inventarios_Kardex End Sub Private Sub CargarOCPendientesCompra() + Dim tCveSubProyectos As String = "-1" + If ddlAlmacen.SelectedValue <> "" Then + Dim tt As String = ddlAlmacen.GetSelectedValues() + tCveSubProyectos = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveAlmacen IN ({tt})").DataColumnToString("CveSubProyecto") + End If Dim ObjOC As New ClsOC - If ObjOC.PendientesCompra(ddlProducto2.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If ObjOC.PendientesCompra(ddlProducto2.SelectedValue.ToEntero, tCveSubProyectos, UsuarioActual.CveEmpresa) Then GvOC.DataSource = ObjOC.DtResultados.Copy LnkIndicador_OC.Text = ObjOC.DtResultados.Copy.SUM("CantidadPendienteVincular").ToString() End If @@ -383,6 +383,7 @@ Partial Class Inventarios_Kardex ChkAgruparAlmacen.Checked, Serie, CveAlmacenes) Then dt = ObjInventarios.DtResultados.Copy End If + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then dt = dt.FiltraParametros("", "FechaMovto DESC") ' ordenamiento descendente ObjInventarios.Dispose() Return dt diff --git a/OC/OC.aspx b/OC/OC.aspx index 97f9e50b5..a69daf7e9 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -515,14 +515,6 @@ - - - - - - - - diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index ccc00524e..124005de0 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -1056,13 +1056,10 @@ Partial Class OC_OC DdlSubProyectoGral.Visible = True TrDescuentoEscalonado.Visible = True TrDescuentoProntoPago.Visible = True - TrBotonesInvTemporal.Visible = True If TipoOC = "OC" AndAlso UsuarioActual.TienePermisoProceso(401) AndAlso EsNuevo Then ChkEsTemporalRegistro.Visible = True End If - - End If If UsuarioActual.Empresa.CveEmpresa = 189 AndAlso CveOrdenCompra <> Nothing AndAlso CveOrdenCompra > 0 Then @@ -1555,10 +1552,6 @@ Partial Class OC_OC End If - - - ChkEsTemporal.Checked = Boolean.Parse(objOC.DtResultados.Rows(0)("EsTemporal").ToString) - 'PROMOCIONES TxtPromocion.Text = objOC.Promocion ChkPromocion.Checked = TxtPromocion.Text.Trim.Length > 0 @@ -2062,35 +2055,6 @@ Partial Class OC_OC InicializaMovtosAlmacen() End If - - - If EsGrupoDiaz And TipoOC = "OC" And ChkEsTemporal.Checked Then - - Dim TieneEntrada As Boolean = False - Dim TieneSalida As Boolean = False - - For Each gvRow As GridViewRow In GVInv.Rows - If gvRow.DataKey("CveConcepto").ToEntero = 33 Then - TieneEntrada = True - End If - If gvRow.DataKey("CveConcepto").ToEntero = 35 Then - TieneSalida = True - End If - Next - - If UsuarioActual.TienePermisoProceso(401) Then - If Not TieneEntrada Then - BtnInvTempEntrada.Visible = True - End If - - If TieneEntrada AndAlso Not TieneSalida Then - BtnInvTempSalida.Visible = True - End If - End If - - - End If - If UsuarioActual.Empresa.Funcionalidad(565) = "1" And pCveOrdenCompra > 0 And TipoOC.ToUpper() = "REQ" Then 'LAS COTIZACIONES RAPIDAS SOLO DEBE APARECER SI EL PROVEEDOR ES DEDICADO If CveConfianzaProveedor = 1 Then @@ -2981,7 +2945,7 @@ Partial Class OC_OC RequiereCotizacion:=ChkCotizacion.Checked, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto, NumRemision:=TxtNumRemision.Text.Trim(), MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero(), - CveSubProyectoEntrega:=DdlSubProyectoEntrega.SelectedValue.ToEntero, PorcentajeProntoPago:=PorcentajeProntoPago, EsTemporal:=ChkEsTemporal.Checked) Then + CveSubProyectoEntrega:=DdlSubProyectoEntrega.SelectedValue.ToEntero, PorcentajeProntoPago:=PorcentajeProntoPago) Then CveOrdenCompraPadre = OC.CveOrdenCompra If CveOrdenCompraPadre > 0 Then @@ -3003,12 +2967,9 @@ Partial Class OC_OC Else TieneError = True End If - - End If End If - If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), If(TipoOS, "OS", TipoOC), CveProveedor, OC.IniciaTransacSQL) Then TieneError = True End If @@ -3028,7 +2989,7 @@ Partial Class OC_OC PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto, NumRemision:=TxtNumRemision.Text, MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero(), CveSubProyectoEntrega:=DdlSubProyectoEntrega.SelectedValue.ToEntero, - PorcentajeProntoPago:=PorcentajeProntoPago, EsTemporal:=ChkEsTemporal.Checked) Then + PorcentajeProntoPago:=PorcentajeProntoPago) Then CveOrdenCompra = OC.CveOrdenCompra CveEstatus = CboE.SelectedValue.ToEntero @@ -3106,30 +3067,19 @@ Partial Class OC_OC End If End If - If Not TieneError AndAlso DdlMetodoPago.SelectedValue.ToEntero = 0 AndAlso TipoOC = "OC" Then If Not GeneraAnticpoContado(CveOrdenCompra, OC.IniciaTransacSQL()) Then TieneError = True End If - End If - If Not TieneError AndAlso TipoOC = "OC" Then If Not GeneraPrePolizaPresupuesto(CveOrdenCompra, OC.IniciaTransacSQL) Then TieneError = True End If End If - - If EsGrupoDiaz AndAlso EsNuevo AndAlso CveOrdenCompra > 0 AndAlso TipoOC = "OC" AndAlso ChkEsTemporalRegistro.Checked Then - If Not RegistroInventarioTemporal(OC.IniciaTransacSQL, CveOrdenCompra, 1, False) Then - TieneError = True - End If - End If - - If Not TieneError Then If Conta IsNot Nothing Then Conta.Commit() OC.Commit() @@ -3729,7 +3679,7 @@ Partial Class OC_OC PorcentajeIVA:=PorIVA, IVA:=IVACot, RetIVA:=RetIVA.ToString.ToDecimal, RetISR:=RetISR.ToString.ToDecimal, IDPoliza:=IdPoliza, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, NumRemision:=TxtNumRemision.Text.Trim, MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero(), - CveSubProyectoEntrega:=DdlSubProyectoEntrega.SelectedValue.ToEntero, PorcentajeProntoPago:=PorcentajeProntoPago, EsTemporal:=ChkEsTemporal.Checked) Then + CveSubProyectoEntrega:=DdlSubProyectoEntrega.SelectedValue.ToEntero, PorcentajeProntoPago:=PorcentajeProntoPago) Then 'CREA POLIZA POR CADA PROVEEDOR @@ -3804,17 +3754,11 @@ Partial Class OC_OC tCveSubProyecto = GetCveSubProyectoDetalles() End If - - - If (Not HuboError) AndAlso objOrdenCompra.AddOrdenCompra("OC", tCveSubProyecto, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega, CveUsuario, CveEmpresaActual, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero(), CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, - Promocion:=Promocion, NumRemision:=TxtNumRemision.Text.Trim, MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero(), CveSubProyectoEntrega:=DdlSubProyectoEntrega.SelectedValue.ToEntero, PorcentajeProntoPago:=PorcentajeProntoPago, - EsTemporal:=ChkEsTemporal.Checked) Then - - + Promocion:=Promocion, NumRemision:=TxtNumRemision.Text.Trim, MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero(), CveSubProyectoEntrega:=DdlSubProyectoEntrega.SelectedValue.ToEntero, PorcentajeProntoPago:=PorcentajeProntoPago) Then 'USA AC If UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto Then ' AGREGAR POLIZA @@ -5644,7 +5588,6 @@ Partial Class OC_OC File.Move(Archivo.ToString, String.Format("{0}OI\OI{1}{2}", UsuarioActual.Empresa.Ruta, ObjEventoBitacora.CveEvento.ToString, Archivo.Extension)) End If - Else Retorno = True Exit For @@ -9800,253 +9743,6 @@ Partial Class OC_OC FileExcel.Save(Response, $"OC_{CveOrdenCompra}.xlsx", SaveOptions.XlsxDefault) End Sub - Function RegistroInventarioTemporal(ByRef transaccion As SqlTransaction, CveOCInv As Integer, OpcionOrigen As Integer, Recargar As Boolean) As Boolean - - Dim CveConceptoInv As Integer = If(OpcionOrigen = 1, 33, 35) 'Conceptos 33 Entrada Manual 35 Salida Manual - - Dim Respuesta As Boolean = True - - Dim ObjOC As New ClsOC(transaccion) - Dim DTDetalleOC As New DataTable - - If ObjOC.GetOrdenesDetalle(CveOCInv, UsuarioActual.CveEmpresa) Then - DTDetalleOC = ObjOC.DtResultados.FiltraParametros(" CveTipoPS = 2 ") - - If DTDetalleOC.Rows.Count = 0 Then 'No hay PSs Tipo Producto - Return True - End If - - Else - Return False - End If - - Dim tCveSubProyecto As Integer = UsuarioActual.CveSubProyecto - If ModalidadSubProyectoGeneral Then tCveSubProyecto = DdlSubProyectoGral.SelectedValue.ToEntero - - If tCveSubProyecto <= 0 Then - tCveSubProyecto = GetCveSubProyectoDetalles() - End If - - If tCveSubProyecto <= 0 Then - Alert("Sub Proyecto no asignado.") - Return False - End If - - Dim CveAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveSubProyecto = {tCveSubProyecto} AND CveTipoAlmacen = 1 ").ToEntero - - If CveAlmacen <= 0 Then - Alert("Almacén no 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 CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inv/OC", 53, 0, 0, 1, TxtFecha.Text.Replace(",", "").ToDate, TxtDescrip.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3) - - Dim CveMovimiento As Integer = ObjInventario.AddMovimiento(CveAlmacen, CveConceptoInv, 1, NowADS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, tCveSubProyecto, -1, Observaciones:=TxtDescrip.Text, Modulo:="OC/1") - Dim FolioMto As Integer = ObjInventario.Folio - - If CveMovimiento <= 0 OrElse CvePrePoliza <= 0 Then - Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError) - 'ObjInventario.RollBack() 'deshace lo insertado - Respuesta = False - Else - - Dim Mensaje As String = "" - - ''VALIDA EXISTENCIAS - Dim Cont As Integer = 0 - If CveConceptoInv = 3 Then - - For Each Dr As DataRow In DTDetalleOC.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")}" - - If ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, CveAlmacen, FechaMovto:=FechaMovtoExistenciaStr) >= Dr("Cantidad").ToString.ToDouble Then - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, Observaciones:=Dr("Descripcion").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then - Mensaje = "Error al guardar los movimientos" - Respuesta = False - Exit For - End If - Else - - If UsuarioActual.TienePermisoProceso(114) Then - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, Observaciones:=Dr("Descripcion").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then - Mensaje = "Error al guardar los movimientos" - Respuesta = False - Exit For - End If - Else - Mensaje = String.Format("No hay existencias suficientes del producto: {0}", Dr("PS")) - Alert(Mensaje, TipoMensaje.MsgAdvertencia) - Respuesta = False - Exit For - End If - - End If - Cont += 1 - Next - - Else - For Each Dr As DataRow In DTDetalleOC.Rows - - Dim ImporteConcepto As Decimal = 0 - - If CveConceptoInv = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 2 Then - ImporteConcepto = Dr("PU").ToString.ToDecimal * GlobalTipoCambio(TxtFecha.Text.Replace(",", "").ToDate).ToDecimal - Else - ImporteConcepto = Dr("PU").ToString.ToDecimal - End If - - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, Observaciones:=Dr("Descripcion").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then - Mensaje = "Error al guardar los movimientos" - Respuesta = False - Exit For - - End If - Cont += 1 - Next - End If - - Dim EsContabilizable As Boolean = False - - 'Registro la prepóliza - If Respuesta AndAlso ObjInventario.GetMovimientosDetalle(CveMovimiento, 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}", CveAlmacen)) - If drA2 IsNot Nothing Then - tCveSubProyecto = drA2("CveSubProyecto").ToString.ToEntero - End If - - Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & CveConceptoInv).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 CveConceptoInv - Case 2, 32 - CveConceptoContable = 78 - EsContabilizable = True - Case 28, 31 - CveConceptoContable = 51 - If CveConceptoInv = 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 = TxtDescrip.Text - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAlmacen, tValorInventario, tValorInventario, 68, Obs, Obs, CveMovimientoAlmacen:=CveMovimiento, 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(CvePrePoliza, Not TipoMovtoAlmacen, Total, Total, CveConceptoContable, lblFolio.Text, Obs, 0, CveMovimientoAlmacen:=CveMovimiento, CveClasificacion:=Dr("CveClasificacion").ToString.ToEntero, CveSubProyecto:=tCveSubProyecto) Then - Respuesta = False - End If - Next - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoAlmacen, tValorInventario, tValorInventario, CveConceptoContable, Obs, Obs, CveMovimientoAlmacen:=CveMovimiento, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then - Respuesta = False - End If - End If - End If - Else - Respuesta = False - End If - - End If - - If Respuesta Then - If Recargar Then - Alert($"Movimiento Guardado Correctamente Folio:{FolioMto}", TipoMensaje.MsgInformacion, "window.location.reload();") - Else - Alert($"Movimiento Guardado Correctamente Folio:{FolioMto}", TipoMensaje.MsgInformacion) - End If - - End If - - Return Respuesta - - End Function - - - - Protected Sub BtnInvTempEntrada_Click(sender As Object, e As EventArgs) - Dim ObjOC As New ClsOC - - Try - If RegistroInventarioTemporal(ObjOC.IniciaTransacSQL(), CveOrdenCompra, 1, True) Then - ObjOC.Commit() - Else - ObjOC.RollBack() - End If - Catch ex As Exception - ObjOC.RollBack() - Finally - ObjOC.Dispose() - End Try - - End Sub - - Protected Sub BtnInvTempSalida_Click(sender As Object, e As EventArgs) - Dim ObjOC As New ClsOC - Try - If RegistroInventarioTemporal(ObjOC.IniciaTransacSQL(), CveOrdenCompra, 0, True) Then - ObjOC.Commit() - Else - ObjOC.RollBack() - End If - Catch ex As Exception - ObjOC.RollBack() - Finally - ObjOC.Dispose() - End Try - - End Sub End Class diff --git a/OC/RepOC.aspx b/OC/RepOC.aspx index d4c3e2be0..465511b98 100644 --- a/OC/RepOC.aspx +++ b/OC/RepOC.aspx @@ -201,10 +201,6 @@ -
- -
-
@@ -266,7 +262,7 @@
- +
diff --git a/OC/RepOC.aspx.vb b/OC/RepOC.aspx.vb index 6536fe150..375bb8a6c 100644 --- a/OC/RepOC.aspx.vb +++ b/OC/RepOC.aspx.vb @@ -69,31 +69,22 @@ Partial Class RepOC CargaActivoFijo() CargaClasificacion() CargaPS(-1) - - If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then - CargaClientes() - Else - ddlcliente.Items.Insert(0, New ListItem("Todos", "-1")) - End If + CargaClientes() + 'If UsuarioActual.Empresa.Funcionalidad(108) = "1" Then + ' CargaClientes() + 'Else + ' ddlcliente.Items.Insert(0, New ListItem("Todos", "-1")) + 'End If CargaPendientes() txtFechaISemanal.Text = NowADS().FirstDayOfMonth.ToShortDateString txtFechaFSemanal.Text = NowADS().ToShortDateString - If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then - DVEsTemporal.Visible = True - End If - - End If End Sub - #Region " CARGA COMBOS " - - - Protected Sub CargaProyectos() 'DdlProyectos.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1), GlobalDTProyectos(UsuarioActual.CveEmpresa, -1)) 'DdlProyectos.DataBind() @@ -146,9 +137,13 @@ Partial Class RepOC Protected Sub CargaClientes() clintesdiv1.Visible = True clintesdiv2.Visible = True - ddlcliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) - ddlcliente.DataBind() - ddlcliente.Items.Insert(0, New ListItem("Todos", "-1")) + ddlclientes.setEsWebService(True) + ddlclientes.Attributes.Add("data-metodo", "getcliente") + ddlclientes.SelectedText = "Todos" + ddlclientes.SelectedValue = "-1" + 'ddlcliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) + 'ddlcliente.DataBind() + 'ddlcliente.Items.Insert(0, New ListItem("Todos", "-1")) GvPorAtender.Columns(12).Visible = False GvPendientes.Columns(12).Visible = False @@ -222,12 +217,10 @@ Partial Class RepOC End Sub Private Sub CargaPendientes() - Dim EsTemporal As Integer = If(ChkEsTempral.Checked, 1, -1) - Dim OC As New ClsOC If OC.GetOrdenesPendientes(DdlTipo.SelectedValue.ToString, 0, UsuarioActual.CveEmpresa, DdlProyectos.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, - DdlEstatus.SelectedValue.ToEntero, UsuarioActual.CveUsuario, ddlcliente.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False), - CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(), TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero, EsTemporal:=EsTemporal) Then + DdlEstatus.SelectedValue.ToEntero, UsuarioActual.CveUsuario, ddlclientes.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False), + CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(), TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero) Then DtPorAtender = OC.DtResultados GvPorAtender.DataSource = DtPorAtender 'OC.DtResultados @@ -255,8 +248,8 @@ Partial Class RepOC End If If OC.GetOrdenesPendientes(DdlTipo.SelectedValue.ToString, 1, UsuarioActual.CveEmpresa, DdlProyectos.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, - DdlEstatus.SelectedValue.ToEntero, UsuarioActual.CveUsuario, ddlcliente.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False), - CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(), TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero, EsTemporal:=EsTemporal) Then + DdlEstatus.SelectedValue.ToEntero, UsuarioActual.CveUsuario, ddlclientes.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False), + CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(), TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero) Then GvPendientes.DataSource = OC.DtResultados DtPendiente = OC.DtResultados GvPendientes.DataBind() @@ -373,9 +366,6 @@ Partial Class RepOC #Region " CONSULTAR " Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles btnConsultar.Click - - Dim EsTemporal As Integer = If(ChkEsTempral.Checked, 1, -1) - LbPorAtenderPDF.Visible = False LbPorAtender.Visible = False LbPendientes.Visible = False @@ -387,16 +377,15 @@ Partial Class RepOC Dim FI As Date = If(txtFechaI.Text.Trim = "", MinFecha, txtFechaI.Text.Trim.ToDate) Dim FF As Date = If(txtFechaF.Text.Trim = "", MaxFecha, txtFechaF.Text.Trim.ToDate) - FF = FF.AddDays(1) Dim OC As New ClsOC If OC.GetOrdenesCompraRep(DdlTipo.SelectedValue.ToString, DdlProyectos.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, DDlClasificacion.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, FI, FF, -1, DdlProveedores.SelectedValue.ToEntero, If(txtFolio.Text.ToEntero = 0, -1, txtFolio.Text.ToEntero), ddlUsuario.SelectedValue.ToEntero, If(CheckNoCompleta.Checked, -1, UsuarioActual.CveUsuario), UsuarioActual.Empresa.CveEmpresa, If(DDlPS.SelectedValue = "", -1, DDlPS.SelectedValue.ToEntero), If(CheckNoCompleta.Checked, True, False), - ddlcliente.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False), + ddlclientes.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False), CveUsuarioAutorizo:=DdlUsuarioAutorizo.SelectedValue.ToEntero(), CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(), - CveMoneda:=DdlMoneda.SelectedValue.ToEntero(), MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero, TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero, EsTemporal:=EsTemporal) Then + CveMoneda:=DdlMoneda.SelectedValue.ToEntero(), MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero, TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero) Then GvConsultar.DataSource = OC.DtResultados DtOC = OC.DtResultados @@ -551,15 +540,12 @@ Partial Class RepOC Dim Clasificacion = If(DDlClasificacion.SelectedValue = "-1", "", $" Clasificación: {DDlClasificacion.SelectedItem.Text}") Dim Producto = If(DDlPS.SelectedValue = "-1", "", $" Producto/Servicio: {DDlPS.SelectedText}") Dim Completa As String = If(CheckNoCompleta.Checked = False, "", $" , No completa ") - Dim Proveedor = If(DdlProveedores.SelectedValue = "-1", "", $" Proveedor: {DdlProveedores.txtText.Value }") - Dim Cliente = If(ddlcliente.SelectedValue = "-1", "", $" Cliente: {ddlcliente.SelectedItem.Text}") + Dim Proveedor = If(DdlProveedores.SelectedValue = "-1", "", $" Proveedor: {DdlProveedores.txtText.Value}") + Dim Cliente = If(ddlclientes.SelectedValue = "-1", "", $" Cliente: {ddlclientes.txtText.Value}") Dim TieneAnticipo As String = If(DdlTieneAnticipo.SelectedValue.ToEntero = -1, "", $" Anticpo: {DdlTieneAnticipo.SelectedItem.Text}") - - If DtPorAtender IsNot Nothing AndAlso DtPorAtender.Rows.Count > 0 Then - Dim Cantidad As Integer = DtOC.COUNT("CveOrdenCompra") Dim TotalPesos As Double = DtOC.SUM("Total", "CveMoneda = 1") Dim TotalDolares As Double = DtOC.SUM("Total", "CveMoneda = 2")