public Decimal AdicionarAlmDocumentos(int ID_EMPLEADO,
            int DOCUMENTO_ORIGEN,
            String TIPO_DOC,
            String ORIGEN,
            String NUMERO_DOCUMENTO,
            DateTime FECHA_DOCUMENTO,
            DateTime FECHA_VENCE,
            int ID_BODEGA_DESTINO,
            Decimal VALOR,
            int CONSECUTIVO_TIPO_DOC,
            String ESTADO,
            String OBSERVACION_JUSTIFICACION,
            Conexion _dato,
            int ID_PROVEEDOR,
            String OBS_AUTORIZACION)
        {
            String sql = null;
            String identificador = null;
            String informacion = null;
            Boolean ejecutar = true;

            tools _tools = new tools();

            sql = "USP_ALM_DOCUMENTOS_ADICIONAR ";

            #region validaciones
            if (ID_EMPLEADO != 0)
            {
                sql += ID_EMPLEADO + ", ";
                informacion += "ID_EMPLEADO= '" + ID_EMPLEADO.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "ID_EMPLEADO= 0, ";
            }

            if (DOCUMENTO_ORIGEN != 0)
            {
                sql += DOCUMENTO_ORIGEN + ", ";
                informacion += "DOCUMENTO_ORIGEN= '" + DOCUMENTO_ORIGEN.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "DOCUMENTO_ORIGEN= 0, ";
            }

            if (!(String.IsNullOrEmpty(TIPO_DOC)))
            {
                sql += "'" + TIPO_DOC + "', ";
                informacion += "TIPO_DOC= '" + TIPO_DOC.ToString() + "', ";
            }
            else
            {
                MensajeError += "El campo TIPO_DOC no puede ser nulo\n";
                ejecutar = false;
            }

            if (!(String.IsNullOrEmpty(ORIGEN)))
            {
                sql += "'" + ORIGEN + "', ";
                informacion += "ORIGEN= '" + ORIGEN.ToString() + "', ";
            }
            else
            {
                sql += "null, ";
                informacion += "ORIGEN= 'null', ";
            }

            if (!(String.IsNullOrEmpty(NUMERO_DOCUMENTO)))
            {
                sql += "'" + NUMERO_DOCUMENTO + "', ";
                informacion += "NUMERO_DOCUMENTO= '" + NUMERO_DOCUMENTO.ToString() + "', ";
            }
            else
            {
                sql += "null, ";
                informacion += "NUMERO_DOCUMENTO= 'null', ";
            }

            if (FECHA_DOCUMENTO != new DateTime())
            {
                sql += "'" + _tools.obtenerStringConFormatoFechaSQLServer(FECHA_DOCUMENTO) + "', ";
                informacion += "FECHA_DOCUMENTO = '" + FECHA_DOCUMENTO.ToString() + "', ";
            }
            else
            {
                MensajeError += "El campo FECHA_DOCUMENTO no puede ser nulo\n";
                ejecutar = false;
            }

            if (FECHA_VENCE != new DateTime())
            {
                sql += "'" + _tools.obtenerStringConFormatoFechaSQLServer(FECHA_VENCE) + "', ";
                informacion += "FECHA_VENCE = '" + FECHA_VENCE.ToString() + "', ";
            }
            else
            {
                sql += "null, ";
                informacion += "FECHA_VENCE= 'null', ";
            }

            if (ID_BODEGA_DESTINO != 0)
            {
                sql += ID_BODEGA_DESTINO + ", ";
                informacion += "ID_BODEGA_DESTINO= '" + ID_BODEGA_DESTINO.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "ID_BODEGA_DESTINO = 0, ";
            }

            if (VALOR != 0)
            {
                sql += _tools.conviertePuntoEnComa(VALOR.ToString()) + ", ";
                informacion += "VALOR= '" + VALOR.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "VALOR = 0, ";
            }

            if (CONSECUTIVO_TIPO_DOC != 0)
            {
                sql += CONSECUTIVO_TIPO_DOC + ", ";
                informacion += "CONSECUTIVO_TIPO_DOC= '" + CONSECUTIVO_TIPO_DOC.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "CONSECUTIVO_TIPO_DOC = 0, ";
            }

            if (!(String.IsNullOrEmpty(ESTADO)))
            {
                sql += "'" + ESTADO + "', ";
                informacion += "ESTADO= '" + ESTADO.ToString() + "', ";
            }
            else
            {
                sql += "null, ";
                informacion += "ESTADO= 'null', ";
            }

            if (!(String.IsNullOrEmpty(OBSERVACION_JUSTIFICACION)))
            {
                sql += "'" + OBSERVACION_JUSTIFICACION + "', ";
                informacion += "OBSERVACION_JUSTIFICACION= '" + OBSERVACION_JUSTIFICACION.ToString() + "', ";
            }
            else
            {
                sql += "null, ";
                informacion += "OBSERVACION_JUSTIFICACION= 'null', ";
            }

            sql += "'" + Usuario + "', ";
            informacion += "USU_CRE = '" + Usuario.ToString() + "', ";

            if (ID_PROVEEDOR != 0)
            {
                sql += ID_PROVEEDOR + ", ";
                informacion += "ID_PROVEEDOR = '" + ID_PROVEEDOR.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "ID_PROVEEDOR = 0, ";
            }

            if (!(String.IsNullOrEmpty(OBS_AUTORIZACION)))
            {
                sql += "'" + OBS_AUTORIZACION + "'";
                informacion += "OBS_AUTORIZACION= '" + OBS_AUTORIZACION + "'";
            }
            else
            {
                sql += "null";
                informacion += "OBSERVACION_JUSTIFICACION= 'null'";
            }

            #endregion validaciones

            if (ejecutar)
            {
                try
                {
                    identificador = _dato.ExecuteScalar(sql);

                    #region auditoria
                    auditoria _auditoria = new auditoria(Empresa);
                    _auditoria.Adicionar(Usuario, tabla.ALM_DOCUMENTOS, tabla.ACCION_ADICIONAR, sql, informacion, _dato);
                    #endregion auditoria
                }
                catch (Exception e)
                {
                    MensajeError = e.Message;
                }
            }

            if (!(String.IsNullOrEmpty(identificador))) return Convert.ToDecimal(identificador);
            else return 0;
        }
        public Boolean ActualizarAlmDocumento(int ID_DOCUMENTO, int ID_EMPLEADO, int DOCUMENTO_ORIGEN, String TIPO_DOC, String ORIGEN, String NUMERO_DOCUMENTO,
            DateTime FECHA_DOCUMENTO, DateTime FECHA_VENCE, int ID_BODEGA_DESTINO, Decimal VALOR, int CONSECUTIVO_TIPO_DOC, String ESTADO,
            String OBSERVACION_JUSTIFICACION, int ID_PROVEEDOR, Conexion conexion)
        {
            Int32 cantidadRegistrosActualizados = 0;
            String sql = null;
            String informacion = null;
            Boolean ejecutar = true;

            tools _tools = new tools();

            sql = "USP_ALM_DOCUMENTOS_ACTUALIZAR ";

            #region validaciones
            if (ID_DOCUMENTO != 0)
            {
                sql += ID_DOCUMENTO + ", ";
                informacion += "ID_DOCUMENTO= '" + ID_DOCUMENTO.ToString() + "', ";
            }
            else
            {
                MensajeError += "El campo ID_DOCUMENTO no puede ser nulo\n";
                ejecutar = false;
            }
            if (ID_EMPLEADO != 0)
            {
                sql += ID_EMPLEADO + ", ";
                informacion += "ID_EMPLEADO= '" + ID_EMPLEADO.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "ID_EMPLEADO= 0, ";
            }
            if (DOCUMENTO_ORIGEN != 0)
            {
                sql += DOCUMENTO_ORIGEN + ", ";
                informacion += "DOCUMENTO_ORIGEN= '" + DOCUMENTO_ORIGEN.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "DOCUMENTO_ORIGEN= 0, ";
            }
            if (!(String.IsNullOrEmpty(TIPO_DOC)))
            {
                sql += "'" + TIPO_DOC + "', ";
                informacion += "TIPO_DOC= '" + TIPO_DOC.ToString() + "', ";
            }
            else
            {
                MensajeError += "El campo TIPO_DOC no puede ser nulo\n";
                ejecutar = false;
            }

            if (!(String.IsNullOrEmpty(ORIGEN)))
            {
                sql += "'" + ORIGEN + "', ";
                informacion += "ORIGEN= '" + ORIGEN.ToString() + "', ";
            }
            else
            {
                sql += "'null', ";
                informacion += "ORIGEN= 'null', ";
            }

            if (!(String.IsNullOrEmpty(NUMERO_DOCUMENTO)))
            {
                sql += "'" + NUMERO_DOCUMENTO + "', ";
                informacion += "NUMERO_DOCUMENTO= '" + NUMERO_DOCUMENTO.ToString() + "', ";
            }
            else
            {
                sql += "'null', ";
                informacion += "NUMERO_DOCUMENTO= 'null', ";
            }
            if (!(String.IsNullOrEmpty(FECHA_DOCUMENTO.ToString())))
            {
                sql += "'" + _tools.obtenerStringConFormatoFechaSQLServer(FECHA_DOCUMENTO) + "', ";
                informacion += "FECHA_DOCUMENTO= '" + FECHA_DOCUMENTO.ToString() + "', ";
            }
            else
            {
                MensajeError += "El campo FECHA_DOCUMENTO no puede ser nulo\n";
                ejecutar = false;
            }

            if (FECHA_VENCE != new DateTime())
            {
                sql += "'" + _tools.obtenerStringConFormatoFechaSQLServer(FECHA_VENCE) + "', ";
                informacion += "FECHA_VENCE= '" + FECHA_VENCE.ToShortDateString() + "', ";
            }
            else
            {
                sql += "null, ";
                informacion += "FECHA_VENCE= 'null', ";
            }
            if (ID_BODEGA_DESTINO != 0)
            {
                sql += ID_BODEGA_DESTINO + ", ";
                informacion += "ID_BODEGA_DESTINO= '" + ID_BODEGA_DESTINO.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "ID_BODEGA_DESTINO = 0, ";
            }

            if (VALOR != 0)
            {
                sql += _tools.conviertePuntoEnComa(VALOR.ToString()) + ", ";
                informacion += "VALOR= '" + VALOR.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "VALOR = 0, ";
            }

            if (CONSECUTIVO_TIPO_DOC != 0)
            {
                sql += CONSECUTIVO_TIPO_DOC + ", ";
                informacion += "CONSECUTIVO_TIPO_DOC= '" + CONSECUTIVO_TIPO_DOC.ToString() + "', ";
            }
            else
            {
                sql += "0, ";
                informacion += "CONSECUTIVO_TIPO_DOC = 0, ";
            }
            if (!(String.IsNullOrEmpty(ESTADO)))
            {
                sql += "'" + ESTADO + "', ";
                informacion += "ESTADO= '" + ESTADO.ToString() + "', ";
            }
            else
            {
                sql += "'null', ";
                informacion += "ESTADO= 'null', ";
            }
            if (!(String.IsNullOrEmpty(OBSERVACION_JUSTIFICACION)))
            {
                sql += "'" + OBSERVACION_JUSTIFICACION + "', ";
                informacion += "OBSERVACION_JUSTIFICACION= '" + OBSERVACION_JUSTIFICACION.ToString() + "', ";
            }
            else
            {
                sql += "'null', ";
                informacion += "OBSERVACION_JUSTIFICACION= 'null', ";
            }

            sql += "'" + Usuario + "', ";
            informacion += "USU_MOD= '" + Usuario.ToString() + "', ";

            if (ID_PROVEEDOR != 0)
            {
                sql += ID_PROVEEDOR + " ";
                informacion += "ID_PROVEEDOR = '" + ID_PROVEEDOR.ToString() + "' ";
            }
            else
            {
                sql += "0 ";
                informacion += "ID_PROVEEDOR = 0 ";
            }

            #endregion validaciones

            if (ejecutar)
            {
                try
                {
                    cantidadRegistrosActualizados = conexion.ExecuteNonQuery(sql);
                    #region auditoria
                    auditoria _auditoria = new auditoria(Empresa);
                    _auditoria.Adicionar(Usuario, tabla.ALM_DOCUMENTOS, tabla.ACCION_ACTUALIZAR, sql, informacion, conexion);
                    #endregion auditoria
                }
                catch (Exception e)
                {
                    MensajeError = e.Message;
                }
            }

            if (cantidadRegistrosActualizados > 0) return true;
            else return false;
        }