diff --git a/App_Code/ClsClientes.vb b/App_Code/ClsClientes.vb index 3da855b93..0c3f1856e 100644 --- a/App_Code/ClsClientes.vb +++ b/App_Code/ClsClientes.vb @@ -172,6 +172,7 @@ Public Class ClsClientes Public Property CodigoRegimenFiscal As String Public Property RegimenFiscal As String + Public Property RepresentanteLegal As String #End Region @@ -429,6 +430,7 @@ Public Class ClsClientes _RegimenFiscal = Data(0)("RegimenFiscal").ToString _CodigoRegimenFiscal = Data(0)("CodigoRegimenFiscal").ToString + _RepresentanteLegal = Data(0)("RepresentanteLegal").ToString End If Retorno = True @@ -586,7 +588,8 @@ Public Class ClsClientes Optional AplicaComercioExterior As Boolean = False, Optional CveTipoOperacion As Integer = -1, Optional CvePedimento As Integer = -1, Optional CveIncoterm As Integer = -1, Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveColonia As Integer = -1, Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional RequiereOC As Boolean = False, Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, - Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False) As Boolean + Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False, + Optional RepresentanteLegal As String = "") As Boolean Dim Retorno As Boolean = False @@ -731,6 +734,9 @@ Public Class ClsClientes .Add("@RegimenSociedad", SqlDbType.VarChar).Value = RegimenSociedad .Add("@TipoPersona", SqlDbType.Bit).Value = TipoPersona + .Add("@RepresentanteLegal", SqlDbType.VarChar).Value = RepresentanteLegal + + @@ -782,7 +788,8 @@ Public Class ClsClientes Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "-1", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional ApellidoPaternoPF As String = "-1", Optional ApellidoMaternoPF As String = "-1", Optional NombresPF As String = "-1", Optional RequiereOC As Boolean = False, Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", - Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False) As Boolean + Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False, + Optional RepresentanteLegal As String = "") As Boolean Dim Retorno As Boolean = False @@ -943,6 +950,7 @@ Public Class ClsClientes .Add("@RegimenSociedad", SqlDbType.VarChar).Value = RegimenSociedad .Add("@TipoPersona", SqlDbType.Bit).Value = TipoPersona + .Add("@RepresentanteLegal", SqlDbType.VarChar).Value = RepresentanteLegal diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 4d0886e3e..4f709540a 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -9368,6 +9368,9 @@ Public Class ClsPaginas Dim ErrorMovtos As Boolean = False Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total Dim ImporteMovimiento As Decimal = 0 + Dim ImporteMN As Decimal = 0 + Dim ImporteME As Decimal = 0 + Dim TCValuacion As Decimal = CompraActual.TC Dim tImportePago, tImporteCompra As Decimal Dim CveConceptoContableComplementaria As Integer = 206 @@ -9390,49 +9393,53 @@ Public Class ClsPaginas If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then If UltimaFluctuacion.FechaFluctuacion <= tFecha Then 'FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion - CompraActual.TC = UltimaFluctuacion.TCFluctuacion + TCValuacion = UltimaFluctuacion.TCFluctuacion End If End If If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares - tImportePago = ((Pago.ImportePago * CompraActual.TC / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL + tImportePago = ((Pago.ImportePago * TCValuacion / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares - tImporteCompra = (Pago.ImportePago * CompraActual.TC).RoundSQL + tImporteCompra = (Pago.ImportePago * TCValuacion).RoundSQL tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos - tImporteCompra = (Pago.ImportePago * CompraActual.TC).RoundSQL + tImporteCompra = (Pago.ImportePago * TCValuacion).RoundSQL tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL End If + If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePago 'movimiento de pago proveedor - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, Pago.CveConceptoPago, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=CompraActual.TC) Then - ErrorMovtos = True - End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, Pago.CveConceptoPago, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacion, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + 'movimiento de pago proveedor Complementaria If Not ErrorMovtos AndAlso CompraActual.CveMoneda > 1 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (Pago.ImportePago * CompraActual.TC - Pago.ImportePago).RoundSQL, CveConceptoContableComplementaria, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=CompraActual.TC, ImporteME:=Pago.ImportePago) Then - ErrorMovtos = True - End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (ImporteME * TCValuacion - ImporteME).RoundSQL, CveConceptoContableComplementaria, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacion, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + End If 'si tiene iva y su proporcion If Not ErrorMovtos AndAlso CompraActual.IVA <> 0 Then ImporteMovimiento = (PorcentajePago * CompraActual.IVA).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaIVA - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.IVA).RoundSQL * Pago.TCPago).RoundSQL + If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = (ImporteMovimiento.RoundSQL * Pago.TCPago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True If CompraActual.IVANoDeducible > 0 Then - Dim ImporteNOIVA As Decimal = CompraActual.IVANoDeducible * PorcentajePago + ImporteMovimiento = (CompraActual.IVANoDeducible * PorcentajePago).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteNOIVA, ImporteNOIVA, 280, CompraActual.SerieFolio, Concepto, Ret.IdCtaContIVANoAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 280, CompraActual.SerieFolio, Concepto, Ret.IdCtaContIVANoAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True End If @@ -9441,32 +9448,41 @@ Public Class ClsPaginas 'si tiene RET IVA y su proporcion If Not ErrorMovtos AndAlso CompraActual.RetIVA > 0 Then ImporteMovimiento = (PorcentajePago * CompraActual.RetIVA).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetIVA - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.RetIVA).RoundSQL * Pago.TCPago).RoundSQL + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True End If 'si tiene Ret ISR y su proporcion If Not ErrorMovtos AndAlso CompraActual.RetISR > 0 Then ImporteMovimiento = (PorcentajePago * CompraActual.RetISR).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As CompraRetenciones = CompraActual.ConceptoPrePolizaRetISR - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.RetISR).RoundSQL * Pago.TCPago).RoundSQL + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True End If 'si tiene IEPS y su proporcion If Not ErrorMovtos AndAlso CompraActual.IEPS > 0 Then ImporteMovimiento = (PorcentajePago * CompraActual.IEPS).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As New CompraRetenciones If UsuarioActual.Empresa.TipoContabilidad = 2 Then If ObjConta.GetRetCuenta(26, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero @@ -9475,12 +9491,12 @@ Public Class ClsPaginas End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMovimiento, 25, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 25, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMovimiento = ((PorcentajePago * CompraActual.IEPS).RoundSQL * Pago.TCPago).RoundSQL + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMovimiento, 26, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 26, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True End If @@ -9493,8 +9509,7 @@ Public Class ClsPaginas tOtTipoMovto = True : tOtCveCon = 78 ImporteMovimiento = Math.Abs(ImporteMovimiento) End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, CompraActual.SerieFolio, Concepto, 0, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, CompraActual.SerieFolio, Concepto, 0, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveSubProyecto:=CompraActual.CveSubProyecto, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True End If @@ -9547,6 +9562,7 @@ Public Class ClsPaginas Public Property CveCompraAmortizacion As Integer = 0 Public Property OtroGastoIngreso As Decimal = 0 Public Property CveConceptoPago As Integer = -1 'no definido de inicio + Public Property CveCreditoDetalle As Integer = -1 End Class diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index aa784c42c..d7d2ecae0 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -7324,6 +7324,47 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo + Public Function NomBitacoraCorreoGet(CvePeriodo As Integer, CvePersonal As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + Data = New DataTable + SqlDataAdapter("PA_NomBitacoraCorreoGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePeriodo", SqlDbType.Int).Value = CvePeriodo + .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + Me.OnError("Ocurrió un error al guardar correos nominas", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + OnError("Ocurrió un error al guardar correos nominas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + Public Function NomBitacoraCorreoAdd(CvePeriodo As Integer, CvePersonal As Integer, Correos As String, CveEmpresa As Integer, CveUsuario As Integer) As Boolean + Dim Retorno As Boolean = False + Data = New DataTable + SqlDataAdapter("PA_NomBitacoraCorreoAdd") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePeriodo", SqlDbType.Int).Value = CvePeriodo + .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal + .Add("@Correos", SqlDbType.VarChar).Value = Correos + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch Ex1 As SqlException + Me.OnError("Ocurrió un error al guardar correos nominas", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + OnError("Ocurrió un error al guardar correos nominas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + Public Function UpPersonalAsistenciasMasiva(CveEmpresa As Integer, CveUsuario As Integer, xmlProductos As String) As Boolean Dim Retorno As Boolean = False Data = New DataTable diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 8058e13d5..9aee1fca2 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -860,6 +860,9 @@ Public Class ClsVentas Return Retorno End Function + + + Public Function UpdateVentaRNCUsado(CveVentaRNC As Integer, CveVenta As Integer) As Boolean Dim Retorno As Boolean = False @@ -5544,6 +5547,29 @@ Public Class ClsVentas #End Region + Public Function GetListadoCartaPorteRep(FechaI As Date, FechaF As Date, CveSubProyecto As String, CveUsuarioConsulta As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_RepListadoCartaPorteGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + .Add("@CveSubProyecto", SqlDbType.VarChar).Value = CveSubProyecto + .Add("@CveUsuarioConsulta", SqlDbType.Int).Value = CveUsuarioConsulta + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error obtener el listado de carta porte.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + + End Function + + #Region "IDisposable Support" diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index d8a5a9b9d..48bfd0a27 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -4832,7 +4832,7 @@ Public Class Timbrado If ObjCFDITimbre.Conceptos IsNot Nothing AndAlso ObjCFDITimbre.Conceptos.Count > 0 Then For Each concep As CFDIConceptos In ObjCFDITimbre.Conceptos - cfdi.Concepto(concep.ClaveProdServ, concep.Noidentificacion, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Descripcion, concep.ValorUnitario, concep.Importe, concep.Descuento, concep.ObjetoImpuesto) + cfdi.Concepto(concep.ClaveProdServ, concep.Noidentificacion, concep.Cantidad.ToString("0.00####"), concep.ClaveUnidad, concep.Unidad, concep.Descripcion, concep.ValorUnitario.ToString("0.00####"), concep.Importe, concep.Descuento, concep.ObjetoImpuesto) For Each imp As CFDIConceptosImpuestos In concep.Impuestos If imp.TrasladooRetencion = "T" Then cfdi.ConceptoTraslado(imp.Base, imp.Impuesto, imp.TipoFactor, imp.TasaOCuota, imp.Importe) diff --git a/Bancos/PrestamoPersonal.aspx.cs b/Bancos/PrestamoPersonal.aspx.cs index 3798fed6a..e8c36bc90 100644 --- a/Bancos/PrestamoPersonal.aspx.cs +++ b/Bancos/PrestamoPersonal.aspx.cs @@ -611,8 +611,6 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas MsgError = "No se pudo insertar concepto de acreedor complementaria"; } } - - } else { @@ -663,11 +661,13 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas if (MsgError.Equals("")) { + ObjIE.Commit(); if (Msg.ToString().Equals("")) { Msg.Append("El Documento se guardo correctamente"); } - System.IO.FileInfo archivo = null; + System.IO.FileInfo archivo = null; + if (DdlTipoTransanccionPrestamo.SelectedValue.ToEntero().Contiene(2, 8, 9)) { @@ -691,7 +691,7 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas { Msg.AppendFormat(@"

Ver Póliza", IDPoliza); } - ObjIE.Commit(); + } else { diff --git a/Bancos/ProveedoresAbonar.aspx b/Bancos/ProveedoresAbonar.aspx index 9d5d23cab..cfd8e4adf 100644 --- a/Bancos/ProveedoresAbonar.aspx +++ b/Bancos/ProveedoresAbonar.aspx @@ -369,7 +369,7 @@ diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index d5f1bb193..dcd828b1a 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -138,17 +138,6 @@ Partial Class Bancos_ProveedoresAbonar Return ViewState("IdCtaProveedorExtranjera").ToString.ToEntero End Get End Property - Private ReadOnly Property CtaAcreedor As Integer - Get - Return ViewState("CtaAcreedor").ToString.ToEntero - End Get - End Property - - Private ReadOnly Property IdCtaAcreedorExtranjera As Integer - Get - Return ViewState("IdCtaAcreedorExtranjera").ToString.ToEntero - End Get - End Property Private Property IdCuenta As Integer Get @@ -196,41 +185,6 @@ Partial Class Bancos_ProveedoresAbonar Return ViewState("IdCtaContComplementaria").ToString.ToEntero End Get End Property - Private ReadOnly Property IdCtaContAcreedorComplementaria As Integer - Get - Return ViewState("IdCtaContAcreedorComplementaria").ToString.ToEntero - End Get - End Property - - Private ReadOnly Property IdCtaContRetIVA As Integer - Get - Return ViewState("IdCtaContRetIVA").ToString.ToEntero - End Get - End Property - Private ReadOnly Property IdCtaContRetISR As Integer - Get - Return ViewState("IdCtaContRetISR").ToString.ToEntero - End Get - End Property - Private ReadOnly Property IdCtaContRetIVAAcreditable As Integer - Get - Return ViewState("IdCtaContRetIVAAcreditable").ToString.ToEntero - End Get - End Property - Private ReadOnly Property IdCtaContRetISRAcreditable As Integer - Get - Return ViewState("IdCtaContRetISRAcreditable").ToString.ToEntero - End Get - End Property - - Private Property EmpresaPrueba As Boolean - Get - Return CBool(ViewState("EmpresaPrueba")) - End Get - Set(value As Boolean) - ViewState("EmpresaPrueba") = value - End Set - End Property Private Property ComprobanteIE As String Get Return ViewState("ComprobanteIE").ToString @@ -296,7 +250,6 @@ Partial Class Bancos_ProveedoresAbonar If Not Page.IsPostBack Then If Not UsuarioActual.Empresa.UsaAC Then - EmpresaPrueba = True ViewState("IdCtaContMonedaExtranjera") = 0 ViewState("IdCtaContComplementaria") = 0 ViewState("IdCtaContRetIVA") = 0 @@ -428,7 +381,7 @@ Partial Class Bancos_ProveedoresAbonar TxtObservaciones.Text = "" TxtImporte.Text = "" TxtTotal.Text = "" - 'If Mov.GetCxPProveedor(pCveProveedor, Serie, tCveMoneda, FechaVencimientoInicio:=FechaVencimientoInicio, FechaVencimientoFin:=FechaVencimientoFin, CveUsuarioRegistro:=CveUsuarioRegistro, CveUsuarioProgramo:=CveUsuarioPrograma) Then + If Mov.GetCxPProveedor(CveProveedor, FechaI, FechaF, CveUsuarioProgramo, CveUsuarioRegistro, CveUsuarioResponsable, CveClasificacionProveedor, tCveMoneda, CveEstatus, CveProveedorSucursal, CveAplicaNC, "-1", "-1", CodigoProgramacion) Then DtDatos = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio") GvCxP.DataSource = DtDatos @@ -517,10 +470,8 @@ Partial Class Bancos_ProveedoresAbonar e.Row.Cells(9).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(10).HorizontalAlign = HorizontalAlign.Right - e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo"))) - If e.Row.RowIndex = 0 Then e.Row.FCHyperLink("HplF").Text = (CType(GvCxP.DataSource, DataTable).Rows.Count - 1).ToString e.Row.BackColor = Drawing.Color.LightGray @@ -531,15 +482,10 @@ Partial Class Bancos_ProveedoresAbonar e.Row.FCCheckBox("Chk").Visible = False e.Row.FCTextBox("TxtComision").Visible = False Else - e.Row.FCTextBox("TxtAbonar").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},1,'{2}',1);", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), "El Importe no debe de exceder el saldo")) e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},2,'{2}',2);", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), "El Importe no debe de exceder el saldo")) - - 'e.Row.FCTextBox("TxtAbonar").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},1,'{2}');", e.Row.FCCheckBox("Chk").ClientID, If(UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0, e.Row.DBCampo("ImporteAlmacen"), e.Row.DBCampo("Saldo")), If(UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0, "El importe no debe exceder el importe de entrada a almacen", "El Importe no debe de exceder el saldo"))) - 'e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},2,'{2}');", e.Row.FCCheckBox("Chk").ClientID, If(UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0, e.Row.DBCampo("ImporteAlmacen"), e.Row.DBCampo("Saldo")), If(UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0, "El importe no debe exceder el importe de entrada a almacen", "El Importe no debe de exceder el saldo"))) End If - If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(7).ForeColor = Drawing.Color.Red If e.Row.DBCampo("DiasVencidos").ToDouble > 0 AndAlso CType(sender, GridView).ID = "GvCxC" Then e.Row.Cells(4).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Original").ToDouble = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = "" @@ -622,11 +568,8 @@ Partial Class Bancos_ProveedoresAbonar 'se va acumulando el importe de cada renglon para sacar el pago del IE TxtImporte.Text = (TxtImporte.Text.ToDouble + e.Row.DBCampo("ImporteProgramo").ToDouble).FormatoNumero() End If - - End If - 'si está bloqueada y es refacturación, debe de permitirlo, sin importar lo que se halla ingresado If e.Row.DBCampo("CveCompraRefacturacion").ToEntero > 0 AndAlso Not e.Row.FCCheckBox("Chk").Enabled Then e.Row.FCCheckBox("Chk").Enabled = True @@ -637,8 +580,6 @@ Partial Class Bancos_ProveedoresAbonar End If End If - - End If End Sub #End Region @@ -685,8 +626,6 @@ Partial Class Bancos_ProveedoresAbonar Exit Sub End If - - If DdlTipoTransaccion.SelectedValue.ToEntero < 0 Then Alert("Seleccione un tipo de transacción", TipoMensaje.MsgAdvertencia) Exit Sub @@ -724,7 +663,7 @@ Partial Class Bancos_ProveedoresAbonar Dim Validada As Boolean = False Dim MsgValidadas As New StringBuilder Dim Valida As New ClsValidaCFDi() - 'veririco ante el SAT las compras que voy a pagar + 'verifico ante el SAT las compras que voy a pagar For Each gvr As GridViewRow In GvCxP.Rows If gvr.FCCheckBox("Chk").Checked Then @@ -744,24 +683,7 @@ Partial Class Bancos_ProveedoresAbonar 'estatus inventario, no surtida If gvr.DataKey("EstatusInventario") = "1" Then - Dim HuboError As Boolean = False - Dim ObjCompra As New ClsCompras - Dim ObjEventos As New ClsOIEventos(ObjCompra.IniciaTransacSQL()) - If ObjCompra.UpdateEstatus(Valida.EsValida, gvr.DataKey("CveFactura").ToEntero, UsuarioActual.CveEmpresa) Then - - If ObjCompra.CancelarCompra(gvr.DataKey("CveCompra").ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - MsgValidadas.AppendFormat("Factura Cancelada: {0} - {1}
", gvr.DataKey("SerieFolio"), gvr.DataKey("Descripcion")) - If Not ObjEventos.AddEventoBitacora("La compra se ha detectado como cancelada ante el SAT", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra:=gvr.DataKey("CveCompra").ToEntero) Then - HuboError = True - End If - Else - HuboError = True - End If - Else - HuboError = True - End If - If Not HuboError Then ObjCompra.Commit() Else ObjCompra.RollBack() - ObjCompra.Dispose() + MsgValidadas.AppendFormat("Factura Cancelada: {0} - {1} , relacione su factura nueva para descontar saldo
", gvr.DataKey("SerieFolio"), gvr.DataKey("Descripcion")) Else MsgValidadas.AppendFormat("Factura Cancelada: {0} - {1} con movimientos de almacen, relacione su factura nueva para descontar saldo
", gvr.DataKey("SerieFolio"), gvr.DataKey("Descripcion")) End If @@ -842,7 +764,7 @@ Partial Class Bancos_ProveedoresAbonar 'cheque If DdlTipoTransaccion.SelectedValue = "1" AndAlso UsuarioActual.CveEmpresa.Contiene(13, 83) Then FolioFijo = TxtFolio.Text.ToEntero - CvePrePoliza = ObjMov.AddPrePolizas("Bancos/ProveedoresAbonar", 2, ImporteSeleccionado, ImporteSeleccionado, GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", "CveCuenta = " & DdlCuenta.SelectedValue).ToEntero, TxtFechaDocumento.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjComp.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, Nothing, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)) + CvePrePoliza = ObjMov.AddPrePolizas("Bancos/ProveedoresAbonar", 2, ImporteSeleccionado, ImporteSeleccionado, 1, TxtFechaDocumento.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjComp.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, Nothing, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)) If CveMoneda = 2 Then If TxtTCDolares.Visible Then @@ -859,11 +781,8 @@ Partial Class Bancos_ProveedoresAbonar Dim CveIE As Integer = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, TxtFolio.Text.Trim, TxtPagueseA.Text.Trim, TxtImporte.Text.ToDecimal, GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", "CveCuenta = " & DdlCuenta.SelectedValue).ToEntero, TipoCambio, TxtObservaciones.Text.Trim, TxtNotificarA.Text.Trim, ChkAbonoCuenta.Checked, True, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaDeposito:=CveCuentaDeposito, Referencia:=If(TxtReferenciaCIE.Visible, TxtReferenciaCIE.Text, "-1"), CveCuentaTarjeta:=If(DivTarjeta.Visible, DdlTarjeta.SelectedValue.ToEntero, -1), ConceptoCIE:=TxtConceptoCIE.Text) If CveIE > 0 Then - - ComprobanteIE = $"{CveIE}.{Comprobante}" - If DdlCuentaDeposito.SelectedValue.ToEntero > 0 And DdlTipoTransaccion.SelectedValue = "17" Then If TxtReferenciaCIE.Text <> OriReferenciaCIE Or TxtConceptoCIE.Text <> OriConceptoCIE Then @@ -871,7 +790,6 @@ Partial Class Bancos_ProveedoresAbonar Dim ObjGrales As New ClsGenerales(ObjIE.IniciaTransacSQL) If Not ObjGrales.UpdateCuentasDepositosEstatusPagoElectronicoGrupos(DdlCuentaDeposito.SelectedValue.ToEntero, -1, -1, "-1", TxtReferenciaCIE.Text.Trim, TxtConceptoCIE.Text.Trim) Then - MsgError = "Error al actualziar Cuanta Referencia y Concepto Deposito." End If @@ -888,795 +806,158 @@ Partial Class Bancos_ProveedoresAbonar 'inserto los movimientos de la conta para abonar al saldo If CvePrePoliza > 0 Then + Dim Pago As New CompraPago + Pago.Fecha = TxtFechaDocumento.Text.ToDate + Pago.CveIE = CveIE + Pago.CveMonedaPago = CveMoneda - If EmpresaPrueba Then - Dim PorcentajePago As Decimal = 100 - Dim CvePlantillaPoliza As Integer = 2 - Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:

" - Dim idCuentaContabilizacion As Long = 1 - Dim CuentasContablesInvalidas As New StringBuilder - Dim CuentasContablesInvalidasSIG As New StringBuilder - Dim ConceptoContable As Integer - Dim TipoMovimiento As Boolean - Dim ImporteMovimiento As Decimal - Dim importeMX As Decimal - Dim FechaMovimiento As Date = TxtFechaDocumento.Text.ToDate - Dim IdCtaContable As Integer = 0 - Dim ConceptoMovimiento As String - Dim Referencia As String - Dim tipoCambioCompra As Decimal - Dim TipoCambioPago As Decimal = 0 - Dim TipoCambioGeneral As Decimal = 0 - Dim tipoCambioCompraValuacion As Decimal = 1 + 'inserto las compras que voy a pagar + For Each gvr As GridViewRow In GvCxP.Rows + If gvr.FCCheckBox("Chk").Checked Then - Dim UsaComplementariaBancos As Boolean = If(UsuarioActual.CveEmpresa.Contiene(119, 158), True, False) - Dim UsaComplementariaProveedores As Boolean = If(UsuarioActual.CveEmpresa.Contiene(119, 158), True, False) + Dim CompraActual As New Compra + CompraActual.CveCompra = gvr.DataKey("CveCompra").ToEntero + CompraActual.CveTipoConceptoProveedor = gvr.DataKey("CveTipoConcepto").ToEntero + CompraActual.CveProveedor = gvr.DataKey("CveProveedor").ToEntero + CompraActual.CveMoneda = gvr.DataKey("CveMoneda").ToEntero + CompraActual.SerieFolio = gvr.DataKey("SerieFolio").ToString + CompraActual.ProveedorNombre = HplProveedor.Text + CompraActual.TC = gvr.DataKey("TipoCambioOriginal").ToDecimal + CompraActual.Total = gvr.DataKey("Total").ToDecimal + CompraActual.IVA = gvr.DataKey("IVA").ToDecimal + CompraActual.IVADeducible = gvr.DataKey("IVADeducible").ToDecimal + CompraActual.IEPS = gvr.DataKey("IEPS").ToDecimal + CompraActual.RetIVA = gvr.DataKey("RetIVA").ToDecimal + CompraActual.RetISR = gvr.DataKey("RetISR").ToDecimal + CompraActual.CveConceptoRetISR = gvr.DataKey("CveRetISRConcepto").ToEntero + CompraActual.CveConceptoRetIVA = gvr.DataKey("CveRetIVAConcepto").ToEntero + CompraActual.PorcentajeIVA = gvr.DataKey("PorcentajeIVA").ToDecimal + CompraActual.EsImportacion = gvr.DataKey("EsImportacion") = "True" + CompraActual.UsuarioActual = UsuarioActual + CompraActual.CveSubProyecto = gvr.DataKey("CveSubProyecto").ToEntero - Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) + 'Importe de pago + Pago.ImportePago = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - Dim TipoCambioFluctuacion As Decimal = 1 - Dim FechaUltimaFluctuacion As Date = MinFecha + 'Tipos de cambio + If Pago.CveMonedaPago = 1 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos + Pago.TCPago = TxtTC.Text.ToDecimal + ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES + Pago.TCPago = TxtTCDolaresDolares.Text.ToDecimal + ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES + Pago.TCPago = TxtTCDolares.Text.ToDecimal + End If - Dim tFecha As Date = TxtFechaDocumento.Text.ToDate - Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) + If gvr.FCTextBox("TxtComision").Text.ToDecimal <> 0 Then + Pago.OtroGastoIngreso = gvr.FCTextBox("TxtComision").Text.ToDecimal + End If - If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then - If UltimaFluctuacion.FechaFluctuacion <= tFecha Then - FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion - TipoCambioFluctuacion = UltimaFluctuacion.TCFluctuacion + If AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjMov) Then + MsgError = "No se pudo insertar la póliza" + End If + + 'DESPROGRAMA LO PROGRAMADO DESPUES DE HACERLE UN PAGO + ' If DdlTipoTransaccion.SelectedValue <> "9" Then 'SI ES LAYOUT SE DESPROGRAMA EN BANCOS/PAGOELECTRONICO, se comentó, 2018.07.31 peticion marilú. + If MsgError = "" AndAlso gvr.DataKey("ImporteProgramo").ToDouble > 0 Then + ObjComp.ProgramarCompra(gvr.DataKey("CveCompra").ToEntero, 0, UsuarioActual.CveUsuario, -1) + End If + End If + Next + + Dim UsaComplementariaBancos As Boolean = Not UsuarioActual.CveEmpresa.Contiene(7, 11, 122, 145) + Dim ConceptoMovimiento As String = $"{TxtPagueseA.Text.Trim} - {TxtObservaciones.Text} {If(Pago.TCPago > 1, $" TC:{Pago.TCPago}", "")}" + Dim Referencia As String = $"{HdnTipoTransaccionAbreviatura.Value}: {TxtFolio.Text.Trim}" + Dim tImporteMN As Decimal = Pago.ImportePago + + If DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then + Dim ObjCreditos As New ClsBancos + ObjCreditos.GetTarjetasCreditos(DdlCuenta.SelectedValue.ToEntero, DdlTarjeta.SelectedValue.ToEntero) + If ObjCreditos.DtResultados.Rows.Count > 0 AndAlso (ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero > 0 Or ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjetaSIG").ToString.ToEntero > 0) Then + IdCuenta = ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero + End If + + Dim Importe42 As Decimal = Pago.ImportePago + Pago.OtroGastoIngreso + tImporteMN = If(Pago.CveMonedaPago = 2, If(DivTC.Visible, Importe42 / TxtTC.Text.ToDecimal * Pago.TCPago, Importe42 * Pago.TCPago), Importe42) + + If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Importe42, tImporteMN, 42, Referencia, ConceptoMovimiento, IdCuenta, CveIE:=CveIE, CveProveedor:=CveProveedor, TipoCambio:=Pago.TCPago, CveSubProyecto:=CveSubProyecto) Then + MsgError = "No se pudo insertar la póliza" + End If + + Else + + If Not UsaComplementariaBancos Then tImporteMN = (tImporteMN * Pago.TCPago).RoundSQL + + If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, tImporteMN, 30, Referencia, ConceptoMovimiento, IdCuenta, CveIE:=CveIE, CveProveedor:=CveProveedor, TipoCambio:=Pago.TCPago, CveSubProyecto:=CveSubProyecto) Then + MsgError = "No se pudo insertar la póliza" + End If + + If UsaComplementariaBancos Then + If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, (Pago.ImportePago * Pago.TCPago - Pago.ImportePago).RoundSQL, 204, Referencia, ConceptoMovimiento, IdCuentaBancariaComplementaria, CveIE:=CveIE, CveProveedor:=CveProveedor, ImporteME:=Pago.ImportePago, TipoCambio:=Pago.TCPago, CveSubProyecto:=CveSubProyecto) Then + MsgError = "No se pudo insertar la póliza" End If End If - Dim DttPlantilla As DataTable = Nothing - If ObjMov.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPoliza) Then - DttPlantilla = ObjMov.DtResultados - End If + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES + 'fluctuación. + Dim TCPago = TxtTCDolares.Text.ToDecimal - Dim TipoContabilidad As Integer = UsuarioActual.Empresa.TipoContabilidad - - 'inserto las compras que voy a pagar - For Each gvr As GridViewRow In GvCxP.Rows - If gvr.FCCheckBox("Chk").Checked Then - Dim EsImportacion As Boolean = False - tipoCambioCompra = gvr.DataKey("TipoCambioOriginal").ToDecimal - PorcentajePago = (gvr.FCTextBox("TxtAbonar").Text.ToDecimal) / gvr.DataKey("Original").ToDecimal - tipoCambioCompraValuacion = 1 - 'Tipos de cambio - If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then 'Si la venta viene en Pesos y se va a pagar en Pesos - TipoCambioPago = 1 - ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos - TipoCambioPago = TxtTC.Text.ToDecimal - tipoCambioCompraValuacion = If(gvr.DataKey("Fecha").ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, tipoCambioCompra) - ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES - 'TipoCambioPago = 'GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).ToString.ToDecimal - TipoCambioPago = TxtTCDolaresDolares.Text.ToDecimal - tipoCambioCompraValuacion = If(gvr.DataKey("Fecha").ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, tipoCambioCompra) - ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - TipoCambioPago = TxtTCDolares.Text.ToDecimal - End If - CveSubProyecto = gvr.DataKey("CveSubProyecto").ToEntero - - If DttPlantilla IsNot Nothing AndAlso DttPlantilla.Rows.Count > 0 Then - For Each Row As DataRow In DttPlantilla.Rows - ConceptoContable = Row("CveConcepto").ToString.ToEntero - TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False) - ImporteMovimiento = 0 - IdCtaContable = 0 - ConceptoMovimiento = $"{HplProveedor.Text} F:{gvr.DataKey("SerieFolio")}" - Referencia = gvr.DataKey("SerieFolio").ToString - Dim PorcentajeImpuesto As Decimal = 0 - - Select Case ConceptoContable - Case 17 'Pago Proveedores - - If gvr.DataKey("CveTipoConcepto").ToEntero = 2 Then ConceptoContable = 308 'cuando es acreedor - If CveMoneda <> 1 Then - Select Case ConceptoContable - Case 17 - ConceptoContable = 312 - Case 308 - ConceptoContable = 309 - Case Else - End Select - End If - - ImporteMovimiento = gvr.FCTextBox("TxtAbonar").Text.ToDecimal.RoundSQL - importeMX = (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompraValuacion).RoundSQL - TipoCambioGeneral = tipoCambioCompraValuacion - ConceptoMovimiento = $"{HplProveedor.Text} F:{gvr.DataKey("SerieFolio")}" - 'cuando son dolares, y tienen complementaria, se hace el registro - If gvr.DataKey("CveMoneda").ToEntero = 1 Then - If gvr.DataKey("CveTipoConcepto").ToEntero = 2 Then - IdCtaContable = CtaAcreedor - Else - IdCtaContable = CtaProveedor - End If - - Else - Dim CveConceptoComplementaria As Integer = 206 - If gvr.DataKey("CveTipoConcepto").ToEntero = 2 Then CveConceptoComplementaria = 310 - - ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" - IdCtaContable = IdCtaContComplementaria - If ImporteMovimiento <> 0 AndAlso (UsaComplementariaProveedores Or IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos - importeMX = ImporteMovimiento - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0.00D, Referencia, CveConceptoComplementaria, ConceptoMovimiento, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=Math.Round(ImporteMovimiento * tipoCambioCompraValuacion - ImporteMovimiento, 2, MidpointRounding.AwayFromZero), ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioCompraValuacion) Then - MsgError = "No se pudo insertar la póliza" - End If - End If - IdCtaContable = IdCtaProveedorExtranjera - End If - Case 15 'Ret IVA X Acreditar Honorarios/Serv. Prof. - If gvr.DataKey("CveRetIVAConcepto").ToEntero > 0 Then - Dim Funcionalidad As Integer = 0 - If gvr.DataKey("CveRetIVAConcepto").ToEntero = 1 Then - Funcionalidad = 307 - ConceptoContable = 15 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 2 Then - Funcionalidad = 309 - ConceptoContable = 183 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 3 Then - Funcionalidad = 311 - ConceptoContable = 185 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 4 Then - Funcionalidad = 313 - ConceptoContable = 248 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 5 Then - Funcionalidad = 577 - ConceptoContable = 285 - End If - - ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago).RoundSQL - importeMX = (ImporteMovimiento * tipoCambioCompra).RoundSQL - - TipoCambioGeneral = tipoCambioCompra - If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - 'Conta ContPAQ - If IdCtaContRetIVA > 0 Then - IdCtaContable = IdCtaContRetIVA - ElseIf UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then - IdCtaContable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero - Else - If ImporteMovimiento <> 0 AndAlso TipoContabilidad <> 1 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - End If - End If - - - End If - - - Case 22 'Ret IVA Acreditable Honorarios/Serv. Prof. - If gvr.DataKey("CveRetIVAConcepto").ToEntero > 0 Then - - Dim Funcionalidad As Integer = 0 - If gvr.DataKey("CveRetIVAConcepto").ToEntero = 1 Then - Funcionalidad = 308 - ConceptoContable = 22 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 2 Then - Funcionalidad = 310 - ConceptoContable = 184 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 3 Then - Funcionalidad = 312 - ConceptoContable = 186 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 4 Then - Funcionalidad = 314 - ConceptoContable = 249 - ElseIf gvr.DataKey("CveRetIVAConcepto").ToEntero = 5 Then - Funcionalidad = 578 - ConceptoContable = 286 - End If - - ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago).RoundSQL - importeMX = (ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)).RoundSQL - - TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - - If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - 'Conta ContPAQ - If IdCtaContRetIVAAcreditable > 0 Then - IdCtaContable = IdCtaContRetIVAAcreditable - ElseIf UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then - IdCtaContable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero - Else - If ImporteMovimiento <> 0 AndAlso TipoContabilidad <> 1 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - End If - End If - - End If - - - Case 16 'Ret ISR X Acreditar - If gvr.DataKey("CveRetISRConcepto").ToEntero > 0 Then - Dim funcionalidad As Integer = 0 - If gvr.DataKey("CveRetISRConcepto").ToEntero = 1 Then - funcionalidad = 315 - ConceptoContable = 16 - ElseIf gvr.DataKey("CveRetISRConcepto").ToEntero = 2 Then - funcionalidad = 317 - ConceptoContable = 243 - ElseIf gvr.DataKey("CveRetISRConcepto").ToEntero = 3 Then - funcionalidad = 348 - ConceptoContable = 327 - End If - - ImporteMovimiento = (gvr.DataKey("RetISR").ToDecimal * PorcentajePago).RoundSQL - importeMX = (ImporteMovimiento * tipoCambioCompra).RoundSQL - - TipoCambioGeneral = tipoCambioCompra - If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - 'Conta ContPAQ - If IdCtaContRetISR > 0 Then - IdCtaContable = IdCtaContRetISR - ElseIf UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero > 0 Then - IdCtaContable = UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero - Else - If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - End If - End If - - End If - Case 23 'Ret ISR Acreditable - If gvr.DataKey("CveRetISRConcepto").ToEntero > 0 Then - Dim funcionalidad As Integer = 0 - If gvr.DataKey("CveRetISRConcepto").ToEntero = 1 Then - funcionalidad = 316 - ConceptoContable = 23 - ElseIf gvr.DataKey("CveRetISRConcepto").ToEntero = 2 Then - funcionalidad = 318 - ConceptoContable = 244 - ElseIf gvr.DataKey("CveRetISRConcepto").ToEntero = 3 Then - funcionalidad = 348 - ConceptoContable = 328 - End If - ImporteMovimiento = (gvr.DataKey("RetISR").ToDecimal * PorcentajePago).RoundSQL - importeMX = (ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)).RoundSQL - TipoCambioGeneral = TipoCambioPago - - If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - 'Conta ContPAQ - If IdCtaContRetISRAcreditable > 0 Then - IdCtaContable = IdCtaContRetISRAcreditable - ElseIf UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero > 0 Then - IdCtaContable = UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero - Else - If ImporteMovimiento <> 0 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - End If - End If - - - End If - - Case 14 'Iva X Acreditar - Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then - 'funcionalidad que toma el 100% del pago para acreditamiento de iva - - If TotalImporte = gvr.DataKey("Saldo").ToDecimal Then - ImporteMovimiento = (gvr.DataKey("IVA").ToDecimal).RoundSQL - importeMX = (ImporteMovimiento * tipoCambioCompra).RoundSQL - - If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" - Else - ImporteMovimiento = 0 - importeMX = 0 - End If - Else - ImporteMovimiento = (gvr.DataKey("IVA").ToDecimal * PorcentajePago).RoundSQL - importeMX = (ImporteMovimiento * tipoCambioCompra).RoundSQL - If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" - - End If - TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - - PorcentajeImpuesto = gvr.DataKey("PorcentajeIVA").ToDecimal - Dim IdCtaIVAXAcreditar As Integer = 0 - Dim IdCtaIVAAcreditable As Integer = 0 - - If gvr.DataKey("EsImportacion").ToString.contiene("1", "True") Then - ConceptoContable = 287 - End If - - If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then - IdCtaIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - IdCtaIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - End If - IdCtaContable = If(IdCtaIVAXAcreditar > 0, IdCtaIVAXAcreditar, 0) - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ImporteMovimiento <> 0 AndAlso TipoContabilidad <> 1 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero - End If - End If - - Case 19 'Iva Acreditado - Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - If UsuarioActual.Empresa.Funcionalidad(521) = "1" Then - 'funcionalidad que toma el 100% del pago para acreditamiento de iva - - If TotalImporte = gvr.DataKey("Saldo").ToDecimal Then - ImporteMovimiento = (gvr.DataKey("IVADeducible").ToDecimal).RoundSQL - importeMX = (ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)).RoundSQL - - If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" - Else - ImporteMovimiento = 0 - importeMX = 0 - End If - Else - ImporteMovimiento = gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago - importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - - ImporteMovimiento = ImporteMovimiento.RoundSQL - importeMX = importeMX.RoundSQL - - If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" - End If - TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - - If gvr.DataKey("EsImportacion").ToString.contiene("1", "True") Then - ConceptoContable = 288 - End If - - PorcentajeImpuesto = gvr.DataKey("PorcentajeIVA").ToDecimal - Dim IdCtaIVAXAcreditar As Integer = 0 - Dim IdCtaIVAAcreditable As Integer = 0 - Dim IdCtaContableNoIVA As Integer = 0 - - If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then - IdCtaIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - IdCtaIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - IdCtaContableNoIVA = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVANoAcreditable").ToString.ToEntero - End If - IdCtaContable = If(IdCtaIVAAcreditable > 0, IdCtaIVAAcreditable, 0) - - 'se registra el iva no acreditable - If gvr.DataKey("IVANoDeducible").ToDecimal > 0 Then - - Dim ImporteNOIVA As Decimal = gvr.DataKey("IVANoDeducible").ToDecimal * PorcentajePago - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteNOIVA, Referencia, 280, ConceptoMovimiento, FechaMovimiento, IdCtaContableNoIVA, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=ImporteNOIVA, ImporteME:=If(TipoCambioPago = 1, 0, ImporteMovimiento), TipoCambio:=TipoCambioGeneral, CveSubProyecto:=CveSubProyecto, PorcentajeImpuesto:=PorcentajeImpuesto) Then - MsgError = "No se pudo insertar la póliza" - Exit For - End If - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ImporteMovimiento <> 0 AndAlso TipoContabilidad <> 1 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIVAAcreditable").ToString.ToEntero - End If - End If - - Case 25 'IEPS X Acreditar - Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - ImporteMovimiento = (gvr.DataKey("IEPSPorPagar").ToDecimal * PorcentajePago).RoundSQL - importeMX = (ImporteMovimiento * tipoCambioCompra).RoundSQL - TipoCambioGeneral = tipoCambioCompra - - If tipoCambioCompra > 1 Then ConceptoMovimiento += $" TC:{tipoCambioCompra} ${ImporteMovimiento.FormatoNumero(2)}" - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ImporteMovimiento <> 0 AndAlso TipoContabilidad <> 1 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - End If - End If - Case 26 'IEPS Acreditable - Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - ImporteMovimiento = (gvr.DataKey("IEPSPorPagar").ToDecimal * PorcentajePago).RoundSQL - importeMX = (ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra)).RoundSQL - TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ImporteMovimiento <> 0 AndAlso TipoContabilidad <> 1 AndAlso ObjMov.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjMov.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - End If - End If - - Case 64 'Ganancia - If CveMoneda <> 1 OrElse gvr.DataKey("CveMoneda").ToEntero <> 1 Then - Dim tImporteCompra, tImportePago As Decimal - Dim Diferencia As Decimal = 0 - - If gvr.DataKey("CveMoneda").ToEntero = 1 And CveMoneda <> 1 Then - 'factura pesos, pago en dolares - tImporteCompra = gvr.FCTextBox("TxtAbonar").Text.ToDecimal.RoundSQL - tImportePago = (((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * tipoCambioCompra / TipoCambioPago).RoundSQL * TipoCambioPago).RoundSQL - ElseIf gvr.DataKey("CveMoneda").ToEntero <> 1 And CveMoneda <> 1 Then - 'factura dolares, pago en dolares - tImporteCompra = ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * tipoCambioCompraValuacion).RoundSQL - tImportePago = ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * TipoCambioPago).RoundSQL - ElseIf gvr.DataKey("CveMoneda").ToEntero <> 1 And CveMoneda = 1 Then - 'factura dolares, pago en pesos - tImporteCompra = ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * tipoCambioCompraValuacion).RoundSQL - tImportePago = ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * TipoCambioPago).RoundSQL - End If - - If tImporteCompra <> tImportePago Then - If tImporteCompra > tImportePago Then - ConceptoContable = 64 - IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria - TipoMovimiento = True - 'CveCuenta = UsuarioActual.Empresa.CveCuentaGananciaCambiaria - Else - ConceptoContable = 65 - IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria - TipoMovimiento = False - ' CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria - End If - Diferencia = tImporteCompra - tImportePago - - End If - - If FuncionalidadFluctuacionImpuestos Then - Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - Diferencia = ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * tipoCambioCompraValuacion) - ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * TipoCambioPago) 'Añadimos la diferencia de perdida en la venta - Diferencia -= ((gvr.DataKey("IVA").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("IVA").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA - Diferencia += ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA - Diferencia += ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR - Diferencia -= ((gvr.DataKey("IEPS").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("IEPS").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS - Diferencia = Diferencia.RoundSQL - End If - - ImporteMovimiento = Math.Abs(Diferencia) - importeMX = ImporteMovimiento - - Else - ImporteMovimiento = 0 - End If - 'Case 65 'Perdida - ' If CveMoneda <> 1 OrElse gvr.DataKey("CveMoneda").ToEntero <> 1 Then - - ' IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria - ' 'tipoCambioVentaDiferenciaCambiaria = If(gvr.DataKey("Fecha").ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, gvr.DataKey("TipoCambio").ToDecimal) - ' Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - - ' Dim Diferencia As Decimal = ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * tipoCambioCompraValuacion) - ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) * TipoCambioPago) 'Añadimos la diferencia de perdida en la venta - ' Diferencia -= ((gvr.DataKey("IVA").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("IVA").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA - ' Diferencia += ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA - ' Diferencia += ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR - ' Diferencia -= ((gvr.DataKey("IEPS").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("IEPS").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS - ' Diferencia = Math.Round(Diferencia, 2) - ' 'si la diferencia es negativa es pérdida, si es positiva es ganancia - ' If Diferencia < 0 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then - ' ImporteMovimiento = Math.Abs(Diferencia) - ' importeMX = ImporteMovimiento - ' End If - ' Else - ' ImporteMovimiento = 0 - ' End If - Case 255 'Otros egresos - If DdlOtrosPagos.SelectedValue = "2" Then - If CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then - ImporteMovimiento = gvr.FCTextBox("TxtComision").Text.ToDecimal - importeMX = ImporteMovimiento - ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then - ImporteMovimiento = gvr.FCTextBox("TxtComision").Text.ToDecimal - importeMX = ImporteMovimiento * TipoCambioPago - ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then - ImporteMovimiento = gvr.FCTextBox("TxtComision").Text.ToDecimal - importeMX = ImporteMovimiento '* TipoCambioPago - ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then - ImporteMovimiento = gvr.FCTextBox("TxtComision").Text.ToDecimal - importeMX = ImporteMovimiento * TipoCambioPago - End If - - If gvr.FCTextBox("TxtComision").Text.ToDecimal < 0 Then - ConceptoContable = 78 - TipoMovimiento = True - ImporteMovimiento = ImporteMovimiento * -1 - importeMX = importeMX * -1 - IdCtaContable = UsuarioActual.Empresa.IdCuentaOtrosIngresos - Else - TipoMovimiento = False - IdCtaContable = UsuarioActual.Empresa.Funcionalidad(266).ToEntero() - End If - - ImporteMovimiento = ImporteMovimiento.RoundSQL - importeMX = importeMX.RoundSQL - TipoCambioGeneral = TipoCambioPago - - End If - Case 42 'Acreedores - - If DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then - Dim ObjCreditos As New ClsBancos - ObjCreditos.GetTarjetasCreditos(DdlCuenta.SelectedValue.ToEntero, DdlTarjeta.SelectedValue.ToEntero) - If ObjCreditos.DtResultados.Rows.Count > 0 AndAlso (ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero > 0 Or ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjetaSIG").ToString.ToEntero > 0) Then - IdCtaContable = ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero - Else - IdCtaContable = IdCuenta - End If - - Dim Importe42 As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal + gvr.FCTextBox("TxtComision").Text.ToDecimal - ImporteMovimiento = Importe42 - importeMX = If(CveMoneda = 2, If(DivTC.Visible, Importe42 / TxtTC.Text.ToDecimal * TipoCambioPago, Importe42 * TipoCambioPago), Importe42) - TipoCambioGeneral = TipoCambioPago - End If - - Case 30 - 'Conta ContPAQ - If IdCuenta < 1 Then - CuentasContablesInvalidas.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If - - ImporteMovimiento = 0 - Case Else - ImporteMovimiento = 0 - End Select - - If MsgError <> "" Then - Exit For - End If - - If ImporteMovimiento <> 0 Then - 'Conta ContPAQ - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
" & GlobalDTContaConceptosContables(-1).FiltroPrimeroValor("ConceptoContable", String.Format("CveConceptoContable = {0}", ConceptoContable))) - idCuentaContabilizacion = 0 - End If - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteMovimiento, Referencia, ConceptoContable, ConceptoMovimiento, FechaMovimiento, IdCtaContable, -1, CveIE, CveSubProyecto:=CveSubProyecto, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=importeMX, ImporteME:=If(TipoCambioPago = 1, 0, ImporteMovimiento), TipoCambio:=TipoCambioGeneral, PorcentajeImpuesto:=PorcentajeImpuesto) Then - MsgError = "No se pudo insertar la póliza" - Exit For - End If - End If - Next - 'Unificacion de PrePolizas - If MsgError = "" AndAlso UsuarioActual.Empresa.Funcionalidad(219) = "1" Then - If Not ObjMov.PrePolizaUnificacion(CvePrePoliza, gvr.DataKey("CvePrePoliza").ToEntero) Then - MsgError = "No se pudo unificar la prepoliza" - Alert("No se pudo unificar la prepoliza", TipoMensaje.MsgError) - End If - End If - - End If - - 'DESPROGRAMA LO PROGRAMADO DESPUES DE HACERLE UN PAGO - ' If DdlTipoTransaccion.SelectedValue <> "9" Then 'SI ES LAYOUT SE DESPROGRAMA EN BANCOS/PAGOELECTRONICO, se comentó, 2018.07.31 peticion marilú. - If MsgError = "" AndAlso gvr.DataKey("ImporteProgramo").ToDouble > 0 Then - ObjComp.ProgramarCompra(gvr.DataKey("CveCompra").ToEntero, 0, UsuarioActual.CveUsuario, -1) - End If + Dim ImporteFluctuacion As Decimal = 0 '((ImporteSeleccionado / TCPago) - TxtImporte.Text.ToDecimal) + Dim DtPrePoliza As DataTable = Nothing + If ObjMov.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then + DtPrePoliza = ObjMov.DtResultados.Copy End If - Next - ConceptoMovimiento = $"{TxtPagueseA.Text.Trim} - {TxtObservaciones.Text} {If(TipoCambioPago > 1, $" TC:{TipoCambioPago}", "")}" - Referencia = $"{HdnTipoTransaccionAbreviatura.Value}: {TxtFolio.Text.Trim}" - If (Not DivTarjeta.Visible Or DdlTarjeta.SelectedValue.ToEntero = -1) Then - If TipoCambioPago > 1 AndAlso CveMoneda = 2 Then - If UsaComplementariaBancos Or (IdCuentaBancariaComplementaria > 0) Then - If CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - TipoCambioPago = TxtTCDolares.Text.ToDecimal - ElseIf CveMoneda = 2 AndAlso CveMonedaFiltro = 2 Then - TipoCambioPago = TxtTCDolaresDolares.Text.ToDecimal + Dim PagoProveedoresME = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 312 AND TipoMovto = 0") + Dim Bancos = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 30 AND TipoMovto = 1") + Dim BancosComplementaria = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 204 AND TipoMovto = 1") + + DtPrePoliza.Dispose() + + ImporteFluctuacion = PagoProveedoresME - (Bancos + BancosComplementaria) + + If MsgError = "" AndAlso ImporteFluctuacion.RoundSQL() <> 0 Then + 'SI EL PAGO DE PROVEEDORES ME ES MAYOR QUE BANCOS METER EL CONCEPTO DE GANANCIA + If ImporteFluctuacion > 0 Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), Referencia, 64, ConceptoMovimiento, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaGananciaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveSubProyecto:=CveSubProyecto, CveProveedor:=Me.CveProveedor, CveCompra:=-1, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TipoCambio, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" End If - - If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, TxtImporte.Text.ToDecimal, Referencia, 30, ConceptoMovimiento, TxtFechaDocumento.Text.ToDate, IdCuenta, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=TxtImporte.Text.ToDecimal, ImporteME:=If(TipoCambioPago = 1, 0, TxtImporte.Text.ToDecimal), TipoCambio:=TipoCambioPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "No se pudo insertar la póliza" + ElseIf ImporteFluctuacion < 0 Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), Referencia, 65, ConceptoMovimiento, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaPerdidaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveSubProyecto:=CveSubProyecto, CveProveedor:=Me.CveProveedor, CveCompra:=-1, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TipoCambio, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" End If - If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, If(CveMoneda = 1 AndAlso TxtTC.Visible, TxtImporte.Text.ToDecimal / TxtTC.Text.ToDecimal, TxtImporte.Text.ToDecimal), Referencia, 204, ConceptoMovimiento, TxtFechaDocumento.Text.ToDate, IdCuentaBancariaComplementaria, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=If(CveMoneda = 2, Math.Round((TxtImporte.Text.Trim.ToDecimal * TipoCambioPago) - TxtImporte.Text.Trim.ToDecimal, 2, MidpointRounding.AwayFromZero), TxtImporte.Text.Trim.ToDecimal), ImporteME:=If(CveMoneda = 1, 0, TxtImporte.Text.ToDecimal), TipoCambio:=TipoCambioPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "No se pudo insertar la póliza" - End If - Else - If CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - TipoCambioPago = TxtTCDolares.Text.ToDecimal - ElseIf CveMoneda = 2 AndAlso CveMonedaFiltro = 2 Then - TipoCambioPago = TxtTCDolaresDolares.Text.ToDecimal - End If - - If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, TxtImporte.Text.ToDecimal, Referencia, 30, ConceptoMovimiento, TxtFechaDocumento.Text.ToDate, IdCuenta, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=If(CveMoneda = 2, Math.Round(TxtImporte.Text.Trim.ToDecimal * TipoCambioPago, 2, MidpointRounding.AwayFromZero), TxtImporte.Text.Trim.ToDecimal), ImporteME:=If(DivTC.Visible, If(TxtTC.Text.ToDecimal > 0, TxtImporte.Text.ToDecimal / TxtTC.Text.ToDecimal, 0), 0), TipoCambio:=TipoCambioPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "No se pudo insertar la póliza" - End If - - End If - - If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - 'fluctuación. - Dim TCPago = TxtTCDolares.Text.ToDecimal - - Dim ImporteFluctuacion As Decimal = 0 '((ImporteSeleccionado / TCPago) - TxtImporte.Text.ToDecimal) - - Dim DtPrePoliza As DataTable = Nothing - If ObjMov.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then - DtPrePoliza = ObjMov.DtResultados.Copy - End If - - Dim PagoProveedoresME = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 312 AND TipoMovto = 0") - Dim Bancos = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 30 AND TipoMovto = 1") - Dim BancosComplementaria = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 204 AND TipoMovto = 1") - - DtPrePoliza.Dispose() - - ImporteFluctuacion = PagoProveedoresME - (Bancos + BancosComplementaria) - - If MsgError = "" AndAlso ImporteFluctuacion.RoundSQL() <> 0 Then - 'SI EL PAGO DE PROVEEDORES ME ES MAYOR QUE BANCOS METER EL CONCEPTO DE GANANCIA - If ImporteFluctuacion > 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), Referencia, 64, ConceptoMovimiento, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaGananciaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveSubProyecto:=CveSubProyecto, CveProveedor:=Me.CveProveedor, CveCompra:=-1, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TipoCambio, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - ElseIf ImporteFluctuacion < 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), Referencia, 65, ConceptoMovimiento, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaPerdidaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveSubProyecto:=CveSubProyecto, CveProveedor:=Me.CveProveedor, CveCompra:=-1, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TipoCambio, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - End If - End If - End If - - Else - If CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES - TipoCambioPago = TxtTCDolares.Text.ToDecimal - ElseIf CveMoneda = 2 AndAlso CveMonedaFiltro = 2 Then - TipoCambioPago = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).ToString.ToDecimal - End If - - If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, TxtImporte.Text.ToDecimal, Referencia, 30, ConceptoMovimiento, TxtFechaDocumento.Text.ToDate, IdCuenta, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=If(CveMoneda = 2, Math.Round(TxtImporte.Text.Trim.ToDecimal * TipoCambioPago, 2, MidpointRounding.AwayFromZero), TxtImporte.Text.Trim.ToDecimal), ImporteME:=If(DivTC.Visible, If(TxtTC.Text.ToDecimal > 0, TxtImporte.Text.ToDecimal / TxtTC.Text.ToDecimal, 0), 0), TipoCambio:=TipoCambioPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "No se pudo insertar la póliza" End If End If End If - If MsgError = "" AndAlso ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then - If ObjMov.ValorPolizaDescuadre > 0 Then - MsgError = ObjMov.MensajePolizaDescuadre + " " + ObjMov.ValorDiferencia - GuardaLogAD($"Bancos/ProveedoresAbonar | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") - End If + End If + + If MsgError = "" AndAlso ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then + If ObjMov.ValorPolizaDescuadre > 0 Then + MsgError = ObjMov.MensajePolizaDescuadre + " " + ObjMov.ValorDiferencia + GuardaLogAD($"Bancos/ProveedoresAbonar | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + End If + End If + + If MsgError = "" AndAlso UsuarioActual.Empresa.Funcionalidad(220) <> "" Then + If Not ObjMov.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then + MsgError = "No se pudo simplificar los movimientos" + Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError) + End If + End If + + 'Conta ContPAQ + If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso MsgError = "" Then + + If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjConta) Then + ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) + IDPoliza = ObjMov.ContaIdPoliza + Else + Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) + MsgError = "Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico" End If - If MsgError = "" AndAlso UsuarioActual.Empresa.Funcionalidad(220) <> "" Then - If Not ObjMov.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then - MsgError = "No se pudo simplificar los movimientos" - Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError) - End If - End If - - 'Conta ContPAQ - If UsuarioActual.Empresa.Funcionalidad(200) = "1" AndAlso MsgError = "" Then - If idCuentaContabilizacion > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjConta) Then - ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) - IDPoliza = ObjMov.ContaIdPoliza - Else - Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) - MsgError = "Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico" - End If - Else - Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son invalidas: {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia) - MsgError = "No se puede contabilizar la Prepoliza" - End If - End If - - Else 'Empresa Prueba - - 'Movimientos de Bancos - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, ImporteSeleccionado, TxtFolio.Text.Trim, 30, TxtObservaciones.Text, Now, 0, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=If(CveMoneda = 2, ImporteSeleccionado * TipoCambio, ImporteSeleccionado)) Then - MsgError = "no se pudo insertar el detalle de la poliza" - End If - - - Dim PorcentajePago As Decimal = 100 - 'inserto las compras que voy a pagar - For Each gvr As GridViewRow In GvCxP.Rows - If gvr.FCCheckBox("Chk").Checked Then - - - If TipoPago = 3 Then 'cuando es pago con crediproveedores - ' CveConceptoCompra = 50 ' prestamo documentos por pagar - 'debo de actualizar el estatus dela compra a pagada - Dim ObjCreditos As New ClsBancos - - If ObjCreditos.GetCreditos(-1, -1, -1, CveProveedor, 1, UsuarioActual.CveEmpresa) Then - Dim DTCreditos As DataTable = ObjCreditos.DtResultados.FiltraParametros(String.Format("CveCompra = {0}", gvr.DataKey("CveCompra"))) - - If DTCreditos.Rows.Count > 0 Then - 'actualizo el estatus - Dim drC As DataRow = DTCreditos.Rows(0) - Dim Estatus As Integer = 103 - - ' Estatus = If(drE("Estatus").ToString = "P", 103, Estatus) - - If Not ObjCreditos.UpdateCreditosDetalle(drC("CveCreditoDetalle").ToString.ToEntero, drC("FechaVencimiento").ToString.ToDate, drC("CreditoValor").ToString.ToDouble, -1, -1.0, -1.0, -1.0, -1.0, Estatus) Then - ' ErrorCredito = True - End If - - End If - - End If - ObjCreditos.Dispose() - - End If - - 'Saco el porcentaje de pago - If gvr.DataKey("Original").ToDouble > 0 Then PorcentajePago = gvr.FCTextBox("TxtAbonar").Text.ToDecimal / gvr.DataKey("Original").ToDecimal Else PorcentajePago = 1 - - Dim CveConceptoContablePago As Integer = 17 - If gvr.DataKey("CveTipoConcepto").ToEntero = 2 Then CveConceptoContablePago = 308 'cuando es acreedor - If CveMoneda <> 1 Then - Select Case CveConceptoContablePago - Case 17 - CveConceptoContablePago = 312 - Case 308 - CveConceptoContablePago = 309 - Case Else - End Select - End If - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, gvr.FCTextBox("TxtAbonar").Text.ToDecimal, TxtObservaciones.Text, CveConceptoContablePago, "", Now, 0, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=gvr.FCTextBox("TxtAbonar").Text.ToDecimal) Then - MsgError = "Detalle" - Exit For - Else - - 'IVA. siempre se registra aunque sea cero - If MsgError = "" Then - - Dim IdCtaIVAXAcreditar As Integer = 0 - Dim IdCtaIVAAcreditable As Integer = 0 - Dim PorcentajeImpuesto As Decimal = gvr.DataKey("PorcentajeIVA").ToDecimal - - If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then - IdCtaIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - IdCtaIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - End If - - 'Agrego el IVA - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, gvr.DataKey("IVA").ToDecimal * PorcentajePago, TxtObservaciones.Text, 14, TxtObservaciones.Text, Now, IdCtaIVAXAcreditar, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=gvr.DataKey("IVA").ToDecimal * PorcentajePago) Then - MsgError = "Detalle" - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, gvr.DataKey("IVA").ToDecimal * PorcentajePago, TxtObservaciones.Text, 19, TxtObservaciones.Text, Now, IdCtaIVAAcreditable, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=gvr.DataKey("IVA").ToDecimal * PorcentajePago) Then - MsgError = "Detalle" - End If - End If - - If MsgError = "" AndAlso gvr.DataKey("RetIVA").ToDouble > 0 Then - 'Agrego el RetIVA - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, gvr.DataKey("RetIVA").ToDecimal * PorcentajePago, TxtObservaciones.Text, 22, TxtObservaciones.Text, Now, 0, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) Then - MsgError = "Detalle" - End If - End If - - 'If MsgError = "" AndAlso gvr.DataKey("RetISR").ToDouble > 0 Then - ' 'Agrego el RetIVA - ' If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, gvr.DataKey("RetISR").ToDecimal * PorcentajePago, TxtObservaciones.Text, 23, TxtObservaciones.Text, Now, 0, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=gvr.DataKey("RetISR").ToDecimal * PorcentajePago) Then - ' MsgError = "Detalle" - ' End If - 'End If - - 'DESPROGRAMA LO PROGRAMADO DESPUES DE HACERLE UN PAGO - If DdlTipoTransaccion.SelectedValue <> "9" Then 'SI ES LAYOUT SE DESPROGRAMA EN BANCOS/PAGOELECTRONICO - If gvr.DataKey("ImporteProgramo").ToDouble > 0 Then - ObjComp.ProgramarCompra(gvr.DataKey("CveCompra").ToEntero, 0, UsuarioActual.CveUsuario, -1) - End If - End If - - End If - - End If - End If - Next - End If 'Empresa Prueba + End If Else MsgError = "No se pudo insertar la póliza" @@ -1705,99 +986,91 @@ Partial Class Bancos_ProveedoresAbonar If DdlTipoTransaccion.SelectedValue = "1" Then TipoChq = "CHQ" 'se multiplica por dos, porque se esta juntando el ejercido y el pagado al mismo tiempo - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaContabilidad Then + IDPoliza = ObjConta.AddPoliza(2, "Pagado " & TxtPagueseA.Text.Trim, Total, Total, UsuarioActual.CveUsuario, Fecha, TxtFolio.Text, TipoChq) + If IDPoliza > 0 Then + FolioPoliza = ObjConta.Folio + Dim ConceptoRenglon, Referencia As String + ConceptoRenglon = "" + Referencia = TxtFolio.Text - IDPoliza = ObjConta.AddPoliza(2, "Pagado " & TxtPagueseA.Text.Trim, Total, Total, UsuarioActual.CveUsuario, Fecha, TxtFolio.Text, TipoChq) - If IDPoliza > 0 Then - FolioPoliza = ObjConta.Folio - Dim ConceptoRenglon, Referencia As String - ConceptoRenglon = "" - Referencia = TxtFolio.Text + 'NECESITO SACAR LAS PARTIDAS DE CADA PRESUPUESTO DE LAS FACTURAS PARA AFECTARLAS CON EL PAGO + Dim dtAC As New DataTable + dtAC.Columns.Add("PorcentajePago", Type.GetType("System.Double")) + Dim PorcentajePago As Double = 1 + 'Dim ComprasAC As New ClsCompras + For Each gvr As GridViewRow In GvCxP.Rows + If gvr.FCCheckBox("Chk").Checked Then + 'obtengo su poliza para ver que presupuestos afecto + If gvr.DataKey("Original").ToDouble > 0 Then PorcentajePago = gvr.FCTextBox("TxtAbonar").Text.ToDouble / gvr.DataKey("Original").ToDouble Else PorcentajePago = 1 - 'NECESITO SACAR LAS PARTIDAS DE CADA PRESUPUESTO DE LAS FACTURAS PARA AFECTARLAS CON EL PAGO - Dim dtAC As New DataTable - dtAC.Columns.Add("PorcentajePago", Type.GetType("System.Double")) - Dim PorcentajePago As Double = 1 - 'Dim ComprasAC As New ClsCompras - For Each gvr As GridViewRow In GvCxP.Rows - If gvr.FCCheckBox("Chk").Checked Then - 'obtengo su poliza para ver que presupuestos afecto - If gvr.DataKey("Original").ToDouble > 0 Then PorcentajePago = gvr.FCTextBox("TxtAbonar").Text.ToDouble / gvr.DataKey("Original").ToDouble Else PorcentajePago = 1 + If ObjComp.GetPresupuestosCompras(gvr.DataKey("CveCompra").ToEntero) Then + dtAC.Merge(ObjComp.DtResultados) - If ObjComp.GetPresupuestosCompras(gvr.DataKey("CveCompra").ToEntero) Then - dtAC.Merge(ObjComp.DtResultados) + If Not gvr.DataKey("Fecha").ToString.ToDate.Year < Fecha.Year Then ' SI ES EJERCICIO ANTERIOR LA COMPRA QUE EL EJERCICIO DEL PAGO NO AGREGA MOVIMIENTOS PRESUPUESTALES + For Each dr As DataRow In ObjComp.DtResultados.Rows + Total = dr("TotalPresupuesto").ToString.ToDouble * PorcentajePago - If Not gvr.DataKey("Fecha").ToString.ToDate.Year < Fecha.Year Then ' SI ES EJERCICIO ANTERIOR LA COMPRA QUE EL EJERCICIO DEL PAGO NO AGREGA MOVIMIENTOS PRESUPUESTALES - For Each dr As DataRow In ObjComp.DtResultados.Rows - Total = dr("TotalPresupuesto").ToString.ToDouble * PorcentajePago + If Total > 0 Then - If Total > 0 Then + 'EJERCIDO + If ChkACEjercer.Checked Then - 'EJERCIDO - If ChkACEjercer.Checked Then - - ConceptoRenglon = String.Format("GE {0} Fact:{1}", TxtPagueseA.Text.Trim, gvr.DataKey("SerieFolio")) - If ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaEjercido").ToString.ToEntero, False, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then - 'actualizo el idcuenta del presupuesto - If Not ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaDevengado").ToString.ToEntero, True, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then - TieneError = True : Exit For - End If - - Else - TieneError = True : Exit For - End If - End If - - 'PAGADO - ConceptoRenglon = String.Format("GP {0} Fact:{1}", TxtPagueseA.Text.Trim, gvr.DataKey("SerieFolio")) - If ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaPagado").ToString.ToEntero, False, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then + ConceptoRenglon = String.Format("GE {0} Fact:{1}", TxtPagueseA.Text.Trim, gvr.DataKey("SerieFolio")) + If ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaEjercido").ToString.ToEntero, False, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then 'actualizo el idcuenta del presupuesto - If Not ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaEjercido").ToString.ToEntero, True, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then + If Not ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaDevengado").ToString.ToEntero, True, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then TieneError = True : Exit For End If + Else TieneError = True : Exit For End If - End If - Next - End If - 'AFECTA PROVEEDOR - Total = gvr.FCTextBox("TxtAbonar").Text.ToDouble - If Not ObjConta.AddMovimiento(IDPoliza, CtaProveedor, False, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then - TieneError = True - Exit For - End If + 'PAGADO + ConceptoRenglon = String.Format("GP {0} Fact:{1}", TxtPagueseA.Text.Trim, gvr.DataKey("SerieFolio")) + If ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaPagado").ToString.ToEntero, False, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then + 'actualizo el idcuenta del presupuesto + If Not ObjConta.AddMovimiento(IDPoliza, dr("IdCuentaEjercido").ToString.ToEntero, True, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then + TieneError = True : Exit For + End If + Else + TieneError = True : Exit For + End If + End If + Next + End If + + 'AFECTA PROVEEDOR + Total = gvr.FCTextBox("TxtAbonar").Text.ToDouble + If Not ObjConta.AddMovimiento(IDPoliza, CtaProveedor, False, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then + TieneError = True + Exit For End If - End If - Next - If Not TieneError Then - ConceptoRenglon = String.Format("GP {0} {1}", TxtPagueseA.Text.Trim, TxtObservaciones.Text) - Total = TxtImporte.Text.ToDouble - If Not ObjConta.AddMovimiento(IDPoliza, IdCuenta, True, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then - TieneError = True End If End If + Next - - Else - TieneError = True + If Not TieneError Then + ConceptoRenglon = String.Format("GP {0} {1}", TxtPagueseA.Text.Trim, TxtObservaciones.Text) + Total = TxtImporte.Text.ToDouble + If Not ObjConta.AddMovimiento(IDPoliza, IdCuenta, True, Total, Referencia, ConceptoRenglon, 0, Fecha, "") Then + TieneError = True + End If End If - End If - If Not TieneError Then - - 'actualizar la conta del IE - ObjIE.UpdateIEPrePoliza(Fecha, FolioPoliza.ToString, IDPoliza, CvePrePoliza, CveIE, 0) Else - - IDPoliza = 0 + TieneError = True End If + End If - + If Not TieneError Then + 'actualizar la conta del IE + ObjIE.UpdateIEPrePoliza(Fecha, FolioPoliza.ToString, IDPoliza, CvePrePoliza, CveIE, 0) + Else + IDPoliza = 0 End If If Not TieneError Then @@ -1806,20 +1079,8 @@ Partial Class Bancos_ProveedoresAbonar If ObjConta IsNot Nothing Then ObjConta.Commit() Anexo.Text = "[]" - 'RMF. comentado para verificar proceso. - ''actualizo el notificar A del proveedor - 'If UsuarioActual.Empresa.Funcionalidad(142) = "1" Then - ' Dim Prov As New ClsCompProveedores - ' Prov.UpdateProveedorNotificarA(CveProveedor, TxtNotificarA.Text.Trim) - ' Prov.Dispose() - 'End If - - 'IMPRIME CHEQUE - 'GeneraChequePDF(CveIE, UsuarioActual.Empresa, IDPoliza) Dim Msg As New StringBuilder - 'Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/CHQ-{1}.rdlc", UsuarioActual.Empresa.Ruta, DdlCuenta.SelectedValue.ToEntero)) - 'If Archivo.Exists Then Msg.AppendFormat("
  • Imprimir movimiento
  • ", Encripta(String.Format("OP=IECHEQUE&CVEIE={0}", CveIE))) 'End If Msg.AppendFormat("
  • Listado
  • ", Encripta(String.Format("OP=ImprimeMov&CveIE={0}", CveIE))) @@ -1827,7 +1088,6 @@ Partial Class Bancos_ProveedoresAbonar Dim Mensaje As String = String.Format("
    El Documento se generó correctamente.


    Descargas:
      {0}
    ", Msg.ToString) - 'LIMPIA TxtFolio.Text = "" TxtObservaciones.Text = "" @@ -1839,8 +1099,7 @@ Partial Class Bancos_ProveedoresAbonar Anexo.Text = "[]" UpDatos.Update() 'upanexo.Update() - CargaDatos() '(CveProveedor, CveMoneda, FechaI, FechaF, CveUsuarioRegistro, CveUsuarioProgramo, Serie) - + CargaDatos() Alert(Mensaje.ToString, TipoMensaje.MsgInformacion, If(ChkSeguirRegistrando.Checked And GvCxP.Rows.Count > 0, "location.href =""#""", "location.href =""RepProveedoresPagos.aspx""")) @@ -1899,7 +1158,6 @@ Partial Class Bancos_ProveedoresAbonar DdlTipoTransaccion.DataBind() End If - If DdlTipoTransaccion.Items.Count > 1 Then DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1")) End Sub Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged @@ -1909,11 +1167,9 @@ Partial Class Bancos_ProveedoresAbonar If DdlTipoTransaccion.SelectedValue = "1" Then ChkAbonoCuenta.Visible = True TxtPagueseA.Enabled = True - Else ChkAbonoCuenta.Visible = False TxtPagueseA.Enabled = False - End If If DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(9, 17) Then @@ -1924,9 +1180,6 @@ Partial Class Bancos_ProveedoresAbonar ChkEnviarCorreo.Checked = True End If - - - CargaCuentas(DdlTipoTransaccion.SelectedValue.ToEntero) RecargaCuentasDepositos() diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 3af2c50b1..fe2fe1bfd 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -5957,19 +5957,31 @@ Partial Class Compras_Compras ErrorPrepoliza = True End If - If TipoCreditoInteres Then + If importeMovimiento <> 0 Then + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimiento + Pago.CveIE = CveIE + Pago.CveMonedaPago = 1 + Pago.CveCompraAmortizacion = -1 + Pago.CveCreditoDetalle = CveCreditoDetalle - Dim importeMovimientoIn As Decimal = ImporteIECredito - importeMovimiento - Dim importeMNIn As Decimal = importeMovimientoIn * tipoCambioActual * Multiplicador + ErrorMovtosCxP = AplicaPrePolizaPago(CompraActual, Pago, CvePrePoliza, ObjConta) - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoIn, importeMNIn, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoIn, importeMNIn, 50, Referencia, Concepto, ViewState("IdCtaContDocsXPagar").ToString.ToEntero(), CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - - End If End If + + 'If TipoCreditoInteres Then + + ' Dim importeMovimientoIn As Decimal = ImporteIECredito - importeMovimiento + ' Dim importeMNIn As Decimal = importeMovimientoIn * tipoCambioActual * Multiplicador + + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoIn, importeMNIn, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ' ErrorPrepoliza = True + ' End If + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoIn, importeMNIn, 50, Referencia, Concepto, ViewState("IdCtaContDocsXPagar").ToString.ToEntero(), CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ' ErrorPrepoliza = True + + ' End If + 'End If End If importeMovimiento = 0 : importeMN = 0 If TipoCambioCompra > 1 AndAlso DdlMoneda.SelectedValue.ToEntero <> 1 Then Concepto += $" TC{TipoCambioCompra} ${importeMovimiento.FormatoNumero(2)}" diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 7608f8afe..5f77cd67e 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -223,7 +223,28 @@ Partial Class PopUpVerFactura End If End If + End If + End Sub + + + Private Sub DescargaArchivoDirecto(RutaArchivo As String) + If RutaArchivo <> "" Then + + 'Dim Path As String = String.Format("{0}\{1}", UsuarioActual.Empresa.Ruta, RutaArchivo) + Dim Archivo As New System.IO.FileInfo(RutaArchivo) + + If Archivo.Exists Then + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/octet-stream" + HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name)) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(RutaArchivo) + 'HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() End If + Archivo = Nothing + End If End Sub Private Sub ReciboAgropecuaria() @@ -972,6 +993,12 @@ Partial Class PopUpVerFactura DescargaFactura(UrlParametros) End If + If UrlParametros("OP").ToString = "File" Then + + DescargaArchivoDirecto(UrlParametros("FILE").ToString) + + End If + 'DESCARGA DOCUMENTO XML O PDF DE LA FACTURA VENTA If UrlParametros("OP").ToString = "FactVta" Then DescargaFacturaVenta(UrlParametros) @@ -1258,6 +1285,13 @@ Partial Class PopUpVerFactura End If End If + 'IMPRIME ENTREGAS POR REALIZAR + If UrlParametros("OP").ToString = "FILE" Then + If UrlParametros("CVEASIGNACIONENTREGA") IsNot Nothing And UrlParametros("USUARIOENTREGA") IsNot Nothing Then + ImprimeEntregasPorRealizar(UrlParametros("CVEASIGNACIONENTREGA").ToString.ToLong, UrlParametros("USUARIOENTREGA").ToString) + End If + End If + End Sub Private Function Parametros(Cadena As String) As Hashtable @@ -3048,6 +3082,16 @@ Partial Class PopUpVerFactura CartaPorte = New Modelos.MSubReportData() CartaPorte.Parametros.Add(New ReportParameter($"TieneCartaPorte", "False")) End If + Else + If UsuarioActual.CveEmpresa = 13 AndAlso Vta.TipoDocto = "Egs" Then + CartaPorte = New Modelos.MSubReportData() + CartaPorte.Parametros.Add(New ReportParameter($"TieneCartaPorte", "False")) + End If + End If + Else + If UsuarioActual.CveEmpresa = 13 AndAlso Vta.TipoDocto = "Egs" Then + CartaPorte = New Modelos.MSubReportData() + CartaPorte.Parametros.Add(New ReportParameter($"TieneCartaPorte", "False")) End If End If diff --git a/Compras/eFacturas.aspx b/Compras/eFacturas.aspx index a113abc55..ec13217d4 100644 --- a/Compras/eFacturas.aspx +++ b/Compras/eFacturas.aspx @@ -63,8 +63,8 @@ Descarga Facturas SAT --%> -
  • - Solicitudes SAT +
  • + Solicitudes SAT
  • Bitácora Facturas @@ -1008,202 +1008,275 @@ - -