예제 #1
0
        public IGuiaFacturaDetalle AddFacturaDetalle()
        {
            GuiaFacturaDetalle guiaFactuDeta = new GuiaFacturaDetalle();

            detallesFactu.Add(guiaFactuDeta);
            return((IGuiaFacturaDetalle)guiaFactuDeta);
        }
        public bool EmitirGuiaUnidadLogistica(SqlTransaction _transaccion, IUsuarios usuario, bool validarStock)
        {
            bool manejarTransaccionEnElMetodo = false;

            System.Data.SqlClient.SqlTransaction transaccion;
            System.Data.SqlClient.SqlConnection  conexion = new System.Data.SqlClient.SqlConnection();
            if (_transaccion == null)
            {
                manejarTransaccionEnElMetodo = true;
                string connectionString = Config.Conexion.StringConexion;
                conexion.ConnectionString = connectionString;
                conexion.Open();
                transaccion = conexion.BeginTransaction();
            }
            else
            {
                transaccion = _transaccion;
            }

            try
            {
                //Agencia ag = new Agencia();
                //ag.AgenciaID = AgenciaOrigenID;
                //ag.CargarDatosCAIParaTipoGuiaFactura("X");
                //NumeroCAI = ag.NumeroCAI;
                NumeroCAI        = string.Empty;
                FechaEmision     = DateTime.Now;
                UsuarioID        = usuario.UsuarioID;
                ImporteTotalGuia = 0;
                Observaciones    = this.SetObservaciones();

                ParametroUNegocio parametro = new ParametroUNegocio();
                parametro.UnidadNegocioID = this.UnidadNegocioID;
                parametro.Parametro       = SisPack.Parametro.ClienteGuiaRendicion;
                parametro.Consultar();

                if (parametro.ValorString == null)
                {
                    transaccion.Rollback();
                    return(false);
                }
                base.FechaDespacho  = DateTime.Now;
                DestinatarioCliente = Convert.ToInt32(parametro.ValorString);
                //Germán 16/06/2016 Problema en la emisión de guía unidad logística
                base.EmpresaFacturacionID = 1;

                if (base.Emitir(transaccion, usuario))
                {
                    guiasUnidadesLogisticas.GuiaID         = this.GuiaID;
                    guiasUnidadesLogisticas.AgenciaUsuaria = this.AgenciaOrigenID;
                    this.guiasUnidadesLogisticas.Guardar(transaccion, usuario, validarStock);
                }

                GuiaFacturaDetalle detalle = new GuiaFacturaDetalle();
                detalle.AgenciaOrigenID = this.AgenciaOrigenID;
                detalle.CantidadBultos  = 0;
                detalle.GuiaID          = this.GuiaID;

                parametro.Parametro = SisPack.Parametro.UnidadVentaUnidadLogistica;
                parametro.Consultar();
                if (parametro.ValorString == null)
                {
                    transaccion.Rollback();
                    return(false);
                }
                detalle.UnidadVentaID = Convert.ToInt32(parametro.ValorString);
                if (!detalle.Guardar(transaccion))
                {
                    transaccion.Rollback();
                    return(false);
                }

                // Si es un pedido de devolucion.
                if (EsPedidoDevolucion)
                {
                    DevolverGuiaUnidadLogistica(usuario, transaccion);
                }

                if (manejarTransaccionEnElMetodo)
                {
                    transaccion.Commit();
                    return(true);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                if (manejarTransaccionEnElMetodo)
                {
                    transaccion.Rollback();
                }
                throw (ex);
            }
            finally
            {
                if (manejarTransaccionEnElMetodo)
                {
                    conexion.Close();
                }
            }
        }