Dim sesion As Sesion
Dim ws As New ServiceClient
Dim cot97754 As Cotizacion
Dim cot97755 As Cotizacion
Dim cot97756 As Cotizacion
Dim cot97757 As Cotizacion
Dim cot97758 As Cotizacion
Dim cotizaciones() As Cotizacion
Dim nuevaCotizacion As Cotizacion
Dim nuevoDetalles As List(Of CotizacionDetalle)
Dim nuevoRecargosDescuentos As List(Of CotizacionRecargoDescuento)
Dim nuevoImpuestos As List(Of DetalleImpuesto)
Dim nuevoTasas As List(Of CotizacionTasa)
Try
sesion = ws.Login("ASPDEFONTANA", "ASPDEFONTANA", "2", "")
sesion.IDEmpresa = "ASPDEFONTANA"
cot97754 = ws.GetCotizacion(sesion, 97754)
cot97755 = ws.GetCotizacion(sesion, 97755)
cot97756 = ws.GetCotizacion(sesion, 97756)
cot97757 = ws.GetCotizacion(sesion, 97757)
cot97758 = ws.GetCotizacion(sesion, 97758)
' MODIFICACIÓN
cot97754.MotivoRechazo = "CAMBIA EL MOTIVO DEL RECHAZO " & Date.UtcNow()
cot97754.Observacion = "CAMBIA LA OBSERVACION " & Date.UtcNow()
ws.ModificaCotizacion(sesion, cot97754)
cot97756.Estado = EstadoCotizacion.PENDIENTE
' ELIMINACIÓN
ws.EliminaCotizacion(sesion, cot97756)
' CAMBIO DE ESTADO
ws.CambiaEstadoCotizacion(sesion, cot97756, EstadoCotizacion.RECHAZADA)
' GRABACIÓN. Copio los datos de una cotización existente pero la grabo como una nueva.
nuevaCotizacion = New Cotizacion()
nuevaCotizacion.Afecto = cot97756.Afecto
nuevaCotizacion.Total = cot97756.Total
nuevaCotizacion.Estado = cot97756.Estado
nuevaCotizacion.Exento = cot97756.Exento
nuevaCotizacion.Fecha = cot97756.Fecha
nuevaCotizacion.FechaCierre = cot97756.FechaCierre
nuevaCotizacion.FechaExpiracion = cot97756.FechaExpiracion
nuevaCotizacion.IDCondicionPago = cot97756.IDCondicionPago
nuevaCotizacion.IDContactoFicha = cot97756.IDContactoFicha
nuevaCotizacion.IDEmpresa = cot97756.IDEmpresa
nuevaCotizacion.IDFichaCliente = cot97756.IDFichaCliente
nuevaCotizacion.IDListaPrecio = cot97756.IDListaPrecio
nuevaCotizacion.IDMoneda = cot97756.IDMoneda
nuevaCotizacion.TasaCambio = cot97756.TasaCambio
nuevaCotizacion.IDTipoDocumento = cot97756.IDTipoDocumento
nuevaCotizacion.IDVendedor = cot97756.IDVendedor
nuevaCotizacion.MotivoRechazo = cot97756.MotivoRechazo
nuevaCotizacion.Subtotal = cot97756.Subtotal
nuevaCotizacion.Numero = 0 ' Asigno 0 para que el sistema asigne el último disponible.
nuevaCotizacion.Observacion = cot97756.Observacion
nuevaCotizacion.RecargoDescuento = cot97756.RecargoDescuento
' Creo un nuevo arreglo con la cantidad de elementos a contener.
nuevoDetalles = New List(Of CotizacionDetalle)(cot97756.Detalles.Length)
For Each detalle As CotizacionDetalle In cot97756.Detalles
Dim nuevoDetalle As New CotizacionDetalle With {
.Cantidad = detalle.Cantidad,
.Comentario = detalle.Comentario,
.FechaEntrega = detalle.FechaEntrega,
.IDProducto = detalle.IDProducto,
.LineaDetalle = detalle.LineaDetalle,
.PrecioUnitario = detalle.PrecioUnitario,
.RecargoDescuento = detalle.RecargoDescuento,
.SubTotal = detalle.SubTotal,
.Tipo = detalle.Tipo,
.TipoRecargoDescuento = detalle.TipoRecargoDescuento
}
nuevoDetalles.Add(nuevoDetalle)
Next
nuevaCotizacion.Detalles = nuevoDetalles.ToArray()
' Creo un nuevo arreglo con la cantidad de elementos a contener.
nuevoImpuestos = New List(Of DetalleImpuesto)(cot97756.Impuestos.Length)
For Each impuesto As DetalleImpuesto In cot97756.Impuestos
Dim nuevoImpuesto As New DetalleImpuesto With {
.IDImpuesto = impuesto.IDImpuesto,
.MontoImpuesto = impuesto.MontoImpuesto,
.PorcentajeImpuesto = impuesto.PorcentajeImpuesto
}
nuevoImpuestos.Add(nuevoImpuesto)
Next
nuevaCotizacion.Impuestos = nuevoImpuestos.ToArray()
' Creo un nuevo arreglo con la cantidad de elementos a contener.
nuevoRecargosDescuentos = New List(Of CotizacionRecargoDescuento)(cot97756.RecargosDescuentos.Length)
For Each rd As CotizacionRecargoDescuento In cot97756.RecargosDescuentos
Dim nuevoRD As New CotizacionRecargoDescuento With {
.Linea = rd.Linea,
.Monto = rd.Monto,
.Nombre = rd.Nombre,
.Porcentaje = rd.Porcentaje,
.TipoRecargoDescuento = rd.TipoRecargoDescuento
}
nuevoRecargosDescuentos.Add(nuevoRD)
Next
nuevaCotizacion.RecargosDescuentos = nuevoRecargosDescuentos.ToArray()
' Creo un nuevo arreglo con la cantidad de elementos a contener.
nuevoTasas = New List(Of CotizacionTasa)(cot97756.Tasas.Length)
For Each t As CotizacionTasa In cot97756.Tasas
Dim nuevoT As New CotizacionTasa With {
.IDMoneda = t.IDMoneda,
.Tasa = t.Tasa
}
nuevoTasas.Add(nuevoT)
Next
nuevaCotizacion.Tasas = nuevoTasas.ToArray()
ws.GrabaCotizacion(sesion, nuevaCotizacion)
' CAMBIOS DE ESTADO
ws.CambiaEstadoCotizacion(sesion, cot97757, EstadoCotizacion.RECHAZADA)
ws.CambiaEstadoCotizacion(sesion, cot97758, EstadoCotizacion.PENDIENTE)
' CONSULTAS VARIAS
Console.WriteLine("CONSULTA ESTADO RECHAZADO.")
cotizaciones = ws.GetCotizaciones(sesion, EstadoCotizacion.RECHAZADA, Nothing, Nothing, Nothing, Nothing, Nothing)
If cotizaciones.Length = 0 Then
Console.WriteLine("No se han encontrado cotizaciones.")
Else
For Each cotizacion In cotizaciones
Console.WriteLine("cotizacion #{0} para el cliente {1} por un monto de ${2}.", cotizacion.Numero, cotizacion.IDFichaCliente, cotizacion.Total)
Next
End If
Console.WriteLine("CONSULTA FECHA COTIZACION.")
cotizaciones = ws.GetCotizaciones(sesion, Nothing, Nothing, Nothing, "2009-10-07", Nothing, Nothing)
If cotizaciones.Length = 0 Then
Console.WriteLine("No se han encontrado cotizaciones.")
Else
For Each cotizacion In cotizaciones
Console.WriteLine("cotizacion #{0} para el cliente {1} por un monto de ${2}.", cotizacion.Numero, cotizacion.IDFichaCliente, cotizacion.Total)
Next
End If
Console.WriteLine("CONSULTA NUMERO COTIZACION.")
cotizaciones = ws.GetCotizaciones(sesion, Nothing, 94084, Nothing, Nothing, Nothing, Nothing)
If cotizaciones.Length = 0 Then
Console.WriteLine("No se han encontrado cotizaciones.")
Else
For Each cotizacion In cotizaciones
Console.WriteLine("cotizacion #{0} para el cliente {1} por un monto de ${2}.", cotizacion.Numero, cotizacion.IDFichaCliente, cotizacion.Total)
Next
End If
ws.Logout(sesion)
Catch ex As Exception
Console.WriteLine("Ha ocurrido el siguiente error:")
Console.WriteLine(ex.Message)
Finally
If ws.State = CommunicationState.Opened Then ws.Close()
ws = Nothing
sesion = Nothing
End Try |