From 3689b897c5dffe27d8e7cfcbd325e14559c4355b Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Wed, 26 Feb 2020 08:53:26 -0700 Subject: [PATCH 01/12] Reclutamiento se qiuita required telefono en caso de emergencia --- Compras/RepDocumentacionProveedor.aspx | 51 +++++--------------------- PortalProveedor/PortalProveedor.aspx | 2 + RH/Reclutamiento.aspx | 3 +- vwd.webinfo | 2 + 4 files changed, 14 insertions(+), 44 deletions(-) diff --git a/Compras/RepDocumentacionProveedor.aspx b/Compras/RepDocumentacionProveedor.aspx index c6704dc1e..f4f0139f4 100644 --- a/Compras/RepDocumentacionProveedor.aspx +++ b/Compras/RepDocumentacionProveedor.aspx @@ -31,7 +31,6 @@ -
@@ -60,12 +59,8 @@
- - - <%-- --%> - - - <%----%> + + @@ -77,17 +72,12 @@ - <%-- --%> + - - - <%----%> - - - <%----%> + + -
Estatus
@@ -100,18 +90,12 @@ Completado - - + - - -
> +
- - -
@@ -211,17 +195,7 @@ - - - - - - <%-- - - - - --%> + @@ -258,14 +232,7 @@ - - -<%-- - - - - --%> - + diff --git a/PortalProveedor/PortalProveedor.aspx b/PortalProveedor/PortalProveedor.aspx index 912ae99df..9f78f83f6 100644 --- a/PortalProveedor/PortalProveedor.aspx +++ b/PortalProveedor/PortalProveedor.aspx @@ -801,6 +801,7 @@ <%---2020/02/06 - Auditoria--%> + @@ -931,6 +932,7 @@ + diff --git a/RH/Reclutamiento.aspx b/RH/Reclutamiento.aspx index 5108a7c66..14a22baa5 100644 --- a/RH/Reclutamiento.aspx +++ b/RH/Reclutamiento.aspx @@ -552,8 +552,7 @@
- +
diff --git a/vwd.webinfo b/vwd.webinfo index 0770194b6..2515705b1 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -19,6 +19,8 @@ + + \ No newline at end of file From 21e0d4e1a0a9a97cd07ba6ef593b677d064671d5 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Wed, 26 Feb 2020 09:13:59 -0700 Subject: [PATCH 02/12] cambios en los titulos --- AC/Reportes/RepEstadoActividades.rdlc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/AC/Reportes/RepEstadoActividades.rdlc b/AC/Reportes/RepEstadoActividades.rdlc index ccef55f1d..931f42736 100644 --- a/AC/Reportes/RepEstadoActividades.rdlc +++ b/AC/Reportes/RepEstadoActividades.rdlc @@ -754,7 +754,7 @@ - Resultados del Ejercicio (Ahorro/Desahorro): + Resultados del ejercicio(Utilidad o pérdida): - - + + + =Parameters!CiudadSucursal.Value + + + + diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx b/Inventarios/PopUpExistenciasAlmacen.aspx index 4d0b6cd19..6b9f912bd 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx +++ b/Inventarios/PopUpExistenciasAlmacen.aspx @@ -36,6 +36,18 @@ + + Medida: + + + + + + Rin: + + + + C. Barras: @@ -89,7 +101,7 @@
-
+
@@ -101,6 +113,18 @@
+
+ + + + + + + + + + +
diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx.vb b/Inventarios/PopUpExistenciasAlmacen.aspx.vb index a3b1a02d3..4f988dc7f 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx.vb +++ b/Inventarios/PopUpExistenciasAlmacen.aspx.vb @@ -65,6 +65,13 @@ Partial Class Inventarios_Default DDlPS.DataBind() End If + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + DivMed.Visible = True + DivRin.Visible = True + CargarMedRin() + DivMedRin.Visible = True + DivPS.Visible = False + End If Dim Txt As String = IfNull(Request("Txt"), "").ToString If Txt <> "" Then LblTitulo.Text = String.Format("Búsqueda de {0}", Txt) @@ -80,7 +87,11 @@ Partial Class Inventarios_Default End Sub Protected Sub BtnBuscar_Click(sender As Object, e As System.EventArgs) Handles BtnBuscar.Click - CargaDatos(DDlPS.SelectedValue.ToEntero, 1) + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + CargarDatosMedRin() + Else + CargaDatos(DDlPS.SelectedValue.ToEntero, 1) + End If End Sub Private Sub CargaDatos(CvePS As Integer, Tipo As Integer) Dim ObjInventarios As New ClsInventarios() @@ -162,6 +173,19 @@ Partial Class Inventarios_Default End If End Sub + Private Sub GvMedRin_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvMedRin.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.DBCampo("CveAlmacen") = "" Then + e.Row.CssClass = "Totales" + End If + + If UsuarioActual.CveEmpresa = 119 Then + GV.Columns(5).Visible = True + End If + End If + End Sub + + #Region " BUSCA | CODIGO - SERIE " Protected Sub BtnCodigoPS_Click(sender As Object, e As EventArgs) @@ -178,11 +202,38 @@ Partial Class Inventarios_Default Exit Sub End If + CargaDatos(DrPS("CvePS").ToString.ToEntero, 2) + TxtCodigoPS.Text = "" TxtCodigoPS.Focus() End Sub #End Region + Private Sub CargarMedRin() + Dim ObjGral As New ClsGenerales + If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then + DdlMedidas.DataSource = ObjGral.DtResultados + If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then + DdlRin.DataSource = ObjGral.DtResultados + End If + End If + ObjGral.Dispose() + DdlMedidas.DataBind() + DdlRin.DataBind() + DdlMedidas.Items.Insert(0, New ListItem("-", "-1")) + DdlRin.Items.Insert(0, New ListItem("-", "-1")) + End Sub + + Private Sub CargarDatosMedRin() + Dim ObjInventarios As New ClsInventarios + If ObjInventarios.GetExistenciasMedRin(DDlPS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlRin.SelectedValue.ToEntero, DdlMedidas.SelectedValue.ToEntero) Then + GvMedRin.DataSource = ObjInventarios.DtResultados + End If + ObjInventarios.Dispose() + GvMedRin.DataBind() + UPDatos.Update() + End Sub + End Class From 017f404b32f579ae6e45bbd18b9be91581cac00b Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 26 Feb 2020 19:01:27 -0700 Subject: [PATCH 04/12] Generar OC a partir de una cotizacion y modificar precios --- App_Code/ClsOC.vb | 5 ++-- App_Code/ClsVentas.vb | 22 +++++++++++++- OC/OC.aspx.vb | 68 ++++++++++++++++++++++++++++++++++++++++--- Ventas/Ventas.aspx | 5 +++- Ventas/Ventas.aspx.vb | 23 +++++++++++++-- 5 files changed, 112 insertions(+), 11 deletions(-) diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb index 463101747..0cbe50889 100644 --- a/App_Code/ClsOC.vb +++ b/App_Code/ClsOC.vb @@ -1230,7 +1230,7 @@ Public Class ClsOC pObservacion As String, pCveUsuario As Integer, Optional pCveOrdenCompraPadre As Integer = -1, Optional CvePresupuestoEgreso As Integer = -1, Optional Descuento As Double = 0, Optional IEPSPS As Double = 0, Optional IEPSPSIVA As Double = 0, Optional IVA As Double = 0, Optional RetIVA As Double = 0, Optional RetISR As Double = 0, Optional Total As Double = 0, Optional CveContratoDetalle As Integer = -1, Optional IVAPorcentaje As Double = 0, Optional RetIVAPorcentaje As Double = 0, Optional RetISRPorcentaje As Double = 0, Optional IEPSPSPorcentaje As Double = 0, - Optional IEPSPSIVAPorcentaje As Double = 0) As Boolean + Optional IEPSPSIVAPorcentaje As Double = 0, Optional CveVentaDetalleCotizacion As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_OrdenesCompraDetalleAdd") @@ -1259,7 +1259,8 @@ Public Class ClsOC .Add("@RetIVAPorcentaje", SqlDbType.Float).Value = RetIVAPorcentaje .Add("@RetISRPorcentaje", SqlDbType.Float).Value = RetISRPorcentaje .Add("@IEPSPSPorcentaje", SqlDbType.Float).Value = IEPSPSPorcentaje - .Add("@IEPSPSIVAPorcentaje", SqlDbType.Float).Value = IEPSPSIVAPorcentaje + .Add("@IEPSPSIVAPorcentaje", SqlDbType.Float).Value = IEPSPSIVAPorcentaje + .Add("@CveVentaDetalleCotizacion", SqlDbType.Int).Value = CveVentaDetalleCotizacion End With Try diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 7334abade..04e7b8bb6 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -179,6 +179,25 @@ Public Class ClsVentas Return Retorno End Function + Public Function GetVentasCotizacionesOC(CveVenta As Integer, CveOC As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_VentasCotizacionesOCGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@CveOC", SqlDbType.Int).Value = CveOC + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los datos de la cotizacion, VentaTerminal.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function Public Function GetVentas(CveEmpresa As Integer, TipoDocto As String, Serie As String, Folio As Integer, Codigo As String, CveCliente As Integer, CveSubProyecto As Integer, CveEstatus As Integer, CveUsuario As Integer, FechaI As String, FechaF As String, FolioFiscal As String, Optional CveClienteSucursal As Integer = -1, Optional CvePS As Integer = -1, Optional PedidoContrato As String = "-1", Optional OrdenCompra As String = "-1", Optional CveUsuarioConsulta As Integer = -1, Optional ClienteRFC As String = "-1", @@ -3934,7 +3953,7 @@ Public Class ClsVentas Return retorno End Function - Public Function RepIngresosDetalle(CveEmpresa As Integer, FechaInicio As Date, FechaFin As Date, TipoDocto As String, CveSubProyecto As Integer, CveConceptoContable As Integer, CveCuenta As Integer) As Boolean + Public Function RepIngresosDetalle(CveEmpresa As Integer, FechaInicio As Date, FechaFin As Date, TipoDocto As String, CveSubProyecto As Integer, CveConceptoContable As Integer, CveCuenta As Integer, TipoAmortizacion As Integer) As Boolean Dim retorno As Boolean = False DataAdapter("PA_Ventas_RepIngresosDetalle", CommandType.StoredProcedure) With SqlAdapter.SelectCommand.Parameters @@ -3945,6 +3964,7 @@ Public Class ClsVentas .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveConceptoContable", SqlDbType.Int).Value = CveConceptoContable .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta + .Add("@TipoAmortizacion", SqlDbType.Int).Value = TipoAmortizacion End With Try SqlAdapter.Fill(Data) diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 4e74dad9d..f1b7bf225 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -534,6 +534,18 @@ Partial Class OC End If End If + Dim DtOCGeneradas As DataTable = Nothing + If ObjVentas.GetVentasCotizacionesOC(Me.CveVenta, -1, UsuarioActual.CveEmpresa) Then + DtOCGeneradas = ObjVentas.DtResultados.Copy() + End If + + If DtOCGeneradas IsNot Nothing AndAlso DtOCGeneradas.Rows.Count > 0 Then + ObjVentas.Dispose() + BtnGuardar.Enabled = False + Alert("Ya existe una OC con esta cotización", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + CargaClasificacionesPopUp(CveCotizacion) ObjVentas.Dispose() End If @@ -971,6 +983,8 @@ Partial Class OC DtDetalle.Columns.Add("CveContratoDetalle", GetType(Integer)) DtDetalle.Columns.Add("CantidadNoEditable", GetType(Double)) + DtDetalle.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer)) + 'DtDetalle.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) ' DtDetalle.Columns.Add("ClasificacionOG", GetType(String)) @@ -1040,6 +1054,10 @@ Partial Class OC dr("CveTipoGasto") = -1 dr("CveClasificacionOG") = -1 + If UsuarioActual.Empresa.Funcionalidad(583) = "1" Then + dr("CveVentaDetalleCotizacion") = RowV("CveVentaDetalle") + End If + DtDetalle.Rows.Add(dr) Next @@ -2318,7 +2336,7 @@ Partial Class OC Dim OCBitacora As New ClsOIEventos(OC.IniciaTransacSQL()) Dim ObjInventarios As New ClsInventarios(OC.IniciaTransacSQL()) Dim ObjConta As New ClsContabilidad(OC.IniciaTransacSQL()) - + Dim ObjVentas As New ClsVentas(OC.IniciaTransacSQL()) Dim Conta As ClsContPAQi = Nothing If (UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto) Or UsuarioActual.Empresa.Funcionalidad(200) = "1" Then Conta = New ClsContPAQi(UsuarioActual.Empresa) @@ -2361,7 +2379,12 @@ Partial Class OC CveOrdenCompraPadre = OC.CveOrdenCompra If CveOrdenCompraPadre > 0 Then For Each dr As DataRow In DtDetalle.Rows - If Not OC.AddOrdenCompraDetalle(CveOrdenCompraPadre, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then + If Not OC.AddOrdenCompraDetalle(CveOrdenCompraPadre, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, + dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, Descuento:=dr("Descuento").ToString.ToDouble, + IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, + RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, + RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, + IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then TieneError = True Exit For End If @@ -2435,11 +2458,20 @@ Partial Class OC For Each dr As DataRow In DtDetalle.Rows - If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, pCveOrdenCompraPadre:=CveOrdenCompraPadre, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then + If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, + dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, pCveOrdenCompraPadre:=CveOrdenCompraPadre, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, + IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, + IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, + IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble, CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero()) Then TieneError = True Exit For End If Next + + If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(583) = "1" Then + TieneError = Not ActualizarCotizacion(ObjVentas) + End If + Else TieneError = True End If @@ -2887,6 +2919,7 @@ Partial Class OC Else 'TERMINA TODO POR SI OCURRIÓ ALGO RARO If OC IsNot Nothing Then OC.Dispose() + If ObjVentas IsNot Nothing Then ObjVentas.Dispose() If Conta IsNot Nothing Then Conta.Dispose() 'MANDA CORREOS SI EL ESTATUS ES MAYOR A 0 @@ -5043,7 +5076,7 @@ Partial Class OC End Function #End Region -#Region " COTIZACIONES " +#Region "C O T I Z A C I O N E S" Protected Sub VerificaSiRequiereCotizacion() If TipoOC = "REQ" Then If ChkCotizacion.Checked Then @@ -5083,6 +5116,32 @@ Partial Class OC VerificaCotizacionesGanadoras() End If End Sub + + Protected Function ActualizarCotizacion(ByRef ObjVentas As ClsVentas) As Boolean + Dim OcurrioError As Boolean = False + Try + Dim PorcentajeGanancia As Decimal = 0.1D + For Each Row As DataRow In DtDetalle.Rows + Dim CvePS As Integer = Row("CvePS").ToString.ToEntero + Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("") + + Dim Cantidad As Decimal = Row("Cantidad").ToString.ToDecimal + Dim PU As Decimal = Row("Importe").ToString.ToDecimal() + (Row("Importe").ToString.ToDecimal() * PorcentajeGanancia) + Dim IEPSPS As Decimal = DrPS("IEPSPorcentaje").ToString.ToDecimal + Dim ImporteIEPS As Decimal = ((Cantidad * PU) * IEPSPS).RoundSQL(2) + + If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalleCotizacion").ToString.ToEntero, CvePS, Cantidad, PU, ImporteIEPS, "", UsuarioActual.CveUsuario) Then + OcurrioError = True + Exit For + End If + Next + Catch ex As Exception + OcurrioError = True + OnError("Ocurrió un error al guardar la cotización", ex) + End Try + + Return Not OcurrioError + End Function #End Region Private Function notienepresupuesto() As Boolean @@ -7544,4 +7603,5 @@ Partial Class OC End Sub #End Region + End Class diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 40b64fa71..840c535f4 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -308,6 +308,9 @@ <%----%> Saldar +
  • + Generar Orden de Compra +
  • @@ -3541,7 +3544,7 @@
    + DataKeyNames="ISTotal,Saldo,CveIE,Folio,Tipo,CveVenta,CveConceptoContable,CveConceptoContableAmor, TotalAnticipo, SubTotalAnticipo, IVAAnticipo, ImpuestosLocalesAnticipo, SubTotalAmortizacion, SubTotal, Original, IVA, RetIVA, RetISR, IdCtaContableNC,FolioFiscal, CveClasificacionNC, IdCtaContableNCSIG, TipoCambio,TipoCambioPago,TipoCambioHoy, CveMoneda,Fecha,SaldoSubTotal"> diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index d5fb792ac..4713b0e7e 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -3543,6 +3543,7 @@ Partial Class Ventas ' LbCancelarDocumentoManual.Visible = True 'End If + If Not CveEstatus.Contiene(4, 5, 12, 13, 20) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs", "Ant") AndAlso UsuarioActual.TienePermisoProceso(159) Then Dim TienePermiso As String = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, -1).FiltroPrimeroValor("CveSubProyecto", String.Format("CveSubProyecto = {0}", DbRowVenta("CveSubProyecto"))) If TienePermiso <> "" Then @@ -4362,6 +4363,19 @@ Partial Class Ventas CargaCodigoUnico() + 'SI ES COTIZACION PUEDE GENERAR UNA OC PARA MODIFICAR LOS IMPORTES + If DdlTipoComprobante.SelectedValue = "Cot" AndAlso UsuarioActual.Empresa.Funcionalidad(583) = "1" Then + Dim DtOCGeneradas As DataTable = Nothing + If ObjVentas.GetVentasCotizacionesOC(Me.CveVenta, -1, UsuarioActual.CveEmpresa) Then + DtOCGeneradas = ObjVentas.DtResultados.Copy() + End If + If DtOCGeneradas IsNot Nothing AndAlso DtOCGeneradas.Rows.Count > 0 Then + LtGenerarOC.Visible = False + Else + LtGenerarOC.Visible = True + End If + End If + UpPS.Update() UpContado.Update() UpEstatus.Update() @@ -11670,7 +11684,7 @@ Partial Class Ventas If e.Row.DBCampo("Tipo").ToString = "NC" And e.Row.DataKey("CveVenta").ToString.ToEntero > 0 Then If e.Row.DBCampo("CveMoneda").ToString.ToEntero = 2 Then - tipoCambio = e.Row.DataKey("TipoCambio").ToString.ToDecimal + tipoCambio = e.Row.DBCampo("TipoCambioHoy").ToString.ToDecimal Else tipoCambio = GlobalTipoCambio(e.Row.DataKey("Fecha").ToString.ToDate).ToDecimal End If @@ -11703,7 +11717,7 @@ Partial Class Ventas maxsaldo = total End If - e.Row.FCLiteral("MonedaVenta").Text = saldo.FormatoNumero(4) + e.Row.FCLiteral("MonedaVenta").Text = saldo.FormatoNumero(2) e.Row.FCCheckBox("Chk" & e.Row.RowIndex).Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1});", e.Row.FCTextBox("TxtAnticipo" & e.Row.RowIndex).ClientID, saldo)) e.Row.FCTextBox("TxtAnticipo" & e.Row.RowIndex).Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1});", e.Row.FCCheckBox("Chk" & e.Row.RowIndex).ClientID, saldo)) e.Row.FCTextBox("TxtTC" & e.Row.RowIndex).Attributes.Add("onKeyUp", String.Format("CambioTipoMoneda({0},{1},{2},{3},{4});", e.Row.FCCheckBox("Chk" & e.Row.RowIndex).ClientID, e.Row.DataKey("Saldo"), e.Row.FCTextBox("TxtAnticipo" & e.Row.RowIndex).ClientID, e.Row.FCTextBox("TxtTC" & e.Row.RowIndex).ClientID, e.Row.DataKey("CveMoneda"))) @@ -11874,7 +11888,7 @@ Partial Class Ventas tipoCambioVentaValuacion = If(TxtFecha.Text.ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, TxtTipoCambio.Text.ToDecimal) PorcentajePago = gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal / gvr.DataKey("Original").ToDecimal ElseIf DdlMoneda.SelectedValue.ToEntero = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then 'SI LA VENTA VIENE EN PESOS Y SE VA A PAGAR EN DOLARES - tipoCambioPago = gvr.DataKey("TipoCambio").ToDecimal() ' gvr.FCTextBox("TxtTC" & gvr.RowIndex).Text.ToDecimal + tipoCambioPago = gvr.DataKey("TipoCambioHoy").ToDecimal() ' gvr.FCTextBox("TxtTC" & gvr.RowIndex).Text.ToDecimal tipoCambioVenta = 1 tipoCambioVentaValuacion = If(TxtFecha.Text.ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, TxtTipoCambio.Text.ToDecimal) PorcentajePago = (gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal) / gvr.DataKey("Original").ToDecimal @@ -24658,4 +24672,7 @@ Partial Class Ventas ' Return File 'End Function + Protected Sub LnkGenerarOC_Click(sender As Object, e As EventArgs) + Response.Redirect($"~/OC/OC.aspx?CveCotizacion={Me.CveVenta}&Tipo=OC") + End Sub End Class \ No newline at end of file From f5e0e20efe5624ea81350d27b49899199c3b84ed Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 26 Feb 2020 19:01:51 -0700 Subject: [PATCH 05/12] Mostar detalle en el reporte de ingresos --- Ventas/RepIngresos.aspx | 12 ++++++------ Ventas/RepIngresos.aspx.vb | 6 +++--- Ventas/RepIngresosDetalle.aspx.vb | 25 +++++++++++++++++++------ 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/Ventas/RepIngresos.aspx b/Ventas/RepIngresos.aspx index 6647ee016..3a763c711 100644 --- a/Ventas/RepIngresos.aspx +++ b/Ventas/RepIngresos.aspx @@ -166,32 +166,32 @@ - + - + - + - + - + - + diff --git a/Ventas/RepIngresos.aspx.vb b/Ventas/RepIngresos.aspx.vb index 56a2fed0a..021cd086b 100644 --- a/Ventas/RepIngresos.aspx.vb +++ b/Ventas/RepIngresos.aspx.vb @@ -60,7 +60,7 @@ Partial Class Ventas_RepIngresos Set ViewState("CveSubProyecto") = Value End Set - End Property + End Property Private Property DtDatos As DataTable Get DtDatos = DirectCast(ViewState("DtDatos"), DataTable) @@ -69,9 +69,9 @@ Partial Class Ventas_RepIngresos Set(ByVal value As DataTable) ViewState("DtDatos") = value End Set - End Property + End Property #End Region - + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then CveSubProyecto = -1 diff --git a/Ventas/RepIngresosDetalle.aspx.vb b/Ventas/RepIngresosDetalle.aspx.vb index ab6cd3e4f..c34689dc5 100644 --- a/Ventas/RepIngresosDetalle.aspx.vb +++ b/Ventas/RepIngresosDetalle.aspx.vb @@ -54,9 +54,20 @@ Partial Class Ventas_RepIngresosDetalle Set ViewState("CveCuenta") = Value End Set - End Property + End Property + + Private Property TipoAmortizacion() As Integer + Get + Return If(IsNothing(ViewState("TipoAmortizacion")), -1, ViewState("TipoAmortizacion").ToString().ToEntero()) + End Get + Set + ViewState("TipoAmortizacion") = Value + End Set + End Property + + #End Region - + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) @@ -67,18 +78,20 @@ Partial Class Ventas_RepIngresosDetalle CveCuenta = If(IsNothing(Request("CveCuenta")), "", Request("CveCuenta").ToString()) CveSubProyecto = If(IsNothing(Request("CveSubProyecto")), 0, Request("CveSubProyecto").ToString().ToEntero()) CveConceptoContable = If(IsNothing(Request("CveConceptoContable")), -1, Request("CveConceptoContable").ToString().ToEntero()) + TipoAmortizacion = If(IsNothing(Request("TipoAmortizacion")), -1, Request("TipoAmortizacion").ToString().ToEntero()) TxtFechaInicio.Text = If(RsFechaI.Length > 6, DateTime.ParseExact(RsFechaI, "yyyy/MM/dd", Nothing).ToString("dd/MM/yyyy"), "") TxtFechaFin.Text = If(RsFechaF.Length > 6, DateTime.ParseExact(RsFechaF, "yyyy/MM/dd", Nothing).ToString("dd/MM/yyyy"), "") DdlTipoDocto.SelectedValueExist(TipoDoc) DdlSubProyecto.SelectedValueExist(CveSubProyecto.ToString()) ' - CargaRepIngresosDetalle() + LnkFiltrar_Click(LnkFiltrar, EventArgs.Empty) End If End Sub Protected Sub CargaRepIngresosDetalle() Dim ObjRepI As New ClsVentas() - ObjRepI.RepIngresosDetalle(UsuarioActual.CveEmpresa, If(RsFechaI = "", MinFecha, RsFechaI.ToDate), If(RsFechaF = "", MaxFecha, RsFechaF.ToDate), TipoDoc, CveSubProyecto, CveConceptoContable, CveCuenta) - GVRepIngresos.DataSource = ObjRepI.DtResultados + If ObjRepI.RepIngresosDetalle(UsuarioActual.CveEmpresa, If(RsFechaI = "", MinFecha, RsFechaI.ToDate), If(RsFechaF = "", MaxFecha, RsFechaF.ToDate), TipoDoc, CveSubProyecto, CveConceptoContable, CveCuenta, TipoAmortizacion) Then + GVRepIngresos.DataSource = ObjRepI.DtResultados + End If ObjRepI.Dispose() GVRepIngresos.DataBind() upDatosRepI.Update() @@ -94,7 +107,7 @@ Partial Class Ventas_RepIngresosDetalle End Sub Protected Sub GVRepIngresos_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("GTipoDocto").ToString().ToEntero() = -1 Then + If e.Row.DBCampo("GTipoDocto").ToString().ToEntero() = -1 OrElse e.Row.DBCampo("SerieFolio").ToString() = "TOTAL" Then e.Row.CssClass = "Totales" End If End If From 8253081b9c65a825b19f35a0e54be50379a727fd Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Thu, 27 Feb 2020 15:23:33 -0700 Subject: [PATCH 06/12] agregando nuevo modulo de reporte --- App_Code/ClsCompras.vb | 19 ++ App_Code/ClsPaginas.vb | 2 +- Compras/RepEvaluacionesProveedores.aspx | 267 +++++++++++++++++++++ Compras/RepEvaluacionesProveedores.aspx.vb | 75 ++++++ 4 files changed, 362 insertions(+), 1 deletion(-) create mode 100644 Compras/RepEvaluacionesProveedores.aspx create mode 100644 Compras/RepEvaluacionesProveedores.aspx.vb diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index fc78fae11..38182d35c 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -2981,6 +2981,25 @@ Public Class ClsCompras Return Retorno End Function + Public Function GetRepEvaluacionesProveedores(CveEmpresa As Integer, CveProveedor As Integer, FechaI As Date, FechaF As Date, Evaluado As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Comp_RepEvaluacionesProveedoresGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@FechaI", SqlDbType.DateTime).Value = FechaI + .Add("@FechaF", SqlDbType.DateTime).Value = FechaF + .Add("@Evaluado", SqlDbType.Int).Value = Evaluado + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al querer obtener el reporte de evaluaciones de proveedores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + #Region "REPORTE PUE SIN PAGO" Public Function GetPUESinPago(FI As DateTime, FF As DateTime, CveProveedor As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional CveUsuario As Integer = -1) As Boolean diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index c38c36938..82c2fb15b 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3959,7 +3959,7 @@ Public Class ClsPaginas PaginaDict.Add("/Compras/RepComprasPrecios.aspx".ToUpper(), 690) PaginaDict.Add("/Compras/RepDocumentacionProveedor.aspx".ToUpper(), 1206) PaginaDict.Add("/Compras/CatPaqueteriasGuiasTipo.aspx".ToUpper(), 753) - + PaginaDict.Add("/Compras/RepEvaluacionesProveedores.aspx".ToUpper(), 754) #End Region diff --git a/Compras/RepEvaluacionesProveedores.aspx b/Compras/RepEvaluacionesProveedores.aspx new file mode 100644 index 000000000..1824c9b33 --- /dev/null +++ b/Compras/RepEvaluacionesProveedores.aspx @@ -0,0 +1,267 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEvaluacionesProveedores.aspx.vb" Inherits="RepEvaluacionesProveedores" %> + + + + + + + + + + + Evaluaciones de Proveedores + + +
  • + PDF +
  • +
  • + Excel +
  • +
    + + + +
    +
    +
    + + "> + +
    +
    +
    + +
    Proveedor
    +
    + +
    + +
    Fecha Inicio
    +
    +
    + + + + +
    + + + +
    + +
    Fecha Fin
    +
    +
    + + + + +
    + + +
    + +
    Evaluado
    +
    + + - + Sin Evaluar + Evaluar + +
    +
    + +
    +
    +
    > +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + <%-- --%> + \ No newline at end of file diff --git a/Compras/RepEvaluacionesProveedores.aspx.vb b/Compras/RepEvaluacionesProveedores.aspx.vb new file mode 100644 index 000000000..ff60e4eb8 --- /dev/null +++ b/Compras/RepEvaluacionesProveedores.aspx.vb @@ -0,0 +1,75 @@ +Imports System.Data +Imports Extensiones +Imports Microsoft.Reporting.WebForms + +Partial Class RepEvaluacionesProveedores + Inherits ClsPaginas + + Private Property DtDatos As DataTable + Get + DtDatos = DirectCast(ViewState("DtDatos"), DataTable) + End Get + + Set(ByVal value As DataTable) + ViewState("DtDatos") = value + End Set + End Property + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + CargaParametrosBusqueda() + CargarDatos() + End If + End Sub + + Private Sub CargaParametrosBusqueda() + DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) + DdlProveedor.DataBind() + DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1")) + + Dim dNow As Date = Now + TxtFechaF.Text = dNow.ToString("dd/MM/yyyy") + dNow = dNow.AddDays(-30) + TxtFechaI.Text = dNow.ToString("dd/MM/yyyy") + End Sub + + Private Sub CargarDatos() + Dim ObjCompras As New ClsCompras + If ObjCompras.GetRepEvaluacionesProveedores(UsuarioActual.CveEmpresa, DdlProveedor.SelectedValue.ToEntero, TxtFechaI.Text, TxtFechaF.Text, DdlEvaluado.SelectedValue.ToEntero) Then + GV.DataSource = ObjCompras.DtResultados + DtDatos = ObjCompras.DtResultados + End If + ObjCompras.Dispose() + GV.DataBind() + UPDatos.Update() + End Sub + + Public Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click + CargarDatos() + End Sub + + Private Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa)) + If Imagen.Exists Then + params.Add(New ReportParameter("pImg", logouri)) + Else + params.Add(New ReportParameter("pImg", "")) + End If + params.Add(New ReportParameter("FechaInicial", TxtFechaI.Text)) + params.Add(New ReportParameter("FechaFinal", TxtFechaF.Text)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Today)) + params.Add(New ReportParameter("Proveedor", DdlProveedor.SelectedItem.ToString)) + + + ImprimirPDF("Empresas/Grales/Formatos/RepEvaluacionesProveedores.rdlc", DtDatos, params, "RepEvaluacionesProveedores", "PDF", RDSName:="DataSet1") + End Sub + + Public Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click + GV.ExportToExcel("Evaluaciones de Proveedores" & Now.ToShortDateString & ".xls") + End Sub +End Class \ No newline at end of file From c8a597ad80e3afec0eee19fb5c2f8602b7fab2bf Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 27 Feb 2020 17:59:10 -0700 Subject: [PATCH 07/12] Cambios en carta de proveedor --- Compras/EvaluacionProveedor.aspx.vb | 3 ++- .../Formatos/Plantillas/CartaProveedor.docx | Bin 87695 -> 87827 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Compras/EvaluacionProveedor.aspx.vb b/Compras/EvaluacionProveedor.aspx.vb index 6b2aef0a8..b842df48b 100644 --- a/Compras/EvaluacionProveedor.aspx.vb +++ b/Compras/EvaluacionProveedor.aspx.vb @@ -334,9 +334,10 @@ Partial Class Compras_EvaluacionProveedor ListaTagsDocumentost.Add(New TagsDocumentos("{{Proveedor}}", Proveedor)) ListaTagsDocumentost.Add(New TagsDocumentos("{{Dia}}", Dia)) ListaTagsDocumentost.Add(New TagsDocumentos("{{Mes}}", Mes)) + ListaTagsDocumentost.Add(New TagsDocumentos("{{Anio}}", Now.Year)) ListaTagsDocumentost.Add(New TagsDocumentos("{{Calificacion}}", Calificacion)) ListaTagsDocumentost.Add(New TagsDocumentos("{{Resultado}}", Resultado)) - ListaTagsDocumentost.Add(New TagsDocumentos("{{Usuario}}", UsuarioActual.Nombre)) + 'ListaTagsDocumentost.Add(New TagsDocumentos("{{Usuario}}", UsuarioActual.Nombre)) Dim MensajeInvitacion As String = "Le invitamos a participar en la implementación de acciones para la mejora de sus procesos." diff --git a/Empresas/13/Formatos/Plantillas/CartaProveedor.docx b/Empresas/13/Formatos/Plantillas/CartaProveedor.docx index 5d17cc4e6d047eb5349a98a160af54ed477a6655..5ae05f3644be4c70057d84a10f0e888dd446021e 100644 GIT binary patch delta 12565 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 e2t=a^PWks%0xAE6$pTquf>S^@sJS|Fj?S0> delta 12434 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 jSfrGzecJGk|LId; Date: Fri, 28 Feb 2020 10:16:15 -0700 Subject: [PATCH 08/12] Correciones en tc --- Bancos/ProveedoresAbonar.aspx.vb | 74 ++++++++++++++++++++++++++------ 1 file changed, 62 insertions(+), 12 deletions(-) diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 6d0c5000c..08c61a789 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -880,8 +880,24 @@ Partial Class Bancos_ProveedoresAbonar Dim tipoCambioCompra As Decimal Dim TipoCambioPago As Decimal = 0 Dim TipoCambioGeneral As Decimal = 0 - Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) - + Dim tipoCambioCompraValuacion As Decimal = 1 + Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) + + Dim TipoCambioFluctuacion As Decimal = 1 + Dim FechaUltimaFluctuacion As Date = MinFecha + If ObjIE.GetFluctuacionesBitacora(UsuarioActual.CveEmpresa) Then + If ObjIE.DtResultados.Rows.Count > 0 Then + Dim tFecha As Date = TxtFechaDocumento.Text.ToDate + Dim FechaC As String = String.Format("{0}/{1}/{2}", tFecha.Year, tFecha.Month, tFecha.Day) + Dim drr As DataRow = ObjIE.DtResultados.FiltroPrimero("Fecha < #" & FechaC & "#", "Fecha DESC") + + If drr IsNot Nothing Then + FechaUltimaFluctuacion = drr("Fecha").ToString.ToDate + TipoCambioFluctuacion = drr("TipoCambio").ToString.ToDecimal + End If + + End If + End If 'inserto las compras que voy a pagar For Each gvr As GridViewRow In GvCxP.Rows @@ -895,11 +911,13 @@ Partial Class Bancos_ProveedoresAbonar 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 tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal + tipoCambioCompraValuacion = If(gvr.DataKey("Fecha").ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, gvr.DataKey("TipoCambio").ToDecimal) PorcentajePago = ((gvr.FCTextBox("TxtAbonar").Text.ToDecimal) / gvr.DataKey("Original").ToDecimal).RoundSQL 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 - tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal + tipoCambioCompraValuacion = If(gvr.DataKey("Fecha").ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, gvr.DataKey("TipoCambio").ToDecimal) PorcentajePago = gvr.FCTextBox("TxtAbonar").Text.ToDecimal / gvr.DataKey("Original").ToDecimal 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 @@ -926,17 +944,17 @@ Partial Class Bancos_ProveedoresAbonar importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ImporteMovimiento = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - importeMX = gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompra + importeMX = gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompraValuacion ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - importeMX = gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompra + importeMX = gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompraValuacion ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then ImporteMovimiento = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - importeMX = ImporteMovimiento * tipoCambioCompra + importeMX = ImporteMovimiento * tipoCambioCompraValuacion End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) importeMX = Math.Round(importeMX, 2, MidpointRounding.AwayFromZero) - TipoCambioGeneral = tipoCambioCompra + 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 @@ -961,12 +979,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra End If @@ -1007,18 +1027,20 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) importeMX = Math.Round(importeMX, 2, MidpointRounding.AwayFromZero) - TipoCambioGeneral = TipoCambioPago + TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -1041,12 +1063,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra End If @@ -1086,18 +1110,20 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) importeMX = Math.Round(importeMX, 2, MidpointRounding.AwayFromZero) - TipoCambioGeneral = TipoCambioPago + TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -1120,12 +1146,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento * tipoCambioCompra End If @@ -1165,18 +1193,20 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) importeMX = Math.Round(importeMX, 2, MidpointRounding.AwayFromZero) - TipoCambioGeneral = TipoCambioPago + TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -1199,18 +1229,20 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) importeMX = Math.Round(importeMX, 2, MidpointRounding.AwayFromZero) - TipoCambioGeneral = TipoCambioPago + TipoCambioGeneral = tipoCambioCompra If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -1233,18 +1265,20 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If ImporteMovimiento = Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero) importeMX = Math.Round(importeMX, 2, MidpointRounding.AwayFromZero) - TipoCambioGeneral = TipoCambioPago + TipoCambioGeneral = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) If TipoCambioPago > 1 Then ConceptoMovimiento += $" TC:{TipoCambioPago} ${ImporteMovimiento.FormatoNumero(2)}" @@ -1267,12 +1301,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If @@ -1300,12 +1336,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("RetIVA").ToDecimal * PorcentajePago importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = (gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If @@ -1517,12 +1555,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("IVA").ToDecimal importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("IVA").ToDecimal importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = gvr.DataKey("IVA").ToDecimal importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("IVA").ToDecimal importeMX = ImporteMovimiento * tipoCambioCompra End If @@ -1539,12 +1579,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra End If @@ -1579,12 +1621,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = gvr.DataKey("IVADeducible").ToDecimal importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("IVADeducible").ToDecimal importeMX = gvr.DataKey("IVADeducible").ToDecimal * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = gvr.DataKey("IVADeducible").ToDecimal importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = gvr.DataKey("IVADeducible").ToDecimal importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If @@ -1601,12 +1645,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVADeducible").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If @@ -1654,12 +1700,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra End If @@ -1680,12 +1728,14 @@ Partial Class Bancos_ProveedoresAbonar ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento ElseIf CveMoneda = 1 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 1 Then ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * tipoCambioCompra ElseIf CveMoneda = 2 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + tipoCambioCompra = gvr.DataKey("TipoCambio").ToDecimal ImporteMovimiento = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) importeMX = ImporteMovimiento * If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) End If From 0f63849642e2c2a0691f5ab42e55ec0d03da3578 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 28 Feb 2020 10:16:25 -0700 Subject: [PATCH 09/12] Correcion de bug --- asmx/WsTSoft.asmx | 63 +++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/asmx/WsTSoft.asmx b/asmx/WsTSoft.asmx index 7d9e99ee5..626fdbb83 100644 --- a/asmx/WsTSoft.asmx +++ b/asmx/WsTSoft.asmx @@ -65,13 +65,20 @@ Public Class WsTSoft If Continuar Then 'CONSULTA DIRECCIONES Dim Direcciones As JArray = ConsultarDirecciones(ObjGPS.DtResultados, "Lat", "Lng") - For Each Dir As JObject In Direcciones - ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() - Next - - ObjPos.Lat = ObjGPS.DtResultados.Rows("0")("Lat").ToString - ObjPos.Lng = ObjGPS.DtResultados.Rows("0")("Lng").ToString - ObjPos.Direccion = ObjGPS.DtResultados.Rows("0")("Direccion").ToString + Try + If Direcciones IsNot Nothing Then + For Each Dir As JObject In Direcciones + ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() + Next + End If + + ObjPos.Lat = ObjGPS.DtResultados.Rows("0")("Lat").ToString + ObjPos.Lng = ObjGPS.DtResultados.Rows("0")("Lng").ToString + ObjPos.Direccion = ObjGPS.DtResultados.Rows("0")("Direccion").ToString + Catch ex As Exception + ObjPos.CurrentError = "No se pudo obtener la posición." + OnError("Ocurrió un error al asignar las direcciones", ex) + End Try Else ObjPos.CurrentError = "No se pudo obtener la posición." End If @@ -103,17 +110,25 @@ Public Class WsTSoft Dim Continuar As Boolean = objTsoft.GETRemisionesHistorial(FolioRemision, NoEconomico) Dim objRem As New GetRemisionHistorialesObj If Continuar Then - Dim Dt = objTsoft.DtResultados.Copy() - Dt.Columns.Add("Direccion", GetType(String)) + Try + Dim Dt = objTsoft.DtResultados.Copy() + Dt.Columns.Add("Direccion", GetType(String)) - 'CONSULTA DIRECCIONES - Dim Direcciones As JArray = ConsultarDirecciones(Dt, "Lat", "Lon") - For Each Dir As JObject In Direcciones - Dt.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() - Next + 'CONSULTA DIRECCIONES + Dim Direcciones As JArray = ConsultarDirecciones(Dt, "Lat", "Lon") + If Direcciones IsNot Nothing Then + For Each Dir As JObject In Direcciones + Dt.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() + Next + End If - objRem.Historial = Dt.DataTableToObject(Of GetRemisionHistorialsObj) - objRem.CurrentError = "" + objRem.Historial = Dt.DataTableToObject(Of GetRemisionHistorialsObj) + objRem.CurrentError = "" + Catch ex As Exception + objRem.CurrentError = "Ocurrió un error al asignar las direcciones" + OnError("Ocurrió un error al asignar las direcciones", ex) + End Try + Else objRem.Historial = New List(Of GetRemisionHistorialsObj) objRem.CurrentError = objTsoft.MyCurrentError @@ -129,11 +144,17 @@ Public Class WsTSoft Dim objTsoft As New ClsTSoft If objTsoft.GetInfoEventosPenske(FechaInicio.ToDateTime(), FechaFin.ToDateTime()) Then If objTsoft.DtResultados.Rows.Count > 0 Then - 'CONSULTA DIRECCIONES - Dim Direcciones As JArray = ConsultarDirecciones(objTsoft.DtResultados) - For Each Dir As JObject In Direcciones - objTsoft.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() - Next + Try + 'CONSULTA DIRECCIONES + Dim Direcciones As JArray = ConsultarDirecciones(objTsoft.DtResultados) + If Direcciones IsNot Nothing Then + For Each Dir As JObject In Direcciones + objTsoft.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() + Next + End If + Catch ex As Exception + OnError("Ocurrió un error al asignar las direcciones", ex) + End Try retorno = objTsoft.DtResultados.DataTableToJSONIPP() Else From 8da0ad5798def8f31665f17e80e531a3fbf53502 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 28 Feb 2020 10:16:37 -0700 Subject: [PATCH 10/12] Tipos de cambio correcto --- Bancos/ProveedoresAbonar.aspx.vb | 126 ++++++++++++++++++++++--------- 1 file changed, 89 insertions(+), 37 deletions(-) diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 08c61a789..bf0ac93bf 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -966,7 +966,7 @@ Partial Class Bancos_ProveedoresAbonar CveCuenta = CveCuentaProveedorExtranjera If ImporteMovimiento <> 0 AndAlso (UsuarioActual.CveEmpresa = 119 Or IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos importeMX = ImporteMovimiento - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0.00D, Referencia, 206, ConceptoMovimiento, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedor, ImporteMX:=Math.Round(ImporteMovimiento * tipoCambioCompra - ImporteMovimiento, 2, MidpointRounding.AwayFromZero), ImporteME:=ImporteMovimiento, TipoCambio:=tipoCambioCompra, CveCuenta:=CveCuentaComplementaria) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0.00D, Referencia, 206, 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, CveCuenta:=CveCuentaComplementaria) Then MsgError = "No se pudo insertar la póliza" End If End If @@ -1750,49 +1750,101 @@ Partial Class Bancos_ProveedoresAbonar End If End If Case 64 'Ganancia - If CveMoneda <> 1 OrElse gvr.DataKey("CveMoneda").ToEntero <> 1 Then - Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - - 'Dim IVA As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) - Dim IVA As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) - Dim IEPS As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) 'If(TotalImporte = gvr.DataKey("Saldo").ToDecimal, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) - - IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria - CveCuenta = UsuarioActual.Empresa.CveCuentaGananciaCambiaria - Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - TipoCambioGeneral = TCImpuestos - '' si tiene funcionalidad de flucturación con ivas, tomar tipocambioCompra - If TipoCambioPago < tipoCambioCompra AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then - ImporteMovimiento = (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * TipoCambioPago) - (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompra) 'Añadimos la diferencia de ganancia en la venta - ImporteMovimiento -= (IVA * TCImpuestos) - (IVA * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el IVA - ImporteMovimiento += ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el RetIVA - ImporteMovimiento += ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el RetISR - ImporteMovimiento -= (IEPS * TCImpuestos) - (IEPS * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el IEPS - ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)) - importeMX = ImporteMovimiento - End If + If CveMoneda <> 1 OrElse gvr.DataKey("CveMoneda").ToEntero <> 1 Then + + IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria + CveCuenta = UsuarioActual.Empresa.CveCuentaGananciaCambiaria + 'tipoCambioVentaDiferenciaCambiaria = If(gvr.DataKey("Fecha").ToDate < FechaUltimaFluctuacion, TipoCambioFluctuacion, gvr.DataKey("TipoCambio").ToDecimal) + Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompraValuacion) + + + 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) + + '' se considera, las diferencias, y no el tipo de cambio, por el caso de las fluctuaciones + + '' si tiene funcionalidad de flucturación con ivas, tomar tipocambioventa + If Diferencia > 0 AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + ImporteMovimiento = Math.Abs(Diferencia) + importeMX = ImporteMovimiento + End If + + '' si tiene funcionalidad de flucturación con ivas, tomar tipocambioventa + 'If tipoCambioPago > tipoCambioVentaDiferenciaCambiaria AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + ' ImporteMovimiento = (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioPago) - (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioVentaDiferenciaCambiaria) 'Añadimos la diferencia de ganancia en la venta + ' ImporteMovimiento -= ((gvr.DataKey("IVA").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("IVA").ToDecimal * PorcentajePago) * tipoCambioVentaDiferenciaCambiaria) 'Añadimos la diferencia de ganancia en el IVA + ' ImporteMovimiento += ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambioVentaDiferenciaCambiaria) 'Añadimos la diferencia de ganancia en el RetIVA + ' ImporteMovimiento += ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambioVentaDiferenciaCambiaria) 'Añadimos la diferencia de ganancia en el RetISR + ' ImporteMovimiento -= ((gvr.DataKey("IEPS").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("IEPS").ToDecimal * PorcentajePago) * tipoCambioVentaDiferenciaCambiaria) 'Añadimos la diferencia de ganancia en el IEPS + ' ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)) + ' importeMX = ImporteMovimiento + 'End If + + + 'Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal + + ''Dim IVA As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) + 'Dim IVA As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) + 'Dim IEPS As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) 'If(TotalImporte = gvr.DataKey("Saldo").ToDecimal, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) + + 'IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria + 'CveCuenta = UsuarioActual.Empresa.CveCuentaGananciaCambiaria + 'Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompraValuacion) + 'TipoCambioGeneral = TCImpuestos + ''' si tiene funcionalidad de flucturación con ivas, tomar tipocambioCompra + 'If TipoCambioPago < tipoCambioCompra AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + ' ImporteMovimiento = (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * TipoCambioPago) - (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompra) 'Añadimos la diferencia de ganancia en la venta + ' ImporteMovimiento -= (IVA * TCImpuestos) - (IVA * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el IVA + ' ImporteMovimiento += ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el RetIVA + ' ImporteMovimiento += ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * TCImpuestos) - ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el RetISR + ' ImporteMovimiento -= (IEPS * TCImpuestos) - (IEPS * tipoCambioCompra) 'Añadimos la diferencia de ganancia en el IEPS + ' ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)) + ' importeMX = ImporteMovimiento + 'End If Else ImporteMovimiento = 0 End If Case 65 'Perdida If CveMoneda <> 1 OrElse gvr.DataKey("CveMoneda").ToEntero <> 1 Then - Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal - Dim IVA As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) - Dim IEPS As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) 'If(TotalImporte = gvr.DataKey("Saldo").ToDecimal, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) - IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria - CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria - Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompra) - '' si tiene funcionalidad de flucturación con ivas, tomar tipocambioCompra - If TipoCambioPago > tipoCambioCompra AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then - ImporteMovimiento = (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompra) - (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * TipoCambioPago) 'Añadimos la diferencia de ganancia en la venta - ImporteMovimiento -= (IVA * tipoCambioCompra) - (IVA * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA - ImporteMovimiento += ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA - ImporteMovimiento += ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR - ImporteMovimiento -= (IEPS * tipoCambioCompra) - (IEPS * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS - ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)) - importeMX = ImporteMovimiento + IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria + CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria + '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 + + 'Dim TotalImporte As Decimal = gvr.FCTextBox("TxtAbonar").Text.ToDecimal + 'Dim IVA As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IVAPorPagar").ToDecimal - (gvr.DataKey("IVA").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IVAPorPagar").ToDecimal, gvr.DataKey("IVA").ToDecimal * PorcentajePago) + 'Dim IEPS As Decimal = If(TotalImporte = gvr.DataKey("Saldo").ToDecimal AndAlso Math.Abs(Math.Round(gvr.DataKey("IEPSPorPagar").ToDecimal - (gvr.DataKey("IEPS").ToDecimal * PorcentajePago), 2)) <= 0.02, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) 'If(TotalImporte = gvr.DataKey("Saldo").ToDecimal, gvr.DataKey("IEPSPorPagar").ToDecimal, gvr.DataKey("IEPS").ToDecimal * PorcentajePago) + + 'IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria + 'CveCuenta = UsuarioActual.Empresa.CveCuentaPerdidaCambiaria + 'Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, TipoCambioPago, tipoCambioCompraValuacion) + '' si tiene funcionalidad de flucturación con ivas, tomar tipocambioCompra + 'If TipoCambioPago > tipoCambioCompra AndAlso gvr.DataKey("CveMoneda").ToEntero = 2 Then + ' ImporteMovimiento = (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * tipoCambioCompra) - (gvr.FCTextBox("TxtAbonar").Text.ToDecimal * TipoCambioPago) 'Añadimos la diferencia de ganancia en la venta + ' ImporteMovimiento -= (IVA * tipoCambioCompra) - (IVA * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA + ' ImporteMovimiento += ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetIVA").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA + ' ImporteMovimiento += ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * tipoCambioCompra) - ((gvr.DataKey("RetISR").ToDecimal * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR + ' ImporteMovimiento -= (IEPS * tipoCambioCompra) - (IEPS * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS + ' ImporteMovimiento = Math.Abs(Math.Round(ImporteMovimiento, 2, MidpointRounding.AwayFromZero)) + ' importeMX = ImporteMovimiento + 'End If Else ImporteMovimiento = 0 End If From 1070d8c14799bc0d1c80c553d11d9277ff657688 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Fri, 28 Feb 2020 11:40:23 -0700 Subject: [PATCH 11/12] --- Compras/Compras.aspx.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 835abc0c4..134e806e2 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -4396,7 +4396,7 @@ Partial Class Compras_Compras 'End If 'METODO DE PREPOLIZA DE ALMACEN - If UsuarioActual.CveEmpresa.Contiene(1, 119, 72, 80, 140) And UsuarioActual.Empresa.UsaInventarios And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" Then + If UsuarioActual.CveEmpresa.Contiene(1, 119, 72, 80, 140, 141) And UsuarioActual.Empresa.UsaInventarios And Not UsuarioActual.Empresa.Funcionalidad(126) = "1" Then Dim ImporteAlmacen = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 AND ISNULL(CveAlmacen,0) = 0 AND ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveTipoPS = 2").ToString.ToDecimal If ImporteAlmacen > 0 Then If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then @@ -4408,7 +4408,7 @@ Partial Class Compras_Compras If OCVinculada And Not (CveImportacion > 0 Or CveFlete > 0) Then CveConceptoContableAlmacen = DdlOCVinculaInv.SelectedValue.ToEntero End If - If UsuarioActual.CveEmpresa.Contiene(72, 80) Then + If UsuarioActual.CveEmpresa.Contiene(72, 80, 140, 141) Then CveConceptoContableAlmacen = 205 End If Else From 7dd387db3e1e2b86e69007548c71e12d4fa796e3 Mon Sep 17 00:00:00 2001 From: Rakcsle Supertramp Date: Fri, 28 Feb 2020 11:59:22 -0700 Subject: [PATCH 12/12] Ventas TmpDT EsOutSourcing default = true --- Ventas/Ventas.aspx.vb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 4713b0e7e..4cf6840bd 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -14701,6 +14701,8 @@ Partial Class Ventas TmpDT.Columns.Add("EsOutSourcing", GetType(Boolean)) TmpDT.Columns.Add("EsCargo", GetType(Boolean)) + TmpDT.Columns("EsOutSourcing").DefaultValue = False + End Sub Private Sub CreaDTmpC() DTmpC = New DataTable