Exemple #1
0
        /// <summary>
        /// Genera la factura para las salidas de ganado en transito venta
        /// </summary>
        /// <param name="folio">el folio que se acava de registrar actualmente</param>
        /// <param name="organizacionId">Organizacion del usuario</param>
        /// <param name="activo">El SP valida que activo (Venta) sea igual a true</param>
        /// <returns></returns>
        internal object SalidaGanadoTransito_ObtenerDatosFactura(int folio, int organizacionId, bool activo)
        {
            FacturaInfo factura;
            try
            {
                Logger.Info();

                var loteSacrificioDal = new SalidaGanadoEnTransitoDAL();
                factura = loteSacrificioDal.SalidaGanadoTransito_ObtenerDatosFactura(folio, activo);
                if (factura != null)
                {
                    //Mandar crear la factura
                    var facturaSalidaVentaTransito = ObtenerDatosDeFacturacionSalidaVentaTransito(factura, organizacionId);
                    GenerarFactura(facturaSalidaVentaTransito, organizacionId);
                }
            }
            catch (ExcepcionServicio)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return factura;
        }
 /// <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);
     }
 }
Exemple #3
0
 /// <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>
        /// 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);
            }
        }