martes 6 de octubre de 2009

Como pasar valores de un fixture a un viaje en la creacion

No es algo muy comun, que se pida de un fixture pasar los datos a un viaje. por lo general uno lee los datos del mismo contrato, bueno parece que saque el premiado, me pidieron copiar los datos del demurrageRate y despatchRate en los viajes, estos deben ser una copia de los que estan en el fixture, pero si se modifican en el fixture, los del viaje deben mantenerse igual.


Bueno hay una clase que se encarga de vaciar toda la información para el viaje esta clase es la siguiente:
namespace ZeusNet.Core.Model.Domain.Chartering.Fixture{    public class FixtureVoyageLoader : CharterPartyVoyageLoader{}}
y esta en esta ruta ZeusNet.Core.Model\Domain\Chartering\Fixture\FixtureVoyageLoader.cs.

en mi caso yo modifique el siguiente metodo, ya que tenia relacion con los puertos, los DemurrageRate y despatchRate ahora se van a diferenciar por puerto.

protected virtual VoyageItineraryPort CreateVoyagePort(FixtureItineraryPort fixtureport, Voyage voyage){    VoyageItineraryPort voyageItineraryPort = new VoyageItineraryPort();    voyageItineraryPort.Port = fixtureport.Port;    voyageItineraryPort.Heating = fixtureport.Heating;    voyageItineraryPort.TimeZone = (fixtureport.Port != null ? fixtureport.Port.TimeZone : null);    voyageItineraryPort.IdleTime = fixtureport.IdleTime;    voyageItineraryPort.PortExpenses = fixtureport.PortExpenses;    voyageItineraryPort.VoyageInstance = voyage.RealInstance;    voyageItineraryPort.DespatchRate = fixtureport.DespatchRate;    voyageItineraryPort.DemurrageRate= fixtureport.DemurrageRate;    voyage.RealInstance.VoyageItinerary.AddItem(voyageItineraryPort);    if (CommonUtils.AreNullablesEquals(voyageItineraryPort.PreviousPort, fixtureport.PreviousPort) && fixtureport.Distance > 0){        voyageItineraryPort.Distance = fixtureport.Distance;        voyageItineraryPort.RefreshDistance = voyageItineraryPort.IsFirstPort();    }else{        voyageItineraryPort.DistancesManager.RefreshDistance();    }    voyageItineraryPort.VesselSpeed = VesselSpeed.Service;    voyageItineraryPort.ExtraTime = fixtureport.ExtraTime;    return voyageItineraryPort;}

En esta clase esta todo lo que sepasa al viaje. los puertos, las operaciones de los mismos puertos, etc, etc.

--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com