diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index e4bdd741e..4f6329ac5 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -2955,7 +2955,8 @@ Public Class ClsInventarios Return Retorno End Function - Public Function SerieRecomendadoGet(CvePS As Integer, CveEmpresa As Integer, Optional CveAlmacen As Integer = -1, Optional CveSeccionAlmacen As Integer = -1, Optional CveSubProyecto As Integer = -1) As Boolean + Public Function SerieRecomendadoGet(CvePS As Integer, CveEmpresa As Integer, Optional CveAlmacen As Integer = -1, Optional CveSeccionAlmacen As Integer = -1, Optional CveSubProyecto As Integer = -1, + Optional CveCliente As Integer = -1, Optional CveVendedor As Integer = -1, Optional ExcluyeApartados As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_SerieRecomendadoGet") @@ -2966,6 +2967,9 @@ Public Class ClsInventarios .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen .Add("@CveSeccionAlmacen", SqlDbType.Int).Value = CveSeccionAlmacen .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor + .Add("@ExcluyeApartados", SqlDbType.Int).Value = ExcluyeApartados End With Try diff --git a/App_Code/ClsMovimientos.vb b/App_Code/ClsMovimientos.vb index 56ebab4bf..5b0ffdcff 100644 --- a/App_Code/ClsMovimientos.vb +++ b/App_Code/ClsMovimientos.vb @@ -1405,30 +1405,30 @@ Public Class ClsMovimientos End Try Return Retorno - End Function - - 'Public Function GetAnticiposClienteAuxiliar(CveCliente As Integer, CveVenta As Integer) As Boolean - ' Dim Retorno As Boolean = False - ' 'Data = New DataTable - ' 'SqlAdapter = New SqlDataAdapter("PA_ClienteAnticiposAuxiliar", SqlConexion) - ' 'SqlAdapter.SelectCommand.CommandType = CommandType.StoredProcedure - ' DataAdapter("PA_ClienteAnticiposAuxiliar") - ' With SqlAdapter.SelectCommand.Parameters - ' .Add("@CveCliente", SqlDbType.Int).Value = CveCliente - ' .Add("@CveVenta", SqlDbType.Int).Value = CveVenta - ' End With - ' Try - ' SqlAdapter.Fill(Data) - ' Retorno = True - ' Catch ex As SqlException - ' OnError("Ocurrió un error al consultar el Auxiliar Contable de Anticipos del Cliente.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - ' End Try - - ' Return Retorno - 'End Function - + End Function + + 'Public Function GetAnticiposClienteAuxiliar(CveCliente As Integer, CveVenta As Integer) As Boolean + ' Dim Retorno As Boolean = False + ' 'Data = New DataTable + ' 'SqlAdapter = New SqlDataAdapter("PA_ClienteAnticiposAuxiliar", SqlConexion) + ' 'SqlAdapter.SelectCommand.CommandType = CommandType.StoredProcedure + ' DataAdapter("PA_ClienteAnticiposAuxiliar") + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + ' .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + ' End With + ' Try + ' SqlAdapter.Fill(Data) + ' Retorno = True + ' Catch ex As SqlException + ' OnError("Ocurrió un error al consultar el Auxiliar Contable de Anticipos del Cliente.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + ' End Try + + ' Return Retorno + 'End Function + #End Region - + #Region "REP RECUPERACION" Public Function GetRepRecuperacion(FechaI As Date, FechaF As Date, CveCliente As Integer, CveSubProyecto As Integer, CveVendedor As Integer, CveUsuario As Integer, CveEstatus As Integer, IVA As String, @@ -1436,7 +1436,8 @@ Public Class ClsMovimientos Optional TipoDocto As String = "-1", Optional EstatusCliente As Integer = -1, Optional CveUsuarioConsulta As Integer = -1, Optional CveBanco As Integer = -1, Optional CveCuenta As Integer = -1, - Optional TipoCambio As Integer = -1, Optional TCEspecifico As Double = 0, Optional CveClienteClasificacion As Integer = -1) As Boolean + Optional TipoCambio As Integer = -1, Optional TCEspecifico As Double = 0, Optional CveClienteClasificacion As Integer = -1, + Optional EsDistribuidor As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_RepRecuperacion") With SqlAdapter.SelectCommand.Parameters @@ -1459,6 +1460,7 @@ Public Class ClsMovimientos .Add("@TipoCambio", SqlDbType.Int).Value = TipoCambio .Add("@TCEspecifico", SqlDbType.Float).Value = TCEspecifico .Add("@CveClienteClasificacion", SqlDbType.Int).Value = CveClienteClasificacion + .Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor End With Try SqlAdapter.Fill(Data) @@ -1511,7 +1513,8 @@ Public Class ClsMovimientos Optional CveUsuarioConsulta As Integer = -1, Optional CveBanco As Integer = -1, Optional CveCuenta As Integer = -1, Optional Grupo As String = "-1", Optional TipoCambio As Integer = -1, Optional TCEspecifico As Double = 0, - Optional CveMoneda As Integer = -1, Optional CveClienteClasificacion As Integer = -1, Optional Tipo As Integer = -1) As Boolean + Optional CveMoneda As Integer = -1, Optional CveClienteClasificacion As Integer = -1, Optional Tipo As Integer = -1, + Optional EsDistribuidor As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -1540,6 +1543,7 @@ Public Class ClsMovimientos .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda .Add("@CveClienteClasificacion", SqlDbType.Int).Value = CveClienteClasificacion .Add("@Tipo", SqlDbType.Int).Value = Tipo + .Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor End With Try @@ -1550,9 +1554,9 @@ Public Class ClsMovimientos End Try Return Retorno - End Function + End Function #End Region - + #Region "REP COBRADO" Public Function GetRepCobrado(FechaI As Date, FechaF As Date, CveProveedor As Integer, CveSubProyecto As Integer, CveUsuario As Integer, IVA As String, CveEmpresa As Integer, Gpo As Integer, CveResponsable As Integer, diff --git a/App_Code/DtDatos.xsd b/App_Code/DtDatos.xsd index 60d776208..edcd0cb6f 100644 --- a/App_Code/DtDatos.xsd +++ b/App_Code/DtDatos.xsd @@ -1,320 +1,321 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 68dbd2bec..09b93ff06 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -382,16 +382,19 @@ Namespace Modelos Me.ListaMensajes = New List(Of String) Me.FolioFiscal = "" Me.GenerarPDFFactura = False - IniciaValores() + IniciaValores() + Dim ObjVentas As New ClsVentas() If ObjVentas.GetVenta(CveVenta, CveEmpresa) Then If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then setValues(ObjVentas.DtResultados.Rows(0)) + SetMetodoPago() SetMoneda() SetSubProyecto() SetSubProyectoMatriz() SetCliente() + SetTotales(ObjVentas.DtResultados, ObjVentas) End If End If If ObjVentas.GetVentaDetalle(CveVenta) Then @@ -405,6 +408,58 @@ Namespace Modelos Me.DirectorioServidor = DirectorioServidor Timbre = New CFDITimbre End Sub + Private Sub SetTotales(dtVentas As DataTable, ObjVentas As ClsVentas) + Dim TmpDTImpuestos = New DataTable + TmpDTImpuestos.Columns.Add("ImpuestoLocal", GetType(String)) + TmpDTImpuestos.Columns.Add("Importe", GetType(Double)) + TmpDTImpuestos.Columns.Add("Orden", GetType(Integer)) + + Dim DR As DataRow = TmpDTImpuestos.NewRow() + If dtVentas(0)("SubTotal").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Subtotal" : DR("Importe") = dtVentas(0)("SubTotal").ToString.ToDouble : DR("Orden") = 10 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("Descuento").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Descuentos" : DR("Importe") = dtVentas(0)("Descuento").ToString.ToDouble : DR("Orden") = 20 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("Amortizacion").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Amort.Ant" : DR("Importe") = dtVentas(0)("Amortizacion").ToString.ToDouble : DR("Orden") = 30 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("SubTotal").ToString.ToDouble <> (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) Then DR("ImpuestoLocal") = "SubTotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) : DR("Orden") = 40 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("IVA").ToString.ToDouble >= 0 Then DR("ImpuestoLocal") = "IVA" : DR("Importe") = dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 50 : TmpDTImpuestos.Rows.Add(DR) + + 'solo para eclipse, que muesre un subtotal debajo de IVA + If UsuarioActual.CveEmpresa = 15 Then DR = TmpDTImpuestos.NewRow() : DR("ImpuestoLocal") = "Subtotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) + dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 51 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("RetIVA").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.IVA" : DR("Importe") = dtVentas(0)("RetIVA").ToString.ToDouble : DR("Orden") = 60 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("RetISR").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.ISR" : DR("Importe") = dtVentas(0)("RetISR").ToString.ToDouble : DR("Orden") = 70 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + + If dtVentas(0)("IEPS").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "IEPS" : DR("Importe") = dtVentas(0)("IEPS").ToString.ToDouble : DR("Orden") = 80 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + + If dtVentas(0)("Total").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Total" : DR("Importe") = dtVentas(0)("Total").ToString.ToDouble : DR("Orden") = 100 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + + If ObjVentas.GetVentaImpuestosLocales(CveVenta) Then + + Dim dtImpuesto As DataTable = ObjVentas.DtResultados + If dtImpuesto.Rows.Count > 0 Then + For Each Row As DataRow In dtImpuesto.Rows + Dim Orden = 80 + If Row("Importe").ToString.ToDouble <> 0 Then + DR("ImpuestoLocal") = Row("ImpuestoLocal").ToString + DR("Importe") = Row("Importe").ToString.ToDouble + DR("Orden") = Orden + TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + Orden = Orden + 1 + End If + Next + End If + Me.DtDeduccion = TmpDTImpuestos.FiltraParametros("", Orderby:="Orden ASC") + + End If + + End Sub Private Sub IniciaValores() Me.FolioFiscal = "" Me.CveContratoSecciones = "" diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 67bc6e154..5eae3c8f5 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -1078,7 +1078,7 @@ Partial Class Inventarios_EntregaAlmacen Dim DtSerie As New DataTable If TipoMovimiento = 1 Then Dim ObjInventarios As New ClsInventarios - If ObjInventarios.SerieRecomendadoGet(CvePSSerie, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero(), CveSubProyecto:=CveSubProyecto) Then + If ObjInventarios.SerieRecomendadoGet(CvePSSerie, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero(), CveSubProyecto:=CveSubProyecto, CveCliente:=CveCliente, CveVendedor:=CveVendedor) Then DtSerie = ObjInventarios.DtResultados End If ObjInventarios.Dispose() @@ -1105,6 +1105,7 @@ Partial Class Inventarios_EntregaAlmacen If DtSerie.Rows.Count > 0 Then Dim Mensaje As New StringBuilder Mensaje.AppendFormat("Serie Recomendado: {0}", DtSerie.Rows(0)("Serie")) + If AplicaCaducidad Then Mensaje.AppendFormat(", Caducicdad: {0}", DtSerie.Rows(0)("FechaCaducidad").ToString().ToDate.ToShortDateString) LbSerieRecomendado.Text = Mensaje.ToString() 'String.Format("Serie / Lote Recomendado: {0}, Caducicdad: {1}", ObjInventarios.DtResultados.Rows(0)("SerieLote"), ObjInventarios.DtResultados.Rows(0)("FechaCaducidad").ToString().ToDate.ToShortDateString) Else diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index 3da1f0d6a..bc71b2918 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -1888,6 +1888,7 @@ + <%-- diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 981ee8b46..ec3737877 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -3825,7 +3825,7 @@ Partial Class Clientes Protected Sub ChkAntIXCNC_CheckedChanged(sender As Object, e As EventArgs) DdlTipoDocto.ClearSelection() If ChkAntIXCNC.Checked Then - DdlTipoDocto.SelectedValuesIfExistM("Ing,Rem,Ant,Egs,IxC") + DdlTipoDocto.SelectedValuesIfExistM("Ing,Rem,Ant,Egs,IxC,RNC") Else DdlTipoDocto.SelectedValuesIfExistM("Ing,Rem") End If @@ -3907,7 +3907,7 @@ Partial Class Clientes Dim dtt As DataTable = Nothing If ObjMovtos.GetAnticiposNCIxCCliente(CveCliente, -1, -1) Then - dtt = If(DdlTipoCuentasCxC.SelectedValue = "-1", ObjMovtos.DtResultados.FiltraParametros("SaldoVentaAnticipo = 0 AND ((Tipo = 'IxC' AND CveIE > 0) OR (Tipo = 'Ant' AND CveVenta > 0) OR (Tipo = 'NC' AND CveVenta > 0) OR (Tipo = 'Egs' AND CveVenta > 0) )"), ObjMovtos.DtResultados.FiltraParametros("Saldo > 0 AND SaldoVentaAnticipo = 0 AND ((Tipo = 'IxC' AND CveIE > 0) OR (Tipo = 'Ant' AND CveVenta > 0) OR (Tipo = 'NC' AND CveVenta > 0) OR (Tipo = 'Egs' AND CveVenta > 0) )")) ' que tenga saldo de anticipo y no de cliente + dtt = If(DdlTipoCuentasCxC.SelectedValue = "-1", ObjMovtos.DtResultados.FiltraParametros("SaldoVentaAnticipo = 0 AND ((Tipo = 'IxC' AND CveIE > 0) OR (Tipo = 'Ant' AND CveVenta > 0) OR (Tipo = 'NC' AND CveVenta > 0) OR (Tipo = 'Egs' AND CveVenta > 0) OR (Tipo = 'RNC' AND CveVenta > 0) )"), ObjMovtos.DtResultados.FiltraParametros("Saldo > 0 AND SaldoVentaAnticipo = 0 AND ((Tipo = 'IxC' AND CveIE > 0) OR (Tipo = 'Ant' AND CveVenta > 0) OR (Tipo = 'NC' AND CveVenta > 0) OR (Tipo = 'Egs' AND CveVenta > 0) OR (Tipo = 'RNC' AND CveVenta > 0) )")) ' que tenga saldo de anticipo y no de cliente If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then For Each drt As DataRow In dtt.Rows Dim drr As DataRow = DtCxCFact.NewRow @@ -3942,7 +3942,7 @@ Partial Class Clientes SaldoIngDolaresPesos = SaldoIngDolaresPesos + (Row("Saldo").ToString.ToDouble * Row("TipoCambio").ToString.ToDouble) End If - ElseIf (Row("TipoDocto").ToString = "Ant" And Row("Saldo").ToString.ToDouble = 0) Or Row("TipoDocto").ToString = "IxC" Or Row("TipoDocto").ToString = "NC" Or Row("TipoDocto").ToString = "Dev" Then 'Anticipos, NC, IxC + ElseIf (Row("TipoDocto").ToString = "Ant" And Row("Saldo").ToString.ToDouble = 0) Or Row("TipoDocto").ToString = "IxC" Or Row("TipoDocto").ToString = "NC" Or Row("TipoDocto").ToString = "Dev" Or Row("TipoDocto").ToString = "RNC" Then 'Anticipos, NC, IxC ContaAnt = ContaAnt + 1 If Row("CveMoneda").ToString.ToEntero = 1 Then If Row("TipoDocto").ToString = "Dev" Then diff --git a/Ventas/RepRecuperacion.aspx b/Ventas/RepRecuperacion.aspx index 906d0f35a..645a536bf 100644 --- a/Ventas/RepRecuperacion.aspx +++ b/Ventas/RepRecuperacion.aspx @@ -99,6 +99,7 @@ + @@ -168,6 +169,14 @@ + +
+ + + + + +
diff --git a/Ventas/RepRecuperacion.aspx.vb b/Ventas/RepRecuperacion.aspx.vb index 0e4839d3c..85efd930c 100644 --- a/Ventas/RepRecuperacion.aspx.vb +++ b/Ventas/RepRecuperacion.aspx.vb @@ -108,6 +108,13 @@ Partial Class Ventas_RepRecuperacion txtFechaI.Text = $"01/{Now.Month}/{Now.Year}" txtFechaF.Text = Now.ToShortDateString + + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + lblEsDistribuidor.Visible = True + divEsDistribuidor.Visible = True + End If + + UPFiltros.Update() End Sub Private Sub CargaDatos() @@ -120,7 +127,8 @@ Partial Class Ventas_RepRecuperacion If ObjMovtos.GetRepRecuperacion(txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, DdlClientes.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, DdlUsuario.SelectedValue.ToEntero, -1, "-1", UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, DdlResponsable.SelectedValue.ToEntero, DdlTipoDocto.SelectedValue.ToString, CveBanco:=DdlBanco.SelectedValue.ToEntero, CveCuenta:=DdlCuentaBancaria.SelectedValue.ToEntero, - EstatusCliente:=DdlEstatusCliente.SelectedValue.ToEntero, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoCambio:=RblTipoCambio.SelectedValue.ToEntero, TCEspecifico:=TCEspecifico, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero) Then + EstatusCliente:=DdlEstatusCliente.SelectedValue.ToEntero, CveUsuarioConsulta:=UsuarioActual.CveUsuario, TipoCambio:=RblTipoCambio.SelectedValue.ToEntero, TCEspecifico:=TCEspecifico, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, + EsDistribuidor:=DdlDistribuidor.SelectedValue.ToEntero()) Then GvDatos.DataSource = ObjMovtos.DtResultados DtDatos = ObjMovtos.DtResultados Else @@ -159,15 +167,15 @@ Partial Class Ventas_RepRecuperacion End If End If - Dim Liga4 As String = String.Format("/Ventas/RepRecuperacionDetalle.aspx?GPO={0}&CveCliente={1}&CveSubProyecto={2}&Vendedor={3}&CveUsuario={4}&CveEstatusFactura={5}&IVA={6}&FechaI={7}&FechaF={8}&CveResponsable={9}&TipoDocto={10}&CveClienteSucursal={11}&CveBanco{12}&CveCuenta{13}&Grupo={14}&TipoCambio={15}&TCEspecifico={16}&CveMoneda={17}&Tipo={18}", + Dim Liga4 As String = String.Format("/Ventas/RepRecuperacionDetalle.aspx?GPO={0}&CveCliente={1}&CveSubProyecto={2}&Vendedor={3}&CveUsuario={4}&CveEstatusFactura={5}&IVA={6}&FechaI={7}&FechaF={8}&CveResponsable={9}&TipoDocto={10}&CveClienteSucursal={11}&CveBanco{12}&CveCuenta{13}&Grupo={14}&TipoCambio={15}&TCEspecifico={16}&CveMoneda={17}&Tipo={18}&EsDistribuidor={19}", DdlGrupo.SelectedValue, e.Row.DBCampo("CveCliente"), e.Row.DBCampo("CveSubProyecto"), e.Row.DBCampo("CveVendedor"), - e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), e.Row.DBCampo("GPO_IVA"), FechaI, FechaF, DdlResponsable.SelectedValue, e.Row.DBCampo("TipoDocto"), CveClienteSucursal, e.Row.DBCampo("CveBanco"), e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("GPO"), e.Row.DBCampo("TipoCambio"), e.Row.DBCampo("TCEspecifico"), e.Row.DBCampo("CveMoneda"), 2) + e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), e.Row.DBCampo("GPO_IVA"), FechaI, FechaF, DdlResponsable.SelectedValue, e.Row.DBCampo("TipoDocto"), CveClienteSucursal, e.Row.DBCampo("CveBanco"), e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("GPO"), e.Row.DBCampo("TipoCambio"), e.Row.DBCampo("TCEspecifico"), e.Row.DBCampo("CveMoneda"), 2, e.Row.DBCampo("EsDistribuidor")) e.Row.FCHyperLink("HplPagado").NavigateUrl = Liga4 - Dim Liga5 As String = String.Format("/Ventas/RepRecuperacionDetalle.aspx?GPO={0}&CveCliente={1}&CveSubProyecto={2}&Vendedor={3}&CveUsuario={4}&CveEstatusFactura={5}&IVA={6}&FechaI={7}&FechaF={8}&CveResponsable={9}&TipoDocto={10}&CveClienteSucursal={11}&CveBanco{12}&CveCuenta{13}&Grupo={14}&TipoCambio={15}&TCEspecifico={16}&CveMoneda={17}&Tipo={18}", + Dim Liga5 As String = String.Format("/Ventas/RepRecuperacionDetalle.aspx?GPO={0}&CveCliente={1}&CveSubProyecto={2}&Vendedor={3}&CveUsuario={4}&CveEstatusFactura={5}&IVA={6}&FechaI={7}&FechaF={8}&CveResponsable={9}&TipoDocto={10}&CveClienteSucursal={11}&CveBanco{12}&CveCuenta{13}&Grupo={14}&TipoCambio={15}&TCEspecifico={16}&CveMoneda={17}&Tipo={18}&EsDistribuidor={19}", DdlGrupo.SelectedValue, e.Row.DBCampo("CveCliente"), e.Row.DBCampo("CveSubProyecto"), e.Row.DBCampo("CveVendedor"), - e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), e.Row.DBCampo("GPO_IVA"), FechaI, FechaF, DdlResponsable.SelectedValue, e.Row.DBCampo("TipoDocto"), CveClienteSucursal, e.Row.DBCampo("CveBanco"), e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("GPO"), e.Row.DBCampo("TipoCambio"), e.Row.DBCampo("TCEspecifico"), e.Row.DBCampo("CveMoneda"), 1) + e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), e.Row.DBCampo("GPO_IVA"), FechaI, FechaF, DdlResponsable.SelectedValue, e.Row.DBCampo("TipoDocto"), CveClienteSucursal, e.Row.DBCampo("CveBanco"), e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("GPO"), e.Row.DBCampo("TipoCambio"), e.Row.DBCampo("TCEspecifico"), e.Row.DBCampo("CveMoneda"), 1, e.Row.DBCampo("EsDistribuidor")) e.Row.FCHyperLink("HplVendido").NavigateUrl = Liga5 diff --git a/Ventas/RepRecuperacionDetalle.aspx b/Ventas/RepRecuperacionDetalle.aspx index 6d0e2e6fd..9de83215a 100644 --- a/Ventas/RepRecuperacionDetalle.aspx +++ b/Ventas/RepRecuperacionDetalle.aspx @@ -94,6 +94,7 @@ + @@ -177,6 +178,14 @@ + +
+ + + + + +
diff --git a/Ventas/RepRecuperacionDetalle.aspx.vb b/Ventas/RepRecuperacionDetalle.aspx.vb index 39e1769c2..61fe62f14 100644 --- a/Ventas/RepRecuperacionDetalle.aspx.vb +++ b/Ventas/RepRecuperacionDetalle.aspx.vb @@ -7,8 +7,8 @@ Imports Extensiones Imports Microsoft.Reporting.WebForms Imports System.IO Partial Class Ventas_RepRecuperacionDetalle - Inherits ClsPaginas - + Inherits ClsPaginas + #Region "Propiedades" Public Property Iva() As String Get @@ -60,18 +60,28 @@ Partial Class Ventas_RepRecuperacionDetalle Set(value As Integer) ViewState("Tipo") = value End Set - End Property + End Property + Private Property EsDistribuidor As Integer + Get + Return ViewState("EsDistribuidor").ToString.ToEntero + End Get + + Set(value As Integer) + ViewState("EsDistribuidor") = value + End Set + End Property + #End Region - + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then CargaCombos() CargaDatos() End If - End Sub - + End Sub + #Region "CARGAS" - + Private Sub CargaCombos() Dim CveCliente, CveVendedor, CveUsuario, CveSubProyecto, CveEstatus, CveResponsable, CveAgrupador, CveBanco, CveCuenta, CveClienteSucursal, CveMoneda, CveClienteClasificacion As Integer @@ -153,7 +163,8 @@ Partial Class Ventas_RepRecuperacionDetalle TxtEspecifico.Text = IfNull(Request("TCEspecifico"), "").ToString CveMoneda = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero CveClienteClasificacion = IfNull(Request("CveClienteClasificacion"), "-1").ToString.ToEntero - Tipo = IfNull(Request("Tipo"), "-1").ToString.ToEntero + Tipo = IfNull(Request("Tipo"), "-1").ToString.ToEntero + EsDistribuidor = IfNull(Request("EsDistribuidor"), "-1").ToString.ToEntero 'Carga Clasificacion Cliente' Dim ObjCliente As New ClsClientes @@ -196,8 +207,13 @@ Partial Class Ventas_RepRecuperacionDetalle RblTipoCambio.SelectedValue = TipoCambio DdlMoneda.SelectedValueExist(If(TipoCambio.ToEntero > 1, -1, CveMoneda)) DdlClienteClasificacion.SelectedValueExist(CveClienteClasificacion) - DdlClienteSucursal.SelectedValueExist(CveClienteSucursal) - + DdlClienteSucursal.SelectedValueExist(CveClienteSucursal) + DdlDistribuidor.SelectedValueExist(EsDistribuidor) + + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + lblEsDistribuidor.Visible = True + divEsDistribuidor.Visible = True + End If End Sub Public Sub CargaDatos() @@ -211,7 +227,8 @@ Partial Class Ventas_RepRecuperacionDetalle DdlClienteSucursal.SelectedValue.ToEntero, -1, Iva.ToString, DdlGrupo.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlResponsable.SelectedValue.ToEntero, DdlTipoDocto.SelectedValue, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveBanco:=DdlBanco.SelectedValue.ToEntero, CveCuenta:=DdlCuentaBancaria.SelectedValue.ToEntero, Grupo:=Grupo, - TipoCambio:=RblTipoCambio.SelectedValue.ToEntero, TCEspecifico:=TCEspecifico, CveMoneda:=DdlMoneda.SelectedValue.ToEntero, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, Tipo:=Tipo) Then + TipoCambio:=RblTipoCambio.SelectedValue.ToEntero, TCEspecifico:=TCEspecifico, CveMoneda:=DdlMoneda.SelectedValue.ToEntero, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, Tipo:=Tipo, + EsDistribuidor:=DdlDistribuidor.SelectedValue.ToEntero()) Then GvDatos.DataSource = ObjMovtos.DtResultados DtDatos = ObjMovtos.DtResultados @@ -234,12 +251,12 @@ Partial Class Ventas_RepRecuperacionDetalle End If DdlCuentaBancaria.Items.Insert(0, New ListItem("Todos", "-1")) DdlCuentaBancaria.DataBind() - End Sub - + End Sub + #End Region - + #Region "GRIDVIEW" - + Private Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then @@ -259,18 +276,18 @@ Partial Class Ventas_RepRecuperacionDetalle e.Row.Cells(8).Text = "" End If End If - End Sub - + End Sub + #End Region - + #Region "SELECTED INDEX CHANGE" - + Protected Sub DdlBanco_SelectedIndexChanged(sender As Object, e As EventArgs) CargaCuentas() - End Sub - + End Sub + #End Region - + #Region "IMPRESIONES" Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Imprimir("PDF") @@ -318,10 +335,10 @@ Partial Class Ventas_RepRecuperacionDetalle Else Alert("No hay datos consultados.", TipoMensaje.MsgAdvertencia) End If - End Sub - + End Sub + #End Region - + Protected Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) If RblTipoCambio.SelectedValue.ToEntero = 3 Then LiEspecifico.Visible = True diff --git a/Ventas/RepVentaDetalle.aspx.vb b/Ventas/RepVentaDetalle.aspx.vb index 324054b77..8f5e3b4e2 100644 --- a/Ventas/RepVentaDetalle.aspx.vb +++ b/Ventas/RepVentaDetalle.aspx.vb @@ -374,7 +374,8 @@ Partial Class RepVentaDetalle 'Vendedor DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) - DdlVendedor.DataBind() + DdlVendedor.DataBind() + DdlVendedor.Items.Insert(0, New ListItem("Sin Vendedor", "-2")) 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) diff --git a/Ventas/RepVentas.aspx.vb b/Ventas/RepVentas.aspx.vb index 2365c576f..3826e9a93 100644 --- a/Ventas/RepVentas.aspx.vb +++ b/Ventas/RepVentas.aspx.vb @@ -137,7 +137,8 @@ Partial Class Ventas_RepVentas DdlGrupo.Items.Insert(11, New ListItem("Mes Ejec.", "12")) DdlGrupo.Items.Insert(12, New ListItem("Año/Mes Ejec.", "13")) DdlGrupo.Items.Insert(13, New ListItem("Fecha Ejec.", "14")) - DdlGrupo.Items.Insert(13, New ListItem("Tipo Cliente", "20")) + DdlGrupo.Items.Insert(13, New ListItem("Tipo Cliente", "20")) + DdlGrupo.Items.Insert(13, New ListItem("Vendedor/Cliente", "21")) DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("3") End Sub @@ -395,6 +396,7 @@ Partial Class Ventas_RepVentas e.Row.Cells(2).BackColor = Drawing.Color.Transparent e.Row.Cells(6).BackColor = Drawing.Color.Transparent End If + If e.Row.DBCampo("GPO") = "Total Dólares" Then e.Row.CssClass = "Totales" End If @@ -492,6 +494,22 @@ Partial Class Ventas_RepVentas e.Row.Attributes.Add("style", "background:#CCCCCC !important") End If + + If DdlGrupo.SelectedValue.ToEntero = 21 Then + If e.Row.DBCampo("GPO").Contains("Total") Then + e.Row.CssClass = "Totales" + e.Row.Cells(2).BackColor = Drawing.Color.Transparent + e.Row.Cells(6).BackColor = Drawing.Color.Transparent + Else + If e.Row.DBCampo("CveCliente") = "" Then + e.Row.CssClass = "SubTotales" + e.Row.Cells(2).BackColor = Drawing.Color.Transparent + e.Row.Cells(6).BackColor = Drawing.Color.Transparent + End If + End If + + + End If End If End Sub #End Region diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index b8790a882..b0dd83db2 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -3961,7 +3961,7 @@ Partial Class Ventas LblAlertRefacInv.Visible = True End If - If DdlTipoComprobante.SelectedValue.Contiene("Egs", "Ing", "Ant", "Dev", "Rem", "DPe", "RNC", "Pd2") AndAlso Not CveEstatus.Contiene(4, 5, 12, 13, 20) Then + If DdlTipoComprobante.SelectedValue.Contiene("Egs", "Ing", "Ant", "Dev", "Rem", "DPe", "RNC", "Pd2", "Cot") AndAlso Not CveEstatus.Contiene(4, 5, 10, 12, 13, 20) Then If 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 @@ -3981,11 +3981,13 @@ Partial Class Ventas Dim TipoEstatus As Integer = GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {CveEstatus}").ToEntero() - If UsuarioActual.Empresa.Funcionalidad(135).Contiene("1", "2") AndAlso DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso TipoEstatus = 5 Then - If 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 - LbCancelarDocumento.Visible = True + If UsuarioActual.Empresa.Funcionalidad(135).Contiene("1", "2") AndAlso DdlTipoComprobante.SelectedValue.Contiene("Cot") Then + If UsuarioActual.TienePermisoProceso(116) Then + LbCancelarDocumento.Visible = True + If TipoEstatus = 2 Then + LbCancelarDocumento.Visible = False + ElseIf TipoEstatus = 5 Then + LbCancelarDocumento.Visible = False End If End If End If @@ -7875,21 +7877,30 @@ Partial Class Ventas Dim SerieFolioNCProntoPago As String = "" Dim CveVentaNCProntoPago As Integer = -1 Dim GeneroDescuentoProntoPago As Boolean = False - If ObjFactura.DescuentoProntoPago > 0 Then - Dim RespFacturaProntoPago = GenerarNCProntoPago(ObjVentas.IniciaTransacSQL(), ObjClientes, ObjContPaq, ObjFactura) - If RespFacturaProntoPago.ObjFacturaProntoPago Is Nothing OrElse RespFacturaProntoPago Is Nothing Then - ErrorList.Add("No se pudo generar la nota de crédito de pronto pago") - Else - If RespFacturaProntoPago.Mensaje.CveVenta <= 0 OrElse RespFacturaProntoPago.Mensaje.TieneError Then + + 'SOLO GENERAR NC POR DESCUENTO PRONTO PAGO SI EL PAGO ES DE CONTADO + If RBLPago.SelectedValue = "2" AndAlso ObjFactura.DescuentoProntoPago > 0 Then + Dim ImportePagado = DtPagos.SUM("Importe").ToString().ToDecimal + If (ImportePagado + ObjFactura.DescuentoProntoPago) >= ObjFactura.Total Then + + Dim RespFacturaProntoPago = GenerarNCProntoPago(ObjVentas.IniciaTransacSQL(), ObjClientes, ObjContPaq, ObjFactura) + If RespFacturaProntoPago.ObjFacturaProntoPago Is Nothing OrElse RespFacturaProntoPago Is Nothing Then ErrorList.Add("No se pudo generar la nota de crédito de pronto pago") Else - GeneroDescuentoProntoPago = True - CveVentaNCProntoPago = RespFacturaProntoPago.Mensaje.CveVenta - SerieFolioNCProntoPago = RespFacturaProntoPago.Mensaje.SerieFolio + If RespFacturaProntoPago.Mensaje.CveVenta <= 0 OrElse RespFacturaProntoPago.Mensaje.TieneError Then + ErrorList.Add("No se pudo generar la nota de crédito de pronto pago") + Else + GeneroDescuentoProntoPago = True + CveVentaNCProntoPago = RespFacturaProntoPago.Mensaje.CveVenta + SerieFolioNCProntoPago = RespFacturaProntoPago.Mensaje.SerieFolio - Obj2.Add(RespFacturaProntoPago.ObjFacturaProntoPago) + Obj2.Add(RespFacturaProntoPago.ObjFacturaProntoPago) + End If End If + End If + + End If 'MARCA PARA NO SURTIR VENTA DE COTNRATO DE CONSIGNACION DE VENTA | [IPP] : PARCHE @@ -16710,9 +16721,13 @@ Partial Class Ventas If ImporteProntoPago > 0 Then Row("ImporteProntoPago") = ImporteProntoPago Row("TieneProntoPago") = "Si" - GvPS.Columns(22).Visible = True - thProntoPago.Visible = True - thProntoPago2.Visible = True + 'SOLO DEBE MOSTRASE SI EL PAGO ES DE CONTADO + If RBLPago.SelectedValue = "2" Then + GvPS.Columns(22).Visible = True + thProntoPago.Visible = True + thProntoPago2.Visible = True + End If + End If If UsuarioActual.CveEmpresa = 119 Then @@ -17365,7 +17380,7 @@ Partial Class Ventas Dim Total As Decimal = 0 Dim TotalImpuestosLocales As Decimal = 0 - Dim TotalProntoPago As Decimal = TmpDT.SUM("ImporteProntoPago").ToDecimal + Dim TotalProntoPago As Decimal = 0 If TotalAmortizacion > 0 AndAlso TotalSubTotal = TotalAmortizacion Then ' si se amortizó completa la factura, debe de limpiar los impuestos If DdlTipoAmortizacionAnticipo.SelectedValue.Contiene("3") Then @@ -17439,6 +17454,11 @@ Partial Class Ventas TxtIEPS.Text = TotalIEPS.FormatoNumero TxtTotal.Text = Total.FormatoNumero + 'SI ES PAGO DE CONTADO + If RBLPago.SelectedValue = "2" Then + TotalProntoPago = TmpDT.SUM("ImporteProntoPago").ToDecimal + End If + HdnProntoPago.Value = TotalProntoPago.ToString() LblProntoPago.Text = TotalProntoPago.FormatoNumero(2) @@ -19783,9 +19803,26 @@ Partial Class Ventas End Select LimpiaContado() + LimpiaProntoPago() UpContado.Update() UPCondicionesPago.Update() End Sub + Private Sub LimpiaProntoPago() + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + + If RBLPago.SelectedValue = "2" Then + GvPS.Columns(22).Visible = True + thProntoPago.Visible = True + thProntoPago2.Visible = True + Else + GvPS.Columns(22).Visible = False + thProntoPago.Visible = False + thProntoPago2.Visible = False + End If + + CalculaTotalesVenta() + End If + End Sub Private Sub CargaCuentas() DdlCuentaEfectivo.Items.Clear() @@ -28647,7 +28684,12 @@ Partial Class Ventas Exit Sub End If - Dim TotalProntoPago As Decimal = TmpDT.SUM("ImporteProntoPago").ToDecimal + Dim TotalProntoPago As Decimal = 0 + + 'SOLO APLICA SI EL PAGO ES DE CONTADO + If RBLPago.SelectedValue = "2" Then + TotalProntoPago = TmpDT.SUM("ImporteProntoPago").ToDecimal + End If HdnTotalRNC.Value = TotalRemNCAplicado.ToString() LblDescuentosRNC.Text = TotalRemNCAplicado.FormatoNumero diff --git a/asmx/WsTSoft.asmx b/asmx/WsTSoft.asmx index 541ab2d77..3288b8237 100644 --- a/asmx/WsTSoft.asmx +++ b/asmx/WsTSoft.asmx @@ -60,23 +60,40 @@ Public Class WsTSoft End Function Public Function GetUltimaPosicion(DevID As String) As String - Dim retorno As String = "" - Dim ObjGPS As New ClsGPS - Dim Continuar As Boolean = ObjGPS.UltimaPosicionEquipoGetWS(DevID) + Dim retorno As String = "" + Dim DtPosicion As DataTable = Nothing + Dim Continuar As Boolean = False + + Using ObjGPS As New ClsGPS + If ObjGPS.UltimaPosicionEquipoGetWS(DevID) Then + DtPosicion = ObjGPS.DtResultados.Copy() + Continuar = True + End If + End Using + Dim ObjPos As New LatLng - If Continuar Then + + If Continuar AndAlso DtPosicion IsNot Nothing Then 'CONSULTA DIRECCIONES - Dim Direcciones As JArray = ConsultarDirecciones(ObjGPS.DtResultados, "Lat", "Lng") 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 - If ObjGPS.DtResultados IsNot Nothing AndAlso ObjGPS.DtResultados.Rows.Count > 0 Then - ObjPos.Lat = ObjGPS.DtResultados.Rows("0")("Lat").ToString - ObjPos.Lng = ObjGPS.DtResultados.Rows("0")("Lng").ToString - ObjPos.Direccion = ObjGPS.DtResultados.Rows("0")("Direccion").ToString + If DtPosicion IsNot Nothing AndAlso DtPosicion.Rows.Count > 0 Then + + Dim Direcciones As JArray = ConsultarDirecciones(DtPosicion, "Lat", "Lng") + + If Direcciones IsNot Nothing Then + For Each Dir As JObject In Direcciones + DtPosicion.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString() + Next + End If + + Dim RowPosicion As DataRow = DtPosicion.Rows("0") + + ObjPos.Fecha = RowPosicion("Fecha").ToString().ToDateTime().ToString("dd/MM/yyyy HH:mm:ss") + ObjPos.Lat = RowPosicion("Lat").ToString() + ObjPos.Lng = RowPosicion("Lng").ToString() + ObjPos.Direccion = RowPosicion("Direccion").ToString() + Else + ObjPos.CurrentError = "No se encontraron resultados." End If Catch ex As Exception @@ -85,12 +102,18 @@ Public Class WsTSoft End Try Else ObjPos.CurrentError = "No se pudo obtener la posición." - End If - ObjGPS.Dispose() + End If + + If DtPosicion IsNot Nothing Then + DtPosicion.Dispose() + DtPosicion = Nothing + End If + retorno = JsonConvert.SerializeObject(ObjPos) ObjPos = Nothing Return retorno End Function + Public Function TerminoRemision(FolioRemision As String, NoEconomico As String) As String Dim retorno As String = "" @@ -244,6 +267,7 @@ Public Class WsTSoft Public Class LatLng Public Property Lat As String Public Property Lng As String + Public Property Fecha As String Public Property Direccion As String Public Property CurrentError As String End Class