internal void CopyValues(PrecioTrayectoInfo source) { if (source == null) { return; } _record.CopyValues(source._base.Record); }
public virtual void UpdateGastos(bool estimated = true) { if (Gastos == null) { return; } _base.GastosGenerales = 0; _base.OtrosGastos = 0; _base.Record.GProvTotal = 0; _base.Record.GNavTotal = 0; _base.Record.GDespTotal = 0; _base.Record.GTransDestTotal = 0; _base.Record.GTransTotal = 0; _base.Record.GProvTotal = Gastos.Where(x => x.ECategoriaGasto == ECategoriaGasto.Stock).Sum(x => x.Total); _base.Record.GNavTotal = Gastos.Where(x => x.ECategoriaGasto == ECategoriaGasto.GeneralesExpediente && x.ETipoAcreedor == ETipoAcreedor.Naviera ).Sum(x => x.Total); _base.Record.GDespTotal = Gastos.Where(x => x.ECategoriaGasto == ECategoriaGasto.GeneralesExpediente && x.ETipoAcreedor == ETipoAcreedor.Despachante ).Sum(x => x.Total); _base.Record.GTransDestTotal = Gastos.Where(x => x.ECategoriaGasto == ECategoriaGasto.GeneralesExpediente && x.ETipoAcreedor == ETipoAcreedor.TransportistaDestino ).Sum(x => x.Total); _base.Record.GTransTotal = Gastos.Where(x => x.ECategoriaGasto == ECategoriaGasto.GeneralesExpediente && x.ETipoAcreedor == ETipoAcreedor.TransportistaOrigen ).Sum(x => x.Total); _base.OtrosGastos += Gastos.Where(x => !new List <ECategoriaGasto> { ECategoriaGasto.Stock, ECategoriaGasto.GeneralesExpediente }.Contains(x.ECategoriaGasto) && x.OidFactura == 0 ).Sum(x => x.Total); _base.OtrosGastosFacturas += Gastos.Where(x => !new List <ECategoriaGasto> { ECategoriaGasto.Stock, ECategoriaGasto.GeneralesExpediente }.Contains(x.ECategoriaGasto) && x.OidFactura != 0 ).Sum(x => x.Total); //Gastos por tipo de acreedor /*foreach (GastoInfo item in Gastos) * { * switch (item.ECategoriaGasto) * { * case ECategoriaGasto.Stock: * _base.Record.GProvTotal += item.Total; * break; * * case ECategoriaGasto.GeneralesExpediente: * * switch (item.ETipoAcreedor) * { * case ETipoAcreedor.Naviera: * _base.Record.GNavTotal += item.Total; * break; * * case ETipoAcreedor.Despachante: * _base.Record.GDespTotal += item.Total; * break; * * case ETipoAcreedor.TransportistaDestino: * _base.Record.GTransTotal += item.Total; * break; * * case ETipoAcreedor.TransportistaOrigen: * _base.Record.GTransDestTotal += item.Total; * break; * } * * break; * * default: * _base.OtrosGastos += item.Total; * break; * } * }*/ //Gasto Estimado Naviera if (GNavTotal == 0 && estimated) { NavieraInfo nav = NavieraInfo.Get(OidNaviera, true); if (nav != null) { PrecioTrayectoInfo precio = nav.PrecioTrayectos.GetByPorts(PuertoOrigen, PuertoDestino); _base.Record.GNavTotal = (precio != null) ? precio.Precio : 0; _base.Record.GNavFac = Resources.Defaults.ESTIMADO; } } //Gasto Estimado Tranporte Origen if (GTransTotal == 0 && estimated) { TransporterInfo tr = TransporterInfo.Get(OidTransOrigen, ETipoAcreedor.TransportistaOrigen, true); if (tr != null) { PrecioOrigenInfo precio = tr.PrecioOrigenes.GetByProvAndPort(OidProveedor, PuertoOrigen); _base.Record.GTransTotal = (precio != null) ? precio.Precio : 0; _base.Record.GTransFac = Resources.Defaults.ESTIMADO; } } //Gasto Estimado Despachante if (GDespTotal == 0 && estimated) { DespachanteInfo des = DespachanteInfo.Get(OidDespachante, false); if (des != null) { //PrecioTrayectoInfo precio = nav.PrecioTrayectos.GetByPorts(PuertoOrigen, PuertoDestino); _base.Record.GDespTotal = 50; //(precio != null) ? precio.Precio : 0; _base.Record.GDespFac = Resources.Defaults.ESTIMADO; } } //Gasto Estimado Transporte Destino if (GTransDestTotal == 0 && estimated) { TransporterInfo tr = TransporterInfo.Get(OidTransDestino, ETipoAcreedor.TransportistaDestino, true); if (tr != null) { PrecioDestinoInfo precio = tr.PrecioDestinos.GetByPort(PuertoDestino); _base.Record.GTransDestTotal = (precio != null) ? precio.Precio : 0; _base.Record.GTransDestFac = Resources.Defaults.ESTIMADO; } } _base.GastosGenerales += GNavTotal + GDespTotal + GTransDestTotal + GTransTotal; }