From ec3f20e0a4b78364830f397111e34d7fa3299849 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 13 Oct 2023 15:52:29 -0700 Subject: [PATCH] =?UTF-8?q?--=20vinculaci=C3=B3n=20de=20otros=20proveedore?= =?UTF-8?q?s=20de=20oc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx | 1 + Compras/Compras.aspx.vb | 134 ++++++++++++++++++++++------------------ 2 files changed, 74 insertions(+), 61 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index efc0a12fb..64e8b39ec 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -6185,6 +6185,7 @@ $get("TxtOC").value = Folio; $get("HdnVCveOC").value = CveOC; $get("HdnCveEstatusOC").value = CveEstatus; + $get("HdnCveProveedorOC").value = CveProveedor; $get("BtnVOC").click(); } diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 7630de76c..ad494174e 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6181,6 +6181,7 @@ Partial Class Compras_Compras Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * Dr("Cantidad").ToString.ToDecimal Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN229").ToDecimal * Dr("Cantidad").ToString.ToDecimal ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI176").ToDecimal + Dim tCveColectiva As Integer = ObjOC.DtResultados.FiltroPrimeroValor("CveColectiva").ToEntero CveMovimientoAlmacen = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal 'RMF. falta verificar el costo indirecto de la OC @@ -6191,8 +6192,8 @@ Partial Class Compras_Compras SumatoriaInventario += Importe228 + Importe229 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN228 + ImporteMN229 - ImporteCI176) - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe228, ImporteMN228, ConceptoContabilizacionME, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=ImporteME228, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe229, ImporteMN229, ConceptoContabilizacionMEComp, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=ImporteME229, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe228, ImporteMN228, ConceptoContabilizacionME, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=ImporteME228, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveColectiva:=tCveColectiva, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe229, ImporteMN229, ConceptoContabilizacionMEComp, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=ImporteME229, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveColectiva:=tCveColectiva, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True Exit For End If @@ -6205,7 +6206,7 @@ Partial Class Compras_Compras SumatoriaInventario += Importe176 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN176 - ImporteCI176) - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe176, ImporteMN176, ConceptoContabilizacion, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=ImporteME176, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe176, ImporteMN176, ConceptoContabilizacion, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=ImporteME176, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveColectiva:=tCveColectiva, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True Exit For End If @@ -18636,6 +18637,7 @@ Partial Class Compras_Compras DtInvOCDiferencias.Columns.Add("TipoCambioAjuste", GetType(Double)) DtInvOCDiferencias.Columns.Add("ConceptoSalida", GetType(Integer)) DtInvOCDiferencias.Columns.Add("CveClasificacion", GetType(Integer)) + DtInvOCDiferencias.Columns.Add("CveColectiva", GetType(Integer)) DtInvOCDiferencias.Columns.Add("PS", GetType(String)) @@ -18655,6 +18657,7 @@ Partial Class Compras_Compras DrInvOCDiferencias("PUCompra") = Math.Round(gvr.FCTextBox("TxtPU").Text.ToDecimal, 6) DrInvOCDiferencias("CveMoneda") = dr2("CveMoneda").ToString.ToEntero DrInvOCDiferencias("CveClasificacion") = dr2("CveClasificacion").ToString.ToEntero + DrInvOCDiferencias("CveColectiva") = dr2("CveColectiva").ToString.ToEntero DrInvOCDiferencias("FolioOC") = dr2("FolioOC").ToString DrInvOCDiferencias("CveProveedor") = dr2("CveProveedorOC").ToString.ToEntero DrInvOCDiferencias("PS") = dr2("PS").ToString @@ -18708,6 +18711,7 @@ Partial Class Compras_Compras Dim DiferenciaInvOC As Decimal = 0.0D Dim CveMovimientoAlmacen As Integer = -1 Dim CveOCDetalle As Integer = -1 + Dim CveColectiva As Integer = -1 Dim CveAlmacen As Integer = -1 Dim Fecha As Date = TxtFecha.Text.ToDate Dim CveProveedorInvOC As Integer = -1 @@ -18724,56 +18728,65 @@ Partial Class Compras_Compras Dim PUCompra As Decimal = 0.0D Dim CveMoneda As Integer = 1 Dim PS As String = "" - Dim TipoMovtoCosto As Boolean = False - If UsuarioActual.CveEmpresa = 119 Then TipoMovtoCosto = True + Dim TipoMovtoCosto As Boolean = True - 'AJUSTES EN PREPOLIZA - SALIDA CONTABLE (CON SALIDA DE VENTA O SIN SALIDA) - For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1)").Rows - CveOrdenCompra = DrDiferencias("CveOrdenCompra").ToString.ToEntero - CveOCDetalle = DrDiferencias("CveOrdenCompraDetalle").ToString.ToEntero - CveMoneda = DrDiferencias("CveMoneda").ToString.ToEntero - DiferenciaInvOC = DrDiferencias("Diferencia").ToString.ToDecimal.RoundSQL() - PUCompra = DrDiferencias("PUCompra").ToString.ToDecimal - PS = DrDiferencias("PS").ToString + tCveProveedor = DtInvOCDiferencias.MAX("CveProveedor").ToEntero + ProveedorNombre = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {tCveProveedor}").ToString + Fecha = TxtFecha.Text.ToDate + CvePrePoliza = ObjConta.AddPrePolizas("Compras/OC-(OCAlmacen)", 74, 0, 0, 1, Fecha, ProveedorNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - Fecha = TxtFecha.Text.ToDate - SerieFolio = $"OC: {DrDiferencias("FolioOC").ToString}" - tCveProveedor = DrDiferencias("CveProveedor").ToString.ToEntero - ProveedorNombre = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {tCveProveedor}").ToString - Dim ConceptoPartida As String = String.Format("{0} OC: {1} Inv: {2}", ProveedorNombre, DrDiferencias("FolioOC"), DrDiferencias("FolioAlmacen")) + If CvePrePoliza > 0 Then - ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero - CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero - CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero - TCInvOC = DrDiferencias("TipoCambioAjuste").ToString.ToDecimal + 'AJUSTES EN PREPOLIZA - SALIDA CONTABLE (CON SALIDA DE VENTA O SIN SALIDA) + For Each DrDiferencias As DataRow In DtInvOCDiferencias.FiltraParametros("ConceptoSalida IN (0,1)").Rows + CveOrdenCompra = DrDiferencias("CveOrdenCompra").ToString.ToEntero + CveOCDetalle = DrDiferencias("CveOrdenCompraDetalle").ToString.ToEntero + CveMoneda = DrDiferencias("CveMoneda").ToString.ToEntero + DiferenciaInvOC = DrDiferencias("Diferencia").ToString.ToDecimal.RoundSQL() + PUCompra = DrDiferencias("PUCompra").ToString.ToDecimal + CveColectiva = DrDiferencias("CveColectiva").ToString.ToEntero + PS = DrDiferencias("PS").ToString - Dim CveClasificacionCostoOC As Integer = TmpDT.FiltroPrimeroValor("CveClasificacion", "ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And ISNULL(CveTipoPS, 0) = 2").ToEntero - Dim CveSubProyecto As Integer = TmpDT.MAX("CveSubProyecto").ToEntero - If DiferenciaInvOC.RoundSQL() <> 0 Then + SerieFolio = $"OC: {DrDiferencias("FolioOC").ToString}" + tCveProveedor = DrDiferencias("CveProveedor").ToString.ToEntero + Dim ConceptoPartida As String = String.Format("{0} OC: {1} Inv: {2}", ProveedorNombre, DrDiferencias("FolioOC"), DrDiferencias("FolioAlmacen")) - If CveSubProyecto <= 0 Then - Alert("Debe de asignar un sub proyecto o centro de costos.", TipoMensaje.MsgAdvertencia) - Retorno = False - End If + ConceptoSalida = DrDiferencias("ConceptoSalida").ToString.ToEntero + CveAlmacen = DrDiferencias("CveAlmacen").ToString.ToEntero + CveMovimientoAlmacen = DrDiferencias("CveMovimiento").ToString.ToEntero + TCInvOC = DrDiferencias("TipoCambioAjuste").ToString.ToDecimal - CvePrePoliza = ObjConta.AddPrePolizas("Compras/OC-(OCAlmacen)", 74, DiferenciaInvOC, DiferenciaInvOC, 1, Fecha, ConceptoPartida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - If CvePrePoliza > 0 Then + Dim CveClasificacionCostoOC As Integer = TmpDT.FiltroPrimeroValor("CveClasificacion", "ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And ISNULL(CveTipoPS, 0) = 2").ToEntero + Dim CveSubProyecto As Integer = TmpDT.MAX("CveSubProyecto").ToEntero - If CveMoneda = 2 Then - ImporteME = (DiferenciaInvOC / TCInvOC).RoundAD() - ImporteMEComp = ((ImporteME * TCInvOC) - ImporteME).RoundAD() + If DiferenciaInvOC.RoundSQL() <> 0 Then - Dim DifImporte As Decimal = DiferenciaInvOC - (ImporteME + ImporteMEComp) + If CveSubProyecto <= 0 Then + Alert("Debe de asignar un sub proyecto o centro de costos.", TipoMensaje.MsgAdvertencia) + Retorno = False + End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, -DiferenciaInvOC, 177, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto) Then - Retorno = False - Exit For - End If + If CvePrePoliza > 0 Then - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, ImporteME, 228, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, ImporteMEComp, 229, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - If DifImporte <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, DifImporte, DifImporte, 69, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=DifImporte, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle, CveClasificacion:=CveClasificacionCostoOC, CveSubProyecto:=CveSubProyecto) Then + If CveMoneda = 2 Then + ImporteME = (DiferenciaInvOC / TCInvOC).RoundAD() + ImporteMEComp = ((ImporteME * TCInvOC) - ImporteME).RoundAD() + + Dim DifImporte As Decimal = DiferenciaInvOC - (ImporteME + ImporteMEComp) + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, -DiferenciaInvOC, -DiferenciaInvOC, 177, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto) Then + Retorno = False + Exit For + End If + + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, ImporteME, 228, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, ImporteMEComp, 229, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + If DifImporte <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, DifImporte, DifImporte, 69, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=DifImporte, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle, CveClasificacion:=CveClasificacionCostoOC, CveSubProyecto:=CveSubProyecto) Then + Retorno = False + Exit For + End If + Else Retorno = False Exit For End If @@ -18782,35 +18795,34 @@ Partial Class Compras_Compras Exit For End If Else - Retorno = False - Exit For - End If - Else - '2018.11.24 se cambia concepto 177, de cargo a abono negativo., petición MALL - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -DiferenciaInvOC, -DiferenciaInvOC, If(ConceptoSalida = 0, 177, 177), SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto, CveClasificacion:=CveClasificacionCostoOC) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, DiferenciaInvOC, DiferenciaInvOC, 176, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle) Then + '2018.11.24 se cambia concepto 177, de cargo a abono negativo., petición MALL + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, -DiferenciaInvOC, -DiferenciaInvOC, If(ConceptoSalida = 0, 177, 177), SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto, CveClasificacion:=CveClasificacionCostoOC) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaInvOC, DiferenciaInvOC, 176, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveColectiva:=CveColectiva) Then + Retorno = False + Exit For + End If + Else Retorno = False Exit For End If - Else + End If + If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra, UsuarioActual.CveUsuario) Then Retorno = False Exit For End If - End If - If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra, UsuarioActual.CveUsuario) Then - Retorno = False - Exit For - End If - If Retorno Then - If Not OCBitacora.AddEventoBitacora(String.Format("Se registró una póliza de ajuste por cambio de precio en producto: {0}", PS), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOC:=CveOrdenCompra) Then - Retorno = False + If Retorno Then + If Not OCBitacora.AddEventoBitacora(String.Format("Se registró una póliza de ajuste por cambio de precio en producto: {0}", PS), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOC:=CveOrdenCompra) Then + Retorno = False + End If End If End If End If - End If - Next - + Next + Else + Alert("prepóliza de ajuste no registrada.", TipoMensaje.MsgAdvertencia) + Retorno = False + End If End If End If