/// <summary> /// Metodo que crear una interfaceSalida /// </summary> /// <param name="interfaceSalidaInfo"></param> public void GuardarInterfaceSalida(InterfaceSalidaInfo interfaceSalidaInfo) { try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); interfaceSalidaBL.GuardarInterfaceSalida(interfaceSalidaInfo); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una Interface de Salida por SalidaID y OrganizacionID /// </summary> /// <param name="entradaGanado"></param> /// <returns></returns> public EntradaGanadoCosteoInfo ObtenerPorSalidaOrganizacion(EntradaGanadoInfo entradaGanado) { EntradaGanadoCosteoInfo entradaGanadoCosteoInfo; try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); entradaGanadoCosteoInfo = interfaceSalidaBL.ObtenerPorSalidaOrganizacion(entradaGanado); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(entradaGanadoCosteoInfo); }
/// <summary> /// Obtiene una Lista de Interface de Salida /// </summary> /// <returns></returns> public IList <InterfaceSalidaInfo> ObtenerTodos() { IList <InterfaceSalidaInfo> interfacesSalidaInfo; try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); interfacesSalidaInfo = interfaceSalidaBL.ObtenerTodos(); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(interfacesSalidaInfo); }
/// <summary> /// Obtiene una Interface de Salida por Id /// </summary> /// <param name="salidaID"></param> /// <param name="organizacionID"></param> /// <returns></returns> public InterfaceSalidaInfo ObtenerPorID(int salidaID, int organizacionID) { InterfaceSalidaInfo interfaceSalidaInfo; try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); interfaceSalidaInfo = interfaceSalidaBL.ObtenerPorID(salidaID, organizacionID); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(interfaceSalidaInfo); }
/// <summary> /// Obtiene una Interface de Salida por Id /// </summary> /// <param name="salidaID"></param> /// <param name="organizacionID"></param> /// <param name="organizacioOrigenID"></param> /// <returns></returns> public int ObtenerPorEmbarque(int salidaID, int organizacionID, int organizacioOrigenID) { int resultado; try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); resultado = interfaceSalidaBL.ObtenerPorEmbarque(salidaID, organizacionID, organizacioOrigenID); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
public Dictionary <int, decimal> ObtenerCostoFleteProrrateado(EntradaGanadoInfo entradaGanado, List <EntradaGanadoCostoInfo> listaCostosEmbarque, List <EntradaGanadoInfo> listaCompraDirecta) { Dictionary <int, decimal> importesProrrateados; try { Logger.Info(); var interfaceSalidaBL = new InterfaceSalidaBL(); importesProrrateados = interfaceSalidaBL.ObtenerCostoFleteProrrateado(entradaGanado, listaCostosEmbarque, listaCompraDirecta); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(importesProrrateados); }
/// <summary> /// Metodo para armar los objetos para generar poliza /// </summary> /// <param name="datosPoliza">Objeto salidaGanadotransitoInfo</param> /// <returns>poliza</returns> public override IList <PolizaInfo> GeneraPoliza(object datosPoliza) { IList <PolizaInfo> polizaSalida = new List <PolizaInfo>(); var noLinea = 1; var costosPl = new CostoPL(); var cliente = new ClientePL(); var cuentasSap = ObtenerCuentasSAP(); var interfaceBl = new InterfaceSalidaBL(); var parOrganizacion = new ParametroOrganizacionBL(); var parametroCentro = new ParametroOrganizacionInfo(); var input = (SalidaGanadoEnTransitoInfo)datosPoliza; var costosClaves = costosPl.ObtenerTodos(EstatusEnum.Activo); var costoAbono = new CostoInfo { ClaveContable = string.Empty }; var costoGanado = input.Costos.FirstOrDefault(x => x.CostoID == Costo.CostoGanado.GetHashCode()); var claveCuenta = parOrganizacion.ObtenerPorOrganizacionIDClaveParametro(input.OrganizacionID, ParametrosEnum.CTAFALTANTESOBRANTE.ToString()); ClaveContableInfo clavecontablecargo; detalles = input.DetallesSalida; datos = obtenerDatosPolizaSalidaPorVenta(input); input.Cliente = cliente.ObtenerPorID(input.Cliente.ClienteID); //la var datos debe contener datos para poder acceder a su valor en la propiedad PostFijoRef3 var ref3 = Ref3(input); var archivoFolio = ArchivoFolio(input); #region linea1(+) Proveedor var linea1 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea); linea1.Importe = input.Importe.ToString("N", CultureInfo.InvariantCulture); linea1.Cliente = input.Cliente.CodigoSAP; //linea1.Cuenta = input.Cliente.CodigoSAP; polizaSalida.Add(linea1); noLinea++; #endregion #region linea2(-) Beneficiario var linea2 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea); //linea2.Cliente = input.Cliente.CodigoSAP; linea2.Importe = "-" + input.Importe.ToString("N", CultureInfo.InvariantCulture); var claveContableAbono = interfaceBl.ObtenerCuentaInventario(costoAbono, input.OrganizacionID, ClaveCuenta.CuentaBeneficioInventario); if (claveContableAbono != null) { var cuentaSap = cuentasSap.FirstOrDefault(clave => clave.CuentaSAP == claveContableAbono.Valor); claveContableAbono.Descripcion = cuentaSap == null ? string.Empty : cuentaSap.Descripcion; } else { claveContableAbono = new ClaveContableInfo { Valor = string.Empty }; } var beneficio = false; if (claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroBeneficio)) { parametroCentro = ObtenerParametroOrganizacionPorClave(input.OrganizacionID, ParametrosEnum.CTACENTROBENEFICIOENG.ToString()); if (parametroCentro == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE BENEFICIO NO CONFIGURADO")); } beneficio = true; } else { if (claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroCosto) || claveContableAbono.Valor.StartsWith(PrefijoCuentaCentroGasto)) { parametroCentro = ObtenerParametroOrganizacionPorClave(input.OrganizacionID, ParametrosEnum.CTACENTROCOSTOENG.ToString()); if (parametroCentro == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE BENEFICIO NO CONFIGURADO")); } } } if (beneficio) { linea2.CentroBeneficio = parametroCentro.Valor; } else { linea2.CentroCosto = parametroCentro.Valor; } linea2.Cuenta = claveContableAbono.Valor; polizaSalida.Add(linea2); noLinea++; #endregion #region linea3 cargo a cuenta costo ganado(-) //se elimino esta linea #endregion #region linea4 cargo a costo corral(-) if (costoGanado == null) { return(polizaSalida); } var linea4 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea); linea4.Cuenta = claveCuenta.Valor; if (claveCuenta.Valor.Substring(0, 4) == "5001") { linea4.CentroCosto = datos.ParametroOrganizacionValor; } var importeCostos = input.DetallesSalida.Sum(costo => costo.ImporteCosto); linea4.Importe = "-" + importeCostos.ToString(CultureInfo.InvariantCulture); polizaSalida.Add(linea4); noLinea++; #endregion #region linea5 cargoACuentaResultados (-)(importe total) var linea5 = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea); if (claveCuenta.Valor.Substring(0, 4) == "5001") { linea5.CentroCosto = datos.ParametroOrganizacionValor; } var salidaVentaTransito = input.DetallesSalida.FirstOrDefault(detalle => detalle.CostoId == Costo.CostoGanado.GetHashCode()); if (salidaVentaTransito != null) { linea5.Importe = salidaVentaTransito.ImporteCosto.ToString(CultureInfo.InvariantCulture); } costos = ObtenerCostos(); var firstOrDefault = costos.FirstOrDefault(x => x.CostoID == costoGanado.CostoID); if (firstOrDefault != null) { costoAbono.ClaveContable = firstOrDefault.ClaveContable; clavecontablecargo = ObtenerCuentaInventario(costoAbono, input.OrganizacionID, TipoPoliza.PolizaMuerteTransito); if (clavecontablecargo != null) { linea5.Cuenta = clavecontablecargo.Valor; } } polizaSalida.Add(linea5); noLinea++; #endregion #region linea6 abono a cuenta Resultados a la misma cuenta que el punto anterior en foreach var linea6 = new List <PolizaInfo>(); foreach (var costoCargo in input.DetallesSalida.SkipWhile(costo => costo.CostoId == Costo.CostoGanado.GetHashCode())) { var temp = InicializarPolizaInfo(input, ref3, archivoFolio, noLinea); temp.Importe = costoCargo.ImporteCosto.ToString(CultureInfo.InvariantCulture); var claveCosto = costosClaves.FirstOrDefault(x => x.CostoID == costoCargo.CostoId); if (claveCosto != null) { costoAbono.ClaveContable = claveCosto.ClaveContable; clavecontablecargo = ObtenerCuentaInventario(costoAbono, input.OrganizacionID, TipoPoliza.PolizaMuerteTransito); if (clavecontablecargo != null) { temp.Cuenta = clavecontablecargo.Valor; } } if (claveCuenta.Valor.Substring(0, 4) == "5001") { temp.CentroCosto = datos.ParametroOrganizacionValor; } linea6.Add(temp); noLinea++; } foreach (var polizaItem in linea6) { polizaSalida.Add(polizaItem); } #endregion return(polizaSalida); }