From d37fe2a12f1f2a354e3d529fc1e40e5a349450d7 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 3 Mar 2023 09:59:19 -0700 Subject: [PATCH] -- manejo de bdh, garantias --- Compras/Compras.aspx | 2 + Compras/Compras.aspx.vb | 151 +++++++++++++++++++++------------------- 2 files changed, 81 insertions(+), 72 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 61cb8d5fe..295e02fde 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -526,6 +526,7 @@ +
@@ -540,6 +541,7 @@ +
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 2a087fbb5..f2d3ddd4d 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1248,15 +1248,6 @@ Partial Class Compras_Compras btnProrateo2.Visible = True End If - If UsuarioActual.Empresa.Funcionalidad(531).ToEntero = 1 Then 'cuando es emp acumuladora AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") - divFolioGarantia.Visible = True - Using objAcum As New ClsAcumuladores - If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=-1, TipoFolio:="-1", Area:=-1, CveSubProyecto:=-1) Then - DdlFolioGarantia.DataSource = objAcum.DtResultados.FiltraParametros("", "FechaIng DESC") - DdlFolioGarantia.DataBind() - End If - End Using - End If '**************************************************************** 'If UsuarioActual.CveEmpresa = 72 Then ' LiRecepcion.Visible = True @@ -1960,7 +1951,15 @@ Partial Class Compras_Compras TxtSerie.Enabled = False End If - 'DdlTipoComprobante.Enabled = False + If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then 'cuando es emp acumuladora + divFolioGarantia.Visible = True + Using objAcum As New ClsAcumuladores + If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=2, TipoFolio:="-1", Area:=-1, CveSubProyecto:=-1) Then + DdlFolioGarantia.DataSource = objAcum.DtResultados.FiltraParametros("", "FechaIng DESC") + DdlFolioGarantia.DataBind() + End If + End Using + End If 'PERMISO PARA MODIFICACIÓN DE FECHA AUN CON FACTURA TxtFecha.Enabled = UsuarioActual.TienePermisoProceso(216) @@ -2842,6 +2841,12 @@ Partial Class Compras_Compras TxtRembolsoNumero.Enabled = If(IdPoliza > 0, False, True) + If dr("CveFolioGarantia").ToString <> "" Then + divFolioGarantia.Visible = True + DdlFolioGarantia.Items.Insert(0, New ListItem(dr("FolioGarantia").ToString, dr("CveFolioGarantia").ToString)) + DdlFolioGarantia.SelectedValue = dr("CveFolioGarantia").ToString + End If + 'CargaDetalle If ObjCompra.GetCompraDetalle(CveCompra, UsuarioActual.CveEmpresa) Then TmpDT = ObjCompra.DtResultados @@ -8137,9 +8142,9 @@ Partial Class Compras_Compras End If If UsuarioActual.TienePermisoProceso(354) Then 'visualizar la póliza al registros - Msg.AppendFormat("

Ver Póliza. ", CvePrePoliza) + Msg.AppendFormat("

Ver Póliza   ", CvePrePoliza) Dim TempParametros = Encripta(String.Format("OP=PREPO&CvePrePoliza={0}", CvePrePoliza)) - Msg.Append($" Imprimir PDF ") + Msg.Append($" Imprimir ") @@ -9333,8 +9338,10 @@ Partial Class Compras_Compras PSS.Dispose() End If - Dim CvePersonal = GvPersonal.Rows(Cont).FCDropDownList("DdlPersonalGv").SelectedValue.ToEntero - Dim Referencia = GvPersonal.Rows(Cont).FCTextBox("TxtReferencia").Text + Dim CvePersonal As Integer = 0 + If Cont < GvPersonal.Rows.Count Then CvePersonal = GvPersonal.Rows(Cont).FCDropDownList("DdlPersonalGv").SelectedValue.ToEntero + Dim Referencia As String + If Cont < GvPersonal.Rows.Count Then Referencia = GvPersonal.Rows(Cont).FCTextBox("TxtReferencia").Text Cont = Cont + 1 'Si es AF-INSUMO se guarda en CveActivoFIjo @@ -9391,8 +9398,6 @@ Partial Class Compras_Compras End If End If End If - - Next For Each item As String In ClavesBorradas @@ -9413,20 +9418,14 @@ Partial Class Compras_Compras If Not ObjContabilidad.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveEmpresa, UsuarioActual.Empresa, MinFecha, String.Format("{0}-{1}", Serie, Folio), ObjContaAC, pIDPoliza:=ViewState("IdPoliza").ToString.ToEntero) Then Retorno = False End If - End If End If - - - Else Retorno = False End If - 'Retorno = True 'Alert("La Compra se actualizó correctamente.") Else - If IdPoliza > 0 Then If Not ObjContabilidad.UpdatePrePolizasDetalleBloquear(CvePrePoliza, True) Then Retorno = False @@ -9436,7 +9435,6 @@ Partial Class Compras_Compras Retorno = False End If End If - End If @@ -9685,9 +9683,27 @@ Partial Class Compras_Compras 'OBTIENE METODO DE CONTABILIZACIÓN AL GUARDAR - Dim ConceptoContabilizacionAlmacen = 0 + Dim CveConceptoContableAlmacen = 0 If ObjCompra.GetCompras(CveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then - ConceptoContabilizacionAlmacen = ObjCompra.DtResultados.FiltroPrimeroValor("CveConceptoContableAlmacen").ToEntero + CveConceptoContableAlmacen = ObjCompra.DtResultados.FiltroPrimeroValor("CveConceptoContableAlmacen").ToEntero + + If CveConceptoContableAlmacen = 0 Then + If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then + If (CveImportacion > 0 Or CveFlete > 0) Then + CveConceptoContableAlmacen = CveConceptoContableAlmacen + Else + CveConceptoContableAlmacen = 205 + End If + If OCVinculada AndAlso DdlOCVinculaInv.Visible AndAlso Not (CveImportacion > 0 Or CveFlete > 0) Then + CveConceptoContableAlmacen = DdlOCVinculaInv.SelectedValue.ToEntero + End If + If UsuarioActual.CveEmpresa.Contiene(72, 80, 140, 141, 152) And Not (CveImportacion > 0 Or CveFlete > 0) Then 'se comento, RMF. 2020.08.19, no le hallo sentido + CveConceptoContableAlmacen = 205 + End If + Else + CveConceptoContableAlmacen = 225 + End If + End If End If 'AF @@ -9716,7 +9732,7 @@ Partial Class Compras_Compras 'COSTO ALMACEN Dim DtAlmacenes = GlobalDTAlmacen(UsuarioActual.CveEmpresa) - If UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen = 0 Or DdlTipoCompra.SelectedValue.ToEntero = 10 Then + If UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And CveConceptoContableAlmacen = 0 Or DdlTipoCompra.SelectedValue.ToEntero = 10 Then DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen"}) 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN @@ -9757,11 +9773,11 @@ Partial Class Compras_Compras 'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ] - If DdlTipoCompra.SelectedValue.ToEntero <> 10 AndAlso UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen.Contiene(176, 205) Then + If DdlTipoCompra.SelectedValue.ToEntero <> 10 AndAlso UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And CveConceptoContableAlmacen.Contiene(176, 205) Then importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal importeMN = importeMovimiento * tipoCambioActual * Multiplicador - If ObjConta.GetRetCuenta(ConceptoContabilizacionAlmacen, UsuarioActual.CveEmpresa) Then + If ObjConta.GetRetCuenta(CveConceptoContableAlmacen, UsuarioActual.CveEmpresa) Then If ObjConta.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero End If @@ -9769,7 +9785,7 @@ Partial Class Compras_Compras If importeMovimiento <> 0 Then Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContabilizacionAlmacen, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, CveConceptoContableAlmacen, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then ErrorPrepoliza = True End If End If @@ -9778,11 +9794,11 @@ Partial Class Compras_Compras 'NC CON PRODUCTOS - CUENTA PUENTE - If UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen.Contiene(225) Then + If UsuarioActual.Empresa.UsaInventarios And Not DdlTipoComprobante.SelectedValue.Contiene("Ant") And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And CveConceptoContableAlmacen.Contiene(225) Then importeMovimiento = TmpDT.SUM("Total", $"ISNULL(TipoAF,0) <> 2 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal importeMN = importeMovimiento * tipoCambioActual * Multiplicador - If ObjConta.GetRetCuenta(ConceptoContabilizacionAlmacen, UsuarioActual.CveEmpresa) Then + If ObjConta.GetRetCuenta(CveConceptoContableAlmacen, UsuarioActual.CveEmpresa) Then If ObjConta.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero End If @@ -9790,7 +9806,7 @@ Partial Class Compras_Compras If importeMovimiento <> 0 Then Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContabilizacionAlmacen, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, CveConceptoContableAlmacen, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento)) Then ErrorPrepoliza = True End If End If @@ -9813,7 +9829,7 @@ Partial Class Compras_Compras If DdlTipoCompra.SelectedValue.ToEntero <> 10 Then 'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS] - If UsuarioActual.Empresa.UsaInventarios And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And ConceptoContabilizacionAlmacen > 0 Then + If UsuarioActual.Empresa.UsaInventarios And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" And CveConceptoContableAlmacen > 0 Then DT = DT.FiltraParametros("CveTipoPS <> 2") End If End If @@ -9960,14 +9976,14 @@ Partial Class Compras_Compras Next End If - 'VALIDAR PREPOLIZA DE COMPRA - If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then - If ObjConta.ValorPolizaDescuadre > 0 Then - ErrorPrepoliza = True - Alert("Error en validacion de prepoliza cuadre", TipoMensaje.MsgAdvertencia) - GuardaLogAD($"Compras/Compras-Actualizar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") - End If - End If + ''VALIDAR PREPOLIZA DE COMPRA + 'If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then + ' If ObjConta.ValorPolizaDescuadre > 0 Then + ' ErrorPrepoliza = True + ' Alert("Error en validacion de prepoliza cuadre", TipoMensaje.MsgAdvertencia) + ' GuardaLogAD($"Compras/Compras-Actualizar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + ' End If + 'End If If Not ErrorPrepoliza Then Retorno = True @@ -20018,7 +20034,7 @@ Partial Class Compras_Compras 'Agrupa los CvePS iguales y suma sus cantidades For Each row In TmpDT.AsEnumerable() Dim cvePS As Integer = row.Field(Of Integer)("CvePS") - Dim cantidad As Decimal = row.Field(Of Decimal)("Cantidad") + Dim cantidad As Decimal = row("Cantidad").Tostring.ToDecimal If ExistenciasPSFactura.ContainsKey(cvePS) Then ExistenciasPSFactura(cvePS) += cantidad Else @@ -20733,39 +20749,30 @@ Partial Class Compras_Compras End Sub - 'Private Function ObtConceptoContableProvisionCompra(CveTipoConcepto As Integer, TipoDocto As String, CveMoneda As Integer, Optional EsComplementaria As Boolean = False) As Integer - ' Dim Retorno As Integer = -1 - - ' 'If CveTipoConcepto = 1 Then ''PROVEEDOR - ' If EsComplementaria Then - ' Retorno = If(TipoDocto = "Fac", 201, 234) - ' Return Retorno - ' End If - ' If CveMoneda = 1 Then - ' Retorno = If(TipoDocto = "Fac", 5, 18) - ' Else - ' Retorno = If(TipoDocto = "Fac", 311, 341) - ' End If - ' Else ''ACREEDOR - ' If EsComplementaria Then - ' Retorno = If(TipoDocto = "Fac", -1, -1) - ' Return Retorno - ' End If - ' If CveMoneda = 1 Then - ' Retorno = If(TipoDocto = "Fac", 305, 323) - ' Else - ' Retorno = If(TipoDocto = "Fac", 306, 343) - ' End If - ' End If - - ' Return Retorno - - 'End Function - - + Protected Sub BtnFolioGarantiaRestantes_Click(sender As Object, e As EventArgs) + Using ObjAcum As New ClsAcumuladores + If ObjAcum.GetFoliosGarantiasDetalleDisponibles(DdlFolioGarantia.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa) Then + Dim dtt As DataTable = ObjAcum.DtResultados.FiltraParametros("CantidadDisponible > 0") + Dim Porcentaje As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal + Dim tCveSub As Integer = TmpDT.MAX("CveSubProyecto").ToEntero + Dim tCveTipoGasto As Integer = TmpDT.MAX("CveTipoGasto").ToEntero + Dim Total As Decimal = TmpDT.SUMD("Total") + For Each drr As DataRow In TmpDT.Rows + ClavesBorradas.Add(drr("CveCompraDetalle").ToString) + Next + TmpDT.Clear() + For Each dr As DataRow In dtt.Rows + Dim pu As Decimal = Total / dtt.SUMD("CantidadDisponible") + Dim cantidad As Decimal = dr("CantidadDisponible").ToString.ToDecimal + AddPS(cantidad, dr("CveUM").ToString.ToEntero, "", dr("CveClasificacion").ToString.ToEntero, "", dr("CvePS").ToString.ToEntero, dr("PS").ToString, 2, tCveSub.ToString, "SE", "SE", "", "", pu, Total, Porcentaje, 0, 0, 0, 0, 0, PorcentajeIVA:=Porcentaje, TCalculaTotales:=True, CveTipoGasto:=tCveTipoGasto) + Next + AddPS2() + End If + End Using + End Sub End Class