/// <summary> ///Calcula el importe para cada costo del corral /// </summary> /// <param name="totalCabezas"></param> public void ActualizarDetalles(SalidaGanadoEnTransitoInfo Contexto, int totalCabezas) { SalidaGanadoEnTransitoDetalleInfo detalle; try { Contexto.TotalCabezasDuranteMuerte = totalCabezas; Contexto.DetallesSalida = new List <SalidaGanadoEnTransitoDetalleInfo>(); foreach (var costo in Contexto.Costos) { detalle = new SalidaGanadoEnTransitoDetalleInfo { Activo = EstatusEnum.Activo, CostoId = costo.CostoID, //calcula el importe calculando el costo promedio unitario de la res y multiplicando por las cabezas que se daran salida: ImporteCosto = Math.Round(((costo.Importe / totalCabezas) * Contexto.NumCabezas), 2), SalidaGanadoTransitoId = Contexto.SalidaGanadoTransitoID, UsuarioCreacionID = Contexto.UsuarioCreacionID }; Contexto.DetallesSalida.Add(detalle); } } catch (Exception ex) { Logger.Error(ex); throw new Exception(ex.Message, ex.InnerException); } }
/// <summary> /// Metodo que inicializa las polizas con datos generales apra cada linea /// </summary> /// <param name="input">SalidaGanadoEnTransitoInfo</param> /// <param name="ref3">StringBuilder</param> /// <param name="archivoFolio">StringBuilder</param> /// <param name="noLinea">Numero de linea</param> /// <returns>linea de la poliza inicializada</returns> private PolizaInfo InicializarPolizaInfo(SalidaGanadoEnTransitoInfo input, StringBuilder ref3, StringBuilder archivoFolio, int noLinea) { var lista = new PolizaInfo { FechaCreacion = DateTime.Now, OrganizacionID = input.OrganizacionID, UsuarioCreacionID = input.UsuarioCreacionID, NumeroReferencia = input.Folio.ToString(CultureInfo.InvariantCulture), FechaDocumento = input.Fecha.ToString("yyyyMMdd"), ClaseDocumento = datos.PostFijoRef3, Sociedad = datos.Sociedad, Moneda = MONEDA, TipoCambio = TIPOCAMBIO, TextoDocumento = datos.TipoPolizaDescripcion, Mes = input.FechaCreacion.Month.ToString(CultureInfo.InvariantCulture), TextoAsignado = input.Folio.ToString(CultureInfo.InvariantCulture), Concepto = string.Format("VT-{0} {1} CABEZAS {2} kgs", input.Folio, input.NumCabezas, input.Kilos), Division = datos.Division, BusAct = BUSACT, Periodo = input.FechaCreacion.Year.ToString(CultureInfo.InvariantCulture), NumeroLinea = noLinea.ToString(CultureInfo.InvariantCulture), Referencia1 = input.NumCabezas.ToString(CultureInfo.InvariantCulture), Referencia3 = ref3.ToString(), FechaImpuesto = input.Fecha.ToString("yyyyMMdd"), ImpuestoRetencion = 0, ImpuestoIva = 0.ToString(CultureInfo.InvariantCulture), ArchivoFolio = archivoFolio.ToString(), Segmento = "S" + datos.Sociedad, FechaContabilidad = input.Fecha.ToString("yyyyMMdd"), }; return(lista); }
/// <summary> /// /registra la salida de ganado y sus detalles /// </summary> /// <param name="info">salida de ganado en transito que se registrara</param> internal void GuardarSalidaEnTransito(SalidaGanadoEnTransitoInfo info) { try { Logger.Info(); info.FechaCreacion = DateTime.Now; Dictionary <string, object> parameters = AuxSalidaGanadoEnTransitoDAL.ObtenerParametrosCrear_Salida(info); Create("SalidaGanadoTransito_Guardar", parameters); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Inicializa el contexto /// </summary> private void InicializaContexto() { Contexto = new SalidaGanadoEnTransitoInfo { LoteID = 0, Cliente = new ClienteInfo(), UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(), OrganizacionID = AuxConfiguracion.ObtenerOrganizacionUsuario() }; }
/// <summary> /// Genera los parametros para la consulta que trae los datos faltantes para la generacion de la poliza /// </summary> /// <param name="input">Objeto que lleva el folio y muerte(activo)</param> /// <returns></returns> DatosPolizaSalidaGanadoTransitoInfo obtenerDatosPolizaSalidaPorVenta(SalidaGanadoEnTransitoInfo input) { try { var salida = new SalidaGanadoEnTransitoDAL(); var result = salida.ObtenerDatosPolizaSalidaPorMuerte(input); return(result); } catch (Exception ex) { Logger.Error(ex); return(new DatosPolizaSalidaGanadoTransitoInfo()); } }
/// <summary> /// consulta los datos faltantes para la generacion de la poliza de salida por muerte en transito /// </summary> /// <param name="input">Salida de ganado en transito al que le buscaran los datos faltantes para la generacion de la poliza</param> /// <returns>Regresa los datos faltantes para la poliza de salida de ganado en transito por muerte</returns> DatosPolizaSalidaGanadoTransitoInfo ObtenerDatosPolizaSalidaPorMuerte(SalidaGanadoEnTransitoInfo input) { try { var salida = new SalidaGanadoEnTransitoDAL(); var result = salida.ObtenerDatosPolizaSalidaPorMuerte(input); return(result); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private void GeneraLineasDetalle(SalidaGanadoEnTransitoInfo salidaMuerte) { try { //salidaMuerte.LoteID; //var corralOrganizacion = CorralBL.ObtenerCorralesPorOrganizacionID(salidaMuerte.OrganizacionID).FirstOrDefault(corral => corral.LoteID == salidaMuerte.LoteID); var corralDal = new CorralDAL(); var loteDal = new LoteDAL(); //corralMuerte = corralDal.ObtenerPorId(corralOrganizacion.CorralID); loteMuerte = loteDal.ObtenerPorID(salidaMuerte.LoteID); corralMuerte = corralDal.ObtenerPorId(salidaMuerte.CorralID); var entradaGanado = new EntradaGanadoTransitoInfo(); if (loteMuerte != null) { entradaGanado.Lote = loteMuerte; } PolizaModel.Detalle = new List <PolizaDetalleModel>(); { //var pesoMuertePromedio = corralOrganizacion.PesoPromedio; var detalleModel = new PolizaDetalleModel { CantidadCabezas = salidaMuerte.NumCabezas.ToString(CultureInfo.InvariantCulture), TipoGanado = CONCEPTO, PesoTotal = salidaMuerte.Kilos.ToString("N"), PesoPromedio = (salidaMuerte.Kilos / salidaMuerte.NumCabezas).ToString("N"), //PrecioPromedio = Math.Abs(salidaMuerte.Importe / salidaMuerte.NumCabezas).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), //PrecioPromedio = Math.Abs(salidaMuerte.Importe / corralOrganizacion.PesoPromedio/salidaMuerte.NumCabezas).ToString("N2", CultureInfo.CurrentCulture).Replace("$", string.Empty), PrecioPromedio = (salidaMuerte.Importe / (salidaMuerte.Kilos / salidaMuerte.NumCabezas) / salidaMuerte.NumCabezas).ToString("N2", CultureInfo.CurrentCulture).Replace("$", string.Empty), //precio promedio por kilo=costo total/Peso total //precio promedio kilo*peso total*num cabezas=importe ImportePromedio = (salidaMuerte.Importe).ToString("N2", CultureInfo.CurrentCulture), //estaba en :"N2" Corral = corralMuerte.Codigo, Lote = entradaGanado.Lote.Lote }; PolizaModel.Detalle.Add(detalleModel); } polizaImpresion.GenerarDetalles("Detalle"); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo que arma el campo archivofolio en la poliza /// </summary> /// <param name="input">SalidaGanadoEnTransitoInfo</param> /// <returns>archivoFolio (StringBuilder)</returns> private StringBuilder ArchivoFolio(SalidaGanadoEnTransitoInfo input) { /* * esto sirve para el armado del segmento <archifolio> que se usa en cada linea y debe ser el mismo para todas las lineas, * se arma poniento el valor dijo "P01" + la decha del documento en formato año/mes/dia + el minuto + el segundo y un numero aleatorio del 1 al 9 * Ejem: "P01-20160303-54-11-2.xml" */ var archivoFolio = new StringBuilder(); archivoFolio.Append("P01"); archivoFolio.Append(input.Fecha.ToString("yyyyMMdd")); archivoFolio.Append(DateTime.Now.Minute); archivoFolio.Append(DateTime.Now.Second); archivoFolio.Append(new Random(1).Next(1, 9)); return(archivoFolio); }
/// <summary> /// Genera los parametros para la consulta que trae los datos faltantes para la generacion de la poliza /// </summary> /// <param name="salida">Salida de ganado en transito que tiene el folio de salida de ganado y si es salida por muerte o por venta </param> /// <returns>Regresa la lista de parametros para obtener los datos faltantes para la poliza</returns> public static Dictionary <string, object> ObtenerParametrosObtenerPoliza(SalidaGanadoEnTransitoInfo salida) { try { var parametros = new Dictionary <string, object> { { "@Folio", salida.Folio }, { "@Muerte", salida.Muerte } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Registra una salida de ganado en transito, genera la poliza y factura correspondiente e imprime el archivo de poliza en formato PDF /// </summary> /// <param name="input">salida de ganado en transito que se registrara</param> /// <param name="registroExitoso">indica si se completo el registro de la salida de ganado en transito</param> /// <returns>Regresa los datos que conformaran el archivo impreso en PDF</returns> public MemoryStream GuardarSalida(SalidaGanadoEnTransitoInfo input, out bool registroExitoso) { try { var salida = new SalidaGanadoEnTransitoDAL(); var ms = new MemoryStream(); registroExitoso = false; using (var transaction = new TransactionScope()) //agrupa el proceso siguiente como una sola operacion { salida.GuardarSalida(ref input); //registrar la salida de ganado en transito y actualiza el folio generado para la salida salida.ActualizarEntradas(input); //actualiza las entradas de ganado en transito, y del lote correspondiente if (input.Muerte) // si es salida de ganado en transito por muerte { var polizaSalida = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaMuerteEnTransito); var polizaDal = new PolizaDAL(); var polizaSalidaMuerteTransito = polizaSalida.GeneraPoliza(input); //genera el XML de la poliza //genera el XML de la poliza de salida de ganado por muerte input.PolizaID = polizaDal.Crear(polizaSalidaMuerteTransito, TipoPoliza.SalidaMuerteEnTransito); //almacena la poliza generada en la base de datos ms = polizaSalida.ImprimePoliza(input, polizaSalidaMuerteTransito); //genera el archivo en formato PDF de la poliza generada registroExitoso = true; //indica que se completo la operacion exitosamente } else if (input.Venta) //en caso de ser una salida de ganado en transito por venta { var polizaSalida = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaVentaEnTransito); var polizaDal = new PolizaDAL(); var poliza = polizaSalida.GeneraPoliza(input); //genera el XML de la poliza de salida de ganado por venta input.PolizaID = polizaDal.Crear(poliza, TipoPoliza.SalidaVentaEnTransito); //almacena la poliza generada en la base de datos ms = polizaSalida.ImprimePoliza(input, poliza); //genera el archivo en formato PDF de la poliza generada var generarFactura = new FacturaBL(); generarFactura.SalidaGanadoTransito_ObtenerDatosFactura(input.Folio, input.OrganizacionID, true); //genera la factura de la salida de ganado en transito registroExitoso = true; //indica que se completo la operacion exitosamente } salida.AsignarPolizaRegistrada(input); //asigna la poliza generada a la salida de ganado en transito registrada transaction.Complete(); //da por concluido el proceso de Salida de ganado en transito por venta o muerte return(ms); //regresa los datos del archivo PDF que se imprimiran } } catch (Exception ex) { Logger.Error(ex); registroExitoso = false; throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo que arma el campo ref3 de la poliza /// </summary> /// <param name="input">SalidaGanadoEnTransitoInfo</param> /// <returns>ref3 (StringBuilder)</returns> private StringBuilder Ref3(SalidaGanadoEnTransitoInfo input) { /* * esto sirve para el armado del segmento <ref3> que se usa en cada linea y debe ser el mismo para todas * se arma poniento inicialmente 03 + 10 espacios en blanco + 1 num aleatorio del 10 al 20 + 1 numero aleatorio del 30 al 40 + * el milisegundo en que se está generando el documento y el posfijo configurado en el campo “PostFijoRef3” TB TipoPoliza. * Ejem: "03 1211933561GF" */ var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append(Convert.ToString(input.Folio).PadLeft(10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(DateTime.Now.Millisecond.ToString(CultureInfo.InvariantCulture)); ref3.Append(datos.PostFijoRef3); return(ref3); }
/// <summary> /// Genera un nodo generico de una salida de ganado en transito por muerte /// </summary> /// <param name="input">Salida de ganado en transito al cual se le generara el nodo para la poliza</param> /// <param name="noLinea">Numero de linea correspondiente al nodo</param> /// <param name="ref3"></param> /// <param name="archivoFolio">Folio del archivo de la poliza de salida de ganado en transito</param> /// <returns>Regresa un nodo de poliza de salida de ganado en transito parcialmente inicializado</returns> PolizaInfo GenerarNodoPlantillaPolizaMuerteTransito(SalidaGanadoEnTransitoInfo input, int noLinea, string ref3, string archivoFolio) { try { var result = new PolizaInfo { OrganizacionID = input.OrganizacionID, UsuarioCreacionID = input.UsuarioCreacionID, NumeroReferencia = input.Folio.ToString(CultureInfo.InvariantCulture), FechaCreacion = DateTime.Now, FechaDocumento = input.Fecha.ToString("yyyyMMdd"), FechaContabilidad = input.Fecha.ToString("yyyyMMdd"), ClaseDocumento = datos.PostFijoRef3, Sociedad = datos.Sociedad, Moneda = MONEDA, TipoCambio = TIPOCAMBIO, TextoDocumento = datos.TipoPolizaDescripcion, Mes = input.FechaCreacion.Month.ToString(CultureInfo.InvariantCulture), TextoAsignado = input.Folio.ToString(CultureInfo.InvariantCulture), Concepto = string.Format("MT-{0} {1} CABEZAS {2} kgs", input.Folio, input.NumCabezas, input.Kilos), Division = datos.Division, BusAct = BUSACT, Periodo = input.FechaCreacion.Year.ToString(CultureInfo.InvariantCulture), NumeroLinea = noLinea.ToString(CultureInfo.InvariantCulture), Referencia1 = input.NumCabezas.ToString(CultureInfo.InvariantCulture), Referencia3 = ref3, FechaImpuesto = input.Fecha.ToString("yyyyMMdd"), ImpuestoRetencion = 0, ImpuestoIva = 0.ToString(CultureInfo.InvariantCulture), ArchivoFolio = archivoFolio, Segmento = "S" + datos.Sociedad }; return(result); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Genera los parametros para un registro de una salida ya sea por muerte o por venta /// </summary> /// <param name="info">Salida de ganado al que se le generaran los parametros para registro</param> /// <returns>Regresa la lista de parametros para el registro</returns> internal static Dictionary <string, object> ObtenerParametrosCrear_Salida(SalidaGanadoEnTransitoInfo info) { try { Logger.Info(); //genera el xml de los detalles: var xml = new XElement("ROOT", from detalles in info.DetallesSalida select new XElement("SalidaGanadoTransitoDetalle", new XElement("CostoID", detalles.CostoId), new XElement("ImporteCosto", detalles.ImporteCosto))); var parametros = new Dictionary <string, object> { { "@OrganizacionId", info.OrganizacionID }, { "@LoteId", info.LoteID }, { "@NumCabezas", info.NumCabezas }, { "@Venta", info.Venta }, { "@Muerte", info.Muerte }, { "@Fecha", info.Fecha }, { "@Importe", info.Importe }, { "@ClienteID", info.Cliente.ClienteID }, { "@Kilos", info.Kilos }, { "@Folio", info.Folio }, { "@FolioFactura", info.FolioFactura }, { "@PolizaId", info.PolizaID }, { "@UsuarioCreacionId", info.UsuarioCreacionID }, { "@Observaciones", info.Observaciones }, { "@Detalles", xml.ToString() }, }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Actualiza los importes,cantidades de los registros de entrada de ganado en transito correspondientes a la salida /// </summary> /// <param name="info">salida de ganado en transito en base al cual se actualizaran las tablas de entradas de ganado en transito y del lote</param> /// <returns>Regresa un true si se logro actualizar exitosamente las entradas de ganado en transito y del lote</returns> internal bool ActualizarEntradas(SalidaGanadoEnTransitoInfo info) { try { Logger.Info(); info.FechaCreacion = DateTime.Now; var importes = new List <CostoInfo>(); for (int i = 0; i < info.DetallesSalida.Count; i++) { var temp = new CostoInfo { CostoID = info.DetallesSalida[i].CostoId, ImporteCosto = info.Costos[i].Importe - info.DetallesSalida[i].ImporteCosto }; importes.Add(temp); } Dictionary <string, object> parameters = AuxSalidaGanadoEnTransitoDAL.ObtenerParametrosActualizarEntradas(info, importes); Update("SalidaGanadoTransito_ActualizarEntradasGanadoTransito", parameters); return(true); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// metodo que genera el encabezado /// </summary> /// <param name="salidaVenta">objeto de la venta</param> private void GeneraLineasDetalle(SalidaGanadoEnTransitoInfo salidaVenta) { //var corralOrganizacion = CorralBL.ObtenerCorralesPorOrganizacionID(salidaVenta.OrganizacionID).FirstOrDefault(corral => corral.LoteID == salidaVenta.LoteID); var corralDal = new CorralDAL(); var loteDal = new LoteDAL(); corralVenta = corralDal.ObtenerPorId(salidaVenta.CorralID); loteVenta = loteDal.ObtenerPorID(salidaVenta.LoteID); var entradaGanado = new EntradaGanadoTransitoInfo(); if (loteVenta != null) { entradaGanado.Lote = loteVenta; } PolizaModel.Detalle = new List <PolizaDetalleModel>(); { var detalleModel = new PolizaDetalleModel { CantidadCabezas = salidaVenta.NumCabezas.ToString("F0"), TipoGanado = CONCEPTO, PesoTotal = (salidaVenta.Kilos).ToString("F0"), PesoPromedio = (salidaVenta.Kilos / salidaVenta.NumCabezas).ToString("F0"), PrecioPromedio = (salidaVenta.DetallesSalida.Sum(costo => costo.ImporteCosto) / (salidaVenta.Kilos / salidaVenta.NumCabezas) / salidaVenta.NumCabezas).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), ImportePromedio = Math.Abs(salidaVenta.DetallesSalida.Sum(costo => costo.ImporteCosto)).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), Corral = corralVenta.Codigo, PrecioVenta = Math.Abs(salidaVenta.Importe / salidaVenta.NumCabezas).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), ImporteVenta = Math.Abs(salidaVenta.Importe).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), Lote = entradaGanado.Lote.Lote }; PolizaModel.Detalle.Add(detalleModel); } polizaImpresion.GenerarDetalles("Detalle"); }
/// <summary> /// Asigna el numero de poliza generada al registro de salida de ganado /// </summary> /// <param name="input">salida de ganado en transito al que se asignara la poliza generada</param> public void AsignarPolizaRegistrada(SalidaGanadoEnTransitoInfo input) { try { Logger.Info(); Dictionary <string, object> parameters = AuxSalidaGanadoEnTransitoDAL.ObtenerParametrosAsignarPolizaSalida(input); Update("SalidaGanadoTransito_ActualizarPoliza", parameters); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
public bool GuardarSalida(ref SalidaGanadoEnTransitoInfo info)//regresa true si el registro y el proceso se completo exitosamente { try { //consulta el folio correspondiente a la salida de ganado var folio = (info.Muerte) ? TipoFolio.SalidaMuerteEnTransito.GetHashCode() : TipoFolio.SalidaVentaEnTransito.GetHashCode(); info.Folio = Folio(info.OrganizacionID, folio); //registra la salida de ganado y sus detalles: GuardarSalidaEnTransito(info); if (info.Venta) { //generar serie de factura y asignar al registro: AsignarSerieFactura(info); } return(true); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// asigna la serie de factura al registro de salida de ganado /// </summary> /// <param name="salida">salida de ganado en transito al que e le asignara la serie de factura correspondiente</param> private void AsignarSerieFactura(SalidaGanadoEnTransitoInfo salida) { try { Logger.Info(); Dictionary <string, object> parameters = AuxSalidaGanadoEnTransitoDAL.ObtenerParametrosAsignarFolioFactura(salida); Update("SalidaGanadoTransitoVenta_GenerarFolioFactura", parameters); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Genera los parametros para la asignacion de folio de factura a la salida de ganado registrada /// </summary> /// <param name="salida">Salida que tiene el folio de salida de ganado que se le asignara el folio de factura</param> /// <returns>Regresa la lista de parametros para asignar el folio de factura a una salida de ganado en transito por venta</returns> public static Dictionary <string, object> ObtenerParametrosAsignarFolioFactura(SalidaGanadoEnTransitoInfo salida) { try { var parametros = new Dictionary <string, object> { { "@FolioSalida", salida.Folio }, { "@OrganizacionID", salida.OrganizacionID } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Genera los parametros para actualizar las tablas de entrada de ganado en transito, entrada de ganado en transito detalle y el lote /// </summary> /// <param name="info">Salida de ganado al que se le generaran los parametros para actualizar las entradas de ganado en transito y el lote /// correspondies a la salida</param> /// <param name="Importes"></param> /// <returns>Regresa la lista de parametros para actualizar las entradas de ganado y el lote correspondientes a la salida de ganado</returns> public static Dictionary <string, object> ObtenerParametrosActualizarEntradas(SalidaGanadoEnTransitoInfo info, List <CostoInfo> Importes) { try{ var xml = new XElement("ROOT", from accion in Importes select new XElement("Importes", new XElement("CostoId", accion.CostoID), new XElement("Importe", accion.ImporteCosto) )); var parametros = new Dictionary <string, object> { { "@EntradaGanadoTransitoID", info.EntradaGanadoTransitoID }, { "@LoteId", info.LoteID }, { "@NumCabezas", info.NumCabezas }, { "@Fecha", info.Fecha }, { "@Importe", info.Importe }, { "@Kilos", info.Kilos }, { "@UsuarioModificacionID", info.UsuarioCreacionID }, { "@Importes", xml.ToString() } //XML DE importes }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// consulta los datos faltantes para generar la poliza(sociedad,Cuenta,etc) /// </summary> /// <param name="salida">salida de ganado en transito de la que se obtendran los datos faltantes para la generacion de la poliza</param> /// <returns>Regresa los datos faltantes para la generacion de la poliza</returns> internal DatosPolizaSalidaGanadoTransitoInfo ObtenerDatosPolizaSalidaPorMuerte(SalidaGanadoEnTransitoInfo salida) { try { Logger.Info(); DatosPolizaSalidaGanadoTransitoInfo result; Dictionary <string, object> parameters = AuxSalidaGanadoEnTransitoDAL.ObtenerParametrosObtenerPoliza(salida); DataSet ds = Retrieve("SalidaGanadoTransito_PolizaSalida", parameters); if (ValidateDataSet(ds)) { result = MapPolizaSalidaGanadoTransitoDAL.ObtenerDatosPoliza(ds); return(result); } return(new DatosPolizaSalidaGanadoTransitoInfo()); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }