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 @@
+
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