public virtual void CopyValues(ProductoProveedorRecord source)
        {
            if (source == null)
            {
                return;
            }

            Oid                       = source.Oid;
            _oid_acreedor             = source.OidAcreedor;
            _oid_impuesto             = source.OidImpuesto;
            _tipo_acreedor            = source.TipoAcreedor;
            _oid_producto             = source.OidProducto;
            _precio                   = source.Precio;
            _facturacion_bulto        = source.FacturacionBulto;
            _codigo_producto_acreedor = source.CodigoProductoAcreedor;
            _p_descuento              = source.PDescuento;
            _tipo_descuento           = source.TipoDescuento;
            _automatico               = source.Automatico;
        }
        internal void Update(IAcreedor parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            try
            {
                SessionCode = parent.SessionCode;
                ProductoProveedorRecord obj = Session().Get <ProductoProveedorRecord>(Oid);
                obj.CopyValues(this._base.Record);
                Session().Update(obj);
            }
            catch (Exception ex)
            {
                iQExceptionHandler.TreatException(ex);
            }

            MarkOld();
        }