-- devolución con descuento por RNC.

This commit is contained in:
2025-02-17 21:47:38 -07:00
parent b551cdf648
commit e283f4450d
2 changed files with 645 additions and 625 deletions

View File

@@ -1524,7 +1524,7 @@
</div> </div>
<br /> <br />
<asp:GridView ID="GVDevolucion" runat="server" DataKeyNames="CveMovimientoDetalle,CveAlmacen,Total,PU,Cantidad,CvePS,CveUM,UM,CveClasificacion,Clasificacion,PS,CveTipoPS,PUExtranjero" ShowFooter="true" GridLines="None" AutoGenerateColumns="false" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%" CssClass="table table-striped table-hover Widthall"> <asp:GridView ID="GVDevolucion" runat="server" DataKeyNames="CveMovimientoDetalle,CveAlmacen,Total,PU,Cantidad,CvePS,CveUM,UM,CveClasificacion,Clasificacion,CodigoPS,CveTipoPS,PUExtranjero" ShowFooter="true" GridLines="None" AutoGenerateColumns="false" EmptyDataText="Aun no hay registros." ShowHeaderWhenEmpty="True" Width="100%" CssClass="table table-striped table-hover Widthall">
<Columns> <Columns>
<asp:TemplateField HeaderText="Cantidad" ItemStyle-Width="60px" ItemStyle-HorizontalAlign="Right"> <asp:TemplateField HeaderText="Cantidad" ItemStyle-Width="60px" ItemStyle-HorizontalAlign="Right">
<ItemTemplate> <ItemTemplate>

View File

@@ -1439,12 +1439,18 @@ Partial Class Compras_Compras
End If End If
If DdlTipoComprobante.SelectedValue = "NC" Then If DdlTipoComprobante.SelectedValue = "NC" Then
'paneldevolucion.Visible = True
Pnlalmaceninventarios.Visible = False Pnlalmaceninventarios.Visible = False
'cargaddldevoluciones(CveProveedor, TxtSubTotal2.Text.ToDouble)
InicializaAplicaNCFact()
DivReembolso.Visible = False DivReembolso.Visible = False
RBLPago.Items(2).Enabled = False RBLPago.Items(2).Enabled = False
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then
ConfiguraseleccionRNC()
Else
InicializaAplicaNCFact()
End If
'paneldevolucion.Visible = True
'cargaddldevoluciones(CveProveedor, TxtSubTotal2.Text.ToDouble)
End If End If
If DdlTipoComprobante.SelectedValue = "DEV" Then If DdlTipoComprobante.SelectedValue = "DEV" Then
@@ -1579,7 +1585,6 @@ Partial Class Compras_Compras
'RFVSubProyecto.Enabled = True 'RFVSubProyecto.Enabled = True
End If End If
'VALIDA Usuario TIPO REMESA 'VALIDA Usuario TIPO REMESA
If UsuarioActual.TienePermisoProceso(108) Then If UsuarioActual.TienePermisoProceso(108) Then
RBLPago.Enabled = False RBLPago.Enabled = False
@@ -1672,10 +1677,6 @@ Partial Class Compras_Compras
DdlTipoComprobante.SelectedValueExist("DEV") DdlTipoComprobante.SelectedValueExist("DEV")
End If End If
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 AndAlso DdlTipoComprobante.SelectedValue = "NC" Then
ConfiguraseleccionRemisionNotaCredito()
End If
If Not CveCompra > 0 Then If Not CveCompra > 0 Then
LnkProrrateoGasolina.Visible = True LnkProrrateoGasolina.Visible = True
InicializaDTProrrateoGasolina() InicializaDTProrrateoGasolina()
@@ -1791,7 +1792,7 @@ Partial Class Compras_Compras
'End Sub 'End Sub
Private Sub ConfiguraseleccionRemisionNotaCredito() Private Sub ConfiguraseleccionRNC()
Dim AutoSelRNC As Boolean = False Dim AutoSelRNC As Boolean = False
DdlTipoComprobante_SelectedIndexChanged(Nothing, Nothing) DdlTipoComprobante_SelectedIndexChanged(Nothing, Nothing)
@@ -2011,8 +2012,10 @@ Partial Class Compras_Compras
SubTotalConceptos = TmpDT.SUMD("Total").RoundSQL SubTotalConceptos = TmpDT.SUMD("Total").RoundSQL
If Not TmpDT.Columns.Contains("Amortizacion") Then TmpDT.Columns.Add("Amortizacion", GetType(Decimal)) If Not TmpDT.Columns.Contains("Amortizacion") Then TmpDT.Columns.Add("Amortizacion", GetType(Decimal))
If Not TmpDT.Columns.Contains("AplicaSerie") Then TmpDT.Columns.Add(New DataColumn("AplicaSerie", GetType(Boolean)) With {.DefaultValue = False})
If Not TmpDT.Columns.Contains("AplicaLote") Then TmpDT.Columns.Add(New DataColumn("AplicaLote", GetType(Boolean)) With {.DefaultValue = False}) 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("AplicaCaducidad") Then TmpDT.Columns.Add(New DataColumn("AplicaCaducidad", GetType(Boolean)) With {.DefaultValue = False})
If Not TmpDT.Columns.Contains("Serie") Then TmpDT.Columns.Add("Serie", GetType(String))
If Not TmpDT.Columns.Contains("Lote") Then TmpDT.Columns.Add("Lote", GetType(String)) 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)) If Not TmpDT.Columns.Contains("FechaCaducidad") Then TmpDT.Columns.Add("FechaCaducidad", GetType(Date))
@@ -2121,7 +2124,10 @@ Partial Class Compras_Compras
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("DEV")) DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("DEV"))
DdlTipoCompra.Items.Remove(DdlTipoCompra.Items.FindByValue("6")) DdlTipoCompra.Items.Remove(DdlTipoCompra.Items.FindByValue("6"))
DdlTipoCompra.Items.Remove(DdlTipoCompra.Items.FindByValue("11")) DdlTipoCompra.Items.Remove(DdlTipoCompra.Items.FindByValue("11"))
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DdlTipoCompra.Items.Add(New ListItem("Recolección", "14")) If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
DdlTipoCompra.Items.Add(New ListItem("Recolección", "14"))
DdlTipoCompra.Items.Add(New ListItem("Apoyo sin virtual", "16"))
End If
Case "E" Case "E"
DdlTipoComprobante.SelectedValue = "NC" DdlTipoComprobante.SelectedValue = "NC"
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Fac")) DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Fac"))
@@ -2841,6 +2847,10 @@ Partial Class Compras_Compras
CvePrePoliza = dr("CvePrePoliza").ToString.ToEntero CvePrePoliza = dr("CvePrePoliza").ToString.ToEntero
EstatusAlmacen = dr("EstatusAlmacen").ToString.ToEntero EstatusAlmacen = dr("EstatusAlmacen").ToString.ToEntero
DdlTipoCompra.SelectedValueExist(dr("CveTipoCompra")) DdlTipoCompra.SelectedValueExist(dr("CveTipoCompra"))
If DdlTipoCompra.SelectedValue = "16" Then
DdlTipoCompra.Items.Add(New ListItem("Apoyo sin virtual", "16"))
DdlTipoCompra.SelectedValue = dr("CveTipoCompra").ToString
End If
TipoCompraOriginal = dr("CveTipoCompra").ToString.ToEntero TipoCompraOriginal = dr("CveTipoCompra").ToString.ToEntero
CveTipoConcepto = dr("CveTipoConcepto").ToString.ToEntero CveTipoConcepto = dr("CveTipoConcepto").ToString.ToEntero
ChkEsNoDeducible.Checked = dr("NoDeducible").ToString.ToEntero > 0 ChkEsNoDeducible.Checked = dr("NoDeducible").ToString.ToEntero > 0
@@ -5559,12 +5569,15 @@ Partial Class Compras_Compras
Dim TmpDr As DataRow = TmpDT.Select($"Consec = {Row("Consec").ToString}")(0) Dim TmpDr As DataRow = TmpDT.Select($"Consec = {Row("Consec").ToString}")(0)
TmpDr("CveCompraDetalle") = ObjCompras.CveCompraDetalle TmpDr("CveCompraDetalle") = ObjCompras.CveCompraDetalle
' Si no es un movimiento de almacen va a tronar Dim drs As DataRow() = DtInv.Select($"Consec = {Row("Consec").ToString}")
Try If drs.Count > 0 Then drs(0)("CveCompraDetalle") = ObjCompras.CveCompraDetalle
Dim InvDr As DataRow = DtInv.Select($"Consec = {Row("Consec").ToString}")(0)
InvDr("CveCompraDetalle") = ObjCompras.CveCompraDetalle '' Si no es un movimiento de almacen va a tronar
Catch ex As Exception 'Try
End Try ' Dim InvDr As DataRow = DtInv.Select($"Consec = {Row("Consec").ToString}")(0)
' InvDr("CveCompraDetalle") = ObjCompras.CveCompraDetalle
'Catch ex As Exception
'End Try
End If End If
@@ -6540,7 +6553,6 @@ Partial Class Compras_Compras
End If End If
AlmacenSoloExistencia = True AlmacenSoloExistencia = True
End If End If
Dr.AcceptChanges() Dr.AcceptChanges()
Next Next
End If End If
@@ -6583,7 +6595,6 @@ Partial Class Compras_Compras
Dim CvePrePoliza2Almacen As Integer = ObjConta.AddPrePolizas("Compras/Registrar/Almacen", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, NowADS(), ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) Dim CvePrePoliza2Almacen As Integer = ObjConta.AddPrePolizas("Compras/Registrar/Almacen", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, NowADS(), ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
If CvePrePoliza2Almacen > 0 Then If CvePrePoliza2Almacen > 0 Then
Dim ImpPrepoliza As Decimal = 0D Dim ImpPrepoliza As Decimal = 0D
Dim ImpPrepolizaMN As Decimal = 0D Dim ImpPrepolizaMN As Decimal = 0D
@@ -6604,16 +6615,13 @@ Partial Class Compras_Compras
Else Else
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
Else Else
'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
If CveMovimientoInventario > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=ContabilizableAlmacen) Then If CveMovimientoInventario > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 68, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=ContabilizableAlmacen) Then
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
End If End If
'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95
If DdlTipoCompra.SelectedValue = "10" Or EntradaComoGastoConAlmacen Then If DdlTipoCompra.SelectedValue = "10" Or EntradaComoGastoConAlmacen Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 95, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), importeMN.RoundSQL(2), 95, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then
@@ -6831,7 +6839,7 @@ Partial Class Compras_Compras
If RegistraConcepto225 Then If RegistraConcepto225 Then
importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal importeMovimiento = TmpDT.SUM("Total") 'TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal
importeMN = importeMovimiento * tipoCambioActual * Multiplicador importeMN = importeMovimiento * tipoCambioActual * Multiplicador
'no es necesario, ya se está interpretandoe l usado como producto 'no es necesario, ya se está interpretandoe l usado como producto
@@ -6851,8 +6859,6 @@ Partial Class Compras_Compras
End If End If
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then
RegistroCuentaPuente = True RegistroCuentaPuente = True
Dim ImporteTransito As Decimal = 0 Dim ImporteTransito As Decimal = 0
@@ -6870,8 +6876,6 @@ Partial Class Compras_Compras
End If End If
End If End If
Next Next
Dim importeMNTemp As Decimal = 0 Dim importeMNTemp As Decimal = 0
Dim CveCompraAmortizacion As Integer = -1 Dim CveCompraAmortizacion As Integer = -1
@@ -6902,7 +6906,6 @@ Partial Class Compras_Compras
End If End If
End If End If
'si se marca que no se va a recibir, falta validación 'si se marca que no se va a recibir, falta validación
If Not ErrorMovInv AndAlso Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 1, UsuarioActual.CveUsuario) Then If Not ErrorMovInv AndAlso Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 1, UsuarioActual.CveUsuario) Then
ErrorMovInv = True ErrorMovInv = True
@@ -6923,20 +6926,28 @@ Partial Class Compras_Compras
End If End If
End If End If
Else Else
Dim DiferenciaDevolucion As Decimal = If(DdlMoneda.SelectedValue.ToEntero <> 1, (importeMovimiento * TxtTC.Text.ToDecimal), importeMovimiento) - TotalRealDevolucion Dim DiferenciaDevolucion As Decimal = If(DdlMoneda.SelectedValue.ToEntero <> 1, (importeMovimiento * TxtTC.Text.ToDecimal), importeMovimiento) - TotalRealDevolucion
If TotalRealDevolucion <> 0 Then If TotalRealDevolucion <> 0 Then
Dim tCveCompra As Integer = CveCompra
Dim tCveCompraAmortizacion As Integer = -1
If Math.Abs(DiferenciaDevolucion) > 0 Then If Math.Abs(DiferenciaDevolucion) > 0 Then
Dim tMovto As Boolean = False Dim tMovto As Boolean = False
Dim tConceptoDiferencia As Integer = 69
If UsuarioActual.CveEmpresa = 119 Then If UsuarioActual.CveEmpresa = 119 Then
tMovto = True tMovto = True
Else Else
DiferenciaDevolucion = -DiferenciaDevolucion DiferenciaDevolucion = -DiferenciaDevolucion
End If End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion, DiferenciaDevolucion, 69, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then ' las devoluciones, que tengan descuento por rnc, debe de descontar del saldo de la factura aplicada
tConceptoDiferencia = 272
tCveCompraAmortizacion = tCveCompra
If ObjConta.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then
tCveCompra = ObjConta.DtResultados.FiltroPrimeroValor("CveCompraAmortizacion", "CveConceptoContable = 60").ToEntero 'a aplicación de la nc
End If
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion, DiferenciaDevolucion, tConceptoDiferencia, Referencia, Concepto, CveCompra:=tCveCompra, CveCompraAmortizacion:=tCveCompraAmortizacion, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
End If End If
@@ -7014,8 +7025,6 @@ Partial Class Compras_Compras
End If End If
End If End If
'ChkNCInvNC
If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then
'GASTO 'GASTO
If UsuarioActual.CveEmpresa = 119 Then If UsuarioActual.CveEmpresa = 119 Then
@@ -7040,20 +7049,7 @@ Partial Class Compras_Compras
If AgregaMercanciaInventario Then If AgregaMercanciaInventario Then
DT = DT.FiltraParametros("ISNULL(CveTipoPS,0) <> 2") DT = DT.FiltraParametros("ISNULL(CveTipoPS,0) <> 2")
End If End If
Dim DTDistinct As DataTable = DT.Copy Dim DTDistinct As DataTable = DT.Copy
'If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then
' For Each drowdis As DataRow In DTDistinct.Rows
' If drowdis("CveTipoGasto").ToString = "" Then
' drowdis("CveTipoGasto") = 0
' End If
' If drowdis("TipoGasto").ToString.Trim = "" Then
' drowdis("TipoGasto") = "ND"
' End If
' Next
' DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF, 0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"})
'Else
For Each drowdis As DataRow In DTDistinct.Rows For Each drowdis As DataRow In DTDistinct.Rows
If drowdis("CveTipoGasto").ToString = "" Then If drowdis("CveTipoGasto").ToString = "" Then
@@ -7258,7 +7254,7 @@ Partial Class Compras_Compras
End If End If
Next Next
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then If UsuarioActual.Empresa.Funcionalidad(574) = "1" AndAlso DdlTipoCompra.SelectedValue = "15" Then
Dim TotalSaldo As Decimal = TxtTotal.Text.ToDecimal Dim TotalSaldo As Decimal = TxtTotal.Text.ToDecimal
For Each gvRow As GridViewRow In GvRNC.Rows For Each gvRow As GridViewRow In GvRNC.Rows
@@ -10918,17 +10914,17 @@ Partial Class Compras_Compras
TmpDT.Columns.Add("DifPSSat", GetType(Integer)) TmpDT.Columns.Add("DifPSSat", GetType(Integer))
TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
TmpDT.Columns.Add("CveCultivoCuadroDetalle", GetType(Integer)) TmpDT.Columns.Add("CveCultivoCuadroDetalle", GetType(Integer))
TmpDT.Columns.Add("TemporadaCuadro", GetType(String)) TmpDT.Columns.Add("TemporadaCuadro", GetType(String))
TmpDT.Columns.Add("AplicaSerie", GetType(Boolean))
TmpDT.Columns.Add("AplicaLote", GetType(Boolean)) TmpDT.Columns.Add("AplicaLote", GetType(Boolean))
TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean)) TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean))
TmpDT.Columns.Add("Serie", GetType(String))
TmpDT.Columns.Add("Lote", GetType(String)) TmpDT.Columns.Add("Lote", GetType(String))
TmpDT.Columns.Add("FechaCaducidad", GetType(Date)) TmpDT.Columns.Add("FechaCaducidad", GetType(Date))
TmpDTOriginal = New DataTable TmpDTOriginal = New DataTable
TmpDTOriginal.Columns.Add("Consec", GetType(Integer)) TmpDTOriginal.Columns.Add("Consec", GetType(Integer))
TmpDTOriginal.Columns.Add("Cantidad", GetType(Decimal)) TmpDTOriginal.Columns.Add("Cantidad", GetType(Decimal))
@@ -11038,8 +11034,10 @@ Partial Class Compras_Compras
TmpDTOriginal.Columns.Add("CveCultivoCuadroDetalle", GetType(Double)) TmpDTOriginal.Columns.Add("CveCultivoCuadroDetalle", GetType(Double))
TmpDTOriginal.Columns.Add("TemporadaCuadro", GetType(String)) TmpDTOriginal.Columns.Add("TemporadaCuadro", GetType(String))
TmpDTOriginal.Columns.Add("AplicaSerie", GetType(Boolean))
TmpDTOriginal.Columns.Add("AplicaLote", GetType(Boolean)) TmpDTOriginal.Columns.Add("AplicaLote", GetType(Boolean))
TmpDTOriginal.Columns.Add("AplicaCaducidad", GetType(Boolean)) TmpDTOriginal.Columns.Add("AplicaCaducidad", GetType(Boolean))
TmpDTOriginal.Columns.Add("Serie", GetType(String))
TmpDTOriginal.Columns.Add("Lote", GetType(String)) TmpDTOriginal.Columns.Add("Lote", GetType(String))
TmpDTOriginal.Columns.Add("FechaCaducidad", GetType(Date)) TmpDTOriginal.Columns.Add("FechaCaducidad", GetType(Date))
@@ -13876,9 +13874,14 @@ Partial Class Compras_Compras
'si no esta vinculado a nc simplemente me lo brinco 'si no esta vinculado a nc simplemente me lo brinco
If realizadevolucion Then If realizadevolucion Then
'si el subtotal es iwal a la nc lo guardo si no marco error 'si el subtotal es igual a la nc lo guardo si no marco error
If subtotal > subtotaldevolucion - 1 AndAlso subtotal < subtotaldevolucion + 1 Then Dim tTolerancia As Decimal = 0
Dim tAjustaUltimo As Boolean = True
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then
tTolerancia = Math.Abs(TxtSubTotal2.Text.ToDecimal - subtotaldevolucion)
tAjustaUltimo = False
End If
If Math.Abs(subtotal - subtotaldevolucion) <= tTolerancia Then
CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacen, 13, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, Modulo:="Comp/G1") CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacen, 13, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, Modulo:="Comp/G1")
If CveMovimientoEntrada <= 0 Then If CveMovimientoEntrada <= 0 Then
ErrorMovInv = True ErrorMovInv = True
@@ -13894,17 +13897,16 @@ Partial Class Compras_Compras
PU = Dr.DataKey("PU").ToString.ToDecimal PU = Dr.DataKey("PU").ToString.ToDecimal
PUExtranjero = Dr.DataKey("PUExtranjero").ToString.ToDecimal PUExtranjero = Dr.DataKey("PUExtranjero").ToString.ToDecimal
ii += 1 ii += 1
If CantidadRenglones = ii Then If CantidadRenglones = ii AndAlso tAjustaUltimo Then
Dim dif As Decimal = subtotal - Acumulado Dim dif As Decimal = subtotal - Acumulado
PU = (((Dr.FCTextBox("TxtCantidad").Text.ToDecimal * Dr.DataKey("PU").ToString.ToDecimal)) + dif) / Dr.FCTextBox("TxtCantidad").Text.ToDecimal PU = (((Dr.FCTextBox("TxtCantidad").Text.ToDecimal * Dr.DataKey("PU").ToDecimal)) + dif) / Dr.FCTextBox("TxtCantidad").Text.ToDecimal
End If End If
If ObjInventario.GetExistenciasProducto(Dr.DataKey("CvePS").ToString.ToEntero, Dr.DataKey("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, CveAlmacen, Dim tFechaExistencia As DateTime = TxtFecha.Text.ToDateTime.AddHours(NowADS().Hour).AddMinutes(NowADS().Minute).AddSeconds(NowADS().Second)
FechaMovto:=TxtFecha.Text.ToDateTime.AddHours(NowADS().Hour).AddMinutes(NowADS().Minute).AddSeconds(NowADS().Second).ToString("yyyy/MM/dd HH:mm")) Then If ObjInventario.GetExistenciasProducto(Dr.DataKey("CvePS").ToEntero, Dr.DataKey("CveUM").ToEntero, UsuarioActual.CveEmpresa, CveAlmacen,
FechaMovto:=tFechaExistencia.ToString("yyyy/MM/dd HH:mm")) Then
Dim Existencia As Decimal = ObjInventario.DtResultados.FiltroPrimeroValor("ExistenciaFinal", String.Format("CveAlmacen = {0}", CveAlmacen)).ToDecimal Dim Existencia As Decimal = ObjInventario.DtResultados.FiltroPrimeroValor("ExistenciaFinal", String.Format("CveAlmacen = {0}", CveAlmacen)).ToDecimal
If Dr.FCTextBox("TxtCantidad").Text.ToDouble > Existencia Then If Dr.FCTextBox("TxtCantidad").Text.ToDouble > Existencia Then
Alert($"No hay existencia suficiente del producto {Dr.DataKey("PS").ToString} en la fecha:{TxtFecha.Text}", TipoMensaje.MsgAdvertencia) Alert($"No hay existencia suficiente del producto: <br/> - {Dr.DataKey("CodigoPS")} en la fecha: {tFechaExistencia.ToString("yyyy/MM/dd HH:mm")}", TipoMensaje.MsgAdvertencia)
ErrorMovInv = True ErrorMovInv = True
Exit For Exit For
End If End If
@@ -14003,7 +14005,6 @@ Partial Class Compras_Compras
Dim subtotaldevolucion As Decimal = 0 Dim subtotaldevolucion As Decimal = 0
Dim realizadevolucion As Boolean = False Dim realizadevolucion As Boolean = False
'Calculo los subtotales para comparar con la NC 'Calculo los subtotales para comparar con la NC
Dim cantidad As Decimal = 0D Dim cantidad As Decimal = 0D
@@ -14018,11 +14019,13 @@ Partial Class Compras_Compras
'si no esta vinculado a nc simplemente me lo brinco 'si no esta vinculado a nc simplemente me lo brinco
If realizadevolucion Then If realizadevolucion Then
'si el subtotal es iwal a la nc lo guardo si no marco error 'si el subtotal es igual a la nc lo guardo si no marco error
If TxtSubTotal2.Text.ToDouble > subtotaldevolucion - 1 AndAlso TxtSubTotal2.Text.ToDouble < subtotaldevolucion + 1 Then 'si tiene FNC574, se ajustará la diferencia a un concepto como RNC
Dim tTolerancia As Decimal = 1
'si tiene la funcionalidad ajustará en un producto la diferencia
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then tTolerancia = Math.Abs(TxtSubTotal2.Text.ToDecimal - subtotaldevolucion)
If Math.Abs(TxtSubTotal2.Text.ToDecimal - subtotaldevolucion) <= tTolerancia Then
VinculaDevolucion() VinculaDevolucion()
Else Else
Alert("El Total de la NC debe ser igual al total de la devolucion", TipoMensaje.MsgAdvertencia) Alert("El Total de la NC debe ser igual al total de la devolucion", TipoMensaje.MsgAdvertencia)
End If End If
@@ -14053,15 +14056,17 @@ Partial Class Compras_Compras
Dim IVAPorcentajeCompra As Decimal = Math.Round((IVACompra / SubTotalCompra), 2) Dim IVAPorcentajeCompra As Decimal = Math.Round((IVACompra / SubTotalCompra), 2)
Dim Contador As Integer = 0 Dim Contador As Integer = 0
Dim Consec As Integer = 0 Dim Consec As Integer = 0
Dim tAjusteUltimo As Boolean = True
For Each gvr As GridViewRow In GVDevolucion.Rows For Each gvr As GridViewRow In GVDevolucion.Rows
If gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then If gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then
Contador += 1 Contador += 1
End If End If
Next Next
Dim CveSubProyectoContrato As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenDevolucion.SelectedValue.ToEntero).FiltroPrimeroValor("CveSubProyecto") Dim Total As Decimal = 0
Dim SubProyecto As String = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyectoContrato.ToEntero).FiltroPrimeroValor("SubProyecto") Dim CveSubProyectoDev As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenDevolucion.SelectedValue.ToEntero).FiltroPrimeroValor("CveSubProyecto")
Dim SubProyecto As String = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyectoDev.ToEntero).FiltroPrimeroValor("SubProyecto")
'Iteramos el GridView de la OC 'Iteramos el GridView de la OC
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then tAjusteUltimo = False
For Each gvr As GridViewRow In GVDevolucion.Rows For Each gvr As GridViewRow In GVDevolucion.Rows
If gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then If gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then
@@ -14073,7 +14078,7 @@ Partial Class Compras_Compras
Dim UM As String = gvr.DataKey("UM").ToString Dim UM As String = gvr.DataKey("UM").ToString
Dim CveClasificacion As Integer = gvr.DataKey("CveClasificacion").ToString.ToEntero Dim CveClasificacion As Integer = gvr.DataKey("CveClasificacion").ToString.ToEntero
Dim Clasificacion As String = gvr.DataKey("Clasificacion").ToString Dim Clasificacion As String = gvr.DataKey("Clasificacion").ToString
Dim PS As String = gvr.DataKey("PS").ToString Dim PS As String = gvr.DataKey("CodigoPS").ToString
Dim CveTipoPS As Integer = gvr.DataKey("CveTipoPS").ToString.ToEntero Dim CveTipoPS As Integer = gvr.DataKey("CveTipoPS").ToString.ToEntero
Dim CveProyecto As String = "-1" Dim CveProyecto As String = "-1"
@@ -14081,14 +14086,14 @@ Partial Class Compras_Compras
Dim Proyecto As String = "Seleccione" Dim Proyecto As String = "Seleccione"
Dim Obs As String = "" Dim Obs As String = ""
Dim PU As Decimal = gvr.DataKey("PU").ToString.ToDecimal Dim PU As Decimal = gvr.DataKey("PU").ToString.ToDecimal
Dim Total As Decimal = gvr.FCTextBox("TxtTotalDevolucion").Text.ToDecimal Total = gvr.FCTextBox("TxtTotalDevolucion").Text.ToDecimal
Dim IVA As Decimal = IVAPorcentajeCompra 'Math.Round(Total * IVAPorcentajeCompra, 2) Dim IVA As Decimal = IVAPorcentajeCompra 'Math.Round(Total * IVAPorcentajeCompra, 2)
Dim Descuento As Decimal = 0 Dim Descuento As Decimal = 0
Acumulado += (PU * Cantidad) Acumulado += (PU * Cantidad)
Consec += 1 Consec += 1
If Consec = Contador Then 'SubTotalCompra < Acumulado Then If Consec = Contador AndAlso tAjusteUltimo Then 'SubTotalCompra < Acumulado Then
'ajusta el valor 'ajusta el valor
Dim dif As Decimal = SubTotalCompra - Acumulado Dim dif As Decimal = SubTotalCompra - Acumulado
If dif <> 0 Then If dif <> 0 Then
@@ -14096,10 +14101,26 @@ Partial Class Compras_Compras
Total = Cantidad * PU Total = Cantidad * PU
End If End If
End If End If
AddPS(Cantidad, CveUM, UM, CveClasificacion, Clasificacion, CvePS, PS, CveTipoPS, CveSubProyectoContrato, SubProyecto, Proyecto, CveProyecto, Obs, PU, Total, IVA, 0, 0, 0, 0, Descuento, -1, False) AddPS(Cantidad, CveUM, UM, CveClasificacion, Clasificacion, CvePS, PS, CveTipoPS, CveSubProyectoDev, SubProyecto, Proyecto, CveProyecto, Obs, PU, Total, IVAPorcentajeCompra, 0, 0, 0, 0, Descuento, -1, False, CveAlmacen:=DdlAlmacenDevolucion.SelectedValue.ToEntero)
End If End If
Next Next
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then
Dim CvePS_RNC As Integer = UsuarioActual.Empresa.Funcionalidad(580).ToEntero
If CvePS_RNC = 0 Then
Alert("producto utilizado para diferencia no definido.")
Exit Sub
End If
Dim PSRow As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePS_RNC).FiltroPrimero("")
Dim PS As String = PSRow("PSCodigo").ToString
Dim tDif As Decimal = TxtSubTotal2.Text.ToDecimal - Total
AddPS(1, PSRow("CveUnidadMedida").ToString.ToEntero, PSRow("UnidadMedida").ToString,
PSRow("CveClasificacion").ToString.ToEntero, PSRow("Clasificacion").ToString, CvePS_RNC, PS, 1, CveSubProyectoDev.ToString, SubProyecto, "", "-1", "", tDif, tDif, IVAPorcentajeCompra, 0, 0, 0, 0, 0)
End If
AddPS2() AddPS2()
BtnGuardar.Enabled = True BtnGuardar.Enabled = True
@@ -14115,7 +14136,6 @@ Partial Class Compras_Compras
ImgClasificacion.Visible = False ImgClasificacion.Visible = False
LbAgregar.Visible = False LbAgregar.Visible = False
UpPSS.Update()
'CargaGvInv() 'CargaGvInv()
@@ -14137,7 +14157,6 @@ Partial Class Compras_Compras
End If End If
GvOC1.DataBind() GvOC1.DataBind()
' TmpDT = OrdenarTablas("CvePS", DTOCTemp, TmpDT)
GvOC2.DataSource = TmpDT GvOC2.DataSource = TmpDT
GvOC2.DataBind() GvOC2.DataBind()
@@ -14491,19 +14510,13 @@ Partial Class Compras_Compras
End If End If
End If End If
If Not TmpDT.Columns.Contains("AplicaLote") Then If Not TmpDT.Columns.Contains("AplicaLote") Then TmpDT.Columns.Add("AplicaLote", GetType(Boolean))
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))
If ObjInventario.GetInv_ComprasMov(CveCompra, UsuarioActual.CveEmpresa) Then If ObjInventario.GetInv_ComprasMov(CveCompra, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count > 0 Then If ObjInventario.DtResultados.Rows.Count > 0 Then
@@ -16721,7 +16734,6 @@ Partial Class Compras_Compras
End If End If
End If End If
UPCondicionesPago.Update() UPCondicionesPago.Update()
End Sub End Sub
@@ -18169,7 +18181,7 @@ Partial Class Compras_Compras
Case "A" 'ADD Case "A" 'ADD
Dim SATClavePS As Integer = -1 Dim SATClavePS As Integer = -1
Dim PSRow As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("") Dim PSRow As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("")
If PSRow IsNot Nothing Then If PSRow IsNot Nothing Then
SATClavePS = PSRow("SATClavePS").ToString.ToEntero SATClavePS = PSRow("SATClavePS").ToString.ToEntero
End If End If
@@ -18258,13 +18270,11 @@ Partial Class Compras_Compras
Optional PSCodigo As String = "-", Optional PSDescripcion As String = "-", Optional CantidadF As Double = -1, Optional EntregaDirecta As Integer = -1, Optional OtrosGastos As Decimal = 0, Optional PSCodigo As String = "-", Optional PSDescripcion As String = "-", Optional CantidadF As Double = -1, Optional EntregaDirecta As Integer = -1, Optional OtrosGastos As Decimal = 0,
Optional CveSATPS As Integer = -1, Optional CargaXml As Boolean = False, Optional CveTipoGasto As Integer = -1, Optional TipoGasto As String = "", Optional PorcentajeIVA As Decimal = 0, Optional CveSATPS As Integer = -1, Optional CargaXml As Boolean = False, Optional CveTipoGasto As Integer = -1, Optional TipoGasto As String = "", Optional PorcentajeIVA As Decimal = 0,
Optional PorcentajeIEPS As Decimal = 0, Optional PorcentajeRetIVA As Decimal = 0, Optional PorcentajeRetISR As Decimal = 0, Optional NoDeducible As Boolean = False, Optional CveContratoDetalle As Integer = -1, Optional CveCultivoCuadroDetalle As Integer = -1, Optional PorcentajeIEPS As Decimal = 0, Optional PorcentajeRetIVA As Decimal = 0, Optional PorcentajeRetISR As Decimal = 0, Optional NoDeducible As Boolean = False, Optional CveContratoDetalle As Integer = -1, Optional CveCultivoCuadroDetalle As Integer = -1,
Optional CveSATPSActualizado As Boolean = False, Optional TemporadaCuadro As String = "", Optional CodigoPS As String = "") As Integer Optional CveSATPSActualizado As Boolean = False, Optional TemporadaCuadro As String = "", Optional CodigoPS As String = "", Optional CveAlmacen As Integer = -1) As Integer
Dim Row As DataRow = Nothing Dim Row As DataRow = Nothing
If Not TmpDT.Columns.Contains("CodigoPS") Then If Not TmpDT.Columns.Contains("CodigoPS") Then TmpDT.Columns.Add("CodigoPS")
TmpDT.Columns.Add("CodigoPS")
End If
Row = TmpDT.NewRow() Row = TmpDT.NewRow()
Dim Retorno As Integer = 0 Dim Retorno As Integer = 0
@@ -18425,8 +18435,13 @@ Partial Class Compras_Compras
Row("CveContratoDetalle") = CveContratoDetalle Row("CveContratoDetalle") = CveContratoDetalle
Row("AplicaSerie") = DrPS("AplicaSerie")
Row("AplicaLote") = DrPS("AplicaLote")
Row("AplicaCaducidad") = DrPS("AplicaCaducidad")
Row("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle Row("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle
Row("TemporadaCuadro") = TemporadaCuadro Row("TemporadaCuadro") = TemporadaCuadro
If CveAlmacen > 0 Then Row("CveAlmacen") = CveAlmacen
If UsuarioActual.Empresa.UsaAC Then If UsuarioActual.Empresa.UsaAC Then
Row("CveProgramaOperativo") = DdlACGeneral1.SelectedValue.ToEntero Row("CveProgramaOperativo") = DdlACGeneral1.SelectedValue.ToEntero
@@ -19430,7 +19445,7 @@ Partial Class Compras_Compras
For Each Dr As DataRow In Dt.Rows For Each Dr As DataRow In Dt.Rows
Dim Total As Decimal = ObjInventario.DtResultados.FiltraParametros($"CveClasificacion = {Dr("CveClasificacion")}").SUM("Total").RoundSQL() ' * (If(EsCancelacion, -1, 1)) Dim Total As Decimal = ObjInventario.DtResultados.FiltraParametros($"CveClasificacion = {Dr("CveClasificacion")}").SUM("Total").RoundSQL() ' * (If(EsCancelacion, -1, 1))
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaSalida, Not TipoMovtoAlmacen, Total, Total, 95, LblFolio.Text, Obs, 0, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=Dr("CveClasificacion").ToString.ToEntero, CveSubProyecto:=tCveSubProyecto, Contabilizable:=EsContabilizable) Then If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaSalida, Not TipoMovtoAlmacen, Total, Total, 259, LblFolio.Text, Obs, 0, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=Dr("CveClasificacion").ToString.ToEntero, CveSubProyecto:=tCveSubProyecto, Contabilizable:=EsContabilizable) Then
Respuesta = False Respuesta = False
End If End If
Next Next
@@ -20749,6 +20764,8 @@ Partial Class Compras_Compras
End If End If
End If End If
If UsuarioActual.Empresa.Funcionalidad(574) = "1" Then 'cuando es emp DIAZ
If DdlTipoCompra.SelectedValue = "15" Then 'Remisión de nota de crédito If DdlTipoCompra.SelectedValue = "15" Then 'Remisión de nota de crédito
If DdlTipoComprobante.SelectedValue = "NC" Then If DdlTipoComprobante.SelectedValue = "NC" Then
@@ -20759,6 +20776,12 @@ Partial Class Compras_Compras
'DdlRemisionNotaCredito.SelectedValueExist(-1) 'DdlRemisionNotaCredito.SelectedValueExist(-1)
DdlTipoCompra.SelectedValueExist(-1) DdlTipoCompra.SelectedValueExist(-1)
End If End If
Else
'SE ACTIVA DE NUEVO PARA LA SELECCIÓN
HLAplicaNCFact.Visible = True
InicializaAplicaNCFact()
If CveFactura > 0 Then NCSeleccionFacturasRelacionadas(UUIDSList)
End If
End If End If
End Sub End Sub
@@ -22038,12 +22061,12 @@ Partial Class Compras_Compras
Dim respuesta As Boolean = True Dim respuesta As Boolean = True
Dim PorcentajeIVA As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal Dim PorcentajeIVA As Decimal = TmpDT.MAX("IVAPorcentaje").ToDecimal
Dim CvePS_RNC As Integer = UsuarioActual.Empresa.Funcionalidad(580).ToEntero Dim CvePSRNC As Integer = UsuarioActual.Empresa.Funcionalidad(580).ToEntero
Dim PSRow As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePS_RNC).FiltroPrimero("") Dim PSRow As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSRNC).FiltroPrimero("")
Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal() Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal()
Dim SubProyecto As String = "" Dim SubProyecto As String = ""
If Not CvePS_RNC > 0 Then If Not CvePSRNC > 0 Then
Alert("No esta definido el producto de Remisión de Nota de Crédito.", TipoMensaje.MsgAdvertencia) Alert("No esta definido el producto de Remisión de Nota de Crédito.", TipoMensaje.MsgAdvertencia)
Return False Return False
End If End If
@@ -22056,7 +22079,6 @@ Partial Class Compras_Compras
SubProyecto = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyectoPrincipal).FiltroPrimeroValor("SubProyecto") SubProyecto = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyectoPrincipal).FiltroPrimeroValor("SubProyecto")
If PSRow IsNot Nothing Then If PSRow IsNot Nothing Then
Dim CompraRNC As New ClsCompraManagerCompras(UsuarioActual) With { Dim CompraRNC As New ClsCompraManagerCompras(UsuarioActual) With {
.TipoDocto = "RNC", .TipoDocto = "RNC",
.CveProveedor = CveProveedor, .CveProveedor = CveProveedor,
@@ -22090,7 +22112,7 @@ Partial Class Compras_Compras
Dim IVARNC As Decimal = (Importe * PorcentajeIVA).RoundSQL(2) Dim IVARNC As Decimal = (Importe * PorcentajeIVA).RoundSQL(2)
Dim TotalRNC As Decimal = If(RedondearSaldado, (Importe + IVARNC).RoundSQL(2), (Importe + IVARNC)) 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) CompraRNC.ConfiguraRegistroRapido(CvePSRNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNC, IVARNC, TotalRNC, PorcentajeIVA, TipoCambio:=TipoCambioOriginal)
If CompraRNC.AddCompra(sqltransaccion) Then If CompraRNC.AddCompra(sqltransaccion) Then
Dim tImporteRNC = TotalRNC ' le agrego el importe del iva Dim tImporteRNC = TotalRNC ' le agrego el importe del iva
Dim Pago As New CompraPago Dim Pago As New CompraPago
@@ -22619,7 +22641,7 @@ Partial Class Compras_Compras
nRow("SubTotal") = subtotalParcial.RoundSQL(4) nRow("SubTotal") = subtotalParcial.RoundSQL(4)
nRow("Total") = totalParcialDeseado.RoundSQL(4) nRow("Total") = totalParcialDeseado.RoundSQL(4)
nRow("PorcentajeIVA") = (ivaParcial / subtotalParcial).RoundSQL(4) nRow("PorcentajeIVA") = (ivaParcial / subtotalParcial).RoundSQL(2)
nRow("Porcentaje") = ((totalParcialDeseado.RoundSQL(4) * 100) / TotalOriginal).RoundSQL(2) nRow("Porcentaje") = ((totalParcialDeseado.RoundSQL(4) * 100) / TotalOriginal).RoundSQL(2)
nRow("RetIVAPorcentaje") = (retIvaParcial / subtotalParcial).RoundSQL(4) nRow("RetIVAPorcentaje") = (retIvaParcial / subtotalParcial).RoundSQL(4)
@@ -22850,7 +22872,7 @@ Public Class ClsCompraManagerCompras
Public Property CveMetodoPago As Integer Public Property CveMetodoPago As Integer
Public Property MetodoPago As String Public Property MetodoPago As String
Public Property DocumentosRelacionadosUUIDSList As List(Of String) = New List(Of String) Public Property DocumentosRelacionadosUUIDSList As HashSet(Of String) = New HashSet(Of String)
Public ReadOnly Property DocumentosRelacionadosUUIDSString As String Public ReadOnly Property DocumentosRelacionadosUUIDSString As String
Get Get
Return GeneraStringDoctosRelacionados() Return GeneraStringDoctosRelacionados()
@@ -23069,7 +23091,7 @@ Public Class ClsCompraManagerCompras
If TipoComprobante.ToUpper = "E" AndAlso (CFDIVersion = EnumCFDIVersion.v33 OrElse CFDIVersion = EnumCFDIVersion.v40) Then If TipoComprobante.ToUpper = "E" AndAlso (CFDIVersion = EnumCFDIVersion.v33 OrElse CFDIVersion = EnumCFDIVersion.v40) Then
Dim UUIDS As String = "" Dim UUIDS As String = ""
Dim UUIDSLista As New List(Of String) Dim UUIDSLista As New HashSet(Of String)
Dim nodeCFDIRelacionados As XmlNode Dim nodeCFDIRelacionados As XmlNode
nodeCFDIRelacionados = XMLDoc.SelectSingleNode(String.Format("//{0}:CfdiRelacionados", Prefijo), namespaces) nodeCFDIRelacionados = XMLDoc.SelectSingleNode(String.Format("//{0}:CfdiRelacionados", Prefijo), namespaces)
@@ -23222,6 +23244,8 @@ Public Class ClsCompraManagerCompras
If Not TmpDT.Columns.Contains("AplicaCaducidad") Then TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean)) If Not TmpDT.Columns.Contains("AplicaCaducidad") Then TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean))
If Not TmpDT.Columns.Contains("AplicaSerie") Then TmpDT.Columns.Add("AplicaSerie", GetType(Boolean))
If Not TmpDT.Columns.Contains("Lote") Then TmpDT.Columns.Add("Lote", GetType(String)) 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)) If Not TmpDT.Columns.Contains("FechaCaducidad") Then TmpDT.Columns.Add("FechaCaducidad", GetType(Date))
@@ -23454,7 +23478,6 @@ Public Class ClsCompraManagerCompras
TmpDT.Columns.Add("SATClaveUnidadMedida", GetType(String)) TmpDT.Columns.Add("SATClaveUnidadMedida", GetType(String))
TmpDT.Columns.Add("CveSATPSActualizado", GetType(Integer)) TmpDT.Columns.Add("CveSATPSActualizado", GetType(Integer))
'Tipo de Gasto 'Tipo de Gasto
TmpDT.Columns.Add("CveTipoGasto", GetType(Integer)) TmpDT.Columns.Add("CveTipoGasto", GetType(Integer))
TmpDT.Columns.Add("TipoGasto", GetType(String)) TmpDT.Columns.Add("TipoGasto", GetType(String))
@@ -23462,26 +23485,23 @@ Public Class ClsCompraManagerCompras
TmpDT.Columns.Add("ImporteSinImpuestos", GetType(Double)) TmpDT.Columns.Add("ImporteSinImpuestos", GetType(Double))
TmpDT.Columns.Add("ImporteConImpuestos", GetType(Double)) TmpDT.Columns.Add("ImporteConImpuestos", GetType(Double))
TmpDT.Columns.Add("NoDeducible", GetType(Boolean)) TmpDT.Columns.Add("NoDeducible", GetType(Boolean))
TmpDT.Columns.Add("DifPSSat", GetType(Integer)) TmpDT.Columns.Add("DifPSSat", GetType(Integer))
TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
TmpDT.Columns.Add("CveCultivoCuadroDetalle", GetType(Integer)) TmpDT.Columns.Add("CveCultivoCuadroDetalle", GetType(Integer))
TmpDT.Columns.Add("TemporadaCuadro", GetType(String)) TmpDT.Columns.Add("TemporadaCuadro", GetType(String))
TmpDT.Columns.Add("NoIdentificacion", GetType(String)) TmpDT.Columns.Add("NoIdentificacion", GetType(String))
TmpDT.Columns.Add("AplicaSerie", GetType(Boolean))
TmpDT.Columns.Add("AplicaLote", GetType(Boolean)) TmpDT.Columns.Add("AplicaLote", GetType(Boolean))
TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean)) TmpDT.Columns.Add("AplicaCaducidad", GetType(Boolean))
TmpDT.Columns.Add("Serie", GetType(String))
TmpDT.Columns.Add("Lote", GetType(String)) TmpDT.Columns.Add("Lote", GetType(String))
TmpDT.Columns.Add("FechaCaducidad", GetType(Date)) TmpDT.Columns.Add("FechaCaducidad", GetType(Date))
TmpDT.AcceptChanges() TmpDT.AcceptChanges()
End Sub End Sub
Private Function AjustesValidacion() As Boolean Private Function AjustesValidacion() As Boolean
Dim respuesta As Boolean = True Dim respuesta As Boolean = True