-- mejoras para E189. en manejo de cantidades mayores a los generados en la OC

This commit is contained in:
2025-01-30 09:29:01 -07:00
parent 3c9041e9b6
commit b396618f9d
2 changed files with 21 additions and 57 deletions

View File

@@ -1734,7 +1734,7 @@
<asp:HiddenField ID="HdnAlertaPUCero" Value="-1" runat="server" ClientIDMode="Static" />
<asp:GridView runat="server" ID="GvOC1" AutoGenerateColumns="false"
GridLines="None" UseAccessibleHeader="true" EmptyDataText="No se encontraron registros." CssClass="table table-striped table-hover Widthall Sortable" RowStyle-HorizontalAlign="Center"
GridLines="None" UseAccessibleHeader="true" EmptyDataText="No se encontraron registros." CssClass="table table-striped table-hover Widthall Sortable"
DataKeyNames="CantidadF,FolioREQ,CveProveedorSucursal,CveTipoPS,PS,CantidadPendienteVincular,IEPSPS,IVA,RetIVA,RetISR,Descuento,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,IEPSPSIVAPorcentaje,Cantidad,CveProveedorOC,Importe,CveSATPS,NumeroParte,CvePS">
<Columns>
@@ -1974,7 +1974,7 @@
<asp:UpdatePanel runat="server" ID="UpGvOC2" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivDatosCompra" style="height: 250px; overflow-y: auto;">
<asp:GridView AutoGenerateColumns="false" runat="server" ID="GvOC2" GridLines="None" EmptyDataText="No se encontraron registros." CssClass="table table-striped table-hover gridconheader Widthall" RowStyle-HorizontalAlign="Center" DataKeyNames="Cantidad,UM,PS,CvePS,CodigoPS,SATClaveProductoServicio,PU,Total,Descuento">
<asp:GridView AutoGenerateColumns="false" runat="server" ID="GvOC2" GridLines="None" EmptyDataText="No se encontraron registros." CssClass="table table-striped table-hover gridconheader Widthall" DataKeyNames="Cantidad,UM,PS,CvePS,CodigoPS,SATClaveProductoServicio,PU,Total,Descuento">
<Columns>
<asp:BoundField HeaderText="#" DataField="Consec" ItemStyle-Width="20px" ItemStyle-Font-Size="6pt" />
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,##0.######}" ItemStyle-Width="50px" FooterStyle-HorizontalAlign="Right" />

View File

@@ -710,7 +710,6 @@ Partial Class Compras_Compras
End Set
End Property
Private Property TipoCambioOriginal As Decimal
Get
Return ViewState("TipoCambioOriginal").ToString.ToDecimal
@@ -2884,7 +2883,6 @@ Partial Class Compras_Compras
HfTotalCompra.Value = TxtTotal.Text
TipoCambio = dr("TipoCambio").ToString.ToDecimal
TipoCambioOriginal = dr("TipoCambioOriginal").ToString.ToDecimal
If TipoCambio > 1 Then LblTC.Text = String.Format("TC: {0}", TipoCambio.ToString("N4"))
If TipoCambio <> TipoCambioOriginal Then LblTCO.Text = String.Format("<br/>TC Original: {0}", TipoCambioOriginal.ToString("N4"))
@@ -7860,12 +7858,18 @@ Partial Class Compras_Compras
End If
End If
If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 OrElse ImporteRNCProntoPago > 0) Then
If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso (ImporteRNC > 0 Or ImporteRNCProntoPago > 0) Then
If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal,
If ImporteRNC > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNC, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal,
TxtSerie.Text, TxtFolio.Text) Then
TieneError = True
End If
If ImporteRNCProntoPago > 0 AndAlso Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, ObjConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate, $"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteRNCProntoPago, DdlMoneda.SelectedValue.ToEntero, TxtTC.Text.ToDecimal,
TxtSerie.Text, TxtFolio.Text, PrefijoSerie:="PP") Then
TieneError = True
End If
End If
If Not TieneError Then
@@ -10246,6 +10250,7 @@ Partial Class Compras_Compras
_Moneda = ValorXML(nodo, "Moneda")
_TipoComprobante = ValorXML(nodo, "tipoDeComprobante")
TipoCambio = ValorXML(nodo, "TipoCambio", "1").ToDecimal
TipoCambioOriginal = TipoCambio
If Version = "3.3" Or Version = "4.0" Then
Dim drm As DataRow = GlobalDTVtaMetodoPago.FiltroPrimero(String.Format("ClaveMetodoPagoSAT = '{0}'", ValorXML(nodo, "MetodoPago")))
@@ -15329,9 +15334,8 @@ Partial Class Compras_Compras
e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", $"LimitaCantidadOC({e.Row.DBCampo("CantidadPendienteVincular")}, this);{JSCambiaScript}")
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso PermisoVinculacionImporteDiferente Then ' código temporal, excluir que valide cantidad GDIAZ
e.Row.FCTextBox("TxtCantidad").Attributes.Remove("onkeyup")
e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", $"{JSCambiaScript}") 'se quita el llamado a candado de la cantidad
End If
e.Row.FCTextBox("TxtPU").Attributes.Add("onkeyup", JSCambiaScript)
e.Row.FCTextBox("TxtCantidad").Attributes.Add("onblur", $"ValidaImporteCero('{e.Row.DBCampo("PS").Replace("'", "")}',{e.Row.FCTextBox("TxtCantidad").ClientID}, {e.Row.FCTextBox("TxtPU").ClientID});")
@@ -15686,7 +15690,7 @@ Partial Class Compras_Compras
dr = DTOCGV.Rows(gvr.RowIndex)
Dim Cantidad As Decimal = gvr.FCTextBox("TxtCantidad").Text.ToDecimal 'dr("Cantidad").ToString.ToDouble
Dim CantidadF As Decimal = gvr.DataKey("CantidadF").ToString.ToDecimal 'dr("Cantidad").ToString.ToDouble
Dim CantidadF As Decimal = gvr.FCTextBox("TxtCantidad").Text.ToDecimal ' gvr.DataKey("CantidadF").ToString.ToDecimal 'dr("Cantidad").ToString.ToDouble
Dim CveUM As Integer = dr("CveUM").ToString.ToEntero
Dim UM As String = dr("UM").ToString
Dim CveClasificacion As Integer = dr("CveClasificacion").ToString.ToEntero
@@ -19191,7 +19195,7 @@ Partial Class Compras_Compras
Protected Sub BtnDevolucion_Click(sender As Object, e As EventArgs)
Dim ObjCompras As New ClsCompras
Dim TieneError As Boolean = False
Dim ImporteCompra As Decimal = 0
Dim ImporteDevCompra As Decimal = 0
Dim tCveSubProyeto As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero
Dim ModalidadDevolucion As Integer = 1 ' 1 - devolución para que alamcen la confirme, 2 - devolución en automático generando RNC
@@ -19207,7 +19211,7 @@ Partial Class Compras_Compras
Dim PU As Decimal = gvr.DataKey("PU").ToDecimal
If gvr.FCTextBox("TxtCant").Text.ToDecimal > 0 Then
ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 0, UsuarioActual.CveUsuario, CantidadDevolucion:=gvr.FCTextBox("TxtCant").Text.ToDecimal)
ImporteCompra = ImporteCompra + ((PU * Cantidad))
ImporteDevCompra = ImporteDevCompra + ((PU * Cantidad))
Else
ObjCompras.UpdateEstatusAlmacenDetalle(gvr.DataKey("CveCompraDetalle").ToEntero, 1, UsuarioActual.CveUsuario, CantidadDevolucion:=0)
End If
@@ -19226,17 +19230,15 @@ Partial Class Compras_Compras
Dim Cantidad As Decimal = gvr.FCTextBox("TxtCant").Text.ToDecimal
Dim PU As Decimal = gvr.DataKey("PU").ToDecimal
If gvr.FCTextBox("TxtCant").Text.ToDecimal > 0 Then
ImporteCompra = ImporteCompra + ((PU * Cantidad))
ImporteDevCompra = ImporteDevCompra + ((PU * Cantidad))
End If
Next
ImporteRNC = ImporteCompra.RoundSQL
If ChkEsDevolucionDevInv.Checked Then
Dim objConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL)
CvePrePoliza = objConta.AddPrePolizas("Compras/RncDevInv", 53, ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, $"RNC Devolucion Inv {TxtSerie.Text}-{TxtFolio.Text}",
CvePrePoliza = objConta.AddPrePolizas("Compras/RncDevInv", 53, ImporteDevCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, $"RNC Devolucion Inv {TxtSerie.Text}-{TxtFolio.Text}",
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=0, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue,
UsuarioActual.CveEmpresa), CveTipoPoliza:=objConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
If CvePrePoliza > 0 Then
@@ -19266,7 +19268,7 @@ Partial Class Compras_Compras
CompraActual.EsImportacion = chkImportacion.Checked
If Not GeneraRNC(ObjCompras.IniciaTransacSQL, CveCompra, CompraActual, objConta, CvePrePoliza, DdlProveedor.SelectedValue.ToEntero, DdlProveedor.SelectedItem.Text, TxtFecha.Text.ToDate,
$"Remisión Nota de Crédito {TxtDescripcion.Text}", DdlMoneda.SelectedValue.ToEntero, TipoCambioOriginal,
$"Remisión Nota de Crédito {TxtDescripcion.Text}", ImporteDevCompra, DdlMoneda.SelectedValue.ToEntero, TipoCambioOriginal,
TxtSerie.Text, TxtFolio.Text, PrefijoSerie:="Dev", EsDRMN:=True) Then
TieneError = True
End If
@@ -22029,7 +22031,7 @@ Partial Class Compras_Compras
#Region "PRONTO PAGO"
Public Function GeneraRNC(ByRef sqltransaccion As SqlTransaction, CveCompraRegistrada As Integer, ByRef CompraActual As Compra, ByRef ObjConta As ClsContabilidad, CvePrePoliza As Integer,
CveProveedor As Integer, NombreProveedor As String, Fecha As Date, Descripcion As String, CveMoneda As Integer, TipoCambio As Decimal, Serie As String, Folio As String,
CveProveedor As Integer, NombreProveedor As String, Fecha As Date, Descripcion As String, Importe As Decimal, CveMoneda As Integer, TipoCambio As Decimal, Serie As String, Folio As String,
Optional PrefijoSerie As String = "D", Optional EsDRMN As Boolean = False, Optional TmpListadoPS As DataTable = Nothing, Optional RedondearSaldado As Boolean = False) As Boolean
CveCompraDRMC = -1
Dim respuesta As Boolean = True
@@ -22084,8 +22086,8 @@ Partial Class Compras_Compras
Dim CveUM As Integer = PSRow("CveUnidadMedida").ToString.ToEntero
Dim UM As String = PSRow("UnidadMedida").ToString
Dim IVARNC As Decimal = (ImporteRNC * PorcentajeIVA).RoundSQL(2)
Dim TotalRNC As Decimal = If(RedondearSaldado, (ImporteRNC + IVARNC).RoundSQL(2), (ImporteRNC + IVARNC))
Dim IVARNC As Decimal = (Importe * PorcentajeIVA).RoundSQL(2)
Dim TotalRNC As Decimal = If(RedondearSaldado, (Importe + IVARNC).RoundSQL(2), (Importe + IVARNC))
CompraRNC.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNC, IVARNC, TotalRNC, PorcentajeIVA, TipoCambio:=TipoCambioOriginal)
If CompraRNC.AddCompra(sqltransaccion) Then
@@ -22104,50 +22106,12 @@ Partial Class Compras_Compras
Else
respuesta = False
End If
If respuesta AndAlso ImporteRNCProntoPago > 0 Then
Dim CompraRNCProntoPago As New ClsCompraManagerCompras(UsuarioActual) With {
.TipoDocto = "RNC",
.CveProveedor = CveProveedor,
.CveTipoProveedor = CveTipoProveedor,
.CveTipoConceptoProveedor = CveTipoConcepto,
.Descripcion = Descripcion,
.NombreProveedor = NombreProveedor,
.Fecha = Fecha,
.CveMoneda = CveMoneda,
.TipoCambio = If(CveMoneda = 1, 1, TipoCambio),
.Serie = $"PP-{Serie}",
.Folio = $"{Folio}",
.CveCompraAmortizacion = CveCompraRegistrada,
.CveCompraRelacionada = CveCompraRegistrada
}
Dim IVARNCProntoPago As Decimal = (ImporteRNCProntoPago * PorcentajeIVA).RoundSQL(2)
CompraRNCProntoPago.ConfiguraRegistroRapido(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNCProntoPago, (ImporteRNCProntoPago + IVARNCProntoPago), IVARNCProntoPago, PorcentajeIVA)
If CompraRNCProntoPago.AddCompra(sqltransaccion) Then
Dim tImporteRNCProntoPago = ImporteRNCProntoPago + IVARNCProntoPago ' le agrego el importe del iva
Dim Pago As New CompraPago
Pago.ImportePago = tImporteRNCProntoPago
Pago.CveMonedaPago = CompraActual.CveMoneda
Pago.CveCompraAmortizacion = CompraRNCProntoPago.CveCompra
Pago.Referencia = CompraRNCProntoPago.SerieFolio
Pago.TCPago = CompraActual.TC
Pago.AplicaAcreditable = False
Pago.TipoPago = "RNC"
Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC
respuesta = Not AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta)
Else
respuesta = False
End If
End If
End If
If RedondearSaldado And respuesta Then
Alert("Saldado correctamente")
End If
Return respuesta
End Function