diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 5a98574fa..6fc77753c 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -10134,19 +10134,30 @@ Public Class ClsPaginas If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero + If UsuarioActual.CveEmpresa.Contiene(119) Then + If Pago.FechaDocumentoRelacionado.Year <= 2017 Then + Dim ObjCliente As New ClsClientes(ObjConta.IniciaTransacSQL()) + If ObjCliente.GetClientes(VentaActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) AndAlso ObjCliente.DtResultados.Rows.Count > 0 Then + + If Pago.CveMonedaPago > 1 Then VentaActual.IdCtaContableClienteAnticipoExtranjera = ObjCliente.IdCtaContMonedaExtranjera Else VentaActual.IdCtaContableClienteAnticipo = ObjCliente.IdCtaContClientes + + End If + End If + End If + End If If Pago.CveMonedaPago > 1 Then - 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 66, Pago.Referencia, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + 'Agregamos la Extranjera + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, Ret.IdCtaContablexAcreditar, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - Else - 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 66, Pago.Referencia, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + Else + 'Agregamos Nacional + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - End If + End If End If diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 960072f71..7863393bd 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -4831,7 +4831,8 @@
- + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index c6825298b..ee2823cb8 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1,5 +1,6 @@ Option Explicit On Option Strict On +Imports System.Activities Imports System.Data Imports System.Diagnostics Imports System.Globalization @@ -1151,6 +1152,21 @@ Partial Class Compras_Compras End Property + Private Property UUIDSList As List(Of String) + Get + + If ViewState("UUIDSList") Is Nothing Then + Return New List(Of String) + Else + Return DirectCast(ViewState("UUIDSList"), List(Of String)) + End If + + End Get + Set(value As List(Of String)) + ViewState("UUIDSList") = value + End Set + End Property + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then 'ImgBtnBuscarOC.Attributes.Add("data-toggle", "tooltip") @@ -1273,21 +1289,7 @@ Partial Class Compras_Compras TxtOC.Attributes.Add("onkeypress", "fncBuscaOC(event);") - 'If UsuarioActual.Empresa.GralSoloProyecto Then - ' LitHProyecto.Text = "Sucursal" - ' DdlSubProyecto.Items.Clear() - - - ' DdlAsignaSubProyecto.Items.Clear() - - - ' divproyecto.Visible = False - ' divasignaproyecto.Visible = False - ' DdlProyecto.Visible = False - ' DdlProyecto.Items(0).Text = "" - - 'End If If UsuarioActual.CveEmpresa = 66 And UsuarioActual.TienePermisoProceso(96) Then ChkProgramarPago.Visible = True @@ -1374,20 +1376,7 @@ Partial Class Compras_Compras CambiaEjercicioAC() End If - ' ''Fecha limite para ingreso de facturas - ''Dim DtEmpresa As DataTable = GlobalDTEmpresas(UsuarioActual.CveEmpresa) - ''If DtEmpresa.Rows.Count > 0 Then - '' Dim FechaLimite = DateSerial(DtEmpresa.Rows(0)("EjercicioActual").ToString.ToEntero, DtEmpresa.Rows(0)("PeriodoActual").ToString.ToEntero, DtEmpresa.Rows(0)("DiasPermitidos").ToString.ToEntero) - '' If Month(TxtFecha.Text.ToDate) < (Month(FechaLimite) - 1) Or (Month(TxtFecha.Text.ToDate) = (Month(FechaLimite) - 1) And Day(Date.Now) > Day(FechaLimite)) Then - '' Alert("La factura actual ya no aplica para ingresarse al sístema.", TipoMensaje.MsgAdvertencia) - '' BtnGuardar.Enabled = False - '' Else - '' Alert("En tiempo") - '' End If - ''Else - '' Alert("No se pudieron cargar los datos de la empresa", TipoMensaje.MsgAdvertencia) - ''End If - 'Carga Compra + If UsuarioActual.Empresa.Funcionalidad(123) <> "" And Not UsuarioActual.TienePermisoProceso(156) Then If Not ValidaCierrePeriodo() Then @@ -1600,6 +1589,11 @@ Partial Class Compras_Compras End If + + If DdlTipoComprobante.SelectedValue = "NC" Then + NCSeleccionFacturasRelacionadas(UUIDSList) + End If + End If 'SE OCUPAN AFUERA DEL POSTBACK ?? @@ -6956,15 +6950,13 @@ Partial Class Compras_Compras End If If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For + ErrorPrepoliza = True : Exit For End If - End If - Dim Pago As New CompraPago With {.ImportePago = importeMovimiento, .CveIE = CveIE} - 'Pago.CveMonedaPago = CveMonedaAnticipo 'pdte - AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - Next + Dim Pago As New CompraPago With {.ImportePago = importeMovimiento, .CveIE = CveIE, .CveMonedaPago = rw.DataKey("CveMoneda").ToEntero} + AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + End If + Next Else For Each rw As GridViewRow In GvDeudores.Rows If rw.FCCheckBox("Chk").Checked Then @@ -6976,8 +6968,7 @@ Partial Class Compras_Compras ErrorPrepoliza = True Exit For End If - Dim Pago As New CompraPago With {.ImportePago = importeMovimiento, .CveIE = CveIE} - 'Pago.CveMonedaPago = CveMonedaAnticipo 'pdte + Dim Pago As New CompraPago With {.ImportePago = importeMovimiento, .CveIE = CveIE, .CveMonedaPago = rw.DataKey("CveMoneda").ToEntero} AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) End If Next @@ -8467,14 +8458,14 @@ Partial Class Compras_Compras PorcentajePago = gvr.FCTextBox("TxtAnticipo").Text.ToDecimal / TxtTotal.Text.ToDecimal - Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) * TipoCambioAnt - If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaNueva, TipoMovimientoCompra, (ImporteAnt + ImporComisionAnticipo), "", CveConceptoCompra, "", TxtFechaPago.Text.ToDate, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=ImporteAntMNComision, ImporteME:=If(TipoCambioAnt = 1, 0, (ImporteAnt + ImporComisionAnticipo)), CveSubProyecto:=CveSubProyectoAnticipo) Then + Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) + If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaNueva, TipoMovimientoCompra, (ImporteAnt + ImporComisionAnticipo), "", CveConceptoCompra, "", TxtFechaPago.Text.ToDate, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=ImporteAntMNComision, ImporteME:=If(TipoCambioAnt = 1, 0, (ImporteAnt + ImporComisionAnticipo)), TipoCambio:=TipoCambioAnt, CveSubProyecto:=CveSubProyectoAnticipo) Then ErrorMovtosCxP = 1 End If If CveMonedaAnticipo > 1 Then Dim ImporteAntMN As Decimal = TipoCambioAnt * ImporteAnt - ImporteAnt - If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaNueva, TipoMovimientoCompra, ImporteAntMN, "", CveConceptoCompraComplementaria, "", TxtFechaPago.Text.ToDate, IdCtaContableComp, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=ImporteAntMN, ImporteME:=If(TipoCambioAnt = 1, 0, ImporteAnt), CveSubProyecto:=CveSubProyectoAnticipo) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaNueva, TipoMovimientoCompra, ImporteAntMN, "", CveConceptoCompraComplementaria, "", TxtFechaPago.Text.ToDate, IdCtaContableComp, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=ImporteAntMN, ImporteME:=If(TipoCambioAnt = 1, 0, ImporteAnt), TipoCambio:=TipoCambioAnt, CveSubProyecto:=CveSubProyectoAnticipo) Then ErrorMovtosCxP = 1 End If End If @@ -9688,6 +9679,28 @@ Partial Class Compras_Compras namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal") namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal") + + If _TipoComprobante.ToUpper = "E" And (Version = "3.3" Or Version = "4.0") Then + Dim UUIDS As String = "" + + Dim UUIDSLista As New List(Of String) + Dim nodeCFDIRelacionados As XmlNode + nodeCFDIRelacionados = XMLDoc.SelectSingleNode(String.Format("//{0}:CfdiRelacionados", Prefijo), namespaces) + + If nodeCFDIRelacionados IsNot Nothing Then + + For Each CFDIRelacionados As XmlNode In nodeCFDIRelacionados + UUIDSLista.Add("" & CFDIRelacionados.Attributes("UUID").Value.ToString & "") + Next + + End If + + UUIDSList = UUIDSLista + + End If + + + Dim node As XmlNode node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces) @@ -16303,7 +16316,7 @@ Partial Class Compras_Compras Dim NumNoDed As Integer = TmpDT.COUNT("CvePS", "NoDeducible = True ") If NumNoDed > 0 Then GvPS.Columns(11).Visible = True 'visualiza columnas de nodeducibles - If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then + If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") And CveFactura <= 0 Then InicializaAplicaNCFact() End If @@ -20069,11 +20082,121 @@ Partial Class Compras_Compras End Function + Private Sub NCSeleccionFacturasRelacionadas(UUIDSListRelacioandos As List(Of String)) + + + If UUIDSListRelacioandos.Count > 0 Then + Dim SaldoNota As Decimal = TxtTotal.Text.ToDecimal + Dim SaldoNotaPorAplicar As Decimal = SaldoNota + Dim CountAplicacion As Integer = 0 + + Dim sbNoencontrados As New StringBuilder + + + For Each UUID As String In UUIDSListRelacioandos + + UUID = UUID.ToUpper + Dim UUIDEncontrado As Boolean = False + + For Each GvRow As GridViewRow In GvFacturaNC.Rows + Dim UUIDGv As String = GvRow.DataKey("UUID").Trim.ToUpper + + + If UUID.Trim.ToUpper = GvRow.DataKey("UUID").Trim.ToUpper Then + UUIDEncontrado = True + Exit For + End If + + Next + + If Not UUIDEncontrado Then + sbNoencontrados.Append($"{UUID},") + End If + + Next + + Dim TeminarAmortizacion As Boolean = False + + For Each UUID As String In UUIDSListRelacioandos + + For Each GvRow As GridViewRow In GvFacturaNC.Rows + + If UUID.Trim.ToUpper = GvRow.DataKey("UUID").Trim.ToUpper Then + + Dim SaldoFactura As Decimal = GvRow.DataKey("Saldo").ToDecimal + + If SaldoFactura <= SaldoNotaPorAplicar Then + SaldoNotaPorAplicar = SaldoNotaPorAplicar - SaldoFactura + GvRow.FCTextBox("TxtImporte").Text = SaldoFactura.ToString("###,###,###.00") + GvRow.FCCheckBox("ChkFacturaNC").Checked = True + Else + + If SaldoFactura >= SaldoNotaPorAplicar Then + + GvRow.FCTextBox("TxtImporte").Text = SaldoNotaPorAplicar.ToString("###,###,###.00") + GvRow.FCCheckBox("ChkFacturaNC").Checked = True + SaldoNotaPorAplicar = 0 + TeminarAmortizacion = True + + Else + GvRow.FCTextBox("TxtImporte").Text = SaldoFactura.ToString("###,###,###.00") + GvRow.FCCheckBox("ChkFacturaNC").Checked = True + SaldoNotaPorAplicar = SaldoNotaPorAplicar - SaldoFactura + + TeminarAmortizacion = True + End If + End If + CountAplicacion = CountAplicacion + 1 + Exit For + End If + + + If SaldoNotaPorAplicar <= 0 Then + TeminarAmortizacion = True + Exit For + End If + + Next + + + If TeminarAmortizacion Then + Exit For + End If + + Next + + + Dim TipoMesaje As TipoMensaje = TipoMensaje.ToastInformacion + + TipoMesaje = If(sbNoencontrados.ToString.Length > 0 Or (SaldoNotaPorAplicar <> 0), TipoMensaje.ToastAdventencia, TipoMesaje) + + + Dim MsgSalida As String = "" + If sbNoencontrados.ToString.Length > 0 Then + MsgSalida = $"UUIDS no encotradas o sin saldo: {sbNoencontrados.ToString()}
" + End If + + MsgSalida = $"{MsgSalida}Se seleccionó {(SaldoNota - SaldoNotaPorAplicar).ToString("###,###,###.00")} de {SaldoNota.ToString("###,###,###.00")} a {CountAplicacion} factura{If(CountAplicacion > 0, "s", "")}." + + Alert(MsgSalida, TipoMesaje) + + If CountAplicacion > 0 Then + BtnFacturaNC_Click(Nothing, Nothing) + End If + + End If + + + + End Sub + + End Class + Public Class MMensajeDevolucion Public Property CveMovimiento As Integer Public Property TieneError As Boolean diff --git a/Contabilidad2/RepAnexoCatalogoCC.aspx b/Contabilidad2/RepAnexoCatalogoCC.aspx index d9df7060d..2aab78ff9 100644 --- a/Contabilidad2/RepAnexoCatalogoCC.aspx +++ b/Contabilidad2/RepAnexoCatalogoCC.aspx @@ -17,7 +17,7 @@ - Anexo de Catálogo - Centro Costo + Anexo de Catálogo - Centro Costo @@ -52,7 +52,7 @@