diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 4f4952174..660c5a22c 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -672,7 +672,7 @@ # Cant Unidad - Clasificación + Clasificación     @@ -682,7 +682,7 @@
Producto o Servicio - Observación + Observación   @@ -772,7 +772,7 @@ <%-- 3 --%> - +
@@ -785,7 +785,7 @@ <%-- 4 --%> - + <%-- 5 --%> diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 2fe6da977..6a5c5bcf7 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1907,8 +1907,8 @@ Partial Class Compras_Compras SubTotalConceptos = TmpDT.SUMD("Total").RoundSQL If Not TmpDT.Columns.Contains("Amortizacion") Then TmpDT.Columns.Add("Amortizacion", GetType(Decimal)) - If Not TmpDT.Columns.Contains("AplicaLote") Then TmpDT.Columns.Add("AplicaLote", GetType(Boolean)) - If Not TmpDT.Columns.Contains("AplicaCaducidad") Then TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean)) + If Not TmpDT.Columns.Contains("AplicaLote") Then TmpDT.Columns.Add(New DataColumn("AplicaLote", GetType(Boolean)) With {.DefaultValue = False}) + If Not TmpDT.Columns.Contains("AplicaCaducidad") Then TmpDT.Columns.Add(New DataColumn("AplicaCaducidad", GetType(Boolean)) With {.DefaultValue = False}) If Not TmpDT.Columns.Contains("Lote") Then TmpDT.Columns.Add("Lote", GetType(String)) If Not TmpDT.Columns.Contains("FechaCaducidad") Then TmpDT.Columns.Add("FechaCaducidad", GetType(Date)) @@ -3154,36 +3154,34 @@ Partial Class Compras_Compras 'VINCULACIÓN OC - NUEVA DICIEMBRE 2015 If dr("OCVinculada").ToString() <> "" Then - Dim DtOCs As New DataTable + Dim OCS As String = "", CveOCS As String = "" - - DtOCs.Columns.Add("FolioOC", GetType(Integer)) + Dim DtOCs As New DataTable + DtOCs.Columns.Add("SerieFolioOC", GetType(String)) DtOCs.Columns.Add("CveOrdenCompra", GetType(Integer)) - - - For Each drt As DataRow In TmpDT.Rows - If drt("FolioOC").ToString <> "" Then + DtOCs.Columns.Add("Fecha", GetType(Date)) + DtOCs.Columns.Add("Descripcion", GetType(String)) + For Each drt As DataRow In TmpDT.FiltraParametros("", "", {"SerieFolioOC", "CveOrdenCompra"}).Rows + If drt("SerieFolioOC").ToString <> "" Then Dim DrOC As DataRow = DtOCs.NewRow - DrOC("FolioOC") = drt("FolioOC").ToString + DrOC("SerieFolioOC") = drt("SerieFolioOC").ToString DrOC("CveOrdenCompra") = drt("CveOrdenCompra").ToString DtOCs.Rows.Add(DrOC) End If Next - DtOCs = DtOCs.FiltraParametros("", "", {"FolioOC", "CveOrdenCompra"}) - DtOCs.Columns.Add("Fecha", GetType(Date)) - DtOCs.Columns.Add("Descripcion", GetType(String)) - If DtOCs.Rows.Count > 0 Then For Each drt As DataRow In DtOCs.Rows - If ObjOC.GetOrdenesCompraRep("OC", -1, -1, -1, -1, MinFecha, MaxFecha, drt("CveOrdenCompra").ToString.ToEntero, CveProveedor, -1, -1, -1, UsuarioActual.CveEmpresa, -1) Then - If ObjOC.DtResultados.Rows.Count = 1 Then - OCS += If(OCS <> "", String.Format(",{0}", drt("FolioOC").ToString), drt("FolioOC").ToString) - CveOCS += If(CveOCS <> "", String.Format(",{0}", drt("CveOrdenCompra").ToString), drt("CveOrdenCompra").ToString) - drt("Fecha") = ObjOC.DtResultados.FiltroPrimeroValor("FechaIng") - drt("Descripcion") = ObjOC.DtResultados.FiltroPrimeroValor("Descripcion") - End If - End If + OCS += If(OCS <> "", String.Format(",{0}", drt("SerieFolioOC").ToString), drt("SerieFolioOC").ToString) + CveOCS += If(CveOCS <> "", String.Format(",{0}", drt("CveOrdenCompra").ToString), drt("CveOrdenCompra").ToString) + 'If ObjOC.GetOrdenesCompraRep("OC", -1, -1, -1, -1, MinFecha, MaxFecha, drt("CveOrdenCompra").ToString.ToEntero, CveProveedor, -1, -1, -1, UsuarioActual.CveEmpresa, -1) Then + ' If ObjOC.DtResultados.Rows.Count = 1 Then + ' OCS += If(OCS <> "", String.Format(",{0}", drt("FolioOC").ToString), drt("FolioOC").ToString) + ' CveOCS += If(CveOCS <> "", String.Format(",{0}", drt("CveOrdenCompra").ToString), drt("CveOrdenCompra").ToString) + ' drt("Fecha") = ObjOC.DtResultados.FiltroPrimeroValor("FechaIng") + ' drt("Descripcion") = ObjOC.DtResultados.FiltroPrimeroValor("Descripcion") + ' End If + 'End If Next End If @@ -4301,7 +4299,7 @@ Partial Class Compras_Compras Dim AnioFactura As Integer = TxtFecha.Text.ToDate.Year Dim Fecha28Dic As Date = New Date(2024, 12, 28) - If NowADS() >= Fecha28Dic Then + If NowADS() >= Fecha28Dic AndAlso TxtFecha.Text.ToDate.Year < 2025 Then Alert("A partir del 28 de diciembre de 2024 no se pueden registrar facturas de 2024.", TipoMensaje.MsgAdvertencia) Exit Sub End If @@ -7752,8 +7750,8 @@ Partial Class Compras_Compras If CveMovimientoInventario > 0 Then Dim TempParametros As String = Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoInventario)) - Msg.AppendFormat("
Ver Movimiento de Almacen", CveMovimientoInventario) - Msg.AppendFormat("
Imprimir Entrada Almacen", TempParametros) + Msg.AppendFormat("
Ver Movimiento de Almacen  ", CveMovimientoInventario) + Msg.AppendFormat(" Imprimir", TempParametros) End If If UsuarioActual.Empresa.TipoContabilidad = 2 Then @@ -11087,7 +11085,7 @@ Partial Class Compras_Compras If OC.GetOC(CveOC, UsuarioActual.CveEmpresa) Then - TxtOC.Text = OC.Folio.ToString + TxtOC.Text = OC.SerieFolio 'RegistraScript(String.Format("$get('TxtOC').value = '{0}';tb_remove;", OC.Folio)) RegistraScript("tb_remove();") @@ -11141,29 +11139,26 @@ Partial Class Compras_Compras #Region " ALMACEN " Private Sub CargaGvInv() - - If Not TmpDT.Columns.Contains("UUIDRow") Then - TmpDT.Columns.Add("UUIDRow", GetType(String)) - End If + If Not TmpDT.Columns.Contains("UUIDRow") Then TmpDT.Columns.Add("UUIDRow", GetType(String)) For Each dRow As DataRow In TmpDT.Rows If dRow("UUIDRow").ToString.Trim = "" Then dRow("UUIDRow") = Guid.NewGuid().ToString() End If - Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero + 'Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero - dRow("AplicaLote") = False - dRow("AplicaCaducidad") = False + 'dRow("AplicaLote") = False + 'dRow("AplicaCaducidad") = False - If CvePS > 0 Then - Dim drPS As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimero($"CvePS={CvePS}") - If drPS IsNot Nothing Then - dRow("AplicaLote") = If(drPS("AplicaLote").ToString = "", False, Boolean.Parse(drPS("AplicaLote").ToString)) - dRow("AplicaCaducidad") = If(drPS("AplicaCaducidad").ToString = "", False, Boolean.Parse(drPS("AplicaCaducidad").ToString)) - 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaCaducidad", $"CvePS={CvePS}")) - End If + 'If CvePS > 0 Then + ' Dim drPS As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") + ' If drPS IsNot Nothing Then + ' dRow("AplicaLote") = If(drPS("AplicaLote").ToString = "", False, Boolean.Parse(drPS("AplicaLote").ToString)) + ' dRow("AplicaCaducidad") = If(drPS("AplicaCaducidad").ToString = "", False, Boolean.Parse(drPS("AplicaCaducidad").ToString)) + ' 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaCaducidad", $"CvePS={CvePS}")) + ' End If - End If + 'End If Next TmpDT.AcceptChanges() @@ -11175,16 +11170,14 @@ Partial Class Compras_Compras DtInv = TmpDT.FiltraParametros(String.Format("CveTipoPS = 2")).Copy End If - For Each dRow As DataRow In DtInv.Rows - - 'Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero - Dim AplicaLote As Boolean = Boolean.Parse(dRow("AplicaLote").ToString) 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaLote", $"CvePS={CvePS}")) - Dim AplicaCaducidad As Boolean = Boolean.Parse(dRow("AplicaCaducidad").ToString) 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaCaducidad", $"CvePS={CvePS}")) + Dim AplicaLote As Boolean = False + Boolean.TryParse(dRow("AplicaLote").ToString, AplicaLote) + Dim AplicaCaducidad As Boolean = False + Boolean.TryParse(dRow("AplicaCaducidad").ToString, AplicaCaducidad) GvInv.Columns(7).Visible = AplicaLote GvInv.Columns(8).Visible = AplicaCaducidad - Next GvInv.DataSource = DtInv @@ -11254,25 +11247,10 @@ Partial Class Compras_Compras Protected Sub GVINV_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvInv.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then + Dim AplicaLote As Boolean = e.Row.DBCampo("AplicaLote").ToBool + Dim AplicaCaducidad As Boolean = e.Row.DBCampo("AplicaCaducidad").ToBool - Dim CvePS As Integer = e.Row.DataKey("CvePS").ToEntero - - Dim AplicaLote As Boolean = False - Dim AplicaCaducidad As Boolean = False - - If CvePS > 0 Then - Dim drPS As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimero($"CvePS={CvePS}") - If drPS IsNot Nothing Then - AplicaLote = If(drPS("AplicaLote").ToString = "", False, Boolean.Parse(drPS("AplicaLote").ToString)) 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaLote", $"CvePS={CvePS}")) - AplicaCaducidad = If(drPS("AplicaCaducidad").ToString = "", False, Boolean.Parse(drPS("AplicaCaducidad").ToString)) 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaCaducidad", $"CvePS={CvePS}")) - End If - End If - - - If AplicaLote Then - e.Row.FCTextBox("TxtLote").Visible = True - End If - + If AplicaLote Then e.Row.FCTextBox("TxtLote").Visible = True If AplicaCaducidad Then Dim DvFechaCaducidad As HtmlGenericControl = TryCast(e.Row.FindControl("DvFechaCaducidad"), HtmlGenericControl) DvFechaCaducidad.Visible = True @@ -11283,6 +11261,13 @@ Partial Class Compras_Compras Dim StrTipo As String = "CveTipoAlmacen IN (1,2,7,14,19)" If DdlTipoCompra.SelectedValue.Contiene("9", "12") Then StrTipo = "CveTipoAlmacen IN (21)" If EsDevolucionApoyoLogistico Then StrTipo = "CveTipoAlmacen = 27" + If CompraEstaVinculadaOC Then + '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") & ") " + End If + End If e.Row.FCDropDownList("ddlEAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrTipo) e.Row.FCDropDownList("ddlEAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -11303,7 +11288,6 @@ Partial Class Compras_Compras e.Row.FCTextBox("TbCantidad").Enabled = True e.Row.FCTextBox("TbCantidad").Attributes.Add("onblur", String.Format("ValidarCantidad(this,{0})", If(e.Row.DBCampo("CantidadF").ToString.ToDecimal > e.Row.DBCampo("Cantidad").ToString.ToDecimal, e.Row.DBCampo("Cantidad"), e.Row.DBCampo("CantidadF")))) e.Row.FCTextBox("TbCantidad").Text = If(e.Row.DBCampo("CantidadF").ToString.ToDecimal > e.Row.DBCampo("Cantidad").ToString.ToDecimal, e.Row.DBCampo("Cantidad"), e.Row.DBCampo("CantidadF")) - End If 'SIEMPRE ENABLED FALSE @@ -11336,10 +11320,14 @@ Partial Class Compras_Compras 'que no sea recepcion alamcen adelantado. DdlOCVinculaInv If (UsuarioActual.Empresa.Funcionalidad(567) = "1" OrElse UsuarioActual.TienePermisoProceso(121)) AndAlso DdlOCVinculaInv.SelectedValue <> "176" Then If e.Row.FCDropDownList("ddlEAlmacen").Items.Count > 1 Then - e.Row.FCDropDownList("ddlEAlmacen").SelectedIndex = 1 + If UsuarioActual.CveAlmacen > 0 Then + e.Row.FCDropDownList("ddlEAlmacen").SelectedValueExist(UsuarioActual.CveAlmacen) + Else + e.Row.FCDropDownList("ddlEAlmacen").SelectedIndex = 1 + End If e.Row.FCCheckBox("cbInv").Checked = True - ddlAlmacenConsignacion_SelectedIndexChanged(e.Row.FCDropDownList("ddlEAlmacen"), Nothing) - CambiaTotalDevengar(Nothing, Nothing) + 'ddlAlmacenConsignacion_SelectedIndexChanged(e.Row.FCDropDownList("ddlEAlmacen"), Nothing) + ' CambiaTotalDevengar(Nothing, Nothing) End If End If If e.Row.DBCampo("Consec").ToEntero = 0 Then e.Row.BackColor = Drawing.Color.PaleGreen @@ -11388,17 +11376,6 @@ Partial Class Compras_Compras End If End If - If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 Then - - 'e.Row.Cells(4).Text = e.Row.DataKey("PUProtoPago").ToDecimal.ToString("###,###,###.00") - - 'If PorcentajeProntoPago > 0 Then - ' e.Row.Cells(4).Text = e.Row.DataKey("PUProtoPago").ToDecimal - () - 'End If - - End If - - ''VALIDA UNIDAD DE MEDIDA 'If e.Row.DBCampo("CvePS").ToString.ToEntero > 0 Then @@ -11453,6 +11430,14 @@ Partial Class Compras_Compras If DdlTipoCompra.SelectedValue.ToEntero = 10 Then StrAlmacenes = $"Modalidad = 0" If EsDevolucionApoyoLogistico Then StrAlmacenes = " CveTipoAlmacen = 27" + If CompraEstaVinculadaOC Then + '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") & ") " + End If + End If + e.Row.FCDropDownList("ddlAlmacen").DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros(StrAlmacenes) e.Row.FCDropDownList("ddlAlmacen").Items.Insert(0, New ListItem("Seleccione", "-1")) e.Row.FCDropDownList("ddlAlmacen").DataBind() @@ -11469,7 +11454,11 @@ Partial Class Compras_Compras 'que no sea recepcion almacen adelantado. DdlOCVinculaInv If (UsuarioActual.Empresa.Funcionalidad(567) = "1" OrElse UsuarioActual.TienePermisoProceso(121)) AndAlso DdlOCVinculaInv.SelectedValue <> "176" Then If e.Row.FCDropDownList("ddlAlmacen").Items.Count > 1 Then - e.Row.FCDropDownList("ddlAlmacen").SelectedIndex = 1 + If UsuarioActual.CveAlmacen > 0 Then + e.Row.FCDropDownList("ddlAlmacen").SelectedValueExist(UsuarioActual.CveAlmacen) + Else + e.Row.FCDropDownList("ddlAlmacen").SelectedIndex = 1 + End If e.Row.FCCheckBox("cbAll").Checked = True End If End If @@ -11477,6 +11466,13 @@ 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) @@ -12122,7 +12118,7 @@ Partial Class Compras_Compras End Sub Protected Sub CambiaTotalDevengar(sender As Object, e As EventArgs) - CalculaTotalPorDevengar() + If UsuarioActual.Empresa.UsaAC Then CalculaTotalPorDevengar() End Sub #End Region @@ -15484,6 +15480,8 @@ Partial Class Compras_Compras AjusteProntoPagoPorcentajeIVA = TmpDT.MAX("IVAPorcentaje").ToDecimal AjusteProntoPagoConIVA = (ImporteCompraConIVA - ImporteOCConIVA) AjusteProntoPagoSinIVA = (ImporteCompraSinIVA - ImporteOCSinIVA) + If Math.Abs(AjusteProntoPagoConIVA) < 1 Then AjusteProntoPagoConIVA = 0 Else ImporteRNC += AjusteProntoPagoConIVA + If Math.Abs(AjusteProntoPagoSinIVA) < 1 Then AjusteProntoPagoSinIVA = 0 If ConfirmaVinculacionOC_RNC(AjusteProntoPagoPorcentajeIVA) Then Vinculacion() @@ -15505,9 +15503,9 @@ Partial Class Compras_Compras For Each gvr As GridViewRow In GvOC1.Rows If gvr.DataKey("IVAPorcentaje").ToDecimal > 0 Then - ImporteOCConIVA = ImporteOCConIVA + (gvr.FCTextBox("TxtCantidad").Text.ToDecimal * gvr.FCTextBox("TxtPU").Text.ToDecimal) + ImporteOCConIVA = ImporteOCConIVA + (gvr.FCTextBox("TxtCantidad").Text.ToDecimal * gvr.FCTextBox("TxtPU").Text.ToDecimal) '- gvr.DataKey("Descuento").ToDecimal Else - ImporteOCSinIVA = ImporteOCSinIVA + (gvr.FCTextBox("TxtCantidad").Text.ToDecimal * gvr.FCTextBox("TxtPU").Text.ToDecimal) + ImporteOCSinIVA = ImporteOCSinIVA + (gvr.FCTextBox("TxtCantidad").Text.ToDecimal * gvr.FCTextBox("TxtPU").Text.ToDecimal) '- gvr.DataKey("Descuento").ToDecimal End If Next @@ -15534,7 +15532,6 @@ Partial Class Compras_Compras End Sub Private Sub Vinculacion(Optional VinculacionCompleta As Boolean = False) - 'SI PUEDE RECIBIR POR OC Y COMPRA If UsuarioActual.CveEmpresa = 119 AndAlso UsuarioActual.Empresa.UsaInventarios And UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 AndAlso CveTipoConcepto = 1 Then @@ -15596,6 +15593,7 @@ Partial Class Compras_Compras Dim PU As Decimal = gvr.FCTextBox("TxtPU").Text.ToDecimal Dim tDescuento As Decimal = dr("Descuento").ToString.ToDecimal Dim Total As Decimal = If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, Math.Round((gvr.FCTextBox("TxtCantidad").Text.ToDecimal * gvr.FCTextBox("TxtPU").Text.ToDecimal) - (TxtDescuento.Text.ToDouble / TotalRows).ToDecimal, 2), Cantidad * PU - tDescuento) 'gvr.FCTextBox("TxtTotalOC1").Text.ToDecimal) + 'Dim Total As Decimal = gvr.FCTextBox("TxtTotalOC1").Text.ToDecimal 'Dim IVA As Decimal = gvr.FCHiddenField("HdnOC1IVA").Value.ToDecimal 'Dim RetIVA As Double = gvr.FCHiddenField("HdnOC1RetIVA").Value.ToDecimal @@ -15627,6 +15625,12 @@ Partial Class Compras_Compras End If End If + If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then + PU = ((PU * Cantidad) - tDescuento) / Cantidad + Descuentos = 0 + Descuento = 0 + End If + AddPS(Cantidad, CveUM, UM, CveClasificacion, Clasificacion, CvePS, PS, CveTipoPS, CveSubProyectoContrato, SubProyecto, Proyecto, CveProyecto, Obs, PU, Total, IVA, RetIVA, RetISR, IEPSPS, IEPSPSIVA, Descuento, CveOrdenCompraDetalle, False, CantidadF:=CantidadF, EntregaDirecta:=EntregaDirecta, CveSATPS:=CveSATPS, CveTipoGasto:=CveTipoGasto, TipoGasto:=TipoGasto, CveContratoDetalle:=CveContratoDetalle, CveCultivoCuadroDetalle:=CveCultivoCuadroDetalle, CveSATPSActualizado:=CveSATPSActualizado) @@ -15640,7 +15644,7 @@ Partial Class Compras_Compras TmpDT.Rows(Index)("CveClasificacionOG") = dr("CveClasificacionOG").ToString.ToEntero 'TmpDT.Rows(Index)("PSCodigo") = DtTemporalXML.Rows(IndexTmpOriginal)("PSCodigo") - TmpDT.Rows(Index)("PSCodigo") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("PSCodigo", "").ToString + TmpDT.Rows(Index)("PSCodigo") = dr("PS").ToString ' GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("PSCodigo", "").ToString Dim CveAF As String = dr("CveActivoFijo").ToString If CveAF <> "" AndAlso CveAF <> "-1" Then @@ -15657,7 +15661,7 @@ Partial Class Compras_Compras IndexTmpOriginal += 1 Next - If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (AjusteProntoPagoConIVA > 0 Or AjusteProntoPagoSinIVA > 0) Then + If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 Or AjusteProntoPagoSinIVA > 0) Then Dim CvePS_RNC As Integer = UsuarioActual.Empresa.Funcionalidad(580).ToEntero If CvePS_RNC = 0 Then @@ -15689,8 +15693,8 @@ Partial Class Compras_Compras Dim UM As String = PSRow("UnidadMedida").ToString - If AjusteProntoPagoConIVA > 0 Then - AddPS(1, CveUM, UM, CveClasificacion, Clasificacion, CvePS_RNC, PS, 1, CveSubProyectoPrincipal.ToString, SubProyecto, "", "-1", "", AjusteProntoPagoConIVA, AjusteProntoPagoConIVA, AjusteProntoPagoPorcentajeIVA, 0, 0, 0, 0, 0) + If ImporteRNC > 0 Then + AddPS(1, CveUM, UM, CveClasificacion, Clasificacion, CvePS_RNC, PS, 1, CveSubProyectoPrincipal.ToString, SubProyecto, "", "-1", "", ImporteRNC, ImporteRNC, AjusteProntoPagoPorcentajeIVA, 0, 0, 0, 0, 0) End If If AjusteProntoPagoSinIVA > 0 Then @@ -15698,14 +15702,13 @@ Partial Class Compras_Compras End If End If - - AddPS2(False) + CompraEstaVinculadaOC = True + 'AddPS2(False) 'AJUSTE DE REDONDEO O DIFERENCIA PERMITIDA DE IMPORTE AjustaImporteUltimoConcepto((If(TieneAmortizacion, TmpDT.SUMD("ImporteSinImpuestos"), TxtSubTotal2.Text.ToDouble) + TxtOtrosImpuestos.Text.ToDouble).ToDecimal - If(TieneAmortizacion, TmpDT.SUM("ImporteSinImpuestos").ToString.ToDecimal, TmpDT.SUM("Total").ToString.ToDecimal)) 'AjustaImporteUltimoConcepto(TxtSubTotal2.Text.ToDecimal + TxtOtrosImpuestos.Text.ToDecimal - (TmpDT.SUM("Total").ToString.ToDecimal)) - BtnGuardar.Enabled = True If Not CierrePeriodo Then BtnGuardar.Visible = True @@ -15804,9 +15807,7 @@ Partial Class Compras_Compras End If - CalculaTotales() - CompraEstaVinculadaOC = True End Sub @@ -16917,8 +16918,9 @@ Partial Class Compras_Compras Private Sub CargaSerie() Dim AplicaCaducidad As Boolean = False - If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).Rows(0) IsNot Nothing Then - AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).Rows(0)("AplicaCaducidad").ToString = "True", True, False) + Dim drr As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltroPrimero("") + If drr IsNot Nothing Then + AplicaCaducidad = If(drr("AplicaCaducidad").ToString = "True", True, False) End If If AplicaCaducidad Then @@ -16969,7 +16971,7 @@ Partial Class Compras_Compras Protected Sub BtnAgregarPS_Click(sender As Object, e As EventArgs) Dim SerieLote As String = TxtSerieLote.Text.Replace(" ", String.Empty) Dim AplicaCaducidad As Boolean = False - Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltroPrimero("", "PS") + Dim dr As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSSerieLote).FiltroPrimero("", "PS") If dr IsNot Nothing Then AplicaCaducidad = dr("AplicaCaducidad").ToString = "True" 'VALIDA QUE LA SERIE NO SEA IGUAL AL CODIGO O CODIGOBARRAS @@ -21992,7 +21994,7 @@ Partial Class Compras_Compras .NombreProveedor = NombreProveedor, .Fecha = Fecha, .CveMoneda = CveMoneda, - .Serie = If(EsDRMN, $"DRNC-{Serie}", Serie), + .Serie = $"D-{Serie}", .Folio = Folio, .CveCompraAmortizacion = CveCompraRegistrada } @@ -22849,23 +22851,15 @@ Public Class ClsCompraManagerCompras TmpDT.Columns.Add("CveSATPSActualizado") SubTotalConceptos = TmpDT.SUMD("Total").RoundSQL - If Not TmpDT.Columns.Contains("Amortizacion") Then - TmpDT.Columns.Add("Amortizacion", GetType(Decimal)) - End If + If Not TmpDT.Columns.Contains("Amortizacion") Then TmpDT.Columns.Add("Amortizacion", GetType(Decimal)) + If Not TmpDT.Columns.Contains("AplicaLote") Then TmpDT.Columns.Add("AplicaLote", GetType(Boolean)) - If Not TmpDT.Columns.Contains("AplicaLote") Then - TmpDT.Columns.Add("AplicaLote", GetType(Boolean)) - End If - If Not TmpDT.Columns.Contains("AplicaCaducidad") Then - TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean)) - End If - If Not TmpDT.Columns.Contains("Lote") Then - TmpDT.Columns.Add("Lote", GetType(String)) - End If - If Not TmpDT.Columns.Contains("FechaCaducidad") Then - TmpDT.Columns.Add("FechaCaducidad", GetType(Date)) - End If + If Not TmpDT.Columns.Contains("AplicaCaducidad") Then TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean)) + + If Not TmpDT.Columns.Contains("Lote") Then TmpDT.Columns.Add("Lote", GetType(String)) + + If Not TmpDT.Columns.Contains("FechaCaducidad") Then TmpDT.Columns.Add("FechaCaducidad", GetType(Date)) 'VALIDA QUE EL XML SI VIENE CON EL CODIGO SAT 01010101 Dim ProductosCodigoSATNoPermitidos As New StringBuilder("") @@ -22875,7 +22869,6 @@ Public Class ClsCompraManagerCompras If ProductosCodigoSATNoPermitidos.ToString.Length > 0 Then Errores.AppendLine($"El comprobante contiene productos con código SAT '01010101', revise los productos:

{ProductosCodigoSATNoPermitidos.ToString}") - End If Else GuardaLog($"Error al cargar detalles GetFacturasComparacionXML.")