diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 2b3255f1e..ff0a320d9 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1284,6 +1284,32 @@ Partial Class Compras_Compras End Property + Private Property ObsOC As String + Get + If ViewState("ObsOC") Is Nothing Then + ViewState("ObsOC") = "" + End If + + Return ViewState("ObsOC").ToString + End Get + Set(value As String) + ViewState("ObsOC") = value + End Set + End Property + + Private Property AplicarObsOC As Boolean + Get + If ViewState("AplicarObsOC") Is Nothing Then + ViewState("AplicarObsOC") = False + End If + + Return Boolean.Parse(ViewState("AplicarObsOC").ToString) + End Get + Set(value As Boolean) + ViewState("AplicarObsOC") = value + End Set + End Property + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load @@ -5789,6 +5815,10 @@ Partial Class Compras_Compras Dim ObsGDiaz As String = If(EsGrupoDiaz, TxtObsFact.Text, "") + If AplicarObsOC Then + ObsGDiaz = ObsOC + End If + For Each tCveAlmacen As Integer In ListAlmacenes If GvInv.Rows(indice).FCDropDownList("DdlRecibirInv").SelectedValue = "1" Then Continue For @@ -15050,7 +15080,18 @@ Partial Class Compras_Compras + Dim ObsOCAsignado As Boolean = False + For Each CveOCItem As String In ArrayCveOC.Distinct + + + If Not ObsOCAsignado Then + If ObjOC.GetOC(CveOCItem.ToEntero, UsuarioActual.CveEmpresa) Then + ObsOC = ObjOC.Descripcion + End If + ObsOCAsignado = True + End If + If ObjOC.GetOrdenesDetalle(CveOCItem.ToEntero, UsuarioActual.CveEmpresa) AndAlso ObjOC.DtResultados.Rows.Count > 0 Then If IsNothing(DTOCTemp) Then DTOCTemp = ObjOC.DtResultados.Copy @@ -15933,6 +15974,8 @@ Partial Class Compras_Compras End If + AplicarObsOC = True + CalculaTotales() End Sub diff --git a/Compras/eFacturas.aspx.vb b/Compras/eFacturas.aspx.vb index 96fd708f7..16c65913d 100644 --- a/Compras/eFacturas.aspx.vb +++ b/Compras/eFacturas.aspx.vb @@ -6080,6 +6080,7 @@ Partial Class Compras_eFacturas End Sub Private Sub VinculacionAutomaticaRNC() + Dim ErrorProceso As Boolean = False Dim ErrorProcesoStr As String = "" Dim Contador As Integer = 0 @@ -6088,7 +6089,6 @@ Partial Class Compras_eFacturas 'DataKeyNames="CveFactura,CveCompra,CveProveedor,SerieFolio,NombreProveedor,UUID,RFCDe,RFCPara,TipoFactura,FueValidado,TipoComprobante,Version,RFCde,XML,PDF,BloquePorComplemento,Total,CveTipoProveedor,FechaFactura" - For Each GvRow As GridViewRow In GvD.Rows If GvRow.DataKey("TipoComprobante") = "E" Then @@ -6113,31 +6113,97 @@ Partial Class Compras_eFacturas CompraActual.Descripcion = TxtDescripcionCompra.Text.Trim CompraActual.NombreProveedor = GvRow.DataKey("NombreProveedor") - Dim listaRNC As New List(Of Integer) + Dim DT_RNC As New DataTable + DT_RNC.Columns.Add("CveCompra", GetType(Integer)) + DT_RNC.Columns.Add("CveSubProyecto", GetType(Integer)) + DT_RNC.Columns.Add("Saldo", GetType(Decimal)) + + For Each DR As String In CompraActual.DocumentosRelacionadosUUIDSList If Objcompras.GetVinculacionRNC(UUID:=DR, CveEmpresa:=UsuarioActual.CveEmpresa) Then - + For Each drRNC As DataRow In Objcompras.DtResultados.Rows + Dim DR_RNC As DataRow = DT_RNC.NewRow + DR_RNC("CveCompra") = drRNC("CveCompra").ToString.ToEntero + DR_RNC("CveSubProyecto") = drRNC("CveSubProyecto").ToString.ToEntero + DR_RNC("Saldo") = drRNC("Saldo").ToString.ToDecimal + DT_RNC.Rows.Add(DR_RNC) + Next End If Next + Dim Saldo As Decimal = DT_RNC.SUM("Saldo") + Dim CveSubProyectoPrincipal As Integer = DT_RNC.FiltroPrimeroValor("CveSubProyecto").ToEntero + + If Saldo >= CompraActual.Total Then + + Dim CvePSRNC As Integer = UsuarioActual.Empresa.Funcionalidad(580).ToEntero + Dim PSRow As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePSRNC).FiltroPrimero("") + + + + If CompraActual.ConfiguraRegistroCompra(CvePSRNC, CveSubProyectoPrincipal, -1, -1, + -1, -1, NumeroReembolso:="", + DTProrrateo:=New DataTable, DTPagosDeudores:=New DataTable, TipoComprobante:="E") Then + + If CompraActual.AddCompra(Objcompras.IniciaTransacSQL()) Then + Contador = Contador + 1 + Else + ErrorProceso = True + ErrorProcesoStr = CompraActual.MensajeError + Exit For + End If + Else + ErrorProceso = True + ErrorProcesoStr = CompraActual.MensajeError + Exit For + End If + + + + If Not ErrorProceso Then + Dim ObjConta As New ClsContabilidad(Objcompras.IniciaTransacSQL()) + Dim TotalSaldo As Decimal = CompraActual.Total + Dim Referencia As String = GvRow.DataKey("SerieFolio") + Dim Concepto As String = GvRow.DataKey("SerieFolio") + Dim TipoCambio As Decimal = GlobalTipoCambio(GvRow.DataKey("FechaFactura").ToDate).ToDecimal + + For Each drRNC As GridViewRow In DT_RNC.Rows + + + Dim ImporteRNCSaldar As Decimal = drRNC.DataKey("Saldo").ToDecimal + Dim CveCompraRNC As Integer = drRNC.DataKey("CveCompra").ToEntero + If ImporteRNCSaldar > TotalSaldo Then ImporteRNCSaldar = TotalSaldo + + If Not ErrorProceso Then + + If Not ObjConta.AddPrePolizasDetalle(CompraActual.CvePrePoliza, False, ImporteRNCSaldar, ImporteRNCSaldar, 373, Referencia, Concepto, CveCompra:=CveCompraRNC, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio, + CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then + ErrorProceso = True + Exit For + End If + + If Not ErrorProceso Then + Dim ConPrePNC As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(15, CompraActual.CveMoneda, True, CompraActual.CveTipoConceptoProveedor) + + If Not ObjConta.AddPrePolizasDetalle(CompraActual.CvePrePoliza, True, ImporteRNCSaldar, ImporteRNCSaldar, ConPrePNC.CveConcepto, Referencia, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, ImporteRNCSaldar), TipoCambio:=TipoCambio, + CveClasificacion:=-1, CveSubProyecto:=CompraActual.CveSubProyecto, Contabilizable:=True) Then + ErrorProceso = True + Exit For + End If + End If + + If Not ErrorProceso Then + TotalSaldo = TotalSaldo - ImporteRNCSaldar + End If + + End If + + Next + End If + + End If - 'If CompraActual.ConfiguraRegistroCompra(DdlPS.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, CveCajachica, CvePersonal, - ' DdlRetIVAConcepto.SelectedValue.ToEntero, DdlRetISRConcepto.SelectedValue.ToEntero, NumeroReembolso:=TxtNumeroReembolso.Text, - ' DTProrrateo:=DTProrrateo, DTPagosDeudores:=New DataTable) Then - ' 'FIX ME OIC Recuerda cambiar el tipo de documento al registrar, actualmente tiene FAC y NC uno u otro, ajustar para que registre *** Egs *** cuado TipoComprobante = 'E' - ' If CompraActual.AddCompra(Objcompras.IniciaTransacSQL()) Then - ' Contador = Contador + 1 - ' Else - ' ErrorProceso = True - ' ErrorProcesoStr = CompraActual.MensajeError - ' Exit For - ' End If - 'Else - ' ErrorProceso = True - ' ErrorProcesoStr = CompraActual.MensajeError - ' Exit For - 'End If 'If RBLContado.SelectedValue.ToEntero = 4 Then 'Deudores ' Dim CompraActualPagar = New Compra @@ -6850,7 +6916,8 @@ Public Class ClsCompraManager #End Region End Sub - Public Function ConfiguraRegistroCompra(CvePS As Integer, CveSubProyecto As Integer, CveCajaChica As Integer, CvePersonal As Integer, CveRetIVAConcepto As Integer, CveRetISRConcepto As Integer, NumeroReembolso As String, DTProrrateo As DataTable, DTPagosDeudores As DataTable) As Boolean + Public Function ConfiguraRegistroCompra(CvePS As Integer, CveSubProyecto As Integer, CveCajaChica As Integer, CvePersonal As Integer, CveRetIVAConcepto As Integer, CveRetISRConcepto As Integer, NumeroReembolso As String, DTProrrateo As DataTable, + DTPagosDeudores As DataTable, Optional TipoComprobante As String = "") As Boolean Dim respuesta As Boolean = True Me.CveSubProyecto = CveSubProyecto @@ -6863,6 +6930,10 @@ Public Class ClsCompraManager Me.NumeroReembolso = NumeroReembolso Me.DTPagosDeudores = DTPagosDeudores + If TipoComprobante.Length > 0 Then + Me.TipoComprobante = TipoComprobante + End If + Dim dRowSubProyecto As DataRow = GlobalDTSubProyectos(UsuarioActual.CveEmpresa, CveSubProyecto:=CveSubProyecto).FiltroPrimero("") If dRowSubProyecto IsNot Nothing Then @@ -6877,7 +6948,7 @@ Public Class ClsCompraManager Dim DTIndex As DataTable = TmpDT.FiltraParametros("", DistinctColumns:={"Consec"}) For Each dRowIndex As DataRow In DTIndex.Rows - If Not UpdatePSReembolso(dRowIndex("Consec").ToString.ToEntero, CvePS) Then + If Not UpdatePSDetalles(dRowIndex("Consec").ToString.ToEntero, CvePS) Then respuesta = False End If Next @@ -7830,7 +7901,7 @@ Public Class ClsCompraManager End Sub - Private Function UpdatePSReembolso(Index As Integer, CvePS As Integer) As Boolean + Private Function UpdatePSDetalles(Index As Integer, CvePS As Integer) As Boolean Dim Respuesta As Boolean = True diff --git a/Inventarios/EntradasSalidas.aspx b/Inventarios/EntradasSalidas.aspx index 014cea3f9..526136ddb 100644 --- a/Inventarios/EntradasSalidas.aspx +++ b/Inventarios/EntradasSalidas.aspx @@ -285,7 +285,8 @@