diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index 9e161e4eb..a5f621127 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -1625,7 +1625,7 @@ Partial Class Bancos_PopIECompras Dim StrMsg As New StringBuilder StrMsg.Append("El Documento se guardó correctamente.
") If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa) - If IdPoliza > 0 Then StrMsg.AppendFormat("
Ver Póliza", IdPoliza) + If IdPoliza > 0 AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then StrMsg.AppendFormat("
Ver Póliza", IdPoliza) If RBLContado.SelectedValue.ToEntero = 6 And ChkEmitirComplementoPago.Checked Then GeneraTimbre(CvePrePoliza) Else Alert(StrMsg.ToString, TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 5facc8424..17f32de8d 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -4845,7 +4845,7 @@
+ DataKeyNames="CveCompra,TipoCambio,CveTipoConcepto,UUID,Saldo,SerieFolio,Fecha,CveMoneda,Total,CveProveedor" runat="server" AutoGenerateColumns="false" GridLines="None" CssClass="table table-striped table-hover Widthall ScrollAD"> @@ -5880,46 +5880,34 @@ } - function chkAnt(t, txt, importe, TotalSaldo, CveMonedaAnticipo, TCAnticipo, CveMonedaOriginal) { + function chkAnt(t, txt, importe, TotalSaldoCompra, CveMonedaAnticipo, TCAnticipo, CveMonedaOriginal, TCCompra) { var Total = ToDouble($get('TxtTotal').value); - //TotalSaldo = Total; + debugger; var txtvalue = ToDouble(txt.value); + var ImportePago, ImporteCompra; + + var TCC = TCCompra / TCAnticipo; var importevalue = ToDouble(importe); - if (CveMonedaAnticipo = 1 && CveMonedaOriginal == 2) { - txtvalue = ToDouble(txtvalue / TCAnticipo); - importevalue = ToDouble(importevalue / TCAnticipo); - } else if (CveMonedaAnticipo = 2 && CveMonedaOriginal == 1) { - txtvalue = ToDouble(txtvalue * TCAnticipo); - importevalue = ToDouble(importevalue * TCAnticipo); - } - //var SaldoCompra = parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2)); - var SaldoCompra = (TotalSaldo - FnSumaValoresAnt() + txtvalue).toFixed(2); // le agrego lo del valor actual para validarlo - - - - if (t.checked) { - - if (SaldoCompra > 0) { - if (SaldoCompra > importevalue) { - txt.value = ToDouble(importevalue).toFixed(2); - //SaldoCompra = SaldoCompra - importe; - //$get('HdnCompraSaldo').value = SaldoCompra; - - } else { - txt.value = ToDouble(SaldoCompra).toFixed(2); - //SaldoCompra = 0.00; - //$get('HdnCompraSaldo').value = SaldoCompra; - } - - } else { - t.checked = false; - txt.value = ""; - //SaldoCompra = SaldoCompra - importe; + if (CveMonedaAnticipo != CveMonedaOriginal) { + if (CveMonedaAnticipo == 1 && CveMonedaOriginal == 2) { + txtvalue = ToDouble(txtvalue / TCAnticipo); + importevalue = ToDouble(importevalue / TCAnticipo); + } else if (CveMonedaAnticipo == 2 && CveMonedaOriginal == 1) { + txtvalue = ToDouble(txtvalue * TCAnticipo); + importevalue = ToDouble(importevalue * TCAnticipo); } + } + var DifSaldo = (TotalSaldoCompra - FnSumaValoresAnt()).toFixed(2); // le agrego lo del valor actual para validarlo - } else { - //$get('HdnCompraSaldo').value = parseFloat(SaldoCompra) + parseFloat(txt.value); + if (t.checked) + { + if (DifSaldo > importevalue) { + txt.value = ToDouble(importevalue*TCC).toFixed(2); + } else { + txt.value = ToDouble(DifSaldo*TCC).toFixed(2); + } + } else { txt.value = ""; } @@ -5935,6 +5923,7 @@ var Total = ToDouble($get('TxtTotal').value); let txtComisionImporte = 0; + debugger; if (txtComision != null) { if (!isNaN(txtComision.value)) { @@ -5952,8 +5941,7 @@ } return; } - - debugger; + if (CveMonedaAnticipo == 1 && CveMonedaOriginal == 2) { txtvalue = ToDouble(txtvalue / TCAnticipo); } else if (CveMonedaAnticipo == 2 && CveMonedaOriginal == 1) { @@ -5961,7 +5949,7 @@ } var SaldoCompra = (TotalSaldo - FnSumaValoresAnt() + ToDouble(txtvalue)).toFixed(2); // le agrego lo del valor actual para validarlo //parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2)); - alert(txtvalue); + if (SaldoCompra < 0) txt.value = SaldoCompra - txtvalue; //minimo entre saldocompra y el saldoanticipo if (SaldoCompra < saldo) saldo = SaldoCompra; diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 3165dd3eb..18d4f15da 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -9,9 +9,6 @@ Imports System.IO Imports System.Threading.Tasks Imports Newtonsoft.Json Imports Extensiones -Imports System.Activities.Expressions -Imports iText.Barcodes.Dmcode -Imports Microsoft.Reporting.WebForms Imports MoreLinq Partial Class Compras_Compras @@ -490,14 +487,6 @@ Partial Class Compras_Compras ViewState("CompraSaldo") = value End Set End Property - Private Property Saldo As Double - Get - Return ViewState("Saldo").ToString.ToDouble - End Get - Set(value As Double) - ViewState("Saldo") = value - End Set - End Property Private Property CveMoneda As Integer Get @@ -1234,7 +1223,7 @@ Partial Class Compras_Compras CierrePeriodo = False NCDevolucion = False CompraCargada = False - Saldo = 0 + CompraSaldo = 0 SubTotalOriginal = 0 CveConceptoContableAlmacen = 0 EsNoDeducible = False @@ -1418,8 +1407,6 @@ Partial Class Compras_Compras InicializaAplicaNCFact() End If - - If UsuarioActual.Empresa.UsaAC Then CambiaEjercicioAC() End If @@ -1509,7 +1496,7 @@ Partial Class Compras_Compras End If 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO - LblSaldoFactura.Text = If(CveCompra > 0, Saldo.FormatoNumero, TxtTotal.Text.FormatoNumero) + LblSaldoFactura.Text = If(CveCompra > 0, CompraSaldo.FormatoNumero, TxtTotal.Text.FormatoNumero) 'cuando es factura con amortizacion, el importe a descontar es el saldo que se debe de aplicar para la amortizacion If ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 Then LblSaldoFactura.Text = TmpDT.SUMD("Descuento").ToString @@ -2425,12 +2412,6 @@ Partial Class Compras_Compras End If End If - Dim MostrarRetIva6 As Boolean = False - - - - - TxtSubTotal.Text = SubtotalTemp.FormatoNumero TxtDescuento.Text = DescuentosTemp.FormatoNumero TxtSubTotal2.Text = Subtotal2Temp.FormatoNumero @@ -2476,23 +2457,6 @@ Partial Class Compras_Compras 'ASIGNA VALORES ORIGINALES PARA GUARDAR AsignaValoresOriginales(SubtotalTemp, Subtotal2Temp, IVATemp, RetIVATemp, RetISRTemp, Total) - 'If UsuarioActual.Empresa.Funcionalidad(577).ToString = "1" Then - - - ' If RetencionIVA = 0 And IVAOriginal > 0 Then - ' For Each dRow As DataRow In TmpDT.Rows - ' If dRow("CveTipoPS").ToString.ToEntero = 1 Then - - ' 'comentado para reubicar el boton - ' 'tdIVA6.Visible = True - - - ' Exit For - ' End If - ' Next - ' End If - - 'End If End Sub @@ -2592,7 +2556,7 @@ Partial Class Compras_Compras 'CargaProveedor Dim dr As DataRow = ObjCompra.DtResultados.Rows(0) - Saldo = dr("Saldo").ToString.ToDecimal + CompraSaldo = dr("Saldo").ToString.ToDecimal RBLPago.Visible = False Dim CveProveedor As Integer = dr("CveProveedor").ToString.ToEntero @@ -2689,7 +2653,6 @@ Partial Class Compras_Compras TxtTotal.Text = dr("Total").ToString.FormatoNumero(2) HfTotalCompra.Value = TxtTotal.Text - CompraSaldo = TxtTotal.Text.ToDouble TipoCambio = dr("TipoCambio").ToString.ToDecimal Dim TipoCambioOriginal = dr("TipoCambioOriginal").ToString.ToDouble @@ -2797,29 +2760,7 @@ Partial Class Compras_Compras 'ImgAddObs.Attributes.Add("onclick", "javascript: PosicionaObjeto(this.id,'DivEventoBitacora',null,-250,-250); $('#DivEventoBitacora').show(1000); ") ImgAddObs.Visible = True ChkAplicaNotaCredito.Checked = CBool(dr("AplicaNotaCredito").ToString) - 'RBLPago.Enabled = False - 'If dr("CveIE").ToString.ToEntero > 0 Then - ' RBLPago.SelectedValue = "2" - ' 'cargo los datos del pago - ' 'PnlPago.Visible = True - ' 'PnlChkFuncionariosEmpleados.Visible = True - ' Dim ObjIE As New ClsBancos() - - ' If ObjIE.GetBancosIE(dr("CveIE").ToString.ToEntero, UsuarioActual.CveEmpresa) Then - ' If ObjIE.DtResultados.Rows.Count > 0 Then - - ' DdlTipoTransaccion.SelectedValue = ObjIE.CveTipoTransaccion.ToString - ' DdlCuenta.SelectedValue = ObjIE.CveCuenta.ToString - ' TxtDocumentoFolio.Text = ObjIE.Folio - ' TxtDocumentoImporte.Text = ObjIE.Importe.FormatoNumero - ' TxtDocumentoObservaciones.Text = ObjIE.Observaciones - - ' End If - ' End If - - ' ObjIE.Dispose() - 'End If CompraSaldo = TotalGeneral - LblAmortizacion.Text.ToDouble If EmpresaPrueba Then CompraSaldo = dr("Saldo").ToString.ToDouble @@ -7208,19 +7149,27 @@ Partial Class Compras_Compras Pago.TipoPago = "NC" Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC + Dim CompraPago As New Compra 'datos de la compra tipodocto:Fac, para sobreescribirlos - CompraActual.CveCompra = Gvr.DataKey("CveCompra").ToEntero - CompraActual.SerieFolio = Gvr.DataKey("SerieFolio") - CompraActual.TC = Gvr.DataKey("TipoCambio").ToDecimal - CompraActual.Fecha = Gvr.DataKey("Fecha").ToDate - CompraActual.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero - - ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero + CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero + CompraPago.SerieFolio = Gvr.DataKey("SerieFolio") + CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal + CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate + CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero + CompraPago.Total = Gvr.DataKey("Total").ToDecimal + CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero + CompraPago.CveSubProyecto = CompraActual.CveSubProyecto + ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta) + If ErrorPrepoliza Then + Exit For + End If End If Next If ErrorPrepoliza Then + ErrorMovtosCxP = True Exit Select End If @@ -8091,6 +8040,12 @@ Partial Class Compras_Compras Dim Msg As New StringBuilder Msg.Append("La compra se registró correctamente") + If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + ErrorPrepolizaDescuadre = True + End If + End If @@ -8146,8 +8101,6 @@ Partial Class Compras_Compras Dim TempParametros = Encripta(String.Format("OP=PREPO&CvePrePoliza={0}", CvePrePoliza)) Msg.Append($" Imprimir ") - - End If If CveMovimientoInventario > 0 Then @@ -8174,7 +8127,6 @@ Partial Class Compras_Compras End If End If - If Not TieneError Then ObjCompras.Commit() If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() @@ -8625,6 +8577,7 @@ Partial Class Compras_Compras Dim ImporteAnt As Decimal = gvr.FCTextBox("TxtAnticipo").Text.ToDecimal Dim ImporComisionAnticipo As Decimal = gvr.FCTextBox("TxtComision").Text.ToDecimal + Dim Pago As New CompraPago Pago.TipoPago = gvr.DataKey("TipoDocto") Pago.ImportePago = ImporteAnt @@ -8633,6 +8586,10 @@ Partial Class Compras_Compras Pago.TCPago = TipoCambioAnt Pago.CveProveedor = gvr.DataKey("CveProveedor").ToEntero + If CompraActual.CveMoneda = 1 AndAlso Pago.CveMonedaPago = 2 Then + CompraActual.TC = Pago.TCPago + End If + Select Case gvr.DataKey("TipoDocto") Case "NC", "DEV" CveConceptoCompra = If(CveMonedaAnticipo = 1, 60, 60) @@ -8642,8 +8599,8 @@ Partial Class Compras_Compras CveIE = -1 Pago.AplicaAcreditable = False Case "Egsc" - CveConceptoCompra = If(CveMonedaAnticipo = 1, 21, 21) - CveConceptoCompraComplementaria = 266 + 'CveConceptoCompra = If(CveMonedaAnticipo = 1, 21, 21) + 'CveConceptoCompraComplementaria = 266 IdCtaContable = If(CveMonedaAnticipo = 1, CtaProveedorAnticipos, CtaProveedorAnticiposExtranjera) IdCtaContableComp = CtaProveedorAnticiposComplementaria @@ -9795,68 +9752,6 @@ Partial Class Compras_Compras importeMovimiento = 0 IdCtaContable = 0 - ' Case 5 'Proveedores - ' Dim TieneConceptoProveedorAcreedor As Boolean = False - ' Dim CveIE As Integer = -1 - - ' 'If Not ObjConta.GetPrePolizasDetalleCompra(CveCompra, UsuarioActual.CveEmpresa) Then - ' ' ErrorPrepoliza = True - ' 'Else - ' ' If ObjConta.DtResultados.FiltraParametros("CveConceptoContable IN (5,305)").Rows.Count > 0 Then - ' ' TieneConceptoProveedorAcreedor = True - ' ' CveIE = ObjConta.DtResultados.FiltraParametros("CveConceptoContable = 6 OR CveConceptoContable = 68 OR CveConceptoContable = 49 OR CveConceptoContable = 205 OR CveConceptoContable = 176").Rows(0)("CveIE").ToString.ToEntero - ' ' End If - ' 'End If - - ' If TieneConceptoProveedorAcreedor Then - ' If CveTipoConcepto = 2 Then ConceptoContable = 305 'cuando es acreedor - ' Dim UsaComplementaria As Boolean = True - ' If tipoCambioActual <> 1 Then - ' Select Case ConceptoContable - ' Case 5 - ' ConceptoContable = 311 - ' Case 305 - ' ConceptoContable = 306 - ' Case Else - ' End Select - ' End If - - ' Dim importeProv As Decimal = 0 - ' importeProv = TxtTotal.Text.ToDecimal - - ' If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then - - ' importeMovimiento = importeProv - ' importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - ' If tipoCambioActual > 1 Then Referencia += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - ' Dim CveConceptoContableComplementaria As Integer = 201 - ' If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 307 - - - - ' If tipoCambioActual = 1 Then - ' IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor) - ' Dim Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=-1, CveProveedor:=CveProveedor, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=-1, ImporteMX:=Math.Round(importeMN, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual) Then - ' ErrorPrepoliza = True - ' Exit For - ' End If - - ' Else - ' IdCtaContable = CtaProveedorComplementaria - ' If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementaria) Then 'Cuando tiene complementaria lo dividimos en dos Then - ' importeMN = importeMovimiento - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, CveConceptoContableComplementaria, Referencia, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * tipoCambioActual - importeMovimiento, ImporteME:=importeMovimiento, TipoCambio:=tipoCambioActual) Then - ' ErrorPrepoliza = True - ' End If - ' End If - ' IdCtaContable = CtaProveedorExtranjera - ' End If - ' End If - ' End If - End Select Next End If @@ -10158,17 +10053,25 @@ Partial Class Compras_Compras If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(3).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Saldo").ToDouble = 0 Then e.Row.FCLiteral("LtlAnticipos").Text = "" Dim ImporteAmortizacion As Decimal = If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0, TmpDT.SUMD("ImporteConImpuestos"), TxtTotal.Text.ToDecimal) - - e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1},{2});", e.Row.FCTextBox("TxtAnticipo").ClientID, e.Row.DBCampo("Saldo"), If(CveCompra > 0, Saldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, If(Not e.Row.DBCampo("TCCompra").ToDouble > 1, GlobalTipoCambio(e.Row.DBCampo("Fecha").ToDate), e.Row.DBCampo("TCCompra").ToDouble), DdlMoneda.SelectedValue.ToEntero)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO - - Dim tTCFecha As Double = If(Not e.Row.DBCampo("TCCompra").ToDouble > 1, GlobalTipoCambio(e.Row.DBCampo("Fecha").ToDate), e.Row.DBCampo("TCCompra").ToDouble) + + e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1},{2},{3},{4},{5},{6});", + e.Row.FCTextBox("TxtAnticipo").ClientID, + e.Row.DBCampo("Saldo"), + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), + e.Row.DBCampo("CveMoneda"), + tTCFecha, + DdlMoneda.SelectedValue, + IIf(DdlMoneda.SelectedValue = "1", 1, TxtTC.Text))) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO + + + If UsuarioActual.Empresa.CveEmpresa.Contiene(13, 83) Then e.Row.FCTextBox("TxtAnticipo").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1},{2},{3},{4},{5},{6});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, e.Row.FCTextBox("TxtComision").ClientID)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO @@ -10176,7 +10079,7 @@ Partial Class Compras_Compras e.Row.FCTextBox("TxtComision").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},{6},{1},{2},{3},{4},{5},this);", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, @@ -10185,7 +10088,7 @@ Partial Class Compras_Compras e.Row.FCTextBox("TxtAnticipo").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1},{2},{3},{4},{5});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, e.Row.FCTextBox("TxtComision").ClientID)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO @@ -10193,7 +10096,7 @@ Partial Class Compras_Compras e.Row.FCTextBox("TxtComision").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},{6},{1},{2},{3},{4},{5},this);", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, @@ -20428,7 +20331,7 @@ Partial Class Compras_Compras Dim MensajeProducto As String = "" Dim MensajeCantidad As String = "" Dim MensajeImporte As String = "" - If objContratos.ValidaPSContrato(TempPS) Then + If TempPS <> "" AndAlso objContratos.ValidaPSContrato(TempPS) Then If objContratos.DtResultados.Rows.Count > 0 Then MensajeProducto = "Los siguientes productos no pertenece al contrato seleccionado: " MensajeCantidad = "Los siguientes productos sobrepasan la cantidad faltante del contrato seleccionado: " @@ -20465,7 +20368,7 @@ Partial Class Compras_Compras If DtPS.MAX("CveSubProyecto", "CveSubProyecto IS NOT NULL").ToEntero > 0 AndAlso DtPS.MAX("CvePS", "CvePS IS NOT NULL").ToEntero > 0 Then Dim TempPS As String = JsonConvert.SerializeObject(DtPS).ToString - If ObjContratos.GetPSContratoDetalle(CveContrato, TempPS) Then + If TempPS <> "" AndAlso ObjContratos.GetPSContratoDetalle(CveContrato, TempPS) Then DtpsTemp = ObjContratos.DtResultados End If ObjContratos.Dispose() diff --git a/Compras/ReembolsosComprobaciones.aspx b/Compras/ReembolsosComprobaciones.aspx index 188dfb37c..855f4c6e4 100644 --- a/Compras/ReembolsosComprobaciones.aspx +++ b/Compras/ReembolsosComprobaciones.aspx @@ -45,26 +45,26 @@
- - + +
-
+
  • - + - + @@ -74,7 +74,7 @@
- + <%----%>
@@ -117,6 +117,7 @@ +
diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb index b578e2ee8..ce8b4b94f 100644 --- a/Compras/ReembolsosComprobaciones.aspx.vb +++ b/Compras/ReembolsosComprobaciones.aspx.vb @@ -122,20 +122,17 @@ Partial Class Compras_ReembolsosComprobaciones DdlCajaChica.DataSource = dt DdlCajaChica.DataBind() - Dim ObjPersonal As New ClsRH - ObjPersonal.GetPersonal(-1, UsuarioActual.CveEmpresa) - If UsuarioActual.CveEmpresa.Contiene(119, 158) Then - DdlPersonal.DataSource = ObjPersonal.DtResultados + DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) Else - DdlPersonal.DataSource = ObjPersonal.DtResultados.FiltraParametros("CveEstatusPersonal = 1") + DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa).FiltraParametros("CveEstatusPersonal = 1") End If - - - ObjPersonal.Dispose() DdlPersonal.DataBind() CargaTipoTransaccion() + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'acumuladores + ChkMesSiguiente.Visible = True + End If If UsuarioActual.Empresa.Funcionalidad(506) = "1" Then CbPermitirExcedente.Visible = True @@ -143,19 +140,10 @@ Partial Class Compras_ReembolsosComprobaciones CbPermitirExcedente.Visible = False End If - ' If UsuarioActual.CveEmpresa.Contiene(1, 4, 7, 11, 12, 72, 80, 119) Then - 'rowComisiones.Visible = True - ' End If - - If UsuarioActual.CveEmpresa = 119 Then - ChkReembolsarSinBancos.Visible = True - End If + If UsuarioActual.CveEmpresa = 119 Then ChkReembolsarSinBancos.Visible = True TxtFechaPrePoliza.Text = Date.Now.ToShortDateString - 'CargaCuentasDiferencia() - - 'TableDiferencia.Visible = False End If End Sub @@ -176,7 +164,7 @@ Partial Class Compras_ReembolsosComprobaciones DdlPersonal.Visible = True DdlPersonal.SelectedValue = "-2" If UsuarioActual.CveRol = 1 Then ChkAplicaViatico.Visible = True - LtTituloPago.Text = "Viaticos - Personal:" + LtTituloPago.Text = "Viáticos:" 'Valida Proceso 120 para ROL Administrador de obra - para FyE solo puede ver los del UsuarioActual If UsuarioActual.TienePermisoProceso(120) Then @@ -413,49 +401,38 @@ Partial Class Compras_ReembolsosComprobaciones #Region " BTN GUARDAR " Protected Sub BtnIEGuardar_Click(sender As Object, e As EventArgs) Handles BtnIEGuardar.Click - Dim ValFechaDocumento As Boolean = False Dim FoliosFechasValFechaDocumento As New StringBuilder - FoliosFechasValFechaDocumento.AppendLine("Se seleccionaron facturas con fecha de mes superior al mes del pago:
") For Each gvRowVal As GridViewRow In GvCxP.Rows If gvRowVal.FCCheckBox("Chk").Checked Then - Dim FechaFactura As Date = gvRowVal.DataKey("FechaCompra").ToDate - - Dim FechaDocumento As Date - - If DDlCheques.SelectedValue.ToEntero = -1 Then FechaDocumento = TxtFechaDocumento.Text.ToDate Else FechaDocumento = TxtFechaPrePoliza.Text.ToDate End If - Dim AnioFactura As Integer = FechaFactura.Year Dim MesFactura As Integer = FechaFactura.Month Dim AnioDocumento As Integer = FechaDocumento.Year Dim MesDocumento As Integer = FechaDocumento.Month If AnioFactura > AnioDocumento Then - FoliosFechasValFechaDocumento.AppendLine($"Folio: { gvRowVal.DataKey("SerieFolio") } fecha: {gvRowVal.DataKey("FechaCompra").ToDate.ToString("dd/MM/yyyy") }
") ValFechaDocumento = True ElseIf AnioFactura = AnioDocumento And MesFactura > MesDocumento Then FoliosFechasValFechaDocumento.AppendLine($"Folio: { gvRowVal.DataKey("SerieFolio") } fecha: {gvRowVal.DataKey("FechaCompra").ToDate.ToString("dd/MM/yyyy") }
") ValFechaDocumento = True End If - End If - Next 'rmf. codigo temporal - If UsuarioActual.CveEmpresa.Contiene(13, 83) Then + If UsuarioActual.CveEmpresa.Contiene(13, 83) OrElse ChkMesSiguiente.Checked Then ValFechaDocumento = False End If @@ -535,8 +512,7 @@ Partial Class Compras_ReembolsosComprobaciones If HdnCheque.Value.ToEntero > 0 AndAlso Not ChkReembolsarSinBancos.Checked Then CveIERegistrado = DDlCheques.SelectedValue.ToEntero - - If UsuarioActual.CveEmpresa.Contiene(119, 158) Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) OrElse ChkMesSiguiente.Checked Then CvePrePolizaIERegistrado = ObjMov.AddPrePolizas("Compras/Comprobaciones1", 9, TxtImporteVinculado.Text.ToDecimal, TxtImporteVinculado.Text.ToDecimal, CveMoneda, TxtFechaPrePoliza.Text.ToDate, If(TxtObservaciones.Text.Trim = "", concepto, TxtObservaciones.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CveCajaChica > 0 Then @@ -592,8 +568,6 @@ Partial Class Compras_ReembolsosComprobaciones End If End If - - End If ElseIf Not ChkReembolsarSinBancos.Checked Then CvePrePolizaIERegistrado = ObjMov.AddPrePolizas("Compras/Comprobaciones4", 9, TxtImporte.Text.ToDecimal, TxtImporte.Text.ToDecimal, CveMoneda, TxtFechaDocumento.Text.ToDate, If(TxtObservaciones.Text.Trim = "", concepto, TxtObservaciones.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) @@ -747,8 +721,8 @@ Partial Class Compras_ReembolsosComprobaciones CvePrePolizaPago = CvePrePolizaIERegistrado - 'SE USARA PARA PODER ELIMINAR UNA COMPROBACION - CvePrePolizaPagoOriginal = ObjMov.AddPrePolizas("Compras/Comprobaciones6", 9, ImporteMovto, ImporteMovto, CveMoneda, TxtFechaPrePoliza.Text.ToDate, If(TxtObservaciones.Text.Trim = "", $"Compra: { gvr.DataKey("SerieFolio").ToString }", TxtObservaciones.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + ''SE USARA PARA PODER ELIMINAR UNA COMPROBACION + CvePrePolizaPagoOriginal = -1 'ObjMov.AddPrePolizas("Compras/Comprobaciones6", 9, ImporteMovto, ImporteMovto, CveMoneda, TxtFechaPrePoliza.Text.ToDate, If(TxtObservaciones.Text.Trim = "", $"Compra: { gvr.DataKey("SerieFolio").ToString }", TxtObservaciones.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) 'registramos el nuevo IE If CveCajaChica > 0 Then @@ -779,7 +753,7 @@ Partial Class Compras_ReembolsosComprobaciones MsgError = "Detalle" End If - If Not ChkReembolsarSinBancos.Checked AndAlso (Not HdnCheque.Value.ToEntero > 0 Or Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then + If Not ChkReembolsarSinBancos.Checked AndAlso (Not HdnCheque.Value.ToEntero > 0 Or Not UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso Not ChkMesSiguiente.Checked) Then 'Si es caja chica metemos el concepto 30, si es funcionario metemos 29 ImporteMovto += Pago.OtroGastoIngreso ' si ajuste, sedebe de aplicar en su contraparte If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, ImporteMovto, Referencia, If(CveCajaChica > 0, 30, 29), ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(CveCajaChica > 0, IdCuentaBancaria, IdCtaPersonal), -1, CveIE:=CveIEPago, CveIEDevolucion:=If(CveCajaChica > 0, If(DDlCheques.SelectedValue.ToEntero = -1, CveIECajaChica, DDlCheques.SelectedValue.ToEntero), -1), CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, Contabilizable:=If(CveCajaChica > 0 Or CvePersonal > 0, Not UsaSimplificacionCajaChica, True)) Then @@ -1178,16 +1152,16 @@ Partial Class Compras_ReembolsosComprobaciones End If If e.Row.RowIndex = 1 Then e.Row.Cells(0).Width = Unit.Pixel(20) - e.Row.Cells(1).Width = Unit.Pixel(70) - e.Row.Cells(2).Width = Unit.Pixel(250) - e.Row.Cells(3).Width = Unit.Pixel(70) - e.Row.Cells(4).Width = Unit.Pixel(80) - e.Row.Cells(5).Width = Unit.Pixel(40) - e.Row.Cells(6).Width = Unit.Pixel(80) - e.Row.Cells(7).Width = Unit.Pixel(70) - e.Row.Cells(8).Width = Unit.Pixel(70) - e.Row.Cells(9).Width = Unit.Pixel(80) - e.Row.Cells(15).Width = Unit.Pixel(80) + 'e.Row.Cells(1).Width = Unit.Pixel(70) + 'e.Row.Cells(2).Width = Unit.Pixel(250) + 'e.Row.Cells(3).Width = Unit.Pixel(70) + 'e.Row.Cells(4).Width = Unit.Pixel(80) + 'e.Row.Cells(5).Width = Unit.Pixel(40) + 'e.Row.Cells(6).Width = Unit.Pixel(80) + 'e.Row.Cells(7).Width = Unit.Pixel(70) + 'e.Row.Cells(8).Width = Unit.Pixel(70) + 'e.Row.Cells(9).Width = Unit.Pixel(80) + 'e.Row.Cells(15).Width = Unit.Pixel(80) End If e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index 4ef92fb44..ec5b6bcd4 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -437,10 +437,17 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas { //ASIGNAMOS ESTATUS EMITIDA CveEstatus = 3; + string Estatus = "Emitida"; + //SI ES REFACTURACION, DEBE QUEDAR COMO CANCELACION PENDIENTE PARA ENVIAR LA CANCELACION DE NUEVO + if (EsRefacturacion) + { + CveEstatus = 23; + Estatus = "Cancelación pendiente"; + } var ObjVentas = new ClsVentas(); if (ObjVentas.UpdateEstatusVenta(CveVenta, CveEstatus, UsuarioActual.CveEmpresa)) { - sb.Append("El estatus de la factura fue cambiado a 'Emitida'."); + sb.Append($"El estatus de la factura fue cambiado a '{Estatus}'."); } else { @@ -452,10 +459,17 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas { //ASIGNAMOS ESTATUS EMITIDA CveEstatus = 3; + string Estatus = "Emitida"; + //SI ES REFACTURACION, DEBE QUEDAR COMO CANCELACION PENDIENTE PARA ENVIAR LA CANCELACION DE NUEVO + if (EsRefacturacion) + { + CveEstatus = 23; + Estatus = "Cancelación pendiente"; + } var ObjVentas = new ClsVentas(); if (ObjVentas.UpdateEstatusVenta(CveVenta, CveEstatus, UsuarioActual.CveEmpresa)) { - sb.Append("El estatus de la factura fue cambiado a 'Emitida'."); + sb.Append($"El estatus de la factura fue cambiado a '{Estatus}'."); } else { diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index caebcc4a0..aa43c661a 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -11239,8 +11239,15 @@ Partial Class Ventas Dim tTipoAmortizacion As Integer = If(DdlTipoAmortizacionAnticipo.SelectedValue = "2", 1, 2) + Dim ForzarAjuste As Boolean = False - DtImpuestos = CargaDtImpuestosNC(gvrt.DataKey("CveVenta").ToString().ToEntero(), gvrt.FCTextBox(String.Format("TxtAnticipo{0}", gvrt.RowIndex)).Text.ToDecimal, AplicaImpuestosLocales:=True, NCDescuento:=False, NivelTotal:=tTipoAmortizacion) + 'EL IMPORTE DE NC NO PUEDE SER MAYOR AL DE LA FACTURA + If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso (tTipoAmortizacion = 1) Then + ForzarAjuste = True + End If + + 'SI LA APLICACION DE ANTICIPO SE HACE A NIVEL TOTAL, FORZAR EL AJUSTE POR REDONDEO + DtImpuestos = CargaDtImpuestosNC(gvrt.DataKey("CveVenta").ToString().ToEntero(), gvrt.FCTextBox(String.Format("TxtAnticipo{0}", gvrt.RowIndex)).Text.ToDecimal, AplicaImpuestosLocales:=True, NCDescuento:=False, NivelTotal:=tTipoAmortizacion, ForzarAjuste:=ForzarAjuste) Dim query = From ddr In DtImpuestos Group By PorcentajeIVA = ddr("PorcentajeIVA").ToString().ToDecimal, @@ -11251,9 +11258,9 @@ Partial Class Ventas Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString().ToDecimal), ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString().ToDecimal), ImporteIVA = x.Sum(Function(s) (s("ImporteIVA").ToString().ToDecimal)).RoundSQL(2), ' Math.Round(s("ImporteIVA").ToString().ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA, - ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA, - ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR, - ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString().ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS, + ImporteRetIVA = x.Sum(Function(s) s("ImporteRetIVA").ToString().ToDecimal()).RoundSQL(2),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA, + ImporteRetISR = x.Sum(Function(s) s("ImporteRetISR").ToString().ToDecimal()).RoundSQL(2),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR, + ImporteIEPS = x.Sum(Function(s) s("ImporteIEPS").ToString().ToDecimal()).RoundSQL(2), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS, PorcentajeIVA = PorcentajeIVA, PorcentajeRetIVA = PorcentajeRetIVA, PorcentajeRetISR = PorcentajeRetISR, @@ -11303,13 +11310,13 @@ Partial Class Ventas '**** IMPUESTOS LOCALES factura.DtDetalle = tmpcon - Dim TotalSubTotal As Decimal = tmpcon.SUM("TotalImporte").ToDecimal - Dim TotalDescuentos As Decimal = tmpcon.SUM("Descuento").ToDecimal + Dim TotalSubTotal As Decimal = tmpcon.SUMD("TotalImporte").RoundSQL(2) + Dim TotalDescuentos As Decimal = tmpcon.SUMD("Descuento") - Dim TotalIVA As Decimal = tmpcon.SUM("ImporteIVA").ToDecimal - Dim TotalIEPS As Decimal = tmpcon.SUM("ImporteIEPS").ToDecimal - Dim TotalRetIVA As Decimal = tmpcon.SUM("ImporteRetIVA").ToDecimal - Dim TotalRetISR As Decimal = tmpcon.SUM("ImporteRetISR").ToDecimal + Dim TotalIVA As Decimal = tmpcon.SUMD("ImporteIVA") + Dim TotalIEPS As Decimal = tmpcon.SUMD("ImporteIEPS") + Dim TotalRetIVA As Decimal = tmpcon.SUMD("ImporteRetIVA") + Dim TotalRetISR As Decimal = tmpcon.SUMD("ImporteRetISR") Dim Total As Decimal = 0 Dim TotalImpuestosLocales As Decimal = factura.TotalImpuestoLocal.ToString().ToDecimal Total = (TotalSubTotal - TotalDescuentos + TotalIVA + TotalIEPS - TotalRetIVA - TotalRetISR - TotalImpuestosLocales) @@ -11343,6 +11350,9 @@ Partial Class Ventas Else ErrorList.Add("No se encontró un producto para generar la nota de crédito") + If DtVentasNC IsNot Nothing AndAlso DtVentasNC.Rows.Count > 0 Then + DtVentasNC.Rows.Clear() + End If End If End If @@ -23659,8 +23669,9 @@ Partial Class Ventas End If End Using + 'SI TIENE UN ANTICIPO RELACIONADO O VIENE DE UNA REFACTURACION If RowVentas IsNot Nothing Then - If RowVentas("TipoDocto").ToString().Contiene("Ing") AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then + If RowVentas("TipoDocto").ToString().Contiene("Ing", "Ant") AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then CargaInventario(Me.CveVenta) End If End If @@ -29997,7 +30008,7 @@ Partial Class Ventas Next End Sub - Private Function CargaDtImpuestosNC(CveVentaNC As Integer, Importe As Decimal, Optional NCDescuento As Boolean = False, Optional AplicaImpuestosLocales As Boolean = True, Optional NivelTotal As Integer = 1, Optional AplicaNCUsado As Boolean = False) As DataTable + Private Function CargaDtImpuestosNC(CveVentaNC As Integer, Importe As Decimal, Optional NCDescuento As Boolean = False, Optional AplicaImpuestosLocales As Boolean = True, Optional NivelTotal As Integer = 1, Optional AplicaNCUsado As Boolean = False, Optional ForzarAjuste As Boolean = False) As DataTable Dim Total As Decimal = 0, SubTotal As Decimal = 0, Saldo As Decimal = 0 Dim TmpDT As DataTable = Nothing @@ -30115,6 +30126,24 @@ Partial Class Ventas End If End If + 'SI LA DIFERENCIA ES MENOR O IGUAL A 1 CENTAVO, AJUSTAR EL TOTAL + If ForzarAjuste Then + 'ASUSTO LA DIFERENCIA EN LOS IMPUESTOS + Dim difTmp As Decimal = Importe - importeNC + If Math.Abs(difTmp) > 0.00D AndAlso Math.Abs(difTmp) <= 0.01D Then + 'SI TIENE IVA, AJUSTAR AQUI + If DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteIVA").ToString().ToDecimal() > 0 Then + Dim ImporteIVAAjustado As Decimal = DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteIVA").ToString().ToDecimal + difTmp + DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteIVA") = ImporteIVAAjustado + Else + Dim ImporteAjustado As Decimal = DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal").ToString().ToDecimal + difTmp + DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal") = ImporteAjustado + DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImportePU") = ImporteAjustado + End If + + End If + End If + If Not NCDescuento Then Me.TmpDT = TmpDT End If