public Boolean ActualizarProveedorYNegociacion(Decimal ID_PROVEEDOR,
                                                       Decimal ID_CATEGORIA,
                                                       String ID_CIUDAD,
                                                       String DIRECCION,
                                                       String TELEFONO,
                                                       String MAIL,
                                                       String CONTACTO,
                                                       String CARGO_CONTACTO,
                                                       String DESCRIPCION,
                                                       String CLASIFICACION,
                                                       Decimal ID_NEGOCIACION,
                                                       Int32 GARANTIA,
                                                       Int32 PERIODOENTREGA,
                                                       Int32 PERIODOPAGO,
                                                       String FORMA_PAGO,
                                                       Decimal ID_ENTIDAD_BANCARIA,
                                                       String CUENTA_BANCARIA,
                                                       String TIPO_CUENTA,
                                                       String CONDICIONES_ENTREGA,
                                                       String UBI_SECTOR)
        {
            Boolean correcto = true;

            Conexion conexion = new Conexion(Empresa);

            conexion.IniciarTransaccion();

            try
            {
                if (ActualizarAlmRegProveedor(ID_PROVEEDOR, ID_CATEGORIA, ID_CIUDAD, DIRECCION, TELEFONO, MAIL, CONTACTO, CARGO_CONTACTO, DESCRIPCION, CLASIFICACION, UBI_SECTOR, conexion) == false)
                {
                    correcto = false;
                    conexion.DeshacerTransaccion();
                }
                else
                {
                    negociacionProveedores _negociacion = new negociacionProveedores(Empresa, Usuario);
                    if (ID_NEGOCIACION <= 0)
                    {
                        ID_NEGOCIACION = _negociacion.AdicionarNuevaNegociacion(ID_PROVEEDOR, GARANTIA, PERIODOENTREGA, PERIODOPAGO, FORMA_PAGO, ID_ENTIDAD_BANCARIA, CUENTA_BANCARIA, TIPO_CUENTA, CONDICIONES_ENTREGA, conexion);

                        if (ID_NEGOCIACION <= 0)
                        {
                            correcto     = false;
                            MensajeError = _negociacion.MensajeError;
                            conexion.DeshacerTransaccion();
                        }
                    }
                    else
                    {
                        if (_negociacion.ActualizarNegociacionProveedor(ID_NEGOCIACION, ID_PROVEEDOR, GARANTIA, PERIODOENTREGA, PERIODOPAGO, FORMA_PAGO, ID_ENTIDAD_BANCARIA, CUENTA_BANCARIA, TIPO_CUENTA, CONDICIONES_ENTREGA, conexion) == false)
                        {
                            correcto     = false;
                            MensajeError = _negociacion.MensajeError;
                            conexion.DeshacerTransaccion();
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                MensajeError = ex.Message;
                correcto     = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return(correcto);
        }
        public Decimal AdicionarAlmRegProveedor(String NATURALEZA_JURIDICA,
            String NUMERO_IDENTIFICACION,
            String RAZON_SOCIAL,
            String PRIMER_NOMBRE,
            String SEGUNDO_NOMBRE,
            String PRIMER_APELLIDO,
            String SEGUNDO_APELLIDO,
            Decimal ID_CATEGORIA,
            String ID_CIUDAD,
            String DIRECCION,
            String TELEFONO,
            String MAIL,
            String CONTACTO,
            String CARGO_CONTACTO,
            String DESCRIPCION,
            String CLASIFICACION,
            Int32 GARANTIA,
            Int32 PERIODOENTREGA,
            Int32 PERIODOPAGO,
            String FORMA_PAGO,
            Decimal ID_ENTIDAD_BANCARIA,
            String CUENTA_BANCARIA,
            String TIPO_CUENTA,
            String CONDICIONES_ENTREGA,
            String UBI_SECTOR)
        {
            Decimal ID_PROVEEDOR = 0;
            Decimal ID_TERCERO = 0;
            Decimal ID_NEGOCIACION = 0;

            Boolean verificador = true;

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                tercero _tercero = new tercero(Empresa, Usuario);
                DataTable tablainfoTercero = _tercero.ObtenerPorNumeroIdentificacion(NUMERO_IDENTIFICACION);

                if (tablainfoTercero.Rows.Count <= 0)
                {
                    ID_TERCERO = _tercero.Adicionar(NATURALEZA_JURIDICA, NUMERO_IDENTIFICACION, RAZON_SOCIAL, PRIMER_NOMBRE, SEGUNDO_NOMBRE, PRIMER_APELLIDO, SEGUNDO_APELLIDO, "ACTIVO", conexion);

                    if (ID_TERCERO <= 0)
                    {
                        conexion.DeshacerTransaccion();
                        MensajeError = _tercero.MensajeError;
                        verificador = false;
                        ID_PROVEEDOR = 0;
                        ID_TERCERO = 0;
                        ID_NEGOCIACION = 0;
                    }
                }
                else
                {
                    if (_tercero.MensajeError == null)
                    {
                        DataRow filaInfoTervero = tablainfoTercero.Rows[0];
                        ID_TERCERO = Convert.ToDecimal(filaInfoTervero["ID_TERCERO"]);
                    }
                    else
                    {
                        conexion.DeshacerTransaccion();
                        MensajeError = _tercero.MensajeError;
                        verificador = false;
                        ID_PROVEEDOR = 0;
                        ID_TERCERO = 0;
                        ID_NEGOCIACION = 0;
                    }
                }

                if (verificador == true)
                {
                    ID_PROVEEDOR = AdicionarInfoProveedor(ID_TERCERO, ID_CATEGORIA, ID_CIUDAD, DIRECCION, TELEFONO, MAIL, CONTACTO, CARGO_CONTACTO, "N", DESCRIPCION, CLASIFICACION, UBI_SECTOR, conexion);

                    if (ID_PROVEEDOR <= 0)
                    {
                        conexion.DeshacerTransaccion();
                        verificador = false;
                        ID_PROVEEDOR = 0;
                        ID_TERCERO = 0;
                        ID_NEGOCIACION = 0;
                    }
                    else
                    {
                        negociacionProveedores _negociacion = new negociacionProveedores(Empresa, Usuario);

                        ID_NEGOCIACION = _negociacion.AdicionarNuevaNegociacion(ID_PROVEEDOR, GARANTIA, PERIODOENTREGA, PERIODOPAGO, FORMA_PAGO, ID_ENTIDAD_BANCARIA, CUENTA_BANCARIA, TIPO_CUENTA, CONDICIONES_ENTREGA, conexion);

                        if (ID_NEGOCIACION <= 0)
                        {
                            conexion.DeshacerTransaccion();
                            MensajeError = _negociacion.MensajeError;
                            ID_PROVEEDOR = 0;
                            ID_TERCERO = 0;
                            ID_NEGOCIACION = 0;
                        }
                    }
                }

                if (verificador == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                MensajeError = ex.Message;
                verificador = false;
                ID_PROVEEDOR = 0;
                ID_TERCERO = 0;
                ID_NEGOCIACION = 0;
            }
            finally
            {
                conexion.Desconectar();
            }

            if (verificador == true)
            {
                return ID_PROVEEDOR;
            }
            else
            {
                return 0;
            }
        }
        public Decimal AdicionarAlmRegProveedor(String NATURALEZA_JURIDICA,
                                                String NUMERO_IDENTIFICACION,
                                                String RAZON_SOCIAL,
                                                String PRIMER_NOMBRE,
                                                String SEGUNDO_NOMBRE,
                                                String PRIMER_APELLIDO,
                                                String SEGUNDO_APELLIDO,
                                                Decimal ID_CATEGORIA,
                                                String ID_CIUDAD,
                                                String DIRECCION,
                                                String TELEFONO,
                                                String MAIL,
                                                String CONTACTO,
                                                String CARGO_CONTACTO,
                                                String DESCRIPCION,
                                                String CLASIFICACION,
                                                Int32 GARANTIA,
                                                Int32 PERIODOENTREGA,
                                                Int32 PERIODOPAGO,
                                                String FORMA_PAGO,
                                                Decimal ID_ENTIDAD_BANCARIA,
                                                String CUENTA_BANCARIA,
                                                String TIPO_CUENTA,
                                                String CONDICIONES_ENTREGA,
                                                String UBI_SECTOR)
        {
            Decimal ID_PROVEEDOR   = 0;
            Decimal ID_TERCERO     = 0;
            Decimal ID_NEGOCIACION = 0;

            Boolean verificador = true;

            Conexion conexion = new Conexion(Empresa);

            conexion.IniciarTransaccion();

            try
            {
                tercero   _tercero         = new tercero(Empresa, Usuario);
                DataTable tablainfoTercero = _tercero.ObtenerPorNumeroIdentificacion(NUMERO_IDENTIFICACION);

                if (tablainfoTercero.Rows.Count <= 0)
                {
                    ID_TERCERO = _tercero.Adicionar(NATURALEZA_JURIDICA, NUMERO_IDENTIFICACION, RAZON_SOCIAL, PRIMER_NOMBRE, SEGUNDO_NOMBRE, PRIMER_APELLIDO, SEGUNDO_APELLIDO, "ACTIVO", conexion);

                    if (ID_TERCERO <= 0)
                    {
                        conexion.DeshacerTransaccion();
                        MensajeError   = _tercero.MensajeError;
                        verificador    = false;
                        ID_PROVEEDOR   = 0;
                        ID_TERCERO     = 0;
                        ID_NEGOCIACION = 0;
                    }
                }
                else
                {
                    if (_tercero.MensajeError == null)
                    {
                        DataRow filaInfoTervero = tablainfoTercero.Rows[0];
                        ID_TERCERO = Convert.ToDecimal(filaInfoTervero["ID_TERCERO"]);
                    }
                    else
                    {
                        conexion.DeshacerTransaccion();
                        MensajeError   = _tercero.MensajeError;
                        verificador    = false;
                        ID_PROVEEDOR   = 0;
                        ID_TERCERO     = 0;
                        ID_NEGOCIACION = 0;
                    }
                }

                if (verificador == true)
                {
                    ID_PROVEEDOR = AdicionarInfoProveedor(ID_TERCERO, ID_CATEGORIA, ID_CIUDAD, DIRECCION, TELEFONO, MAIL, CONTACTO, CARGO_CONTACTO, "N", DESCRIPCION, CLASIFICACION, UBI_SECTOR, conexion);

                    if (ID_PROVEEDOR <= 0)
                    {
                        conexion.DeshacerTransaccion();
                        verificador    = false;
                        ID_PROVEEDOR   = 0;
                        ID_TERCERO     = 0;
                        ID_NEGOCIACION = 0;
                    }
                    else
                    {
                        negociacionProveedores _negociacion = new negociacionProveedores(Empresa, Usuario);

                        ID_NEGOCIACION = _negociacion.AdicionarNuevaNegociacion(ID_PROVEEDOR, GARANTIA, PERIODOENTREGA, PERIODOPAGO, FORMA_PAGO, ID_ENTIDAD_BANCARIA, CUENTA_BANCARIA, TIPO_CUENTA, CONDICIONES_ENTREGA, conexion);

                        if (ID_NEGOCIACION <= 0)
                        {
                            conexion.DeshacerTransaccion();
                            MensajeError   = _negociacion.MensajeError;
                            ID_PROVEEDOR   = 0;
                            ID_TERCERO     = 0;
                            ID_NEGOCIACION = 0;
                        }
                    }
                }

                if (verificador == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                MensajeError   = ex.Message;
                verificador    = false;
                ID_PROVEEDOR   = 0;
                ID_TERCERO     = 0;
                ID_NEGOCIACION = 0;
            }
            finally
            {
                conexion.Desconectar();
            }

            if (verificador == true)
            {
                return(ID_PROVEEDOR);
            }
            else
            {
                return(0);
            }
        }
        public Boolean ActualizarProveedorYNegociacion(Decimal ID_PROVEEDOR,
            Decimal ID_CATEGORIA,
            String ID_CIUDAD,
            String DIRECCION,
            String TELEFONO,
            String MAIL,
            String CONTACTO,
            String CARGO_CONTACTO,
            String DESCRIPCION,
            String CLASIFICACION,
            Decimal ID_NEGOCIACION,
            Int32 GARANTIA,
            Int32 PERIODOENTREGA,
            Int32 PERIODOPAGO,
            String FORMA_PAGO,
            Decimal ID_ENTIDAD_BANCARIA,
            String CUENTA_BANCARIA,
            String TIPO_CUENTA,
            String CONDICIONES_ENTREGA,
            String UBI_SECTOR)
        {
            Boolean correcto = true;

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                if (ActualizarAlmRegProveedor(ID_PROVEEDOR, ID_CATEGORIA, ID_CIUDAD, DIRECCION, TELEFONO, MAIL, CONTACTO, CARGO_CONTACTO, DESCRIPCION, CLASIFICACION, UBI_SECTOR, conexion) == false)
                {
                    correcto = false;
                    conexion.DeshacerTransaccion();
                }
                else
                {
                    negociacionProveedores _negociacion = new negociacionProveedores(Empresa, Usuario);
                    if (ID_NEGOCIACION <= 0)
                    {
                        ID_NEGOCIACION = _negociacion.AdicionarNuevaNegociacion(ID_PROVEEDOR, GARANTIA, PERIODOENTREGA, PERIODOPAGO, FORMA_PAGO, ID_ENTIDAD_BANCARIA, CUENTA_BANCARIA, TIPO_CUENTA, CONDICIONES_ENTREGA, conexion);

                        if (ID_NEGOCIACION <= 0)
                        {
                            correcto = false;
                            MensajeError = _negociacion.MensajeError;
                            conexion.DeshacerTransaccion();
                        }
                    }
                    else
                    {
                        if (_negociacion.ActualizarNegociacionProveedor(ID_NEGOCIACION, ID_PROVEEDOR, GARANTIA, PERIODOENTREGA, PERIODOPAGO, FORMA_PAGO, ID_ENTIDAD_BANCARIA, CUENTA_BANCARIA, TIPO_CUENTA, CONDICIONES_ENTREGA, conexion) == false)
                        {
                            correcto = false;
                            MensajeError = _negociacion.MensajeError;
                            conexion.DeshacerTransaccion();
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                MensajeError = ex.Message;
                correcto = false;
            }
            finally
            {
                conexion.Desconectar();
            }

            return correcto;
        }